Print

Print


Commit in lcsim on MAIN
test/org/lcsim/detector/tracker/SimTrackerHitPositionalReadoutDriverTest.java+66added 1.1
src/org/lcsim/util/lcio/SIOSimTrackerHit.java+13-11.6 -> 1.7
src/org/lcsim/event/SimTrackerHit.java+13-11.9 -> 1.10
src/org/lcsim/detector/tracker/SimTrackerHitPositionalReadoutDriver.java+46added 1.1
src/org/lcsim/contrib/NickSinev/event/base/BaseSimTrackerHit.java+6-11.1 -> 1.2
+144-3
2 added + 3 modified, total 5 files
JM: First version of SimTrackerHit with associated DetectorElement.

lcsim/test/org/lcsim/detector/tracker
SimTrackerHitPositionalReadoutDriverTest.java added at 1.1
diff -N SimTrackerHitPositionalReadoutDriverTest.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SimTrackerHitPositionalReadoutDriverTest.java	27 Apr 2007 01:10:23 -0000	1.1
@@ -0,0 +1,66 @@
+package org.lcsim.detector.tracker;
+
+import java.io.File;
+import java.net.URL;
+import java.util.List;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+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;
+
+public class SimTrackerHitPositionalReadoutDriverTest
+extends TestCase
+{
+    public SimTrackerHitPositionalReadoutDriverTest(String testName)
+    {
+       super(testName);
+    }
+    
+    public static Test suite()
+    {
+       return new TestSuite(SimTrackerHitPositionalReadoutDriverTest.class);
+    }
+    
+    public void testReadout() throws Exception
+    {        
+        URL url = new URL("http://www.lcsim.org/test/lcio/mu_5.0GeV_Theta90_sid01_polyhedra.slcio");
+        FileCache cache = new FileCache();
+        File file = cache.getCachedFile(url);
+
+        LCSimLoop loop = new LCSimLoop();
+        loop.setLCIORecordSource(file);
+        loop.add( new SimTrackerHitPositionalReadoutDriver() );
+        loop.add( new TestDriver() );
+        loop.loop(-1);
+        loop.dispose();
+    }    
+    
+    class TestDriver
+    extends Driver
+    {
+        protected void process(EventHeader header)
+        {        
+            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));
+                }           
+            } 
+            
+        }
+    }
+}
+

lcsim/src/org/lcsim/util/lcio
SIOSimTrackerHit.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- SIOSimTrackerHit.java	3 Apr 2006 22:40:20 -0000	1.6
+++ SIOSimTrackerHit.java	27 Apr 2007 01:10:23 -0000	1.7
@@ -6,6 +6,7 @@
 
 import java.io.IOException;
 
+import org.lcsim.detector.IDetectorElement;
 import org.lcsim.event.MCParticle;
 import org.lcsim.event.SimTrackerHit;
 import org.lcsim.event.EventHeader.LCMetaData;
@@ -14,7 +15,7 @@
 
 /**
  * @author Tony Johnson
- * @version $Id: SIOSimTrackerHit.java,v 1.6 2006/04/03 22:40:20 jeremy Exp $
+ * @version $Id: SIOSimTrackerHit.java,v 1.7 2007/04/27 01:10:23 jeremy Exp $
  */
 class SIOSimTrackerHit implements SimTrackerHit
 {
@@ -26,6 +27,7 @@
     private Object particle;
     private float pathLength;
     LCMetaData meta;
+    IDetectorElement detectorElement;
 
     SIOSimTrackerHit(SIOInputStream in, int flags, int version, LCMetaData meta) throws IOException
     {
@@ -124,4 +126,14 @@
         getIDDecoder().setID(getCellID());
         return getIDDecoder().getValue("layer");
     }
+    
+    public IDetectorElement getDetectorElement()
+    {
+        return detectorElement;
+    }
+    
+    public void setDetectorElement(IDetectorElement detectorElement)
+    {
+        this.detectorElement = detectorElement;
+    }
 }

