hps-java/src/main/java/org/lcsim/hps/monitoring/svt
diff -u -r1.14 -r1.15
--- SVTHitReconstructionPlots.java 18 May 2012 07:41:49 -0000 1.14
+++ SVTHitReconstructionPlots.java 24 May 2012 14:33:59 -0000 1.15
@@ -9,13 +9,17 @@
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;
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.HPSSVTDAQMaps;
import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHitStrip1D;
import org.lcsim.util.Driver;
import org.lcsim.util.aida.AIDA;
@@ -23,7 +27,8 @@
/**
*
* @author mgraham
- * @version $Id: SVTHitReconstructionPlots.java,v 1.14 2012/05/18 07:41:49 meeg Exp $
+ * @version $Id: SVTHitReconstructionPlots.java,v 1.14 2012/05/18 07:41:49 meeg
+ * Exp $
*/
public class SVTHitReconstructionPlots extends Driver implements Resettable {
@@ -39,9 +44,11 @@
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;
@@ -101,22 +108,43 @@
style4.dataStyle().errorBarStyle().setVisible(false);
plotter5.createRegions(5, 4);
+
+ plotter44 = fac.createPlotterFactory().create("HPS SVT Cluster Hit Plots");
+ plotter44.setTitle("Clusters");
+ plotterFrame.addPlotter(plotter44);
+ IPlotterStyle style44 = plotter44.style();
+ style44.dataStyle().fillStyle().setColor("yellow");
+ style44.dataStyle().errorBarStyle().setVisible(false);
+ plotter44.createRegions(5, 4);
+
plotter6 = fac.createPlotterFactory().create("HPS SVT Cluster Size Plots");
plotter6.setTitle("Cluster Size");
plotterFrame.addPlotter(plotter6);
- IPlotterStyle style5 = plotter6.style();
- style5.dataStyle().fillStyle().setColor("green");
- style5.dataStyle().errorBarStyle().setVisible(false);
+ IPlotterStyle style6 = plotter6.style();
+ style6.dataStyle().fillStyle().setColor("green");
+ style6.dataStyle().errorBarStyle().setVisible(false);
plotter6.createRegions(5, 4);
+
plotter7 = fac.createPlotterFactory().create("HPS SVT Cluster Amp Plots");
- plotter7.setTitle("Cluster Amp");
+ plotter7.setTitle("Cluster Amplitude");
plotterFrame.addPlotter(plotter7);
- IPlotterStyle style6 = plotter7.style();
- style6.dataStyle().fillStyle().setColor("green");
- style6.dataStyle().errorBarStyle().setVisible(false);
+ IPlotterStyle style7 = plotter7.style();
+ style7.dataStyle().fillStyle().setColor("green");
+ style7.dataStyle().errorBarStyle().setVisible(false);
plotter7.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();
+ style8.dataStyle().fillStyle().setColor("green");
+ style8.dataStyle().errorBarStyle().setVisible(false);
+ style8.statisticsBoxStyle().setVisible(false);
+ plotter8.style().setParameter("hist2DStyle", "colorMap");
+ style8.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ style8.zAxisStyle().setParameter("scale", "log");
+ plotter8.createRegions(5, 4);
for (SiSensor sensor : sensors) {
IHistogram1D timingPlot = aida.histogram1D(sensor.getName() + "_timing", 50, -100, 100.0);
@@ -124,18 +152,24 @@
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);
IHistogram1D clusterSizePlot = aida.histogram1D(sensor.getName() + "_cluster_size", 9, 1, 9.0);
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);
+ }
+ 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();
plotterFrame.setVisible(true);
}
@@ -166,6 +200,7 @@
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;
@@ -186,29 +221,56 @@
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};
+ int[] layersBot = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
for (HPSFittedRawTrackerHit hrth : fittedrawHits) {
+ SiSensor sensor = (SiSensor) hrth.getRawTrackerHit().getDetectorElement();
+ int layer = hrth.getRawTrackerHit().getLayerNumber();
+ if (!HPSSVTDAQMaps.sensorToTopLayer.containsKey(sensor))
+ layersBot[layer - 1]++;
+ else
+ layersTop[layer - 1]++;
double fittedAmp = hrth.getAmp();
double fittedT0 = hrth.getT0();
- String sensorName = hrth.getRawTrackerHit().getDetectorElement().getName();
+ 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 (SiSensor sensor : sensors) {
- String sensorName = sensor.getName();
- int nraw = sensor.getReadout().getHits(RawTrackerHit.class).size();
- int nreco = sensor.getReadout().getHits(HPSFittedRawTrackerHit.class).size();
- aida.histogram1D(sensorName + "_raw_hits").fill(nraw);
- aida.histogram1D(sensorName + "_reco_hits").fill(nreco);
+
+ for (int i = 0; i < 10; i++) {
+ aida.profile1D("Number of Fitted Hits per layer in Top Half").fill(i + 1, layersTop[i]);
+ aida.profile1D("Number of Fitted Hits per layer in Bottom Half").fill(i + 1, layersBot[i]);
}
+ Map<SiSensor, Integer> clustMap = new HashMap<SiSensor, Integer>();
for (SiTrackerHitStrip1D cluster : stripHits) {
SiSensor sensor = cluster.getSensor();
+ if (clustMap.containsKey(sensor))
+ clustMap.put(sensor, clustMap.get(sensor) + 1);
+ else
+ clustMap.put(sensor, 1);
String sensorName = sensor.getName();
int clusterSize = cluster.getRawHits().size();
aida.histogram1D(sensorName + "_cluster_size").fill(clusterSize);
- //double cluAmp = getCluAmp(cluster,fittedrawHits);
double cluAmp = cluster.getdEdx();
aida.histogram1D(sensorName + "_cluster_amp").fill(cluAmp);
+ double clpos = cluster.getPositionAsVector().y();
+ RawTrackerHit raw = (RawTrackerHit) cluster.getRawHits().get(0);
+ SiTrackerIdentifierHelper _sid_helper = (SiTrackerIdentifierHelper) raw.getDetectorElement().getIdentifierHelper();
+ IIdentifier id = raw.getIdentifier();
+ int stripNum = _sid_helper.getElectrodeValue(id);
+ aida.histogram2D(sensorName + "_cluster_vs_strip").fill(stripNum, clpos);
+ }
+
+
+ for (SiSensor sensor : sensors) {
+ String sensorName = sensor.getName();
+ int nraw = sensor.getReadout().getHits(RawTrackerHit.class).size();
+ 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))
+ aida.histogram1D(sensorName + "_cluster_hits").fill(clustMap.get(sensor));
}
}
hps-java/src/main/java/org/lcsim/hps/monitoring/svt
diff -u -r1.7 -r1.8
--- TrackingReconstructionPlots.java 14 May 2012 22:51:35 -0000 1.7
+++ TrackingReconstructionPlots.java 24 May 2012 14:33:59 -0000 1.8
@@ -48,6 +48,7 @@
private String fittedTrackerHitCollectionName = "SVTFittedRawTrackerHits";
private String trackerHitCollectionName = "StripClusterer_SiTrackerHitStrip1D";
private String helicalTrackHitCollectionName = "HelicalTrackHits";
+ private String rotatedTrackHitCollectionName = "RotatedHelicalTrackHits";
private String helicalTrackHitRelationsCollectionName = "HelicalTrackHitRelations";
private String trackCollectionName = "MatchedTracks";
private String trackerName = "Tracker";
@@ -68,16 +69,16 @@
IPlotter plotter3_2;
IPlotter plotter4;
IPlotter plotter5;
+ IPlotter plotter5_1;
+ IPlotter plotter55;
IPlotter plotter6;
double zEcal = 1500;
double zAtDownStrPairSpec = 914.0; //mm
double zAtColl = -1500;
IHistogram1D trkPx;
IHistogram1D nTracks;
-
HPSShaperFitAlgorithm _shaper = new DumbShaperFit();
-
-
+
protected void detectorChanged(Detector detector) {
this.detector = detector;
aida.tree().cd("/");
@@ -96,7 +97,7 @@
plotterFrame.addPlotter(plotter);
trkPx = aida.histogram1D("Track Momentum (Px)", 25, -0.25, 0.25);
- IHistogram1D trkPy = aida.histogram1D("Track Momentum (Py)", 25, -0.25, 0.25);
+ IHistogram1D trkPy = aida.histogram1D("Track Momentum (Py)", 25, -0.1, 0.1);
IHistogram1D trkPz = aida.histogram1D("Track Momentum (Pz)", 25, 0, 3.5);
IHistogram1D trkChi2 = aida.histogram1D("Track Chi2", 25, 0, 25.0);
@@ -105,11 +106,11 @@
plotter.region(2).plot(trkPz);
plotter.region(3).plot(trkChi2);
-
+
IHistogram1D trkd0 = aida.histogram1D("d0 ", 25, -100.0, 100.0);
- IHistogram1D trkphi = aida.histogram1D("phi ", 25, -2.0*Math.PI, 2.0*Math.PI);
- IHistogram1D trkomega = aida.histogram1D("omega ", 25, -0.01, 0.01);
- IHistogram1D trklam = aida.histogram1D("tan(lambda) ", 25, -0.3,0.3);
+ IHistogram1D trkphi = aida.histogram1D("sinphi ", 25, -0.2, 0.2);
+ IHistogram1D trkomega = aida.histogram1D("omega ", 25, -0.0025, 0.0025);
+ IHistogram1D trklam = aida.histogram1D("tan(lambda) ", 25, -0.1, 0.1);
IHistogram1D trkz0 = aida.histogram1D("z0 ", 25, -100.0, 100.0);
plotter22 = fac.createPlotterFactory().create("HPS Track Params");
@@ -124,8 +125,8 @@
plotter22.region(2).plot(trkomega);
plotter22.region(3).plot(trklam);
plotter22.region(4).plot(trkz0);
-
-
+
+
plotter2 = fac.createPlotterFactory().create("HPS Tracking Plots");
plotter2.setTitle("Track extrapolation");
plotterFrame.addPlotter(plotter2);
@@ -133,15 +134,15 @@
style2.dataStyle().fillStyle().setColor("yellow");
style2.dataStyle().errorBarStyle().setVisible(false);
plotter2.createRegions(2, 4);
- IHistogram1D xAtConverter = aida.histogram1D("X (mm) @ Z=-60cm", 25, -50, 50);
- IHistogram1D yAtConverter = aida.histogram1D("Y (mm) @ Z=-60cm", 50, -50, 100);
+ IHistogram1D xAtConverter = aida.histogram1D("X (mm) @ Z=-60cm", 25, -100, 100);
+ IHistogram1D yAtConverter = aida.histogram1D("Y (mm) @ Z=-60cm", 50, -50, 50);
IHistogram1D xAtColl = aida.histogram1D("X (mm) @ Z=-150cm", 50, -200, 200);
IHistogram1D yAtColl = aida.histogram1D("Y (mm) @ Z=-150cm", 50, -200, 200);
IHistogram1D xAtEcal = aida.histogram1D("X (mm) @ Z=150cm", 50, -700, 700);
IHistogram1D yAtEcal = aida.histogram1D("Y (mm) @ Z=150cm", 50, -50, 150);
IHistogram1D xAtEcal2 = aida.histogram1D("X (mm) @ Z=150cm (Pz>1)", 50, -50, 50);
IHistogram1D yAtEcal2 = aida.histogram1D("Y (mm) @ Z=150cm (Pz>1)", 50, -50, 150);
-
+
plotter2.region(0).plot(xAtConverter);
plotter2.region(4).plot(yAtConverter);
plotter2.region(1).plot(xAtColl);
@@ -150,7 +151,7 @@
plotter2.region(6).plot(yAtEcal);
plotter2.region(3).plot(xAtEcal2);
plotter2.region(7).plot(yAtEcal2);
-
+
plotter222 = fac.createPlotterFactory().create("HPS Tracking Plots");
plotter222.setTitle("Other");
plotterFrame.addPlotter(plotter222);
@@ -158,14 +159,14 @@
style222.dataStyle().fillStyle().setColor("yellow");
style222.dataStyle().errorBarStyle().setVisible(false);
plotter222.createRegions(2, 3);
-
+
IHistogram1D nHits = aida.histogram1D("Hits per Track", 2, 4, 6);
IHistogram1D amp = aida.histogram1D("Amp (HitOnTrack)", 50, 0, 5000);
IHistogram1D ampcl = aida.histogram1D("Amp (CluOnTrack)", 50, 0, 5000);
IHistogram1D amp2 = aida.histogram1D("Amp Pz>1000 (HitOnTrack)", 50, 0, 5000);
IHistogram1D ampcl2 = aida.histogram1D("Amp Pz>1000 (CluOnTrack)", 50, 0, 5000);
nTracks = aida.histogram1D("Tracks per Event", 3, 0, 3);
-
+
plotter222.region(0).plot(nHits);
plotter222.region(3).plot(nTracks);
plotter222.region(1).plot(amp);
@@ -182,11 +183,11 @@
style3.dataStyle().errorBarStyle().setVisible(false);
plotter3.createRegions(5, 2);
- double minResidY = -5;
- double maxResidY = 5;
+ double minResidY = -1.5;
+ double maxResidY = 1.5;
- double minResidX = -50;
- double maxResidX = 50;
+ double minResidX = -5;
+ double maxResidX = 5;
IHistogram1D mod1ResX = aida.histogram1D("Module 1 Residual X(mm)", 25, minResidX, maxResidX);
IHistogram1D mod1ResY = aida.histogram1D("Module 1 Residual Y(mm)", 25, minResidY, maxResidY);
@@ -215,80 +216,80 @@
plotter3.region(7).plot(mod4ResY);
plotter3.region(9).plot(mod5ResY);
-
+
plotter3_1 = fac.createPlotterFactory().create("HPS Residual Plots (Single hit per layer)");
- plotter3_1.setTitle("Residuals (1hpl)");
+ plotter3_1.setTitle("Residuals (Top)");
plotterFrame.addPlotter(plotter3_1);
IPlotterStyle style3_1 = plotter3_1.style();
style3_1.dataStyle().fillStyle().setColor("yellow");
style3_1.dataStyle().errorBarStyle().setVisible(false);
plotter3_1.createRegions(5, 2);
- IHistogram1D mod1ResX_1hpl = aida.histogram1D("Module 1 Residual X(mm) 1hpl", 25, minResidX, maxResidX);
- IHistogram1D mod1ResY_1hpl = aida.histogram1D("Module 1 Residual Y(mm) 1hpl", 25, minResidY, maxResidY);
+ IHistogram1D mod1ResX_Top = aida.histogram1D("Module 1 Residual X(mm) Top", 25, minResidX, maxResidX);
+ IHistogram1D mod1ResY_Top = aida.histogram1D("Module 1 Residual Y(mm) Top", 25, minResidY, maxResidY);
+
+ IHistogram1D mod2ResX_Top = aida.histogram1D("Module 2 Residual X(mm) Top", 25, minResidX, maxResidX);
+ IHistogram1D mod2ResY_Top = aida.histogram1D("Module 2 Residual Y(mm) Top", 25, minResidY, maxResidY);
- IHistogram1D mod2ResX_1hpl = aida.histogram1D("Module 2 Residual X(mm) 1hpl", 25, minResidX, maxResidX);
- IHistogram1D mod2ResY_1hpl = aida.histogram1D("Module 2 Residual Y(mm) 1hpl", 25, minResidY, maxResidY);
+ IHistogram1D mod3ResX_Top = aida.histogram1D("Module 3 Residual X(mm) Top", 25, minResidX, maxResidX);
+ IHistogram1D mod3ResY_Top = aida.histogram1D("Module 3 Residual Y(mm) Top", 25, minResidY, maxResidY);
- IHistogram1D mod3ResX_1hpl = aida.histogram1D("Module 3 Residual X(mm) 1hpl", 25, minResidX, maxResidX);
- IHistogram1D mod3ResY_1hpl = aida.histogram1D("Module 3 Residual Y(mm) 1hpl", 25, minResidY, maxResidY);
+ IHistogram1D mod4ResX_Top = aida.histogram1D("Module 4 Residual X(mm) Top", 25, minResidX, maxResidX);
+ IHistogram1D mod4ResY_Top = aida.histogram1D("Module 4 Residual Y(mm) Top", 25, minResidY, maxResidY);
+
+ IHistogram1D mod5ResX_Top = aida.histogram1D("Module 5 Residual X(mm) Top", 25, minResidX, maxResidX);
+ IHistogram1D mod5ResY_Top = aida.histogram1D("Module 5 Residual Y(mm) Top", 25, minResidY, maxResidY);
+
+ plotter3_1.region(0).plot(mod1ResX_Top);
+ plotter3_1.region(2).plot(mod2ResX_Top);
+ plotter3_1.region(4).plot(mod3ResX_Top);
+ plotter3_1.region(6).plot(mod4ResX_Top);
+ plotter3_1.region(8).plot(mod5ResX_Top);
+
+ plotter3_1.region(1).plot(mod1ResY_Top);
+ plotter3_1.region(3).plot(mod2ResY_Top);
+ plotter3_1.region(5).plot(mod3ResY_Top);
+ plotter3_1.region(7).plot(mod4ResY_Top);
+ plotter3_1.region(9).plot(mod5ResY_Top);
- IHistogram1D mod4ResX_1hpl = aida.histogram1D("Module 4 Residual X(mm) 1hpl", 25, minResidX, maxResidX);
- IHistogram1D mod4ResY_1hpl = aida.histogram1D("Module 4 Residual Y(mm) 1hpl", 25, minResidY, maxResidY);
-
- IHistogram1D mod5ResX_1hpl = aida.histogram1D("Module 5 Residual X(mm) 1hpl", 25, minResidX, maxResidX);
- IHistogram1D mod5ResY_1hpl = aida.histogram1D("Module 5 Residual Y(mm) 1hpl", 25, minResidY, maxResidY);
-
- plotter3_1.region(0).plot(mod1ResX_1hpl);
- plotter3_1.region(2).plot(mod2ResX_1hpl);
- plotter3_1.region(4).plot(mod3ResX_1hpl);
- plotter3_1.region(6).plot(mod4ResX_1hpl);
- plotter3_1.region(8).plot(mod5ResX_1hpl);
-
- plotter3_1.region(1).plot(mod1ResY_1hpl);
- plotter3_1.region(3).plot(mod2ResY_1hpl);
- plotter3_1.region(5).plot(mod3ResY_1hpl);
- plotter3_1.region(7).plot(mod4ResY_1hpl);
- plotter3_1.region(9).plot(mod5ResY_1hpl);
-
plotter3_2 = fac.createPlotterFactory().create("HPS Residual Plots (Single strip cluster per layer)");
- plotter3_2.setTitle("Residuals (1clpl)");
+ plotter3_2.setTitle("Residuals (Bottom)");
plotterFrame.addPlotter(plotter3_2);
IPlotterStyle style3_2 = plotter3_2.style();
style3_2.dataStyle().fillStyle().setColor("yellow");
style3_2.dataStyle().errorBarStyle().setVisible(false);
plotter3_2.createRegions(5, 2);
- IHistogram1D mod1ResX_1clpl = aida.histogram1D("Module 1 Residual X(mm) 1clpl", 25, minResidX, maxResidX);
- IHistogram1D mod1ResY_1clpl = aida.histogram1D("Module 1 Residual Y(mm) 1clpl", 25, minResidY, maxResidY);
+ IHistogram1D mod1ResX_Bottom = aida.histogram1D("Module 1 Residual X(mm) Bottom", 25, minResidX, maxResidX);
+ IHistogram1D mod1ResY_Bottom = aida.histogram1D("Module 1 Residual Y(mm) Bottom", 25, minResidY, maxResidY);
+
+ IHistogram1D mod2ResX_Bottom = aida.histogram1D("Module 2 Residual X(mm) Bottom", 25, minResidX, maxResidX);
+ IHistogram1D mod2ResY_Bottom = aida.histogram1D("Module 2 Residual Y(mm) Bottom", 25, minResidY, maxResidY);
+
+ IHistogram1D mod3ResX_Bottom = aida.histogram1D("Module 3 Residual X(mm) Bottom", 25, minResidX, maxResidX);
+ IHistogram1D mod3ResY_Bottom = aida.histogram1D("Module 3 Residual Y(mm) Bottom", 25, minResidY, maxResidY);
+
+ IHistogram1D mod4ResX_Bottom = aida.histogram1D("Module 4 Residual X(mm) Bottom", 25, minResidX, maxResidX);
+ IHistogram1D mod4ResY_Bottom = aida.histogram1D("Module 4 Residual Y(mm) Bottom", 25, minResidY, maxResidY);
+
+ IHistogram1D mod5ResX_Bottom = aida.histogram1D("Module 5 Residual X(mm) Bottom", 25, minResidX, maxResidX);
+ IHistogram1D mod5ResY_Bottom = aida.histogram1D("Module 5 Residual Y(mm) Bottom", 25, minResidY, maxResidY);
+
+ plotter3_2.region(0).plot(mod1ResX_Bottom);
+ plotter3_2.region(2).plot(mod2ResX_Bottom);
+ plotter3_2.region(4).plot(mod3ResX_Bottom);
+ plotter3_2.region(6).plot(mod4ResX_Bottom);
+ plotter3_2.region(8).plot(mod5ResX_Bottom);
+
+ plotter3_2.region(1).plot(mod1ResY_Bottom);
+ plotter3_2.region(3).plot(mod2ResY_Bottom);
+ plotter3_2.region(5).plot(mod3ResY_Bottom);
+ plotter3_2.region(7).plot(mod4ResY_Bottom);
+ plotter3_2.region(9).plot(mod5ResY_Bottom);
- IHistogram1D mod2ResX_1clpl = aida.histogram1D("Module 2 Residual X(mm) 1clpl", 25, minResidX, maxResidX);
- IHistogram1D mod2ResY_1clpl = aida.histogram1D("Module 2 Residual Y(mm) 1clpl", 25, minResidY, maxResidY);
- IHistogram1D mod3ResX_1clpl = aida.histogram1D("Module 3 Residual X(mm) 1clpl", 25, minResidX, maxResidX);
- IHistogram1D mod3ResY_1clpl = aida.histogram1D("Module 3 Residual Y(mm) 1clpl", 25, minResidY, maxResidY);
- IHistogram1D mod4ResX_1clpl = aida.histogram1D("Module 4 Residual X(mm) 1clpl", 25, minResidX, maxResidX);
- IHistogram1D mod4ResY_1clpl = aida.histogram1D("Module 4 Residual Y(mm) 1clpl", 25, minResidY, maxResidY);
-
- IHistogram1D mod5ResX_1clpl = aida.histogram1D("Module 5 Residual X(mm) 1clpl", 25, minResidX, maxResidX);
- IHistogram1D mod5ResY_1clpl = aida.histogram1D("Module 5 Residual Y(mm) 1clpl", 25, minResidY, maxResidY);
-
- plotter3_2.region(0).plot(mod1ResX_1clpl);
- plotter3_2.region(2).plot(mod2ResX_1clpl);
- plotter3_2.region(4).plot(mod3ResX_1clpl);
- plotter3_2.region(6).plot(mod4ResX_1clpl);
- plotter3_2.region(8).plot(mod5ResX_1clpl);
-
- plotter3_2.region(1).plot(mod1ResY_1clpl);
- plotter3_2.region(3).plot(mod2ResY_1clpl);
- plotter3_2.region(5).plot(mod3ResY_1clpl);
- plotter3_2.region(7).plot(mod4ResY_1clpl);
- plotter3_2.region(9).plot(mod5ResY_1clpl);
-
-
-
plotter4 = fac.createPlotterFactory().create("HPS Track and ECal Plots");
plotter4.setTitle("Track and ECal Correlations");
@@ -308,7 +309,7 @@
IHistogram1D distX2 = aida.histogram1D("deltaX (Pz>1)", 50, -400, 400);
IHistogram1D distY2 = aida.histogram1D("deltaY (Pz>1)", 50, -100, 100);
-
+
plotter4.region(0).plot(eVsP);
plotter4.region(3).plot(eOverP);
plotter4.region(1).plot(distX);
@@ -319,7 +320,7 @@
plotter5 = fac.createPlotterFactory().create("HPS Hit Positions");
- plotter5.setTitle("Hit Positions");
+ plotter5.setTitle("Hit Positions: Top");
plotterFrame.addPlotter(plotter5);
IPlotterStyle style5 = plotter5.style();
style5.setParameter("hist2DStyle", "colorMap");
@@ -330,12 +331,43 @@
IHistogram1D charge = aida.histogram1D("Charge", 3, -1, 1);
- IHistogram2D l1Pos = aida.histogram2D("Layer 1 HTH Position", 50, -55, 55, 55, -25, 25);
- IHistogram2D l7Pos = aida.histogram2D("Layer 7 HTH Position", 50, -55, 55, 55, -25, 25);
+ IHistogram2D l1Pos = aida.histogram2D("Layer 1 HTH Position: Top", 50, -55, 55, 55, -25, 25);
+ IHistogram2D l7Pos = aida.histogram2D("Layer 7 HTH Position: Top", 50, -55, 55, 55, -25, 25);
plotter5.region(0).plot(l1Pos);
plotter5.region(1).plot(l7Pos);
+ plotter5_1 = fac.createPlotterFactory().create("HPS Hit Positions");
+ plotter5_1.setTitle("Hit Positions: Bottom");
+ plotterFrame.addPlotter(plotter5_1);
+ IPlotterStyle style5_1 = plotter5_1.style();
+ style5_1.setParameter("hist2DStyle", "colorMap");
+ style5_1.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
+ style5_1.dataStyle().fillStyle().setColor("yellow");
+ style5_1.dataStyle().errorBarStyle().setVisible(false);
+ plotter5_1.createRegions(1, 2);
+
+ IHistogram2D l1PosBot = aida.histogram2D("Layer 1 HTH Position: Bottom", 50, -55, 55, 55, -25, 25);
+ IHistogram2D l7PosBot = aida.histogram2D("Layer 7 HTH Position: Bottom", 50, -55, 55, 55, -25, 25);
+ plotter5_1.region(0).plot(l1PosBot);
+ plotter5_1.region(1).plot(l7PosBot);
+
+ plotter55 = fac.createPlotterFactory().create("HPS Hit Positions");
+ plotter55.setTitle("Helical Track Hits");
+ plotterFrame.addPlotter(plotter55);
+ IPlotterStyle style55 = plotter55.style();
+ style55.dataStyle().fillStyle().setColor("Green");
+ style55.dataStyle().errorBarStyle().setVisible(false);
+ style55.dataStyle().markerStyle().setSize(20);
+ plotter55.createRegions(1, 2);
+
+ IProfile avgLayersTopPlot = aida.profile1D("Number of Stereo Hits per layer in Top Half", 5, 1, 11);
+ IProfile avgLayersBottomPlot = aida.profile1D("Number of Stereo Hits per layer in Bottom Half", 5, 1, 11);
+
+
+ plotter55.region(0).plot(avgLayersTopPlot);
+ plotter55.region(1).plot(avgLayersBottomPlot);
+
plotter6 = fac.createPlotterFactory().create("HPS ECAL Hit Positions");
plotter6.setTitle("ECAL Positions");
@@ -356,7 +388,7 @@
IHistogram2D botECal2 = aida.histogram2D("Bottom ECal Cluster Position (E>100,>0 tracks)", 50, -400, 400, 10, -100, 0);
IHistogram2D topECal3 = aida.histogram2D("Top ECal Cluster Position w_E (E>100,>0 tracks)", 50, -400, 400, 10, 0, 100);
IHistogram2D botECal3 = aida.histogram2D("Bottom ECal Cluster Position w_E (E>100,>0 tracks)", 50, -400, 400, 10, -100, 0);
-
+
plotter6.region(0).plot(topECal);
plotter6.region(1).plot(botECal);
@@ -410,28 +442,50 @@
return;
}
-
+ List<HelicalTrackHit> rotList = event.get(HelicalTrackHit.class, rotatedTrackHitCollectionName);
+ for (HelicalTrackHit hth : rotList) {
+ HelicalTrackCross htc = (HelicalTrackCross) hth;
+// System.out.println("TrackingReconstructionPlots::original helical track position = "+hth.getPosition()[0]+","+hth.getPosition()[1]+","+hth.getPosition()[2]);
+// System.out.println("TrackingReconstructionPlots::corrected helical track position = "+htc.getCorrectedPosition().toString());
+ }
List<HelicalTrackHit> hthList = event.get(HelicalTrackHit.class, helicalTrackHitCollectionName);
+ int[] layersTop = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+ int[] layersBot = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
for (HelicalTrackHit hth : hthList) {
HelicalTrackCross htc = (HelicalTrackCross) hth;
+// System.out.println("TrackingReconstructionPlots::original helical track position = "+hth.getPosition()[0]+","+hth.getPosition()[1]+","+hth.getPosition()[2]);
+// System.out.println("TrackingReconstructionPlots::corrected helical track position = "+htc.getCorrectedPosition().toString());
//These Helical Track Hits are in the JLAB frame
htc.resetTrackDirection();
double x = htc.getPosition()[0];
double y = htc.getPosition()[1];
SiSensor sensor = ((SiSensor) ((RawTrackerHit) htc.getRawHits().get(0)).getDetectorElement());
if (HPSSVTDAQMaps.sensorToTopLayer.containsKey(sensor)) {
+ layersTop[htc.Layer() - 1]++;
Hep3Vector sensorPos = ((SiSensor) ((RawTrackerHit) htc.getRawHits().get(0)).getDetectorElement()).getGeometry().getPosition();
if (htc.Layer() == 1) {
// System.out.println(sensorPos.toString());
// System.out.println("Hit X = " + x + "; Hit Y = " + y);
-
- aida.histogram2D("Layer 1 HTH Position").fill(x - sensorPos.x(), y - sensorPos.y());
+ aida.histogram2D("Layer 1 HTH Position: Top").fill(x - sensorPos.x(), y - sensorPos.y());
+ }
+ if (htc.Layer() == 7)
+ aida.histogram2D("Layer 7 HTH Position: Top").fill(x - sensorPos.x(), y - sensorPos.y());
+ } else {
+ layersBot[htc.Layer() - 1]++;
+ Hep3Vector sensorPos = ((SiSensor) ((RawTrackerHit) htc.getRawHits().get(0)).getDetectorElement()).getGeometry().getPosition();
+ if (htc.Layer() == 1) {
+// System.out.println(sensorPos.toString());
+// System.out.println("Hit X = " + x + "; Hit Y = " + y);
+ aida.histogram2D("Layer 1 HTH Position: Bottom").fill(x - sensorPos.x(), y - sensorPos.y());
}
if (htc.Layer() == 7)
- aida.histogram2D("Layer 7 HTH Position").fill(x - sensorPos.x(), y - sensorPos.y());
+ aida.histogram2D("Layer 7 HTH Position: Bottom").fill(x - sensorPos.x(), y - sensorPos.y());
}
}
-
+ for (int i = 0; i < 10; i++) {
+ aida.profile1D("Number of Stereo Hits per layer in Top Half").fill(i + 1, layersTop[i]);
+ aida.profile1D("Number of Stereo Hits per layer in Bottom Half").fill(i + 1, layersBot[i]);
+ }
if (!event.hasCollection(Track.class, trackCollectionName)) {
// System.out.println(trackCollectionName + " does not exist; skipping event");
aida.histogram1D("Number Tracks/Event").fill(0);
@@ -450,13 +504,13 @@
aida.histogram2D("Top ECal Cluster Position").fill(cluster.getPosition()[0], cluster.getPosition()[1]);
if (cluster.getPosition()[1] < 0)
aida.histogram2D("Bottom ECal Cluster Position").fill(cluster.getPosition()[0], cluster.getPosition()[1]);
-
- if ( tracks.size() > 0) {
+
+ if (tracks.size() > 0) {
if (cluster.getPosition()[1] > 0)
aida.histogram2D("Top ECal Cluster Position (>0 tracks)").fill(cluster.getPosition()[0], cluster.getPosition()[1]);
if (cluster.getPosition()[1] < 0)
aida.histogram2D("Bottom ECal Cluster Position (>0 tracks)").fill(cluster.getPosition()[0], cluster.getPosition()[1]);
-
+
if (cluster.getEnergy() > 100) {
if (cluster.getPosition()[1] > 0) {
aida.histogram2D("Top ECal Cluster Position (E>100,>0 tracks)").fill(cluster.getPosition()[0], cluster.getPosition()[1]);
@@ -468,23 +522,23 @@
}
}
}
-
-
-
+
+
+
}
}
-
+
List<SiTrackerHitStrip1D> stripHits = event.get(SiTrackerHitStrip1D.class, "StripClusterer_SiTrackerHitStrip1D");
- int stripClustersPerLayerTop[] = getStripClustersPerLayer(stripHits,"up");
+ int stripClustersPerLayerTop[] = getStripClustersPerLayer(stripHits, "up");
//int stripClustersPerLayerBottom[] = getStripClustersPerLayer(stripHits,"down");
-
- boolean hasSingleStripClusterPerLayer = singleStripClusterPerLayer( stripClustersPerLayerTop );
-
+
+ boolean hasSingleStripClusterPerLayer = singleStripClusterPerLayer(stripClustersPerLayerTop);
+
for (Track trk : tracks) {
-
- boolean isSingleHitPerLayerTrack = singleTrackHitPerLayer(trk);
-
+
+ boolean isSingleHitPerLayerTrack = singleTrackHitPerLayer(trk);
+
aida.histogram1D("Track Momentum (Px)").fill(trk.getPY());
aida.histogram1D("Track Momentum (Py)").fill(trk.getPZ());
aida.histogram1D("Track Momentum (Pz)").fill(trk.getPX());
@@ -497,40 +551,41 @@
HelixConverter converter = new HelixConverter(0);
StraightLineTrack slt = converter.Convert(ht);
- aida.histogram1D("X (mm) @ Z=-60cm").fill(slt.getYZAtX(zAtConverter)[1]); //remember the tracker-->jlab
- aida.histogram1D("Y (mm) @ Z=-60cm").fill(slt.getYZAtX(zAtConverter)[0]); //coordinate swap...
+ aida.histogram1D("X (mm) @ Z=-60cm").fill(slt.getYZAtX(zAtConverter)[0]); //this is y in the tracker frame
+ aida.histogram1D("Y (mm) @ Z=-60cm").fill(slt.getYZAtX(zAtConverter)[1]); //this is z in the tracker frame
//double sECAL = HelixUtils.PathToXPlane(ht, zEcal, 3000, 1).get(0);
- aida.histogram1D("X (mm) @ Z=-150cm").fill(slt.getYZAtX(zAtColl)[1]);
- aida.histogram1D("Y (mm) @ Z=-150cm").fill(slt.getYZAtX(zAtColl)[0]);
-
-
+ aida.histogram1D("X (mm) @ Z=-150cm").fill(slt.getYZAtX(zAtColl)[0]);
+ aida.histogram1D("Y (mm) @ Z=-150cm").fill(slt.getYZAtX(zAtColl)[1]);
+
+
//Straight line after field-region???
//HelixConverter converterEcal = new HelixConverter(zAtDownStrPairSpec);
//StraightLineTrack sltEcal = converterEcal.Convert(ht);
double sECAL = HelixUtils.PathToXPlane(ht, zEcal, 3000, 1).get(0);
Hep3Vector posonhelix = HelixUtils.PointOnHelix(ht, sECAL);//position in tracker coordinates!
-
+
aida.histogram1D("X (mm) @ Z=150cm").fill(posonhelix.y());
aida.histogram1D("Y (mm) @ Z=150cm").fill(posonhelix.z());
- if(trk.getPX()>1.0) {
- aida.histogram1D("X (mm) @ Z=150cm (Pz>1)").fill(slt.getYZAtX(zAtColl)[1]);
- aida.histogram1D("Y (mm) @ Z=150cm (Pz>1)").fill(slt.getYZAtX(zAtColl)[0]);
+ if (trk.getPX() > 1.0) {
+ aida.histogram1D("X (mm) @ Z=150cm (Pz>1)").fill(slt.getYZAtX(zAtColl)[0]);
+ aida.histogram1D("Y (mm) @ Z=150cm (Pz>1)").fill(slt.getYZAtX(zAtColl)[1]);
}
aida.histogram1D("d0 ").fill(trk.getTrackParameter(ParameterName.d0.ordinal()));
- aida.histogram1D("phi ").fill(trk.getTrackParameter(ParameterName.phi0.ordinal()));
+ aida.histogram1D("sinphi ").fill(Math.sin(trk.getTrackParameter(ParameterName.phi0.ordinal())));
aida.histogram1D("omega ").fill(trk.getTrackParameter(ParameterName.omega.ordinal()));
aida.histogram1D("tan(lambda) ").fill(trk.getTrackParameter(ParameterName.tanLambda.ordinal()));
aida.histogram1D("z0 ").fill(trk.getTrackParameter(ParameterName.z0.ordinal()));
-
-
-
+
+
+
List<TrackerHit> hitsOnTrack = trk.getTrackerHits();
for (TrackerHit hit : hitsOnTrack) {
HelicalTrackHit htc = (HelicalTrackHit) hit;
+ HelicalTrackCross htcross=(HelicalTrackCross) htc;
double sHit = ht.PathMap().get(htc);
posonhelix = HelixUtils.PointOnHelix(ht, sHit);
-
+
double yTr = posonhelix.y();
double zTr = posonhelix.z();
int layer = htc.Layer();
@@ -546,161 +601,159 @@
if (layer == 9)
modNum = "Module 5 ";
SymmetricMatrix cov = htc.getCorrectedCovMatrix();
-// System.out.println("errX = " + Math.sqrt(cov.e(1, 1)) + "; errY = " + Math.sqrt(cov.e(2, 2)));
-// System.out.println("Measured X " + hit.getPosition()[1] + "; Track X = " + yTr);
-// System.out.println("Measured Y " + hit.getPosition()[2] + "; Track Y = " + zTr);
-// System.out.println(htc.getCorrectedCovMatrix().toString());
-
-
-
- aida.histogram1D(modNum + "Residual X(mm)").fill(hit.getPosition()[1] - yTr);//these hits should be rotated track hits already
- aida.histogram1D(modNum + "Residual Y(mm)").fill(hit.getPosition()[2] - zTr);//these hits should be rotated track hits already
-
- if (isSingleHitPerLayerTrack) {
- aida.histogram1D(modNum + "Residual X(mm) 1hpl").fill(hit.getPosition()[1] - yTr);//these hits should be rotated track hits already
- aida.histogram1D(modNum + "Residual Y(mm) 1hpl").fill(hit.getPosition()[2] - zTr);//these hits should be rotated track hits already
-
+
+ aida.histogram1D(modNum + "Residual X(mm)").fill( htcross.getCorrectedPosition().y()- yTr);//these hits should be rotated track hits already
+ aida.histogram1D(modNum + "Residual Y(mm)").fill( htcross.getCorrectedPosition().z() - zTr);//these hits should be rotated track hits already
+ if (hit.getPosition()[2]>0) {
+ aida.histogram1D(modNum + "Residual X(mm) Top").fill(htcross.getCorrectedPosition().y() - yTr);//these hits should be rotated track hits already
+ aida.histogram1D(modNum + "Residual Y(mm) Top").fill(htcross.getCorrectedPosition().z() - zTr);//these hits should be rotated track hits already
+
}
- if ( hasSingleStripClusterPerLayer ) {
- aida.histogram1D(modNum + "Residual X(mm) 1clpl").fill(hit.getPosition()[1] - yTr);//these hits should be rotated track hits already
- aida.histogram1D(modNum + "Residual Y(mm) 1clpl").fill(hit.getPosition()[2] - zTr);//these hits should be rotated track hits already
-
+ if (hit.getPosition()[2]<0) {
+ aida.histogram1D(modNum + "Residual X(mm) Bottom").fill(htcross.getCorrectedPosition().y() - yTr);//these hits should be rotated track hits already
+ aida.histogram1D(modNum + "Residual Y(mm) Bottom").fill(htcross.getCorrectedPosition().z() - zTr);//these hits should be rotated track hits already
+
}
-
+
List<RawTrackerHit> rawHits = hit.getRawHits();
- for(RawTrackerHit rawHit : rawHits){
-
+ for (RawTrackerHit rawHit : rawHits) {
+
ChannelConstants constants = HPSSVTCalibrationConstants.getChannelConstants((SiSensor) rawHit.getDetectorElement(), rawHit.getIdentifierFieldValue("strip"));
HPSShapeFitParameters fit = _shaper.fitShape(rawHit, constants);
double amp = fit.getAmp();
aida.histogram1D("Amp (HitOnTrack)").fill(amp);
- if(trk.getPX()>1) aida.histogram1D("Amp Pz>1000 (HitOnTrack)").fill(amp);
+ if (trk.getPX() > 1)
+ aida.histogram1D("Amp Pz>1000 (HitOnTrack)").fill(amp);
}
//Fill the cluster energy directly
//This should return energyin GeV but without gain I should get
// sum(ADC)*[energy of hole pair]
- aida.histogram1D("Amp (CluOnTrack)").fill(hit.getdEdx()/DopedSilicon.ENERGY_EHPAIR);
- if(trk.getPX()>1) aida.histogram1D("Amp Pz>1000 (CluOnTrack)").fill(hit.getdEdx()/DopedSilicon.ENERGY_EHPAIR);
-
-
-
-
-
+ aida.histogram1D("Amp (CluOnTrack)").fill(hit.getdEdx() / DopedSilicon.ENERGY_EHPAIR);
+ if (trk.getPX() > 1)
+ aida.histogram1D("Amp Pz>1000 (CluOnTrack)").fill(hit.getdEdx() / DopedSilicon.ENERGY_EHPAIR);
+
+
+
+
+
}
List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, ecalCollectionName);
// System.out.println("Number of ECAL clusters=" + clusters.size());
// sECAL = HelixUtils.PathToXPlane(ht, zEcal, 3000, 1).get(0);
posonhelix = HelixUtils.PointOnHelix(ht, sECAL);//position in tracker coordinates!
HPSEcalCluster clust = findClosestCluster(posonhelix, clusters);
+ /*
if (clust != null) {
aida.histogram2D("Energy Vs Momentum").fill(clust.getEnergy(), trk.getPX() * 1000.0);
aida.histogram1D("Energy Over Momentum").fill(clust.getEnergy() / (trk.getPX() * 1000.0));
aida.histogram1D("deltaX").fill(clust.getPosition()[0] - posonhelix.y());
aida.histogram1D("deltaY").fill(clust.getPosition()[1] - posonhelix.z());
- if(trk.getPX()>1.0) {
+ if (trk.getPX() > 1.0) {
aida.histogram1D("deltaX (Pz>1)").fill(clust.getPosition()[0] - posonhelix.y());
aida.histogram1D("deltaY (Pz>1)").fill(clust.getPosition()[1] - posonhelix.z());
-
}
-
- }
+ }
+ */
}
}
- public int[] getTrackHitsPerLayer( Track trk ) {
- int n[] = {0,0,0,0,0};
+ public int[] getTrackHitsPerLayer(Track trk) {
+ int n[] = {0, 0, 0, 0, 0};
List<TrackerHit> hitsOnTrack = trk.getTrackerHits();
int layer;
for (TrackerHit hit : hitsOnTrack) {
- HelicalTrackHit htc = (HelicalTrackHit)hit;
- layer = htc.Layer();
- layer = (layer-1)/2;
- n[layer] = n[layer] + 1;
+ HelicalTrackHit htc = (HelicalTrackHit) hit;
+// if (htc.getPosition()[2] < 0) {
+ layer = htc.Layer();
+ layer = (layer - 1) / 2;
+ n[layer] = n[layer] + 1;
+// }
}
-
+
return n;
}
-
- public boolean singleTrackHitPerLayer( Track track) {
+
+ public boolean singleTrackHitPerLayer(Track track) {
int hitsPerLayer[] = getTrackHitsPerLayer(track);
- for (int i=0;i<5;++i) {
- if (hitsPerLayer[i]!=1) {
+ for (int i = 0; i < 5; ++i) {
+ if (hitsPerLayer[i] != 1) {
return false;
}
}
return true;
}
-
-
- public boolean singleStripClusterPerLayer( int hitsPerLayer[]) {
+
+ public boolean singleStripClusterPerLayer(int hitsPerLayer[]) {
//This includes both axial and stereo separately
// so for a hit in each double layer we need 10 hits
- for (int i=0;i<10;++i) {
- if (hitsPerLayer[i]!=1) {
+ for (int i = 0; i < 10; ++i) {
+ if (hitsPerLayer[i] != 1) {
return false;
}
}
return true;
}
-
+
public int[] getStripClustersPerLayer(List<SiTrackerHitStrip1D> trackerHits, String side) {
String si_side;
String name;
int l;
int i;
- int n[] = {0,0,0,0,0,0,0,0,0,0};
+ int n[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
boolean ddd = false;
-
+
if (ddd) {
- System.out.println("Get # hits per layer on side \"" + side +"\"");
- }
-
- for ( SiTrackerHitStrip1D stripCluster : trackerHits ) {
+ System.out.println("Get # hits per layer on side \"" + side + "\"");
+ }
+
+ for (SiTrackerHitStrip1D stripCluster : trackerHits) {
if (ddd) {
System.out.println("Processing stripCluster " + stripCluster.toString());
- }
+ }
+
-
- if (side!="") {
+ if (side != "") {
String s;
- if (stripCluster.getPosition()[1]>=0.0) s = "up";
- else s = "down";
- if (s != side) continue;
+ if (stripCluster.getPosition()[1] >= 0.0)
+ s = "up";
+ else
+ s = "down";
+ if (s != side)
+ continue;
}
name = stripCluster.getSensor().getName();
- if ( name.length() < 14) {
- System.err.println("This name is too short!!");
- throw new RuntimeException("SiSensor name " + name + " is invalid?");
+ if (name.length() < 14) {
+ System.err.println("This name is too short!!");
+ throw new RuntimeException("SiSensor name " + name + " is invalid?");
}
-
+
if (ddd) {
- System.out.println("sensor name " + name );
+ System.out.println("sensor name " + name);
}
//String str_l = name.substring(13);
- String str_l = name.substring(name.indexOf("layer")+5, name.indexOf("_module"));
+ String str_l = name.substring(name.indexOf("layer") + 5, name.indexOf("_module"));
l = Integer.parseInt(str_l);
-
+
if (ddd) {
System.out.println("sensor name " + name + " --> layer " + l);
}
- if ( l < 1 || l > 10 ) {
+ if (l < 1 || l > 10) {
System.out.println("This layer doesn't exist?");
throw new RuntimeException("SiSensor name " + name + " is invalid?");
}
- n[l-1] = n[l-1] + 1;
-
+ n[l - 1] = n[l - 1] + 1;
+
}
-
+
return n;
- }
-
-
+ }
+
public void endOfData() {
if (outputPlots != null)
try {
@@ -751,36 +804,36 @@
aida.histogram1D("Module 4 Residual Y(mm)").reset();
aida.histogram1D("Module 5 Residual X(mm)").reset();
aida.histogram1D("Module 5 Residual Y(mm)").reset();
- aida.histogram1D("Module 1 Residual X(mm) 1hpl").reset();
- aida.histogram1D("Module 1 Residual Y(mm) 1hpl").reset();
- aida.histogram1D("Module 2 Residual X(mm) 1hpl").reset();
- aida.histogram1D("Module 2 Residual Y(mm) 1hpl").reset();
- aida.histogram1D("Module 3 Residual X(mm) 1hpl").reset();
- aida.histogram1D("Module 3 Residual Y(mm) 1hpl").reset();
- aida.histogram1D("Module 4 Residual X(mm) 1hpl").reset();
- aida.histogram1D("Module 4 Residual Y(mm) 1hpl").reset();
- aida.histogram1D("Module 5 Residual X(mm) 1hpl").reset();
- aida.histogram1D("Module 5 Residual Y(mm) 1hpl").reset();
- aida.histogram1D("Module 1 Residual X(mm) 1clpl").reset();
- aida.histogram1D("Module 1 Residual Y(mm) 1clpl").reset();
- aida.histogram1D("Module 2 Residual X(mm) 1clpl").reset();
- aida.histogram1D("Module 2 Residual Y(mm) 1clpl").reset();
- aida.histogram1D("Module 3 Residual X(mm) 1clpl").reset();
- aida.histogram1D("Module 3 Residual Y(mm) 1clpl").reset();
- aida.histogram1D("Module 4 Residual X(mm) 1clpl").reset();
- aida.histogram1D("Module 4 Residual Y(mm) 1clpl").reset();
- aida.histogram1D("Module 5 Residual X(mm) 1clpl").reset();
- aida.histogram1D("Module 5 Residual Y(mm) 1clpl").reset();
+ aida.histogram1D("Module 1 Residual X(mm) Top").reset();
+ aida.histogram1D("Module 1 Residual Y(mm) Top").reset();
+ aida.histogram1D("Module 2 Residual X(mm) Top").reset();
+ aida.histogram1D("Module 2 Residual Y(mm) Top").reset();
+ aida.histogram1D("Module 3 Residual X(mm) Top").reset();
+ aida.histogram1D("Module 3 Residual Y(mm) Top").reset();
+ aida.histogram1D("Module 4 Residual X(mm) Top").reset();
+ aida.histogram1D("Module 4 Residual Y(mm) Top").reset();
+ aida.histogram1D("Module 5 Residual X(mm) Top").reset();
+ aida.histogram1D("Module 5 Residual Y(mm) Top").reset();
+ aida.histogram1D("Module 1 Residual X(mm) Bottom").reset();
+ aida.histogram1D("Module 1 Residual Y(mm) Bottom").reset();
+ aida.histogram1D("Module 2 Residual X(mm) Bottom").reset();
+ aida.histogram1D("Module 2 Residual Y(mm) Bottom").reset();
+ aida.histogram1D("Module 3 Residual X(mm) Bottom").reset();
+ aida.histogram1D("Module 3 Residual Y(mm) Bottom").reset();
+ aida.histogram1D("Module 4 Residual X(mm) Bottom").reset();
+ aida.histogram1D("Module 4 Residual Y(mm) Bottom").reset();
+ aida.histogram1D("Module 5 Residual X(mm) Bottom").reset();
+ aida.histogram1D("Module 5 Residual Y(mm) Bottom").reset();
aida.histogram2D("Energy Vs Momentum").reset();
aida.histogram1D("Energy Over Momentum").reset();
aida.histogram1D("deltaX").reset();
aida.histogram1D("deltaY").reset();
-
+
aida.histogram1D("Amp (HitOnTrack)").reset();
-
+
aida.histogram1D("d0 ").reset();
- aida.histogram1D("phi ").reset();
+ aida.histogram1D("sinphi ").reset();
aida.histogram1D("omega ").reset();
aida.histogram1D("tan(lambda) ").reset();
aida.histogram1D("z0 ").reset();