Print

Print


Commit in lcsim/sandbox on MAIN
DigiHitReader.java+77added 1.1
RawTrackerHitIdentifierReadoutDriver.java+64added 1.1
TrackerHitIdentifierReadoutDriver.java+72added 1.1
+213
3 added files
remove some outdated tracking digi code to sandbox for now

lcsim/sandbox
DigiHitReader.java added at 1.1
diff -N DigiHitReader.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ DigiHitReader.java	31 Aug 2009 17:55:28 -0000	1.1
@@ -0,0 +1,77 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.lcsim.recon.tracking.seedtracker.digiexample;
+
+import java.util.List;
+import java.util.ArrayList;
+import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHitStrip1D;
+import org.lcsim.recon.tracking.digitization.sisim.config.SimTrackerHitReadoutDriver;
+import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.driver.RawTrackerHitIdentifierReadoutDriver;
+import org.lcsim.detector.driver.TrackerHitIdentifierReadoutDriver;
+import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.event.EventHeader;
+import org.lcsim.fit.helicaltrack.HelicalTrackHitDriver;
+import org.lcsim.fit.helicaltrack.HelicalTrackHitDriver.HitType;
+import org.lcsim.util.Driver;
+
+/**
+ *
+ * @author cozzy
+ */
+public class DigiHitReader extends Driver{
+
+    private static final String strip1DName = "StripClusterer_SiTrackerHitStrip1D"; 
+    private static final String pixSimBarrelName = "RecVtxBarrHits";
+    private static final String pixSimEndcapName = "RecVtxEndcapHits";
+    private static final String[] simHitNames = new String[]{"SiTrackerBarrel_RO","SiTrackerEndcap_RO","SiTrackerForward_RO"};
+    private static final String rawHitsName = "RawTrackerHitMaker_RawTrackerHits"; 
+    private static final long rawBitmask = 0xFFFFFFFFL; 
+    private static final String newhits = "Strip1DHits"; 
+    
+    public DigiHitReader() {
+        add(new SimTrackerHitReadoutDriver(simHitNames));
+        RawTrackerHitIdentifierReadoutDriver rawHitsDriver = new RawTrackerHitIdentifierReadoutDriver(new String[]{rawHitsName});
+        rawHitsDriver.setCellIDBitmask(rawBitmask);
+        add(rawHitsDriver); 
+        add(new TrackerHitIdentifierReadoutDriver(new String[]{strip1DName})); 
+        add(new ReadoutReader(SiTrackerHitStrip1D.class, newhits, 0)); 
+        HelicalTrackHitDriver hitdriver = new HelicalTrackHitDriver();
+        hitdriver.addCollection(newhits,HitType.Digitized);
+        hitdriver.addCollection(pixSimBarrelName,HitType.Base); 
+        hitdriver.addCollection(pixSimEndcapName,HitType.Base);
+        hitdriver.OutputCollection("HelicalTrackHits"); // the default, but it might change?
+        add(hitdriver);
+    }
+    
+    
+    class ReadoutReader extends Driver{
+        
+        private Class c; 
+        private int f;
+        private String n; 
+        
+        public ReadoutReader(Class klass, String collName, int flags) {
+            c = klass; 
+            n = collName; 
+            f = flags; 
+        }
+        
+        protected void process(EventHeader event) {
+            super.process(event);
+            
+            
+            List<SiTrackerHitStrip1D> hits1D = new ArrayList<SiTrackerHitStrip1D>();
+            for (IDetectorElement de : event.getDetector().getDetectorElement().findDescendants(SiSensor.class)) {
+
+                hits1D.addAll(de.getReadout().getHits(c)); 
+            }
+
+            event.put(n, hits1D, c , f);
+        }
+    }
+    
+}

