mcd-analysis/src/main/java/org/lcsim/mcd/analysis
diff -u -r1.5 -r1.6
--- MCHiggs.java 19 Dec 2012 17:55:18 -0000 1.5
+++ MCHiggs.java 19 Dec 2012 18:06:27 -0000 1.6
@@ -84,13 +84,23 @@
double mass = particle.getMass();
double ener = particle.getEnergy();
Hep3Vector p = particle.getMomentum();
+ Hep3Vector p2 = VecOp.neg(p);
double p_m = p.magnitude();
+ double p2_m = p_m;
Hep3Vector z_unit = new BasicHep3Vector(0,0,1.);
double pt = VecOp.dot(p, z_unit);
+ double pt2 = VecOp.dot(p2,z_unit);
double cos_theta = VecOp.cosTheta(p);
- double inv_mass = Math.sqrt(2*p_m*p_m*(1-cos_theta));
+
+ double phi1 = VecOp.phi(p);
+ double phi2 = VecOp.phi(p2);
+ double eta1 = 0.5*Math.log((p_m+p.z())/(p_m-p.z()));
+ double eta2 = 0.5*Math.log((p2_m+p2.z())/(p2_m-p2.z()));
+
+ double inv_mass = Math.sqrt(
+ 2*pt*pt2*(Math.cosh(eta1-eta2) - Math.cos(phi1-phi2)));
aida.cloud1D("gamma momentum").fill(p_m);
aida.cloud1D("gamma transverse momentum").fill(pt);