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>
|