11 added + 1 modified, total 12 files
java/trunk/tracking/src/main/java/org/hps/recon/tracking
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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