Print

Print


Commit in lcsim on MAIN
src/org/lcsim/contrib/seedtracker/digiexample/BetterPlanarStrategy.java+159-1511.1 -> 1.2
src/org/lcsim/fit/helicaltrack/HelicalTrackStrip.java+1-11.5 -> 1.6
                              /HelicalTrackHitDriver.java+4-61.15 -> 1.16
test/org/lcsim/contrib/seedtracker/SeedTrackerDigiTest.java+83added 1.1
+247-158
1 added + 3 modified, total 4 files
CD - saner layer numbering  + test case

lcsim/src/org/lcsim/contrib/seedtracker/digiexample
BetterPlanarStrategy.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- BetterPlanarStrategy.java	8 Jul 2008 19:45:19 -0000	1.1
+++ BetterPlanarStrategy.java	10 Jul 2008 22:05:02 -0000	1.2
@@ -19,12 +19,20 @@
 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;
@@ -36,22 +44,22 @@
         
         //  Create an outside-in strategy for the barrel
         List<SeedLayer> lyrlist = new ArrayList<SeedLayer>();
-        lyrlist.add(new SeedLayer(VERTEX_BARREL_NAME,0,barrel,SeedType.Extend));
-        lyrlist.add(new SeedLayer(VERTEX_BARREL_NAME,1,barrel,SeedType.Extend));
-        lyrlist.add(new SeedLayer(VERTEX_BARREL_NAME,2,barrel,SeedType.Extend));
-        lyrlist.add(new SeedLayer(VERTEX_BARREL_NAME,3,barrel,SeedType.Extend));
-        lyrlist.add(new SeedLayer(VERTEX_BARREL_NAME,4,barrel,SeedType.Extend));
-        lyrlist.add(new SeedLayer(VERTEX_ENDCAP_NAME,0,nend,SeedType.Extend));
-        lyrlist.add(new SeedLayer(VERTEX_ENDCAP_NAME,1,nend,SeedType.Extend));
-        lyrlist.add(new SeedLayer(TRACKER_FORWARD_NAME,0,nend,SeedType.Extend));
-        lyrlist.add(new SeedLayer(VERTEX_ENDCAP_NAME,0,send,SeedType.Extend));
-        lyrlist.add(new SeedLayer(VERTEX_ENDCAP_NAME,1,send,SeedType.Extend));
-        lyrlist.add(new SeedLayer(TRACKER_FORWARD_NAME,0,send,SeedType.Extend));
-        lyrlist.add(new SeedLayer(TRACKER_BARREL_NAME,0,barrel,SeedType.Extend));
-        lyrlist.add(new SeedLayer(TRACKER_BARREL_NAME,1,barrel,SeedType.Confirm));
-        lyrlist.add(new SeedLayer(TRACKER_BARREL_NAME,2,barrel,SeedType.Seed));
-        lyrlist.add(new SeedLayer(TRACKER_BARREL_NAME,3,barrel,SeedType.Seed));
-        lyrlist.add(new SeedLayer(TRACKER_BARREL_NAME,4,barrel,SeedType.Seed));
+        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);
         
@@ -60,186 +68,186 @@
             
             //  Create an outside-in strategy for the disks
             List<SeedLayer> lyrlist2 = new ArrayList<SeedLayer>();
