Commit in lcsim on MAIN
src/org/lcsim/fit/helicaltrack/HelicalTrackHitDriver.java+30-131.18 -> 1.19
test/org/lcsim/contrib/seedtracker/SeedTrackerDigiTest.java+1-11.1 -> 1.2
src/org/lcsim/contrib/seedtracker/digiexample/DigiHitMaker.java+12-131.1 -> 1.2
+43-27
3 modified files
CD - Add support for generic BaseTrackerHits to HelicalTrackHitDriver and use Nick's PixSim code for vertex hits

lcsim/src/org/lcsim/fit/helicaltrack
HelicalTrackHitDriver.java 1.18 -> 1.19
diff -u -r1.18 -r1.19
--- HelicalTrackHitDriver.java	21 Jul 2008 20:08:19 -0000	1.18
+++ HelicalTrackHitDriver.java	28 Jul 2008 18:48:10 -0000	1.19
@@ -13,7 +13,6 @@
 import hep.physics.vec.VecOp;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -36,6 +35,7 @@
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.event.SimTrackerHit;
 import org.lcsim.event.TrackerHit;
+import org.lcsim.event.base.BaseTrackerHit;
 import org.lcsim.event.base.BaseTrackerHitMC;
 import org.lcsim.geometry.subdetector.BarrelEndcapFlag;
 import org.lcsim.spacegeom.SpacePointVector;
@@ -63,7 +63,11 @@
      * Type of hits to be converted/
      */
     public enum HitType {
-        Smeared,
+        /**
+         * Anything that uses BaseTrackerHit or BaseTrackerHitMC, for examples
+         * hits created by PixSim or TrackerHitCheater
+         */
+        Base,
         /**
          * Virtual segmentation (OldTrackerHit) hits.
          */
@@ -74,12 +78,14 @@
          */
         Digitized
                 
+    
+                
     }
     private StereoHitMaker _crosser = new StereoHitMaker(10., 10.);
     private HitIdentifier ID = new HitIdentifier();
     private SegmentationManager _segman;
     private List<String> _vscol = new ArrayList<String>();
-    private List<String> _smcol = new ArrayList<String>();
+    private List<String> _bscol = new ArrayList<String>();
     private List<String> _digcol = new ArrayList<String>();
     private String _outname = "HelicalTrackHits";
     private Hep3Vector _uloc = new BasicHep3Vector(1., 0., 0.);
@@ -104,15 +110,24 @@
         List<HelicalTrackHit> helhits = new ArrayList<HelicalTrackHit>();
         Hep3Vector lz = new BasicHep3Vector(0., 0., 1.);
         
