Print

Print


Commit in lcsim/src/org/lcsim/fit/helicaltrack on MAIN
HelicalTrackHitDriver.java+71-21.5 -> 1.6
CD - added support for SiTrackerHit conversion

lcsim/src/org/lcsim/fit/helicaltrack
HelicalTrackHitDriver.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- HelicalTrackHitDriver.java	11 Feb 2008 21:04:11 -0000	1.5
+++ HelicalTrackHitDriver.java	29 Feb 2008 18:40:39 -0000	1.6
@@ -13,11 +13,16 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.lcsim.contrib.SiStripSim.SiTrackerHit;
+import org.lcsim.contrib.SiStripSim.SiTrackerHitPixel;
+import org.lcsim.contrib.SiStripSim.SiTrackerHitStrip1D;
+import org.lcsim.contrib.SiStripSim.SiTrackerHitStrip2D;
 import org.lcsim.contrib.onoprien.tracking.geom.Sensor;
 import org.lcsim.contrib.onoprien.tracking.geom.SensorType;
-import org.lcsim.contrib.onoprien.tracking.hit.DigiTrackerHit;
 import org.lcsim.contrib.onoprien.tracking.hit.TrackerCluster;
 import org.lcsim.contrib.onoprien.tracking.hitmaking.OldTrackerHit;
+import org.lcsim.detector.DetectorIdentifierHelper;
+import org.lcsim.detector.identifier.IIdentifier;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.TrackerHit;
 import org.lcsim.geometry.subdetector.BarrelEndcapFlag;
@@ -49,9 +54,17 @@
         /**
          * Virtual segmentation (OldTrackerHit) hits.
          */
-        VirtualSegmentation}
+        VirtualSegmentation,
+        /**
+         * 
+         *  Digitized (SiTrackerHit)
+         */
+        Digitized 
+    
+    }
     private List<String> _vscol = new ArrayList<String>();
     private List<String> _smcol = new ArrayList<String>();
+    private List<String> _digcol = new ArrayList<String>(); 
     private String _outname = "HelicalTrackHits";
     
     /** Creates a new instance of HelicalTrackHitDriver */
@@ -135,6 +148,60 @@
             }
         }
         
+        //Loop over the digitized collections ~Cosmin
+        for (String colname : _digcol){
+            
+            //grab the hits from the event
+            List<SiTrackerHit> hitlist = (List<SiTrackerHit>) event.get(colname);
+            
+            for (SiTrackerHit hit : hitlist) {
+                
+                DetectorIdentifierHelper id = hit.getIdentifierHelper();
+                IIdentifier detid = hit.getSensor().getIdentifier();
+                
+                //these are barrel strip hits
+                if (hit instanceof SiTrackerHitStrip1D) {
+                    
+                    //our current scheme only supports 2d hits in the barrel... 
+                    //if there are 2d hits in the endcap, we'll ignore them 
+                    if(!id.isBarrel(detid)){
+                        continue; 
+                    }
+                    
+                    SiTrackerHitStrip1D h = (SiTrackerHitStrip1D) hit; 
+                    
+                    double z1 = h.getHitSegment().getPoints().get(0).z();
+                    double z2 = h.getHitSegment().getPoints().get(1).z();
+                    double zmin = Math.min(z1,z2);
+                    double zmax = Math.max(z1,z2);
+                    
+                    helhits.add((HelicalTrackHit) new HelicalTrack2DHit(h,zmin,zmax));
+                }
+                
+                //these are stereod strips and pixels 
+                else if (hit instanceof SiTrackerHitStrip2D || hit instanceof SiTrackerHitPixel) {
+                    
+                    BarrelEndcapFlag flag; 
+                    
+                    //decide the flag
+                    if(id.isBarrel(detid)) {
+                       flag = BarrelEndcapFlag.BARREL;               
+                    }
+                    else if (id.isEndcapNegative(detid)) {
+                       flag = BarrelEndcapFlag.ENDCAP_SOUTH;
+                    }
+                    else if (id.isEndcapPositive(detid)) {
+                       flag = BarrelEndcapFlag.ENDCAP_NORTH;
+                    }
+                    else {
+                        flag = BarrelEndcapFlag.UNKNOWN; //perhaps this should throw an error instead?
+                    }
+                    
+                    helhits.add((HelicalTrackHit) new HelicalTrack3DHit(hit,flag));
+                }                
+            }
+        }
+        
         //  Put the HelicalTrackHits back into the event
         event.put(_outname, helhits);
     }
@@ -150,6 +217,8 @@
         } else if (type == HitType.Smeared) {
             _smcol.add(name);
         }
+        else if (type == HitType.Digitized)
+            _digcol.add(name);
         return;
     }
     
CVSspam 0.2.8