Commit in lcsim on MAIN
src/org/lcsim/detector/ReadoutCleanupDriver.java+21added 1.1
src/org/lcsim/detector/tracker/SimTrackerHitPositionalReadoutDriver.java+4-131.1 -> 1.2
                              /SimTrackerHitReadout.java+8added 1.1
test/org/lcsim/detector/tracker/SimTrackerHitPositionalReadoutDriverTest.java+32-151.2 -> 1.3
+65-28
2 added + 2 modified, total 4 files
JM: Add some support for SimTrackerHit readout using DetectorElements.

lcsim/src/org/lcsim/detector
ReadoutCleanupDriver.java added at 1.1
diff -N ReadoutCleanupDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ReadoutCleanupDriver.java	27 Apr 2007 12:37:46 -0000	1.1
@@ -0,0 +1,21 @@
+package org.lcsim.detector;
+
+import org.lcsim.event.EventHeader;
+import org.lcsim.util.Driver;
+import org.lcsim.detector.DetectorElementStore;
+import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.IDetectorElementStore;
+
+public class ReadoutCleanupDriver
+extends Driver
+{
+    protected void process(EventHeader event)
+    {
+	for ( IDetectorElement de : DetectorElementStore.getInstance() )
+	{
+	    if ( de.hasReadout() ) {
+		de.getReadout().clear();
+	    }
+	}
+    } 
+}

lcsim/src/org/lcsim/detector/tracker
SimTrackerHitPositionalReadoutDriver.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- SimTrackerHitPositionalReadoutDriver.java	27 Apr 2007 01:10:23 -0000	1.1
+++ SimTrackerHitPositionalReadoutDriver.java	27 Apr 2007 12:37:46 -0000	1.2
@@ -7,6 +7,7 @@
 
 import org.lcsim.detector.DetectorElement;
 import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.IReadout;
 import org.lcsim.detector.Readout;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.SimTrackerHit;
@@ -28,19 +29,9 @@
                DetectorElement deHit = 
                    (DetectorElement)deSubdet.findDetectorElement( new BasicHep3Vector( hit.getPoint() ) );               
                hit.setDetectorElement( deHit );
-               SimTrackerHitReadout ro = new SimTrackerHitReadout( deHit.getName() );
-               ro.addHit(hit);
-               deHit.setReadout(ro);
+               Readout<SimTrackerHit> ro = (Readout<SimTrackerHit>)deHit.getReadout();
+               ro.addHit( hit );
            }           
        }        
     }    
-    
-    class SimTrackerHitReadout
-    extends Readout<SimTrackerHit>
-    {
-        public SimTrackerHitReadout(String name)
-        {
-            super(name);
-        }        
-    }
-}
\ No newline at end of file
+}

lcsim/src/org/lcsim/detector/tracker
SimTrackerHitReadout.java added at 1.1
diff -N SimTrackerHitReadout.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SimTrackerHitReadout.java	27 Apr 2007 12:37:46 -0000	1.1
@@ -0,0 +1,8 @@
+package org.lcsim.detector.tracker;
+
+import org.lcsim.detector.Readout;
+import org.lcsim.event.SimTrackerHit;
+
+public  class SimTrackerHitReadout
+extends Readout<SimTrackerHit>
+{}

lcsim/test/org/lcsim/detector/tracker
SimTrackerHitPositionalReadoutDriverTest.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- SimTrackerHitPositionalReadoutDriverTest.java	27 Apr 2007 01:12:23 -0000	1.2
+++ SimTrackerHitPositionalReadoutDriverTest.java	27 Apr 2007 12:37:46 -0000	1.3
@@ -8,16 +8,24 @@
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
+import hep.physics.vec.BasicHep3Vector;
+
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.SimTrackerHit;
 import org.lcsim.util.Driver;
 import org.lcsim.util.cache.FileCache;
 import org.lcsim.util.loop.LCSimLoop;
 import org.lcsim.detector.IDetectorElement;
-import org.lcsim.detector.Readout;
+import org.lcsim.detector.IReadout;
+import org.lcsim.detector.ReadoutCleanupDriver;
 
-public class SimTrackerHitPositionalReadoutDriverTest
-extends TestCase
+/**
+ * Reads 2 muon event generated in sid01_polyhedra, which uses
+ * SiTrackerBarrel.  For DetectorElements where there is a 
+ * Readout containing one hit, check that the hit from the event
+ * and the DE's have matching cell id. 
+ */
+public class SimTrackerHitPositionalReadoutDriverTest extends TestCase
 {
     public SimTrackerHitPositionalReadoutDriverTest(String testName)
     {
@@ -28,7 +36,12 @@
     {
        return new TestSuite(SimTrackerHitPositionalReadoutDriverTest.class);
     }
-    
+
+    public void setUp()
+    {
+	java.lang.Runtime.getRuntime().gc();
+    }
+
     public void testReadout() throws Exception
     {        
         URL url = new URL("http://www.lcsim.org/test/lcio/mu_5.0GeV_Theta90_sid01_polyhedra.slcio");
@@ -39,10 +52,11 @@
         loop.setLCIORecordSource(file);
         loop.add( new SimTrackerHitPositionalReadoutDriver() );
         loop.add( new TestDriver() );
-        loop.loop(-1);
+	loop.add( new ReadoutCleanupDriver() );
+        loop.loop(2);
         loop.dispose();
-    }    
-    
+    }     
+  
     class TestDriver
     extends Driver
     {
@@ -50,16 +64,19 @@
         {        
             List<List<SimTrackerHit>> collections = header.get(SimTrackerHit.class);
             for ( List<SimTrackerHit> collection : collections )
-            {
-                for ( SimTrackerHit hit : collection )
-                {
-                    IDetectorElement deHit = hit.getDetectorElement();
-                    //System.out.println( "hit on DE <" + deHit.getName() + ">");
-                    Readout ro = (Readout<SimTrackerHit>)deHit.getReadout();
-                    assert(ro.getHits().contains(hit));
+	    {
+		for ( SimTrackerHit hit : collection )
+		{
+                    IDetectorElement de = hit.getDetectorElement();
+                    IReadout<SimTrackerHit> ro = de.getReadout();
+		    List<SimTrackerHit> hits = ro.getHits();
+		    for ( SimTrackerHit deHit : hits )
+		    {		
+			assertEquals( "SimTrackerHit ids did not match!", hit.getCellID(), deHit.getCellID() );
+			assertTrue( de.getGeometry().isInside( new BasicHep3Vector( hit.getPoint() ) ) );
+		    }
                 }           
             } 
-            
         }
     }
 }
CVSspam 0.2.8