rivet is hosted by Hepforge, IPPP Durham
Rivet 4.0.0
RivetMT2.hh
1// -*- C++ -*-
2#ifndef RIVET_MT2_HH
3#define RIVET_MT2_HH
4
5#include "Rivet/Math/Vector4.hh"
6
7namespace 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
Specialized version of the FourVector with momentum/energy functionality.
Definition Vector4.hh:316
Vector3 perpVec() const
Synonym for polarVec.
Definition Vector4.hh:136
Three-dimensional specialisation of Vector.
Definition Vector3.hh:40
Definition MC_CENT_PPB_Projections.hh:10
double mT2Sq(const FourMomentum &a, const FourMomentum &b, const Vector3 &ptmiss, double invisiblesMass, double invisiblesMass2=-1)
Compute asymm mT2**2 using the bisection method.
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