Commit in lcsim/src/org/lcsim/event/base on MAIN
BaseHit.java+8-41.8 -> 1.9


lcsim/src/org/lcsim/event/base
BaseHit.java 1.8 -> 1.9
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
CVSspam 0.2.8