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 
24  ( std::string particle ,
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 
93  void setEvtGenName( const std::string & name ) { m_evtgenName = name ; }
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:
129  std::string m_name;
130 
132  int m_idgeant;
133 
135  int m_idjetset;
136 
138  double m_charge;
139 
141  double m_mass;
142 
144  double m_tlife;
145 
147  std::string m_evtgenName ;
148 
150  int m_pythiaId ;
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.
const ParticleProperty * m_anti
the antiparticle
A trivial class to hold information about a single particle properties.
STL namespace.
void setParticle(const std::string &particle)
Set the particle name.
double m_charge
The charge.
void setLifetime(double t)
Set the particle lifetime.
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
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.
double mass() const
Get the particle mass.
int pythiaID() const
Get the Pythia ID.
void setMaxWidth(double mW)
Set the max width deviation.
const std::string & evtGenName() const
Get the EvtGen name.
double m_mass
The mass.