class Rivet::MissingMomentum

Rivet::MissingMomentum

Calculate missing ( E ), ( E_\perp ) etc. as complements to the total visible momentum. More…

#include <MissingMomentum.hh>

Inherits from Rivet::METFinder, Rivet::Projection, Rivet::ProjectionApplier

Public Functions

Name
const FourMomentumvisibleMomentum(double mass =0 *GeV) const
The vector-summed visible four-momentum in the event.
const FourMomentumvisibleMom(double mass =0 *GeV) const
Alias for visibleMomentum.
const FourMomentummissingMomentum(double mass =0 *GeV) const
The missing four-momentum in the event, required to balance the final state.
const FourMomentummissingMom(double mass =0 *GeV) const
Alias for missingMomentum.
virtual const ThreeMomentum &vectorPt() const
The vector-summed visible transverse momentum in the event, as a 3-vector with z=0.
const ThreeMomentumvectorPtMiss() const
The vector missing transverse momentum in the event, as a 3-vector with z=0.
doublescalarPtMiss() const
The scalar value of missing transverse momentum in the event.
doublescalarPt() const
The scalar-summed visible transverse momentum in the event.
virtual const Vector3 &vectorEt() const
The vector-summed visible transverse energy in the event, as a 3-vector with z=0.
const Vector3vectorEtMiss() const
The vector missing transverse energy in the event, as a 3-vector with z=0.
doublescalarEtMiss() const
The scalar value of missing transverse energy in the event.
doublescalarEt() const
The scalar-summed visible transverse energy in the event.
doubleset() const
const Vector3vectorMissingPt() const
Convenience vector MPT function.
const Vector3vectorMPT() const
doublemissingPt() const
The vector-summed missing transverse momentum in the event.
const Vector3vectorMissingEt() const
Convenience vector MET function.
const Vector3vectorMET() const
doublemissingEt() const
The vector-summed missing transverse energy in the event.
doublemet() const
Alias for missingEt.
virtual unique_ptr< Projection >clone() const =0
Clone on the heap.
virtual std::stringname() const
Get the name of the projection.
boolvalid() const
Get the state of the projetion.
boolfailed() const
Get the state of the projetion.
boolbefore(const Projection & p) const
virtual const std::set< PdgIdPair >beamPairs() const
Projection &addPdgIdPair(PdgId beam1, PdgId beam2)
std::set< ConstProjectionPtr >getProjections() const
Get the contained projections, including recursion.
boolhasProjection(const std::string & name) const
Does this applier have a projection registered under the name name?
template <typename PROJ >
const PROJ &
getProjection(const std::string & name) const
const Projection &getProjection(const std::string & name) const
template <typename PROJ >
const PROJ &
get(const std::string & name) const
template
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & >
applyProjection(const Event & evt, const Projection & proj) const
template
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & >
applyProjection(const Event & evt, const PROJ & proj) const
template
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & >
applyProjection(const Event & evt, const std::string & name) const
template
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & >
apply(const Event & evt, const Projection & proj) const
Apply the supplied projection on event evt (user-facing alias).
template
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & >
apply(const Event & evt, const PROJ & proj) const
Apply the supplied projection on event evt (user-facing alias).
template
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & >
apply(const Event & evt, const std::string & name) const
Apply the supplied projection on event evt (user-facing alias).
template
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & >
apply(const std::string & name, const Event & evt) const
Apply the supplied projection on event evt (convenience arg-reordering alias).
voidmarkAsOwned() const
Mark this object as owned by a proj-handler.
MissingMomentum(const FinalState & fs)
Canonical constructor taking a FinalState as argument.
MissingMomentum(const Cut & c =Cuts::open())
Default constructor with optional cut.
DEFAULT_RIVET_PROJ_CLONE(MissingMomentum )
Clone on the heap.
voidclear()
Clear the projection results.
virtual voidreset()
Reset the projection. Smearing functions will be unchanged.

