Print

Print


Commit in lcsim/src/org/lcsim/recon/tracking/cheat on MAIN
CheatTrackDriver.java+14-241.5 -> 1.6
CheatTracker.java+5-361.3 -> 1.4
+19-60
2 modified files
Restructure to avoid MCFast infinite loop

lcsim/src/org/lcsim/recon/tracking/cheat
CheatTrackDriver.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- CheatTrackDriver.java	20 Nov 2007 16:34:05 -0000	1.5
+++ CheatTrackDriver.java	26 Nov 2007 19:40:04 -0000	1.6
@@ -29,53 +29,40 @@
 public class CheatTrackDriver extends Driver
 {
     private final CheatTracker _tracker = new CheatTracker();
-    String outname;
+    String outname = "RefinedCheatTracks";
+    String outpname = "RefinedCheatParticles";
     private static final Hep3Vector origin = new BasicHep3Vector();
-    private String MCFastTracks = null;
-    private boolean smeared = false;
     
     /** Creates a new instance of CheatTrackDriver */
     public CheatTrackDriver()
     {
-        outname = "RefinedCheatTracks";
     }
     public CheatTrackDriver(String name)
     {
         outname = name;
     }
-    public CheatTrackDriver(String name, String mcfast)
+    public CheatTrackDriver(String name,String pname)
     {
         outname = name;
-        MCFastTracks = mcfast;
-        smeared = true;
+        outpname = pname;
     }
     public void setOutputName(String name)
     {
         outname = name;
     }
-    public void setMCFastName(String name)
+    public void setOutputPName(String name)
     {
-        MCFastTracks = name;
-        smeared = true;
+        outpname = name;
     }
-
+    
     protected void process(EventHeader event)
     {
         double bField = event.getDetector().getFieldMap().getField(origin).z();
-        List<Track> smearedlist = null;
-        if(smeared)
-        {
-            List<List<Track>> lists = event.get(Track.class);
-            for(List<Track> slist:lists)
-            {
-                if(event.getMetaData(slist).getName().compareTo(MCFastTracks) == 0)smearedlist = slist;
-            }
-        }
         List<List<SimTrackerHit>> collections = event.get(SimTrackerHit.class);
         List<List<BaseTrackMC>> tracks = new ArrayList<List<BaseTrackMC>>();
         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);
@@ -86,12 +73,15 @@
             event.put(name+"CheatTracks", ol, BaseTrackMC.class, flag);
             event.getMetaData(ol).setTransient(true);
         }
-
-        Map<MCParticle, BaseTrackMC> refined = _tracker.findRefinedTracks(bField,tracks, smearedlist);
+        
+        Map<MCParticle, BaseTrackMC> refined = _tracker.findRefinedTracks(bField,tracks);
         int flag = 1<<LCIOConstants.TRBIT_HITS;
         event.put(outname, new ArrayList(refined.values()), BaseTrackMC.class, flag );
+        List<MCParticle> plist = new ArrayList(refined.keySet());
+        event.put(outpname,plist,MCParticle.class,0);
+        event.getMetaData(plist).setSubset(true);
     }
-
+    
     public String toString()
     {
         return "CheatTrackDriver";

lcsim/src/org/lcsim/recon/tracking/cheat
CheatTracker.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- CheatTracker.java	20 Nov 2007 16:34:05 -0000	1.3
+++ CheatTracker.java	26 Nov 2007 19:40:04 -0000	1.4
@@ -26,7 +26,7 @@
  */
 public class CheatTracker
 {
-
+    
     double[] cov = new double[6];
     /** Creates a new instance of CheatTracker */
     public CheatTracker()
@@ -59,18 +59,8 @@
         }
         return out;
     }
-    public Map<MCParticle, BaseTrackMC> findRefinedTracks(double B,List<List<BaseTrackMC>> collections, List<Track> smeared)
+    public Map<MCParticle, BaseTrackMC> findRefinedTracks(double B,List<List<BaseTrackMC>> collections)
     {
-        Map<MCParticle,ReconTrack> smearmap = new HashMap<MCParticle,ReconTrack>();
-        if(smeared != null)
-        {
-            for(Track t:smeared)
-            {
-                ReconTrack rt = (ReconTrack) t;
-                MCParticle tp = (MCParticle) rt.getMCParticle();
-                smearmap.put(tp,rt);
-            }
-        }
         Map<MCParticle, BaseTrackMC> result = new HashMap<MCParticle,BaseTrackMC>();
         for (List<BaseTrackMC> clusters : collections)
         {
@@ -80,31 +70,10 @@
                 BaseTrackMC rc = result.get(p);
                 if (rc == null)
                 {
-                    if(smeared == null)
-                    {
-                        result.put(p,rc = new BaseTrackMC(p));
-                        rc.setTrackParameters(cluster.getTrackParameters(), B);
-                    }
-                    else
-                    {
-                        if(smearmap.containsKey(p))
-                        {
-                            result.put(p,rc = new BaseTrackMC(p));
-                            ReconTrack smt = smearmap.get(p);
-//                            double[] zzz = {0.,0.,0.};
-//                            double[] ref = {p.getOriginX(),p.getOriginY(),p.getOriginZ()};
-//                            rc.setReferencePoint(smt.getDocaPosition(ref));
-                            rc.setCovarianceMatrix(smt.getErrorMatrix());
-                            rc.setTrackParameters(smt.getTrackParameters(), B);
-                            rc.setChisq(smt.getChi2());
-                            rc.setNDF(smt.getNDF());
-                            rc.setFitSuccess(true);
-                            rc.setRefPointIsDCA(true);
-                            rc.setTrackType(smt.getType());
-                        }
-                    }
+                    result.put(p,rc = new BaseTrackMC(p));
+                    rc.setTrackParameters(cluster.getTrackParameters(), B);
                 }
-                if(rc != null)rc.addHits(cluster.getTrackerHits());
+                rc.addHits(cluster.getTrackerHits());
             }
         }
         return result;
CVSspam 0.2.8