ATLAS Offline Software
ISFTruthIncident.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ISF_ISFEVENT_ISFTRUTHINCIDENT_H
6 #define ISF_ISFEVENT_ISFTRUTHINCIDENT_H
7 
8 // stl includes
9 #include <vector>
10 
11 // ISF includes
14 // DetectorDescription
15 #include "AtlasDetDescr/AtlasRegion.h" //enum
16 
17 namespace ISF {
18  class ISFParticle;
19 
23  enum KillPrimary {
25  fKillsPrimary = true
26  };
27 
36  public:
39  int process,
42  const HepMC::FourVector *position = 0);
43  virtual ~ISFTruthIncident();
44 
45  ISFTruthIncident( const ISFTruthIncident& ) = delete;
47 
49  const HepMC::FourVector& position() const override final;
51  int physicsProcessCategory() const override final;
53  int physicsProcessCode() const override final;
54 
56  double parentP2() const override final;
58  double parentPt2() const override final;
60  double parentEkin() const override final;
62  int parentPdgCode() const override final;
65  HepMC::GenParticlePtr parentParticle() override final;
66  int parentStatus() override final;
68  int parentBarcode() override final; // TODO Remove this method
70  int parentUniqueID() override final;
72  bool parentSurvivesIncident() const override final;
75  HepMC::GenParticlePtr parentParticleAfterIncident(int newBC) override final;
76 
78  double childP2(unsigned short index) const override final;
80  double childPt2(unsigned short index) const override final;
82  double childEkin(unsigned short index) const override final;
84  int childPdgCode(unsigned short index) const override final;
86  int childBarcode(unsigned short) const override final;
90  HepMC::GenParticlePtr childParticle(unsigned short index,
91  int bc) override final;
96 
97  private:
99 
102 
105 
110  const HepMC::FourVector* m_position;
111  };
112 
113 } // end of namespace
114 
115 #endif // ISF_ISFEVENT_ISFTRUTHINCIDENT_H
ISF::ISFTruthIncident::parentPdgCode
int parentPdgCode() const override final
Return the PDG Code of the parent particle.
Definition: ISFTruthIncident.cxx:89
ISF::ISFTruthIncident::updateChildParticleProperties
void updateChildParticleProperties()
Update the id and particleLink properties of the child particles (to be called after registerTruthInc...
Definition: ISFTruthIncident.cxx:239
ISF::ISFTruthIncident::m_process
const int m_process
Definition: ISFTruthIncident.h:108
ISF::ISFTruthIncident::childP2
double childP2(unsigned short index) const override final
Return p^2 of the i-th child particle.
Definition: ISFTruthIncident.cxx:132
ISF::ISFTruthIncident::parentParticleAfterIncident
HepMC::GenParticlePtr parentParticleAfterIncident(int newBC) override final
Return the parent particle after the TruthIncident vertex (and give it a new barcode)
Definition: ISFTruthIncident.cxx:113
ISF::ISFTruthIncident::updateHepMCTruthParticle
HepMC::GenParticlePtr updateHepMCTruthParticle(ISF::ISFParticle &particle, ISF::ISFParticle *parent=nullptr) const
convert ISFParticle to GenParticle and attach to ISFParticle's TruthBinding
Definition: ISFTruthIncident.cxx:188
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
ISF::ISFTruthIncident::physicsProcessCode
int physicsProcessCode() const override final
Return specific physics process code of the truth incident (eg ionisation, bremsstrahlung,...
Definition: ISFTruthIncident.cxx:73
ISF::ISFTruthIncident::childPdgCode
int childPdgCode(unsigned short index) const override final
Return the PDG Code of the i-th child particle.
Definition: ISFTruthIncident.cxx:145
ISF::ISFTruthIncident::ISFTruthIncident
ISFTruthIncident(const ISFTruthIncident &)=delete
ISF::ISFTruthIncident::childPt2
double childPt2(unsigned short index) const override final
Return pT^2 of the i-th child particle.
Definition: ISFTruthIncident.cxx:136
ISF::ISFTruthIncident::m_parent
ISF::ISFParticle & m_parent
Definition: ISFTruthIncident.h:106
ISF::ISFTruthIncident::m_killsPrimary
const ISF::KillPrimary m_killsPrimary
Definition: ISFTruthIncident.h:109
ISF::ISFTruthIncident::parentSurvivesIncident
bool parentSurvivesIncident() const override final
Return a boolean whether or not the parent particle survives the incident.
Definition: ISFTruthIncident.cxx:109
AtlasRegion.h
index
Definition: index.py:1
ISF::ISFTruthIncident::position
const HepMC::FourVector & position() const override final
Return HepMC position of the truth vertex.
Definition: ISFTruthIncident.cxx:65
AtlasDetDescr::AtlasRegion
AtlasRegion
Definition: AtlasRegion.h:27
HepMC::GenParticlePtr
GenParticle * GenParticlePtr
Definition: GenParticle.h:37
ISF::ISFParticle
Definition: ISFParticle.h:42
ISF::KillPrimary
KillPrimary
Definition: ISFTruthIncident.h:23
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
ISF::ISFTruthIncident::childBarcode
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...
Definition: ISFTruthIncident.cxx:149
SUSY_SimplifiedModel_PostInclude.process
string process
Definition: SUSY_SimplifiedModel_PostInclude.py:42
ISFParticleContainer.h
ISF::ISFTruthIncident::physicsProcessCategory
int physicsProcessCategory() const override final
Return category of the physics process represented by the truth incident (eg hadronic,...
Definition: ISFTruthIncident.cxx:69
ISF::ISFTruthIncident
Definition: ISFTruthIncident.h:35
ITruthIncident.h
ISF::ISFTruthIncident::operator=
ISFTruthIncident & operator=(const ISFTruthIncident &)=delete
ISF::ITruthIncident
Definition: ITruthIncident.h:45
ISF::ISFParticleVector
std::vector< ISF::ISFParticle * > ISFParticleVector
ISFParticle vector.
Definition: ISFParticleContainer.h:26
ISF::ISFTruthIncident::parentP2
double parentP2() const override final
Return p^2 of the parent particle.
Definition: ISFTruthIncident.cxx:77
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ISF::ISFTruthIncident::childEkin
double childEkin(unsigned short index) const override final
Return Ekin of the i-th child particle.
Definition: ISFTruthIncident.cxx:140
ISF::ISFTruthIncident::parentPt2
double parentPt2() const override final
Return pT^2 of the parent particle.
Definition: ISFTruthIncident.cxx:81
ISF::ISFTruthIncident::ISFTruthIncident
ISFTruthIncident()
ISF::ISFTruthIncident::parentUniqueID
int parentUniqueID() override final
Return the unique ID of the parent particle.
Definition: ISFTruthIncident.cxx:105
ISF::ISFTruthIncident::parentParticle
HepMC::GenParticlePtr parentParticle() override final
Return the parent particle as a HepMC particle type (usually only called for particles that will ente...
Definition: ISFTruthIncident.cxx:97
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
ISF::ISFTruthIncident::m_position
const HepMC::FourVector * m_position
Definition: ISFTruthIncident.h:110
ISF
ISFParticleOrderedQueue.
Definition: PrimaryParticleInformation.h:13
ISF::ISFTruthIncident::updateParentAfterIncidentProperties
void updateParentAfterIncidentProperties()
Update the id and particleLink properties of the parentAfterIncident (to be called after registerTrut...
Definition: ISFTruthIncident.cxx:211
HepMC
Definition: Barcode.h:14
ISF::ISFTruthIncident::parentBarcode
int parentBarcode() override final
Return the barcode of the parent particle.
Definition: ISFTruthIncident.cxx:101
ISF::ISFTruthIncident::childParticle
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...
Definition: ISFTruthIncident.cxx:153
python.DecayParser.children
children
Definition: DecayParser.py:32
ISF::ISFTruthIncident::parentEkin
double parentEkin() const override final
Return Ekin of the parent particle.
Definition: ISFTruthIncident.cxx:85
ISF::ISFTruthIncident::parentStatus
int parentStatus() override final
Definition: ISFTruthIncident.cxx:93
ISF::fPrimarySurvives
@ fPrimarySurvives
Definition: ISFTruthIncident.h:24
ISF::ITruthIncident::geoID
AtlasDetDescr::AtlasRegion geoID()
Return the SimGeoID corresponding to the vertex of the truth incident.
Definition: ITruthIncident.h:53
ISF::ISFTruthIncident::~ISFTruthIncident
virtual ~ISFTruthIncident()
Definition: ISFTruthIncident.cxx:61
ISF::ISFTruthIncident::m_children
const ISFParticleVector & m_children
Definition: ISFTruthIncident.h:107
ISF::fKillsPrimary
@ fKillsPrimary
Definition: ISFTruthIncident.h:25
ISF::ISFTruthIncident::getHepMCTruthParticle
HepMC::GenParticlePtr getHepMCTruthParticle(ISF::ISFParticle &particle) const
return attached truth particle
Definition: ISFTruthIncident.cxx:175