Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/Cassell/recon/Cheat on MAIN
MakePerfectReconParticles.java+53added 1.1
Make a list of ReconstructedParticles from a list of final state particles.

lcsim-contrib/src/main/java/org/lcsim/contrib/Cassell/recon/Cheat
MakePerfectReconParticles.java added at 1.1
diff -N MakePerfectReconParticles.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ MakePerfectReconParticles.java	30 May 2011 19:32:30 -0000	1.1
@@ -0,0 +1,53 @@
+package org.lcsim.contrib.Cassell.recon.Cheat;
+import java.util.*;
+import org.lcsim.event.util.*;
+import org.lcsim.util.Driver;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.MCParticle;
+import org.lcsim.event.ReconstructedParticle;
+import org.lcsim.event.base.BaseReconstructedParticle;
+import org.lcsim.event.base.BaseParticleID;
+import hep.physics.vec.*;
+import hep.physics.particle.properties.ParticlePropertyManager;
+import hep.physics.particle.properties.ParticlePropertyProvider;
+public class MakePerfectReconParticles extends Driver
+{
+    String inname;
+    String outname;
+    double ctcut = 1.;
+    final ParticlePropertyProvider dPPP;
+    public MakePerfectReconParticles(String in, String out)
+    {
+       inname = in;
+       outname = out;
+       dPPP = ParticlePropertyManager.getParticlePropertyProvider();
+    }
+    public void setCosThetaCut(double x){ctcut = x;}
+    protected void process(EventHeader event)
+    {
+       List<MCParticle> inlist = event.get(MCParticle.class,inname);
+       List<ReconstructedParticle> outlist = new ArrayList<ReconstructedParticle>();
+       for(MCParticle p:inlist)
+       {
+		if (!ParticleTypeClassifier.isNeutrino(p.getPDGID()))
+		{
+                    Hep3Vector mom = p.getMomentum();
+                    double ct = Math.abs(mom.z())/mom.magnitude();
+                    if(ct < ctcut)
+                    {
+			outlist.add(makeRPFromMC(p));
+                    }
+		}
+       }
+       event.put(outname,outlist);
+    }
+    public ReconstructedParticle makeRPFromMC(MCParticle p)
+    {
+       BaseReconstructedParticle rp = new BaseReconstructedParticle(p.getEnergy(),p.getMomentum());
+       rp.setMass(p.getMass());
+       rp.setCharge(p.getCharge());
+       rp.setReferencePoint(p.getOrigin());
+       rp.setParticleIdUsed(new BaseParticleID(dPPP.get(p.getType().getPDGID())));
+       return rp;
+    }
+}
\ No newline at end of file
CVSspam 0.2.8