Author: [log in to unmask]
Date: Mon Aug 31 18:30:53 2015
New Revision: 3479
Log:
don't crash on tracks without L1 hits
Modified:
java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/V0Monitoring.java
Modified: java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/V0Monitoring.java
=============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/V0Monitoring.java (original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/dataquality/V0Monitoring.java Mon Aug 31 18:30:53 2015
@@ -263,29 +263,33 @@
pos = trks.get(0);
ele = trks.get(1);
}
-
- Double[] eleIso = TrackUtils.getIsolations(ele.getTracks().get(0), hitToStrips, hitToRotated);
- Double[] posIso = TrackUtils.getIsolations(pos.getTracks().get(0), hitToStrips, hitToRotated);
- double eleL1Iso = Math.min(eleIso[0], eleIso[1]);
- double posL1Iso = Math.min(posIso[0], posIso[1]);
- double minL1Iso = Math.min(eleL1Iso,posL1Iso);
- L1IsoVsVz.fill(uncVert.getPosition().z(), minL1Iso);
-
- double pe = ele.getMomentum().magnitude();
- double pp = pos.getMomentum().magnitude();
- pEleVspPos.fill(pe, pp);
- pxEleVspxPos.fill(ele.getMomentum().x(), pos.getMomentum().x());
- pyEleVspyPos.fill(ele.getMomentum().y(), pos.getMomentum().y());
- if (pe < v0MaxPCut && pp < v0MaxPCut && (pe + pp) > v0ESumMinCut && (pe + pp) < v0ESumMaxCut)//enrich radiative-like events
- {
- pEleVspPosWithCut.fill(pe, pp);
+ if (trks.get(0).getCharge() < 0 && trks.get(1).getCharge() > 0) {
+
+ Double[] eleIso = TrackUtils.getIsolations(ele.getTracks().get(0), hitToStrips, hitToRotated);
+ Double[] posIso = TrackUtils.getIsolations(pos.getTracks().get(0), hitToStrips, hitToRotated);
+ if (eleIso[0] != null && posIso[0] != null) {
+ double eleL1Iso = Math.min(eleIso[0], eleIso[1]);
+ double posL1Iso = Math.min(posIso[0], posIso[1]);
+ double minL1Iso = Math.min(eleL1Iso, posL1Iso);
+ L1IsoVsVz.fill(uncVert.getPosition().z(), minL1Iso);
+ }
+
+ double pe = ele.getMomentum().magnitude();
+ double pp = pos.getMomentum().magnitude();
+ pEleVspPos.fill(pe, pp);
+ pxEleVspxPos.fill(ele.getMomentum().x(), pos.getMomentum().x());
+ pyEleVspyPos.fill(ele.getMomentum().y(), pos.getMomentum().y());
+ if (pe < v0MaxPCut && pp < v0MaxPCut && (pe + pp) > v0ESumMinCut && (pe + pp) < v0ESumMaxCut)//enrich radiative-like events
+ {
+ pEleVspPosWithCut.fill(pe, pp);
+ }
}
double eleT = TrackUtils.getTrackTime(ele.getTracks().get(0), hitToStrips, hitToRotated);
double posT = TrackUtils.getTrackTime(pos.getTracks().get(0), hitToStrips, hitToRotated);
double meanT = (eleT + posT) / 2.0;
v0Time.fill(meanT);
- v0Dt.fill(eleT-posT);
+ v0Dt.fill(eleT - posT);
trigTimeV0Time.fill(meanT, event.getTimeStamp() % 24);
trigTime.fill(event.getTimeStamp() % 24);
}
|