Print

Print


Commit in java/trunk/tracking/src on MAIN
main/java/org/hps/recon/tracking/TrackerReconDriver.java+1-1379 -> 380
main/resources/org/hps/recon/tracking/strategies/HPS-Full.xml+30added 380
                                                /HPS-Test-4pt0.xml+29added 380
                                                /HPS-Test-4pt1.xml+115added 380
                                                /HPS-Test-All.xml+361added 380
                                                /HPS-Test-Lyr50.xml+56added 380
                                                /HPS-TestRun-135.xml+27added 380
                                                /HPS-TestRun-357.xml+27added 380
test/java/org/hps/recon/tracking/HelicalTrackHitDriverTest.java+209added 380
                                /MaterialSupervisorTest.java+37added 380
                                /TestRunTrackReconTest.java+225added 380
                                /TruthResidualTest.java+148added 380
+1265-1
11 added + 1 modified, total 12 files
Add tracking recon tests and strategies from hps-java to new module.

java/trunk/tracking/src/main/java/org/hps/recon/tracking
TrackerReconDriver.java 379 -> 380
--- java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackerReconDriver.java	2014-03-26 05:33:53 UTC (rev 379)
+++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackerReconDriver.java	2014-03-26 05:34:25 UTC (rev 380)
@@ -134,7 +134,7 @@
         //
 
         if (!strategyResource.startsWith("/")) {
-            strategyResource = "/org/lcsim/hps/recon/tracking/strategies/" + strategyResource;
+            strategyResource = "/org/hps/recon/tracking/strategies/" + strategyResource;
         }
         List<SeedStrategy> sFinallist = StrategyXMLUtils.getStrategyListFromInputStream(this.getClass().getResourceAsStream(strategyResource));
         SeedTracker stFinal = new SeedTracker(sFinallist,this._useHPSMaterialManager,this.includeMS);

java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies
HPS-Full.xml added at 380
--- java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies/HPS-Full.xml	                        (rev 0)
+++ java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies/HPS-Full.xml	2014-03-26 05:34:25 UTC (rev 380)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<StrategyList xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://lcsim.org/recon/tracking/seedtracker/strategybuilder/strategies.xsd">
+    <TargetDetector>HPS-Full</TargetDetector>
+    <Strategy name="HelicalTrackHit Strategy">
+        
+        <!--Cutoffs-->
+        
+        <MinPT>0.100</MinPT>
+        <MinHits>5</MinHits>
+        <MinConfirm>1</MinConfirm>
+        
+        <MaxDCA>4.0</MaxDCA>
+        <MaxZ0>4.0</MaxZ0>
+
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+
+        <!--Layers-->
+
+        <Layers>                 
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+             <Layer type="Extend" layer_number="11" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+</StrategyList>
+

java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies
HPS-Test-4pt0.xml added at 380
--- java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies/HPS-Test-4pt0.xml	                        (rev 0)
+++ java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies/HPS-Test-4pt0.xml	2014-03-26 05:34:25 UTC (rev 380)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<StrategyList xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://lcsim.org/recon/tracking/seedtracker/strategybuilder/strategies.xsd">
+    <TargetDetector>HPS-Test-4pt0</TargetDetector>
+    <Strategy name="HelicalTrackHit Strategy">
+        
+        <!--Cutoffs-->
+        
+        <MinPT>0.100</MinPT>
+        <MinHits>5</MinHits>
+        <MinConfirm>1</MinConfirm>
+        
+        <MaxDCA>4.0</MaxDCA>
+        <MaxZ0>4.0</MaxZ0>
+
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+
+        <!--Layers-->
+
+        <Layers>                 
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+</StrategyList>
+

java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies
HPS-Test-4pt1.xml added at 380
--- java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies/HPS-Test-4pt1.xml	                        (rev 0)
+++ java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies/HPS-Test-4pt1.xml	2014-03-26 05:34:25 UTC (rev 380)
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<StrategyList xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://lcsim.org/recon/tracking/seedtracker/strategybuilder/strategies.xsd">
+    <TargetDetector>HPS-Test-4pt0</TargetDetector>
+
+    
+    <Strategy name="HelicalTrackHit Strategy">
+        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>
+        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+
+        <Layers>                 
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    <Strategy name="Outiside In">
+        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>
+        
+        <MaxDCA>90.0</MaxDCA>
+        <MaxZ0>90.0</MaxZ0>
+
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+
+        <Layers>                 
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+   
+    
+      <Strategy name="Strategy3">
+        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>
+        
+        <MaxDCA>90.0</MaxDCA>
+        <MaxZ0>90.0</MaxZ0>
+
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+
+        <Layers>                 
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+      <Strategy name="Strategy4">
+        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>
+        
+        <MaxDCA>90.0</MaxDCA>
+        <MaxZ0>90.0</MaxZ0>
+
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+
+        <Layers>                 
+            <Layer type="Seed" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    
+       <Strategy name="Strategy5">
+        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>
+        
+        <MaxDCA>90.0</MaxDCA>
+        <MaxZ0>90.0</MaxZ0>
+
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+
+        <Layers>                 
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+
+    
+</StrategyList>
+

