Commit in hps-java/src/main on MAIN | |||
java/org/lcsim/hps/monitoring/svt/SVTPulseFitPlots.java | +204 | added 1.1 | |
/SVTSimpleEventDisplay.java | +5 | -11 | 1.7 -> 1.8 |
/SVTHitReconstructionPlots.java | +38 | -99 | 1.16 -> 1.17 |
/SVTMonitoringPlots.java | +128 | -154 | 1.5 -> 1.6 |
resources/org/lcsim/hps/steering/TestRunMonitoring.lcsim | +7 | -3 | 1.19 -> 1.20 |
+382 | -267 |
pull some plots out of SVTHitReconstructionPlots
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; + } +}
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();
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();
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
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"/>
Use REPLY-ALL to reply to list
To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1