Commit in lcsim/src/org/lcsim/event/base on MAIN
BaseSimTrackerHit.java+231.8 -> 1.9
add search for DetectorElement if not setup externally

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