Print

Print


Commit in lcsim/src/org/lcsim/fit/helicaltrack on MAIN
HelicalTrackHitDriver.java+33-191.24 -> 1.25
Add LC Relations between HelicalTrackHits and MCParticles

lcsim/src/org/lcsim/fit/helicaltrack
HelicalTrackHitDriver.java 1.24 -> 1.25
diff -u -r1.24 -r1.25
--- HelicalTrackHitDriver.java	3 Oct 2008 18:26:51 -0000	1.24
+++ HelicalTrackHitDriver.java	14 Oct 2008 23:11:48 -0000	1.25
@@ -88,7 +88,8 @@
     private List<String> _bscol = new ArrayList<String>();
     private List<String> _digcol = new ArrayList<String>();
     private String _outname = "HelicalTrackHits";
-    private String _relname = "HelicalTrackHitRelations";
+    private String _hitrelname = "HelicalTrackHitRelations";
+    private String _mcrelname = "HelicalTrackMCRelations";
     private Hep3Vector _uloc = new BasicHep3Vector(1., 0., 0.);
     private Hep3Vector _vloc = new BasicHep3Vector(0., 1., 0.);
     private Hep3Vector _zhat = new BasicHep3Vector(0., 0., 1.);
@@ -178,7 +179,7 @@
             if (_segman == null) _segman = (SegmentationManager) event.get("SegmentationManager");
             
             //  Make a mapping between the stereo strips and corresponding hits
-            Map<HelicalTrackStrip, org.lcsim.contrib.onoprien.tracking.hit.TrackerHit> stripmap = 
+            Map<HelicalTrackStrip, org.lcsim.contrib.onoprien.tracking.hit.TrackerHit> stripmap =
                     new HashMap<HelicalTrackStrip, org.lcsim.contrib.onoprien.tracking.hit.TrackerHit>();
             
             //  Get the hit map that gives the list of hits on a particular sensor
@@ -226,14 +227,14 @@
                 }
                 helhits.add(hit);
             }
-        }       
+        }
         
         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>(); 
+            Map<HelicalTrackStrip, SiTrackerHitStrip1D> stripmap = new HashMap<HelicalTrackStrip, SiTrackerHitStrip1D>();
             for (SiTrackerHit hit : hitlist) {
                 
                 if (hit instanceof SiTrackerHitStrip1D) {
@@ -241,43 +242,51 @@
                     SiTrackerHitStrip1D h = (SiTrackerHitStrip1D) hit;
                     SiTrackerModule m = (SiTrackerModule) hit.getSensor().getParent();
                     
-                    if (m.getChildren().size()==2) {//stereo hit 
-                        HelicalTrackStrip strip = makeDigiStrip(h); 
+                    if (m.getChildren().size()==2) {//stereo hit
+                        HelicalTrackStrip strip = makeDigiStrip(h);
                         strips.add(strip);
-                        stripmap.put(strip,h); 
-                    }
-                    else {
-                        HelicalTrackHit dah = makeDigiAxialHit(h); 
+                        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 {
-                    HelicalTrackHit hit3d = makeDigi3DHit(hit); 
+                    HelicalTrackHit hit3d = makeDigi3DHit(hit);
                     helhits.add(hit3d);
-                    hitrelations.add(new MyLCRelation(hit3d, hit)); 
+                    hitrelations.add(new MyLCRelation(hit3d, hit));
                 }
             }
             
             //generate Stereo hits
             List<HelicalTrackCross> stereohits = _crosser.MakeHits(strips);
             
-
+            
             helhits.addAll(stereohits);
             
-            //add LCRelation for strip hits 
+            //add LCRelation for strip hits
             for (HelicalTrackCross cross : stereohits) {
                 for (HelicalTrackStrip strip : cross.getStrips()) {
-                    hitrelations.add(new MyLCRelation(cross,stripmap.get(strip))); 
+                    hitrelations.add(new MyLCRelation(cross,stripmap.get(strip)));
                 }
             }
             
         }
         
+        //  Create the LCRelations between HelicalTrackHits and MC particles
+        List<LCRelation> mcrelations = new ArrayList<LCRelation>();
+        for (HelicalTrackHit hit : helhits) {
+            for (MCParticle mcp : hit.getMCParticles()) {
+                mcrelations.add(new MyLCRelation(hit, mcp));
+            }
+        }
+        
         //  Put the HelicalTrackHits back into the event
         event.put(_outname, helhits, HelicalTrackHit.class, 0);
-        event.put(_relname, hitrelations, LCRelation.class, 0);
+        event.put(_hitrelname, hitrelations, LCRelation.class, 0);
+        event.put(_mcrelname, mcrelations, LCRelation.class, 0);
         return;
     }
     
@@ -305,8 +314,13 @@
         return;
     }
     
-    public void RelationCollection(String relname) {
-        _relname = relname;
+    public void HitRelationName(String hitrelname) {
+        _hitrelname = hitrelname;
+        return;
+    }
+    
+    public void MCRelationName(String mcrelname) {
+        _mcrelname = mcrelname;
         return;
     }
     
CVSspam 0.2.8