Print

Print


Commit in lcsim/src/org/lcsim/contrib/uiowa/template on MAIN
ChargedHadronIdentifier.java+9-11.2 -> 1.3
Use PID truth information for tracks if available

lcsim/src/org/lcsim/contrib/uiowa/template
ChargedHadronIdentifier.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- ChargedHadronIdentifier.java	4 Feb 2006 01:22:24 -0000	1.2
+++ ChargedHadronIdentifier.java	8 Feb 2006 19:04:23 -0000	1.3
@@ -2,6 +2,7 @@
 
 import java.util.*;
 import hep.physics.vec.*;
+import hep.physics.particle.Particle;
 
 import org.lcsim.event.Track;
 import org.lcsim.event.ReconstructedParticle;
@@ -14,6 +15,7 @@
 import org.lcsim.geometry.Detector;
 import org.lcsim.recon.cluster.util.BasicCluster;
 import org.lcsim.recon.cluster.util.TensorClusterPropertyCalculator;
+import org.lcsim.mc.fast.tracking.ReconTrack;
 
 public class ChargedHadronIdentifier extends Driver
 {
@@ -114,7 +116,13 @@
 		part.addCluster(matchedCluster);
 		double[] trackMomentum = tr.getMomentum();
 		double trackMomentumMagSq = (trackMomentum[0]*trackMomentum[0] + trackMomentum[1]*trackMomentum[1] + trackMomentum[2]*trackMomentum[2]);
-		double mass = 0.140;  // FIXME: Everything is a pion!
+		double mass = 0.140;  // FIXME: Everything is a pion by default!
+		if (tr instanceof ReconTrack) {
+		    Particle truthParticle = ((ReconTrack)(tr)).getMCParticle();
+		    if (truthParticle != null) {
+			mass = truthParticle.getMass();
+		    }
+		}
 		double energy = Math.sqrt(trackMomentumMagSq + mass*mass);
 		part.setEnergy(energy);
 		outputParticleList.add(part);
CVSspam 0.2.8