|
ATLAS Offline Software
|
Go to the documentation of this file.
7 #ifndef XAODMISSINGET_VERSIONS_MISSINGETASSOCIATION_v1_H
8 #define XAODMISSINGET_VERSIONS_MISSINGETASSOCIATION_v1_H
25 class MissingETAssociationHelper;
107 bool addObject(
const IParticle* pPart,
const std::vector<const IParticle*>& constlist);
114 const std::vector<float>&
calpx()
const;
116 float calpx(
size_t keyIdx)
const;
118 bool setCalPx(
const std::vector<float>& calpxvec);
121 const std::vector<float>&
calpy()
const;
122 float calpy(
size_t keyIdx)
const;
124 bool setCalPy(
const std::vector<float>& calpyvec);
127 const std::vector<float>&
calpz()
const;
128 float calpz(
size_t keyIdx)
const;
130 bool setCalPz(
const std::vector<float>& calpzvec);
133 const std::vector<float>&
cale()
const;
134 float cale(
size_t keyIdx)
const;
136 bool setCalE(
const std::vector<float>& calevec);
140 float calsumpt(
size_t keyIdx)
const;
142 bool setCalSumpt(
const std::vector<float>& calsumptvec);
145 const std::vector<MissingETBase::Types::bitmask_t>&
calkey()
const;
148 bool setCalKey(
const std::vector<MissingETBase::Types::bitmask_t>& calkeyvec);
159 const std::vector<float>&
trkpx()
const;
160 float trkpx(
size_t keyIdx)
const;
162 bool setTrkPx(
const std::vector<float>& trkpxvec);
165 const std::vector<float>&
trkpy()
const;
166 float trkpy(
size_t keyIdx)
const;
168 bool setTrkPy(
const std::vector<float>& trkpyvec);
171 const std::vector<float>&
trkpz()
const;
172 float trkpz(
size_t keyIdx)
const;
174 bool setTrkPz(
const std::vector<float>& trkpzvec);
177 const std::vector<float>&
trke()
const;
178 float trke(
size_t keyIdx)
const;
180 bool setTrkE(
const std::vector<float>& trkevec);
184 float trksumpt(
size_t keyIdx)
const;
186 bool setTrkSumpt(
const std::vector<float>& trksumptvec);
189 const std::vector<MissingETBase::Types::bitmask_t>&
trkkey()
const;
192 bool setTrkKey(
const std::vector<MissingETBase::Types::bitmask_t>& trkkeyvec);
229 std::vector<unsigned char>
overlapTypes(
size_t objIdx)
const;
233 const std::vector<std::vector<unsigned char> >&
overlapTypes);
261 std::vector<const IParticle*>
objects()
const;
262 std::vector<const IParticle*>
objects(std::vector<ConstVec>& calVecs,std::vector<ConstVec>& trkVecs)
const;
263 std::vector<const IParticle*>
objects(
const std::vector<float>*& calpxPtr,
264 const std::vector<float>*& calpyPtr,
265 const std::vector<float>*& calpzPtr,
266 const std::vector<float>*& calePtr,
267 const std::vector<float>*& calsumptPtr,
268 const std::vector<float>*& trkpxPtr,
269 const std::vector<float>*& trkpyPtr,
270 const std::vector<float>*& trkpzPtr,
271 const std::vector<float>*& trkePtr,
272 const std::vector<float>*& trksumptPtr)
const;
341 size_t sizeCal()
const;
342 size_t sizeTrk()
const;
377 std::vector<MissingETBase::Types::bitmask_t>&
f_calkey();
384 std::vector<MissingETBase::Types::bitmask_t>&
f_trkkey();
417 template<
class POBJ,
class LINK>
void f_setObject(
const POBJ* pObj,LINK& elemLink);
void setOverrideMom(const std::map< const IParticle *, ConstVec > &pOverride)
Set override momenta.
void initCache()
initialise cache for overlap removal decisions
const JetContainer * refJetContainer() const
Access reference jet container holding reference jet.
static const SG::AuxElement::Accessor< std::vector< float > > m_acc_trkpz
void clearOverlaps()
Clear the vectors of overlap indices
bool setCalPx(const std::vector< float > &calpxvec)
Set the vector of
std::vector< float > & f_calpy()
const MissingETBase::Types::objlink_vector_t & objectLinks() const
Get the vector of links to the contributing physics or signal objects.
bool operator!=(const MissingETAssociation_v1 &contrib) const
Equality.
void setJetTrkPy(float py)
Set track constituent vector for the reference jet.
float jettrkpx() const
Get the vector for a given object referenced by index.
ConstVec overlapCalVec(const MissingETAssociationHelper &helper) const
Retrieve total cluster-based vector to be subtracted from the jet.
static const SG::AuxElement::Accessor< std::vector< float > > m_acc_calpz
std::vector< std::vector< unsigned char > > & f_overlapTypes()
record overlapTypes between constributing objects
void setJetTrkSumpt(float sumpt)
Set track constituent vector for the reference jet.
Helper class to provide type-safe access to aux data.
MET association descriptor contains object links and corresponding parameters.
bool setTrkPy(const std::vector< float > &trkpyvec)
Set the vector of
MissingETAssociation_v1 & operator=(const MissingETAssociation_v1 &assocDescr)
Base class for elements of a container that can have aux data.
bool hasAlternateConstVec() const
bool removeContrib()
Remove all contributions.
void setJetTrkE(float e)
Set track constituent vector for the reference jet.
const std::vector< float > & cale() const
Get the vector of
void copyData(const MissingETAssociation_v1 &assocDescr)
bool setTrkSumpt(const std::vector< float > &trksumptvec)
Set the vector of
bool identifyOverlaps()
Loop over contributing objects to identify those that share constituents.
std::vector< float > & f_trksumpt()
MissingETBase::Types::constvec_t operator*(const MissingETBase::Types::constvec_t &cvec, float scale)
Scale constituent vector by multiplication.
bool resetContrib(const IParticle *pPart)
Reset the contribution parameters of an object referenced by a pointer.
static const SG::AuxElement::Accessor< float > m_acc_jettrkpx
General namespace for MET EDM software.
bool identifyOverlaps(const IParticle *pPart)
Search association for particles that share constituents with this one.
float & ce()
Returns reference to modifiable data word storing .
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
bool containsSignal(const IParticle *pSig) const
Check if this signal object matches the constituents of any contributing objects.
std::vector< float > & f_trkpz()
const std::vector< std::vector< unsigned char > > & overlapTypes() const
Get the list of object overlapTypes.
float jettrksumpt() const
Get the sumpt for a given object referenced by index.
MissingETBase::Types::constvec_t operator-(const MissingETBase::Types::constvec_t &v0, const MissingETBase::Types::constvec_t &v2)
Subtract constituent vectors.
bool operator!=(const ConstVec &cvec) const
Inequality operator.
bool addObject(const IParticle *pPart, const std::vector< const IParticle * > &constlist)
Add object (particle) from pointer reference with individual constituent vectors.
static const SG::AuxElement::Accessor< std::vector< float > > m_acc_trkpx
uint64_t bitmask_t
Type for status word bit mask.
@ OnlyCluster
CaloCluster based only.
Class providing the definition of the 4-vector interface.
float jettrkpz() const
Get the vector for a given object referenced by pointer.
void setJetTrkPz(float pz)
Set track constituent vector for the reference jet.
static const SG::AuxElement::Accessor< float > m_acc_jettrke
ConstVec(float cpx, float cpy, float cpz, float ce, float sumpt)
Constructor with parameters.
bool setTrkE(const std::vector< float > &trkevec)
Set the vector of
std::tuple< WrapType< TYPES >... > Types
A simple tuple of multiple types.
const std::vector< std::vector< size_t > > & overlapIndices() const
Get the list of object overlapIndices.
bool hasOverlaps(const MissingETAssociationHelper &helper, const IParticle *pPart, MissingETBase::UsageHandler::Policy p=MissingETBase::UsageHandler::OnlyCluster) const
Check if any selected particles overlap this one.
const std::vector< float > & trksumpt() const
Get the vector of
bool hasOverlaps(const MissingETAssociationHelper &helper, size_t objIdx, MissingETBase::UsageHandler::Policy p=MissingETBase::UsageHandler::OnlyCluster) const
Check if any selected particles overlap this one.
Vector sum of constituents for subtractive overlap removal.
bool containsPhysics(const IParticle *pPhys) const
Check if this physics object matches any contributing objects.
static bool testPolicy(const xAOD::IParticle &part, MissingETBase::UsageHandler::Policy p)
bool resetContrib()
Reset all contribution parameters.
bool clearTrkVecs()
Reset the track constituent vectors and keys.
void setCpx(float px)
Set .
float & cpx()
Returns reference to modifiable data word storing .
size_t findIndex(const IParticle *pPart) const
Find index of given object in contributing object store.
size_t refJetIndex() const
Access index of reference jet in its container.
const std::vector< float > & calpx() const
Get the vector of
bool f_removeContrib(size_t objIdx)
Copy the contribution data from a source.
bool setJetLink(const MissingETBase::Types::jetlink_t &jetLnk)
Set the link to the reference jet.
bool removeContrib(const IParticle *pPart)
Remove a contribution referenced by an object pointer.
std::vector< objlink_t > objlink_vector_t
Vector of object links type.
bool setCalSumpt(const std::vector< float > &calsumptvec)
Set the vector of sumpt
float & cpy()
Returns reference to modifiable data word storing .
void setJetTrkVec(const ConstVec &cvec=ConstVec())
Set the track constituent vector for the reference jet.
static const SG::AuxElement::Accessor< std::vector< float > > m_acc_trke
std::map< const IParticle *, ConstVec > overrideMom()
Get override momenta.
const std::vector< float > & calsumpt() const
Get the vector of sumpt
void setCpy(float py)
Set .
float cpy() const
Returns .
float sumpt() const
Returns sum of component pt.
static const SG::AuxElement::Accessor< std::vector< float > > m_acc_cale
xAOD::MissingETAssociation_v1::ConstVec constvec_t
Type for constituent vector.
std::vector< float > & f_trkpy()
float jettrkpy() const
Get the vector for a given object referenced by pointer.
static const SG::AuxElement::Accessor< std::vector< float > > m_acc_calsumpt
std::vector< size_t > overlapIndices(const IParticle *pPart) const
Get the overlap indices for a given object referenced by pointer.
const std::vector< MissingETBase::Types::bitmask_t > & trkkey() const
Get the vector of trk keys.
virtual ~MissingETAssociation_v1()
Assignment operator.
bool setCalPy(const std::vector< float > &calpyvec)
Set the vector of
void setJetTrkPx(float px)
Set track constituent vector for the reference jet.
bool setTrkPx(const std::vector< float > &trkpxvec)
Set the vector of
ConstVec & operator/=(float scale)
Scale vector by division.
MissingETBase::Types::constvec_t operator/(const MissingETBase::Types::constvec_t &cvec, float scale)
Scale constituent vector by division.
bool addOverlap(const IParticle *pPart, size_t index, unsigned char type)
Add overlap index for a given contributing object referenced by pointer.
bool setTrkVec(size_t keyIdx, const ConstVec &cvec=ConstVec())
Set the track constituent vector of an object contribution referenced by index.
MissingETBase::Types::constvec_t operator+(const MissingETBase::Types::constvec_t &v0, const MissingETBase::Types::constvec_t &v2)
Add constituent vectors.
std::vector< std::vector< ElementLink< IParticleContainer > > > m_objConstLinks
Cache object constituents for overlap-finding.
const MissingETBase::Types::jetlink_t & jetLink() const
Get the link to the reference jet.
float cpz() const
Returns .
ConstVec calVec(const IParticle *pPart) const
Get calo constituent vector for a given object.
ConstVec & operator-=(const ConstVec &cvec)
Subtract another vector.
ConstVec jetTrkVec() const
Get track constituent vector for the reference jet.
bool addCalVec(MissingETBase::Types::bitmask_t key, float calpx, float calpy, float calpz, float cale, float sumpt)
Add a key/vector pair for calo contributions.
std::vector< constvec_t > constvec_vector_t
Vector type for constituent vector containers.
ElementLink implementation for ROOT usage.
ConstVec & operator*=(float scale)
Scale vector by multiplication.
bool setTrkKey(const std::vector< MissingETBase::Types::bitmask_t > &trkkeyvec)
Set the vector of keys
~ConstVec()
Data class destructor.
Policy
Policies on usage checks.
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > JetFourMom_t
Base 4 Momentum type for Jet.
MissingETBase::Types::jetlink_t & f_jetLink()
Non-const link reference
std::vector< unsigned char > overlapTypes(const IParticle *pPart) const
Get the overlap types for a given object referenced by pointer.
const std::vector< float > & trke() const
Get the vector of
bool setOverlaps(const IParticle *pPart, const std::vector< size_t > &overlapIndices, const std::vector< unsigned char > &overlapTypes)
Set overlap indices and types for a given contributing object referenced by pointer.
void createPrivateStore()
Function initialising the object to work in standalone mode.
bool setCalVec(size_t keyIdx, const ConstVec &cvec=ConstVec())
Set the calo constituent vector of an object contribution referenced by index.
std::vector< std::vector< size_t > > & f_overlapIndices()
record overlapIndices between constributing objects
std::map< const IParticle *, ConstVec > m_override
bool clearCalVecs()
Reset the calo constituent vectors and keys.
ConstVec overlapTrkVec(const MissingETAssociationHelper &helper) const
Retrieve total track-based vector to be subtracted from the jet.
float jettrke() const
Get the vector for a given object referenced by index.
ConstVec()
Default constructor.
static const SG::AuxElement::Accessor< float > m_acc_jettrksumpt
std::vector< float > & f_trke()
static const SG::AuxElement::Accessor< float > m_acc_jettrkpy
MissingETBase::Types::objlink_vector_t & f_objectLinks()
Non-const link reference.
const std::vector< MissingETBase::Types::bitmask_t > & calkey() const
Get the vector of cal keys.
bool addTrkVec(MissingETBase::Types::bitmask_t key, float trkpx, float trkpy, float trkpz, float ce, float sumpt)
Add a key/vector pair for calo contributions.
const std::vector< float > & calpz() const
Get the vector of
bool isMisc() const
Check if this association is a miscellaneous association.
std::vector< MissingETBase::Types::bitmask_t > & f_calkey()
float cpt() const
Returns .
bool empty() const
Update all internally used ElementLink instances.
static const SG::AuxElement::Accessor< std::vector< float > > m_acc_calpy
const std::vector< float > & trkpy() const
Get the vector of
bool checkUsage(const MissingETAssociationHelper &helper, const IParticle *pSig, MissingETBase::UsageHandler::Policy p) const
Check if this signal object matches the constituents of any flagged contributing objects.
bool setCalE(const std::vector< float > &calevec)
Set the vector of
static const SG::AuxElement::Accessor< float > m_acc_jettrkpz
std::vector< float > & f_calpz()
bool setOverlaps(const std::vector< std::vector< size_t > > &overlapIndices, const std::vector< std::vector< unsigned char > > &overlapTypes)
Set the vector of overlap indices and types.
static const SG::AuxElement::Accessor< std::vector< float > > m_acc_trkpy
size_t findTrkIndex(MissingETBase::Types::bitmask_t mask) const
std::vector< float > & f_calsumpt()
bool f_setLink(LINK &elemLink)
std::vector< float > & f_trkpx()
ConstVec trkVec(const IParticle *pPart) const
Get track constituent vector for a given object.
void setSumpt(float sumpt)
Set sumpt.
bool setCalPz(const std::vector< float > &calpzvec)
Set the vector of
std::vector< float > & f_calpx()
void f_setObject(const POBJ *pObj, LINK &elemLink)
Generalized link manager.
float calpx(const IParticle *pPart) const
Get the vector for a given object referenced by pointer.
std::vector< float > & f_cale()
bool setCalKey(const std::vector< MissingETBase::Types::bitmask_t > &calkeyvec)
Set the vector of keys
bool removeContrib(size_t objIdx)
Remove a contribution referenced by an index.
const std::vector< float > & trkpx() const
Get the vector of
bool operator==(const ConstVec &cvec) const
Equality comparator.
float cpx() const
Returns .
float & cpz()
Returns reference to modifiable data word storing .
void setCpz(float pz)
Set .
ConstVec(const IParticle &ipar)
Constructor from IParticle.
const std::vector< float > & trkpz() const
Get the vector of
size_t findCalIndex(MissingETBase::Types::bitmask_t mask) const
void addOverrideMom(std::map< const IParticle *, ConstVec > &pOverride)
Extend override momentum map.
bool setObjectLinks(const MissingETBase::Types::objlink_vector_t &objLnks)
Set the vector of links to the contributing physics or signal objects.
ConstVec & operator+=(const ConstVec &cvec)
Add another vector.
static const SG::AuxElement::Accessor< std::vector< float > > m_acc_calpx
const Jet * refJet() const
Access reference jet.
std::vector< MissingETBase::Types::bitmask_t > & f_trkkey()
bool operator==(const MissingETAssociation_v1 &contrib) const
float ce() const
Returns .
std::vector< const IParticle * > objects() const
Access contributing objects.
bool setTrkPz(const std::vector< float > &trkpzvec)
Set the vector of
xAOD::JetFourMom_t getAlternateConstVec() const
Base class for elements of a container that can have aux data.
float & sumpt()
Returns reference to modifiable data word storing sum of component pt.
bool setRefJet(const Jet *pJet)
Set reference jet by object pointer reference.
const std::vector< float > & calpy() const
Get the vector of
MissingETAssociation_v1(bool createStore=false)
Default constructor.
static const SG::AuxElement::Accessor< std::vector< float > > m_acc_trksumpt