Print

Print


Commit in lcsim/src/org/lcsim/recon/tracking/cheat on MAIN
CheatTrackDriver.java+7-31.3 -> 1.4
CheatTracker.java+14-41.1 -> 1.2
+21-7
2 modified files
Add track parameters to the cheated tracks

lcsim/src/org/lcsim/recon/tracking/cheat
CheatTrackDriver.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- CheatTrackDriver.java	13 Sep 2007 14:48:25 -0000	1.3
+++ CheatTrackDriver.java	16 Oct 2007 18:17:48 -0000	1.4
@@ -18,6 +18,8 @@
 import org.lcsim.event.MCParticle;
 import org.lcsim.event.base.*;
 import org.lcsim.event.SimTrackerHit;
+import hep.physics.vec.BasicHep3Vector;
+import hep.physics.vec.Hep3Vector;
 
 /**
  *
@@ -27,6 +29,7 @@
 {
     private final CheatTracker _tracker = new CheatTracker();
     String outname;
+    private static final Hep3Vector origin = new BasicHep3Vector();
     
     /** Creates a new instance of CheatTrackDriver */
     public CheatTrackDriver()
@@ -44,20 +47,21 @@
 
     protected void process(EventHeader event)
     {
+        double bField = event.getDetector().getFieldMap().getField(origin).z();
         List<List<SimTrackerHit>> collections = event.get(SimTrackerHit.class);
         for (List<SimTrackerHit> collection : collections)
         {
-            List<BaseTrackerHitMC> result = _tracker.createTrackerHits(collection);
+           List<BaseTrackerHitMC> result = _tracker.createTrackerHits(collection);
             
             String name = event.getMetaData(collection).getName();
             event.put(name+"CheatTrackerHits", result, BaseTrackerHitMC.class, 0);
-            Map<MCParticle,BaseTrackMC> result2 = _tracker.createTracks(result);
+            Map<MCParticle,BaseTrackMC> result2 = _tracker.createTracks(bField,result);
             int flag = (1<<LCIOConstants.TRBIT_HITS);
             event.put(name+"CheatTracks", new ArrayList(result2.values()), BaseTrackMC.class, flag);
         }
 
         List<List<BaseTrackMC>> tracks = event.get(BaseTrackMC.class);
-        Map<MCParticle, BaseTrackMC> refined = _tracker.findRefinedTracks(tracks);
+        Map<MCParticle, BaseTrackMC> refined = _tracker.findRefinedTracks(bField,tracks);
         int flag = 1<<LCIOConstants.TRBIT_HITS;
         event.put(outname, new ArrayList(refined.values()), BaseTrackMC.class, flag );
     }

lcsim/src/org/lcsim/recon/tracking/cheat
CheatTracker.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- CheatTracker.java	15 Feb 2007 18:29:51 -0000	1.1
+++ CheatTracker.java	16 Oct 2007 18:17:48 -0000	1.2
@@ -16,6 +16,7 @@
 import java.util.List;
 import java.util.ArrayList;
 import java.util.Map;
+import org.lcsim.mc.fast.tracking.DocaTrackParameters;
 
 /**
  *
@@ -29,14 +30,19 @@
     public CheatTracker()
     {
     }
-    public Map<MCParticle,BaseTrackMC> createTracks(List<BaseTrackerHitMC> l)
+    public Map<MCParticle,BaseTrackMC> createTracks(double B,List<BaseTrackerHitMC> l)
     {
         Map<MCParticle,BaseTrackMC> map = new HashMap<MCParticle,BaseTrackMC>();
         for(BaseTrackerHitMC h:l)
         {
             MCParticle p = h.mcParticles().get(0);
             BaseTrackMC cl = map.get(p);
-            if(cl == null)map.put(p,cl = new BaseTrackMC(p));
+            if(cl == null)
+            {
+                map.put(p,cl = new BaseTrackMC(p));
+                DocaTrackParameters dtp = new DocaTrackParameters(p, B);
+                cl.setTrackParameters(dtp.getTrackParameters(), B);
+            }
             cl.addHit(h);
         }
         return map;
@@ -51,7 +57,7 @@
         }
         return out;
     }
-    public Map<MCParticle, BaseTrackMC> findRefinedTracks(List<List<BaseTrackMC>> collections)
+    public Map<MCParticle, BaseTrackMC> findRefinedTracks(double B,List<List<BaseTrackMC>> collections)
     {
         Map<MCParticle, BaseTrackMC> result = new HashMap<MCParticle,BaseTrackMC>();
         for (List<BaseTrackMC> clusters : collections)
@@ -60,7 +66,11 @@
             {
                 MCParticle p = cluster.getMCParticle();
                 BaseTrackMC rc = result.get(p);
-                if (rc == null) result.put(p,rc = new BaseTrackMC(p));
+                if (rc == null)
+                {
+                    result.put(p,rc = new BaseTrackMC(p));
+                    rc.setTrackParameters(cluster.getTrackParameters(), B);
+                }
                 rc.addHits(cluster.getTrackerHits());
             }
         }
CVSspam 0.2.8