84 double& nuz1,
double& nuz2)
103 bool discrim_flag =
true;
107 double alpha1 = tmass*tmass - cprime.m2();
108 double a = 2 * 4 * (cprime.z()*cprime.z() - cprime.e()*cprime.e());
109 double alpha = alpha1 + 2*(cprime.x()*vnu.x() + cprime.y()*vnu.y());
110 double b = 4 * alpha * cprime.z();
111 double c = alpha*alpha - 4 * cprime.e()*cprime.e() * vnu.vect().perp2();
112 double d = b*b - 2*a*
c;
114 discrim_flag =
false;
121 if (
abs (nuz1) >
abs (nuz2))
156 bool discrim_flag =
true;
160 double alpha1 = tmass*tmass - cprime.m2();
161 double a = 2 * 4 * (cprime.z()*cprime.z() - cprime.e()*cprime.e());
164 double alpha = alpha1 + 2*(cprime.x()*vnu.x() + cprime.y()*vnu.y());
165 double b = 4 * alpha * cprime.z();
166 double c = alpha*alpha - 4 * cprime.e()*cprime.e() * vnu.vect().perp2();
167 double d = b*b - 2*a*
c;
169 discrim_flag =
false;
174 re_nuz1 = (-b +
sqrt(d))/a ;
176 re_nuz2 = (-b -
sqrt(d))/a ;
178 if (
abs(re_nuz1) >
abs(re_nuz2)) {
179 swap(re_nuz1,re_nuz2);
188 im_nuz1 = -fabs(
sqrt(-d)/a );
190 im_nuz2 = fabs(
sqrt(-d)/a );
222 bool discrim_flag =
true;
227 double x = vlep.x()*vnu.x() + vlep.y()*vnu.y() + wmass*wmass/2;
228 double a = vlep.z()*vlep.z() - vlep.e()*vlep.e();
229 double b = 2*x*vlep.z();
230 double c = x*x - vnu.perp2() * vlep.e()*vlep.e();
232 double d = b*b - 4*a*
c;
235 discrim_flag =
false;
238 nuz1 = (-b +
sqrt (d))/2/a;
239 nuz2 = (-b -
sqrt (d))/2/a;
240 if (
abs (nuz1) >
abs (nuz2))
275 bool discrim_flag =
true;
280 double x = vlep.x()*vnu.x() + vlep.y()*vnu.y() + wmass*wmass/2;
281 double a = vlep.z()*vlep.z() - vlep.e()*vlep.e();
282 double b = 2*x*vlep.z();
283 double c = x*x - vnu.perp2() * vlep.e()*vlep.e();
285 double d = b*b - 4*a*
c;
287 discrim_flag =
false;
292 re_nuz1 = (-b +
sqrt(d))/2/a ;
294 re_nuz2 = (-b -
sqrt(d))/2/a ;
296 if (fabs(re_nuz1) > fabs(re_nuz2)) {
297 swap(re_nuz1,re_nuz2);
307 im_nuz1 = -fabs(
sqrt(-d)/a);
309 im_nuz2 = fabs(
sqrt(-d)/a);
424 s <<
"lepw " << p <<
" " << p.m() <<
"\n";
426 s <<
"lept " << p <<
" " << p.m() <<
"\n";
428 s <<
"hadw " << p <<
" " << p.m() <<
"\n";
430 s <<
"hadt " << p <<
" " << p.m() <<
"\n";
451 if (W.isLightlike() || W.isSpacelike()) {
455 CLHEP::HepBoost BoostWCM(W.findBoostToCM());
457 CLHEP::Hep3Vector boost_v3fermion = BoostWCM(fermion).vect();
458 CLHEP::Hep3Vector boost_v3top = BoostWCM(top).vect();
460 double costhetastar = boost_v3fermion.cosTheta(-boost_v3top);
static bool solve_nu_tmass(const Lepjets_Event &ev, double tmass, double &nuz1, double &nuz2)
Solve for the neutrino longitudinal momentum that makes the leptonic top have a certain value of mas...
void swap(ora::Record &rh, ora::Record &lh)
static double cos_theta_star(const Fourvec fermion, const Fourvec W, const Fourvec top)
Calculate in top quark decay.
Define three-vector and four-vector classes for the HitFit package, and supply a few additional opera...
static Fourvec hadw2(const Lepjets_Event &ev)
Return the hadronic boson jet which have lower .
static Fourvec hadw1(const Lepjets_Event &ev)
Return the hadronic boson jet which have higher .
static bool solve_nu(const Lepjets_Event &ev, double wmass, double &nuz1, double &nuz2)
Solve for the longitudinal momentum that makes the leptonic -boson to have a certain value of mass...
Represent a simple event consisting of lepton(s) and jet(s).
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
A class to hold functions to calculate kinematic quantities of interest in events.
static double cos_theta_star_lept(const Lepjets_Event &ev)
Calculate the lepton in top quark leptonic decay.
Represent a simple event consisting of lepton(s) and jet(s). An instance of this class holds a list o...
CLHEP::HepLorentzVector Fourvec
Typedef for a HepLorentzVector.
Fourvec sum(int type) const
Return the sum of all objects' four-momentum which have a particular type.
static double cos_theta_star_hadt(const Lepjets_Event &ev)
Calculate the hadronic in top quark leptonic decay. As there is no information on the weak isospin c...
Fourvec & met()
Return a reference to the missing transverse energy.
static Fourvec hadt(const Lepjets_Event &ev)
Sum up the appropriate four-momenta to find the hadronic top quark.
static Fourvec lept(const Lepjets_Event &ev)
Sum up the appropriate four-momenta to find the leptonic top quark.
static Fourvec lepw(const Lepjets_Event &ev)
Sum up the appropriate four-momenta to find the leptonic boson.
static Fourvec hadw(const Lepjets_Event &ev)
Sum up the appropriate four-momenta to find the hadronic boson.
static std::ostream & dump_ev(std::ostream &s, const Lepjets_Event &ev)
Print the kinematic information for an event.