Rivet API documentation

Rivet 4.1.3

Classes

struct  Rivet::METSmearParams
 Struct for holding MET-smearing parameters. More...

Typedefs

typedef function< METSmearParams(const Vector3 &, double)> Rivet::METSmearParamsFn
typedef function< Vector3(const Vector3 &, double)> Rivet::METSmearFn

Functions

METSmearParams Rivet::MET_SMEARPARAMS_ATLAS_RUN1 (const Vector3 &met, double set)
 ATLAS Run 1 ETmiss resolution.
Vector3 Rivet::MET_SMEAR_ATLAS_RUN1 (const Vector3 &met, double set)
 ATLAS Run 1 ETmiss smearing.
METSmearParams Rivet::MET_SMEARPARAMS_ATLAS_RUN2 (const Vector3 &met, double set)
Vector3 Rivet::MET_SMEAR_ATLAS_RUN2 (const Vector3 &met, double set)
 ATLAS Run 2 ETmiss smearing.
METSmearParams Rivet::MET_SMEARPARAMS_ATLAS_RUN2_PFLOW (const Vector3 &met, double)
Vector3 Rivet::MET_SMEAR_ATLAS_RUN2_PFLOW (const Vector3 &met, double set)
 ATLAS Run 2 pflow ETmiss smearing.
METSmearParams Rivet::MET_SMEARPARAMS_CMS_RUN1 (const Vector3 &met, double set)
Vector3 Rivet::MET_SMEAR_CMS_RUN1 (const Vector3 &met, double set)
 CMS Run 1 ETmiss smearing.
METSmearParams Rivet::MET_SMEARPARAMS_CMS_RUN2 (const Vector3 &met, double set)
 CMS Run 2 ETmiss smearing.
Vector3 Rivet::MET_SMEAR_CMS_RUN2 (const Vector3 &met, double set)
 CMS Run 2 ETmiss smearing.
Vector3 Rivet::MET_SMEAR_NORM (const METSmearParams &msps)
 Smear a nominal vector magnitude by Gaussian with the given absolute resolutions.
METSmearParams Rivet::MET_SMEARPARAMS_IDENTITY (const Vector3 &met, double)
 Identity resolution is 0 (perfect delta function, no offset).
Vector3 Rivet::MET_SMEAR_IDENTITY (const Vector3 &met, double)
 Identity MET smearing just returns the input.

Detailed Description

Typedef Documentation

◆ METSmearFn

typedef function<Vector3(const Vector3&, double)> Rivet::METSmearFn

Typedef for MET smearing functions/functors (given a MET vector and scalar sum(ET))

Todo
Allow MET calculation to access the whole Event?

◆ METSmearParamsFn

typedef function<METSmearParams(const Vector3&, double)> Rivet::METSmearParamsFn

Typedef for MET smearing-parameter functions/functors (given a MET vector and scalar sum(ET))

Returns a nominal MET 3-vector (maybe shifted in energy or angle) and a resolution (in GeV) with which to Gaussian-smear its momentum.

Todo
Allow MET calculation to access the whole Event?

Function Documentation

◆ MET_SMEAR_NORM()

Vector3 Rivet::MET_SMEAR_NORM ( const METSmearParams & msps)
inline

Smear a nominal vector magnitude by Gaussian with the given absolute resolutions.

Note
For momentum resolutions comparable to or larger than the value they are smearing, a modulus of the resulting vaue is taken, i.e. "reflecting" negative tails back up to positive rather than truncating at zero (or – horrors – accidentally flipping the vector direction!) This is not obviously better than truncating at zero, and ideally we'd avoid this with some physical positive-definite sampling... but until then let's try to make sure the assuming-Gaussian resolution functions don't have to work in very asymmetric regimes where a single sigma isn't enough.
Todo
Improve on "reflect in zero" sampling behaviour where res >~ mu.

References Rivet::Vector< N >::mod(), randnorm(), and Rivet::Vector3::unit().

Referenced by MET_SMEAR_ATLAS_RUN1(), MET_SMEAR_ATLAS_RUN2(), MET_SMEAR_ATLAS_RUN2_PFLOW(), MET_SMEAR_CMS_RUN1(), MET_SMEAR_CMS_RUN2(), and Rivet::SmearedMET::project().

◆ MET_SMEARPARAMS_ATLAS_RUN1()

METSmearParams Rivet::MET_SMEARPARAMS_ATLAS_RUN1 ( const Vector3 & met,
double set )
inline

ATLAS Run 1 ETmiss resolution.

Based on https://arxiv.org/pdf/1108.5602v2.pdf, Figs 14 and 15

References Rivet::Vector< N >::mod().

Referenced by MET_SMEAR_ATLAS_RUN1().

◆ MET_SMEARPARAMS_ATLAS_RUN2()

METSmearParams Rivet::MET_SMEARPARAMS_ATLAS_RUN2 ( const Vector3 & met,
double set )
inline

ATLAS Run 2 ETmiss resolution

Based on https://arxiv.org/pdf/1802.08168.pdf, Figs 6-9

Todo
If we could access the whole event we could switch between W and tt curves based on jet/lep activity...
Todo
Allow smearing function to access the whole event, since Njet also affects? Or assume encoded in SET?
Todo
Arguably should somehow take the max of this and the linearity... but this is re-used

References max(), min(), and Rivet::Vector< N >::mod().

Referenced by MET_SMEAR_ATLAS_RUN2().

◆ MET_SMEARPARAMS_ATLAS_RUN2_PFLOW()

METSmearParams Rivet::MET_SMEARPARAMS_ATLAS_RUN2_PFLOW ( const Vector3 & met,
double  )
inline

ATLAS Run 2 pflow ETmiss resolution

Warning
No explicitly encoded SET-dependence, uses average of tt, VBF H->WW, and W->munu curves at <mu>.

Based on https://arxiv.org/pdf/2402.05858

Todo
If we could access the whole event we could switch between W and tt curves based on jet/lep activity...

References Rivet::Vector< N >::mod().

Referenced by MET_SMEAR_ATLAS_RUN2_PFLOW().

◆ MET_SMEARPARAMS_CMS_RUN1()

METSmearParams Rivet::MET_SMEARPARAMS_CMS_RUN1 ( const Vector3 & met,
double set )
inline

CMS Run 1 ETmiss smearing params

From https://arxiv.org/pdf/1411.0511.pdf Table 2, p16 (Z channels)

References sqr().

Referenced by MET_SMEAR_CMS_RUN1().

◆ MET_SMEARPARAMS_CMS_RUN2()

METSmearParams Rivet::MET_SMEARPARAMS_CMS_RUN2 ( const Vector3 & met,
double set )
inline

CMS Run 2 ETmiss smearing.

From http://inspirehep.net/record/1681214/files/JME-17-001-pas.pdf Table 3, p20

References sqr().

Referenced by MET_SMEAR_CMS_RUN2().

◆ MET_SMEARPARAMS_IDENTITY()

METSmearParams Rivet::MET_SMEARPARAMS_IDENTITY ( const Vector3 & met,
double  )
inline

Identity resolution is 0 (perfect delta function, no offset).

Note
This simple factorization doesn't allow for expression of offsets or angular smearing... revisit if needed