hps-java/src/main/java/org/lcsim/hps/monitoring/svt
diff -N SVTHitReconstructionPlots.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ SVTHitReconstructionPlots.java 30 Apr 2012 23:17:00 -0000 1.1
@@ -0,0 +1,97 @@
+package org.lcsim.hps.monitoring.svt;
+
+import hep.aida.*;
+import java.util.ArrayList;
+import java.util.List;
+import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.RawTrackerHit;
+import org.lcsim.geometry.Detector;
+import org.lcsim.hps.recon.tracking.HPSFittedRawTrackerHit;
+import org.lcsim.hps.recon.tracking.HPSSVTCalibrationConstants;
+import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHitStrip1D;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+
+/**
+ *
+ * @author mgraham
+ */
+public class SVTHitReconstructionPlots extends Driver {
+
+ private List<IPlotter> plotters = new ArrayList<IPlotter>();
+ private AIDA aida = AIDA.defaultInstance();
+ private String rawTrackerHitCollectionName = "SVTRawTrackerHits";
+ private String fittedTrackerHitCollectionName="SVTFittedRawTrackerHits";
+ private String trackerHitCollectionName = "StripClusterer_SiTrackerHitStrip1D";
+ private String trackerName = "Tracker";
+ private Detector detector=null;
+ private int eventCount;
+ protected void detectorChanged(Detector detector) {
+ this.detector = detector;
+ aida.tree().cd("/");
+
+
+ List<SiSensor> sensors = detector.getSubdetector(trackerName).getDetectorElement().findDescendants(SiSensor.class);
+
+
+ IAnalysisFactory fac = aida.analysisFactory();
+ IPlotter plotter = fac.createPlotterFactory().create("HPS SVT Timing Plots");
+ plotters.add(plotter);
+ IPlotterStyle style = plotter.style();
+ style.dataStyle().fillStyle().setColor("yellow");
+ style.dataStyle().errorBarStyle().setVisible(false);
+ plotter.createRegions(5, 4);
+
+ IPlotter plotter2 = fac.createPlotterFactory().create("HPS SVT Amplitude Plots");
+ plotters.add(plotter2);
+ IPlotterStyle style2 = plotter2.style();
+ style2.dataStyle().fillStyle().setColor("yellow");
+ style2.dataStyle().errorBarStyle().setVisible(false);
+ plotter2.createRegions(5, 4);
+
+ int ns = sensors.size();
+ for (int i = 0; i < ns; i++) {
+ IHistogram1D timingPlot = aida.histogram1D(sensors.get(i).getName() + "_timing", 50, -10, 90);
+ IHistogram1D amplitudePlot = aida.histogram1D(sensors.get(i).getName() + "_amplitude", 50, 0, 3000.0);
+ plotter.region(i).plot(timingPlot);
+ plotter2.region(i).plot(amplitudePlot);
+ }
+ plotter.show();
+ plotter2.show();
+ }
+
+ public SVTHitReconstructionPlots() {
+ }
+
+ public void setRawTrackerHitCollectionName(String rawTrackerHitCollectionName) {
+ this.rawTrackerHitCollectionName = rawTrackerHitCollectionName;
+ }
+
+ public void setFittedTrackerHitCollectionName(String fittedTrackerHitCollectionName) {
+ this.fittedTrackerHitCollectionName = fittedTrackerHitCollectionName;
+ }
+
+ public void setTrackerHitCollectionName(String trackerHitCollectionName) {
+ this.trackerHitCollectionName = trackerHitCollectionName;
+ }
+
+ public void process(EventHeader event) {
+ if (!HPSSVTCalibrationConstants.calibrationLoaded()) {
+ HPSSVTCalibrationConstants.loadCalibrationConstants();
+ }
+ ++eventCount;
+ List<RawTrackerHit> rawHits = event.get(RawTrackerHit.class, rawTrackerHitCollectionName);
+ List<HPSFittedRawTrackerHit> fittedrawHits = event.get(HPSFittedRawTrackerHit.class, fittedTrackerHitCollectionName);
+ List<SiTrackerHitStrip1D> stripHits = event.get(SiTrackerHitStrip1D.class, trackerHitCollectionName);
+ for (HPSFittedRawTrackerHit hrth : fittedrawHits) {
+ double fittedAmp = hrth.getAmp();
+ double fittedT0 = hrth.getT0();
+ String sensorName = hrth.getRawTrackerHit().getDetectorElement().getName();
+ aida.histogram1D(sensorName + "_timing").fill(fittedT0);
+ aida.histogram1D(sensorName + "_amplitude").fill(fittedAmp);
+
+ }
+
+ }
+}