-            lyrlist2.add(new SeedLayer(VERTEX_BARREL_NAME,0,barrel,SeedType.Extend));
-            lyrlist2.add(new SeedLayer(VERTEX_BARREL_NAME,1,barrel,SeedType.Extend));
-            lyrlist2.add(new SeedLayer(VERTEX_BARREL_NAME,2,barrel,SeedType.Extend));
-            lyrlist2.add(new SeedLayer(VERTEX_ENDCAP_NAME,0,endcap,SeedType.Extend));
-            lyrlist2.add(new SeedLayer(VERTEX_ENDCAP_NAME,1,endcap,SeedType.Extend));
-            lyrlist2.add(new SeedLayer(VERTEX_ENDCAP_NAME,2,endcap,SeedType.Extend));
-            lyrlist2.add(new SeedLayer(VERTEX_ENDCAP_NAME,3,endcap,SeedType.Extend));
-            lyrlist2.add(new SeedLayer(TRACKER_FORWARD_NAME,0,endcap,SeedType.Extend));
-            lyrlist2.add(new SeedLayer(TRACKER_FORWARD_NAME,1,endcap,SeedType.Extend));
-            lyrlist2.add(new SeedLayer(TRACKER_BARREL_NAME,0,barrel,SeedType.Extend));
-            lyrlist2.add(new SeedLayer(TRACKER_BARREL_NAME,1,barrel,SeedType.Confirm));
-            lyrlist2.add(new SeedLayer(TRACKER_ENDCAP_NAME,0,endcap,SeedType.Confirm));
-            lyrlist2.add(new SeedLayer(TRACKER_ENDCAP_NAME,1,endcap,SeedType.Seed));
-            lyrlist2.add(new SeedLayer(TRACKER_ENDCAP_NAME,2,endcap,SeedType.Seed));
-            lyrlist2.add(new SeedLayer(TRACKER_ENDCAP_NAME,3,endcap,SeedType.Seed));
+            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,0,barrel,SeedType.Extend));
-            lyrlist3.add(new SeedLayer(VERTEX_BARREL_NAME,1,barrel,SeedType.Extend));
-            lyrlist3.add(new SeedLayer(VERTEX_BARREL_NAME,2,barrel,SeedType.Extend));
-            lyrlist3.add(new SeedLayer(VERTEX_BARREL_NAME,3,barrel,SeedType.Extend));
-            lyrlist3.add(new SeedLayer(VERTEX_ENDCAP_NAME,0,endcap,SeedType.Extend));
-            lyrlist3.add(new SeedLayer(VERTEX_ENDCAP_NAME,1,endcap,SeedType.Extend));
-            lyrlist3.add(new SeedLayer(TRACKER_FORWARD_NAME,0,endcap,SeedType.Extend));
-            lyrlist3.add(new SeedLayer(TRACKER_BARREL_NAME,0,barrel,SeedType.Extend));
-            lyrlist3.add(new SeedLayer(TRACKER_BARREL_NAME,1,barrel,SeedType.Confirm));
-            lyrlist3.add(new SeedLayer(TRACKER_BARREL_NAME,2,barrel,SeedType.Seed));
-            lyrlist3.add(new SeedLayer(TRACKER_BARREL_NAME,3,barrel,SeedType.Seed));
-            lyrlist3.add(new SeedLayer(TRACKER_ENDCAP_NAME,3,endcap,SeedType.Seed));
+            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,0,barrel,SeedType.Extend));
-            lyrlist4.add(new SeedLayer(VERTEX_BARREL_NAME,1,barrel,SeedType.Extend));
-            lyrlist4.add(new SeedLayer(VERTEX_BARREL_NAME,2,barrel,SeedType.Extend));
-            lyrlist4.add(new SeedLayer(VERTEX_BARREL_NAME,3,barrel,SeedType.Extend));
-            lyrlist4.add(new SeedLayer(VERTEX_ENDCAP_NAME,0,endcap,SeedType.Extend));
-            lyrlist4.add(new SeedLayer(VERTEX_ENDCAP_NAME,1,endcap,SeedType.Extend));
-            lyrlist4.add(new SeedLayer(VERTEX_ENDCAP_NAME,2,endcap,SeedType.Extend));
-            lyrlist4.add(new SeedLayer(TRACKER_FORWARD_NAME,0,endcap,SeedType.Extend));
-            lyrlist4.add(new SeedLayer(TRACKER_BARREL_NAME,0,barrel,SeedType.Extend));
-            lyrlist4.add(new SeedLayer(TRACKER_BARREL_NAME,1,barrel,SeedType.Confirm));
-            lyrlist4.add(new SeedLayer(TRACKER_BARREL_NAME,2,barrel,SeedType.Seed));
-            lyrlist4.add(new SeedLayer(TRACKER_ENDCAP_NAME,2,endcap,SeedType.Seed));
-            lyrlist4.add(new SeedLayer(TRACKER_ENDCAP_NAME,3,endcap,SeedType.Seed));
+            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,0,barrel,SeedType.Extend));
-            lyrlist5.add(new SeedLayer(VERTEX_BARREL_NAME,1,barrel,SeedType.Extend));
-            lyrlist5.add(new SeedLayer(VERTEX_BARREL_NAME,2,barrel,SeedType.Extend));
-            lyrlist5.add(new SeedLayer(VERTEX_ENDCAP_NAME,0,endcap,SeedType.Extend));
-            lyrlist5.add(new SeedLayer(VERTEX_ENDCAP_NAME,1,endcap,SeedType.Extend));
-            lyrlist5.add(new SeedLayer(VERTEX_ENDCAP_NAME,2,endcap,SeedType.Extend));
-            lyrlist5.add(new SeedLayer(TRACKER_FORWARD_NAME,0,endcap,SeedType.Extend));
-            lyrlist5.add(new SeedLayer(TRACKER_BARREL_NAME,0,barrel,SeedType.Extend));
-            lyrlist5.add(new SeedLayer(TRACKER_BARREL_NAME,1,barrel,SeedType.Confirm));
-            lyrlist5.add(new SeedLayer(TRACKER_ENDCAP_NAME,1,endcap,SeedType.Seed));
-            lyrlist5.add(new SeedLayer(TRACKER_ENDCAP_NAME,2,endcap,SeedType.Seed));
-            lyrlist5.add(new SeedLayer(TRACKER_ENDCAP_NAME,3,endcap,SeedType.Seed));
+            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,0,barrel,SeedType.Extend));
-            lyrlist6.add(new SeedLayer(VERTEX_BARREL_NAME,1,barrel,SeedType.Extend));
-            lyrlist6.add(new SeedLayer(VERTEX_ENDCAP_NAME,0,endcap,SeedType.Extend));
-            lyrlist6.add(new SeedLayer(VERTEX_ENDCAP_NAME,1,endcap,SeedType.Extend));
-            lyrlist6.add(new SeedLayer(VERTEX_ENDCAP_NAME,2,endcap,SeedType.Extend));
-            lyrlist6.add(new SeedLayer(VERTEX_ENDCAP_NAME,3,endcap,SeedType.Extend));
-            lyrlist6.add(new SeedLayer(TRACKER_FORWARD_NAME,0,endcap,SeedType.Extend));
-            lyrlist6.add(new SeedLayer(TRACKER_FORWARD_NAME,1,endcap,SeedType.Confirm));
-            lyrlist6.add(new SeedLayer(TRACKER_FORWARD_NAME,2,endcap,SeedType.Confirm));
-            lyrlist6.add(new SeedLayer(TRACKER_ENDCAP_NAME,1,endcap,SeedType.Seed));
-            lyrlist6.add(new SeedLayer(TRACKER_ENDCAP_NAME,2,endcap,SeedType.Seed));
-            lyrlist6.add(new SeedLayer(TRACKER_ENDCAP_NAME,3,endcap,SeedType.Seed));
+            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,0,barrel,SeedType.Extend));
-            lyrlist7.add(new SeedLayer(VERTEX_BARREL_NAME,1,barrel,SeedType.Extend));
-            lyrlist7.add(new SeedLayer(VERTEX_ENDCAP_NAME,0,endcap,SeedType.Extend));
-            lyrlist7.add(new SeedLayer(VERTEX_ENDCAP_NAME,1,endcap,SeedType.Extend));
-            lyrlist7.add(new SeedLayer(VERTEX_ENDCAP_NAME,2,endcap,SeedType.Extend));
-            lyrlist7.add(new SeedLayer(VERTEX_ENDCAP_NAME,3,endcap,SeedType.Extend));
-            lyrlist7.add(new SeedLayer(TRACKER_FORWARD_NAME,0,endcap,SeedType.Extend));
-            lyrlist7.add(new SeedLayer(TRACKER_FORWARD_NAME,1,endcap,SeedType.Confirm));
-            lyrlist7.add(new SeedLayer(TRACKER_FORWARD_NAME,2,endcap,SeedType.Seed));
-            lyrlist7.add(new SeedLayer(TRACKER_ENDCAP_NAME,2,endcap,SeedType.Seed));
-            lyrlist7.add(new SeedLayer(TRACKER_ENDCAP_NAME,3,endcap,SeedType.Seed));
+            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,0,barrel,SeedType.Extend));
-            lyrlist8.add(new SeedLayer(VERTEX_BARREL_NAME,1,barrel,SeedType.Extend));
-            lyrlist8.add(new SeedLayer(VERTEX_ENDCAP_NAME,0,endcap,SeedType.Seed));
-            lyrlist8.add(new SeedLayer(VERTEX_ENDCAP_NAME,1,endcap,SeedType.Seed));
-            lyrlist8.add(new SeedLayer(VERTEX_ENDCAP_NAME,2,endcap,SeedType.Seed));
-            lyrlist8.add(new SeedLayer(VERTEX_ENDCAP_NAME,3,endcap,SeedType.Confirm));
-            lyrlist8.add(new SeedLayer(TRACKER_FORWARD_NAME,0,endcap,SeedType.Extend));
-            lyrlist8.add(new SeedLayer(TRACKER_FORWARD_NAME,1,endcap,SeedType.Extend));
-            lyrlist8.add(new SeedLayer(TRACKER_FORWARD_NAME,2,endcap,SeedType.Extend));
-            lyrlist8.add(new SeedLayer(TRACKER_ENDCAP_NAME,2,endcap,SeedType.Extend));
-            lyrlist8.add(new SeedLayer(TRACKER_ENDCAP_NAME,3,endcap,SeedType.Extend));
+            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,0,barrel,SeedType.Extend));
-            lyrlist9.add(new SeedLayer(VERTEX_BARREL_NAME,1,barrel,SeedType.Extend));
-            lyrlist9.add(new SeedLayer(VERTEX_ENDCAP_NAME,0,endcap,SeedType.Seed));
-            lyrlist9.add(new SeedLayer(VERTEX_ENDCAP_NAME,1,endcap,SeedType.Seed));
-            lyrlist9.add(new SeedLayer(VERTEX_ENDCAP_NAME,2,endcap,SeedType.Seed));
-            lyrlist9.add(new SeedLayer(VERTEX_ENDCAP_NAME,3,endcap,SeedType.Extend));
-            lyrlist9.add(new SeedLayer(TRACKER_FORWARD_NAME,0,endcap,SeedType.Confirm));
-            lyrlist9.add(new SeedLayer(TRACKER_FORWARD_NAME,1,endcap,SeedType.Extend));
-            lyrlist9.add(new SeedLayer(TRACKER_FORWARD_NAME,2,endcap,SeedType.Extend));
-            lyrlist9.add(new SeedLayer(TRACKER_ENDCAP_NAME,2,endcap,SeedType.Extend));
-            lyrlist9.add(new SeedLayer(TRACKER_ENDCAP_NAME,3,endcap,SeedType.Extend));
+            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,0,barrel,SeedType.Seed));
-            lyrlist10.add(new SeedLayer(VERTEX_BARREL_NAME,1,barrel,SeedType.Seed));
-            lyrlist10.add(new SeedLayer(VERTEX_BARREL_NAME,2,barrel,SeedType.Extend));
-            lyrlist10.add(new SeedLayer(VERTEX_BARREL_NAME,3,barrel,SeedType.Extend));
-            lyrlist10.add(new SeedLayer(VERTEX_BARREL_NAME,4,barrel,SeedType.Extend));
-            lyrlist10.add(new SeedLayer(TRACKER_BARREL_NAME,0,barrel,SeedType.Seed));
-            lyrlist10.add(new SeedLayer(TRACKER_BARREL_NAME,1,barrel,SeedType.Confirm));
-            lyrlist10.add(new SeedLayer(TRACKER_BARREL_NAME,2,barrel,SeedType.Extend));
-            lyrlist10.add(new SeedLayer(TRACKER_BARREL_NAME,3,barrel,SeedType.Extend));
-            lyrlist10.add(new SeedLayer(TRACKER_BARREL_NAME,4,barrel,SeedType.Extend));
-            lyrlist10.add(new SeedLayer(VERTEX_ENDCAP_NAME,0,endcap,SeedType.Extend));
-            lyrlist10.add(new SeedLayer(VERTEX_ENDCAP_NAME,1,endcap,SeedType.Extend));
-            lyrlist10.add(new SeedLayer(VERTEX_ENDCAP_NAME,2,endcap,SeedType.Extend));
-            lyrlist10.add(new SeedLayer(VERTEX_ENDCAP_NAME,3,endcap,SeedType.Extend));
-            lyrlist10.add(new SeedLayer(TRACKER_FORWARD_NAME,0,endcap,SeedType.Extend));
-            lyrlist10.add(new SeedLayer(TRACKER_FORWARD_NAME,1,endcap,SeedType.Extend));
-            lyrlist10.add(new SeedLayer(TRACKER_FORWARD_NAME,2,endcap,SeedType.Extend));
-            lyrlist10.add(new SeedLayer(TRACKER_ENDCAP_NAME,2,endcap,SeedType.Extend));
-            lyrlist10.add(new SeedLayer(TRACKER_ENDCAP_NAME,3,endcap,SeedType.Extend));
+            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,0,barrel,SeedType.Extend));
-            lyrlist11.add(new SeedLayer(VERTEX_BARREL_NAME,1,barrel,SeedType.Extend));
-            lyrlist11.add(new SeedLayer(VERTEX_BARREL_NAME,2,barrel,SeedType.Extend));
-            lyrlist11.add(new SeedLayer(VERTEX_BARREL_NAME,3,barrel,SeedType.Extend));
-            lyrlist11.add(new SeedLayer(VERTEX_BARREL_NAME,4,barrel,SeedType.Extend));
-            lyrlist11.add(new SeedLayer(TRACKER_BARREL_NAME,0,barrel,SeedType.Extend));
-            lyrlist11.add(new SeedLayer(TRACKER_BARREL_NAME,1,barrel,SeedType.Extend));
-            lyrlist11.add(new SeedLayer(TRACKER_BARREL_NAME,2,barrel,SeedType.Extend));
-            lyrlist11.add(new SeedLayer(TRACKER_BARREL_NAME,3,barrel,SeedType.Extend));
-            lyrlist11.add(new SeedLayer(TRACKER_BARREL_NAME,4,barrel,SeedType.Extend));
-            lyrlist11.add(new SeedLayer(VERTEX_ENDCAP_NAME,0,endcap,SeedType.Extend));
-            lyrlist11.add(new SeedLayer(VERTEX_ENDCAP_NAME,1,endcap,SeedType.Seed));
-            lyrlist11.add(new SeedLayer(VERTEX_ENDCAP_NAME,2,endcap,SeedType.Seed));
-            lyrlist11.add(new SeedLayer(VERTEX_ENDCAP_NAME,3,endcap,SeedType.Seed));
-            lyrlist11.add(new SeedLayer(TRACKER_FORWARD_NAME,0,endcap,SeedType.Confirm));
-            lyrlist11.add(new SeedLayer(TRACKER_FORWARD_NAME,1,endcap,SeedType.Extend));
-            lyrlist11.add(new SeedLayer(TRACKER_FORWARD_NAME,2,endcap,SeedType.Extend));
-            lyrlist11.add(new SeedLayer(TRACKER_ENDCAP_NAME,2,endcap,SeedType.Extend));
-            lyrlist11.add(new SeedLayer(TRACKER_ENDCAP_NAME,3,endcap,SeedType.Extend));
+            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);
             

