83 double& nuz1,
double& nuz2)
102 bool discrim_flag =
true;
106 double alpha1 = tmass*tmass - cprime.m2();
107 double a = 2 * 4 * (cprime.z()*cprime.z() - cprime.e()*cprime.e());
108 double alpha = alpha1 + 2*(cprime.x()*vnu.x() + cprime.y()*vnu.y());
109 double b = 4 * alpha * cprime.z();
110 double c = alpha*alpha - 4 * cprime.e()*cprime.e() * vnu.vect().perp2();
111 double d = b*b - 2*a*
c;
113 discrim_flag =
false;
120 if (
abs (nuz1) >
abs (nuz2))
155 bool discrim_flag =
true;
159 double alpha1 = tmass*tmass - cprime.m2();
160 double a = 2 * 4 * (cprime.z()*cprime.z() - cprime.e()*cprime.e());
163 double alpha = alpha1 + 2*(cprime.x()*vnu.x() + cprime.y()*vnu.y());
164 double b = 4 * alpha * cprime.z();
165 double c = alpha*alpha - 4 * cprime.e()*cprime.e() * vnu.vect().perp2();
166 double d = b*b - 2*a*
c;
168 discrim_flag =
false;
173 re_nuz1 = (-b +
sqrt(d))/a ;
175 re_nuz2 = (-b -
sqrt(d))/a ;
177 if (
abs(re_nuz1) >
abs(re_nuz2)) {
178 swap(re_nuz1,re_nuz2);
187 im_nuz1 = -fabs(
sqrt(-d)/a );
189 im_nuz2 = fabs(
sqrt(-d)/a );
221 bool discrim_flag =
true;
226 double x = vlep.x()*vnu.x() + vlep.y()*vnu.y() + wmass*wmass/2;
227 double a = vlep.z()*vlep.z() - vlep.e()*vlep.e();
228 double b = 2*x*vlep.z();
229 double c = x*x - vnu.perp2() * vlep.e()*vlep.e();
231 double d = b*b - 4*a*
c;
234 discrim_flag =
false;
237 nuz1 = (-b +
sqrt (d))/2/a;
238 nuz2 = (-b -
sqrt (d))/2/a;
239 if (
abs (nuz1) >
abs (nuz2))
274 bool discrim_flag =
true;
279 double x = vlep.x()*vnu.x() + vlep.y()*vnu.y() + wmass*wmass/2;
280 double a = vlep.z()*vlep.z() - vlep.e()*vlep.e();
281 double b = 2*x*vlep.z();
282 double c = x*x - vnu.perp2() * vlep.e()*vlep.e();
284 double d = b*b - 4*a*
c;
286 discrim_flag =
false;
291 re_nuz1 = (-b +
sqrt(d))/2/a ;
293 re_nuz2 = (-b -
sqrt(d))/2/a ;
295 if (fabs(re_nuz1) > fabs(re_nuz2)) {
296 swap(re_nuz1,re_nuz2);
306 im_nuz1 = -fabs(
sqrt(-d)/a);
308 im_nuz2 = fabs(
sqrt(-d)/a);
423 s <<
"lepw " << p <<
" " << p.m() <<
"\n";
425 s <<
"lept " << p <<
" " << p.m() <<
"\n";
427 s <<
"hadw " << p <<
" " << p.m() <<
"\n";
429 s <<
"hadt " << p <<
" " << p.m() <<
"\n";
450 if (W.isLightlike() || W.isSpacelike()) {
454 CLHEP::HepBoost BoostWCM(W.findBoostToCM());
456 CLHEP::Hep3Vector boost_v3fermion = BoostWCM(fermion).vect();
457 CLHEP::Hep3Vector boost_v3top = BoostWCM(top).vect();
459 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)
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.
Abs< T >::type abs(const T &t)
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 double cos_theta_star(const Fourvec &fermion, const Fourvec &W, const Fourvec &top)
Calculate in top quark decay.
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.