lcsim/src/org/lcsim/fit/helicaltrack
diff -u -r1.23 -r1.24
--- HelicalTrackHitDriver.java 2 Oct 2008 17:13:38 -0000 1.23
+++ HelicalTrackHitDriver.java 3 Oct 2008 18:26:51 -0000 1.24
@@ -230,8 +230,10 @@
for (String colname : _digcol) {
- List<SiTrackerHit> hitlist = (List<SiTrackerHit>) event.get(colname);
+ List<SiTrackerHit> hitlist = (List<SiTrackerHit>) event.get(colname);
List<HelicalTrackStrip> strips = new ArrayList<HelicalTrackStrip>();
+
+ Map<HelicalTrackStrip, SiTrackerHitStrip1D> stripmap = new HashMap<HelicalTrackStrip, SiTrackerHitStrip1D>();
for (SiTrackerHit hit : hitlist) {
if (hit instanceof SiTrackerHitStrip1D) {
@@ -239,18 +241,38 @@
SiTrackerHitStrip1D h = (SiTrackerHitStrip1D) hit;
SiTrackerModule m = (SiTrackerModule) hit.getSensor().getParent();
- if (m.getChildren().size()==2) //stereo hit
- strips.add(makeDigiStrip(h));
- else helhits.add(makeDigiAxialHit(h)); //isolated hit
+ if (m.getChildren().size()==2) {//stereo hit
+ HelicalTrackStrip strip = makeDigiStrip(h);
+ strips.add(strip);
+ stripmap.put(strip,h);
+ }
+ else {
+ HelicalTrackHit dah = makeDigiAxialHit(h);
+ helhits.add(dah); //isolated hit
+ hitrelations.add(new MyLCRelation(dah,hit));
+ }
}
//for other types, make 3d hits
- else helhits.add(makeDigi3DHit(hit));
+ else {
+ HelicalTrackHit hit3d = makeDigi3DHit(hit);
+ helhits.add(hit3d);
+ hitrelations.add(new MyLCRelation(hit3d, hit));
+ }
}
//generate Stereo hits
List<HelicalTrackCross> stereohits = _crosser.MakeHits(strips);
+
helhits.addAll(stereohits);
+
+ //add LCRelation for strip hits
+ for (HelicalTrackCross cross : stereohits) {
+ for (HelicalTrackStrip strip : cross.getStrips()) {
+ hitrelations.add(new MyLCRelation(cross,stripmap.get(strip)));
+ }
+ }
+
}
// Put the HelicalTrackHits back into the event