lcsim/src/org/lcsim/detector/driver
diff -N ExampleRawTrackerHitReadoutDriver.java
--- ExampleRawTrackerHitReadoutDriver.java 28 Aug 2007 23:48:39 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,116 +0,0 @@
-package org.lcsim.detector.driver;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.lcsim.detector.DetectorElementStore;
-import org.lcsim.detector.IDetectorElement;
-import org.lcsim.detector.IDetectorElementContainer;
-import org.lcsim.detector.IReadout;
-import org.lcsim.detector.identifier.IExpandedIdentifier;
-import org.lcsim.detector.identifier.IIdentifier;
-import org.lcsim.detector.identifier.IIdentifierHelper;
-import org.lcsim.detector.identifier.Identifier;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.RawTrackerHit;
-import org.lcsim.event.SimTrackerHit;
-import org.lcsim.event.EventHeader.LCMetaData;
-import org.lcsim.event.base.BaseRawTrackerHit;
-import org.lcsim.geometry.Subdetector;
-import org.lcsim.geometry.subdetector.SiTrackerBarrel;
-import org.lcsim.util.Driver;
-
-/**
- *
- * Example {@link org.lcsim.util.Driver} that builds collections of
- * {@link org.lcsim.event.RawTrackerHit}s from {@link SimTrackerHit} collections.
- *
- * @author Jeremy McCormick
- * @version $Id: ExampleRawTrackerHitReadoutDriver.java,v 1.5 2007/08/28 23:48:39 jeremy Exp $
- */
-public class ExampleRawTrackerHitReadoutDriver
-extends Driver
-{
- protected void process(EventHeader event)
- {
- List<List<SimTrackerHit>> collections = event.get(SimTrackerHit.class);
- for ( List<SimTrackerHit> collection : collections )
- {
- LCMetaData meta = event.getMetaData(collection);
- Subdetector subdet = meta.getIDDecoder().getSubdetector();
- IIdentifierHelper helper = subdet.getDetectorElement().getIdentifierHelper();
-
- if (subdet instanceof SiTrackerBarrel)
- {
- List<RawTrackerHit> rawHits = new ArrayList<RawTrackerHit>();
-
- for (IDetectorElement layer : subdet.getDetectorElement().getChildren())
- {
- for (IDetectorElement module : layer.getChildren())
- {
- for (IDetectorElement sensor : module.getChildren())
- {
- // Check that IdentifierHelper is retrievable.
- sensor.getIdentifierHelper();
- IReadout readout = sensor.getReadout();
- List <SimTrackerHit> simHits = readout.getHits(SimTrackerHit.class);
-
- if (simHits.size() > 0)
- {
- // Get the 1st SimTrackerHit.
- SimTrackerHit aSimHit = simHits.get(0);
-
- // Create an Identifier from the SimTrackerHit's cellId.
- IIdentifier hitId = new Identifier(aSimHit.getCellID());
- IIdentifier geomId = null;
- IDetectorElementContainer deHit = null;
-
- try {
-
- // Extract the field values up to "side".
- IExpandedIdentifier expGeomId =
- helper.unpack(hitId, 0, helper.getIdentifierDictionary().getFieldIndex("side") - 1);
-
- // Repack the Identifier.
- geomId = helper.pack(expGeomId);
-
- // Lookup the DetectorElement from the Identifier.
- deHit = DetectorElementStore.getInstance().find(geomId);
- }
- catch (Exception x)
- {
- throw new RuntimeException(x);
- }
-
- // Fatal error if DetectorElement was not found.
- if (deHit.size() == 0)
- {
- throw new RuntimeException("DetectorElement not found with id <"+geomId.toHexString()+">.");
- }
-
- // Create a RawTrackerHit.
- // FIXME: Create real time and adcValues.
- RawTrackerHit rawHit =
- new BaseRawTrackerHit(
- 0, // time
- (long)aSimHit.getCellID(), // cellId
- new short[]{}, // adcValues
- simHits, // SimTrackerHits
- deHit.get(0)); // DetectorElement
-
- rawHits.add(rawHit);
-
- // Add the hit to the DetectorElement's Readout.
- IReadout ro = deHit.get(0).getReadout();
- ro.addHit(rawHit);
- }
- }
- }
-
- // Put the RawTrackerHit collection into the event.
- event.put(meta.getName() + "_RawTrackerHits", rawHits, RawTrackerHit.class, 0, meta.getName());
- }
- }
- }
- }
-}
\ No newline at end of file
lcsim/test/org/lcsim/detector/driver
diff -N RawTrackerHitReadoutDriverTest.java
--- RawTrackerHitReadoutDriverTest.java 11 Sep 2007 00:21:01 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,54 +0,0 @@
-package org.lcsim.detector.driver;
-
-import java.net.URL;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.RawTrackerHit;
-import org.lcsim.util.Driver;
-import org.lcsim.util.cache.FileCache;
-import org.lcsim.util.loop.LCIODriver;
-import org.lcsim.util.loop.LCSimLoop;
-import org.lcsim.util.test.TestUtil.TestOutputFile;
-
-/**
- * Test {@link org.lcsim.detector.RawTrackerHitReadout}.
- *
- * @author Jeremy McCormick
- */
-public class RawTrackerHitReadoutDriverTest extends TestCase
-{
-
- private static final String resource =
- "http://www.lcsim.org/test/lcio/mu-_10GeV_SiTrackerBarrelTest00.slcio";
-
- public void testRawTrackerHitIO() throws Exception
- {
- LCSimLoop writeLoop = new LCSimLoop();
- writeLoop.setLCIORecordSource((new FileCache()).getCachedFile(new URL(resource)));
-
- writeLoop.add(new SimTrackerHitIdentifierReadoutDriver(new String[] { "SiTrackerBarrel_RO" } ));
- writeLoop.add(new ExampleRawTrackerHitReadoutDriver());
- writeLoop.add(new CheckDriver());
- writeLoop.add(new LCIODriver(new TestOutputFile("RawTrackerHitTreadoutDriverTest.slcio")));
- writeLoop.loop(1, null);
- writeLoop.dispose();
- }
-
- private class CheckDriver extends Driver
- {
- protected void process(EventHeader event)
- {
- List<RawTrackerHit> rawHits = event.get(RawTrackerHit.class, "SiTrackerBarrel_RO_RawTrackerHits");
- for (RawTrackerHit hit : rawHits)
- {
- assertTrue(hit.getIdentifier() != null);
- assertTrue(hit.getDetectorElement() != null);
- assertTrue(hit.getSimTrackerHit().size() > 0);
- assertEquals(hit.getDetectorElement(), hit.getSimTrackerHit().get(0).getDetectorElement());
- }
- }
- }
-}
\ No newline at end of file