Commit in lcsim/src/org/lcsim/contrib/Cassell/recon/Cheat on MAIN
TraceOrigin.java+38added 1.1
Class to trace the origin of a MCParticle to a list of Final State Particles

lcsim/src/org/lcsim/contrib/Cassell/recon/Cheat
TraceOrigin.java added at 1.1
diff -N TraceOrigin.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ TraceOrigin.java	13 Sep 2007 14:33:43 -0000	1.1
@@ -0,0 +1,38 @@
+package org.lcsim.contrib.Cassell.recon.Cheat;
+import java.util.*;
+import org.lcsim.event.MCParticle;
+
+/**
+ * Trace the origin of a MCParticle to a Final state MCParticle
+ * 
+ *    Ron Cassell
+ */
+public class TraceOrigin
+{
+    List<MCParticle> fs;
+    public TraceOrigin(List<MCParticle> fsp)
+    {
+       fs = fsp;
+    }
+    public MCParticle traceit(MCParticle p)
+    {
+       MCParticle rp = null;
+//
+// If the particle is in the final state list, we're done
+//
+       if(fs.contains(p))return p;
+//
+// If not, check its parent. No need to go farther than single parent case
+//
+       MCParticle pp = p;
+       while( pp.getParents().size() == 1)
+       {
+          pp = pp.getParents().get(0);
+          if(fs.contains(pp))return pp;
+       }
+//
+// Didn't find one, return null
+//
+       return rp;
+    }
+}
CVSspam 0.2.8