java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies
HPS-Test-All.xml added at 380
--- java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies/HPS-Test-All.xml	                        (rev 0)
+++ java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies/HPS-Test-All.xml	2014-03-26 05:34:25 UTC (rev 380)
@@ -0,0 +1,361 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<StrategyList xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://lcsim.org/recon/tracking/seedtracker/strategybuilder/strategies.xsd">
+    <TargetDetector>HPS-Test-All</TargetDetector>
+	
+    <Strategy name="Strategy1-1">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+
+    <Strategy name="Strategy1-2">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+
+    <Strategy name="Strategy2-1">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    <Strategy name="Strategy2-2">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+
+	<Strategy name="Strategy3-1">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    <Strategy name="Strategy3-2">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    
+    
+    
+    <Strategy name="Strategy4-1">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    <Strategy name="Strategy4-2">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    
+     <Strategy name="Strategy5-1">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    <Strategy name="Strategy5-2">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    
+    <Strategy name="Strategy6-1">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    <Strategy name="Strategy6-2">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    
+    <Strategy name="Strategy7-1">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    
+    
+    <Strategy name="Strategy7-2">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    
+    <Strategy name="Strategy8-1">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    <Strategy name="Strategy8-2">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    <Strategy name="Strategy9-1">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    
+    <Strategy name="Strategy9-2">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    
+    <Strategy name="Strategy10-1">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    <Strategy name="Strategy10-2">        
+        <MinPT>0.250</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+        <Layers>                 
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+    
+    
+    
+
+    
+</StrategyList>
+

java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies
HPS-Test-Lyr50.xml added at 380
--- java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies/HPS-Test-Lyr50.xml	                        (rev 0)
+++ java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies/HPS-Test-Lyr50.xml	2014-03-26 05:34:25 UTC (rev 380)
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<StrategyList xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://lcsim.org/recon/tracking/seedtracker/strategybuilder/strategies.xsd">
+    <TargetDetector>HPS-Test-Lyr50</TargetDetector>
+    <Strategy name="Strat135">
+        
+        <!--Cutoffs-->
+        
+        <MinPT>0.100</MinPT>
+        <MinHits>5</MinHits>
+        <MinConfirm>1</MinConfirm>
+        
+        <MaxDCA>4.0</MaxDCA>
+        <MaxZ0>4.0</MaxZ0>
+
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+
+        <!--Layers-->
+
+        <Layers>                 
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+             <Layer type="Extend" layer_number="11" detector_name="Tracker" be_flag="BARREL" />            
+        </Layers>
+    </Strategy>
+    
+     <Strategy name="StratStrat1113">
+        
+        <!--Cutoffs-->
+        
+        <MinPT>0.100</MinPT>
+        <MinHits>5</MinHits>
+        <MinConfirm>1</MinConfirm>
+        
+        <MaxDCA>4.0</MaxDCA>
+        <MaxZ0>4.0</MaxZ0>
+
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+
+        <!--Layers-->
+
+        <Layers>                 
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="11" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+             <Layer type="Extend" layer_number="9" detector_name="Tracker" be_flag="BARREL" />            
+        </Layers>
+    </Strategy>
+</StrategyList>
+

java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies
HPS-TestRun-135.xml added at 380
--- java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies/HPS-TestRun-135.xml	                        (rev 0)
+++ java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies/HPS-TestRun-135.xml	2014-03-26 05:34:25 UTC (rev 380)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<StrategyList xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://lcsim.org/recon/tracking/seedtracker/strategybuilder/strategies.xsd">
+    <TargetDetector>HPS-Test-4pt0</TargetDetector>
+    <Strategy name="HelicalTrackHit Strategy">            
+        <!--Cutoffs-->
+        
+        <MinPT>0.050</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>
+        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+
+        <!--Layers-->
+        <Layers>              
+            <Layer type="Seed" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+</StrategyList>
+

java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies
HPS-TestRun-357.xml added at 380
--- java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies/HPS-TestRun-357.xml	                        (rev 0)
+++ java/trunk/tracking/src/main/resources/org/hps/recon/tracking/strategies/HPS-TestRun-357.xml	2014-03-26 05:34:25 UTC (rev 380)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<StrategyList xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://lcsim.org/recon/tracking/seedtracker/strategybuilder/strategies.xsd">
+    <TargetDetector>HPS-TestRun-v4</TargetDetector>
+    <Strategy name="HelicalTrackHit Strategy">            
+        <!--Cutoffs-->
+        
+        <MinPT>0.050</MinPT>
+        <MinHits>4</MinHits>
+        <MinConfirm>1</MinConfirm>
+        
+        <MaxDCA>80.0</MaxDCA>
+        <MaxZ0>80.0</MaxZ0>
+
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+
+        <!--Layers-->
+        <Layers>              
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="1" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Extend" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+</StrategyList>
+

