Commit in lcsim/src/org/lcsim/recon/tracking/seedtracker/digiexample on MAIN
BetterPlanarStrategy.java+272added 1.1
DigiHitMaker.java+45added 1.1
DigiHitReader.java+77added 1.1
DigiHitWriter.java+145added 1.1
DigiSeedTrackerDriver.java+34added 1.1
+573
5 added files
refactor seedtracker to recon.tracking

lcsim/src/org/lcsim/recon/tracking/seedtracker/digiexample
BetterPlanarStrategy.java added at 1.1
diff -N BetterPlanarStrategy.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ BetterPlanarStrategy.java	27 Aug 2008 17:57:09 -0000	1.1
@@ -0,0 +1,272 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.lcsim.recon.tracking.seedtracker.digiexample;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.lcsim.recon.tracking.seedtracker.SeedLayer;
+import org.lcsim.recon.tracking.seedtracker.SeedLayer.SeedType;
+import org.lcsim.recon.tracking.seedtracker.SeedStrategy;
+import org.lcsim.geometry.subdetector.BarrelEndcapFlag;
+
+/**
+ *
+ * @author cozzy
+ */
+public class BetterPlanarStrategy {
+    private List<SeedStrategy> _strategylist = new ArrayList<SeedStrategy>();
+    
+    //These must be changed to use these strategies for sid01
+    private static final String VERTEX_BARREL_NAME = "SiVertexBarrel"; 
+    private static final String TRACKER_BARREL_NAME = "SiTrackerBarrel"; 
+    private static final String TRACKER_FORWARD_NAME = "SiTrackerForward";
+    private static final String TRACKER_ENDCAP_NAME = "SiTrackerEndcap"; 
+    private static final String VERTEX_ENDCAP_NAME = "SiVertexEndcap"; 
+    
+    //These must be changed to use these strategies for sid01 (subtract 1)
+    private static final int FIRST = 1;
+    private static final int SECOND = 2;
+    private static final int THIRD = 3; 
+    private static final int FOURTH = 4;
+    private static final int FIFTH = 5; 
+    
+    public BetterPlanarStrategy() {
+        BarrelEndcapFlag barrel = BarrelEndcapFlag.BARREL;
+        BarrelEndcapFlag nend = BarrelEndcapFlag.ENDCAP_NORTH;
+        BarrelEndcapFlag send = BarrelEndcapFlag.ENDCAP_SOUTH;
+        
+        List<BarrelEndcapFlag> beflags = new ArrayList<BarrelEndcapFlag>();
+        beflags.add(nend);
+        beflags.add(send);
+        
+        //  Create an outside-in strategy for the barrel
+        List<SeedLayer> lyrlist = new ArrayList<SeedLayer>();
+        lyrlist.add(new SeedLayer(VERTEX_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+        lyrlist.add(new SeedLayer(VERTEX_BARREL_NAME,SECOND,barrel,SeedType.Extend));
+        lyrlist.add(new SeedLayer(VERTEX_BARREL_NAME,THIRD,barrel,SeedType.Extend));
+        lyrlist.add(new SeedLayer(VERTEX_BARREL_NAME,FOURTH,barrel,SeedType.Extend));
+        lyrlist.add(new SeedLayer(VERTEX_BARREL_NAME,FIFTH,barrel,SeedType.Extend));
+        lyrlist.add(new SeedLayer(VERTEX_ENDCAP_NAME,FIRST,nend,SeedType.Extend));
+        lyrlist.add(new SeedLayer(VERTEX_ENDCAP_NAME,SECOND,nend,SeedType.Extend));
+        lyrlist.add(new SeedLayer(TRACKER_FORWARD_NAME,FIRST,nend,SeedType.Extend));
+        lyrlist.add(new SeedLayer(VERTEX_ENDCAP_NAME,FIRST,send,SeedType.Extend));
+        lyrlist.add(new SeedLayer(VERTEX_ENDCAP_NAME,SECOND,send,SeedType.Extend));
+        lyrlist.add(new SeedLayer(TRACKER_FORWARD_NAME,FIRST,send,SeedType.Extend));
+        lyrlist.add(new SeedLayer(TRACKER_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+        lyrlist.add(new SeedLayer(TRACKER_BARREL_NAME,SECOND,barrel,SeedType.Confirm));
+        lyrlist.add(new SeedLayer(TRACKER_BARREL_NAME,THIRD,barrel,SeedType.Seed));
+        lyrlist.add(new SeedLayer(TRACKER_BARREL_NAME,FOURTH,barrel,SeedType.Seed));
+        lyrlist.add(new SeedLayer(TRACKER_BARREL_NAME,FIFTH,barrel,SeedType.Seed));
+        SeedStrategy outsideinbarrel = new SeedStrategy("OutsideInBarrel",lyrlist);
+        _strategylist.add(outsideinbarrel);
+        
+        for (BarrelEndcapFlag endcap : beflags) {
+            
+            
+            //  Create an outside-in strategy for the disks
+            List<SeedLayer> lyrlist2 = new ArrayList<SeedLayer>();
+            lyrlist2.add(new SeedLayer(VERTEX_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+            lyrlist2.add(new SeedLayer(VERTEX_BARREL_NAME,SECOND,barrel,SeedType.Extend));
+            lyrlist2.add(new SeedLayer(VERTEX_BARREL_NAME,THIRD,barrel,SeedType.Extend));
+            lyrlist2.add(new SeedLayer(VERTEX_ENDCAP_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist2.add(new SeedLayer(VERTEX_ENDCAP_NAME,SECOND,endcap,SeedType.Extend));
+            lyrlist2.add(new SeedLayer(VERTEX_ENDCAP_NAME,THIRD,endcap,SeedType.Extend));
+            lyrlist2.add(new SeedLayer(VERTEX_ENDCAP_NAME,FOURTH,endcap,SeedType.Extend));
+            lyrlist2.add(new SeedLayer(TRACKER_FORWARD_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist2.add(new SeedLayer(TRACKER_FORWARD_NAME,SECOND,endcap,SeedType.Extend));
+            lyrlist2.add(new SeedLayer(TRACKER_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+            lyrlist2.add(new SeedLayer(TRACKER_BARREL_NAME,SECOND,barrel,SeedType.Confirm));
+            lyrlist2.add(new SeedLayer(TRACKER_ENDCAP_NAME,FIRST,endcap,SeedType.Confirm));
+            lyrlist2.add(new SeedLayer(TRACKER_ENDCAP_NAME,SECOND,endcap,SeedType.Seed));
+            lyrlist2.add(new SeedLayer(TRACKER_ENDCAP_NAME,THIRD,endcap,SeedType.Seed));
+            lyrlist2.add(new SeedLayer(TRACKER_ENDCAP_NAME,FOURTH,endcap,SeedType.Seed));
+            SeedStrategy outsideinendcap = new SeedStrategy("OutsideInEndcap",lyrlist2);
+            _strategylist.add(outsideinendcap);
+            
+            //  Create an outside-in strategy for the disks
+            List<SeedLayer> lyrlist3 = new ArrayList<SeedLayer>();
+            lyrlist3.add(new SeedLayer(VERTEX_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+            lyrlist3.add(new SeedLayer(VERTEX_BARREL_NAME,SECOND,barrel,SeedType.Extend));
+            lyrlist3.add(new SeedLayer(VERTEX_BARREL_NAME,THIRD,barrel,SeedType.Extend));
+            lyrlist3.add(new SeedLayer(VERTEX_BARREL_NAME,FOURTH,barrel,SeedType.Extend));
+            lyrlist3.add(new SeedLayer(VERTEX_ENDCAP_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist3.add(new SeedLayer(VERTEX_ENDCAP_NAME,SECOND,endcap,SeedType.Extend));
+            lyrlist3.add(new SeedLayer(TRACKER_FORWARD_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist3.add(new SeedLayer(TRACKER_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+            lyrlist3.add(new SeedLayer(TRACKER_BARREL_NAME,SECOND,barrel,SeedType.Confirm));
+            lyrlist3.add(new SeedLayer(TRACKER_BARREL_NAME,THIRD,barrel,SeedType.Seed));
+            lyrlist3.add(new SeedLayer(TRACKER_BARREL_NAME,FOURTH,barrel,SeedType.Seed));
+            lyrlist3.add(new SeedLayer(TRACKER_ENDCAP_NAME,FOURTH,endcap,SeedType.Seed));
+            SeedStrategy outsideinendcap3 = new SeedStrategy("OutsideInEndcap3",lyrlist3);
+            _strategylist.add(outsideinendcap3);
+            
+            //  Create an outside-in strategy for the disks
+            List<SeedLayer> lyrlist4 = new ArrayList<SeedLayer>();
+            lyrlist4.add(new SeedLayer(VERTEX_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+            lyrlist4.add(new SeedLayer(VERTEX_BARREL_NAME,SECOND,barrel,SeedType.Extend));
+            lyrlist4.add(new SeedLayer(VERTEX_BARREL_NAME,THIRD,barrel,SeedType.Extend));
+            lyrlist4.add(new SeedLayer(VERTEX_BARREL_NAME,FOURTH,barrel,SeedType.Extend));
+            lyrlist4.add(new SeedLayer(VERTEX_ENDCAP_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist4.add(new SeedLayer(VERTEX_ENDCAP_NAME,SECOND,endcap,SeedType.Extend));
+            lyrlist4.add(new SeedLayer(VERTEX_ENDCAP_NAME,THIRD,endcap,SeedType.Extend));
+            lyrlist4.add(new SeedLayer(TRACKER_FORWARD_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist4.add(new SeedLayer(TRACKER_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+            lyrlist4.add(new SeedLayer(TRACKER_BARREL_NAME,SECOND,barrel,SeedType.Confirm));
+            lyrlist4.add(new SeedLayer(TRACKER_BARREL_NAME,THIRD,barrel,SeedType.Seed));
+            lyrlist4.add(new SeedLayer(TRACKER_ENDCAP_NAME,THIRD,endcap,SeedType.Seed));
+            lyrlist4.add(new SeedLayer(TRACKER_ENDCAP_NAME,FOURTH,endcap,SeedType.Seed));
+            SeedStrategy outsideinendcap4 = new SeedStrategy("OutsideInEndcap4",lyrlist4);
+            _strategylist.add(outsideinendcap4);
+            
+            //  Create an outside-in strategy for the disks
+            List<SeedLayer> lyrlist5 = new ArrayList<SeedLayer>();
+            lyrlist5.add(new SeedLayer(VERTEX_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+            lyrlist5.add(new SeedLayer(VERTEX_BARREL_NAME,SECOND,barrel,SeedType.Extend));
+            lyrlist5.add(new SeedLayer(VERTEX_BARREL_NAME,THIRD,barrel,SeedType.Extend));
+            lyrlist5.add(new SeedLayer(VERTEX_ENDCAP_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist5.add(new SeedLayer(VERTEX_ENDCAP_NAME,SECOND,endcap,SeedType.Extend));
+            lyrlist5.add(new SeedLayer(VERTEX_ENDCAP_NAME,THIRD,endcap,SeedType.Extend));
+            lyrlist5.add(new SeedLayer(TRACKER_FORWARD_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist5.add(new SeedLayer(TRACKER_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+            lyrlist5.add(new SeedLayer(TRACKER_BARREL_NAME,SECOND,barrel,SeedType.Confirm));
+            lyrlist5.add(new SeedLayer(TRACKER_ENDCAP_NAME,SECOND,endcap,SeedType.Seed));
+            lyrlist5.add(new SeedLayer(TRACKER_ENDCAP_NAME,THIRD,endcap,SeedType.Seed));
+            lyrlist5.add(new SeedLayer(TRACKER_ENDCAP_NAME,FOURTH,endcap,SeedType.Seed));
+            SeedStrategy outsideinendcap5 = new SeedStrategy("OutsideInEndcap5",lyrlist5);
+            _strategylist.add(outsideinendcap5);
+            
+            //  Create an outside-in strategy for the disks
+            List<SeedLayer> lyrlist6 = new ArrayList<SeedLayer>();
+            lyrlist6.add(new SeedLayer(VERTEX_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+            lyrlist6.add(new SeedLayer(VERTEX_BARREL_NAME,SECOND,barrel,SeedType.Extend));
+            lyrlist6.add(new SeedLayer(VERTEX_ENDCAP_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist6.add(new SeedLayer(VERTEX_ENDCAP_NAME,SECOND,endcap,SeedType.Extend));
+            lyrlist6.add(new SeedLayer(VERTEX_ENDCAP_NAME,THIRD,endcap,SeedType.Extend));
+            lyrlist6.add(new SeedLayer(VERTEX_ENDCAP_NAME,FOURTH,endcap,SeedType.Extend));
+            lyrlist6.add(new SeedLayer(TRACKER_FORWARD_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist6.add(new SeedLayer(TRACKER_FORWARD_NAME,SECOND,endcap,SeedType.Confirm));
+            lyrlist6.add(new SeedLayer(TRACKER_FORWARD_NAME,THIRD,endcap,SeedType.Confirm));
+            lyrlist6.add(new SeedLayer(TRACKER_ENDCAP_NAME,SECOND,endcap,SeedType.Seed));
+            lyrlist6.add(new SeedLayer(TRACKER_ENDCAP_NAME,THIRD,endcap,SeedType.Seed));
+            lyrlist6.add(new SeedLayer(TRACKER_ENDCAP_NAME,FOURTH,endcap,SeedType.Seed));
+            SeedStrategy outsideinendcap6 = new SeedStrategy("OutsideInEndcap6",lyrlist6);
+            _strategylist.add(outsideinendcap6);
+            
+            //  Create an outside-in strategy for the disks
+            List<SeedLayer> lyrlist7 = new ArrayList<SeedLayer>();
+            lyrlist7.add(new SeedLayer(VERTEX_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+            lyrlist7.add(new SeedLayer(VERTEX_BARREL_NAME,SECOND,barrel,SeedType.Extend));
+            lyrlist7.add(new SeedLayer(VERTEX_ENDCAP_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist7.add(new SeedLayer(VERTEX_ENDCAP_NAME,SECOND,endcap,SeedType.Extend));
+            lyrlist7.add(new SeedLayer(VERTEX_ENDCAP_NAME,THIRD,endcap,SeedType.Extend));
+            lyrlist7.add(new SeedLayer(VERTEX_ENDCAP_NAME,FOURTH,endcap,SeedType.Extend));
+            lyrlist7.add(new SeedLayer(TRACKER_FORWARD_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist7.add(new SeedLayer(TRACKER_FORWARD_NAME,SECOND,endcap,SeedType.Confirm));
+            lyrlist7.add(new SeedLayer(TRACKER_FORWARD_NAME,THIRD,endcap,SeedType.Seed));
+            lyrlist7.add(new SeedLayer(TRACKER_ENDCAP_NAME,THIRD,endcap,SeedType.Seed));
+            lyrlist7.add(new SeedLayer(TRACKER_ENDCAP_NAME,FOURTH,endcap,SeedType.Seed));
+            SeedStrategy outsideinendcap7 = new SeedStrategy("OutsideInEndcap7",lyrlist7);
+            _strategylist.add(outsideinendcap7);
+            
+            //  Create an inside out for the forward region
+            List<SeedLayer> lyrlist8 = new ArrayList<SeedLayer>();
+            lyrlist8.add(new SeedLayer(VERTEX_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+            lyrlist8.add(new SeedLayer(VERTEX_BARREL_NAME,SECOND,barrel,SeedType.Extend));
+            lyrlist8.add(new SeedLayer(VERTEX_ENDCAP_NAME,FIRST,endcap,SeedType.Seed));
+            lyrlist8.add(new SeedLayer(VERTEX_ENDCAP_NAME,SECOND,endcap,SeedType.Seed));
+            lyrlist8.add(new SeedLayer(VERTEX_ENDCAP_NAME,THIRD,endcap,SeedType.Seed));
+            lyrlist8.add(new SeedLayer(VERTEX_ENDCAP_NAME,FOURTH,endcap,SeedType.Confirm));
+            lyrlist8.add(new SeedLayer(TRACKER_FORWARD_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist8.add(new SeedLayer(TRACKER_FORWARD_NAME,SECOND,endcap,SeedType.Extend));
+            lyrlist8.add(new SeedLayer(TRACKER_FORWARD_NAME,THIRD,endcap,SeedType.Extend));
+            lyrlist8.add(new SeedLayer(TRACKER_ENDCAP_NAME,THIRD,endcap,SeedType.Extend));
+            lyrlist8.add(new SeedLayer(TRACKER_ENDCAP_NAME,FOURTH,endcap,SeedType.Extend));
+            SeedStrategy outsideinendcap8 = new SeedStrategy("InsideOutEndcap1",lyrlist8);
+            _strategylist.add(outsideinendcap8);
+            
+            //  Create an inside out for the forward region
+            List<SeedLayer> lyrlist9 = new ArrayList<SeedLayer>();
+            lyrlist9.add(new SeedLayer(VERTEX_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+            lyrlist9.add(new SeedLayer(VERTEX_BARREL_NAME,SECOND,barrel,SeedType.Extend));
+            lyrlist9.add(new SeedLayer(VERTEX_ENDCAP_NAME,FIRST,endcap,SeedType.Seed));
+            lyrlist9.add(new SeedLayer(VERTEX_ENDCAP_NAME,SECOND,endcap,SeedType.Seed));
+            lyrlist9.add(new SeedLayer(VERTEX_ENDCAP_NAME,THIRD,endcap,SeedType.Seed));
+            lyrlist9.add(new SeedLayer(VERTEX_ENDCAP_NAME,FOURTH,endcap,SeedType.Extend));
+            lyrlist9.add(new SeedLayer(TRACKER_FORWARD_NAME,FIRST,endcap,SeedType.Confirm));
+            lyrlist9.add(new SeedLayer(TRACKER_FORWARD_NAME,SECOND,endcap,SeedType.Extend));
+            lyrlist9.add(new SeedLayer(TRACKER_FORWARD_NAME,THIRD,endcap,SeedType.Extend));
+            lyrlist9.add(new SeedLayer(TRACKER_ENDCAP_NAME,THIRD,endcap,SeedType.Extend));
+            lyrlist9.add(new SeedLayer(TRACKER_ENDCAP_NAME,FOURTH,endcap,SeedType.Extend));
+            SeedStrategy outsideinendcap9 = new SeedStrategy("InsideOutEndcap2",lyrlist9);
+            _strategylist.add(outsideinendcap9);
+            
+            //  Create an inside out for the forward region
+            List<SeedLayer> lyrlist10 = new ArrayList<SeedLayer>();
+            lyrlist10.add(new SeedLayer(VERTEX_BARREL_NAME,FIRST,barrel,SeedType.Seed));
+            lyrlist10.add(new SeedLayer(VERTEX_BARREL_NAME,SECOND,barrel,SeedType.Seed));
+            lyrlist10.add(new SeedLayer(VERTEX_BARREL_NAME,THIRD,barrel,SeedType.Extend));
+            lyrlist10.add(new SeedLayer(VERTEX_BARREL_NAME,FOURTH,barrel,SeedType.Extend));
+            lyrlist10.add(new SeedLayer(VERTEX_BARREL_NAME,FIFTH,barrel,SeedType.Extend));
+            lyrlist10.add(new SeedLayer(TRACKER_BARREL_NAME,FIRST,barrel,SeedType.Seed));
+            lyrlist10.add(new SeedLayer(TRACKER_BARREL_NAME,SECOND,barrel,SeedType.Confirm));
+            lyrlist10.add(new SeedLayer(TRACKER_BARREL_NAME,THIRD,barrel,SeedType.Extend));
+            lyrlist10.add(new SeedLayer(TRACKER_BARREL_NAME,FOURTH,barrel,SeedType.Extend));
+            lyrlist10.add(new SeedLayer(TRACKER_BARREL_NAME,FIFTH,barrel,SeedType.Extend));
+            lyrlist10.add(new SeedLayer(VERTEX_ENDCAP_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist10.add(new SeedLayer(VERTEX_ENDCAP_NAME,SECOND,endcap,SeedType.Extend));
+            lyrlist10.add(new SeedLayer(VERTEX_ENDCAP_NAME,THIRD,endcap,SeedType.Extend));
+            lyrlist10.add(new SeedLayer(VERTEX_ENDCAP_NAME,FOURTH,endcap,SeedType.Extend));
+            lyrlist10.add(new SeedLayer(TRACKER_FORWARD_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist10.add(new SeedLayer(TRACKER_FORWARD_NAME,SECOND,endcap,SeedType.Extend));
+            lyrlist10.add(new SeedLayer(TRACKER_FORWARD_NAME,THIRD,endcap,SeedType.Extend));
+            lyrlist10.add(new SeedLayer(TRACKER_ENDCAP_NAME,THIRD,endcap,SeedType.Extend));
+            lyrlist10.add(new SeedLayer(TRACKER_ENDCAP_NAME,FOURTH,endcap,SeedType.Extend));
+            SeedStrategy outsideinendcap10 = new SeedStrategy("InsideOutEndcap3",lyrlist10);
+            _strategylist.add(outsideinendcap10);
+            
+            //  Create an inside out for the forward region
+            List<SeedLayer> lyrlist11 = new ArrayList<SeedLayer>();
+            lyrlist11.add(new SeedLayer(VERTEX_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+            lyrlist11.add(new SeedLayer(VERTEX_BARREL_NAME,SECOND,barrel,SeedType.Extend));
+            lyrlist11.add(new SeedLayer(VERTEX_BARREL_NAME,THIRD,barrel,SeedType.Extend));
+            lyrlist11.add(new SeedLayer(VERTEX_BARREL_NAME,FOURTH,barrel,SeedType.Extend));
+            lyrlist11.add(new SeedLayer(VERTEX_BARREL_NAME,FIFTH,barrel,SeedType.Extend));
+            lyrlist11.add(new SeedLayer(TRACKER_BARREL_NAME,FIRST,barrel,SeedType.Extend));
+            lyrlist11.add(new SeedLayer(TRACKER_BARREL_NAME,SECOND,barrel,SeedType.Extend));
+            lyrlist11.add(new SeedLayer(TRACKER_BARREL_NAME,THIRD,barrel,SeedType.Extend));
+            lyrlist11.add(new SeedLayer(TRACKER_BARREL_NAME,FOURTH,barrel,SeedType.Extend));
+            lyrlist11.add(new SeedLayer(TRACKER_BARREL_NAME,FIFTH,barrel,SeedType.Extend));
+            lyrlist11.add(new SeedLayer(VERTEX_ENDCAP_NAME,FIRST,endcap,SeedType.Extend));
+            lyrlist11.add(new SeedLayer(VERTEX_ENDCAP_NAME,SECOND,endcap,SeedType.Seed));
+            lyrlist11.add(new SeedLayer(VERTEX_ENDCAP_NAME,THIRD,endcap,SeedType.Seed));
+            lyrlist11.add(new SeedLayer(VERTEX_ENDCAP_NAME,FOURTH,endcap,SeedType.Seed));
+            lyrlist11.add(new SeedLayer(TRACKER_FORWARD_NAME,FIRST,endcap,SeedType.Confirm));
+            lyrlist11.add(new SeedLayer(TRACKER_FORWARD_NAME,SECOND,endcap,SeedType.Extend));
+            lyrlist11.add(new SeedLayer(TRACKER_FORWARD_NAME,THIRD,endcap,SeedType.Extend));
+            lyrlist11.add(new SeedLayer(TRACKER_ENDCAP_NAME,THIRD,endcap,SeedType.Extend));
+            lyrlist11.add(new SeedLayer(TRACKER_ENDCAP_NAME,FOURTH,endcap,SeedType.Extend));
+            SeedStrategy outsideinendcap11 = new SeedStrategy("InsideOutEndcap4",lyrlist11);
+            _strategylist.add(outsideinendcap11);
+            
+        }
+        
+        for (SeedStrategy strategy : _strategylist) {
+            //  Set parameters for this strategy
+            strategy.putMinPT(1.0);        //  Set minimum pT at 1 GeV
+            strategy.putMaxDCA(10.0);       //  Set maximum d0 at 1 mm
+            strategy.putMaxZ0(10.0);        //  Set maximum z0 at 1 mm
+            strategy.putMinConfirm(1);     //  Require at least 1 confirm hit
+            strategy.putMinHits(7);        //  Require at least 7 total hits
+            strategy.putMaxChisq(50.);     //  Set maximum chi^2 at 50
+            strategy.putBadHitChisq(15.);  //  Set chi^2 change that gives preference to excluding the hit
+        }
+    }
+    
+    public List<SeedStrategy> getStrategies() {
+        return _strategylist;
+    }
+
+}

lcsim/src/org/lcsim/recon/tracking/seedtracker/digiexample
DigiHitMaker.java added at 1.1
diff -N DigiHitMaker.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ DigiHitMaker.java	27 Aug 2008 17:57:09 -0000	1.1
@@ -0,0 +1,45 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.lcsim.recon.tracking.seedtracker.digiexample;
+
+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;
+import org.lcsim.event.SimTrackerHit;
+import org.lcsim.event.TrackerHit;
+import org.lcsim.fit.helicaltrack.HelicalTrackHitDriver;
+import org.lcsim.fit.helicaltrack.HelicalTrackHitDriver.HitType;
+import org.lcsim.util.Driver;
+
+/**
+ *
+ * @author cozzy
+ */
+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("RecVtxBarrHits",HitType.Base); 
+            hitdriver.addCollection("RecVtxEndcapHits",HitType.Base); 
+
+            hitdriver.OutputCollection("HelicalTrackHits"); // the default, but it might change?
+            add(hitdriver);
+    }
+}

lcsim/src/org/lcsim/recon/tracking/seedtracker/digiexample
DigiHitReader.java added at 1.1
diff -N DigiHitReader.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ DigiHitReader.java	27 Aug 2008 17:57:09 -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.contrib.SiStripSim.SiTrackerHitStrip1D;
+import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.driver.RawTrackerHitIdentifierReadoutDriver;
+import org.lcsim.detector.driver.SimTrackerHitIdentifierReadoutDriver;
+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 SimTrackerHitIdentifierReadoutDriver(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/src/org/lcsim/recon/tracking/seedtracker/digiexample
DigiHitWriter.java added at 1.1
diff -N DigiHitWriter.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ DigiHitWriter.java	27 Aug 2008 17:57:09 -0000	1.1
@@ -0,0 +1,145 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.lcsim.recon.tracking.seedtracker.digiexample;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import org.lcsim.contrib.NickSinev.PixSim.PixilatedSensorManager;
+import org.lcsim.contrib.NickSinev.PixSim.SensorOption;
+import org.lcsim.contrib.SiStripSim.TrackerHitDriver_User;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.TrackerHit;
+import org.lcsim.util.Driver;
+import org.lcsim.util.lcio.LCIOConstants;
+import org.lcsim.util.lcio.LCIOWriter;
+import org.lcsim.util.loop.LCSimLoop;
+
+/**
+ *
+ * @author cozzy
+ */
+public class DigiHitWriter extends Driver{
+    
+    private LCIOWriter writer=null;
+    
+    //if true, will ensure that RawTrackerHits linked to from TrackerHits are saved in the event
+    // this can be set to false once Nick commits a new version of PixilatedSensorManager that does this... 
+    private boolean checkRawTrackerHits = true; 
+    
+    public DigiHitWriter(File outputFile) {
+        try {
+            writer = new LCIOWriter(outputFile);  
+        } catch (IOException ioe) {
+            throw new RuntimeException(ioe.getMessage()); 
+        }        
+        
+        //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);
+    }
+    
+    
+    public void checkRawTrackerHits(boolean check) {
+        checkRawTrackerHits = check; 
+    }
+    
+    protected void process(EventHeader event) {
+        super.process(event);
+        
+        if(checkRawTrackerHits) {
+            
+            Set<RawTrackerHit> existingRawHits = new HashSet<RawTrackerHit>();
+            List<RawTrackerHit> newRawHits = new ArrayList<RawTrackerHit>(); 
+            for (List<RawTrackerHit> rawlist : event.get(RawTrackerHit.class)) 
+                existingRawHits.addAll(rawlist); 
+            
+            for (List<TrackerHit> thlist : event.get(TrackerHit.class)) {
+                for (TrackerHit h : thlist) {
+                    for (RawTrackerHit raw : (List<RawTrackerHit>)h.getRawHits()) {
+                        if (!existingRawHits.contains(raw))
+                            newRawHits.add(raw); 
+                    }
+                }
+            }
+            
+            if (!newRawHits.isEmpty()) {
+                event.put("RawTrackerHitDependencies", newRawHits , RawTrackerHit.class, (1 << (LCIOConstants.RTHBIT_HITS))); 
+            }
+        }
+        
+        try {
+            writer.write(event);
+        } catch(IOException ioe) {
+            throw new RuntimeException(ioe.getMessage()); 
+        }
+        
+        System.out.println("Wrote event #"+event.getEventNumber()); 
+    }
+    
+    private static void printUsage(){
+        System.out.println("DigiHitMaker INPUTNAME [-o OUTPUTNAME -n NUMEVENTS -r]");
+        System.out.println("-o OUTPUTNAME\t\t Name of output slcio file");
+        System.out.println("-n NUMEVENTS\t\t Number of events to process");
+        System.out.println("-r \t\t\t Don't attempt to build necessary RawTrackerHit dependencies");
+        System.exit(1);
+    }
+    
+    public static void main(String[] args) {
+        
+        if (args.length < 1){
+            printUsage(); 
+        }
+        
+        String inputFileName = args[0]; 
+        
+        File inputFile = new File(inputFileName); 
+        if (!inputFile.exists()) {
+            System.out.println("Cannot find data file "+inputFile.toString()+". Exiting.");
+            printUsage(); 
+            System.exit(2); 
+        }
+        boolean check = true; 
+        String outputFileName = inputFileName.replace(".slcio", "WithSavedDigitizedHits.slcio"); 
+        int n = -1; 
+        
+        for (int i = 1; i < args.length; i++) {
+            if (args[i].equals("-n")){
+                n = Integer.valueOf(args[++i]); 
+            } else if (args[i].equals("-o")) {
+                outputFileName = (args[++i]); 
+            } else if (args[i].equals("-r")) {
+                check = false; 
+            } else printUsage();
+        }
+        
+        DigiHitWriter writer = new  DigiHitWriter(new File(outputFileName)); 
+        writer.checkRawTrackerHits(check); 
+        
+        LCSimLoop loop = new LCSimLoop(); 
+        try {
+            loop.setLCIORecordSource(inputFile);
+            loop.add(writer); 
+            loop.loop(n);
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException("Something bad happened"); 
+        }
+        
+        System.out.println("Done.");
+        
+    }
+    
+}

lcsim/src/org/lcsim/recon/tracking/seedtracker/digiexample
DigiSeedTrackerDriver.java added at 1.1
diff -N DigiSeedTrackerDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ DigiSeedTrackerDriver.java	27 Aug 2008 17:57:09 -0000	1.1
@@ -0,0 +1,34 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.lcsim.recon.tracking.seedtracker.digiexample;
+
+import org.lcsim.recon.tracking.seedtracker.SeedTracker;
+import org.lcsim.recon.tracking.seedtracker.StrategyXMLUtils;
+import org.lcsim.recon.tracking.seedtracker.diagnostic.SeedTrackerDiagnostics;
+import org.lcsim.recon.tracking.seedtracker.example.AnalysisDriver;
+import org.lcsim.util.Driver;
+
+/* SeedTracker driver using digitized hits. Because pixel hits are not yet available, 
+ * smeared hits are used in the vertex detector. 
+ *
+ * @author cozzy
+ */
+public class DigiSeedTrackerDriver extends Driver{
+    
+    private static final String strategy_file = "autogen_100GeV_singleMuon_sid01_planar_tracker.xml";
+    
+    public DigiSeedTrackerDriver() {
+        add(new DigiHitMaker()); //this actually makes the hits 
+//        SeedTracker st = new SeedTracker(new BetterPlanarStrategy().getStrategies());i
+
+        SeedTracker st = new SeedTracker(StrategyXMLUtils.getStrategyListFromResource(StrategyXMLUtils.getDefaultStrategiesPrefix() + strategy_file)); 
+
+//        st.setDiagnostics(new SeedTrackerDiagnostics());
+        add(st);
+//        add(new AnalysisDriver());
+
+    }
+}
CVSspam 0.2.8