lcsim/src/org/lcsim/event/base
diff -u -r1.8 -r1.9
--- BaseHit.java 22 Apr 2009 18:50:14 -0000 1.8
+++ BaseHit.java 23 Apr 2009 19:11:37 -0000 1.9
@@ -2,6 +2,7 @@
import hep.physics.vec.Hep3Vector;
+import org.lcsim.detector.DetectorElementStore;
import org.lcsim.detector.DetectorIdentifierHelper;
import org.lcsim.detector.IDetectorElement;
import org.lcsim.detector.IDetectorElementContainer;
@@ -173,11 +174,14 @@
return getIdentifierHelper().getValue(getIdentifier(), field);
}
- private final void findDetectorElementByIdentifier()
+ /**
+ * Use the {@link IIdentifier} associated with this hit to find its DetectorElement.
+ */
+ private void findDetectorElementByIdentifier()
{
if (this.de == null)
{
- IDetectorElementContainer srch = getSubdetector().getDetectorElement().findDetectorElement(getIdentifier());
+ IDetectorElementContainer srch = DetectorElementStore.getInstance().find(getIdentifier());
if (srch.size() == 0)
{
@@ -189,6 +193,7 @@
this.de = srch.get(0);
}
+ // This can happen sometimes, because the identifiers are not guaranteed to be unique across the detector hierarchy.
if (srch.size() > 1)
{
// Pick the first leaf DetectorElement that is found.
@@ -202,6 +207,5 @@
}
}
}
- }
-
+ }
}
\ No newline at end of file