18 for (
double eta = -5.0;
eta < 5.0001;
eta += etaStep) {
28 std::cout <<
"ERROR TOO MANY SAMPLING POINT FOR neutrinos ARRAY" << std::endl;
41 double topMass = 172500.;
43 const double met_ex =
event.m_met->mpx();
44 const double met_ey =
event.m_met->mpy();
47 for (
int j = 0; j <
etaSize; ++j) {
57 if (std::isnan(sol1) || std::isnan(sol2) || std::isnan(sol3) ||
58 std::isnan(sol4)) std::cout <<
"One of the quadratic ans is NaN!" << std::endl;
70 if (std::isnan(sol1) || std::isnan(sol2) || std::isnan(sol3) ||
71 std::isnan(sol4)) std::cout <<
"One of the quadratic ans is NaN!" << std::endl;
82 double topMass,
int index)
const {
89 double A = (lepton.Py() * Ebprime - bJet.Py() * Elprime) / (bJet.Px() * Elprime - lepton.Px() * Ebprime);
90 double B = (Elprime * (topMass * topMass - Wmass2 - bmass * bmass - 2. * lepton * bJet) - Ebprime * Wmass2) /
91 (2. * (lepton.Px() * Ebprime - bJet.Px() * Elprime));
93 double par1 = (lepton.Px() * A + lepton.Py()) / Elprime;
94 double C = A * A + 1. - par1 * par1;
95 double par2 = (Wmass2 / 2. + lepton.Px() * B) / Elprime;
96 double D = 2. * (A * B - par2 * par1);
97 double F = B * B - par2 * par2;
98 double det = D * D - 4. * C *
F;
105 double tmp = std::sqrt(
det) / (2. * C);
106 double py1 = -D / (2. * C) +
tmp;
107 double py2 = -D / (2. * C) -
tmp;
108 double px1 = A * py1 + B;
109 double px2 = A * py2 + B;
110 double pT2_1 = px1 * px1 + py1 * py1;
111 double pT2_2 = px2 * px2 + py2 * py2;
115 TLorentzVector a1(px1, py1, pz1, sqrt(pT2_1 + pz1* pz1));
116 TLorentzVector a2(px2, py2, pz2, sqrt(pT2_2 + pz2* pz2));
125 double met_ex,
double met_ey)
const {
126 const double dx = met_ex - neutrino1.Px() - neutrino2.Px();
127 const double dy = met_ey - neutrino1.Py() - neutrino2.Py();