ATLAS Offline Software
Loading...
Searching...
No Matches
columnar::MetHelpers::MetMomentumAccessors< CI, CM > Struct Template Referencefinal

a special accessor for the MET momentum More...

#include <MetHelpers.h>

Collaboration diagram for columnar::MetHelpers::MetMomentumAccessors< CI, CM >:

Public Member Functions

 MetMomentumAccessors (ColumnarTool< CM > &columnarBase)
double met (ObjectId< CI, CM > object) const
double phi (ObjectId< CI, CM > object) const
void addParticle (ObjectId< CI, CM > met, float px, float py, float pt) const
void addParticle (ObjectId< CI, CM > met, const xAOD::IParticle &particle) const
template<ContainerIdConcept CI2, typename MomAcc>
requires (isMutable) && requires(const MomAcc& acc,ObjectId<CI2,CM> object) {float(acc.px(object));float(acc.py(object));float(acc.pt(object));}
void addParticle (ObjectId< CI, CM > met, const MomAcc &momAcc, const ObjectId< CI2, CM > &object) const
template<ContainerIdConcept CI2>
requires (isMutable)
void addMet (ObjectId< CI, CM > met, const MetMomentumAccessors< CI2, CM > &momAcc, ObjectId< CI2, CM > metSource) const

Public Attributes

AccessorTemplate< CI, float, CAM, CM > mpx
AccessorTemplate< CI, float, CAM, CM > mpy
AccessorTemplate< CI, float, CAM, CM > sumet

Static Public Attributes

static constexpr bool isMutable = CI::isMutable
static constexpr ColumnAccessMode CAM = isMutable?ColumnAccessMode::output:ColumnAccessMode::input

Detailed Description

template<ContainerIdConcept CI = ContainerId::met, typename CM = ColumnarModeDefault>
struct columnar::MetHelpers::MetMomentumAccessors< CI, CM >

a special accessor for the MET momentum

MET has a somewhat special momentum structure, and the METMaker tool also needs to add to the momentum in a special way. So this class tries to provide a somewhat convenient and robust interface for that.

Definition at line 167 of file MetHelpers.h.

Constructor & Destructor Documentation

◆ MetMomentumAccessors()

template<ContainerIdConcept CI = ContainerId::met, typename CM = ColumnarModeDefault>
columnar::MetHelpers::MetMomentumAccessors< CI, CM >::MetMomentumAccessors ( ColumnarTool< CM > & columnarBase)
inline

Definition at line 173 of file MetHelpers.h.

174 : mpx (columnarBase, "mpx"),
175 mpy (columnarBase, "mpy"),
176 sumet (columnarBase, "sumet")
177 {}
a special accessor for the MET momentum
Definition MetHelpers.h:168
AccessorTemplate< CI, float, CAM, CM > sumet
Definition MetHelpers.h:181
AccessorTemplate< CI, float, CAM, CM > mpy
Definition MetHelpers.h:180
AccessorTemplate< CI, float, CAM, CM > mpx
Definition MetHelpers.h:179

Member Function Documentation

◆ addMet()

template<ContainerIdConcept CI = ContainerId::met, typename CM = ColumnarModeDefault>
template<ContainerIdConcept CI2>
requires (isMutable)
void columnar::MetHelpers::MetMomentumAccessors< CI, CM >::addMet ( ObjectId< CI, CM > met,
const MetMomentumAccessors< CI2, CM > & momAcc,
ObjectId< CI2, CM > metSource ) const
inline

Definition at line 197 of file MetHelpers.h.

