1 added + 4 modified, total 5 files
hps-java/src/main/java/org/lcsim/hps/monitoring/svt
diff -N SVTPulseFitPlots.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ SVTPulseFitPlots.java 24 May 2012 19:48:40 -0000 1.1
@@ -0,0 +1,204 @@
+package org.lcsim.hps.monitoring.svt;
+
+import hep.aida.*;
+import java.io.IOException;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.identifier.IIdentifierHelper;
+import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.event.EventHeader;
+import org.lcsim.geometry.Detector;
+import org.lcsim.hps.monitoring.AIDAFrame;
+import org.lcsim.hps.monitoring.Resettable;
+import org.lcsim.hps.recon.tracking.HPSFittedRawTrackerHit;
+import org.lcsim.hps.recon.tracking.HPSSVTCalibrationConstants;
+import org.lcsim.hps.recon.tracking.HPSSVTConstants;
+import org.lcsim.hps.recon.tracking.SvtUtils;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+
+/**
+ *
+ * @author mgraham
+ * @version $Id: SVTHitReconstructionPlots.java,v 1.14 2012/05/18 07:41:49 meeg
+ * Exp $
+ */
+public class SVTPulseFitPlots extends Driver implements Resettable {
+
+ private AIDAFrame plotterFrame;
+ private AIDA aida = AIDA.defaultInstance();
+ private String fittedTrackerHitCollectionName = "SVTFittedRawTrackerHits";
+ private String trackerName = "Tracker";
+ private int eventCount;
+ IPlotter plotter;
+ IPlotter plotter2;
+ IPlotter plotter3;
+ IPlotter plotter4;
+ IPlotter plotter5;
+ private String outputPlots = null;
+ private IHistogram1D[][] t0 = new IHistogram1D[2][10];
+ private IHistogram1D[][] amp = new IHistogram1D[2][10];
+ private IHistogram1D[][] chisq = new IHistogram1D[2][10];
+ private IHistogram2D[][] t0a = new IHistogram2D[2][10];
+ private IHistogram2D[][] shape = new IHistogram2D[2][10];
+// private IHistogram2D shape;
+
+ @Override
+ protected void detectorChanged(Detector detector) {
+ plotterFrame = new AIDAFrame();
+ plotterFrame.setTitle("HPS SVT Pulse Fit Plots");
+
+ aida.tree().cd("/");
+
+ IAnalysisFactory fac = aida.analysisFactory();
+ plotter = fac.createPlotterFactory().create("HPS SVT Timing Plots");
+ plotter.setTitle("Timing");
+ plotterFrame.addPlotter(plotter);
+ IPlotterStyle style = plotter.style();
+ style.dataStyle().fillStyle().setColor("yellow");
+ style.dataStyle().errorBarStyle().setVisible(false);
+ plotter.createRegions(4, 5);
+
+ plotter2 = fac.createPlotterFactory().create("HPS SVT Amplitude Plots");
+ plotter2.setTitle("Amplitude");
+ plotterFrame.addPlotter(plotter2);
+ IPlotterStyle style2 = plotter2.style();
+ style2.dataStyle().fillStyle().setColor("yellow");
+ style2.dataStyle().errorBarStyle().setVisible(false);
+ plotter2.createRegions(4, 5);
+
+ plotter3 = fac.createPlotterFactory().create("HPS SVT Chisq Plots");
+ plotter3.setTitle("Chisq");
+ plotterFrame.addPlotter(plotter3);
+ plotter3.style().dataStyle().fillStyle().setColor("yellow");
+ plotter3.style().dataStyle().errorBarStyle().setVisible(false);
+ plotter3.createRegions(4, 5);
+
+ plotter4 = fac.createPlotterFactory().create("A vs. T0");
+ plotter4.setTitle("A vs. T0");
+ plotterFrame.addPlotter(plotter4);
+ plotter4.style().dataStyle().errorBarStyle().setVisible(false);
+ plotter4.style().statisticsBoxStyle().setVisible(false);
+ plotter4.style().setParameter("hist2DStyle", "colorMap");
+ plotter4.style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ plotter4.style().zAxisStyle().setParameter("scale", "log");
+ plotter4.style().zAxisStyle().setVisible(false);
+ plotter4.createRegions(4, 5);
+
+ plotter5 = fac.createPlotterFactory().create("Pulse Shape");
+ plotter5.setTitle("Pulse shape");
+ plotterFrame.addPlotter(plotter5);
+ plotter5.style().dataStyle().errorBarStyle().setVisible(false);
+ plotter5.style().statisticsBoxStyle().setVisible(false);
+ plotter5.style().setParameter("hist2DStyle", "colorMap");
+ plotter5.style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ plotter5.style().zAxisStyle().setParameter("scale", "log");
+ plotter5.style().zAxisStyle().setVisible(false);
+ plotter5.createRegions(4, 5);
+// plotter5.createRegion();
+
+ for (int module = 0; module < 2; module++) {
+ for (int layer = 0; layer < 10; layer++) {
+ SiSensor sensor = SvtUtils.getInstance().getSensor(module, layer);
+ int region = computePlotterRegion(layer + 1, module);
+ t0[module][layer] = aida.histogram1D(sensor.getName() + "_timing", 50, -100, 100.0);
+ plotter.region(region).plot(t0[module][layer]);
+ amp[module][layer] = aida.histogram1D(sensor.getName() + "_amplitude", 50, 0, 2000.0);
+ plotter2.region(region).plot(amp[module][layer]);
+ chisq[module][layer] = aida.histogram1D(sensor.getName() + "_chisq", 100, 0, 10.0);
+ plotter3.region(region).plot(chisq[module][layer]);
+ t0a[module][layer] = aida.histogram2D(sensor.getName() + " A vs. T0", 100, -100, 100, 100, 0, 2000);
+ plotter4.region(region).plot(t0a[module][layer]);
+ shape[module][layer] = aida.histogram2D(sensor.getName() + " Shape", 200, -1, 3, 200, -0.5, 2);
+ plotter5.region(region).plot(shape[module][layer]);
+
+ }
+ }
+// shape = aida.histogram2D("Shape", 200, -1, 3, 200, -0.5, 2);
+// plotter5.region(0).plot(shape);
+
+ plotterFrame.pack();
+ plotterFrame.setVisible(true);
+ }
+
+ public SVTPulseFitPlots() {
+ }
+
+ public void setOutputPlots(String output) {
+ this.outputPlots = output;
+ }
+
+ public void setFittedTrackerHitCollectionName(String fittedTrackerHitCollectionName) {
+ this.fittedTrackerHitCollectionName = fittedTrackerHitCollectionName;
+ }
+
+ @Override
+ public void process(EventHeader event) {
+ ++eventCount;
+ List<HPSFittedRawTrackerHit> fittedrawHits = event.get(HPSFittedRawTrackerHit.class, fittedTrackerHitCollectionName);
+ for (HPSFittedRawTrackerHit fit : fittedrawHits) {
+ SiSensor sensor = (SiSensor) fit.getRawTrackerHit().getDetectorElement();
+ int strip = fit.getRawTrackerHit().getIdentifierFieldValue("strip");
+ int layer = fit.getRawTrackerHit().getIdentifierFieldValue("layer"); // 1-10; axial layers are odd layers; stereo layers are even
+ int module = fit.getRawTrackerHit().getIdentifierFieldValue("module"); // 0-1; module number is top or bottom
+// int layer = hrth.getRawTrackerHit().getLayerNumber();
+ double fittedAmp = fit.getAmp();
+ double fittedT0 = fit.getT0();
+ String sensorName = sensor.getName();
+ aida.histogram1D(sensorName + "_timing").fill(fittedT0);
+ aida.histogram1D(sensorName + "_amplitude").fill(fittedAmp);
+ aida.histogram1D(sensorName + "_chisq").fill(fit.getShapeFitParameters().getChiSq());
+
+ double pedestal = HPSSVTCalibrationConstants.getPedestal((SiSensor) fit.getRawTrackerHit().getDetectorElement(), strip);
+ double tp = HPSSVTCalibrationConstants.getTShaping((SiSensor) fit.getRawTrackerHit().getDetectorElement(), strip);
+
+ t0a[module][layer - 1].fill(fit.getT0(), fit.getAmp());
+ if (fit.getAmp() > 500) {
+ for (int i = 0; i < fit.getRawTrackerHit().getADCValues().length; i++) {
+ shape[module][layer - 1].fill((i * HPSSVTConstants.SAMPLE_INTERVAL - fit.getT0()) / tp, (fit.getRawTrackerHit().getADCValues()[i] - pedestal) / fit.getAmp());
+// shape.fill((i * HPSSVTConstants.SAMPLE_INTERVAL - hrth.getT0()) / tp, (hrth.getRawTrackerHit().getADCValues()[i] - pedestal) / hrth.getAmp());
+ }
+ }
+ }
+ }
+
+ @Override
+ public void endOfData() {
+ if (outputPlots != null) {
+ try {
+ aida.saveAs(outputPlots);
+ } catch (IOException ex) {
+ Logger.getLogger(TrackingReconstructionPlots.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
+ plotterFrame.dispose();
+ }
+
+ @Override
+ public void reset() {
+ for (int module = 0; module < 2; module++) {
+ for (int layer = 0; layer < 10; layer++) {
+ t0[module][layer].reset();
+ amp[module][layer].reset();
+ chisq[module][layer].reset();
+ t0a[module][layer].reset();
+ shape[module][layer].reset();
+ }
+ }
+ }
+
+ private int computePlotterRegion(int layer, int module) {
+ int iy = (layer - 1) / 2;
+ int ix = 0;
+ if (module > 0) {
+ ix += 2;
+ }
+ if (layer % 2 == 0) {
+ ix += 1;
+ }
+ int region = ix * 5 + iy;
+ return region;
+ }
+}
hps-java/src/main/java/org/lcsim/hps/monitoring/svt
diff -u -r1.7 -r1.8
--- SVTSimpleEventDisplay.java 24 May 2012 17:08:18 -0000 1.7
+++ SVTSimpleEventDisplay.java 24 May 2012 19:48:40 -0000 1.8
@@ -12,22 +12,16 @@
import org.lcsim.geometry.Detector;
import org.lcsim.hps.monitoring.AIDAFrame;
import org.lcsim.hps.monitoring.Resettable;
-import org.lcsim.hps.recon.tracking.HPSSVTDAQMaps;
import org.lcsim.hps.recon.tracking.SvtUtils;
import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHit;
import org.lcsim.util.Driver;
import org.lcsim.util.aida.AIDA;
/**
- * This Driver makes plots of sensor occupancies across a run. It is intended to
- * be used with the monitoring system. It will currently only run on a test run
- * detector, as the number of sensors, and hence plotter regions, is hardcoded
- * to 20.
- *
- * @author Jeremy McCormick <[log in to unmask]>
- * @version $Id: SensorOccupancyPlotsDriver.java,v 1.12 2012/04/13 00:06:55
- * jeremy Exp $
- *
+ * Plots hit counts for all SVT channels at each stage of reconstruction;
+ * can be set to reset after each event for use as an event display
+ *
+ * @version $Id: SVTSimpleEventDisplay.java,v 1.8 2012/05/24 19:48:40 meeg Exp $
*/
public class SVTSimpleEventDisplay extends Driver implements Resettable {
@@ -79,7 +73,7 @@
protected void detectorChanged(Detector detector) {
plotterFrame = new AIDAFrame();
- plotterFrame.setTitle("HPS SVT Event Display");
+ plotterFrame.setTitle("HPS SVT Hit Counts");
// Setup the plotter.
IAnalysisFactory fac = aida.analysisFactory();
hps-java/src/main/java/org/lcsim/hps/monitoring/svt
diff -u -r1.16 -r1.17
--- SVTHitReconstructionPlots.java 24 May 2012 17:08:18 -0000 1.16
+++ SVTHitReconstructionPlots.java 24 May 2012 19:48:40 -0000 1.17
@@ -9,9 +9,7 @@
import java.util.logging.Logger;
import org.lcsim.detector.identifier.IIdentifier;
import org.lcsim.detector.identifier.IIdentifierHelper;
-import org.lcsim.detector.tracker.silicon.ChargeCarrier;
import org.lcsim.detector.tracker.silicon.SiSensor;
-import org.lcsim.detector.tracker.silicon.SiSensorElectrodes;
import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
import org.lcsim.event.EventHeader;
import org.lcsim.event.RawTrackerHit;
@@ -19,7 +17,6 @@
import org.lcsim.hps.monitoring.AIDAFrame;
import org.lcsim.hps.monitoring.Resettable;
import org.lcsim.hps.recon.tracking.HPSFittedRawTrackerHit;
-import org.lcsim.hps.recon.tracking.HPSSVTDAQMaps;
import org.lcsim.hps.recon.tracking.SvtUtils;
import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHitStrip1D;
import org.lcsim.util.Driver;
@@ -35,21 +32,17 @@
private AIDAFrame plotterFrame;
private AIDA aida = AIDA.defaultInstance();
- private String rawTrackerHitCollectionName = "SVTRawTrackerHits";
private String fittedTrackerHitCollectionName = "SVTFittedRawTrackerHits";
private String trackerHitCollectionName = "StripClusterer_SiTrackerHitStrip1D";
private String trackerName = "Tracker";
private int eventCount;
private List<SiSensor> sensors;
- IPlotter plotter;
+ IPlotter plotter1;
IPlotter plotter2;
IPlotter plotter3;
IPlotter plotter4;
- IPlotter plotter44;
IPlotter plotter5;
IPlotter plotter6;
- IPlotter plotter7;
- IPlotter plotter8;
private Map<String, Integer> sensorRegionMap;
private String outputPlots = null;
@@ -70,87 +63,62 @@
}
IAnalysisFactory fac = aida.analysisFactory();
- plotter = fac.createPlotterFactory().create("HPS SVT Timing Plots");
- plotter.setTitle("Timing");
- plotterFrame.addPlotter(plotter);
- IPlotterStyle style = plotter.style();
- style.dataStyle().fillStyle().setColor("yellow");
- style.dataStyle().errorBarStyle().setVisible(false);
- plotter.createRegions(5, 4);
- plotter2 = fac.createPlotterFactory().create("HPS SVT Amplitude Plots");
- plotter2.setTitle("Amplitude");
- plotterFrame.addPlotter(plotter2);
- IPlotterStyle style2 = plotter2.style();
- style2.dataStyle().fillStyle().setColor("yellow");
- style2.dataStyle().errorBarStyle().setVisible(false);
- plotter2.createRegions(5, 4);
-
- plotter3 = fac.createPlotterFactory().create("HPS SVT Chisq Plots");
- plotter3.setTitle("Chisq");
- plotterFrame.addPlotter(plotter3);
- plotter3.style().dataStyle().fillStyle().setColor("yellow");
- plotter3.style().dataStyle().errorBarStyle().setVisible(false);
- plotter3.createRegions(5, 4);
-
- plotter4 = fac.createPlotterFactory().create("HPS SVT Raw Hit Plots");
- plotter4.setTitle("Raw Hits");
- plotterFrame.addPlotter(plotter4);
- IPlotterStyle style3 = plotter4.style();
+ plotter1 = fac.createPlotterFactory().create("HPS SVT Raw Hit Plots");
+ plotter1.setTitle("Raw Hits");
+ plotterFrame.addPlotter(plotter1);
+ IPlotterStyle style3 = plotter1.style();
style3.dataStyle().fillStyle().setColor("yellow");
style3.dataStyle().errorBarStyle().setVisible(false);
- plotter4.createRegions(5, 4);
+ plotter1.createRegions(5, 4);
- plotter5 = fac.createPlotterFactory().create("HPS SVT Reco Hit Plots");
- plotter5.setTitle("Reco Hits");
- plotterFrame.addPlotter(plotter5);
- IPlotterStyle style4 = plotter5.style();
+ plotter3 = fac.createPlotterFactory().create("HPS SVT Reco Hit Plots");
+ plotter3.setTitle("Reco Hits");
+ plotterFrame.addPlotter(plotter3);
+ IPlotterStyle style4 = plotter3.style();
style4.dataStyle().fillStyle().setColor("yellow");
style4.dataStyle().errorBarStyle().setVisible(false);
- plotter5.createRegions(5, 4);
+ plotter3.createRegions(5, 4);
- plotter44 = fac.createPlotterFactory().create("HPS SVT Cluster Hit Plots");
- plotter44.setTitle("Clusters");
- plotterFrame.addPlotter(plotter44);
- IPlotterStyle style44 = plotter44.style();
+ plotter2 = fac.createPlotterFactory().create("HPS SVT Cluster Hit Plots");
+ plotter2.setTitle("Clusters");
+ plotterFrame.addPlotter(plotter2);
+ IPlotterStyle style44 = plotter2.style();
style44.dataStyle().fillStyle().setColor("yellow");
style44.dataStyle().errorBarStyle().setVisible(false);
- plotter44.createRegions(5, 4);
+ plotter2.createRegions(5, 4);
- plotter6 = fac.createPlotterFactory().create("HPS SVT Cluster Size Plots");
- plotter6.setTitle("Cluster Size");
- plotterFrame.addPlotter(plotter6);
- IPlotterStyle style6 = plotter6.style();
+ plotter4 = fac.createPlotterFactory().create("HPS SVT Cluster Size Plots");
+ plotter4.setTitle("Cluster Size");
+ plotterFrame.addPlotter(plotter4);
+ IPlotterStyle style6 = plotter4.style();
style6.dataStyle().fillStyle().setColor("green");
style6.dataStyle().errorBarStyle().setVisible(false);
- plotter6.createRegions(5, 4);
+ plotter4.createRegions(5, 4);
- plotter7 = fac.createPlotterFactory().create("HPS SVT Cluster Amp Plots");
- plotter7.setTitle("Cluster Amplitude");
- plotterFrame.addPlotter(plotter7);
- IPlotterStyle style7 = plotter7.style();
+ plotter5 = fac.createPlotterFactory().create("HPS SVT Cluster Amp Plots");
+ plotter5.setTitle("Cluster Amplitude");
+ plotterFrame.addPlotter(plotter5);
+ IPlotterStyle style7 = plotter5.style();
style7.dataStyle().fillStyle().setColor("green");
style7.dataStyle().errorBarStyle().setVisible(false);
- plotter7.createRegions(5, 4);
+ plotter5.createRegions(5, 4);
- plotter8 = fac.createPlotterFactory().create("HPS SVT Cluster Position Vs Channel");
- plotter8.setTitle("Cluster Position (y)");
- plotterFrame.addPlotter(plotter8);
- IPlotterStyle style8 = plotter8.style();
+ plotter6 = fac.createPlotterFactory().create("HPS SVT Cluster Position Vs Channel");
+ plotter6.setTitle("Cluster Position (y)");
+ plotterFrame.addPlotter(plotter6);
+ IPlotterStyle style8 = plotter6.style();
style8.dataStyle().fillStyle().setColor("green");
style8.dataStyle().errorBarStyle().setVisible(false);
style8.statisticsBoxStyle().setVisible(false);
- plotter8.style().setParameter("hist2DStyle", "colorMap");
+ plotter6.style().setParameter("hist2DStyle", "colorMap");
style8.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
style8.zAxisStyle().setParameter("scale", "log");
- plotter8.createRegions(5, 4);
+ plotter6.createRegions(5, 4);
for (SiSensor sensor : sensors) {
- IHistogram1D timingPlot = aida.histogram1D(sensor.getName() + "_timing", 50, -100, 100.0);
- IHistogram1D amplitudePlot = aida.histogram1D(sensor.getName() + "_amplitude", 50, 0, 2000.0);
- IHistogram1D chisqPlot = aida.histogram1D(sensor.getName() + "_chisq", 100, 0, 10.0);
IHistogram1D nrawPlot = aida.histogram1D(sensor.getName() + "_raw_hits", 10, 0, 9.0);
IHistogram1D nrecoPlot = aida.histogram1D(sensor.getName() + "_reco_hits", 10, 0, 9.0);
IHistogram1D nclustPlot = aida.histogram1D(sensor.getName() + "_cluster_hits", 10, 0, 9.0);
@@ -158,15 +126,12 @@
IHistogram1D clusterAmpPlot = aida.histogram1D(sensor.getName() + "_cluster_amp", 50, 0, 2000.0);
IHistogram2D clposVsStrip = aida.histogram2D(sensor.getName() + "_cluster_vs_strip", 128, 0, 639, 100, -50, 50);
int region = sensorRegionMap.get(sensor.getName());
- plotter.region(region).plot(timingPlot);
- plotter2.region(region).plot(amplitudePlot);
- plotter3.region(region).plot(chisqPlot);
- plotter4.region(region).plot(nrawPlot);
- plotter5.region(region).plot(nrecoPlot);
- plotter44.region(region).plot(nclustPlot);
- plotter6.region(region).plot(clusterSizePlot);
- plotter7.region(region).plot(clusterAmpPlot);
- plotter8.region(region).plot(clposVsStrip);
+ plotter1.region(region).plot(nrawPlot);
+ plotter3.region(region).plot(nrecoPlot);
+ plotter2.region(region).plot(nclustPlot);
+ plotter4.region(region).plot(clusterSizePlot);
+ plotter5.region(region).plot(clusterAmpPlot);
+ plotter6.region(region).plot(clposVsStrip);
}
IProfile1D hitsPerLayerTop = aida.profile1D("Number of Fitted Hits per layer in Top Half", 10, 1, 11);
@@ -182,10 +147,6 @@
this.outputPlots = output;
}
- public void setRawTrackerHitCollectionName(String rawTrackerHitCollectionName) {
- this.rawTrackerHitCollectionName = rawTrackerHitCollectionName;
- }
-
public void setFittedTrackerHitCollectionName(String fittedTrackerHitCollectionName) {
this.fittedTrackerHitCollectionName = fittedTrackerHitCollectionName;
}
@@ -195,18 +156,6 @@
}
public void process(EventHeader event) {
- if (!event.hasCollection(RawTrackerHit.class, rawTrackerHitCollectionName)) {
- System.out.println(rawTrackerHitCollectionName + " does not exist; skipping event");
- int ns = sensors.size();
- for (int i = 0; i < ns; i++) {
- aida.histogram1D(sensors.get(i).getName() + "_raw_hits").fill(0);
- aida.histogram1D(sensors.get(i).getName() + "_reco_hits").fill(0);
- aida.histogram1D(sensors.get(i).getName() + "_cluster_hits").fill(0);
- }
-
- return;
- }
-
if (!event.hasCollection(HPSFittedRawTrackerHit.class, fittedTrackerHitCollectionName)) {
System.out.println(fittedTrackerHitCollectionName + " does not exist; skipping event");
int ns = sensors.size();
@@ -219,7 +168,6 @@
}
++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);
int[] layersTop = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
@@ -231,12 +179,6 @@
layersBot[layer - 1]++;
else
layersTop[layer - 1]++;
- double fittedAmp = hrth.getAmp();
- double fittedT0 = hrth.getT0();
- String sensorName = sensor.getName();
- aida.histogram1D(sensorName + "_timing").fill(fittedT0);
- aida.histogram1D(sensorName + "_amplitude").fill(fittedAmp);
- aida.histogram1D(sensorName + "_chisq").fill(hrth.getShapeFitParameters().getChiSq());
}
for (int i = 0; i < 10; i++) {
@@ -305,9 +247,6 @@
@Override
public void reset() {
for (SiSensor sensor : sensors) {
- aida.histogram1D(sensor.getName() + "_timing").reset();
- aida.histogram1D(sensor.getName() + "_amplitude").reset();
- aida.histogram1D(sensor.getName() + "_chisq").reset();
aida.histogram1D(sensor.getName() + "_raw_hits").reset();
aida.histogram1D(sensor.getName() + "_reco_hits").reset();
aida.histogram1D(sensor.getName() + "_cluster_size").reset();
hps-java/src/main/java/org/lcsim/hps/monitoring/svt
diff -u -r1.5 -r1.6
--- SVTMonitoringPlots.java 24 May 2012 17:08:18 -0000 1.5
+++ SVTMonitoringPlots.java 24 May 2012 19:48:40 -0000 1.6
@@ -11,7 +11,6 @@
import org.lcsim.hps.monitoring.AIDAFrame;
import org.lcsim.hps.recon.tracking.HPSFittedRawTrackerHit;
import org.lcsim.hps.recon.tracking.HPSSVTCalibrationConstants;
-import org.lcsim.hps.recon.tracking.HPSSVTDAQMaps;
import org.lcsim.hps.recon.tracking.SvtUtils;
import org.lcsim.util.Driver;
import org.lcsim.util.aida.AIDA;
@@ -29,163 +28,138 @@
*/
public class SVTMonitoringPlots extends Driver {
- private String inputCollection = "SVTRawTrackerHits";
- private String fitCollection = "SVTFittedRawTrackerHits";
- private AIDA aida = AIDA.defaultInstance();
- private AIDAFrame plotterFrame;
- private IPlotter plotter, plotter2, plotter3, plotter4;
+ private String inputCollection = "SVTRawTrackerHits";
+ private String fitCollection = "SVTFittedRawTrackerHits";
+ private AIDA aida = AIDA.defaultInstance();
+ private AIDAFrame plotterFrame;
+ private IPlotter plotter, plotter2, plotter3;
// private IHistogram1D[][] plots = new IHistogram1D[2][10];
- private IProfile1D[][] pedestalShifts = new IProfile1D[2][10];
+ private IProfile1D[][] pedestalShifts = new IProfile1D[2][10];
// private IHistogram2D[][] pedestalShifts = new IHistogram2D[2][10];
- private IHistogram2D[][] t0s = new IHistogram2D[2][10];
- private IHistogram2D[][] amps = new IHistogram2D[2][10];
- private IHistogram2D[][] t0a = new IHistogram2D[2][10];
-
- public SVTMonitoringPlots() {
- }
-
- public void setInputCollection(String inputCollection) {
- this.inputCollection = inputCollection;
- }
-
- private int computePlotterRegion(int layer, int module) {
- // Compute the sensor's x and y grid coordinates and then translate to region number.
- int iy = (layer - 1) / 2;
- int ix = 0;
- if (module > 0) {
- ix += 2;
- }
- if (layer % 2 == 0) {
- ix += 1;
- }
- int region = ix * 5 + iy;
- //System.out.println(sensor.getName() + "; lyr=" + layer + "; mod=" + module + " -> xy[" + ix + "][" + iy + "] -> reg="+region);
- return region;
- }
-
- protected void detectorChanged(Detector detector) {
- plotterFrame = new AIDAFrame();
- plotterFrame.setTitle("HPS SVT Monitoring");
-
- // Setup the plotter.
- IAnalysisFactory fac = aida.analysisFactory();
-
- plotter = fac.createPlotterFactory().create("Pedestal Shifts");
- plotter.setTitle("Pedestal Shifts");
- plotterFrame.addPlotter(plotter);
- plotter.style().dataStyle().errorBarStyle().setVisible(false);
- plotter.style().statisticsBoxStyle().setVisible(false);
-// plotter.style().setParameter("hist2DStyle", "colorMap");
-// plotter.style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
-// plotter.style().zAxisStyle().setParameter("scale", "log");
- plotter.style().dataStyle().fillStyle().setColor("red");
- plotter.style().dataStyle().markerStyle().setShape("dot");
- plotter.style().dataStyle().markerStyle().setSize(1);
- plotter.createRegions(4, 5);
-
- plotter2 = fac.createPlotterFactory().create("Fitted T0");
- plotter2.setTitle("Fitted T0");
- plotterFrame.addPlotter(plotter2);
- plotter2.style().dataStyle().errorBarStyle().setVisible(false);
- plotter2.style().statisticsBoxStyle().setVisible(false);
- plotter2.style().setParameter("hist2DStyle", "colorMap");
- plotter2.style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- plotter2.style().zAxisStyle().setParameter("scale", "log");
- plotter2.style().zAxisStyle().setVisible(false);
-// plotter2.style().dataStyle().markerStyle().setShape("dot");
-// plotter2.style().dataStyle().markerStyle().setSize(1);
- plotter2.createRegions(4, 5);
-
- plotter3 = fac.createPlotterFactory().create("Fitted Amplitude");
- plotter3.setTitle("Fitted Amplitude");
- plotterFrame.addPlotter(plotter3);
- plotter3.style().dataStyle().errorBarStyle().setVisible(false);
- plotter3.style().statisticsBoxStyle().setVisible(false);
- plotter3.style().setParameter("hist2DStyle", "colorMap");
- plotter3.style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- plotter3.style().zAxisStyle().setParameter("scale", "log");
- plotter3.style().zAxisStyle().setVisible(false);
-// plotter3.style().dataStyle().markerStyle().setShape("dot");
-// plotter3.style().dataStyle().markerStyle().setSize(1);
- plotter3.createRegions(4, 5);
-
- plotter4 = fac.createPlotterFactory().create("A vs. T0");
- plotter4.setTitle("A vs. T0");
- plotterFrame.addPlotter(plotter4);
- plotter4.style().dataStyle().errorBarStyle().setVisible(false);
- plotter4.style().statisticsBoxStyle().setVisible(false);
- plotter4.style().setParameter("hist2DStyle", "colorMap");
- plotter4.style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
- plotter4.style().zAxisStyle().setParameter("scale", "log");
- plotter4.style().zAxisStyle().setVisible(false);
- plotter4.createRegions(4, 5);
-
- // Setup the occupancy plots.
- aida.tree().cd("/");
- for (int module = 0; module < 2; module++) {
- for (int layer = 0; layer < 10; layer++) {
- int region = computePlotterRegion(layer + 1, module);
- pedestalShifts[module][layer] = aida.profile1D(SvtUtils.getInstance().getSensor(module, layer).getName() + " Pedestal Shifts", 640, -0.5, 639.5);
+ private IHistogram2D[][] t0s = new IHistogram2D[2][10];
+ private IHistogram2D[][] amps = new IHistogram2D[2][10];
+
+ public SVTMonitoringPlots() {
+ }
+
+ public void setInputCollection(String inputCollection) {
+ this.inputCollection = inputCollection;
+ }
+
+ private int computePlotterRegion(int layer, int module) {
+ // Compute the sensor's x and y grid coordinates and then translate to region number.
+ int iy = (layer - 1) / 2;
+ int ix = 0;
+ if (module > 0) {
+ ix += 2;
+ }
+ if (layer % 2 == 0) {
+ ix += 1;
+ }
+ int region = ix * 5 + iy;
+ //System.out.println(sensor.getName() + "; lyr=" + layer + "; mod=" + module + " -> xy[" + ix + "][" + iy + "] -> reg="+region);
+ return region;
+ }
+
+ protected void detectorChanged(Detector detector) {
+ plotterFrame = new AIDAFrame();
+ plotterFrame.setTitle("HPS SVT Monitoring");
+
+ // Setup the plotter.
+ IAnalysisFactory fac = aida.analysisFactory();
+
+ plotter = fac.createPlotterFactory().create("Pedestal Shifts");
+ plotter.setTitle("Pedestal Shifts");
+ plotterFrame.addPlotter(plotter);
+ plotter.style().dataStyle().errorBarStyle().setVisible(false);
+ plotter.style().statisticsBoxStyle().setVisible(false);
+ plotter.style().dataStyle().fillStyle().setColor("red");
+ plotter.style().dataStyle().markerStyle().setShape("dot");
+ plotter.style().dataStyle().markerStyle().setSize(1);
+ plotter.createRegions(4, 5);
+
+ plotter2 = fac.createPlotterFactory().create("Fitted T0");
+ plotter2.setTitle("Fitted T0");
+ plotterFrame.addPlotter(plotter2);
+ plotter2.style().dataStyle().errorBarStyle().setVisible(false);
+ plotter2.style().statisticsBoxStyle().setVisible(false);
+ plotter2.style().setParameter("hist2DStyle", "colorMap");
+ plotter2.style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ plotter2.style().zAxisStyle().setParameter("scale", "log");
+ plotter2.style().zAxisStyle().setVisible(false);
+ plotter2.createRegions(4, 5);
+
+ plotter3 = fac.createPlotterFactory().create("Fitted Amplitude");
+ plotter3.setTitle("Fitted Amplitude");
+ plotterFrame.addPlotter(plotter3);
+ plotter3.style().dataStyle().errorBarStyle().setVisible(false);
+ plotter3.style().statisticsBoxStyle().setVisible(false);
+ plotter3.style().setParameter("hist2DStyle", "colorMap");
+ plotter3.style().dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ plotter3.style().zAxisStyle().setParameter("scale", "log");
+ plotter3.style().zAxisStyle().setVisible(false);
+ plotter3.createRegions(4, 5);
+
+ // Setup the occupancy plots.
+ aida.tree().cd("/");
+ for (int module = 0; module < 2; module++) {
+ for (int layer = 0; layer < 10; layer++) {
+ int region = computePlotterRegion(layer + 1, module);
+ SiSensor sensor = SvtUtils.getInstance().getSensor(module, layer);
+ pedestalShifts[module][layer] = aida.profile1D(sensor.getName() + " Pedestal Shifts", 640, -0.5, 639.5);
// pedestalShifts[module][layer] = aida.histogram2D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " Pedestal Shifts", 640, -0.5, 639.5, 100, -500, 500);
- plotter.region(region).plot(pedestalShifts[module][layer]);
- t0s[module][layer] = aida.histogram2D(SvtUtils.getInstance().getSensor(module, layer).getName() + " Fitted T0", 640, -0.5, 639.5, 100, -24, 72);
- plotter2.region(region).plot(t0s[module][layer]);
- amps[module][layer] = aida.histogram2D(SvtUtils.getInstance().getSensor(module, layer).getName() + " Fitted Amplitude", 640, -0.5, 639.5, 100, 0, 2000);
- plotter3.region(region).plot(amps[module][layer]);
- t0a[module][layer] = aida.histogram2D(SvtUtils.getInstance().getSensor(module, layer).getName() + " A vs. T0", 100, -100, 100, 100, 0, 2000);
- plotter4.region(region).plot(t0a[module][layer]);
-// plotter3.region(region).style().zAxisStyle().setParameter("labelVertical", "false");
-// for (String str : plotter3.region(region).style().zAxisStyle().availableParameterOptions("labelVertical"))
-// System.out.println(str);
-
- }
- }
- plotterFrame.pack();
- plotterFrame.setVisible(true);
- }
-
- public void process(EventHeader event) {
- if (event.hasCollection(RawTrackerHit.class, inputCollection)) {
-
- // Get RawTrackerHit collection from event.
- List<RawTrackerHit> rawTrackerHits = event.get(RawTrackerHit.class, inputCollection);
-
- // Clear histograms.
- for (int module = 0; module < 2; module++) {
- for (int layer = 1; layer < 11; layer++) {
+ plotter.region(region).plot(pedestalShifts[module][layer]);
+ t0s[module][layer] = aida.histogram2D(sensor.getName() + " Fitted T0", 640, -0.5, 639.5, 100, -24, 72);
+ plotter2.region(region).plot(t0s[module][layer]);
+ amps[module][layer] = aida.histogram2D(sensor.getName() + " Fitted Amplitude", 640, -0.5, 639.5, 100, 0, 2000);
+ plotter3.region(region).plot(amps[module][layer]);
+ }
+ }
+ plotterFrame.pack();
+ plotterFrame.setVisible(true);
+ }
+
+ public void process(EventHeader event) {
+ if (event.hasCollection(RawTrackerHit.class, inputCollection)) {
+
+ // Get RawTrackerHit collection from event.
+ List<RawTrackerHit> rawTrackerHits = event.get(RawTrackerHit.class, inputCollection);
+
+ // Clear histograms.
+ for (int module = 0; module < 2; module++) {
+ for (int layer = 1; layer < 11; layer++) {
// plotter.region(computePlotterRegion(layer, module)).setYLimits(pedestalShifts[module][layer - 1].minBinHeight()-100, pedestalShifts[module][layer - 1].maxBinHeight()+100);
// pedestalShifts[module][layer - 1].reset();
- }
- }
+ }
+ }
- // Increment strip hit count.
- for (RawTrackerHit hit : rawTrackerHits) {
- int layer = hit.getIdentifierFieldValue("layer"); // 1-10; axial layers are odd layers; stereo layers are even
- int module = hit.getIdentifierFieldValue("module"); // 0-1; module number is top or bottom
- double pedestal = HPSSVTCalibrationConstants.getPedestal((SiSensor) hit.getDetectorElement(), hit.getIdentifierFieldValue("strip"));
- pedestalShifts[module][layer - 1].fill(hit.getIdentifierFieldValue("strip"), hit.getADCValues()[0] - pedestal);
- }
- }
-
- if (event.hasCollection(HPSFittedRawTrackerHit.class, fitCollection)) {
- List<HPSFittedRawTrackerHit> fits = event.get(HPSFittedRawTrackerHit.class, fitCollection);
- for (HPSFittedRawTrackerHit fit : fits) {
- int layer = fit.getRawTrackerHit().getIdentifierFieldValue("layer"); // 1-10; axial layers are odd layers; stereo layers are even
- int module = fit.getRawTrackerHit().getIdentifierFieldValue("module"); // 0-1; module number is top or bottom
- int strip = fit.getRawTrackerHit().getIdentifierFieldValue("strip");
- if (fit.getShapeFitParameters().getChiSq() < 5) {
-// if (fit.getAmp() > 200) {
- t0s[module][layer - 1].fill(strip, fit.getT0());
-// }
- amps[module][layer - 1].fill(strip, fit.getAmp());
- t0a[module][layer - 1].fill(fit.getT0(), fit.getAmp());
- }
- }
- }
-
- }
-
- public void endOfData() {
- plotterFrame.dispose();
- }
+ // Increment strip hit count.
+ for (RawTrackerHit hit : rawTrackerHits) {
+ int layer = hit.getIdentifierFieldValue("layer"); // 1-10; axial layers are odd layers; stereo layers are even
+ int module = hit.getIdentifierFieldValue("module"); // 0-1; module number is top or bottom
+ double pedestal = HPSSVTCalibrationConstants.getPedestal((SiSensor) hit.getDetectorElement(), hit.getIdentifierFieldValue("strip"));
+ pedestalShifts[module][layer - 1].fill(hit.getIdentifierFieldValue("strip"), hit.getADCValues()[0] - pedestal);
+ }
+ }
+
+ if (event.hasCollection(HPSFittedRawTrackerHit.class, fitCollection)) {
+ List<HPSFittedRawTrackerHit> fits = event.get(HPSFittedRawTrackerHit.class, fitCollection);
+ for (HPSFittedRawTrackerHit fit : fits) {
+ int layer = fit.getRawTrackerHit().getIdentifierFieldValue("layer"); // 1-10; axial layers are odd layers; stereo layers are even
+ int module = fit.getRawTrackerHit().getIdentifierFieldValue("module"); // 0-1; module number is top or bottom
+ int strip = fit.getRawTrackerHit().getIdentifierFieldValue("strip");
+ if (fit.getShapeFitParameters().getChiSq() < 5) {
+ double noise = HPSSVTCalibrationConstants.getNoise((SiSensor) fit.getRawTrackerHit().getDetectorElement(), strip);
+ if (fit.getAmp() > 4 * noise) {
+ t0s[module][layer - 1].fill(strip, fit.getT0());
+ }
+ amps[module][layer - 1].fill(strip, fit.getAmp());
+ }
+ }
+ }
+ }
+
+ public void endOfData() {
+ plotterFrame.dispose();
+ }
}
\ No newline at end of file
hps-java/src/main/resources/org/lcsim/hps/steering
diff -u -r1.19 -r1.20
--- TestRunMonitoring.lcsim 23 May 2012 18:22:16 -0000 1.19
+++ TestRunMonitoring.lcsim 24 May 2012 19:48:40 -0000 1.20
@@ -18,11 +18,12 @@
<!-- <driver name="EcalDaqPlots"/>-->
<driver name="EcalMonitoringPlots"/>
<!-- <driver name="EcalEventMonitor"/>-->
- <driver name="SVTOccupancyPlots"/>
+<!-- <driver name="SVTOccupancyPlots"/>-->
<driver name="SVTSimpleEventDisplay"/>
<!-- <driver name="SVTPulsePlots"/>-->
<driver name="SVTMonitoringPlots"/>
- <driver name="SVTHitRecoPlots"/>
+ <driver name="SVTPulseFitPlots"/>
+<!-- <driver name="SVTHitRecoPlots"/>-->
<driver name="CleanupDriver"/>
</execute>
@@ -77,9 +78,12 @@
</driver>
<driver name="SVTMonitoringPlots" type="org.lcsim.hps.monitoring.svt.SVTMonitoringPlots">
</driver>
+ <driver name="SVTPulseFitPlots"
+ type="org.lcsim.hps.monitoring.svt.SVTPulseFitPlots">
+ <fittedTrackerHitCollectionName>SVTFittedRawTrackerHits</fittedTrackerHitCollectionName>
+ </driver>
<driver name="SVTHitRecoPlots"
type="org.lcsim.hps.monitoring.svt.SVTHitReconstructionPlots">
- <rawTrackerHitCollectionName>SVTRawTrackerHits</rawTrackerHitCollectionName>
<fittedTrackerHitCollectionName>SVTFittedRawTrackerHits</fittedTrackerHitCollectionName>
</driver>
<driver name="RawTrackerHitMaker" type="org.lcsim.hps.recon.tracking.SVTDataToRawTrackerHitDriver"/>
CVSspam 0.2.12