File indexing completed on 2025-04-19 09:06:54
0001
0002 #ifndef RIVET_MT2_HH
0003 #define RIVET_MT2_HH
0004
0005 #include "Rivet/Math/Vector4.hh"
0006
0007 namespace Rivet {
0008
0009
0010
0011
0012
0013
0014
0015 double mT2Sq(const FourMomentum& a, const FourMomentum& b, const Vector3& ptmiss,
0016 double invisiblesMass, double invisiblesMass2=-1);
0017
0018
0019 inline double mT2Sq(const FourMomentum& a, const FourMomentum& b, const FourMomentum& ptmiss,
0020 double invisiblesMass, double invisiblesMass2=-1) {
0021 return mT2Sq(a, b, ptmiss.perpVec(), invisiblesMass, invisiblesMass2);
0022 }
0023
0024
0025
0026
0027
0028
0029
0030 inline double mT2(const FourMomentum& a, const FourMomentum& b, const Vector3& ptmiss,
0031 double invisiblesMass, double invisiblesMass2=-1) {
0032 const double mt2sq = mT2Sq(a, b, ptmiss, invisiblesMass, invisiblesMass2);
0033 return mt2sq >= 0 ? sqrt(mt2sq) : -1;
0034 }
0035
0036
0037 inline double mT2(const FourMomentum& a, const FourMomentum& b, const FourMomentum& ptmiss,
0038 double invisiblesMass, double invisiblesMass2=-1) {
0039 return mT2(a, b, ptmiss.perpVec(), invisiblesMass, invisiblesMass2);
0040 }
0041
0042
0043 }
0044
0045 #endif