2 added + 3 modified, total 5 files
lcsim/test/org/lcsim/detector/tracker
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
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
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
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
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