Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/SteveMagill on MAIN
MCFSTrackDriver.java+64added 1.1


lcsim-contrib/src/main/java/org/lcsim/contrib/SteveMagill
MCFSTrackDriver.java added at 1.1
diff -N MCFSTrackDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ MCFSTrackDriver.java	12 Aug 2009 20:34:36 -0000	1.1
@@ -0,0 +1,64 @@
+package org.lcsim.contrib.SteveMagill;
+
+import java.util.*;
+import org.lcsim.event.EventHeader;
+import org.lcsim.util.Driver;
+import org.lcsim.event.MCParticle;
+import hep.physics.vec.Hep3Vector;
+import org.lcsim.event.Track;
+import org.lcsim.event.base.*;
+import org.lcsim.event.ReconstructedParticle;
+import org.lcsim.spacegeom.*;
+
+/**
+ *  Defines tracks from MC final states
+ */
+
+public class MCFSTrackDriver extends Driver
+{
+
+    private String _tracknames;
+    private String _fsnames;
+//    private String outputListName = ("MCTestTracks");
+
+  public MCFSTrackDriver()
+  {
+
+  }
+  
+  public void process(EventHeader event) 
+  {
+      //  Start from the MCParticle list and check for charge status
+      List<MCParticle> mcps = event.get(MCParticle.class,_fsnames);
+      List<PerfectTrack> perftrks = new ArrayList<PerfectTrack>();
+      Map<MCParticle,PerfectTrack> result = new HashMap<MCParticle,PerfectTrack>();
+      Map<PerfectTrack,SpacePoint> TrepSP = new HashMap<PerfectTrack,SpacePoint>();
+      for (MCParticle mcp : mcps)
+      {
+          int pch = (int) mcp.getCharge();
+//          System.out.println("Particle charge = " + pch);
+          if (pch != 0)
+          {
+              PerfectTrack perftrk = result.get(mcp);
+              if (perftrk == null) result.put(mcp, perftrk = new PerfectTrack(mcp));
+              perftrks.add(perftrk);
+              Hep3Vector trendp = mcp.getEndPoint();
+              SpacePoint endpsp = new SpacePoint(trendp);
+              TrepSP.put(perftrk, endpsp);
+          }
+      }
+      event.put(_tracknames,perftrks);
+      event.put("MCPTrMap",result);
+      event.put("TrackEndPointSP",TrepSP);
+//      event.put(outputListName, perftrks, Track.class, 0);
+  }
+
+    public void setMCFSNames(String fsnames)
+  {
+      _fsnames = fsnames;
+  }
+  public void setTrackNames(String tnames)
+  {
+      _tracknames = tnames;
+  }
+}
CVSspam 0.2.8