14 double M_mu = 0.10566;
23 double a = M_W * M_W - M_mu * M_mu + 2.0 * pxmu * pxnu + 2.0 * pymu * pynu;
24 double A = 4.0 * (emu * emu - pzmu * pzmu);
25 double B = -4.0 * a * pzmu;
26 double C = 4.0 * emu * emu * (pxnu * pxnu + pynu * pynu) - a * a;
28 double tmproot = B * B - 4.0 * A *
C;
37 double tmpsol1 = (-B + TMath::Sqrt(tmproot)) / (2.0 * A);
38 double tmpsol2 = (-B - TMath::Sqrt(tmproot)) / (2.0 * A);
73 p3w.SetXYZ(pxmu + pxnu, pymu + pynu, pzmu + tmpsol1);
74 p3mu.SetXYZ(pxmu, pymu, pzmu);
76 double sinthcm1 = 2. * (p3mu.Perp(p3w)) / M_W;
77 p3w.SetXYZ(pxmu + pxnu, pymu + pynu, pzmu + tmpsol2);
78 double sinthcm2 = 2. * (p3mu.Perp(p3w)) / M_W;
80 double costhcm1 = TMath::Sqrt(1. - sinthcm1 * sinthcm1);
81 double costhcm2 = TMath::Sqrt(1. - sinthcm2 * sinthcm2);
83 if (costhcm1 > costhcm2)
double px() const final
x coordinate of momentum vector
double pz() const final
z coordinate of momentum vector
double energy() const final
energy
virtual ~METzCalculator()
destructor
static const std::string B
METzCalculator()
constructor
double Calculate(int type=0)
member functions
double py() const final
y coordinate of momentum vector