lcsim/src/org/lcsim/event/base
diff -u -r1.8 -r1.9
--- BaseSimTrackerHit.java 17 Mar 2009 22:45:44 -0000 1.8
+++ BaseSimTrackerHit.java 25 Mar 2009 01:43:12 -0000 1.9
@@ -5,6 +5,7 @@
import hep.physics.vec.VecOp;
import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.IDetectorElementContainer;
import org.lcsim.detector.identifier.IIdentifier;
import org.lcsim.detector.identifier.Identifier;
import org.lcsim.event.MCParticle;
@@ -158,4 +159,26 @@
compactId = new Identifier(cellID);
return compactId;
}
+
+ public IDetectorElement getDetectorElement()
+ {
+ if (de == null)
+ {
+ IDetectorElementContainer srch = getSubdetector().getDetectorElement().findDetectorElement(getIdentifier());
+ if (srch.size() == 1)
+ {
+ de = srch.get(0);
+ }
+ else if (srch.size() == 0)
+ {
+ throw new RuntimeException("No DetectorElement found for SimTrackerHit with id <" + getIdentifier().toHexString() + ">.");
+ }
+ // Should not happen. Check anyways.
+ else if (srch.size() > 1)
+ {
+ throw new RuntimeException("Found multiple DetectorElements matching id <" + getIdentifier().toHexString() + ">.");
+ }
+ }
+ return de;
+ }
}
\ No newline at end of file