hps-java/src/main/java/org/lcsim/hps/recon/tracking
diff -N TestProposalTrackRecon.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ TestProposalTrackRecon.java 27 May 2011 20:43:54 -0000 1.1
@@ -0,0 +1,70 @@
+package org.lcsim.hps.recon.tracking;
+
+import java.util.List;
+
+import org.lcsim.HPSBase.HPSHelicalTrackHitDriver;
+import org.lcsim.HPSBase.HPSTrackerHitDriver;
+import org.lcsim.event.EventHeader;
+import org.lcsim.recon.tracking.seedtracker.SeedStrategy;
+import org.lcsim.recon.tracking.seedtracker.SeedTracker;
+import org.lcsim.recon.tracking.seedtracker.StrategyXMLUtils;
+import org.lcsim.util.Driver;
+
+/**
+ * Driver to perform hit digitization and track reconstruction for the HPS Test Proposal detector.
+ * Based on simplification of MultiTrackReco from Matt Graham.
+ *
+ * @author Jeremy McCormick <[log in to unmask]>
+ */
+public class TestProposalTrackRecon extends Driver
+{
+ public TestProposalTrackRecon(
+ double bField,
+ String strategyResource,
+ List<int[]> stereoPairs,
+ List<Integer> passLayers
+ )
+ {
+ // Make digi hits.
+ HPSTrackerHitDriver thd = new HPSTrackerHitDriver();
+ add(thd);
+
+ // Make axial hits.
+ HPSHelicalTrackHitDriver hitdriver = new HPSHelicalTrackHitDriver();
+ hitdriver.addCollection(((HPSTrackerHitDriver) thd).getStripHits1DName());
+ hitdriver.OutputCollection("AxialTrackHits");
+ hitdriver.HitRelationName("AxialTrackHitRelations");
+ hitdriver.MCRelationName("AxialTrackMCRelations");
+ add(hitdriver);
+
+ // Make helical hits which seedtracker expects.
+ HPSHelicalTrackHitDriver hthdriver = new HPSHelicalTrackHitDriver();
+ hthdriver.addCollection(((HPSTrackerHitDriver) thd).getStripHits1DName());
+ hthdriver.OutputCollection("HelicalTrackHits");
+ hthdriver.HitRelationName("HelicalTrackHitRelations");
+ hthdriver.MCRelationName("HelicalTrackMCRelations");
+ for (int[] pair : stereoPairs)
+ {
+ hthdriver.setStereoPair("Tracker", pair[0], pair[1]);
+ }
+ hthdriver.setMaxSeperation(10.01);
+ hthdriver.setTolerance(0.01);
+ add(hthdriver);
+
+ // Setup seedtracker.
+ List<SeedStrategy> sFinallist = StrategyXMLUtils.getStrategyListFromInputStream(
+ this.getClass().getResourceAsStream(strategyResource));
+ SeedTracker stFinal = new SeedTracker(sFinallist);
+ stFinal.setInputCollectionName("HelicalTrackHits");
+ stFinal.setTrkCollectionName("MatchedTracks");
+ stFinal.setBField(bField);
+ stFinal.setSectorParams(false);
+ stFinal.setTimingPlots(true);
+ add(stFinal);
+ }
+
+ public void process(EventHeader event)
+ {
+ super.process(event);
+ }
+}
\ No newline at end of file
hps-java/src/main/java/org/lcsim/hps/recon/tracking
diff -N TestProposalTrackReconSteeringDriver.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ TestProposalTrackReconSteeringDriver.java 27 May 2011 20:43:54 -0000 1.1
@@ -0,0 +1,65 @@
+package org.lcsim.hps.recon.tracking;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.lcsim.HPSBase.MakeSensorsDriver;
+import org.lcsim.event.EventHeader;
+import org.lcsim.util.Driver;
+
+/**
+ * Driver for track reconstruction and analysis of HPS Test Propsal detector.
+ * Based on simplification of HeavyPhotonLLDriver from Matt Graham.
+ *
+ * @author Jeremy McCormick <[log in to unmask]>
+ */
+public final class TestProposalTrackReconSteeringDriver extends Driver
+{
+ // Tracking params.
+ List<int[]> pairs = new ArrayList();
+ List<Integer> passLayers = new ArrayList();
+
+ // FIXME: This should come from Detector.
+ double bfield = 0.5;
+
+ // Strategy file for tracking.
+ String strategyResource = "/HPS-Test-1pt3.xml";
+
+ public TestProposalTrackReconSteeringDriver()
+ {
+ int[] p1 = {1, 2};
+ int[] p2 = {3, 4};
+ int[] p3 = {5, 6};
+ int[] p4 = {7, 8};
+ int[] p5 = {9, 10};
+
+ pairs.add(p1);
+ pairs.add(p2);
+ pairs.add(p3);
+ pairs.add(p4);
+ pairs.add(p5);
+
+
+ // Add Driver to setup sensors.
+ add(new MakeSensorsDriver());
+
+ System.out.println(this.getClass().getCanonicalName() + " ...");
+ System.out.println(" bfield="+bfield);
+ System.out.println(" strategyResource="+strategyResource);
+ System.out.println(" npairs="+pairs.size());
+ System.out.println(" npassLayers="+passLayers.size());
+
+ // Add track recon Driver.
+ TestProposalTrackRecon trd = new TestProposalTrackRecon(
+ bfield,
+ strategyResource,
+ pairs,
+ passLayers);
+ add(trd);
+ }
+
+ public void process(EventHeader event)
+ {
+ super.process(event);
+ }
+}
\ No newline at end of file