lcsim/src/org/lcsim/fit/helicaltrack
HelicalTrackStrip.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- HelicalTrackStrip.java	10 Jul 2008 20:26:32 -0000	1.5
+++ HelicalTrackStrip.java	10 Jul 2008 22:05:02 -0000	1.6
@@ -81,7 +81,7 @@
             _vmax -= vmiddle;
         }
         
-        if(!(_vmin+_vmax<_eps))
+        if(!(Math.abs(_vmin+_vmax)<_eps))
             throw new RuntimeException("_vmin != -_vmax"); 
                 
         //  Make sure that vmin < vmax

lcsim/src/org/lcsim/fit/helicaltrack
HelicalTrackHitDriver.java 1.15 -> 1.16
diff -u -r1.15 -r1.16
--- HelicalTrackHitDriver.java	8 Jul 2008 23:54:14 -0000	1.15
+++ HelicalTrackHitDriver.java	10 Jul 2008 22:05:03 -0000	1.16
@@ -26,7 +26,6 @@
 import org.lcsim.detector.IDetectorElement;
 import org.lcsim.detector.IDetectorElementContainer;
 import org.lcsim.detector.ITransform3D;
-import org.lcsim.detector.identifier.Identifier;
 import org.lcsim.detector.tracker.silicon.SiTrackerModule;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.MCParticle;