java/trunk/tracking/src/test/java/org/hps/recon/tracking
HelicalTrackHitDriverTest.java added at 380
--- java/trunk/tracking/src/test/java/org/hps/recon/tracking/HelicalTrackHitDriverTest.java	                        (rev 0)
+++ java/trunk/tracking/src/test/java/org/hps/recon/tracking/HelicalTrackHitDriverTest.java	2014-03-26 05:34:25 UTC (rev 380)
@@ -0,0 +1,209 @@
+package org.hps.recon.tracking;
+
+import hep.aida.IAnalysisFactory;
+import hep.aida.IHistogram1D;
+import hep.aida.ITree;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import junit.framework.TestCase;
+
+import org.freehep.record.loop.RecordLoop.Command;
+import org.hps.conditions.deprecated.CalibrationDriver;
+import org.hps.util.CompareHistograms;
+import org.lcsim.event.EventHeader;
+import org.lcsim.fit.helicaltrack.HelicalTrackHit;
+import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHit;
+import org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup;
+import org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+import org.lcsim.util.cache.FileCache;
+import org.lcsim.util.loop.LCSimLoop;
+import org.lcsim.util.test.TestUtil.TestOutputFile;
+
+
+/**
+ * 
+ * @author Omar Moreno <[log in to unmask]> 
+ * $Id: HelicalTrackHitDriverTest.java,v 1.3 2013/10/25 20:29:03 jeremy Exp $
+ */
+public class HelicalTrackHitDriverTest extends TestCase {
+
+	File commonOutputFile; 
+	File splitOutputFile; 
+	
+    /**
+     * 
+     */
+    public void setUp() throws Exception {
+        System.out.println("setting up test");
+
+        // Get the input file that will be used for the test
+        String testURLPath = "http://www.slac.stanford.edu/~phansson/files/hps_java_test/HPSTestRunv3/hps-java-1.7-SNAPSHOT-050113";
+        String testFileName = "egs_5.5gev_0.016x0_500mb_recoil_recon_1_hpsTestRunTrackingTest.slcio";
+        URL testURL = new URL(testURLPath + "/" + testFileName);
+        FileCache fileCache = new FileCache();
+        File lcioInputFile = fileCache.getCachedFile(testURL);
+        
+        // Number of events to run over
+        int nEvents = 5000; 
+
+        // Setup the drivers
+        HPSRawTrackerHitFitterDriver hitFitter = new HPSRawTrackerHitFitterDriver();
+        hitFitter.setFitAlgorithm("Analytic");
+        hitFitter.setCorrectT0Shift(true);
+
+        HelicalTrackHitDriver hthDriver = new HelicalTrackHitDriver();
+        hthDriver.setMaxSeperation(20.0);
+        hthDriver.setTolerance(1.0);
+        hthDriver.setLayerGeometryType("Common");
+       
+        
+        ReadoutCleanupDriver cleanupDriver = new ReadoutCleanupDriver();
+        String[] collectionNames = { "TrackerHits", "SVTRawTrackerHits", "SVTFittedRawTrackerHits"}; 
+        cleanupDriver.setCollectionNames(collectionNames);
+        
+        commonOutputFile = new TestOutputFile(testFileName.replace(".slcio", "_common.aida"));
+        ComparisonPlotsDriver plotsDriver = new ComparisonPlotsDriver(); 
+        plotsDriver.setOutputFileName(commonOutputFile);
+        
+        // Specify the drivers that will run
+        LCSimLoop lcsimLoop = new LCSimLoop();
+        lcsimLoop.setLCIORecordSource(lcioInputFile);
+        lcsimLoop.add(new CalibrationDriver());
+        lcsimLoop.add(new RawTrackerHitSensorSetup());
+        lcsimLoop.add(hitFitter);
+        lcsimLoop.add(new DataTrackerHitDriver());
+       
+        // Process the events using the "Common" layer geometry
+        System.out.println("Running with Common geometry");
+        lcsimLoop.add(hthDriver);
+        lcsimLoop.add(plotsDriver);
+        lcsimLoop.add(cleanupDriver);
+        lcsimLoop.loop(nEvents, null);
+        lcsimLoop.execute(Command.REWIND);
+        lcsimLoop.remove(cleanupDriver);
+        lcsimLoop.remove(plotsDriver);
+        lcsimLoop.remove(hthDriver);
+
+        // Process the events using the "Split" layer geometry
+        System.out.println("Running with Split geometry");
+        hthDriver.setLayerGeometryType("Split");
+        splitOutputFile = new TestOutputFile(testFileName.replace(".slcio", "_split.aida"));
+        plotsDriver.setOutputFileName(splitOutputFile);
+        lcsimLoop.add(hthDriver);
+        lcsimLoop.add(plotsDriver);
+        lcsimLoop.add(cleanupDriver);
+        lcsimLoop.loop(nEvents, null);
+        lcsimLoop.dispose();
+    }
+
+    class ComparisonPlotsDriver extends Driver {
+
+        private AIDA aida = AIDA.defaultInstance();
+        private IHistogram1D nTopClusters = aida.histogram1D("Number of Top Clusters", 20, 0, 20);
+        private IHistogram1D nBotClusters = aida.histogram1D("Number of Bottom Clusters", 20, 0, 20);
+        private IHistogram1D nTopStereoHits = aida.histogram1D("Number of Top Stereo Hits", 20, 0, 20);
+        private IHistogram1D nBotStereoHits = aida.histogram1D("Number of Bottom Stereo Hits", 20, 0, 20);
+        
+        private String clusterCollectionName = "StripClusterer_SiTrackerHitStrip1D";
+        private String stereoHitsCollectionName = "HelicalTrackHits";
+        private File outputFile = null; 
+
+        @Override
+        protected void process(EventHeader event) {
+            super.process(event);
+            
+            if(!event.hasCollection(SiTrackerHit.class, clusterCollectionName)) return;
+            List<SiTrackerHit> clusters = event.get(SiTrackerHit.class, clusterCollectionName);
+           
+            int numberTopClusters = 0; 
+            int numberBotClusters = 0; 
+            for(SiTrackerHit cluster : clusters){
+            	if(cluster.getPositionAsVector().y() > 0)
+            		numberTopClusters++; 
+            	else numberBotClusters++; 
+            }
+            
+            if(!event.hasCollection(HelicalTrackHit.class, stereoHitsCollectionName)) return;
+            List<HelicalTrackHit> stereoHits = event.get(HelicalTrackHit.class, stereoHitsCollectionName);
+            
+            int numberTopStereoHits = 0; 
+            int numberBotStereoHits = 0; 
+            for(HelicalTrackHit stereoHit : stereoHits){
+            	if(stereoHit.getPosition()[1] > 0)
+            		numberTopStereoHits++; 
+            	else numberBotStereoHits++; 
+            }
+            
+            nTopClusters.fill(numberTopClusters);
+            nBotClusters.fill(numberBotClusters);
+            nTopStereoHits.fill(numberTopStereoHits);
+            nBotStereoHits.fill(numberBotStereoHits);
+            
+        }
+        
+        @Override
+        protected void endOfData(){ 
+            super.endOfData();
+            
+            if(outputFile == null){ 
+                Logger.getLogger(ComparisonPlotsDriver.class.getName()).log(Level.SEVERE, "Output file was not specified");
+                return;
+            }
+            
+            try { 
+                aida.saveAs(outputFile);
+            } catch(IOException exception){
+                Logger.getLogger(ComparisonPlotsDriver.class.getName()).log(Level.SEVERE, "Unable to save to file " + outputFile.getName());
+            }
+        
+            nTopClusters.reset();
+            nBotClusters.reset(); 
+            nTopStereoHits.reset();
+            nBotStereoHits.reset();
+        }
+        
+
+        public void setOutputFileName(File outputFile) {
+            this.outputFile = outputFile; 
+        }
+    }
+
+    //--- Tests ---//
+    //-------------//
+    
+    /**
+     * Test to check if the "Common" layer geometry and the
+     * "Split" layer geometry are equivalent
+     */
+    public void testLayerGeometry() throws IOException, IllegalArgumentException {
+    	
+    	IAnalysisFactory analysisFactory = AIDA.defaultInstance().analysisFactory(); 
+		
+    	ITree commonTree = analysisFactory.createTreeFactory().create(commonOutputFile.getAbsolutePath());
+    	ITree splitTree  = analysisFactory.createTreeFactory().create(splitOutputFile.getAbsolutePath());
+    	
+    	double ksPvalue = CompareHistograms.getKolmogorovPValue( (IHistogram1D) splitTree.find("Number of Top Clusters"),
+    															 (IHistogram1D) commonTree.find("Number of Top Clusters"));	
+    	assertTrue("Number of top clusters is unequal!", ksPvalue > 0.05 );
+    
+    	ksPvalue = CompareHistograms.getKolmogorovPValue((IHistogram1D) commonTree.find("Number of Bottom Clusters"),
+    				                                     (IHistogram1D) splitTree.find("Number of Bottom Clusters"));
+    	assertTrue("Number of bottom clusters is unequal!", ksPvalue > 0.05 );
+    	
+    	ksPvalue = CompareHistograms.getKolmogorovPValue((IHistogram1D) commonTree.find("Number of Top Stereo Hits"),
+    				                                     (IHistogram1D) splitTree.find("Number of Top Stereo Hits"));
+    	assertTrue("Number of top stereo hits is unequal!", ksPvalue > 0.05 );
+    
+    	ksPvalue = CompareHistograms.getKolmogorovPValue((IHistogram1D) commonTree.find("Number of Bottom Stereo Hits"),
+    				                                     (IHistogram1D) splitTree.find("Number of Bottom Stereo Hits"));
+    	assertTrue("Number of bottom stereo hits is unequal!", ksPvalue > 0.05 );
+    }
+}