-        
-       //   Warning! Tracker endcap smeared hits are doubled! NOT good for tracking. 
-        for (String colname : _smcol) {
+              
+        for (String colname : _bscol) {
             List<TrackerHit> hitlist = (List<TrackerHit>) event.get(colname);
             for (TrackerHit hit : hitlist) {
                 Hep3Vector pos = new BasicHep3Vector(hit.getPosition());
-            SymmetricMatrix cov = new SymmetricMatrix(3, hit.getCovMatrix(), true);
+                SymmetricMatrix cov = new SymmetricMatrix(3, hit.getCovMatrix(), true);
                 
                 try {
+                    //create a BaseTrackerHitMC from a BaseTrackerHit if necessary
+                    if (hit instanceof BaseTrackerHit && !(hit instanceof BaseTrackerHitMC)){
+                        List<SimTrackerHit> thesehits = new ArrayList<SimTrackerHit>(); 
+                        for (RawTrackerHit raw : (List<RawTrackerHit>)hit.getRawHits()) {
+                            thesehits.addAll(raw.getSimTrackerHit()); 
+                        }
+                        hit = new BaseTrackerHitMC(hit.getPosition(), hit.getCovMatrix(), 
+                                hit.getTime(), hit.getdEdx(), hit.getType(), thesehits); 
+                    }
+                    
                     SimTrackerHit simhit = ((BaseTrackerHitMC)hit).getSimHits().get(0);
                     IDetectorElementContainer cont = DetectorElementStore.getInstance().find(simhit.getIdentifier());
                     if (cont.isEmpty()) {
@@ -122,10 +137,12 @@
                         String detname = ID.getName(de);
                         int lyr = ID.getLayer(de);
                         BarrelEndcapFlag be = ID.getBarrelEndcapFlag(de); 
-                        
-                        if (detname.indexOf("Vertex")==-1 && be.isEndcap()) {
-                         
-                            if (detname.indexOf("planar")==-1){
+                       
+                        //Kludgy fix for layer numbering in sid01
+                        if (!(detname.indexOf("Vertex") ==-1 && detname.indexOf("Vtx") == -1) && be.isEndcap()) {
+                            if (event.getDetectorName().indexOf("planar")==-1) {
+//                                System.out.println(detname); 
+//                                System.out.println("Layer divided by two"); 
                                 lyr/=2; 
                             }
                         }
@@ -227,8 +244,8 @@
     public void addCollection(String name, HitType type) {
         if (type == HitType.VirtualSegmentation) {
             _vscol.add(name);
-        } else if (type == HitType.Smeared) {
-            _smcol.add(name);
+        } else if (type == HitType.Base) {
+            _bscol.add(name);
         } else if (type == HitType.Digitized)
             _digcol.add(name);
         return;

lcsim/test/org/lcsim/contrib/seedtracker
SeedTrackerDigiTest.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- SeedTrackerDigiTest.java	10 Jul 2008 22:05:03 -0000	1.1
+++ SeedTrackerDigiTest.java	28 Jul 2008 18:48:10 -0000	1.2
@@ -60,7 +60,7 @@
             add(thd);
             HelicalTrackHitDriver hitdriver = new HelicalTrackHitDriver();
             hitdriver.addCollection(((TrackerHitDriver_User)thd).getStripHits1DName(),HitType.Digitized);
-            hitdriver.addCollection("CheatedVertexBarrelHits",HitType.Smeared); 
+            hitdriver.addCollection("CheatedVertexBarrelHits",HitType.Base); 
             add(hitdriver);
             add( new SeedTracker(new BetterPlanarStrategy().getStrategies()) );
             

lcsim/src/org/lcsim/contrib/seedtracker/digiexample
DigiHitMaker.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- DigiHitMaker.java	14 Jul 2008 23:26:16 -0000	1.1
+++ DigiHitMaker.java	28 Jul 2008 18:48:10 -0000	1.2
@@ -7,6 +7,8 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import org.lcsim.contrib.NickSinev.PixSim.PixilatedSensorManager;
+import org.lcsim.contrib.NickSinev.PixSim.SensorOption;
 import org.lcsim.contrib.SiStripSim.TrackerHitDriver_User;
 import org.lcsim.contrib.tracking.TrackerHitCheater;
 import org.lcsim.event.EventHeader;
@@ -23,24 +25,21 @@
 public class DigiHitMaker extends Driver{
 
     public DigiHitMaker(){
+        
+            //Initialize Nick's Pixel hit making code
+            PixilatedSensorManager psm = new PixilatedSensorManager(SensorOption.ClassicCCD, true); 
+            add(psm); 
+        
+//            //Initialize Tim's TrackerHit making code
             TrackerHitDriver_User thd = new TrackerHitDriver_User();
             add(thd);
+                        
             HelicalTrackHitDriver hitdriver = new HelicalTrackHitDriver();
             hitdriver.addCollection(((TrackerHitDriver_User)thd).getStripHits1DName(),HitType.Digitized);
-            hitdriver.addCollection("CheatedVertexBarrelHits",HitType.Smeared); 
+            hitdriver.addCollection("RecVtxBarrHits",HitType.Base); 
+            hitdriver.addCollection("RecVtxEndcapHits",HitType.Base); 
+
             hitdriver.OutputCollection("HelicalTrackHits"); // the default, but it might change?
             add(hitdriver);
     }
-    
-    protected void process(EventHeader event) {
-        List<SimTrackerHit> simhits = new ArrayList<SimTrackerHit>(); 
-        simhits.addAll(event.getSimTrackerHits("SiVertexBarrel_RO")); 
-        simhits.addAll(event.getSimTrackerHits("SiVertexEndcap_RO")); 
-        TrackerHitCheater cheater = new TrackerHitCheater();
-        List<TrackerHit> smearedhits = cheater.makeTrackerHits(simhits);
-        event.put("CheatedVertexBarrelHits", smearedhits, TrackerHit.class, 0);
-        
-        super.process(event);
-        
-    }
 }
CVSspam 0.2.8