|
ATLAS Offline Software
|
Go to the documentation of this file.
8 #ifndef XAODPFLOW_VERSIONS_PFO_V1_H
9 #define XAODPFLOW_VERSIONS_PFO_V1_H
14 #include "AthLinks/ElementLink.h"
28 #include "Math/Vector4D.h"
50 virtual double pt()
const;
52 virtual double eta()
const;
54 virtual double phi()
const;
56 virtual double m()
const;
58 virtual double e()
const;
71 typedef ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiM4D<double> >
GenVecFourMom_t;
92 virtual double ptEM()
const;
94 virtual double etaEM()
const;
96 virtual double phiEM()
const;
98 virtual double mEM()
const;
100 virtual double eEM()
const;
127 template<
class T>
void setAttribute(
const std::string& AttributeType,
const T& anAttribute) ;
129 template<
class T>
bool attribute(
const std::string& AttributeType, T& anAttribute)
const;
215 #endif // XAODPFLOW_VERSIONS_PFO_V1_H
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?
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : GenVector version.
const TrackParticle * track(unsigned int index) const
Retrieve a const pointer to a Rec::TrackParticle.
void setP4EM(const FourMom_t &p4EM)
set EM scale 4-vector
virtual double phiEM() const
get EM scale phi
bool attribute(PFODetails::PFOAttributes AttributeType, T &anAttribute) const
get a PFO Variable via enum
virtual double eta() const
The pseudorapidity ( ) of the particle.
PFOParticleType
This enum is used to label the associated particles to the PFO object.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
std::vector< size_t > vec
bool addClusterLink(const ElementLink< xAOD::CaloClusterContainer > &theCluster)
Add a cluster constituent appends to existing container.
bool associatedParticles(PFODetails::PFOParticleType ParticleType, std::vector< const IParticle * > &theParticles) const
get a vector of PFO constituent particle types via enum
bool setAssociatedParticleLinks(PFODetails::PFOParticleType ParticleType, const std::vector< ElementLink< IParticleContainer > > &theParticles)
Set a vector of PFO constituent particle types via enum - overwrite is allowed.
Class providing the definition of the 4-vector interface.
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
virtual double ptEM() const
get EM scale pt
FourMom_t p4EM() const
get EM scale 4-vector
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.
MomentType
Enums to identify different moments.
bool setClusterLink(const ElementLink< xAOD::CaloClusterContainer > &theCluster)
Set a cluster constituent - does NOT append to existing container
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
virtual double e() const
The total energy of the particle.
bool setVertexLink(const ElementLink< xAOD::VertexContainer > &theVertexLink)
Set a vertex link.
Description of a calorimeter cluster.
unsigned int nCaloCluster() const
Find out how many CaloCluster are linked.
bool setTrackLink(const ElementLink< xAOD::TrackParticleContainer > &theTrack)
Set a track constituent - does NOT append to existing container
float charge() const
get charge of PFO
void setAttribute(const std::string &AttributeType, const T &anAttribute)
Set a PFO Variable via string - overwrite is allowed.
virtual FourMom_t p4() const
The full 4-momentum of the particle.
virtual double phi() const
The azimuthal angle ( ) of the particle.
GenVecFourMom_t genvecP4EM() const
get EM scale 4-vector
virtual double mEM() const
get EM scale mass
void setBDTPi0Score(float BDTPi0Score)
set BDT Score used to classify clusters as Pi0 like or not
float bdtPi0Score() const
get BDT Score used to classify clusters as Pi0 like or not
bool isCharged() const
is a charged PFO
ElementLink implementation for ROOT usage.
virtual double eEM() const
get EM scale energy
Class describing a particle flow object.
PFO_v1()
Default constructor.
bool addAssociatedParticleLink(PFODetails::PFOParticleType ParticleType, const ElementLink< IParticleContainer > &theParticle)
Add an IParticle constituent via enum - appends to existing container.
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.
An STL vector of pointers that by default owns its pointed-to elements.
void setP4(const FourMom_t &vec)
set the 4-vec
const xAOD::Vertex * vertex() const
Retrieve a const pointer to the xAOD::Vertex a charged PFO is associated to.
void setCharge(float charge)
set charge of PFO
bool getClusterMoment(float &theMoment, xAOD::CaloCluster::MomentType momentType) const
Accessor for cluster moments.
Class describing a Vertex.
DATAVECTOR_BASE(xAOD::PFO_v1, xAOD::IParticle)
bool isJetETMissFloatForCompression(xAOD::PFODetails::PFOAttributes AttributeType) const
Performs a check as to whether a variable should be compressed.
const CaloCluster * cluster(unsigned int index) const
Retrieve a const pointer to a CaloCluster.
Class describing a TrackParticle.
virtual double rapidity() const
The true rapidity (y) of the particle.
ObjectType
Type of objects that have a representation in the xAOD EDM.
void setAttribute(PFODetails::PFOAttributes AttributeType, const T &anAttribute)
Set a PFO Variable via enum - overwrite is allowed.
TLorentzVector GetVertexCorrectedEMFourVec(const xAOD::Vertex &vertexToCorrectTo) const
Correct EM scale 4-vector to point at a vertex.
PFO_v1 & operator=(const PFO_v1 &other)=default
void toPersistent()
prepare all links for persistification
bool attribute(const std::string &AttributeType, T &anAttribute) const
Get a PFO Variable via string.
float centerMag() const
get CenterMag moment needed for vertex correction
void setCenterMag(float CenterMag)
set CenterMag moment needed for vertex correction