Protected Functions

Name
Log &getLog() const
Get a Log object based on the getName() property of the calling projection object.
voidsetName(const std::string & name)
Used by derived classes to set their name.
voidfail()
Set the projection in an unvalid state.
Cmp< Projection >mkNamedPCmp(const Projection & otherparent, const std::string & pname) const
Cmp< Projection >mkPCmp(const Projection & otherparent, const std::string & pname) const
ProjectionHandler &getProjHandler() const
Get a reference to the ProjectionHandler for this thread.
template <typename PROJ >
const PROJ &
declareProjection(const PROJ & proj, const std::string & name)
Register a contained projection.
template <typename PROJ >
const PROJ &
declare(const PROJ & proj, const std::string & name)
Register a contained projection (user-facing version)
template <typename PROJ >
const PROJ &
declare(const std::string & name, const PROJ & proj)
Register a contained projection (user-facing, arg-reordered version)
virtual voidproject(const Event & e)
Apply the projection to the event.
virtual CmpStatecompare(const Projection & p) const
Compare projections.

Additional inherited members

Public Functions inherited from Rivet::Projection

Name
Projection()
The default constructor.
virtual~Projection()
The destructor.

Protected Functions inherited from Rivet::Projection

Name
virtual Projection &operator=(const Projection & )
Block Projection copying.

Friends inherited from Rivet::Projection

Name
classEvent
Event is a friend.
classCmp< Projection >
The Cmp specialization for Projection is a friend.

Public Functions inherited from Rivet::ProjectionApplier

Name
ProjectionApplier()
Constructor.
virtual~ProjectionApplier()

Detailed Description

class Rivet::MissingMomentum;

Calculate missing ( E ), ( E_\perp ) etc. as complements to the total visible momentum.

Project out the total visible energy vector, allowing missing ( E ), ( E_\perp ) etc. to be calculated. Final-state particle visibility restrictions are automatic, and the resulting visible/missing momentum vectors are over the whole event rather than over hard objects (jets + leptons) or specific to prompt invisibles.

Public Functions Documentation

function visibleMomentum

const FourMomentum visibleMomentum(
    double mass =0 *GeV
) const

The vector-summed visible four-momentum in the event.

Note:

  • Reverse this vector with .reverse() to get the missing momentum vector.
  • The optional mass argument is used to set a mass on the 4-vector. By default it is zero (since missing momentum is really a 3-momentum quantity: adding the E components of visible momenta just gives a huge mass)

Todo: Change to return a 3-vector with no argument, a 4-vector if a mass arg given

function visibleMom

inline const FourMomentum visibleMom(
    double mass =0 *GeV
) const

Alias for visibleMomentum.

function missingMomentum

inline const FourMomentum missingMomentum(
    double mass =0 *GeV
) const

The missing four-momentum in the event, required to balance the final state.

Note: The optional mass argument is used to set a mass on the 4-vector. By default it is zero (since missing momentum is really a 3-momentum quantity: adding the E components of visible momenta just gives a huge mass)

Todo: Change to return a 3-vector with no argument, a 4-vector if a mass arg given

function missingMom

inline const FourMomentum missingMom(
    double mass =0 *GeV
) const

Alias for missingMomentum.

function vectorPt

inline virtual const ThreeMomentum & vectorPt() const

The vector-summed visible transverse momentum in the event, as a 3-vector with z=0.

Note: Reverse this vector with operator- to get the missing pT vector.

Reimplements: Rivet::METFinder::vectorPt

function vectorPtMiss

inline const ThreeMomentum vectorPtMiss() const

The vector missing transverse momentum in the event, as a 3-vector with z=0.

function scalarPtMiss

inline double scalarPtMiss() const

The scalar value of missing transverse momentum in the event.

function scalarPt

inline double scalarPt() const

The scalar-summed visible transverse momentum in the event.

function vectorEt

inline virtual const Vector3 & vectorEt() const