lcsim/sandbox
RawTrackerHitIdentifierReadoutDriver.java added at 1.1
diff -N RawTrackerHitIdentifierReadoutDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ RawTrackerHitIdentifierReadoutDriver.java	31 Aug 2009 17:55:28 -0000	1.1
@@ -0,0 +1,64 @@
+package org.lcsim.detector.driver;
+
+import java.util.List;
+
+import org.lcsim.detector.DetectorElementStore;
+import org.lcsim.detector.IDetectorElementContainer;
+import org.lcsim.detector.IReadout;
+import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.identifier.Identifier;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.RawTrackerHit;
+import org.lcsim.recon.tracking.digitization.sisim.config.CollectionHandler;
+import org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver;
+
+public class RawTrackerHitIdentifierReadoutDriver 
+extends CollectionHandler
+{
+    
+    private static final long defaultBitmask = 0xFFFFFFFFL; 
+    
+    private long bitmask = defaultBitmask; 
+    
+    public RawTrackerHitIdentifierReadoutDriver(List<String> collectionNames)
+    {
+        super(collectionNames);
+        add( new ReadoutCleanupDriver( collectionNames ) );
+    }
+
+    public RawTrackerHitIdentifierReadoutDriver(String[] collectionNames)
+    {        
+        super(collectionNames);
+        add( new ReadoutCleanupDriver( collectionNames ) );
+    }
+    
+    public void setCellIDBitmask(long mask) {
+        bitmask = mask; 
+    }
+    
+
+    protected void process(EventHeader header)
+    {                          
+        super.process(header);
+        List<List<RawTrackerHit>> collections = header.get(RawTrackerHit.class);
+        for ( List<RawTrackerHit> collection : collections )
+        {
+            if ( canHandle( header.getMetaData( collection ).getName() ) )
+            {
+                for ( RawTrackerHit hit : collection )
+                {
+                    IIdentifier hitId = new Identifier(hit.getCellID() & bitmask); 
+                    IDetectorElementContainer deHit = 
+                        DetectorElementStore.getInstance().find(hitId);
+                    if (deHit.size() == 0)
+                    {
+                        throw new RuntimeException("No DetectorElement found for id <"+hitId.toString()+">.");
+                    }
+                    hit.setDetectorElement(deHit.get(0));    
+                    IReadout ro = deHit.get(0).getReadout();
+                    ro.addHit( hit );                   
+                }
+            }
+        }        
+    }                     
+}

lcsim/sandbox
TrackerHitIdentifierReadoutDriver.java added at 1.1
diff -N TrackerHitIdentifierReadoutDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ TrackerHitIdentifierReadoutDriver.java	31 Aug 2009 17:55:28 -0000	1.1
@@ -0,0 +1,72 @@
+package org.lcsim.detector.driver;
+
+import java.util.List;
+
+import org.lcsim.detector.IReadout;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.TrackerHit;
+import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHitPixel;
+import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHitStrip1D;
+import org.lcsim.recon.tracking.digitization.sisim.TrackerHitType;
+import org.lcsim.recon.tracking.digitization.sisim.config.CollectionHandler;
+import org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver;
+
+public class TrackerHitIdentifierReadoutDriver
+        extends CollectionHandler
+{
+    public TrackerHitIdentifierReadoutDriver(List<String> collectionNames)
+    {
+        super(collectionNames);
+        add( new ReadoutCleanupDriver( collectionNames ) );
+    }
+    
+    public TrackerHitIdentifierReadoutDriver(String[] collectionNames)
+    {
+        super(collectionNames);
+        add( new ReadoutCleanupDriver( collectionNames ) );
+    }
+    
+    protected void process(EventHeader header)
+    {
+        super.process(header);
+        List<List<TrackerHit>> collections = header.get(TrackerHit.class);
+        for ( List<TrackerHit> collection : collections )
+        {
+            if ( canHandle( header.getMetaData( collection ).getName() ) )
+            {
+                for ( TrackerHit hit : collection )
+                {                    
+                    
+                    TrackerHitType.MeasurementType measurement_type =
+                            TrackerHitType.decoded(hit.getType()).getMeasurementType();
+                    
+                    TrackerHitType.CoordinateSystem coordinate_system =
+                            TrackerHitType.decoded(hit.getType()).getCoordinateSystem();
+                    
+                    if (measurement_type == TrackerHitType.MeasurementType.STRIP_1D)
+                    {
+                        SiTrackerHitStrip1D hit_1D = new SiTrackerHitStrip1D(hit,coordinate_system);
+                        IReadout ro = hit_1D.getSensor().getReadout();
+                        ro.addHit(hit_1D);
+                    }
+                    
+                    if (measurement_type == TrackerHitType.MeasurementType.PIXEL)
+                    {
+                        SiTrackerHitPixel hit_pixel = new SiTrackerHitPixel(hit,coordinate_system);
+                        IReadout ro = hit_pixel.getSensor().getReadout();
+                        ro.addHit(hit_pixel);
+                    }
+                    
+                    // Need to master LC relations to make this work.
+//                    if (measurement_type == TrackerHitType.MeasurementType.STRIP_2D)
+//                    {
+//                        SiTrackerHitStrip2D hit_2D = new SiTrackerHitStrip2D(hit,coordinate_system);
+//                        IReadout ro = hit_2D.getSensor().getReadout();
+//                        ro.addHit(hit_2D);
+//                    }
+                    
+                }
+            }
+        }
+    }
+}
CVSspam 0.2.8