rivet is hosted by Hepforge, IPPP Durham
Rivet  2.7.0
RivetMT2.hh
1 // -*- C++ -*-
2 #ifndef RIVET_MT2_HH
3 #define RIVET_MT2_HH
4 
5 #include "Rivet/Math/Vector4.hh"
6 
7 namespace Rivet {
8 
9 
15  double mT2Sq(const FourMomentum& a, const FourMomentum& b, const Vector3& ptmiss,
16  double invisiblesMass, double invisiblesMass2=-1);
17 
19  inline double mT2Sq(const FourMomentum& a, const FourMomentum& b, const FourMomentum& ptmiss,
20  double invisiblesMass, double invisiblesMass2=-1) {
21  return mT2Sq(a, b, ptmiss.perpVec(), invisiblesMass, invisiblesMass2);
22  }
23 
24 
30  inline double mT2(const FourMomentum& a, const FourMomentum& b, const Vector3& ptmiss,
31  double invisiblesMass, double invisiblesMass2=-1) {
32  const double mt2sq = mT2Sq(a, b, ptmiss, invisiblesMass, invisiblesMass2);
33  return mt2sq >= 0 ? sqrt(mt2sq) : -1;
34  }
35 
37  inline double mT2(const FourMomentum& a, const FourMomentum& b, const FourMomentum& ptmiss,
38  double invisiblesMass, double invisiblesMass2=-1) {
39  return mT2(a, b, ptmiss.perpVec(), invisiblesMass, invisiblesMass2);
40  }
41 
42 
43 }
44 
45 #endif
Definition: ALICE_2010_I880049.cc:13
double mT2Sq(const FourMomentum &a, const FourMomentum &b, const Vector3 &ptmiss, double invisiblesMass, double invisiblesMass2=-1)
Compute asymm mT2**2 using the bisection method.
Definition: RivetMT2.cc:7
double mT2(const FourMomentum &a, const FourMomentum &b, const Vector3 &ptmiss, double invisiblesMass, double invisiblesMass2=-1)
Compute asymm mT2 using the bisection method.
Definition: RivetMT2.hh:30
Vector3 perpVec() const
Synonym for polarVec.
Definition: Vector4.hh:121
Three-dimensional specialisation of Vector.
Definition: Vector3.hh:26
Specialized version of the FourVector with momentum/energy functionality.
Definition: Vector4.hh:301