lcsim/src/org/lcsim/contrib/uiowa
diff -u -r1.14 -r1.15
--- ReclusterDTreeDriver.java 26 Mar 2008 19:45:31 -0000 1.14
+++ ReclusterDTreeDriver.java 17 Apr 2008 13:21:05 -0000 1.15
@@ -33,7 +33,7 @@
* in this package, which uses the implementation in
* org.lcsim.recon.cluster.directedtree developed by NIU).
*
- * @version $Id: ReclusterDTreeDriver.java,v 1.14 2008/03/26 19:45:31 mcharles Exp $
+ * @version $Id: ReclusterDTreeDriver.java,v 1.15 2008/04/17 13:21:05 mcharles Exp $
* @author Mat Charles <[log in to unmask]>
*/
@@ -48,7 +48,7 @@
protected boolean m_photonDebug = false;
protected boolean m_photonSplitDebug = false;
protected boolean m_jetDebug = false;
- protected boolean m_writeExtraEventOutput = false;
+ protected boolean m_writeExtraEventOutput = true;
protected boolean m_useNewMipFinder = true;
protected boolean m_useOldMipFinder = true;
@@ -74,7 +74,7 @@
protected int m_punchThroughHitMinimum = 4;
public ReclusterDTreeDriver(String dTreeClusterList, String trackList, String mcList) {
- System.out.println("ReclusterDTreeDriver version 0.1");
+ System.out.println("ReclusterDTreeDriver version 0.2");
initTrackMatch();
initCalibration();
initPlots();
@@ -2690,13 +2690,17 @@
// Require within a certain distance (sanity check)
Hep3Vector positionOfSeedHit = new BasicHep3Vector(seedHitToUse.getPosition());
Hep3Vector trackExtrapPointInLayer = debugTrackMatch.getExtrapolator().extendToECALLayer(getLayer(seedHitToUse));
- double distForCut = VecOp.sub(positionOfSeedHit, trackExtrapPointInLayer).magnitude();
- if (distForCut < 10.0) {
- // Within 1cm
- trackSeedHits.add(seedHitToUse);
- Hep3Vector tangent = VecOp.unit(VecOp.sub(interceptPointLayer1, interceptPointLayer0));
- mapTrackSeedToTangent.put(seedHitToUse, tangent);
- mapTrackToTrackSeed.put(tr, seedHitToUse);
+ // It's possible (but rare) for trackExtrapPointInLayer to be null -- e.g. if track just clipped the calorimeter
+ // and never entered layer 2. Watch for that case.
+ if (trackExtrapPointInLayer != null) {
+ double distForCut = VecOp.sub(positionOfSeedHit, trackExtrapPointInLayer).magnitude();
+ if (distForCut < 10.0) {
+ // Within 1cm
+ trackSeedHits.add(seedHitToUse);
+ Hep3Vector tangent = VecOp.unit(VecOp.sub(interceptPointLayer1, interceptPointLayer0));
+ mapTrackSeedToTangent.put(seedHitToUse, tangent);
+ mapTrackToTrackSeed.put(tr, seedHitToUse);
+ }
}
}
}