The Gaudi Framework  v29r0 (ff2e7097)
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 <iomanip>
7 #include <ostream>
8 #include <string>
9 // ============================================================================
10 
18 class ParticleProperty final
19 {
20 public:
22  ParticleProperty() = default;
23 
24  ParticleProperty( std::string particle, int geantId, int jetsetId, double charge, double mass, double tlife,
25  std::string evtgenName, int pythiaId, double maxWidth )
26  : m_name( std::move( particle ) )
27  , m_idgeant( geantId )
28  , m_idjetset( jetsetId )
29  , m_charge( charge )
30  , m_mass( mass )
31  , m_tlife( tlife )
32  , m_evtgenName( std::move( evtgenName ) )
33  , m_pythiaId( pythiaId )
34  , m_maxWidth( maxWidth )
35  {
36  }
37 
39  ~ParticleProperty() = default;
40 
42  const std::string& particle() const { return m_name; }
43 
46 
48  int geantID() const { return m_idgeant; }
49 
51  void setGeantID( int id ) { m_idgeant = id; }
52 
54  int pdgID() const { return m_idjetset; }
55 
57  void setPdgID( int id ) { m_idjetset = id; }
58 
60  int jetsetID() const { return m_idjetset; }
61 
63  void setJetsetID( int id ) { m_idjetset = id; }
64 
66  double charge() const { return m_charge; }
67 
69  void setCharge( double q ) { m_charge = q; }
70 
72  double mass() const { return m_mass; }
73 
75  void setMass( double m ) { m_mass = m; }
76 
78  double lifetime() const { return m_tlife; }
79 
81  void setLifetime( double t ) { m_tlife = t; }
82 
84  const std::string& evtGenName() const { return m_evtgenName; }
85 
88 
90  int pythiaID() const { return m_pythiaId; }
91 
93  void setPythiaID( int pId ) { m_pythiaId = pId; }
94 
96  double maxWidth() const { return m_maxWidth; }
97 
99  void setMaxWidth( double mW ) { m_maxWidth = mW; }
100 
102  const ParticleProperty* antiParticle() const { return m_anti; }
104  void setAntiParticle( const ParticleProperty* p ) { m_anti = p; }
105 
107  {
108  stream << "Name : " << pp.m_name << ", Geant ID : " << pp.m_idgeant << ", JetSet ID : " << pp.m_idjetset
109  << ", Charge (/e): " << pp.m_charge << ", Mass (MeV): " << pp.m_mass << ", Lifetime (ns): " << pp.m_tlife
110  << ", EvtGen Name: " << pp.m_evtgenName << ", Pythia ID: " << pp.m_pythiaId
111  << ", Max width deviation (MeV): " << pp.m_maxWidth;
112  return stream;
113  }
114 
115 private:
118 
121 
124 
126  double m_charge;
127 
129  double m_mass;
130 
132  double m_tlife;
133 
136 
139 
141  double m_maxWidth;
142 
144  const ParticleProperty* m_anti = nullptr;
145 };
146 
147 #endif
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.
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.
ParticleProperty(std::string particle, int geantId, int jetsetId, double charge, double mass, double tlife, std::string evtgenName, int pythiaId, double maxWidth)
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:94
int m_idjetset
The Jetset ID.
friend std::ostream & operator<<(std::ostream &stream, const ParticleProperty &pp)
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.
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.