Commit in hps-java/src/main/java/org/lcsim/hps/monitoring/svt on MAIN | |||
TrackTimePlots.java | +51 | -5 | 1.2 -> 1.3 |
SVTHitReconstructionPlots.java | +41 | -22 | 1.18 -> 1.19 |
+92 | -27 |
various changes to SVT timing plots
diff -u -r1.2 -r1.3 --- TrackTimePlots.java 11 Jun 2012 22:57:02 -0000 1.2 +++ TrackTimePlots.java 22 Jun 2012 00:24:44 -0000 1.3 @@ -1,9 +1,11 @@
package org.lcsim.hps.monitoring.svt; import hep.aida.*;
+import hep.aida.ref.plotter.PlotterRegion;
import java.util.List; import org.lcsim.detector.identifier.IIdentifier; import org.lcsim.detector.identifier.IIdentifierHelper;
+import org.lcsim.detector.tracker.silicon.DopedSilicon;
import org.lcsim.detector.tracker.silicon.SiSensor; import org.lcsim.event.EventHeader; import org.lcsim.event.Track;
@@ -31,7 +33,7 @@
private AIDA aida = AIDA.defaultInstance(); private String hitCollection = "StripClusterer_SiTrackerHitStrip1D"; private String trackCollection = "MatchedTracks";
- IPlotter plotter, plotter2, plotter3, plotter4, plotter5,plotter6;
+ IPlotter plotter, plotter2, plotter3, plotter4, plotter5, plotter6, plotter7;
private IHistogram1D[][] t0 = new IHistogram1D[2][10]; private IHistogram1D[][] trackHitT0 = new IHistogram1D[2][10]; private IHistogram1D[][] trackHitDt = new IHistogram1D[2][10];
@@ -39,6 +41,8 @@
private IHistogram1D[] trackT0 = new IHistogram1D[2]; private IHistogram2D[] trackTrigTime = new IHistogram2D[2]; private IHistogram2D[][] trackHitDtChan = new IHistogram2D[2][10];
+ private IHistogram1D[] trackTimeRange = new IHistogram1D[2]; + private IHistogram2D[] trackTimeMinMax = new IHistogram2D[2];
@Override protected void detectorChanged(Detector detector) {
@@ -87,6 +91,7 @@
plotter5.setTitle("Track Time vs. dt"); plotterFrame.addPlotter(plotter5); style = plotter5.style();
+ style.statisticsBoxStyle().setVisible(false);
style.setParameter("hist2DStyle", "colorMap"); style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow"); style.zAxisStyle().setParameter("scale", "log");
@@ -96,34 +101,65 @@
plotter6.setTitle("Track dt vs. Channel"); plotterFrame.addPlotter(plotter6); style = plotter6.style();
+ style.statisticsBoxStyle().setVisible(false);
style.setParameter("hist2DStyle", "colorMap"); style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow"); style.zAxisStyle().setParameter("scale", "log"); plotter6.createRegions(4, 5);
+ plotter7 = fac.create("HPS SVT Track Hit Time Range"); + plotter7.setTitle("Track Hit Time Range"); + plotterFrame.addPlotter(plotter7); + style = plotter7.style(); + style.dataStyle().fillStyle().setColor("yellow"); + style.dataStyle().errorBarStyle().setVisible(false); + plotter7.createRegions(2, 2); +
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", 75, -50, 100.0); plotter.region(region).plot(t0[module][layer]);
- trackHitT0[module][layer] = aida.histogram1D(sensor.getName() + "_trackHit_timing", 75, -50, 100.0);
+ ((PlotterRegion) plotter.region(region)).getPlot().getXAxis().setLabel("Hit time [ns]"); + trackHitT0[module][layer] = aida.histogram1D(sensor.getName() + "_trackHit_timing", 75, -50, 4000.0);
plotter3.region(region).plot(trackHitT0[module][layer]);
+ ((PlotterRegion) plotter3.region(region)).getPlot().getXAxis().setLabel("Hit time [ns]");
trackHitDt[module][layer] = aida.histogram1D(sensor.getName() + "_trackHit_dt", 50, -20, 20.0); plotter4.region(region).plot(trackHitDt[module][layer]);
+ ((PlotterRegion) plotter4.region(region)).getPlot().getXAxis().setLabel("Hit time residual [ns]");
trackHit2D[module][layer] = aida.histogram2D(sensor.getName() + "_trackHit_dt_2D", 75, -50, 100.0, 50, -20, 20.0); plotter5.region(region).plot(trackHit2D[module][layer]);
+ ((PlotterRegion) plotter5.region(region)).getPlot().getXAxis().setLabel("Track time [ns]"); + ((PlotterRegion) plotter5.region(region)).getPlot().getYAxis().setLabel("Hit time [ns]");
trackHitDtChan[module][layer] = aida.histogram2D(sensor.getName() + "_trackHit_dt_chan", 200, -20, 20, 50, -20, 20.0); plotter6.region(region).plot(trackHitDtChan[module][layer]);
+ ((PlotterRegion) plotter6.region(region)).getPlot().getXAxis().setLabel("Hit position [mm]"); + ((PlotterRegion) plotter6.region(region)).getPlot().getYAxis().setLabel("Hit time residual [ns]");
}
- trackT0[module] = aida.histogram1D((module == 0 ? "Top" : "Bottom") + "Track Time", 75, -50, 100.0);
+ trackT0[module] = aida.histogram1D((module == 0 ? "Top" : "Bottom") + " Track Time", 75, -50, 100.0);
plotter2.region(module).plot(trackT0[module]);
- trackTrigTime[module] = aida.histogram2D((module == 0 ? "Top" : "Bottom") + "Track Time vs. Trig Time", 75, -50, 100.0, 33, -1, 32);
+ ((PlotterRegion) plotter2.region(module)).getPlot().getXAxis().setLabel("Track time [ns]"); + trackTrigTime[module] = aida.histogram2D((module == 0 ? "Top" : "Bottom") + " Track Time vs. Trig Time", 75, -50, 100.0, 33, -1, 32);
plotter2.region(module + 2).plot(trackTrigTime[module]);
+ ((PlotterRegion) plotter2.region(module+2)).getPlot().getXAxis().setLabel("Track time [ns]"); + ((PlotterRegion) plotter2.region(module+2)).getPlot().getYAxis().setLabel("Trigger time [clocks]");
style = plotter2.region(module + 2).style(); style.setParameter("hist2DStyle", "colorMap"); style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow"); style.zAxisStyle().setParameter("scale", "log");
+ + trackTimeRange[module] = aida.histogram1D((module == 0 ? "Top" : "Bottom") + " Track Hit Time Range", 75, 0, 30.0); + plotter7.region(module).plot(trackTimeRange[module]); + ((PlotterRegion) plotter7.region(module)).getPlot().getXAxis().setLabel("Track time range [ns]"); + trackTimeMinMax[module] = aida.histogram2D((module == 0 ? "Top" : "Bottom") + " First and Last Track Hit Times", 75, -50, 100.0, 75, -50, 100.0); + plotter7.region(module + 2).plot(trackTimeMinMax[module]); + ((PlotterRegion) plotter7.region(module+2)).getPlot().getXAxis().setLabel("First track hit time [ns]"); + ((PlotterRegion) plotter7.region(module+2)).getPlot().getYAxis().setLabel("Last track hit time [ns]"); + style = plotter7.region(module + 2).style(); + style.setParameter("hist2DStyle", "colorMap"); + style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow"); + style.zAxisStyle().setParameter("scale", "log");
} // shape = aida.histogram2D("Shape", 200, -1, 3, 200, -0.5, 2); // plotter5.region(0).plot(shape);
@@ -203,16 +239,26 @@
} else { trackModule = 1; }
+ double minTime = Double.POSITIVE_INFINITY; + double maxTime = Double.NEGATIVE_INFINITY;
int hitCount = 0; double trackTime = 0; for (TrackerHit hitCross : track.getTrackerHits()) { for (HelicalTrackStrip hit : ((HelicalTrackCross) hitCross).getStrips()) { int layer = hit.layer();
- trackHitT0[trackModule][layer - 1].fill(hit.time());
+ trackHitT0[trackModule][layer - 1].fill(hit.dEdx() / DopedSilicon.ENERGY_EHPAIR);
trackTime += hit.time(); hitCount++;
+ if (hit.time() > maxTime) { + maxTime = hit.time(); + } + if (hit.time() < minTime) { + minTime = hit.time(); + }
} }
+ trackTimeMinMax[trackModule].fill(minTime, maxTime); + trackTimeRange[trackModule].fill(maxTime - minTime);
trackTime /= hitCount; trackT0[trackModule].fill(trackTime); if (trackModule == 0) {
diff -u -r1.18 -r1.19 --- SVTHitReconstructionPlots.java 11 Jun 2012 22:52:43 -0000 1.18 +++ SVTHitReconstructionPlots.java 22 Jun 2012 00:24:44 -0000 1.19 @@ -1,6 +1,7 @@
package org.lcsim.hps.monitoring.svt; import hep.aida.*;
+import hep.aida.ref.plotter.PlotterRegion;
import java.io.IOException; import java.util.HashMap; import java.util.List;
@@ -44,6 +45,12 @@
IPlotter plotter4; IPlotter plotter5; IPlotter plotter6;
+ IHistogram1D nrawPlot[][] = new IHistogram1D[2][10]; + IHistogram1D nrecoPlot[][] = new IHistogram1D[2][10]; + IHistogram1D nclustPlot[][] = new IHistogram1D[2][10]; + IHistogram1D clusterSizePlot[][] = new IHistogram1D[2][10]; + IHistogram1D clusterAmpPlot[][] = new IHistogram1D[2][10]; + IHistogram2D clposVsStrip[][] = new IHistogram2D[2][10];
private Map<String, Integer> sensorRegionMap; private String outputPlots = null;
@@ -106,6 +113,7 @@
style7.dataStyle().fillStyle().setColor("green"); style7.dataStyle().errorBarStyle().setVisible(false); plotter5.createRegions(5, 4);
+// plotter5.createRegion();
plotter6 = fac.createPlotterFactory().create("HPS SVT Cluster Position Vs Channel"); plotter6.setTitle("Cluster Position (y)");
@@ -119,22 +127,30 @@
style8.zAxisStyle().setParameter("scale", "log"); plotter6.createRegions(5, 4);
- for (SiSensor sensor : sensors) { - IHistogram1D nrawPlot = aida.histogram1D(sensor.getName() + "_raw_hits", 10, -0.5, 9.5); - IHistogram1D nrecoPlot = aida.histogram1D(sensor.getName() + "_reco_hits", 10, -0.5, 9.5); - IHistogram1D nclustPlot = aida.histogram1D(sensor.getName() + "_cluster_hits", 10, -0.5, 9.5); - IHistogram1D clusterSizePlot = aida.histogram1D(sensor.getName() + "_cluster_size", 9, 0.5, 9.5); - IHistogram1D clusterAmpPlot = aida.histogram1D(sensor.getName() + "_cluster_amp", 50, 0, 3000.0); - IHistogram2D clposVsStrip = aida.histogram2D(sensor.getName() + "_cluster_vs_strip", 128, 0, 640, 100, -50, 50); - int region = sensorRegionMap.get(sensor.getName()); - 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); -
+ for (int module = 0; module < 2; module++) { + for (int layer = 0; layer < 10; layer++) { + SiSensor sensor = SvtUtils.getInstance().getSensor(module, layer); + int region = computePlotterRegion(sensor); + + nrawPlot[module][layer] = aida.histogram1D(sensor.getName() + "_raw_hits", 10, -0.5, 9.5); + nrecoPlot[module][layer] = aida.histogram1D(sensor.getName() + "_reco_hits", 10, -0.5, 9.5); + nclustPlot[module][layer] = aida.histogram1D(sensor.getName() + "_cluster_hits", 10, -0.5, 9.5); + clusterSizePlot[module][layer] = aida.histogram1D(sensor.getName() + "_cluster_size", 9, 0.5, 9.5); + clusterAmpPlot[module][layer] = aida.histogram1D(sensor.getName() + "_cluster_amp", 50, 0, 4000.0); + clposVsStrip[module][layer] = aida.histogram2D(sensor.getName() + "_cluster_vs_strip", 128, 0, 640, 100, -50, 50); + plotter1.region(region).plot(nrawPlot[module][layer]); + plotter3.region(region).plot(nrecoPlot[module][layer]); + plotter2.region(region).plot(nclustPlot[module][layer]); + plotter4.region(region).plot(clusterSizePlot[module][layer]); + plotter5.region(region).plot(clusterAmpPlot[module][layer]); + ((PlotterRegion) plotter5.region(region)).getPlot().getXAxis().setLabel("Cluster amplitude [ADC counts]"); + plotter6.region(region).plot(clposVsStrip[module][layer]); + }
}
+ +// plotter5.region(0).plot(aida.histogram1D("Tracker_TestRunModule_layer6_module0_sensor0" + "_cluster_amp")); +// ((PlotterRegion) plotter5.region(0)).getPlot().getXAxis().setLabel("Cluster amplitude [ADC counts]"); +
IProfile1D hitsPerLayerTop = aida.profile1D("Number of Fitted Hits per layer in Top Half", 10, 1, 11); IProfile1D hitsPerLayerBot = aida.profile1D("Number of Fitted Hits per layer in Bottom Half", 10, 1, 11); plotterFrame.pack();
@@ -176,10 +192,11 @@
for (HPSFittedRawTrackerHit hrth : fittedrawHits) { SiSensor sensor = (SiSensor) hrth.getRawTrackerHit().getDetectorElement(); int layer = hrth.getRawTrackerHit().getLayerNumber();
- if (!SvtUtils.getInstance().isTopLayer(sensor))
+ if (!SvtUtils.getInstance().isTopLayer(sensor)) {
layersBot[layer - 1]++;
- else
+ } else {
layersTop[layer - 1]++;
+ }
} for (int i = 0; i < 10; i++) {
@@ -189,14 +206,15 @@
Map<SiSensor, Integer> clustMap = new HashMap<SiSensor, Integer>(); for (SiTrackerHitStrip1D cluster : stripHits) { SiSensor sensor = cluster.getSensor();
- if (clustMap.containsKey(sensor))
+ if (clustMap.containsKey(sensor)) {
clustMap.put(sensor, clustMap.get(sensor) + 1);
- else
+ } else {
clustMap.put(sensor, 1);
+ }
String sensorName = sensor.getName(); int clusterSize = cluster.getRawHits().size(); aida.histogram1D(sensorName + "_cluster_size").fill(clusterSize);
- double cluAmp = cluster.getdEdx()/DopedSilicon.ENERGY_EHPAIR;
+ double cluAmp = cluster.getdEdx() / DopedSilicon.ENERGY_EHPAIR;
aida.histogram1D(sensorName + "_cluster_amp").fill(cluAmp); double clpos = cluster.getPositionAsVector().y(); RawTrackerHit raw = (RawTrackerHit) cluster.getRawHits().get(0);
@@ -213,10 +231,11 @@
int nreco = sensor.getReadout().getHits(HPSFittedRawTrackerHit.class).size(); aida.histogram1D(sensorName + "_raw_hits").fill(nraw); aida.histogram1D(sensorName + "_reco_hits").fill(nreco);
- if (clustMap.containsKey(sensor))
+ if (clustMap.containsKey(sensor)) {
aida.histogram1D(sensorName + "_cluster_hits").fill(clustMap.get(sensor));
- else
+ } else {
aida.histogram1D(sensorName + "_cluster_hits").fill(0);
+ }
} }
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