|
ATLAS Offline Software
|
Class describing a particle flow object.
More...
#include <PFO_v1.h>
|
| PFO_v1 () |
| Default constructor. More...
|
|
| PFO_v1 (const PFO_v1 &other) |
| Copy Constructor. More...
|
|
PFO_v1 & | operator= (const PFO_v1 &other)=default |
|
GenVecFourMom_t | genvecP4 () const |
| The full 4-momentum of the particle : GenVector version. More...
|
|
void | setP4 (const FourMom_t &vec) |
| set the 4-vec More...
|
|
void | setP4 (float pt, float eta, float phi, float m=0.0) |
| set the 4-vec More...
|
|
FourMom_t | p4EM () const |
| get EM scale 4-vector More...
|
|
GenVecFourMom_t | genvecP4EM () const |
| get EM scale 4-vector More...
|
|
void | setP4EM (const FourMom_t &p4EM) |
| set EM scale 4-vector More...
|
|
void | setP4EM (float pt, float eta, float phi, float m) |
| set EM scale 4-vector More...
|
|
virtual double | ptEM () const |
| get EM scale pt More...
|
|
virtual double | etaEM () const |
| get EM scale eta More...
|
|
virtual double | phiEM () const |
| get EM scale phi More...
|
|
virtual double | mEM () const |
| get EM scale mass More...
|
|
virtual double | eEM () const |
| get EM scale energy More...
|
|
float | bdtPi0Score () const |
| get BDT Score used to classify clusters as Pi0 like or not More...
|
|
void | setBDTPi0Score (float BDTPi0Score) |
| set BDT Score used to classify clusters as Pi0 like or not More...
|
|
float | centerMag () const |
| get CenterMag moment needed for vertex correction More...
|
|
void | setCenterMag (float CenterMag) |
| set CenterMag moment needed for vertex correction More...
|
|
bool | isCharged () const |
| is a charged PFO More...
|
|
float | charge () const |
| get charge of PFO More...
|
|
void | setCharge (float charge) |
| set charge of PFO More...
|
|
template<class T > |
void | setAttribute (PFODetails::PFOAttributes AttributeType, const T &anAttribute) |
| Set a PFO Variable via enum - overwrite is allowed. More...
|
|
template<class T > |
bool | attribute (PFODetails::PFOAttributes AttributeType, T &anAttribute) const |
| get a PFO Variable via enum More...
|
|
template<class T > |
void | setAttribute (const std::string &AttributeType, const T &anAttribute) |
| Set a PFO Variable via string - overwrite is allowed. More...
|
|
template<class T > |
bool | attribute (const std::string &AttributeType, T &anAttribute) const |
| Get a PFO Variable via string. More...
|
|
bool | getClusterMoment (float &theMoment, xAOD::CaloCluster::MomentType momentType) const |
| Accessor for cluster moments. More...
|
|
unsigned int | nCaloCluster () const |
| Find out how many CaloCluster are linked. More...
|
|
const CaloCluster * | cluster (unsigned int index) const |
| Retrieve a const pointer to a CaloCluster. More...
|
|
const TrackParticle * | track (unsigned int index) const |
| Retrieve a const pointer to a Rec::TrackParticle. More...
|
|
const xAOD::Vertex * | vertex () const |
| Retrieve a const pointer to the xAOD::Vertex a charged PFO is associated to. More...
|
|
bool | setVertexLink (const ElementLink< xAOD::VertexContainer > &theVertexLink) |
| Set a vertex link. More...
|
|
template<class T > |
void | convertLink (ElementLink< IParticleContainer > &IParticleLink, const ElementLink< T > &templateLink) |
| Convert a generic link to an IParticleLink - perhaps this will go in a dedicated helper tool? More...
|
|
bool | setTrackLink (const ElementLink< xAOD::TrackParticleContainer > &theTrack) |
| Set a track constituent - does NOT append to existing container
More...
|
|
bool | setClusterLink (const ElementLink< xAOD::CaloClusterContainer > &theCluster) |
| Set a cluster constituent - does NOT append to existing container
More...
|
|
bool | addClusterLink (const ElementLink< xAOD::CaloClusterContainer > &theCluster) |
| Add a cluster constituent appends to existing container. More...
|
|
bool | setAssociatedParticleLink (PFODetails::PFOParticleType ParticleType, const ElementLink< IParticleContainer > &theParticle) |
| Set an IParticle constituent via enum - does NOT append to existing container. More...
|
|
void | setAssociatedParticleLink (const std::string &ParticleType, const ElementLink< IParticleContainer > &theParticle) |
| Set an IParticle constituent via string - does NOT append to existing container. More...
|
|
bool | addAssociatedParticleLink (PFODetails::PFOParticleType ParticleType, const ElementLink< IParticleContainer > &theParticle) |
| Add an IParticle constituent via enum - appends to existing container. More...
|
|
void | addAssociatedParticleLink (const std::string &ParticleType, const ElementLink< IParticleContainer > &theParticle) |
| Add an IParticle constituent via enum - appends to existing container. More...
|
|
bool | setAssociatedParticleLinks (PFODetails::PFOParticleType ParticleType, const std::vector< ElementLink< IParticleContainer > > &theParticles) |
| Set a vector of PFO constituent particle types via enum - overwrite is allowed. More...
|
|
bool | associatedParticles (PFODetails::PFOParticleType ParticleType, std::vector< const IParticle * > &theParticles) const |
| get a vector of PFO constituent particle types via enum More...
|
|
void | setAssociatedParticleLinks (const std::string &ParticleType, const std::vector< ElementLink< IParticleContainer > > &theParticles) |
| Set a vector of PFO constituent particle types via string - overwrite is allowed. More...
|
|
bool | associatedParticles (const std::string &ParticleType, std::vector< const IParticle * > &theParticles) const |
| get a vector of PFO constituent particle types via string More...
|
|
TLorentzVector | GetVertexCorrectedFourVec (const xAOD::Vertex &vertexToCorrectTo) const |
| Correct 4-vector to point at a vertex. More...
|
|
TLorentzVector | GetVertexCorrectedFourVec (const TVector3 &vertexToCorrectTo) const |
| Correct 4-vector to point at a vertex. More...
|
|
TLorentzVector | GetVertexCorrectedEMFourVec (const xAOD::Vertex &vertexToCorrectTo) const |
| Correct EM scale 4-vector to point at a vertex. More...
|
|
TLorentzVector | GetVertexCorrectedEMFourVec (const TVector3 &vertexToCorrectTo) const |
| Correct EM scale 4-vector to point at a vertex. More...
|
|
void | toPersistent () |
| prepare all links for persistification More...
|
|
template<> |
void | setAttribute (const std::string &AttributeType, const xAOD::PFODetails::PFOLeptonType &anAttribute) |
| specaial implementations for floats, for eflowRec JetETMiss variables, to reduce disk space usage More...
|
|
template<> |
bool | attribute (const std::string &AttributeType, xAOD::PFODetails::PFOLeptonType &anAttribute) const |
|
template<> |
void | setAttribute (PFODetails::PFOAttributes AttributeType, const float &anAttribute) |
|
template<> |
bool | attribute (PFODetails::PFOAttributes AttributeType, float &anAttribute) const |
|
template<> |
void | setAttribute (PFODetails::PFOAttributes AttributeType, const double &anAttribute) |
| special implementations for doubles to prevent user from putting doubles in the aux store - convert to float in this case More...
|
|
template<> |
bool | attribute (PFODetails::PFOAttributes AttributeType, double &anAttribute) const |
|
template<> |
void | setAttribute (const std::string &AttributeType, const double &anAttribute) |
|
template<> |
bool | attribute (const std::string &AttributeType, double &anAttribute) const |
|
template<class T , class ALLOC = AuxAllocator_t<T>> |
XAOD_AUXDATA_DEPRECATED Accessor< T, ALLOC >::reference_type | auxdata (const std::string &name) |
| Fetch an aux data variable, as a non-const reference. More...
|
|
template<class T , class ALLOC = AuxAllocator_t<T>> |
XAOD_AUXDATA_DEPRECATED Accessor< T, ALLOC >::const_reference_type | auxdata (const std::string &name) const |
| Fetch an aux data variable, as a const reference. More...
|
|
template<class T , class ALLOC = AuxAllocator_t<T>> |
XAOD_AUXDATA_DEPRECATED bool | isAvailableWritable (const std::string &name, const std::string &clsname="") |
| Check if an aux variable is available for writing. More...
|
|
const SG::AuxVectorData * | container () const |
| Return the container holding this element. More...
|
|
SG::AuxVectorData * | container () |
| Return the container holding this element. More...
|
|
template<class T , class ALLOC = AuxAllocator_t<T>> |
XAOD_AUXDATA_DEPRECATED Accessor< T, ALLOC >::const_reference_type | auxdataConst (const std::string &name) const |
| Fetch an aux data variable, as a const reference. More...
|
|
template<class T , class ALLOC = AuxAllocator_t<T>> |
XAOD_AUXDATA_DEPRECATED Accessor< T, ALLOC >::const_reference_type | auxdataConst (const std::string &name, const std::string &clsname) const |
| Fetch an aux data variable, as a const reference. More...
|
|
template<class T , class ALLOC = AuxAllocator_t<T>> |
XAOD_AUXDATA_DEPRECATED bool | isAvailableWritableAsDecoration (const std::string &name, const std::string &clsname="") const |
| Check if an aux variable is available for writing as a decoration. More...
|
|
template<class T , class ALLOC = AuxAllocator_t<T>> |
XAOD_AUXDATA_DEPRECATED Decorator< T, ALLOC >::reference_type | auxdecor (const std::string &name) const |
| Fetch an aux decoration, as a non-const reference. More...
|
|
template<class T , class ALLOC = AuxAllocator_t<T>> |
XAOD_AUXDATA_DEPRECATED Decorator< T, ALLOC >::reference_type | auxdecor (const std::string &name, const std::string &clsname) const |
| Fetch an aux decoration, as a non-const reference. More...
|
|
void | makePrivateStore () |
| Create a new (empty) private store for this object. More...
|
|
template<class U1 > |
void | makePrivateStore (const U1 &other) |
| Create a new private store for this object and copy aux data. More...
|
|
template<class U1 > |
void | makePrivateStore (const U1 *other) |
| Create a new private store for this object and copy aux data. More...
|
|
void | releasePrivateStore () |
| Release and free any private store associated with this object. More...
|
|
void | setStore (const SG::IConstAuxStore *store) |
| Set the store associated with this object. More...
|
|
void | setStore (SG::IAuxStore *store) |
| Set the store associated with this object. More...
|
|
void | setStore (const DataLink< SG::IConstAuxStore > &store) |
| Set the store associated with this object. More...
|
|
void | setConstStore (const SG::IConstAuxStore *store) |
| Synonym for setStore with IConstAuxStore . More...
|
|
void | setNonConstStore (SG::IAuxStore *store) |
| Synonym for setStore with IAuxStore . More...
|
|
bool | usingPrivateStore () const |
| Test to see if this object is currently using a private store. More...
|
|
bool | usingStandaloneStore () const |
| Test to see if this object is currently using a standalone store. More...
|
|
const SG::IConstAuxStore * | getConstStore () const |
| Return the current store, as a const interface. More...
|
|
SG::IAuxStore * | getStore () const |
| Return the current store, as a non-const interface. More...
|
|
void | clearCache () |
| Clear the cached aux data pointers. More...
|
|
const SG::auxid_set_t & | getAuxIDs () const |
| Return a set of identifiers for existing data items for this object. More...
|
|
bool | hasStore () const |
| Return true if this object has an associated store. More...
|
|
bool | hasNonConstStore () const |
| Return true if this object has an associated non-const store. More...
|
|
bool | clearDecorations () const |
| Clear all decorations. More...
|
|
bool | trackIndices () const |
| Return true if index tracking is enabled for this object. More...
|
|
size_t | index () const |
| Return the index of this element within its container. More...
|
|
size_t | index () const |
| Return the index of this element within its container. More...
|
|
|
virtual double | pt () const |
| The transverse momentum ( \(p_T\)) of the particle. More...
|
|
virtual double | eta () const |
| The pseudorapidity ( \(\eta\)) of the particle. More...
|
|
virtual double | phi () const |
| The azimuthal angle ( \(\phi\)) of the particle. More...
|
|
virtual double | m () const |
| The invariant mass of the particle. More...
|
|
virtual double | e () const |
| The total energy of the particle. More...
|
|
virtual double | rapidity () const |
| The true rapidity (y) of the particle. More...
|
|
virtual FourMom_t | p4 () const |
| The full 4-momentum of the particle. More...
|
|
virtual Type::ObjectType | type () const |
| The type of the object as a simple enumeration. More...
|
|
Class describing a particle flow object.
Definition at line 35 of file PFO_v1.h.
◆ Accessor
template<class T , class ALLOC = AuxAllocator_t<T>>
◆ ConstAccessor
template<class T , class ALLOC = AuxAllocator_t<T>>
◆ Decorator
template<class T , class ALLOC = AuxAllocator_t<T>>
◆ FourMom_t
◆ GenVecFourMom_t
Base 4 Momentum type (GenVector version)
Definition at line 71 of file PFO_v1.h.
◆ TypelessConstAccessor
◆ PrivateStoreState
The current private data state.
Enumerator |
---|
NO_PRIVATE | |
HAVE_PRIVATE | |
HAD_PRIVATE | |
Definition at line 131 of file IAuxElement.h.
◆ PFO_v1() [1/2]
◆ PFO_v1() [2/2]
◆ addAssociatedParticleLink() [1/2]
Add an IParticle constituent via enum - appends to existing container.
Definition at line 585 of file PFO_v1.cxx.
587 const static Accessor<std::vector<ElementLink<IParticleContainer > > >
acc(
ParticleType);
588 std::vector<ElementLink<IParticleContainer> > storedContainer =
acc(*
this);
594 storedContainer.push_back(newLink);
596 acc(*
this) = storedContainer;
◆ addAssociatedParticleLink() [2/2]
Add an IParticle constituent via enum - appends to existing container.
Definition at line 571 of file PFO_v1.cxx.
573 if (!p_acc)
return false;
575 if (!p_acc->isAvailable(*
this))
return false;
577 std::vector<ElementLink<IParticleContainer> > storedContainer = (*p_acc)(*this);
578 storedContainer.push_back(theParticle);
579 (*p_acc)(*this) = storedContainer;
◆ addClusterLink()
Add a cluster constituent appends to existing container.
Definition at line 555 of file PFO_v1.cxx.
◆ associatedParticles() [1/2]
bool xAOD::PFO_v1::associatedParticles |
( |
const std::string & |
ParticleType, |
|
|
std::vector< const IParticle * > & |
theParticles |
|
) |
| const |
get a vector of PFO constituent particle types via string
Definition at line 645 of file PFO_v1.cxx.
646 const static ConstAccessor<std::vector<ElementLink<IParticleContainer > > >
acc(
ParticleType);
647 if (!
acc.isAvailable(*
this))
return false;
649 const std::vector<ElementLink<IParticleContainer> >& theLinks =
acc(*
this);
650 std::vector<ElementLink<IParticleContainer> >::const_iterator firstLink = theLinks.begin();
651 for (; firstLink != theLinks.end(); ++firstLink) {
652 if ( (*firstLink).isValid()) theParticles.push_back(**firstLink);
653 else theParticles.push_back(
nullptr);
◆ associatedParticles() [2/2]
get a vector of PFO constituent particle types via enum
Definition at line 610 of file PFO_v1.cxx.
613 if (!p_acc)
return false;
615 if (!p_acc->isAvailable(*
this))
return false;
617 const std::vector<ElementLink<IParticleContainer> >& theLinks = (*p_acc)(*this);
618 std::vector<ElementLink<IParticleContainer> >::const_iterator firstLink = theLinks.begin();
619 for (; firstLink != theLinks.end(); ++firstLink) {
620 if ( (*firstLink).isValid()) theParticles.push_back(**firstLink);
621 else theParticles.push_back(
nullptr);
◆ attribute() [1/6]
template<>
bool xAOD::PFO_v1::attribute |
( |
const std::string & |
AttributeType, |
|
|
double & |
anAttribute |
|
) |
| const |
Definition at line 393 of file PFO_v1.cxx.
395 float internalAttribute;
396 bool isValid = attribute<float>(AttributeType,internalAttribute);
397 if (
isValid) anAttribute =
static_cast<float>(internalAttribute);
◆ attribute() [2/6]
template<class T >
bool xAOD::PFO_v1::attribute |
( |
const std::string & |
AttributeType, |
|
|
T & |
anAttribute |
|
) |
| const |
◆ attribute() [3/6]
Definition at line 262 of file PFO_v1.cxx.
265 isValid = attribute<uint16_t>(AttributeType,internalAttribute);
◆ attribute() [4/6]
Definition at line 377 of file PFO_v1.cxx.
379 float internalAttribute;
380 bool isValid = attribute<float>(AttributeType,internalAttribute);
381 if (
isValid) anAttribute =
static_cast<double>(internalAttribute);
◆ attribute() [5/6]
Definition at line 289 of file PFO_v1.cxx.
292 int internalAttribute;
293 isValid = attribute<int>(AttributeType,internalAttribute);
295 else anAttribute = 0.0;
301 if( ! p_acc ) {
return false ;}
303 if( ! p_acc->isAvailable( *
this ) )
return false;
305 anAttribute =( *p_acc )( *this );
◆ attribute() [6/6]
◆ auxdata() [1/4]
template<class T , class ALLOC = AuxAllocator_t<T>>
Fetch an aux data variable, as a non-const reference.
- Parameters
-
name | Name of the aux variable. |
This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor
class.
◆ auxdata() [2/4]
template<class T , class ALLOC = AuxAllocator_t<T>>
Fetch an aux data variable, as a const reference.
- Parameters
-
name | Name of the aux variable. |
This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor
or ConstAccessor
classes.
◆ auxdata() [3/4]
Fetch an aux data variable, as a non-const reference.
This function provides an easy way for users to decorate objects with auxiliary data.
Take note that this function is slow. Should not be used inside time-critical code.
- Parameters
-
name | Name of the aux variable |
clsname | The name of the associated class. May be blank |
- Returns
- A modifiable reference to the decoration
Definition at line 98 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.
◆ auxdata() [4/4]
Fetch an aux data variable, as a const reference.
This function provides an easy way for users to retrieve auxiliary decorations from an object.
Take note that this function is slow. Should not be used inside time-critical code.
- Parameters
-
name | Name of the aux variable |
clsname | The name of the associated class. May be blank |
- Returns
- A constant reference to the decoration
Definition at line 118 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.
◆ auxdataConst() [1/2]
template<class T , class ALLOC = AuxAllocator_t<T>>
Fetch an aux data variable, as a const reference.
- Parameters
-
name | Name of the aux variable. |
This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the ConstAccessor
class.
◆ auxdataConst() [2/2]
template<class T , class ALLOC = AuxAllocator_t<T>>
Fetch an aux data variable, as a const reference.
- Parameters
-
name | Name of the aux variable. |
clsname | The name of the associated class. May be blank. |
This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the ConstAccessor
class.
◆ auxdecor() [1/2]
template<class T , class ALLOC = AuxAllocator_t<T>>
Fetch an aux decoration, as a non-const reference.
- Parameters
-
name | Name of the aux variable. |
This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor
class.
If the container is locked, this will allow fetching only variables that do not yet exist (in which case they will be marked as decorations) or variables already marked as decorations.
◆ auxdecor() [2/2]
template<class T , class ALLOC = AuxAllocator_t<T>>
Fetch an aux decoration, as a non-const reference.
- Parameters
-
name | Name of the aux variable. |
clsname | The name of the associated class. May be blank. |
This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor
class.
If the container is locked, this will allow fetching only variables that do not yet exist (in which case they will be marked as decorations) or variables already marked as decorations.
◆ bdtPi0Score()
float xAOD::PFO_v1::bdtPi0Score |
( |
| ) |
const |
get BDT Score used to classify clusters as Pi0 like or not
◆ centerMag()
float xAOD::PFO_v1::centerMag |
( |
| ) |
const |
get CenterMag moment needed for vertex correction
◆ charge()
float xAOD::PFO_v1::charge |
( |
| ) |
const |
◆ clearAux()
void SG::AuxElement::clearAux |
( |
| ) |
|
|
privateinherited |
Clear all aux data associated with this element.
If this object has no associated store, this does nothing. If the associated aux data is const, this throws ExcConstAuxData
.
Definition at line 535 of file AuxElement.cxx.
◆ clearCache()
void SG::AuxElement::clearCache |
( |
| ) |
|
|
inherited |
Clear the cached aux data pointers.
You should call this any time something changes in the aux store that could invalidate the vector pointers.
Definition at line 319 of file AuxElement.cxx.
◆ clearDecorations()
bool SG::AuxElement::clearDecorations |
( |
| ) |
const |
|
inherited |
Clear all decorations.
Erase all decorations from an associated store, restoring the state to when lock
was called.
Returns true if there were any decorations that were cleared, false if the store did not contain any decorations.
Definition at line 385 of file AuxElement.cxx.
◆ cluster()
Retrieve a const pointer to a CaloCluster.
Definition at line 669 of file PFO_v1.cxx.
672 if (!p_acc)
return nullptr;
673 else if (!p_acc->isAvailable(*
this)) {
return nullptr;}
675 const std::vector<ElementLink<IParticleContainer> >& theLinks = (*p_acc)(*this);
676 if(
index<theLinks.size()) {
680 if (
nullptr == theParticle)
return nullptr;
◆ container() [1/2]
Return the container holding this element.
◆ container() [2/2]
Return the container holding this element.
◆ convertLink()
Convert a generic link to an IParticleLink - perhaps this will go in a dedicated helper tool?
◆ copyAux()
Copy aux data from another object.
- Parameters
-
other | The object from which to copy. |
If this object has no associated store, this does nothing. If the associated aux data is const, this throws ExcConstAuxData
.
All aux data items from other
are copied to this object. Any aux data items associated with this object that are not present in other
are cleared. (If other
has no aux data, then all aux data items for this object are cleared.)
Definition at line 561 of file AuxElement.cxx.
575 size_t oindex =
other.index();
582 if (!
r.isLinked (auxid)) {
583 r.copy (auxid, cont,
index(), *ocont, oindex, 1);
588 if (!other_ids.test (auxid)) {
589 r.clear (auxid, cont,
index(), 1);
◆ e()
double xAOD::PFO_v1::e |
( |
| ) |
const |
|
virtual |
The total energy of the particle.
Implements xAOD::IParticle.
Definition at line 81 of file PFO_v1.cxx.
83 const static ConstAccessor<float> accPt(
"pt");
84 float pt = accPt(*
this);
◆ eEM()
double xAOD::PFO_v1::eEM |
( |
| ) |
const |
|
virtual |
get EM scale energy
Definition at line 233 of file PFO_v1.cxx.
237 const static ConstAccessor<float> accPt(
"ptEM");
238 float pt = accPt(*
this);
240 if (
pt < 0.0)
return -
p4EM().E();
241 else return p4EM().E();
◆ eta()
double xAOD::PFO_v1::eta |
( |
| ) |
const |
|
virtual |
The pseudorapidity ( \(\eta\)) of the particle.
Implements xAOD::IParticle.
Definition at line 60 of file PFO_v1.cxx.
62 const static ConstAccessor<float> accEta(
"eta");
63 float eta = accEta(*
this);
◆ etaEM()
double xAOD::PFO_v1::etaEM |
( |
| ) |
const |
|
virtual |
◆ genvecP4()
The full 4-momentum of the particle : GenVector version.
Definition at line 101 of file PFO_v1.cxx.
◆ genvecP4EM()
get EM scale 4-vector
Definition at line 160 of file PFO_v1.cxx.
165 const static ConstAccessor<float> accPt(
"ptEM");
166 const static ConstAccessor<float> accEta(
"eta");
167 const static ConstAccessor<float> accPhi(
"phi");
168 const static ConstAccessor<float> accM(
"mEM");
170 return GenVecFourMom_t(accPt(*
this), accEta(*
this), accPhi(*
this), accM(*
this));
◆ getAttributeName_FromClusterMoment()
Map from cluster moment name onto PFOAttribute name.
Definition at line 433 of file PFO_v1.cxx.
◆ getAuxIDs()
Return a set of identifiers for existing data items for this object.
If this object has a private or standalone store, then information from that will be returned. Otherwise, if this element is part of a container, then information for the container will be returned. Otherwise, return an empty set.
Definition at line 335 of file AuxElement.cxx.
337 #ifdef ATHCONTAINERS_R21_COMPAT
◆ getClusterMoment()
Accessor for cluster moments.
Definition at line 402 of file PFO_v1.cxx.
406 double myMoment = -99.0;
409 bool gotMoment = theCluster->
retrieveMoment( momentType, myMoment);
412 else if (gotMoment) {
413 theMoment =
static_cast<float>(myMoment);
◆ getClusterMomentFromPFO()
Gives access to cluster moments direct from the PFO - getClusterMoment calls this, if needed.
Definition at line 423 of file PFO_v1.cxx.
426 if (!haveGotAttributeInMap)
return false;
428 bool isRetrieved = this->
attribute(myAttribute, theMoment);
◆ getConstStore()
Return the current store, as a const interface.
This will be non-zero if either a const or non-const store is associated with this object. This will fetch either a private or standalone store.
Definition at line 284 of file AuxElement.cxx.
◆ getStore()
Return the current store, as a non-const interface.
This will be non-zero if a non-const store is associated with this object. This will fetch either a private or standalone store.
Definition at line 299 of file AuxElement.cxx.
302 #ifdef ATHCONTAINERS_R21_COMPAT
◆ GetVertexCorrectedEMFourVec() [1/2]
TLorentzVector xAOD::PFO_v1::GetVertexCorrectedEMFourVec |
( |
const TVector3 & |
vertexToCorrectTo | ) |
const |
Correct EM scale 4-vector to point at a vertex.
Definition at line 742 of file PFO_v1.cxx.
744 TLorentzVector theNewVector(0.0,0.0,0.0,0.0);
745 theNewVector.SetPtEtaPhiM(this->
ptEM(), this->
etaEM(), this->
phiEM(), this->
mEM());
◆ GetVertexCorrectedEMFourVec() [2/2]
TLorentzVector xAOD::PFO_v1::GetVertexCorrectedEMFourVec |
( |
const xAOD::Vertex & |
vertexToCorrectTo | ) |
const |
Correct EM scale 4-vector to point at a vertex.
Definition at line 737 of file PFO_v1.cxx.
738 TVector3 theVertexVector(vertexToCorrectTo.
x(), vertexToCorrectTo.
y(), vertexToCorrectTo.
z());
◆ GetVertexCorrectedFourVec() [1/2]
TLorentzVector xAOD::PFO_v1::GetVertexCorrectedFourVec |
( |
const TVector3 & |
vertexToCorrectTo | ) |
const |
Correct 4-vector to point at a vertex.
Definition at line 727 of file PFO_v1.cxx.
729 TLorentzVector theNewVector(0.0,0.0,0.0,0.0);
730 theNewVector.SetPtEtaPhiM(this->
pt(), this->
eta(), this->
phi(), this->
m());
◆ GetVertexCorrectedFourVec() [2/2]
TLorentzVector xAOD::PFO_v1::GetVertexCorrectedFourVec |
( |
const xAOD::Vertex & |
vertexToCorrectTo | ) |
const |
Correct 4-vector to point at a vertex.
Definition at line 722 of file PFO_v1.cxx.
723 TVector3 theVertexVector(vertexToCorrectTo.
x(), vertexToCorrectTo.
y(), vertexToCorrectTo.
z());
◆ hadPrivateData()
bool SG::IAuxElement::hadPrivateData |
( |
| ) |
const |
|
protectedinherited |
True if this element had private data before it was added to its current container.
◆ hasNonConstStore()
bool SG::AuxElement::hasNonConstStore |
( |
| ) |
const |
|
inherited |
Return true if this object has an associated non-const store.
This will be true for either a private or standalone store.
Definition at line 368 of file AuxElement.cxx.
◆ hasStore()
bool SG::AuxElement::hasStore |
( |
| ) |
const |
|
inherited |
Return true if this object has an associated store.
This will be true for either a private or standalone store.
Definition at line 355 of file AuxElement.cxx.
◆ havePrivateData()
bool SG::IAuxElement::havePrivateData |
( |
| ) |
const |
|
protectedinherited |
True if this element currently has private data.
◆ index() [1/2]
size_t SG::IAuxElement::index |
( |
| ) |
const |
|
inherited |
Return the index of this element within its container.
◆ index() [2/2]
size_t SG::IAuxElement::index |
|
inherited |
Return the index of this element within its container.
Inherited from IAuxElement.
◆ isAvailable()
Check if a user property is available for reading or not.
This function should be used to check if a user property which may or may not exist, is set on the object.
- Parameters
-
name | Name of the auxiliary variable |
clsname | The name of the associated class. May be blank |
- Returns
- Whether the decoration exists or not
Definition at line 135 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.
◆ isAvailableWritable() [1/2]
template<class T , class ALLOC = AuxAllocator_t<T>>
Check if an aux variable is available for writing.
- Parameters
-
name | Name of the aux variable. |
clsname | The name of the associated class. May be blank. |
This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor
class.
◆ isAvailableWritable() [2/2]
Check if a user property is available for writing or not.
This function can be used to check whether it will be possible to set a user property on the object.
- Parameters
-
name | Name of the auxiliary variable |
clsname | The name of the associated class. May be blank |
- Returns
- Whether the decoration is possible to set
Definition at line 152 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.
◆ isAvailableWritableAsDecoration()
template<class T , class ALLOC = AuxAllocator_t<T>>
Check if an aux variable is available for writing as a decoration.
- Parameters
-
name | Name of the aux variable. |
clsname | The name of the associated class. May be blank. |
This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor
class.
◆ isCharged()
bool xAOD::PFO_v1::isCharged |
( |
| ) |
const |
◆ isJetETMissFloatForCompression()
Performs a check as to whether a variable should be compressed.
Definition at line 312 of file PFO_v1.cxx.
313 switch (AttributeType) {
◆ m()
double xAOD::PFO_v1::m |
( |
| ) |
const |
|
virtual |
The invariant mass of the particle.
Implements xAOD::IParticle.
Definition at line 74 of file PFO_v1.cxx.
76 const static ConstAccessor<float> accM(
"m");
77 float M = accM(*
this);
◆ makePrivateStore() [1/3]
void SG::AuxElement::makePrivateStore |
( |
| ) |
|
|
inherited |
Create a new (empty) private store for this object.
ExcBadPrivateStore
will be thrown if this object is already associated with a store.
Definition at line 172 of file AuxElement.cxx.
◆ makePrivateStore() [2/3]
template<class U1 >
void SG::AuxElement::makePrivateStore |
( |
const U1 & |
other | ) |
|
|
inherited |
Create a new private store for this object and copy aux data.
- Parameters
-
other | The object from which aux data should be copied. |
ExcBadPrivateStore
will be thrown if this object is already associated with a store.
If other
is an object that has aux data, then those data will be copied; otherwise, nothing will be done.
◆ makePrivateStore() [3/3]
template<class U1 >
void SG::AuxElement::makePrivateStore |
( |
const U1 * |
other | ) |
|
|
inherited |
Create a new private store for this object and copy aux data.
- Parameters
-
other | The object from which aux data should be copied. |
ExcBadPrivateStore
will be thrown if this object is already associated with a store.
If other
is an object that has aux data, then those data will be copied; otherwise, nothing will be done.
◆ makePrivateStore1() [1/2]
Create a new private store for this object and copy aux data.
- Parameters
-
other | The object from which aux data should be copied. |
ExcBadPrivateStore
will be thrown if this object is already associated with a store.
This overload handles the case where other
does have aux data.
Definition at line 521 of file AuxElement.cxx.
◆ makePrivateStore1() [2/2]
void SG::AuxElement::makePrivateStore1 |
( |
const void * |
| ) |
|
|
privateinherited |
Create a new private store for this object and copy aux data.
- Parameters
-
other | The object from which aux data should be copied. |
ExcBadPrivateStore
will be thrown if this object is already associated with a store.
This overload handles the case where other
does not have aux data.
◆ mEM()
double xAOD::PFO_v1::mEM |
( |
| ) |
const |
|
virtual |
get EM scale mass
Definition at line 224 of file PFO_v1.cxx.
227 const static ConstAccessor<float> accM(
"mEM");
228 float M = accM(*
this);
◆ nCaloCluster()
Find out how many CaloCluster are linked.
Definition at line 659 of file PFO_v1.cxx.
661 if (!p_acc)
return 0;
662 else if (!p_acc->isAvailable(*
this)) {
return 0;}
664 const std::vector<ElementLink<IParticleContainer> >& theLinks = (*p_acc)(*this);
665 return theLinks.size();
◆ noPrivateData()
bool SG::IAuxElement::noPrivateData |
( |
| ) |
const |
|
protectedinherited |
True if this element has no private data.
◆ operator=()
◆ p4()
◆ p4EM()
get EM scale 4-vector
Definition at line 144 of file PFO_v1.cxx.
151 const static ConstAccessor<float> accPt(
"ptEM");
152 const static ConstAccessor<float> accEta(
"eta");
153 const static ConstAccessor<float> accPhi(
"phi");
154 const static ConstAccessor<float> accM(
"mEM");
156 p4EM.SetPtEtaPhiM(accPt(*
this), accEta(*
this), accPhi(*
this), accM(*
this));
◆ phi()
double xAOD::PFO_v1::phi |
( |
| ) |
const |
|
virtual |
The azimuthal angle ( \(\phi\)) of the particle.
Implements xAOD::IParticle.
Definition at line 67 of file PFO_v1.cxx.
69 const static ConstAccessor<float> accPhi(
"phi");
70 float phi = accPhi(*
this);
◆ phiEM()
double xAOD::PFO_v1::phiEM |
( |
| ) |
const |
|
virtual |
◆ pt()
double xAOD::PFO_v1::pt |
( |
| ) |
const |
|
virtual |
The transverse momentum ( \(p_T\)) of the particle.
Implements xAOD::IParticle.
Definition at line 52 of file PFO_v1.cxx.
54 const static ConstAccessor<float> accPt(
"pt");
55 float pt = accPt(*
this);
◆ ptEM()
double xAOD::PFO_v1::ptEM |
( |
| ) |
const |
|
virtual |
get EM scale pt
Definition at line 204 of file PFO_v1.cxx.
208 const static ConstAccessor<float> accPt(
"ptEM");
209 float pt = accPt(*
this);
◆ rapidity()
double xAOD::PFO_v1::rapidity |
( |
| ) |
const |
|
virtual |
◆ releasePrivateStore()
void SG::AuxElement::releasePrivateStore |
( |
| ) |
|
|
inherited |
Release and free any private store associated with this object.
ExcBadPrivateStore
will be thrown if this object does not have a private store.
Definition at line 190 of file AuxElement.cxx.
201 typeid(*
m_container) !=
typeid(AuxElementPrivateData))
◆ releasePrivateStoreForDtor()
void SG::AuxElement::releasePrivateStoreForDtor |
( |
| ) |
|
|
privateinherited |
Out-of-line portion of destructor.
Delete a private store if we have one.
Definition at line 398 of file AuxElement.cxx.
400 #ifdef ATHCONTAINERS_R21_COMPAT
◆ setAssociatedParticleLink() [1/2]
Set an IParticle constituent via string - does NOT append to existing container.
Definition at line 566 of file PFO_v1.cxx.
567 std::vector<ElementLink<xAOD::IParticleContainer> > theLinks(1,theParticle);
◆ setAssociatedParticleLink() [2/2]
Set an IParticle constituent via enum - does NOT append to existing container.
Definition at line 561 of file PFO_v1.cxx.
562 std::vector<ElementLink<xAOD::IParticleContainer> > theLinks(1,theParticle);
◆ setAssociatedParticleLinks() [1/2]
Set a vector of PFO constituent particle types via string - overwrite is allowed.
Definition at line 629 of file PFO_v1.cxx.
633 std::vector<ElementLink<IParticleContainer> > storedContainer;
634 std::vector<ElementLink<IParticleContainer> >::const_iterator firstParticle = theParticles.begin();
635 for (; firstParticle != theParticles.end(); ++firstParticle){
638 storedContainer.push_back( myLink );
641 const static Accessor<std::vector<ElementLink<IParticleContainer > > >
acc(
ParticleType);
642 acc(*
this) = storedContainer;
◆ setAssociatedParticleLinks() [2/2]
Set a vector of PFO constituent particle types via enum - overwrite is allowed.
Definition at line 600 of file PFO_v1.cxx.
603 if (!p_acc)
return false;
605 (*p_acc)(*this) = theParticles;
◆ setAttribute() [1/6]
template<>
void xAOD::PFO_v1::setAttribute |
( |
const std::string & |
AttributeType, |
|
|
const double & |
anAttribute |
|
) |
| |
Definition at line 386 of file PFO_v1.cxx.
388 float internalAttribute =
static_cast<float>(anAttribute);
389 setAttribute<float>(AttributeType, internalAttribute);
◆ setAttribute() [2/6]
template<class T >
void xAOD::PFO_v1::setAttribute |
( |
const std::string & |
AttributeType, |
|
|
const T & |
anAttribute |
|
) |
| |
◆ setAttribute() [3/6]
specaial implementations for floats, for eflowRec JetETMiss variables, to reduce disk space usage
Definition at line 257 of file PFO_v1.cxx.
259 this->setAttribute<uint16_t>(AttributeType, uint16_variable);
◆ setAttribute() [4/6]
special implementations for doubles to prevent user from putting doubles in the aux store - convert to float in this case
Definition at line 372 of file PFO_v1.cxx.
373 float internalAttribute =
static_cast<float>(anAttribute);
374 setAttribute<float>(AttributeType, internalAttribute);
◆ setAttribute() [5/6]
Definition at line 274 of file PFO_v1.cxx.
277 const static int maxIntSize = 1000000000;
278 int internalAttribute = maxIntSize;
279 if (
dummy < 0) internalAttribute *= -1;
280 if (dummy < maxIntSize && dummy > -maxIntSize) internalAttribute =
static_cast<int>(
dummy);
281 setAttribute<int>(AttributeType, internalAttribute);
284 float internalAttribute = anAttribute;
◆ setAttribute() [6/6]
◆ setBDTPi0Score()
void xAOD::PFO_v1::setBDTPi0Score |
( |
float |
BDTPi0Score | ) |
|
set BDT Score used to classify clusters as Pi0 like or not
◆ setCenterMag()
void xAOD::PFO_v1::setCenterMag |
( |
float |
CenterMag | ) |
|
set CenterMag moment needed for vertex correction
◆ setCharge()
void xAOD::PFO_v1::setCharge |
( |
float |
charge | ) |
|
◆ setClusterLink()
Set a cluster constituent - does NOT append to existing container
Definition at line 549 of file PFO_v1.cxx.
◆ setConstStore()
Synonym for setStore
with IConstAuxStore
.
- Parameters
-
◆ setHadPrivateData()
void SG::IAuxElement::setHadPrivateData |
( |
| ) |
|
|
privateinherited |
Record that this element used to have private data.
◆ setHavePrivateData()
void SG::IAuxElement::setHavePrivateData |
( |
| ) |
|
|
privateinherited |
Record that this element currently has private data.
◆ setIndex()
Set the index/container for this element.
- Parameters
-
index | The index of this object within the container. |
container | The container holding this object. May be null if this object is being removed from a container. |
Usually this simply sets the index and container members of this object. However, in the case where this object has an associated private store, then we need to deal with releasing the store if the object is being added to a container, or making a new store if the object is being removed from a container.
◆ setIndexPrivate()
Set the index/container for this element.
- Parameters
-
index | The index of this object within the container. |
container | The container holding this object. May be null if this object is being removed from a container. |
This is called from setIndex
when we have a private store to deal with.
Definition at line 462 of file AuxElement.cxx.
464 #ifdef ATHCONTAINERS_R21_COMPAT
482 typeid(*
m_container) ==
typeid(AuxElementPrivateData))
500 "from a container.");
◆ setNonConstStore()
Synonym for setStore
with IAuxStore
.
- Parameters
-
◆ setNoPrivateData()
void SG::IAuxElement::setNoPrivateData |
( |
| ) |
|
|
privateinherited |
Record that this element does not have private data.
◆ setP4() [1/2]
set the 4-vec
Definition at line 107 of file PFO_v1.cxx.
109 const static Accessor<float> accPt(
"pt");
110 accPt(*
this) =
vec.Pt();
112 const static Accessor<float> accEta(
"eta");
113 accEta(*
this) =
vec.Eta();
115 const static Accessor<float> accPhi(
"phi");
116 accPhi(*
this) =
vec.Phi();
118 const static Accessor<float> accM(
"m");
119 accM(*
this) =
vec.M();
◆ setP4() [2/2]
set the 4-vec
Definition at line 124 of file PFO_v1.cxx.
126 const static Accessor<float> accPt(
"pt");
129 const static Accessor<float> accEta(
"eta");
132 const static Accessor<float> accPhi(
"phi");
135 const static Accessor<float> accM(
"m");
◆ setP4EM() [1/2]
set EM scale 4-vector
Definition at line 173 of file PFO_v1.cxx.
174 const static Accessor<float> accPt(
"ptEM");
175 accPt(*
this) =
p4EM.Pt();
177 const static Accessor<float> accEta(
"eta");
178 accEta(*
this) =
p4EM.Eta();
180 const static Accessor<float> accPhi(
"phi");
181 accPhi(*
this) =
p4EM.Phi();
183 const static Accessor<float> accM(
"mEM");
184 accM(*
this) =
p4EM.M();
◆ setP4EM() [2/2]
set EM scale 4-vector
Definition at line 188 of file PFO_v1.cxx.
190 const static Accessor<float> accPt(
"ptEM");
193 const static Accessor<float> accEta(
"eta");
196 const static Accessor<float> accPhi(
"phi");
199 const static Accessor<float> accM(
"mEM");
◆ setStore() [1/3]
Set the store associated with this object.
- Parameters
-
If store is nonzero, this adds a standalone store to the object. The object must not be in a container and must not have a private store. If store is zero, this removes a standalone store.
- Parameters
-
store | Link to the new store. |
Definition at line 249 of file AuxElement.cxx.
◆ setStore() [2/3]
Set the store associated with this object.
- Parameters
-
If store is nonzero, this adds a standalone store to the object. The object must not be in a container and must not have a private store. If store is zero, this removes a standalone store.
Definition at line 221 of file AuxElement.cxx.
◆ setStore() [3/3]
Set the store associated with this object.
- Parameters
-
If store is nonzero, this adds a standalone store to the object. The object must not be in a container and must not have a private store. If store is zero, this removes a standalone store.
Definition at line 237 of file AuxElement.cxx.
◆ setStore1()
Set the store associated with this object.
- Parameters
-
Helper for setStore
. Creates the AuxElementStandaloneData
object if needed and returns it.
- Parameters
-
Helper for setStore
. Creates the @x AuxElementStandaloneData object if needed and returns it.
Definition at line 418 of file AuxElement.cxx.
424 AuxElementStandaloneData*
data =
new AuxElementStandaloneData;
431 return static_cast<AuxElementStandaloneData*
> (
container());
434 throw ExcBadPrivateStore (
"Attempt to attach a standalone store to an "
435 "object in a container or with a private store.");
446 throw ExcBadPrivateStore (
"Attempt to remove a standalone store from an "
447 "object in a container or with a private store.");
◆ setTrackLink()
Set a track constituent - does NOT append to existing container
Definition at line 543 of file PFO_v1.cxx.
◆ setVertexLink()
Set a vertex link.
Definition at line 536 of file PFO_v1.cxx.
537 const static Accessor<ElementLink<xAOD::VertexContainer> >
acc(
"pfo_vertex");
538 acc(*
this) = theVertexLink;
539 acc(*this).toPersistent();
◆ toPersistent()
void xAOD::PFO_v1::toPersistent |
( |
| ) |
|
prepare all links for persistification
Definition at line 774 of file PFO_v1.cxx.
782 const Accessor<std::vector<ElementLink<IParticleContainer > > >& accClusters = *p_accClusters;
783 if ( accClusters.isAvailableWritable(*
this) ){
784 std::vector<ElementLink<IParticleContainer> >& theClusterLinks = accClusters(*
this);
785 std::vector< ElementLink< IParticleContainer > >
::iterator firstClus = theClusterLinks.begin();
786 std::vector< ElementLink< IParticleContainer > >
::iterator lastClus = theClusterLinks.end();
787 for (; firstClus != lastClus; ++firstClus) firstClus->toPersistent();
794 const Accessor<std::vector<ElementLink<IParticleContainer > > >& accTracks = *p_accTracks;
795 if ( accTracks.isAvailableWritable(*
this) ){
796 std::vector<ElementLink<IParticleContainer> >& theTrackLinks = accTracks(*
this);
797 std::vector< ElementLink< IParticleContainer > >
::iterator firstTrack = theTrackLinks.begin();
798 std::vector< ElementLink< IParticleContainer > >
::iterator lastTrack = theTrackLinks.end();
799 for (; firstTrack != lastTrack; ++firstTrack) firstTrack->toPersistent();
807 const Accessor<std::vector<ElementLink<IParticleContainer > > >& accShots = *p_accShots;
808 if ( accShots.isAvailableWritable(*
this) ){
809 std::vector<ElementLink<IParticleContainer> >& theShotLinks = accShots(*
this);
810 std::vector< ElementLink< IParticleContainer > >
::iterator firstShot = theShotLinks.begin();
811 std::vector< ElementLink< IParticleContainer > >
::iterator lastShot = theShotLinks.end();
812 for (; firstShot != lastShot; ++firstShot) firstShot->toPersistent();
◆ track()
Retrieve a const pointer to a Rec::TrackParticle.
Definition at line 691 of file PFO_v1.cxx.
694 if (!p_acc)
return nullptr;
695 else if (!p_acc->isAvailable(*
this)) {
return nullptr;}
697 const std::vector<ElementLink<IParticleContainer> >& theLinks = (*p_acc)(*this);
698 if(
index<theLinks.size()) {
702 if (
nullptr == theParticle)
return nullptr;
◆ trackIndices()
bool SG::AuxElement::trackIndices |
( |
| ) |
const |
|
inherited |
Return true if index tracking is enabled for this object.
Always returns true. Included here to be consistent with AuxVectorBase when standalone objects may be used as template parameters.
◆ type()
◆ usingPrivateStore()
bool SG::AuxElement::usingPrivateStore |
( |
| ) |
const |
|
inherited |
Test to see if this object is currently using a private store.
Definition at line 260 of file AuxElement.cxx.
263 typeid(*m_container) ==
typeid(AuxElementPrivateData);
◆ usingStandaloneStore()
bool SG::AuxElement::usingStandaloneStore |
( |
| ) |
const |
|
inherited |
Test to see if this object is currently using a standalone store.
Test to see if this object is currently using a private store.
Definition at line 270 of file AuxElement.cxx.
273 typeid(*m_container) ==
typeid(AuxElementStandaloneData);
◆ vertex()
Retrieve a const pointer to the xAOD::Vertex a charged PFO is associated to.
Definition at line 712 of file PFO_v1.cxx.
713 const static ConstAccessor<ElementLink<xAOD::VertexContainer> >
acc(
"pfo_vertex");
714 if (!
acc.isAvailable(*
this))
return nullptr;
717 if (tempVertexLink.
isValid())
return *
acc(*
this);
◆ VertexCorrectTheFourVector()
void xAOD::PFO_v1::VertexCorrectTheFourVector |
( |
const TVector3 & |
vertexToCorrectTo, |
|
|
TLorentzVector & |
theFourVector |
|
) |
| const |
|
private |
This does the vertex correction of neutral PFO.
Definition at line 752 of file PFO_v1.cxx.
754 float clusterEta = theFourVector.Eta();
757 float radius = centerMag/cosh(clusterEta);
759 float EtaVertexCorrection = 0.0, PhiVertexCorrection = 0.0;
760 float clusterPhi = theFourVector.Phi();
763 EtaVertexCorrection = (-vertexToCorrectTo.Z()/cosh(clusterEta) + (vertexToCorrectTo.X()*
cos(clusterPhi) + vertexToCorrectTo.Y()*
sin(clusterPhi))*tanh(clusterEta))/
radius;
764 PhiVertexCorrection = (vertexToCorrectTo.X()*
sin(clusterPhi) - vertexToCorrectTo.Y()*
cos(clusterPhi))/
radius;
767 float etaVertexCorrected = clusterEta + EtaVertexCorrection;
768 float p = std::sqrt(theFourVector.E()*theFourVector.E()-theFourVector.M()*theFourVector.M());
769 float ptVertexCorrected =
p/cosh(etaVertexCorrected);
770 theFourVector.SetPtEtaPhiM(ptVertexCorrected, etaVertexCorrected, clusterPhi + PhiVertexCorrection, theFourVector.M());
◆ m_container
The container of which this object is an element.
Should be null if this object is not within a container, except that it may also point at a private store.
Definition at line 324 of file AuxElement.h.
◆ m_index
size_t SG::IAuxElement::m_index |
|
privateinherited |
The index of this element within its container.
Should be 0 if this object is not within a container.
Definition at line 128 of file IAuxElement.h.
◆ m_privateStoreState
◆ s_floatCompressionFactor
const int xAOD::PFO_v1::s_floatCompressionFactor = 1000 |
|
staticprivate |
this defines the factor to compress floats by
Definition at line 203 of file PFO_v1.h.
◆ supportsThinning
constexpr bool SG::AuxElement::supportsThinning = true |
|
staticconstexprinherited |
Mark that this type supports thinning operations.
See AthContainers/supportsThinning.h and AthenaPoolCnvSvc/T_AthenaPoolCnv.h. Helps guide which pool converter template will be used. If false, the default pool converter will be used rather than the aux store-specific one. Ordinary xAOD type should not touch this, but may be overridden in a derived class to handle certain special cases.
Definition at line 920 of file AuxElement.h.
The documentation for this class was generated from the following files:
@ SECOND_R
Second Moment in .
JetConstituentVector::iterator iterator
const SG::IConstAuxStore * getConstStore() const
Return the current store, as a const interface.
@ eflowRec_LAYERENERGY_EME1
const SG::auxid_set_t & getAuxIDs() const
Return a set of identifiers for existing data items for this object.
float x() const
Returns the x position.
@ eflowRec_LAYERENERGY_HEC1
char data[hepevt_bytes_allocation_ATLAS]
PFOLeptonType
This enum is used to label the lepton type of the neutral PFO.
@ ENG_FRAC_CORE
Energy fraction of the sum of the hottest cells in each sampling.
@ eflowRec_LAYERENERGY_EMB3
bool getClusterMomentFromPFO(float &theMoment, xAOD::CaloCluster::MomentType momentType) const
Gives access to cluster moments direct from the PFO - getClusterMoment calls this,...
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type (GenVector version)
virtual double pt() const
The transverse momentum ( ) of the particle.
void convertLink(ElementLink< IParticleContainer > &IParticleLink, const ElementLink< T > &templateLink)
Convert a generic link to an IParticleLink - perhaps this will go in a dedicated helper tool?
@ EM_PROBABILITY
Classification probability to be em-like.
@ eflowRec_CELL_SIGNIFICANCE
static AuxTypeRegistry & instance()
Return the singleton registry instance.
static const SG::AuxElement::Accessor< std::vector< ElementLink< IParticleContainer > > > * getAccessor(PFODetails::PFOParticleType type)
const SG::auxid_set_t & getWritableAuxIDs() const
Return a set of identifiers for writable data items in this store.
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : GenVector version.
@ eflowRec_LAYERENERGY_TileGap2
static const SG::AuxElement::Accessor< T > * constAccessor(xAOD::PFODetails::PFOAttributes variable)
@ eflowRec_LAYERENERGY_HEC0
void copyAux(const ConstAuxElement &other)
Copy aux data from another object.
@ eflowRec_LAYERENERGY_MINIFCAL3
virtual double phiEM() const
get EM scale phi
const SG::AuxVectorData * m_container
The container of which this object is an element.
bool attribute(PFODetails::PFOAttributes AttributeType, T &anAttribute) const
get a PFO Variable via enum
@ AVG_LAR_Q
Sum(E_cell_LAr^2 Q_cell_LAr)/Sum(E_cell_LAr^2)
virtual double eta() const
The pseudorapidity ( ) of the particle.
@ eflowRec_LAYERENERGY_EM3
bool hasNonConstStore() const
Return true if this object has an associated non-const store.
@ eflowRec_LAYERENERGY_FCAL2
@ CENTER_LAMBDA
Shower depth at Cluster Centroid.
bool usingStandaloneStore() const
Test to see if this object is currently using a standalone store.
@ eflowRec_EM_PROBABILITY
bool setIndexPrivate(size_t index, const SG::AuxVectorData *container)
Set the index/container for this element.
@ eflowRec_LAYERENERGY_EM
std::vector< size_t > vec
@ eflowRec_LAYERENERGY_HEC2
@ eflowRec_LAYERENERGY_FCAL1
@ eflowRec_LAYERENERGY_TileBar0
@ eflowRec_LAYERENERGY_TileExt1
Exception — Non-const operation performed on const aux data.
void setNoPrivateData()
Record that this element does not have private data.
@ ENG_FRAC_MAX
Energy fraction of hottest cell.
bool setAssociatedParticleLinks(PFODetails::PFOParticleType ParticleType, const std::vector< ElementLink< IParticleContainer > > &theParticles)
Set a vector of PFO constituent particle types via enum - overwrite is allowed.
@ eflowRec_LAYERENERGY_EMB2
bool isValid() const
Test to see if the link can be dereferenced.
TLorentzVector GetVertexCorrectedFourVec(const xAOD::Vertex &vertexToCorrectTo) const
Correct 4-vector to point at a vertex.
static const int s_floatCompressionFactor
this defines the factor to compress floats by
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
const SG::auxid_set_t & getAuxIDs() const
Return a set of identifiers for existing data items in store associated with this object.
virtual double ptEM() const
get EM scale pt
@ eflowRec_LAYERENERGY_PreSamplerB
FourMom_t p4EM() const
get EM scale 4-vector
@ SECOND_LAMBDA
Second Moment in .
bool getAttributeName_FromClusterMoment(xAOD::PFODetails::PFOAttributes &myAttribute, xAOD::CaloCluster::MomentType &momentType) const
Map from cluster moment name onto PFOAttribute name.
TLorentzVector FourMom_t
Definition of the 4-momentum type.
@ eflowRec_LAYERENERGY_Tile0
Handle mappings between names and auxid_t.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
size_t index() const
Return the index of this element within its container.
virtual double e() const
The total energy of the particle.
void setHadPrivateData()
Record that this element used to have private data.
size_t auxid_t
Identifier for a particular aux data item.
Description of a calorimeter cluster.
@ eflowRec_LAYERENERGY_TileBar2
@ eflowRec_LAYERENERGY_MINIFCAL1
@ eflowRec_LAYERENERGY_MINIFCAL2
void clearAux()
Clear all aux data associated with this element.
AuxElement()
Default constructor.
@ eflowRec_LAYERENERGY_HEC
bool havePrivateData() const
True if this element currently has private data.
@ CELL_SIG_SAMPLING
CaloSample of the cell with the largest |E|/sig.
@ ENG_CALIB_TOT
Calibration Hit energy inside the cluster.
float charge() const
get charge of PFO
SG::IAuxStore * getStore()
Return the current store, as a non-const interface.
@ ENG_CALIB_FRAC_EM
Calibration Hit energy inside the cluster caused by e/gamma/pi0.
@ ISOLATION
Energy weighted fraction of non-clustered perimeter cells.
@ eflowRec_LAYERENERGY_TileGap3
@ ENG_CALIB_FRAC_REST
Calibration Hit energy inside the cluster caused by other particles.
@ eflowRec_LAYERENERGY_EME2
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Principal data class for CaloCell clusters.
@ ParticleFlow
The object is a particle-flow object.
Internal data container for private store.
@ eflowRec_LAYERENERGY_TileGap1
virtual double phi() const
The azimuthal angle ( ) of the particle.
@ eflowRec_LAYERENERGY_PreSamplerE
bool retrieveMoment(MomentType type, double &value) const
Retrieve individual moment.
@ eflowRec_LAYERENERGY_TileBar1
float z() const
Returns the z position.
virtual double mEM() const
get EM scale mass
@ FIRST_ENG_DENS
First Moment in E/V.
bool hasStore() const
Return true if this object has an associated store.
@ ENG_BAD_CELLS
Total em-scale energy of bad cells in this cluster.
bool isCharged() const
is a charged PFO
bool setElement(ElementType element)
Set to point to an element.
bool setStorableObject(BaseConstReference data, bool replace=false, IProxyDict *sg=0)
Set link to point to a new container (storable).
void setHavePrivateData()
Record that this element currently has private data.
void clearCache()
Clear the cached aux data pointers.
@ eflowRec_LAYERENERGY_MINIFCAL0
BaseConstReference getStorableObjectRef() const
Return a reference to the currently-referenced container object.
@ eflowRec_FIRST_ENG_DENS
@ eflowRec_LAYERENERGY_EMB1
bool addAssociatedParticleLink(PFODetails::PFOParticleType ParticleType, const ElementLink< IParticleContainer > &theParticle)
Add an IParticle constituent via enum - appends to existing container.
void makePrivateStore()
Create a new (empty) private store for this object.
@ AVG_TILE_Q
Sum(E_cell_Tile^2 Q_cell_Tile)/Sum(E_cell_Tile^2)
virtual double etaEM() const
get EM scale eta
virtual double m() const
The invariant mass of the particle.
bool setAssociatedParticleLink(PFODetails::PFOParticleType ParticleType, const ElementLink< IParticleContainer > &theParticle)
Set an IParticle constituent via enum - does NOT append to existing container.
void VertexCorrectTheFourVector(const TVector3 &vertexToCorrectTo, TLorentzVector &theFourVector) const
This does the vertex correction of neutral PFO.
void setIndex(size_t index)
Set the index of this element within its container.
@ eflowRec_ENG_CALIB_FRAC_HAD
@ eflowRec_CELL_SIG_SAMPLING
bool clearDecorations() const
Clear all decorations.
Exception — Bad use of private store.
@ SIGNIFICANCE
Cluster significance.
@ eflowRec_LAYERENERGY_HEC3
bool isAvailableWritable(ELT &e) const
Test to see if this variable exists in the store and is writable.
@ eflowRec_LAYERENERGY_EME3
float y() const
Returns the y position.
bool isJetETMissFloatForCompression(xAOD::PFODetails::PFOAttributes AttributeType) const
Performs a check as to whether a variable should be compressed.
@ eflowRec_ENG_CALIB_FRAC_REST
@ LATERAL
Normalized lateral moment.
A set of aux data identifiers.
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
bool toPersistent()
Dummy function provinding the offline interface.
const CaloCluster * cluster(unsigned int index) const
Retrieve a const pointer to a CaloCluster.
@ DELTA_ALPHA
Angular shower axis deviation ( ) from IP-to-Center.
@ ENG_CALIB_FRAC_HAD
Calibration Hit energy inside the cluster caused by charged pi+ and pi-.
@ CELL_SIGNIFICANCE
Cell significance = E/sig of the cell with the largest |E|/sig.
Manage lookup of vectors of auxiliary data.
#define ATLAS_THREAD_SAFE
void releasePrivateStoreForDtor()
Out-of-line portion of destructor.
const SG::AuxVectorData * container() const
Return the container holding this element.
@ eflowRec_LAYERENERGY_FCAL0
@ eflowRec_ENG_CALIB_FRAC_EM
@ LONGITUDINAL
Normalized longitudinal moment.
TLorentzVector GetVertexCorrectedEMFourVec(const xAOD::Vertex &vertexToCorrectTo) const
Correct EM scale 4-vector to point at a vertex.
@ N_BAD_CELLS
number of bad cells
bool hadPrivateData() const
True if this element had private data before it was added to its current container.
float centerMag() const
get CenterMag moment needed for vertex correction
virtual const SG::auxid_set_t & getAuxIDs() const =0
Return a set of identifiers for existing data items in this store.
AuxElementStandaloneData * setStore1(const SG::IConstAuxStore *store)
Set the store associated with this object.
@ eflowRec_LAYERENERGY_TileExt2
@ ENG_POS
Total positive Energy of this cluster.
@ eflowRec_LAYERENERGY_TileExt0
@ BADLARQ_FRAC
Energy fraction of LAr cells with quality larger than a given cut.