lcsim/src/org/lcsim/contrib/SteveMagill
diff -N PPFANeuHClusterDriver.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ PPFANeuHClusterDriver.java 20 Aug 2008 20:23:26 -0000 1.1
@@ -0,0 +1,77 @@
+package org.lcsim.contrib.SteveMagill;
+
+import java.util.*;
+import org.lcsim.util.aida.AIDA;
+import org.lcsim.event.EventHeader;
+import org.lcsim.util.Driver;
+import org.lcsim.event.Cluster;
+import org.lcsim.event.MCParticle;
+import org.lcsim.event.CalorimeterHit;
+import org.lcsim.event.SimCalorimeterHit;
+import org.lcsim.recon.cluster.util.BasicCluster;
+import org.lcsim.geometry.util.CalorimeterIDDecoder;
+import hep.physics.vec.Hep3Vector;
+import hep.physics.vec.BasicHep3Vector;
+import org.lcsim.event.Track;
+import org.lcsim.util.hitmap.HitMap;
+import org.lcsim.recon.cluster.util.BasicCluster;
+import org.lcsim.spacegeom.*;
+import org.lcsim.event.ReconstructedParticle;
+import org.lcsim.event.base.MCReconstructedParticle;
+import org.lcsim.event.ParticleID;
+import org.lcsim.recon.cluster.cheat.CheatCluster;
+import org.lcsim.event.ParticleID;
+import org.lcsim.event.ReconstructedParticle;
+import org.lcsim.event.base.BaseParticleID;
+import org.lcsim.event.base.BaseReconstructedParticle;
+import hep.physics.particle.properties.ParticlePropertyManager;
+import hep.physics.particle.properties.ParticleType;
+
+/**
+ * Gets Perfect PFA Neutral Hadron clusters from simulation
+ */
+
+public class PPFANeuHClusterDriver extends Driver
+{
+ private AIDA aida = AIDA.defaultInstance();
+ private String _inname;
+ private String _outname;
+
+ public PPFANeuHClusterDriver()
+ {
+
+ }
+
+ public void process(EventHeader event)
+ {
+ List<ReconstructedParticle> perfrps = event.get(ReconstructedParticle.class,"PerfectRecoParticles");
+ List<BasicCluster> perfclusters = event.get(BasicCluster.class,_inname);
+ List<BasicCluster> FNHclusters = new ArrayList<BasicCluster>(); // final photon clusters
+
+ // check perfect photon clusters
+ for (ReconstructedParticle perfrp : perfrps)
+ {
+ double rpmass = perfrp.getMass();
+ double rpcharge = perfrp.getCharge();
+ if (rpcharge == 0 && rpmass > 0)
+ {
+ List<Cluster> rpclusters = perfrp.getClusters();
+// System.out.println(" Size of NHClusList " + rpclusters.size());
+ BasicCluster rpclus = (BasicCluster) rpclusters.get(0);
+ FNHclusters.add(rpclus);
+ }
+ }
+ event.put(_outname,FNHclusters);
+ }
+
+ public void setInputClusName(String inname)
+ {
+ _inname = inname;
+ }
+
+ public void setOutputClusName(String outname)
+ {
+ _outname = outname;
+ }
+
+}