ParticleProperty.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_PARTICLEPROPERTY_H
2 #define GAUDIKERNEL_PARTICLEPROPERTY_H 1
3 // ============================================================================
4 // Include files
5 // ============================================================================
6 #include <string>
7 #include <ostream>
8 #include <iomanip>
9 // ============================================================================
10 
18 class ParticleProperty final {
19 public:
21  ParticleProperty() = default;
22 
25  int geantId ,
26  int jetsetId ,
27  double charge ,
28  double mass ,
29  double tlife ,
30  std::string evtgenName ,
31  int pythiaId ,
32  double maxWidth )
33  : m_name ( std::move(particle) )
34  , m_idgeant ( geantId )
35  , m_idjetset ( jetsetId )
36  , m_charge ( charge )
37  , m_mass ( mass )
38  , m_tlife ( tlife )
39  , m_evtgenName ( std::move(evtgenName) )
40  , m_pythiaId ( pythiaId )
41  , m_maxWidth ( maxWidth )
42  {}
43 
45  ~ParticleProperty() = default;
46 
48  const std::string& particle() const { return m_name; }
49 
51  void setParticle( const std::string& particle ) { m_name = particle; }
52 
54  int geantID() const { return m_idgeant; }
55 
57  void setGeantID( int id ) { m_idgeant = id; }
58 
60  int pdgID() const { return m_idjetset; }
61 
63  void setPdgID( int id) { m_idjetset = id; }
64 
66  int jetsetID() const { return m_idjetset; }
67 
69  void setJetsetID( int id ) { m_idjetset = id; }
70 
72  double charge() const { return m_charge; }
73 
75  void setCharge( double q ) { m_charge = q; }
76 
78  double mass() const { return m_mass; }
79 
81  void setMass( double m ) { m_mass = m; }
82 
84  double lifetime() const { return m_tlife; }
85 
87  void setLifetime( double t ) { m_tlife = t; }
88 
90  const std::string& evtGenName() const { return m_evtgenName ; }
91 
94 
96  int pythiaID() const { return m_pythiaId ; }
97 
99  void setPythiaID( int pId ) { m_pythiaId = pId ; }
100 
102  double maxWidth() const { return m_maxWidth ; }
103 
105  void setMaxWidth( double mW ) { m_maxWidth = mW ; }
106 
108  const ParticleProperty* antiParticle() const { return m_anti ; }
110  void setAntiParticle( const ParticleProperty* p ) { m_anti = p ; }
111 
112  friend std::ostream& operator<<
113  ( std::ostream& stream, const ParticleProperty& pp)
114  {
115  stream << "Name : " << pp.m_name
116  << ", Geant ID : " << pp.m_idgeant
117  << ", JetSet ID : " << pp.m_idjetset
118  << ", Charge (/e): " << pp.m_charge
119  << ", Mass (MeV): " << pp.m_mass
120  << ", Lifetime (ns): " << pp.m_tlife
121  << ", EvtGen Name: " << pp.m_evtgenName
122  << ", Pythia ID: " << pp.m_pythiaId
123  << ", Max width deviation (MeV): " << pp.m_maxWidth ;
124  return stream;
125  }
126 
127 private:
130 
133 
136 
138  double m_charge;
139 
141  double m_mass;
142 
144  double m_tlife;
145 
148 
151 
153  double m_maxWidth ;
154 
156  const ParticleProperty* m_anti = nullptr;
157 };
158 
159 #endif
160 
int pdgID() const
Get the PDG (= JETSET) ID.
std::string m_name
The particle name.
void setMass(double m)
Set the particle charge.
void setPythiaID(int pId)
Set the Pythia ID.
int geantID() const
Get the GEANT3 ID.
void setEvtGenName(const std::string &name)
Set the EvtGen name.
ParticleProperty()=default
Constructors.
double maxWidth() const
Get the max width deviation.
A trivial class to hold information about a single particle properties.
void setParticle(const std::string &particle)
Set the particle name.
double m_charge
The charge.
void setLifetime(double t)
Set the particle lifetime.
STL class.
double m_tlife
The lifetime.
~ParticleProperty()=default
Destructor.
int jetsetID() const
Get the JETSET(StdHep) ID.
double lifetime() const
Get the particle lifetime.
constexpr double m
Definition: SystemOfUnits.h:93
int m_idjetset
The Jetset ID.
void setCharge(double q)
Set the particle charge.
void setPdgID(int id)
Set the PDG (= JETSET) ID.
const ParticleProperty * antiParticle() const
get the pointer to the antiparticle
T move(T...args)
void setGeantID(int id)
Set the GEANT3 ID.
int m_pythiaId
The Pythia ID.
int m_idgeant
The GEANT ID.
std::string m_evtgenName
The EvtGen Name.
double m_maxWidth
The maximum width deviation.
double charge() const
Get the particle charge.
void setJetsetID(int id)
Set the JETSET(StdHep) ID.
void setAntiParticle(const ParticleProperty *p)
set the pointer to the antiparticle
const std::string & particle() const
Get the particle name.
STL class.
double mass() const
Get the particle mass.
int pythiaID() const
Get the Pythia ID.
void setMaxWidth(double mW)
Set the max width deviation.
const ParticleProperty * m_anti
the antiparticle
const std::string & evtGenName() const
Get the EvtGen name.
double m_mass
The mass.