Author: [log in to unmask]
Date: Mon Sep 7 14:10:58 2015
New Revision: 3545
Log:
add iso plots
Modified:
java/trunk/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java
Modified: java/trunk/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java
=============================================================================
--- java/trunk/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java (original)
+++ java/trunk/users/src/main/java/org/hps/users/phansson/TrackingReconstructionPlots.java Mon Sep 7 14:10:58 2015
@@ -94,6 +94,8 @@
IPlotter plotter7;
IPlotter plotter8;
IPlotter plotter88;
+ IPlotter plotter888;
+ IPlotter plotter8888;
IPlotter plotter9;
IPlotter top1;
IPlotter top2;
@@ -923,6 +925,35 @@
}
if(showPlots) plotter9.show();
+
+
+ plotter888 = fac.createPlotterFactory().create("HPS Strip Hit Isolation");
+ plotter888.setTitle("Strip Hit Isolation");
+ //plotterFrame.addPlotter(plotter88);
+ plotter888.setStyle(style8);
+ plotter888.createRegions(6, 6);
+ i=0;
+ for(SiSensor sensor : sensors) {
+ IHistogram1D resX = aida.histogram1D(sensor.getName() + " strip hits iso", 50, 0, 5);
+ plotter888.region(i).plot(resX);
+ i++;
+ }
+
+ if(showPlots) plotter888.show();
+
+ plotter8888 = fac.createPlotterFactory().create("HPS Strip Hit On Track Isolation");
+ plotter8888.setTitle("Strip Hit On Track Isolation");
+ //plotterFrame.addPlotter(plotter88);
+ plotter8888.setStyle(style8);
+ plotter8888.createRegions(6, 6);
+ i=0;
+ for(SiSensor sensor : sensors) {
+ IHistogram1D resX = aida.histogram1D(sensor.getName() + " strip hits iso on track", 50, 0, 5);
+ plotter8888.region(i).plot(resX);
+ i++;
+ }
+
+ if(showPlots) plotter8888.show();
}
@@ -958,6 +989,7 @@
List<SiTrackerHitStrip1D> stripClusters = event.get(SiTrackerHitStrip1D.class, stripClusterCollectionName);
//System.out.printf("%s: Got %d SiTrackerHitStrip1D in this event\n", stripHits.size());
Map<HpsSiSensor, Integer> stripHits = new HashMap<HpsSiSensor, Integer>();
+ Map<HpsSiSensor, Double> stripHitsIso = new HashMap<HpsSiSensor, Double>();
for (SiTrackerHitStrip1D stripHit : stripClusters) {
HpsSiSensor sensor = (HpsSiSensor) stripHit.getRawHits().get(0).getDetectorElement();
int n;
@@ -968,11 +1000,38 @@
}
n++;
stripHits.put(sensor, n);
+
+ // calculate isolation to other strip clusters
+
+ SiTrackerHitStrip1D local = stripHit.getTransformedHit(TrackerHitType.CoordinateSystem.SENSOR);
+
+ double stripIsoMin = 9999.9;
+ for (SiTrackerHitStrip1D stripHitOther : stripClusters) {
+ logger.fine(stripHit.getPositionAsVector().toString() + " c.f. " + stripHitOther.getPositionAsVector().toString());
+
+ if(stripHitOther.equals(stripHit)) {
+ continue;
+ }
+
+ HpsSiSensor sensorOther = (HpsSiSensor) stripHitOther.getRawHits().get(0).getDetectorElement();
+ //System.out.println(sensor.getName() + " c.f. " + sensorOther.getName());
+ if(sensorOther.equals(sensor)) {
+ SiTrackerHitStrip1D localOther = stripHitOther.getTransformedHit(TrackerHitType.CoordinateSystem.SENSOR);
+ double d = Math.abs(local.getPosition()[0] - localOther.getPosition()[0]);
+ //System.out.println(sensor.getName() + " d " + Double.toString(d));
+ if (d < stripIsoMin && d > 0) {
+ stripIsoMin = d;
+ }
+ }
+ }
+ stripHitsIso.put(sensor, stripIsoMin);
}
for(Map.Entry<HpsSiSensor,Integer> sensor : stripHits.entrySet()) {
aida.histogram1D(sensor.getKey().getName() + " strip hits").fill(sensor.getValue());
- }
+ aida.histogram1D(sensor.getKey().getName() + " strip hits iso").fill(stripHitsIso.get(sensor.getKey()));
+ }
+
@@ -1147,6 +1206,7 @@
}
List<TrackerHit> hitsOnTrack = trk.getTrackerHits();
Map<HpsSiSensor, Integer> stripHitsOnTrack = new HashMap<HpsSiSensor, Integer>();
+ Map<HpsSiSensor, Double> stripHitsIsoOnTrack = new HashMap<HpsSiSensor, Double>();
for (TrackerHit hit : hitsOnTrack) {
@@ -1165,15 +1225,28 @@
else isTopLayer=false;
HelicalTrackStripGbl stripGbl = new HelicalTrackStripGbl(strip, true);
Map<String, Double> stripResiduals = TrackUtils.calculateLocalTrackHitResiduals(helicalTrackFit, stripGbl, 0.,0.,_bfield);
- logger.info("Sensor " + sensor.getName() + " ures = " + stripResiduals.get("ures"));
+ logger.fine("Sensor " + sensor.getName() + " ures = " + stripResiduals.get("ures"));
aida.histogram1D(sensor.getName() + " strip residual (mm)").fill(stripResiduals.get("ures"));
+
+ // calculate isolation to other strip clusters
+ double stripIsoMin = 9999.9;
+ for (SiTrackerHitStrip1D stripHit : stripClusters) {
+ if (stripHit.getRawHits().get(0).getDetectorElement().getName().equals(sensor.getName())) {
+ SiTrackerHitStrip1D local = stripHit.getTransformedHit(TrackerHitType.CoordinateSystem.SENSOR);
+ double d = Math.abs(strip.umeas() - local.getPosition()[0]);
+ if (d < stripIsoMin && d > 0) {
+ stripIsoMin = d;
+ }
+ }
+ }
if(stripHitsOnTrack.containsKey(sensor)) {
stripHitsOnTrack.put(sensor, stripHitsOnTrack.get(sensor) + 1);
} else {
stripHitsOnTrack.put(sensor, 1);
}
+ stripHitsIsoOnTrack.put(sensor, stripIsoMin);
}
@@ -1291,6 +1364,7 @@
for(Map.Entry<HpsSiSensor,Integer> sensor : stripHitsOnTrack.entrySet()) {
aida.histogram1D(sensor.getKey().getName() + " strip hits on track").fill(sensor.getValue());
+ aida.histogram1D(sensor.getKey().getName() + " strip hits iso on track").fill(stripHitsIsoOnTrack.get(sensor.getKey()));
}
@@ -1320,11 +1394,6 @@
aida.histogram2D("Y ECal Vs Track").fill(clust.getPosition()[1], posAtEcal.y());
if (isTop == 0) {
- aida.histogram1D("Tracks matched Top").fill(1);
- if(trk.getTrackStates().get(0).getMomentum()[0] > 0.8){
- aida.histogram1D("Tracks matched Top (Pz>0.8)").fill(1);
- }
-
aida.histogram2D("Top Energy Vs Momentum").fill(clust.getEnergy(), trk.getTrackStates().get(0).getMomentum()[0] );
// aida.histogram2D("Top Energy Vs Momentum").fill(posAtEcal.y(), trk.getTrackStates().get(0).getMomentum()[0]);
aida.histogram1D("Top Energy Over Momentum").fill(clust.getEnergy() / (trk.getTrackStates().get(0).getMomentum()[0]));
@@ -1335,10 +1404,6 @@
aida.histogram2D("Top X ECal Vs Track").fill(clust.getPosition()[0], posAtEcal.x());
aida.histogram2D("Top Y ECal Vs Track").fill(clust.getPosition()[1], posAtEcal.y());
} else {
- aida.histogram1D("Tracks matched Bottom").fill(1);
- if(trk.getTrackStates().get(0).getMomentum()[0] > 0.8){
- aida.histogram1D("Tracks matched Bottom (Pz>0.8)").fill(1);
- }
aida.histogram2D("Bottom Energy Vs Momentum").fill(clust.getEnergy(), trk.getTrackStates().get(0).getMomentum()[0] );
aida.histogram1D("Bottom Energy Over Momentum").fill(clust.getEnergy() / (trk.getTrackStates().get(0).getMomentum()[0]));
aida.histogram1D("Bottom deltaX").fill(clust.getPosition()[0] - posAtEcal.x());
@@ -1352,7 +1417,7 @@
}
}
- if (clust != null) {
+ if (clust == null) {
aida.histogram1D("Tracks matched").fill(0);
if(trk.getTrackStates().get(0).getMomentum()[0] > 0.8){
aida.histogram1D("Tracks matched (Pz>0.8)").fill(0);
|