Print

Print


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>