java/trunk/tracking/src/test/java/org/hps/recon/tracking
MaterialSupervisorTest.java added at 380
--- java/trunk/tracking/src/test/java/org/hps/recon/tracking/MaterialSupervisorTest.java	                        (rev 0)
+++ java/trunk/tracking/src/test/java/org/hps/recon/tracking/MaterialSupervisorTest.java	2014-03-26 05:34:25 UTC (rev 380)
@@ -0,0 +1,37 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.hps.recon.tracking;
+
+import junit.framework.TestCase;
+import org.lcsim.conditions.ConditionsManager;
+import org.lcsim.conditions.ConditionsManager.ConditionsNotFoundException;
+import org.lcsim.geometry.Detector;
+import org.lcsim.geometry.util.DetectorLocator;
+import org.lcsim.util.loop.LCSimConditionsManagerImplementation;
+
+/**
+ *
+ * @author ngraf
+ */
+public class MaterialSupervisorTest extends TestCase
+{
+
+    public void testMaterialSupervisor()
+    {
+        String detectorName = "HPS-Proposal2014-v5-2pt2";
+        Detector det = DetectorLocator.findDetector(detectorName);
+        System.out.println(det.getName());
+        
+        boolean debug = true;
+        boolean includeMS=true;
+        MaterialSupervisor instance = new MaterialSupervisor(includeMS);
+        instance.setDebug(debug);
+        // following call crashes.
+        // evidently something else needs to be set up
+     //   instance.buildModel(det);
+
+    }
+}

