[Rivet-svn] rivet: Use Lester MT2 bisection header, and expose a few more mT...

Rivet Mercurial rivet at projects.hepforge.org
Tue Oct 3 23:15:01 BST 2017


details:   https://rivet.hepforge.org/hg/rivet/rev/16008af6e4d9
branches:  
changeset: 6075:16008af6e4d9
user:      Andy Buckley <andy at insectnation.org>
date:      Tue Oct 03 23:04:52 2017 +0100
description:
Use Lester MT2 bisection header, and expose a few more mT2 function signatures.

diffs (truncated from 800 to 50 lines):

--- a/ChangeLog	Tue Oct 03 20:56:02 2017 +0100
+++ b/ChangeLog	Tue Oct 03 23:04:52 2017 +0100
@@ -1,3 +1,7 @@
+2017-10-03  Andy Buckley  <andy.buckley at cern.ch>
+
+	* Use Lester MT2 bisection header, and expose a few more mT2 function signatures.
+
 2017-09-26  Andy Buckley  <andy.buckley at cern.ch>
 
 	* Use generic YODA read and write functions -- enables zipped yoda.gz output.
--- a/include/Rivet/Tools/RivetMT2.hh	Tue Oct 03 20:56:02 2017 +0100
+++ b/include/Rivet/Tools/RivetMT2.hh	Tue Oct 03 23:04:52 2017 +0100
@@ -2,22 +2,50 @@
 #ifndef RIVET_MT2_HH
 #define RIVET_MT2_HH
 
+#include "Rivet/Math/Vector4.hh"
+
 namespace Rivet {
-
-  class FourMomentum;
-
   namespace mT2 {
 
-    /// @brief Convenience wrapper for the mT2 calculator of Cheng/Han
+
+    /// @brief Compute asymm mT2**2 using the bisection method
     ///
-    /// (arXiv:0810.5178). Could be adapted for other backends in future.
-    double mT2(const FourMomentum& a,
-               const FourMomentum& b,
-               const FourMomentum& pTmiss,
-               double invisiblesMass);
+    /// If the second invisible mass is not given, symm mT2**2 will be calculated.
+    ///
+    /// @note Cheng/Han arXiv:0810.5178, Lester arXiv:1411.4312
+    double mT2Sq(const FourMomentum& a, const FourMomentum& b, const Vector3& ptmiss,
+                 double invisiblesMass, double invisiblesMass2=-1);
+
+    /// Override for mT2Sq with FourMomentum ptmiss
+    inline double mT2Sq(const FourMomentum& a, const FourMomentum& b, const FourMomentum& ptmiss,
+                        double invisiblesMass, double invisiblesMass2) {
+      return mT2Sq(a, b, ptmiss.perpVec(), invisiblesMass, invisiblesMass2);
+    }
+
+
+    /// @brief Compute asymm mT2 using the bisection method
+    ///
+    /// If the second invisible mass is not given, symm mT2 will be calculated.
+    ///


More information about the Rivet-svn mailing list