The vector-summed visible transverse energy in the event, as a 3-vector with z=0.

Note: Reverse this vector with operator- to get the missing ET vector.

Reimplements: Rivet::METFinder::vectorEt

function vectorEtMiss

inline const Vector3 vectorEtMiss() const

The vector missing transverse energy in the event, as a 3-vector with z=0.

function scalarEtMiss

inline double scalarEtMiss() const

The scalar value of missing transverse energy in the event.

function scalarEt

inline double scalarEt() const

The scalar-summed visible transverse energy in the event.

function set

inline double set() const

Deprecated:

Use the full name, “set” is too ambiguous

Alias for scalarEt

function vectorMissingPt

inline const Vector3 vectorMissingPt() const

Convenience vector MPT function.

function vectorMPT

inline const Vector3 vectorMPT() const

function missingPt

inline double missingPt() const

The vector-summed missing transverse momentum in the event.

function vectorMissingEt

inline const Vector3 vectorMissingEt() const

Convenience vector MET function.

function vectorMET

inline const Vector3 vectorMET() const

function missingEt

inline double missingEt() const

The vector-summed missing transverse energy in the event.

function met

inline double met() const

Alias for missingEt.

function clone

virtual unique_ptr< Projection > clone() const =0

Clone on the heap.

Reimplemented by: Rivet::ALICE::V0Multiplicity::clone, Rivet::ALICE::CLMultiplicity::clone, Rivet::ALICE::V0Trigger::clone, Rivet::ALICE::V0AndTrigger::clone, Rivet::ALICE::PrimaryParticles::clone, Rivet::AxesDefinition::clone, Rivet::FastJets::clone, Rivet::ChargedFinalState::clone

function name

inline virtual std::string name() const

Get the name of the projection.

Reimplements: Rivet::ProjectionApplier::name

function valid

inline bool valid() const

Get the state of the projetion.

function failed

inline bool failed() const

Get the state of the projetion.

function before

bool before(
    const Projection & p
) const

Determine whether this object should be ordered before the object p given as argument. If p is of a different class than this, the before() function of the corresponding type_info objects is used. Otherwise, if the objects are of the same class, the virtual compare(const Projection &) will be returned.

function beamPairs

virtual const std::set< PdgIdPair > beamPairs() const

Todo: Remove the beam constraints system from projections.

Return the allowed beam pairs on which this projection can operate, not including recursion. Derived classes should ensure that all contained projections are registered in the _projections set for the beam constraint chaining to work.

function addPdgIdPair

inline Projection & addPdgIdPair(
    PdgId beam1,
    PdgId beam2
)

Todo: This deserves a better name!

Add a colliding beam pair.

function getProjections

inline std::set< ConstProjectionPtr > getProjections() const

Get the contained projections, including recursion.

function hasProjection

inline bool hasProjection(
    const std::string & name
) const

Does this applier have a projection registered under the name name?

function getProjection

template <typename PROJ >
inline const PROJ & getProjection(
    const std::string & name
) const

Todo: Add SFINAE to require that PROJ inherit from Projection

Get the named projection, specifying return type via a template argument.

function getProjection

inline const Projection & getProjection(
    const std::string & name
) const

Get the named projection (non-templated, so returns as a reference to a Projection base class).

function get

template <typename PROJ >
inline const PROJ & get(
    const std::string & name
) const

Todo: Add SFINAE to require that PROJ inherit from Projection

Get the named projection, specifying return type via a template argument (user-facing alias).

function applyProjection

template <typename PROJ  =Projection>
inline std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > applyProjection(
    const Event & evt,
    const Projection & proj
) const

Deprecated:

Prefer the simpler apply<> form

Apply the supplied projection on event evt.

function applyProjection

template <typename PROJ  =Projection>
inline std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > applyProjection(
    const Event & evt,
    const PROJ & proj
) const

Deprecated:

Prefer the simpler apply<> form

