|
ATLAS Offline Software
|
Go to the documentation of this file.
13 #ifndef MCPARTICLEEVENT_TRUTHPARTICLE_H
14 #define MCPARTICLEEVENT_TRUTHPARTICLE_H
27 #include "CLHEP/Vector/LorentzVector.h"
50 namespace Trk {
class RecVertex; }
54 TruthParticleNavigation,
55 TruthParticleMomentum,
122 const HepMC::Flow
flow()
const;
126 int flow(
int code_index )
const;
192 unsigned int nDecay()
const;
195 CLHEP::HepLorentzVector
transformVector(
const HepMC::FourVector& )
const;
198 CLHEP::HepLorentzVector
pDecay(
const std::size_t
i )
const;
201 int pdgDecay(
const std::size_t
i )
const;
323 return *genParticle();
334 CLHEP::HepLorentzVector
hlv(fv.x(),fv.y(),fv.z(),fv.t());
343 #endif //> MCPARTICLEEVENT_TRUTHPARTICLE_H
virtual void set4Mom(const I4Momentum *const theI4Mom)
set 4Momentum (will throw exception if cannot be implemented)
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Polarization polarization(const T &a)
virtual int pdgId() const
Return enum indicating particle id the enum file is available in Event/EventKernel/PdtPdg....
bool hasEtIsol() const
Return true if one has filled the Et isolation infos for this TruthParticle.
CLHEP::HepLorentzVector pDecay(const std::size_t i) const
Return the 4-vec of i-th child of this particle.
int barcode() const
Forwards the HepMC::GenParticle::barcode() information.
HepMC::ConstGenParticlePtr genChild(const std::size_t i) const
Retrieve the i-th child (GenParticle) of this TruthParticle.
std::pair< long int, long int > indices
const TruthParticle * mother(const std::size_t i=0) const
Retrieve the i-th mother (TruthParticle) of this TruthParticle.
const HepMC::Flow flow() const
Forwards the HepMC::GenParticle::flow() information.
McAod::EtIsolations EtIsol_t
An array of doubles of fixed size to modelize the Et isolations for different values of isolation rad...
std::ostream & operator<<(std::ostream &out, const TruthParticle &mc)
ConeSize
Enum for Cone size indexes (for isolation)
~TruthParticle()
Default constructor:
bool hasMother(const int pdgId) const
Return true if the given PDG::id to match can be found within the parents of this TruthParticle.
HepMC::ConstGenParticlePtr genParticle() const
Retrieve the GenParticle this TruthParticle has been made from (if any)
void setGenEventIndex(size_t index)
set the GenEvent index
const HepMC::Polarization polarization() const
Forwards the HepMC::GenParticle::polarization() information.
unsigned int nDecay() const
Number of children of this particle.
virtual ChargeType charge() const
returns charge as a typedef ChargeType currently Charge Type is a double for jets this may be changed...
void setGenParticle(HepMC::ConstGenParticlePtr particle)
Fill the data members of ParticleBase from the GenParticle.
int flow(const T &a, int i)
std::vector< int > m_children
vector of barcodes of all the children of this particle.
HepMC::ConstGenParticlePtr genMother(const std::size_t i=0) const
Retrieve the GenParticle mother of this TruthParticle.
NavigableTerminalNode TruthParticleNavigation
bool hasChild(const int pdgId) const
Return true if the given PDG::id to match can be found within the children of this TruthParticle.
const TruthEtIsolations::EtIsol_t * etIsol() const
Return the transverse energies for all the isolation cones.
HepMC::ConstGenParticlePtr genParticle() const
return the HepMC::GenParticle which is being proxied
int status() const
Forwards the HepMC::GenParticle::status() information.
evtIndex_t genEventIndex() const
const momentum_type & momentumBase() const
access to underlying base type (I4Momentum-like)
ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase > TruthParticleImpl_t
virtual CLHEP::HepLorentzVector hlv() const
CLHEP HepLorentzVector.
CLHEP::HepLorentzVector transformVector(const HepMC::FourVector &) const
returns a Pointer to a CLHEP::LorentzVector from a HepMC::FourVector
const GenParticle * ConstGenParticlePtr
Ensure that the ATLAS eigen extensions are properly loaded.
TruthParticle & operator=(const TruthParticle &rhs)
Assignment operator.
const particle_type & particleBase() const
access to underlying base type (IParticle-like)
double charge(const T &p)
const TruthParticleContainer * m_container
Pointer to the collection holding ourself.
double ChargeType
typedef ChargeType used to anticipate changes here
long compressedExtBarCode() const
Forwards the HepMC::GenParticle::barcode() information.
int pdgDecay(const std::size_t i) const
Return the PDG-Id of the i-th child of this particle.
std::vector< int > m_mothers
vector of barcodes of all the mothers of this particle.
void setCharge(const ChargeType charge)
Set the charge of this TruthParticleBase.
virtual void set4Mom(const I4Momentum &p4)
const TruthParticle * child(const std::size_t i) const
Retrieve the i-th child (TruthParticle) of this TruthParticle.
evtIndex_t m_nGenEventIdx
the index of the GenEvent this particle is in
unsigned int nParents() const
Number of parents of this particle.
void set4Mom(const HepMC::FourVector &hlv)
void setCharge(const ChargeType charge)
Set the charge of this TruthParticle.
TruthParticle()
Default constructor.