lcsim/src/org/lcsim/event
SimTrackerHit.java 1.9 -> 1.10
diff -u -r1.9 -r1.10
--- SimTrackerHit.java	28 Jun 2006 04:48:30 -0000	1.9
+++ SimTrackerHit.java	27 Apr 2007 01:10:23 -0000	1.10
@@ -1,10 +1,11 @@
 package org.lcsim.event;
 
+import org.lcsim.detector.IDetectorElement;
 import org.lcsim.geometry.IDDecoder;
 import org.lcsim.geometry.Subdetector;
 
 /**
- * @version $Id: SimTrackerHit.java,v 1.9 2006/06/28 04:48:30 jstrube Exp $
+ * @version $Id: SimTrackerHit.java,v 1.10 2007/04/27 01:10:23 jeremy Exp $
  */
 
 public interface SimTrackerHit
@@ -39,4 +40,15 @@
    
    /** Using the IDDecoder, returns the Subdetector associated with this hit */
    Subdetector getSubdetector();
+   
+   /** 
+    * Return the DetectorElement associated with this hit or <code>null</code>
+    * if there is none.   
+    */
+   IDetectorElement getDetectorElement();
+   
+   /**
+    * Set the DetectorElement associated with this SimTrackerHit.
+    */
+   void setDetectorElement(IDetectorElement detectorElement);   
 }

lcsim/src/org/lcsim/detector/tracker
SimTrackerHitPositionalReadoutDriver.java added at 1.1
diff -N SimTrackerHitPositionalReadoutDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SimTrackerHitPositionalReadoutDriver.java	27 Apr 2007 01:10:23 -0000	1.1
@@ -0,0 +1,46 @@
+package org.lcsim.detector.tracker;
+
+import hep.physics.vec.BasicHep3Vector;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.lcsim.detector.DetectorElement;
+import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.Readout;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.SimTrackerHit;
+import org.lcsim.util.Driver;
+
+public class SimTrackerHitPositionalReadoutDriver extends Driver
+{
+    public SimTrackerHitPositionalReadoutDriver()
+    {}
+
+    protected void process(EventHeader header)
+    {
+       List<List<SimTrackerHit>> collections = header.get(SimTrackerHit.class);
+       for ( List<SimTrackerHit> collection : collections )
+       {
+           for ( SimTrackerHit hit : collection )
+           {
+               IDetectorElement deSubdet = hit.getSubdetector().getDetectorElement();
+               DetectorElement deHit = 
+                   (DetectorElement)deSubdet.findDetectorElement( new BasicHep3Vector( hit.getPoint() ) );               
+               hit.setDetectorElement( deHit );
+               SimTrackerHitReadout ro = new SimTrackerHitReadout( deHit.getName() );
+               ro.addHit(hit);
+               deHit.setReadout(ro);
+           }           
+       }        
+    }    
+    
+    class SimTrackerHitReadout
+    extends Readout<SimTrackerHit>
+    {
+        public SimTrackerHitReadout(String name)
+        {
+            super(name);
+        }        
+    }
+}
\ No newline at end of file

lcsim/src/org/lcsim/contrib/NickSinev/event/base
BaseSimTrackerHit.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- BaseSimTrackerHit.java	8 Sep 2006 00:51:06 -0000	1.1
+++ BaseSimTrackerHit.java	27 Apr 2007 01:10:23 -0000	1.2
@@ -5,6 +5,8 @@
 import org.lcsim.event.base.*;
 import org.lcsim.geometry.IDDecoder;
 import org.lcsim.geometry.Subdetector;
+import org.lcsim.detector.DetectorElement;
+import org.lcsim.detector.IDetectorElement;
 
 public class BaseSimTrackerHit implements SimTrackerHit
 {
@@ -55,5 +57,8 @@
    public double getPathLength() { return pathlength; }
 
    public double[] getMomentum() { return momentum; } 
-
+   
+   public DetectorElement getDetectorElement() { return null; }
+   
+   public void setDetectorElement(IDetectorElement de) { };
 }
\ No newline at end of file
CVSspam 0.2.8