lcsim/src/org/lcsim/contrib/uiowa/template
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);