Author: [log in to unmask] Date: Thu Nov 13 21:58:59 2014 New Revision: 1521 Log: Add extremely simple ECAL monitoring test Driver and steering. Added: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/example/EcalMonitoringTestDriver.java java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/EcalMonitoringTest.lcsim Added: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/example/EcalMonitoringTestDriver.java ============================================================================= --- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/example/EcalMonitoringTestDriver.java (added) +++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/example/EcalMonitoringTestDriver.java Thu Nov 13 21:58:59 2014 @@ -0,0 +1,50 @@ +package org.hps.monitoring.drivers.example; + +import hep.aida.IAnalysisFactory; +import hep.aida.IHistogram1D; +import hep.aida.IHistogramFactory; +import hep.aida.IPlotter; + +import java.util.List; + +import org.lcsim.event.EventHeader; +import org.lcsim.event.RawTrackerHit; +import org.lcsim.util.Driver; + +/** + * This Driver just plots the number of RawTrackerHit objects in the 'EcalReadoutHits' + * collection and the FADC values as a basic test that ECAL raw data is accessible to + * the monitoring app. + * @author Jeremy McCormick <[log in to unmask]> + */ +public class EcalMonitoringTestDriver extends Driver { + + static IHistogramFactory histogramFactory = IAnalysisFactory.create().createHistogramFactory(null); + + IHistogram1D nHitsH1D = histogramFactory.createHistogram1D("EcalReadoutHits : Number of Hits", 443, 0, 443.); + IHistogram1D adcValuesH1D = histogramFactory.createHistogram1D("EcalReadoutHits : ADC Values", 160, 40, 200.); + + public void startOfData() { + IPlotter plotter = IAnalysisFactory.create().createPlotterFactory("ECAL Test").create("ECAL Test"); + plotter.createRegions(2); + plotter.region(0).plot(nHitsH1D); + plotter.region(1).plot(adcValuesH1D); + plotter.show(); + } + + public void process(EventHeader event) { + if (event.hasCollection(RawTrackerHit.class, "EcalReadoutHits")) { + List<RawTrackerHit> hits = event.get(RawTrackerHit.class, "EcalReadoutHits"); + System.out.println("EcalReadoutHits has " + hits.size() + " hits"); + nHitsH1D.fill(hits.size()); + for (RawTrackerHit hit : hits) { + for (short adcValue : hit.getADCValues()) { + adcValuesH1D.fill(adcValue); + } + } + } else { + // For testing purposes, consider it a fatal error if collection is missing. + throw new RuntimeException("No RawTrackerHit collection was found with name 'EcalReadoutHits'."); + } + } +} Added: java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/EcalMonitoringTest.lcsim ============================================================================= --- java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/EcalMonitoringTest.lcsim (added) +++ java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/EcalMonitoringTest.lcsim Thu Nov 13 21:58:59 2014 @@ -0,0 +1,17 @@ +<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" + xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd"> + <execute> + <driver name="ConditionsDriver"/> + <driver name="EventMarkerDriver"/> + <driver name="EcalMonitoringTestDriver"/> + </execute> + <drivers> + <driver name="ConditionsDriver" type="org.hps.conditions.ConditionsDriver"> + <loadSvtConditions>false</loadSvtConditions> + </driver> + <driver name="EventMarkerDriver" type="org.lcsim.job.EventMarkerDriver"> + <eventInterval>1</eventInterval> + </driver> + <driver name="EcalMonitoringTestDriver" type="org.hps.monitoring.drivers.example.EcalMonitoringTestDriver"/> + </drivers> +</lcsim>