java/trunk/tracking/src/test/java/org/hps/recon/tracking
TestRunTrackReconTest.java added at 380
--- java/trunk/tracking/src/test/java/org/hps/recon/tracking/TestRunTrackReconTest.java	                        (rev 0)
+++ java/trunk/tracking/src/test/java/org/hps/recon/tracking/TestRunTrackReconTest.java	2014-03-26 05:34:25 UTC (rev 380)
@@ -0,0 +1,225 @@
+package org.hps.recon.tracking;
+
+import hep.aida.IAnalysisFactory;
+import hep.aida.IHistogram1D;
+import hep.aida.ITree;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import junit.framework.TestCase;
+
+import org.hps.conditions.deprecated.CalibrationDriver;
+import org.hps.util.CompareHistograms;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.Track;
+import org.lcsim.event.TrackerHit;
+import org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+import org.lcsim.util.cache.FileCache;
+import org.lcsim.util.loop.LCIODriver;
+import org.lcsim.util.loop.LCSimLoop;
+import org.lcsim.util.test.TestUtil.TestOutputFile;
+
+/**
+ * Test class to check hit positions and hit multiplicity associated with tracks.
+ * @author phansson <[log in to unmask]>
+ * @version $id: $
+ */
+public class TestRunTrackReconTest extends TestCase {
+
+    static final String testURLBase = "http://www.slac.stanford.edu/~phansson/files/hps_java_test/HPSTestRunv3/hps-java-1.7-SNAPSHOT-050113";
+    static final String testFileName = "egs_5.5gev_0.016x0_500mb_recoil_recon_1_hpsTestRunTrackingTest.slcio";
+    static final String testURLBaseCmp = "http://www.slac.stanford.edu/~phansson/files/hps_java_test/HPSTestRunv3/hps-java-1.7-SNAPSHOT-050113";
+    static final String testFileNameCmp = "egs_5.5gev_0.016x0_500mb_recoil_recon_1_hpsTestRunTrackingTest.aida";
+    static final String trackCollection = "MatchedTracks";
+    static final boolean saveForReference = false;
+    static final boolean cmpHistograms = true;
+    private final int nEvents = 5000;
+
+    public void testTrackRecon() throws Exception {
+
+        File lcioInputFile = null;
+
+        URL testURL = new URL(testURLBase + "/" + testFileName);
+        FileCache cache = new FileCache();
+        lcioInputFile = cache.getCachedFile(testURL);
+
+        //Process and write out the file
+        LCSimLoop loop = new LCSimLoop();
+        loop.setLCIORecordSource(lcioInputFile);
+        loop.add(new MainTrackingDriver());
+        File outputFile = new TestOutputFile(testFileName.replaceAll(".slcio", "") + "_hpsTestRunTrackingTest.slcio");
+        outputFile.getParentFile().mkdirs(); //make sure the parent directory exists
+        loop.add(new LCIODriver(outputFile));
+        loop.loop(nEvents, null);
+        loop.dispose();
+
+        //Read LCIO back and test!
+        LCSimLoop readLoop = new LCSimLoop();
+        readLoop.add(new TrackReconTestDriver());
+        readLoop.setLCIORecordSource(outputFile);
+        readLoop.loop(nEvents, null);
+        readLoop.dispose();
+    }
+
+    /*
+     * static nested class that runs the drivers for standard HPS track recon
+     */
+    static class TrackReconTestDriver extends Driver {
+
+        private AIDA aida = AIDA.defaultInstance();
+        private IAnalysisFactory af = aida.analysisFactory();
+        private final IHistogram1D hntracks = aida.histogram1D("hntracks", 10, 0, 10);
+        private final IHistogram1D hnstereohits = aida.histogram1D("hnstereohits", 20, 0, 20);
+        private final IHistogram1D hhitpositionx = aida.histogram1D("hhitpositionx", 50, 0, 800);
+        private final IHistogram1D hhitpositiony = aida.histogram1D("hhitpositiony", 50, -100, 100);
+        private final IHistogram1D hhitpositionz = aida.histogram1D("hhitpositionz", 50, -100, 100);
+        private final List<String> histograms = Arrays.asList("hntracks", "hnstereohits", "hhitpositionx", "hhitpositiony", "hhitpositionz");
+        static final double alpha = 0.05; // Type-I error rate           
+        private int ntracks = 0;
+        private int nevents = 0;
+        //Test thresholds
+        private final double ftracks_thr = 0.1;
+
+        @Override
+        protected void process(EventHeader event) {
+            super.process(event);
+            List<Track> tracks = event.get(Track.class, trackCollection);
+            //System.out.printf("%s: found %d tracks\n",this.getName(),tracks.size());
+            hntracks.fill(tracks.size());
+            ntracks += tracks.size();
+            for (Track track : tracks) {
+                List<TrackerHit> hitsOnTrack = track.getTrackerHits();
+                hnstereohits.fill(hitsOnTrack.size());
+                for (TrackerHit hit : hitsOnTrack) {
+                    double pos[] = hit.getPosition();
+                    this.hhitpositionx.fill(pos[0]);
+                    this.hhitpositiony.fill(pos[1]);
+                    this.hhitpositionz.fill(pos[2]);
+                }
+            }
+
+            ++nevents;
+        }
+
+        @Override
+        protected void endOfData() {
+            super.endOfData();
+
+            if (saveForReference) {
+                File outputFile = new TestOutputFile(testFileName.replaceAll(".slcio", "") + "_hpsTestRunTrackingTest.aida");
+                try {
+                    aida.saveAs(outputFile);
+                } catch (IOException ex) {
+                    Logger.getLogger(TestRunTrackReconTest.class.getName()).log(Level.SEVERE, null, ex);
+                }
+            }
+
+            /*
+             * Basic tests
+             */
+            assertTrue("Failed to find any tracks", ntracks > 0);
+            double ftracks = ((double) ntracks) / (double) nevents;
+            assertTrue("Failed to reconstruct more than " + this.ftracks_thr + " of tracks/event (" + ftracks + ")", ftracks > this.ftracks_thr);
+            assertTrue("Failed to find any stereo hits", this.hnstereohits.mean() > 0.);
+
+
+
+//            IPlotter plotter = af.createPlotterFactory().create();
+//            plotter.createRegions(1, 3, 0);
+//            plotter.setTitle("Nr of tracks");
+//            plotter.style().statisticsBoxStyle().setVisible(false);
+//            plotter.region(0).plot(hntracks);
+//            plotter.show();
+
+            if (cmpHistograms) {
+
+                File aidaCmpInputFile = null;
+
+                URL cmpURL;
+                try {
+                    cmpURL = new URL(testURLBaseCmp + "/" + testFileNameCmp);
+                    FileCache cache = null;
+                    try {
+                        cache = new FileCache();
+                    } catch (IOException ex) {
+                        Logger.getLogger(TestRunTrackReconTest.class.getName()).log(Level.SEVERE, null, ex);
+                    }
+                    try {
+                        aidaCmpInputFile = cache.getCachedFile(cmpURL);
+                    } catch (IOException ex) {
+                        Logger.getLogger(TestRunTrackReconTest.class.getName()).log(Level.SEVERE, null, ex);
+                    }
+                    ITree tree_cmp = null;
+                    try {
+                        tree_cmp = af.createTreeFactory().create(aidaCmpInputFile.getAbsolutePath());
+                    } catch (IllegalArgumentException ex) {
+                        Logger.getLogger(TestRunTrackReconTest.class.getName()).log(Level.SEVERE, null, ex);
+                    } catch (IOException ex) {
+                        Logger.getLogger(TestRunTrackReconTest.class.getName()).log(Level.SEVERE, null, ex);
+                    }
+                    if (tree_cmp == null) {
+                        throw new RuntimeException("cannot create the ITree for the comparison file located at" + aidaCmpInputFile.getAbsolutePath());
+                    }
+                    for (String histname : histograms) {
+
+                        IHistogram1D h_ref = (IHistogram1D) tree_cmp.find(histname);
+                        IHistogram1D h_test = aida.histogram1D(histname);
+                        boolean nullHypoIsRejected = CompareHistograms.instance().getTTest(alpha, h_test.mean(), h_ref.mean(), h_test.rms() * h_test.rms(), h_ref.rms() * h_ref.rms(), h_test.allEntries(), h_ref.allEntries());
+                        double p_value = CompareHistograms.instance().getTTestPValue(h_test.mean(), h_ref.mean(), h_test.rms() * h_test.rms(), h_ref.rms() * h_ref.rms(), h_test.allEntries(), h_ref.allEntries());
+                        System.out.printf("%s: %s %s T-Test (%.1f%s C.L.) with p-value=%.3f\n", TestRunTrackReconTest.class.getName(), histname, (nullHypoIsRejected ? "FAILED" : "PASSED"), (1 - alpha) * 100, "%", p_value);
+                        assertTrue("Failed T-Test (" + (1 - alpha) * 100 + "% C.L. p-value=" + p_value + ") comparing histogram " + histname, !nullHypoIsRejected);
+                        double ks_p_value = CompareHistograms.getKolmogorovPValue(h_test, h_ref);
+                        boolean ksNullHypoIsRejected = (ks_p_value < alpha);
+                        System.out.printf("%s: %s %s Kolmogorov-Smirnov test (%.1f%s C.L.) with p-value=%.3f\n", TestRunTrackReconTest.class.getName(), histname, (ksNullHypoIsRejected ? "FAILED" : "PASSED"), (1 - alpha) * 100, "%", ks_p_value);
+                        assertTrue("Failed Kolmogorov-Smirnov test (" + (1 - alpha) * 100 + "% C.L. p-value=" + ks_p_value + ") comparing histogram " + histname, !ksNullHypoIsRejected);
+
+                        //TODO: use a real two-sample Poisson test
+//                        boolean entriesInconsistent = CompareHistograms.instance().getTTest(alpha, h_test.entries(), h_ref.entries(), h_test.entries(), h_ref.entries(), h_test.entries(), h_ref.entries()); 
+//                        double p_value_entries = CompareHistograms.instance().getTTestPValue(h_test.entries(), h_ref.entries(), h_test.entries(), h_ref.entries(), h_test.entries(), h_ref.entries());                      
+//                        System.out.printf("%s: %s entries are %s (N=%d Ref=%d for T-Test w/ %.1f%s C.L.)\n",TestRunTrackReconTest.class.getName(),histname,(entriesInconsistent?"INCONSISTENT":"CONSISTENT"),h_test.entries(),h_ref.entries(),(1-alpha)*100,"%");                      
+//                        assertTrue("Failed T-Test ("+ (1-alpha)*100 + "% C.L. p-value=" + p_value_entries + ") on number of entries comparing histogram " + histname,!entriesInconsistent);
+
+                    }
+
+
+                } catch (MalformedURLException ex) {
+                    Logger.getLogger(TestRunTrackReconTest.class.getName()).log(Level.SEVERE, null, ex);
+                }
+            }
+
+        }
+    }
+    
+    private class MainTrackingDriver extends Driver {
+        
+        public MainTrackingDriver() {
+
+            //Setup the sensors and calibrations
+            CalibrationDriver calibDriver = new CalibrationDriver();
+            //calibDriver.setRunNumber(1351); //not sure what should be done here!? -> FIX THIS!
+            add(calibDriver);
+            add(new RawTrackerHitSensorSetup());
+            HPSRawTrackerHitFitterDriver hitfitter = new HPSRawTrackerHitFitterDriver();
+            hitfitter.setFitAlgorithm("Analytic");
+            hitfitter.setCorrectT0Shift(true);
+            add(hitfitter);
+            add(new DataTrackerHitDriver());
+            HelicalTrackHitDriver hth_driver = new HelicalTrackHitDriver();
+            hth_driver.setMaxSeperation(20.0);
+            hth_driver.setTolerance(1.0);
+            add(hth_driver);
+            TrackerReconDriver track_recon_driver = new TrackerReconDriver();
+            add(track_recon_driver);
+        }
+
+    }
+}

