5#ifndef ISF_ISFEVENT_ISFTRUTHINCIDENT_H
6#define ISF_ISFEVENT_ISFTRUTHINCIDENT_H
42 const HepMC::FourVector *
position = 0);
91 int bc) override final;
The generic ISF particle definition,.
void updateChildParticleProperties()
Update the id and particleLink properties of the child particles (to be called after registerTruthInc...
double parentP2() const override final
Return p^2 of the parent particle.
int physicsProcessCategory() const override final
Return category of the physics process represented by the truth incident (eg hadronic,...
virtual ~ISFTruthIncident()
const HepMC::FourVector * m_position
HepMC::GenParticlePtr parentParticleAfterIncident(int newBC) override final
Return the parent particle after the TruthIncident vertex (and give it a new barcode)
double childPt2(unsigned short index) const override final
Return pT^2 of the i-th child particle.
HepMC::GenParticlePtr childParticle(unsigned short index, int bc) override final
Return the i-th child as a HepMC particle type and assign the given Barcode to the simulator particle...
int parentStatus() override final
ISF::ISFParticle & m_parent
const ISFParticleVector & m_children
int physicsProcessCode() const override final
Return specific physics process code of the truth incident (eg ionisation, bremsstrahlung,...
bool parentSurvivesIncident() const override final
Return a boolean whether or not the parent particle survives the incident.
double childP2(unsigned short index) const override final
Return p^2 of the i-th child particle.
double parentEkin() const override final
Return Ekin of the parent particle.
HepMC::GenParticlePtr parentParticle() override final
Return the parent particle as a HepMC particle type (usually only called for particles that will ente...
const ISF::KillPrimary m_killsPrimary
double parentPt2() const override final
Return pT^2 of the parent particle.
void updateParentAfterIncidentProperties()
Update the id and particleLink properties of the parentAfterIncident (to be called after registerTrut...
int childPdgCode(unsigned short index) const override final
Return the PDG Code of the i-th child particle.
int parentPdgCode() const override final
Return the PDG Code of the parent particle.
int parentBarcode() override final
Return the barcode of the parent particle.
HepMC::GenParticlePtr updateHepMCTruthParticle(ISF::ISFParticle &particle, ISF::ISFParticle *parent=nullptr) const
convert ISFParticle to GenParticle and attach to ISFParticle's TruthBinding
ISFTruthIncident(ISF::ISFParticle &parent, const ISFParticleVector &children, int process, AtlasDetDescr::AtlasRegion geoID, ISF::KillPrimary killsPrimary=ISF::fPrimarySurvives, const HepMC::FourVector *position=0)
ISFTruthIncident & operator=(const ISFTruthIncident &)=delete
int childBarcode(unsigned short) const override final
Return the barcode of the i-th child particle (if defined as part of the TruthIncident) otherwise ret...
HepMC::GenParticlePtr getHepMCTruthParticle(ISF::ISFParticle &particle) const
return attached truth particle
const HepMC::FourVector & position() const override final
Return HepMC position of the truth vertex.
int parentUniqueID() override final
Return the unique ID of the parent particle.
double childEkin(unsigned short index) const override final
Return Ekin of the i-th child particle.
ISFTruthIncident(const ISFTruthIncident &)=delete
AtlasDetDescr::AtlasRegion geoID()
Return the SimGeoID corresponding to the vertex of the truth incident.
ITruthIncident(AtlasDetDescr::AtlasRegion geoID, unsigned short numChildren)
const std::string process
AtlasRegion
A simple enum of ATLAS regions and sub-detectors.
KillPrimary
Basically only a boolean, which helps making the code more readable.
std::vector< ISF::ISFParticle * > ISFParticleVector
ISFParticle vector.