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);