Apply the supplied projection on event evt.

function applyProjection

template <typename PROJ  =Projection>
inline std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > applyProjection(
    const Event & evt,
    const std::string & name
) const

Deprecated:

Prefer the simpler apply<> form

Apply the named projection on event evt.

function apply

template <typename PROJ  =Projection>
inline std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > apply(
    const Event & evt,
    const Projection & proj
) const

Apply the supplied projection on event evt (user-facing alias).

function apply

template <typename PROJ  =Projection>
inline std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > apply(
    const Event & evt,
    const PROJ & proj
) const

Apply the supplied projection on event evt (user-facing alias).

function apply

template <typename PROJ  =Projection>
inline std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > apply(
    const Event & evt,
    const std::string & name
) const

Apply the supplied projection on event evt (user-facing alias).

function apply

template <typename PROJ  =Projection>
inline std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > apply(
    const std::string & name,
    const Event & evt
) const

Apply the supplied projection on event evt (convenience arg-reordering alias).

function markAsOwned

inline void markAsOwned() const

Mark this object as owned by a proj-handler.

function MissingMomentum

inline MissingMomentum(
    const FinalState & fs
)

Canonical constructor taking a FinalState as argument.

function MissingMomentum

inline MissingMomentum(
    const Cut & c =Cuts::open()
)

Default constructor with optional cut.

function DEFAULT_RIVET_PROJ_CLONE

DEFAULT_RIVET_PROJ_CLONE(
    MissingMomentum 
)

Clone on the heap.

function clear

void clear()

Clear the projection results.

function reset

inline virtual void reset()

Reset the projection. Smearing functions will be unchanged.

Reimplemented by: Rivet::SmearedMET::reset

Protected Functions Documentation

function getLog

inline Log & getLog() const

Get a Log object based on the getName() property of the calling projection object.

function setName

inline void setName(
    const std::string & name
)

Used by derived classes to set their name.

function fail

inline void fail()

Set the projection in an unvalid state.

function mkNamedPCmp

Cmp< Projection > mkNamedPCmp(
    const Projection & otherparent,
    const std::string & pname
) const

Shortcut to make a named Cmp comparison with the *this object automatically passed as one of the parent projections.

function mkPCmp

Cmp< Projection > mkPCmp(
    const Projection & otherparent,
    const std::string & pname
) const

Note: Alias for mkNamedPCmp

Shortcut to make a named Cmp comparison with the *this object automatically passed as one of the parent projections.

function getProjHandler

inline ProjectionHandler & getProjHandler() const

Get a reference to the ProjectionHandler for this thread.

function declareProjection

template <typename PROJ >
inline const PROJ & declareProjection(
    const PROJ & proj,
    const std::string & name
)

Register a contained projection.

Todo: Add SFINAE to require that PROJ inherit from Projection

The type of the argument is used to instantiate a new projection internally: this new object is applied to events rather than the argument object. Hence you are advised to only use locally-scoped Projection objects in your Projection and Analysis constructors, and to avoid polymorphism (e.g. handling ConcreteProjection via a pointer or reference to type Projection) since this will screw up the internal type management.

function declare

template <typename PROJ >
inline const PROJ & declare(
    const PROJ & proj,
    const std::string & name
)

Register a contained projection (user-facing version)

Todo: Add SFINAE to require that PROJ inherit from Projection

function declare

template <typename PROJ >
inline const PROJ & declare(
    const std::string & name,
    const PROJ & proj
)

Register a contained projection (user-facing, arg-reordered version)

Todo: Add SFINAE to require that PROJ inherit from Projection

function project

virtual void project(
    const Event & e
)

Apply the projection to the event.

Reimplements: Rivet::AxesDefinition::project

function compare

virtual CmpState compare(
    const Projection & p
) const

Compare projections.

Reimplements: Rivet::AxesDefinition::compare


Updated on 2022-08-07 at 20:17:17 +0100