5#ifndef ISF_EVENT_ITRUTHINCIDENT_H
6#define ISF_EVENT_ITRUTHINCIDENT_H 1
56 virtual const HepMC::FourVector&
position()
const = 0;
150 bool thispassed = (
childP2(i) >= p2cut);
162 bool thispassed = (
childPt2(i) >= pt2cut);
174 bool thispassed = (
childEkin(i) >= ekincut);
bool childrenP2Pass(double p2cut)
Return true if at least one child particle passes the given p^2 cut (= at least one child with p^2 >=...
virtual int physicsProcessCategory() const =0
Return category of the physics process represented by the truth incident (eg hadronic,...
virtual int physicsProcessCode() const =0
Return specific physics process code of the truth incident (eg ionisation, bremsstrahlung,...
virtual int parentPdgCode() const =0
Return the PDG Code of the parent particle.
virtual ISF::InteractionClass_t interactionClassification() const
The interaction classifications are described as follows: STD_VTX: interaction of a particle without ...
void setChildPassedFilters(unsigned short index)
Record that a particular child passed a check.
bool childrenEkinPass(double ekincut)
Return true if at least one child particle passes the given Ekin cut (= at least one child with Ekin ...
virtual int parentBarcode()=0
Return the barcode of the parent particle.
virtual double parentEkin() const =0
Return Ekin of the parent particle.
virtual HepMC::GenParticlePtr parentParticle()=0
Return the parent particle as a HepMC particle type (only called for particles that will enter the He...
virtual double parentPt2() const =0
Return pT^2 of the parent particle.
bool childPassedFilters(unsigned short index) const
Should a particular child be written out to the GenEvent.
virtual HepMC::GenParticlePtr childParticle(unsigned short index, int bc=HepMC::UNDEFINED_ID)=0
Return the i-th child as a HepMC particle type and assign the given Barcode to the simulator particle...
unsigned short numberOfChildren() const
Return total number of child particles.
bool childrenPt2Pass(double pt2cut)
Return true if at least one child particle passes the given pT^2 cut (= at least one child with pT^2 ...
virtual double childPt2(unsigned short index) const =0
Return pT^2 of the i-th child particle.
AtlasDetDescr::AtlasRegion geoID()
Return the SimGeoID corresponding to the vertex of the truth incident.
virtual int parentUniqueID()=0
Return the unique ID of the parent particle.
virtual HepMC::GenParticlePtr parentParticleAfterIncident(int newBC)=0
Return the parent particle after the TruthIncident vertex (and assign a new barcode to it)
virtual double parentP2() const =0
Return p^2 of the parent particle.
ITruthIncident(AtlasDetDescr::AtlasRegion geoID, unsigned short numChildren)
std::vector< bool > m_childPassedFilters
void setPassWholeVertices(bool passWholeVertex)
Set whether this TruthIncident should pass the vertex as a whole or individual children.
virtual bool parentSurvivesIncident() const =0
Return a boolean whether or not the parent particle survives the incident.
virtual int childPdgCode(unsigned short index) const =0
Return the PDG Code of the i-th child particle.
AtlasDetDescr::AtlasRegion m_geoID
region that the TruthIncident is located in
virtual int parentStatus()=0
virtual double childP2(unsigned short index) const =0
Return p^2 of the i-th child particle.
virtual int childBarcode(unsigned short index) const =0
Return the barcode of the i-th child particle (if defined as part of the TruthIncident) otherwise ret...
virtual const HepMC::FourVector & position() const =0
Return HepMC position of the truth vertex.
virtual double childEkin(unsigned short index) const =0
Return Ekin of the i-th child particle.
AtlasRegion
A simple enum of ATLAS regions and sub-detectors.
constexpr int UNDEFINED_ID
GenParticle * GenParticlePtr
InteractionClass_t
The interaction classifications are described as follows: STD_VTX: interaction of a particle without ...