Print

Print


Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/Cassell/recon on MAIN
TrackMCParticleMatcher.java+57added 1.1
TrackMCParticleDriver.java+41added 1.1
+98
2 added files
Match Reconstructed Tracks to MCParticles

lcsim-contrib/src/main/java/org/lcsim/contrib/Cassell/recon
TrackMCParticleMatcher.java added at 1.1
diff -N TrackMCParticleMatcher.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ TrackMCParticleMatcher.java	4 Oct 2010 13:30:22 -0000	1.1
@@ -0,0 +1,57 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.lcsim.contrib.Cassell.recon;
+import org.lcsim.recon.pfa.identifier.*;
+import org.lcsim.event.LCRelation;
+import org.lcsim.event.MCParticle;
+import org.lcsim.event.Track;
+import org.lcsim.event.TrackerHit;
+import java.util.*;
+
+/**
+ *
+ * @author cassell
+ */
+public class TrackMCParticleMatcher
+{
+    List<LCRelation> lcrl;
+    public TrackMCParticleMatcher(List<LCRelation> rl)
+    {
+        lcrl = rl;
+    }
+    public MCParticle getMCParticle(Track t)
+    {
+        Map<MCParticle,Integer> counter = new HashMap<MCParticle,Integer>();
+        for(TrackerHit h:t.getTrackerHits())
+        {
+            for(LCRelation r:lcrl)
+            {
+                if((TrackerHit)(r.getFrom()) == h)
+                {
+                    MCParticle p = (MCParticle)(r.getTo());
+                    if(counter.containsKey(p))
+                    {
+                        int ic = counter.get(p) + 1;
+                        counter.remove(p);
+                        counter.put(p,ic);
+                    }
+                    else counter.put(p,1);
+                }
+            }
+        }
+        MCParticle maxmc = null;
+        int maxcnt = 0;
+        for(MCParticle p:counter.keySet())
+        {
+            if(counter.get(p) > maxcnt)
+            {
+                maxcnt = counter.get(p);
+                maxmc = p;
+            }
+        }
+        return maxmc;
+    }
+}

lcsim-contrib/src/main/java/org/lcsim/contrib/Cassell/recon
TrackMCParticleDriver.java added at 1.1
diff -N TrackMCParticleDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ TrackMCParticleDriver.java	4 Oct 2010 13:30:22 -0000	1.1
@@ -0,0 +1,41 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.lcsim.contrib.Cassell.recon;
+import org.lcsim.recon.pfa.identifier.*;
+import org.lcsim.event.LCRelation;
+import org.lcsim.util.Driver;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.Track;
+import org.lcsim.event.MCParticle;
+import java.util.*;
+
+/**
+ *
+ * @author cassell
+ */
+public class TrackMCParticleDriver extends Driver
+{
+    Map<Track,MCParticle> tmcmap;
+    public TrackMCParticleDriver()
+    {
+
+    }
+    protected void process(EventHeader event)
+    {
+        List<Track> tl = event.get(Track.class,"Tracks");
+        List<LCRelation> rl = event.get(LCRelation.class,"HelicalTrackMCRelations");
+        TrackMCParticleMatcher m = new TrackMCParticleMatcher(rl);
+        tmcmap = new HashMap<Track,MCParticle>();
+        for(Track t:tl)
+        {
+            tmcmap.put(t, m.getMCParticle(t));
+        }
+    }
+    public MCParticle getMCParticle(Track t)
+    {
+        return tmcmap.get(t);
+    }
+}
CVSspam 0.2.8