hps-java/src/main/java/org/lcsim/hps/monitoring/svt
diff -u -r1.3 -r1.4
--- SVTMonitoringPlots.java 18 May 2012 08:26:35 -0000 1.3
+++ SVTMonitoringPlots.java 22 May 2012 22:11:01 -0000 1.4
@@ -28,148 +28,163 @@
*/
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;
+ private String inputCollection = "SVTRawTrackerHits";
+ private String fitCollection = "SVTFittedRawTrackerHits";
+ private AIDA aida = AIDA.defaultInstance();
+ private AIDAFrame plotterFrame;
+ private IPlotter plotter, plotter2, plotter3, plotter4;
// 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];
-
- 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);
+ 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);
+ 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);
+ 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 = 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);
+ 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);
- pedestalShifts[module][layer] = aida.profile1D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " Pedestal Shifts", 640, -0.5, 639.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(HPSSVTDAQMaps.sensorArray[module][layer].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(HPSSVTDAQMaps.sensorArray[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(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " Fitted Amplitude", 640, -0.5, 639.5, 100, 0, 2000);
- plotter3.region(region).plot(amps[module][layer]);
+ plotter.region(region).plot(pedestalShifts[module][layer]);
+ t0s[module][layer] = aida.histogram2D(HPSSVTDAQMaps.sensorArray[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(HPSSVTDAQMaps.sensorArray[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(HPSSVTDAQMaps.sensorArray[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++) {
+ }
+ }
+ 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) {
+ // 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());
+ t0s[module][layer - 1].fill(strip, fit.getT0());
// }
- amps[module][layer - 1].fill(strip, fit.getAmp());
- }
- }
- }
-
- }
-
- public void endOfData() {
- plotterFrame.dispose();
- }
+ amps[module][layer - 1].fill(strip, fit.getAmp());
+ t0a[module][layer - 1].fill(fit.getT0(), fit.getAmp());
+ }
+ }
+ }
+
+ }
+
+ public void endOfData() {
+ plotterFrame.dispose();
+ }
}
\ No newline at end of file