197 {
double met(ObjectId< CI, CM > object) const
Definition MetHelpers.h:183

◆ addParticle() [1/3]

template<ContainerIdConcept CI = ContainerId::met, typename CM = ColumnarModeDefault>
template<ContainerIdConcept CI2, typename MomAcc>
requires (isMutable) && requires(const MomAcc& acc,ObjectId<CI2,CM> object) {float(acc.px(object));float(acc.py(object));float(acc.pt(object));}
void columnar::MetHelpers::MetMomentumAccessors< CI, CM >::addParticle ( ObjectId< CI, CM > met,
const MomAcc & momAcc,
const ObjectId< CI2, CM > & object ) const
inline

Definition at line 194 of file MetHelpers.h.

194 {float(acc.px(object));float(acc.py(object));float(acc.pt(object));} {
195 this->addParticle(met, momAcc.px(object), momAcc.py(object), momAcc.pt(object));}
void addParticle(ObjectId< CI, CM > met, float px, float py, float pt) const
Definition MetHelpers.h:188

◆ addParticle() [2/3]

template<ContainerIdConcept CI = ContainerId::met, typename CM = ColumnarModeDefault>
void columnar::MetHelpers::MetMomentumAccessors< CI, CM >::addParticle ( ObjectId< CI, CM > met,
const xAOD::IParticle & particle ) const
inline

Definition at line 190 of file MetHelpers.h.

190 {
191 auto p4 = particle.p4();
192 addParticle (met, p4.Px(), p4.Py(), particle.pt());}

◆ addParticle() [3/3]

template<ContainerIdConcept CI = ContainerId::met, typename CM = ColumnarModeDefault>
void columnar::MetHelpers::MetMomentumAccessors< CI, CM >::addParticle ( ObjectId< CI, CM > met,
float px,
float py,
float pt ) const
inline

Definition at line 188 of file MetHelpers.h.

188 {
189 mpx(met) -= px; mpy(met) -= py; sumet(met) += pt;}

◆ met()

template<ContainerIdConcept CI = ContainerId::met, typename CM = ColumnarModeDefault>
double columnar::MetHelpers::MetMomentumAccessors< CI, CM >::met ( ObjectId< CI, CM > object) const
inlinenodiscard

Definition at line 183 of file MetHelpers.h.

183 {
184 return std::hypot(mpx(object), mpy(object));}

◆ phi()

template<ContainerIdConcept CI = ContainerId::met, typename CM = ColumnarModeDefault>
double columnar::MetHelpers::MetMomentumAccessors< CI, CM >::phi ( ObjectId< CI, CM > object) const
inlinenodiscard

Definition at line 185 of file MetHelpers.h.

185 {
186 return std::atan2(mpy(object), mpx(object));}

Member Data Documentation

◆ CAM

template<ContainerIdConcept CI = ContainerId::met, typename CM = ColumnarModeDefault>
ColumnAccessMode columnar::MetHelpers::MetMomentumAccessors< CI, CM >::CAM = isMutable?ColumnAccessMode::output:ColumnAccessMode::input
staticconstexpr

Definition at line 170 of file MetHelpers.h.

◆ isMutable

template<ContainerIdConcept CI = ContainerId::met, typename CM = ColumnarModeDefault>
bool columnar::MetHelpers::MetMomentumAccessors< CI, CM >::isMutable = CI::isMutable
staticconstexpr

Definition at line 169 of file MetHelpers.h.

◆ mpx

template<ContainerIdConcept CI = ContainerId::met, typename CM = ColumnarModeDefault>
AccessorTemplate<CI,float,CAM,CM> columnar::MetHelpers::MetMomentumAccessors< CI, CM >::mpx

Definition at line 179 of file MetHelpers.h.

◆ mpy

template<ContainerIdConcept CI = ContainerId::met, typename CM = ColumnarModeDefault>
AccessorTemplate<CI,float,CAM,CM> columnar::MetHelpers::MetMomentumAccessors< CI, CM >::mpy

Definition at line 180 of file MetHelpers.h.

◆ sumet

template<ContainerIdConcept CI = ContainerId::met, typename CM = ColumnarModeDefault>
AccessorTemplate<CI,float,CAM,CM> columnar::MetHelpers::MetMomentumAccessors< CI, CM >::sumet

Definition at line 181 of file MetHelpers.h.


The documentation for this struct was generated from the following file: