diff --git a/tracking/src/main/java/org/hps/recon/tracking/HelicalTrackHitDriver.java b/tracking/src/main/java/org/hps/recon/tracking/HelicalTrackHitDriver.java index ffc9d5c822..888385af30 100644 --- a/tracking/src/main/java/org/hps/recon/tracking/HelicalTrackHitDriver.java +++ b/tracking/src/main/java/org/hps/recon/tracking/HelicalTrackHitDriver.java @@ -89,7 +89,7 @@ public class HelicalTrackHitDriver extends org.lcsim.fit.helicaltrack.HelicalTra private boolean allowHoleSlotCombo = false; /** - * Default Ctor + * Default Constructor */ public HelicalTrackHitDriver() { _crosser.setMaxSeparation(20.0); @@ -272,6 +272,7 @@ public void process(EventHeader event) { System.out.printf("%s: found %d SiTrackerHits\n", this.getClass().getSimpleName(), hitlist.size()); } Map stripmap = new LinkedHashMap(); + Map oldstripmap = new LinkedHashMap<>(); for (SiTrackerHit hit : hitlist) { //if (hit instanceof SiTrackerHitStrip1D) { // Cast the hit as a 1D strip hit and find the @@ -301,6 +302,7 @@ public void process(EventHeader event) { // Map a reference back to the hit needed to create // the stereo hit LC relations stripmap.put(strip, h); + oldstripmap.put(strip,(TrackerHit)hit); if (_debug) { System.out.printf("%s: added strip org %s layer %d\n", this.getClass().getSimpleName(), strip.origin().toString(), strip.layer()); } @@ -358,7 +360,7 @@ public void process(EventHeader event) { } } for (HelicalTrackStrip strip : cross.getStrips()) { - hitrelations.add(new MyLCRelation(cross, stripmap.get(strip))); + hitrelations.add(new MyLCRelation(cross, oldstripmap.get(strip))); } if (_debug) { System.out.printf("%s: cross at %.2f,%.2f,%.2f \n", this.getClass().getSimpleName(), cross.getPosition()[0], cross.getPosition()[1], cross.getPosition()[2]); diff --git a/tracking/src/test/java/org/hps/recon/tracking/HelicalTrackHitDriverTest.java b/tracking/src/test/java/org/hps/recon/tracking/HelicalTrackHitDriverTest.java new file mode 100644 index 0000000000..ddb7b01134 --- /dev/null +++ b/tracking/src/test/java/org/hps/recon/tracking/HelicalTrackHitDriverTest.java @@ -0,0 +1,67 @@ +package org.hps.recon.tracking; + +import java.io.File; +import java.net.URL; +import junit.framework.TestCase; +import org.hps.conditions.database.DatabaseConditionsManager; +import org.hps.detector.svt.SvtDetectorSetup; +import org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup; +import org.lcsim.util.cache.FileCache; +import org.lcsim.util.loop.LCIODriver; +import org.lcsim.util.loop.LCSimLoop; + +/** + * + * @author ngraf + */ +public class HelicalTrackHitDriverTest extends TestCase { + + static final String testFileName = "hps_010022.evio.00000-0-10.slcio"; + + public void testIt() throws Exception { + + URL testURL = new URL("http://www.lcsim.org/test/hps-java/hps_010022.evio.00000-0-10.slcio"); + FileCache cache = new FileCache(); + File lcioInputFile = cache.getCachedFile(testURL); + + final DatabaseConditionsManager manager = DatabaseConditionsManager.getInstance(); + manager.addConditionsListener(new SvtDetectorSetup()); + + //File lcioInputFile = TestUtil.downloadTestFile("hps_010022.evio.00000-0-10.slcio"); + LCSimLoop loop = new LCSimLoop(); + loop.setLCIORecordSource(lcioInputFile); + + RawTrackerHitSensorSetup d1 = new RawTrackerHitSensorSetup(); + d1.setReadoutCollections(new String[]{"SVTRawTrackerHits"}); + + RawTrackerHitFitterDriver d2 = new RawTrackerHitFitterDriver(); + d2.setFitAlgorithm("Pileup"); + d2.setUseTimestamps(false); + d2.setCorrectTimeOffset(true); + d2.setCorrectT0Shift(false); + d2.setUseTruthTime(false); + d2.setSubtractTOF(true); + d2.setSubtractTriggerTime(true); + d2.setCorrectChanT0(false); + d2.setDebug(false); + + DataTrackerHitDriver d3 = new DataTrackerHitDriver(); + d3.setNeighborDeltaT(8.0); + d3.setDebug(false); + + HelicalTrackHitDriver d4 = new HelicalTrackHitDriver(); + d4.setClusterTimeCut(40.0); + d4.setClusterAmplitudeCut(400.0); + d4.setMaxDt(20.0); + d4.setSaveAxialHits(false); + d4.setDebug(true); + + loop.add(d1); + loop.add(d2); + loop.add(d3); + loop.add(d4); + loop.add(new LCIODriver("test.slcio")); + loop.loop(1); + loop.dispose(); + } +}