@@ -92,6 +91,7 @@
      * Create the HelicalTrackHits for the specified hit collections.
      * @param event EventHeader of the event to be processed
      */
+    @Override
     public void process(EventHeader event) {
         super.process(event);
         
@@ -114,7 +114,6 @@
                         IDetectorElement de = cont.get(0); 
                         String detname = ID.getName(de);
                         int lyr = ID.getLayer(de); 
-                        if(event.getDetectorName().equals("sid01_planar_tracker")) lyr--;  //sid01 planar tracker is 1-indexed, not 0 indexed... 
                         HelicalTrackHit hthit = new HelicalTrack3DHit(pos, cov, hit.getdEdx(), hit.getTime(), hit.getRawHits(),
                                 detname, lyr, ID.getBarrelEndcapFlag(de));
                         
@@ -315,7 +314,7 @@
     private HelicalTrackHit makeDigi3DHit(SiTrackerHit h) {
         
         IDetectorElement de = h.getSensor(); 
-        int lyr = ID.getLayer(de)-1; 
+        int lyr = ID.getLayer(de); 
         BarrelEndcapFlag be = ID.getBarrelEndcapFlag(de); 
         
         HelicalTrackHit hit = new HelicalTrack3DHit(h.getPositionAsVector(), 
@@ -338,7 +337,7 @@
         
         HelicalTrackHit hit = new HelicalTrack2DHit(h.getPositionAsVector(), 
                 h.getCovarianceAsMatrix(), h.getdEdx(), h.getTime(), 
-                h.getRawHits(), ID.getName(de), ID.getLayer(de)-1, 
+                h.getRawHits(), ID.getName(de), ID.getLayer(de), 
                 ID.getBarrelEndcapFlag(de), zmin, zmax);
         
         
@@ -375,9 +374,8 @@
          
          IDetectorElement de = h.getSensor(); 
          String det = ID.getName(de); 
-         int lyr = ID.getLayer(de)-1; //sid01_planar_tracker is 1-indexed, not 0 indexed. 
+         int lyr = ID.getLayer(de);
          BarrelEndcapFlag be = ID.getBarrelEndcapFlag(de); 
-         //if (!be.isBarrel()) lyr = LAYER_MAP[lyr-1]; 
          
          double dEdx = h.getdEdx(); 
          double time = h.getTime(); 

lcsim/test/org/lcsim/contrib/seedtracker
SeedTrackerDigiTest.java added at 1.1
diff -N SeedTrackerDigiTest.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SeedTrackerDigiTest.java	10 Jul 2008 22:05:03 -0000	1.1
@@ -0,0 +1,83 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.lcsim.contrib.seedtracker;
+
+import java.io.File;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import junit.framework.TestSuite;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import org.lcsim.contrib.SiStripSim.TrackerHitDriver_User;
+import org.lcsim.contrib.seedtracker.digiexample.BetterPlanarStrategy;
+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;
+import org.lcsim.util.cache.FileCache;
+import org.lcsim.util.loop.LCSimLoop;
+
+/**
+ *
+ * @author cozzy
+ */
+public class SeedTrackerDigiTest extends TestCase{
+
+    public SeedTrackerDigiTest(String testName) {
+        super(testName); 
+    }
+    
+    public static Test suite() {
+        return new TestSuite(SeedTrackerDigiTest.class); 
+    }
+    
+    public void setUp() {
+        System.gc();
+    }
+    
+    public void testSeedTrackerDigi() throws Exception {
+        URL url = new URL("http://www.lcsim.org/test/lcio/muons_Theta4-176_1-10GeV_SLIC-v2r4p6_geant4-v9r1p2_LCPhys_sid01_planar_tracker-0-10.slcio"); 
+        FileCache cache = new FileCache(); 
+        File file = cache.getCachedFile(url); 
+        LCSimLoop loop = new LCSimLoop(); 
+        loop.setLCIORecordSource(file); 
+        loop.add( new TestDriver()); 
+        loop.loop(5, null); 
+        loop.dispose(); 
+    }
+    
+    class TestDriver extends Driver{
+        
+        public TestDriver() {
+            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); 
+            add(hitdriver);
+            add( new SeedTracker(new BetterPlanarStrategy().getStrategies()) );
+            
+        }
+        
+        public 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);
+            assertFalse("Track not found in event "+event.getEventNumber(),event.getTracks().isEmpty()); 
+            return;     
+        }    
+        
+    }
+    
+}
CVSspam 0.2.8