java/trunk/tracking/src/test/java/org/hps/recon/tracking
TruthResidualTest.java added at 380
--- java/trunk/tracking/src/test/java/org/hps/recon/tracking/TruthResidualTest.java	                        (rev 0)
+++ java/trunk/tracking/src/test/java/org/hps/recon/tracking/TruthResidualTest.java	2014-03-26 05:34:25 UTC (rev 380)
@@ -0,0 +1,148 @@
+/**
+ * 
+ */
+package org.hps.recon.tracking;
+
+import hep.aida.IHistogram;
+import hep.aida.IHistogram1D;
+import hep.physics.vec.BasicHep3Vector;
+import hep.physics.vec.Hep3Vector;
+
+import java.io.File;
+import java.net.URL;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.hps.conditions.deprecated.CalibrationDriver;
+import org.hps.recon.tracking.gbl.TruthResiduals;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.MCParticle;
+import org.lcsim.event.SimTrackerHit;
+import org.lcsim.geometry.Detector;
+import org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup;
+import org.lcsim.util.Driver;
+import org.lcsim.util.cache.FileCache;
+import org.lcsim.util.loop.LCIODriver;
+import org.lcsim.util.loop.LCSimLoop;
+import org.lcsim.util.test.TestUtil.TestOutputFile;
+
+/**
+ * Test class to check truth particle and propagated position.
+ * @author phansson <[log in to unmask]>
+ * @version $id: $
+ */
+public class TruthResidualTest extends TestCase {
+
+	
+	
+	private static final String testFileName = "";
+	private static final String testURLBase = null;
+	private static final long nEvents = 1000;
+
+	public void testTruthResiduals() throws Exception{
+		 	File lcioInputFile = null;
+
+	        URL testURL = new URL(testURLBase + "/" + testFileName);
+	        FileCache cache = new FileCache();
+	        lcioInputFile = cache.getCachedFile(testURL);
+
+	        //Process and write out the file
+	        LCSimLoop loop = new LCSimLoop();
+	        loop.setLCIORecordSource(lcioInputFile);
+	        loop.add(new MainTrackingDriver());
+	        File outputFile = new TestOutputFile(testFileName.replaceAll(".slcio", "") + "_hpsTrackTruthResidualTrackingTest.slcio");
+	        outputFile.getParentFile().mkdirs(); //make sure the parent directory exists
+	        loop.add(new LCIODriver(outputFile));
+	        loop.loop(nEvents, null);
+	        loop.dispose();
+
+	        //Read LCIO back and test!
+	        LCSimLoop readLoop = new LCSimLoop();
+	        readLoop.add(new TestResiduals());
+	        readLoop.setLCIORecordSource(outputFile);
+	        readLoop.loop(nEvents, null);
+	        readLoop.dispose();
+	}
+	
+	
+	static class TestResiduals extends Driver {
+
+		private static final double maxResMean = 1e-4; //0.1um 
+		private static final double maxResRMS = 5e-4; //0.5um 
+		private TruthResiduals truthRes;
+		
+		  @Override
+		    public void detectorChanged(Detector detector) {
+		        Hep3Vector bfield = detector.getFieldMap().getField(new BasicHep3Vector(0., 0., 1.));
+		        truthRes = new TruthResiduals(bfield);
+		        truthRes.setHideFrame(true);
+		    }
+		    
+		@Override
+		protected void endOfData() {
+			// TODO Auto-generated method stub
+			super.endOfData();
+			
+			IHistogram hx = truthRes.getResidual(1, "x");
+			IHistogram hy = truthRes.getResidual(1, "y");
+			if (hx != null && hx.entries()>10) {
+				IHistogram1D hx1d = (IHistogram1D)hx;
+				assertTrue("Mean of layer 1 truth hit residual is not zero " + hx1d.mean(), Math.abs(hx1d.mean()) >maxResMean );
+				assertTrue("RMS of layer 1 truth hit residual is not zero" + hx1d.rms(), Math.abs(hx1d.rms()) >maxResRMS );
+			}
+			if (hy != null && hy.entries()>10) {
+				IHistogram1D hy1d = (IHistogram1D)hy;
+				assertTrue("Mean of layer 1 truth hit residual is not zero " + hy1d.mean(), Math.abs(hy1d.mean()) >maxResMean );
+				assertTrue("RMS of layer 1 truth hit residual is not zero " + hy1d.mean(), Math.abs(hy1d.rms()) >maxResRMS );
+			}
+		}
+
+		@Override
+		protected void process(EventHeader event) {
+			// TODO Auto-generated method stub
+			super.process(event);
+			
+			List<MCParticle> mcParticles = null;
+			if(event.hasCollection(MCParticle.class,"MCParticle")) {
+				mcParticles = event.get(MCParticle.class,"MCParticle");
+	        } 
+	            
+	        List<SimTrackerHit> simTrackerHits = event.getSimTrackerHits("TrackerHits");
+	        
+	        
+	        if(simTrackerHits != null && mcParticles != null) {
+				truthRes.processSim(mcParticles, simTrackerHits);
+	        }
+	        
+		}
+		
+	}
+	
+	private class MainTrackingDriver extends Driver {
+        
+        public MainTrackingDriver() {
+
+            //Setup the sensors and calibrations
+            CalibrationDriver calibDriver = new CalibrationDriver();
+            //calibDriver.setRunNumber(1351); //not sure what should be done here!? -> FIX THIS!
+            add(calibDriver);
+            add(new RawTrackerHitSensorSetup());
+            HPSRawTrackerHitFitterDriver hitfitter = new HPSRawTrackerHitFitterDriver();
+            hitfitter.setFitAlgorithm("Analytic");
+            hitfitter.setCorrectT0Shift(true);
+            add(hitfitter);
+            add(new DataTrackerHitDriver());
+            HelicalTrackHitDriver hth_driver = new HelicalTrackHitDriver();
+            hth_driver.setMaxSeperation(20.0);
+            hth_driver.setTolerance(1.0);
+            add(hth_driver);
+            TrackerReconDriver track_recon_driver = new TrackerReconDriver();
+            add(track_recon_driver);
+        }
+
+    }
+	
+	
+	
+}
SVNspam 0.1