00001
00002 #ifndef GAUDIKERNEL_PARTICLEPROPERTY_H
00003 #define GAUDIKERNEL_PARTICLEPROPERTY_H 1
00004
00005
00006
00007 #include <string>
00008 #include <ostream>
00009 #include <iomanip>
00010
00011
00019 class ParticleProperty {
00020 public:
00022 ParticleProperty() {}
00023
00024 ParticleProperty
00025 ( const std::string& particle ,
00026 int geantId ,
00027 int jetsetId ,
00028 double charge ,
00029 double mass ,
00030 double tlife ,
00031 const std::string& evtgenName ,
00032 int pythiaId ,
00033 double maxWidth )
00034 : m_name ( particle )
00035 , m_idgeant ( geantId )
00036 , m_idjetset ( jetsetId )
00037 , m_charge ( charge )
00038 , m_mass ( mass )
00039 , m_tlife ( tlife )
00040 , m_evtgenName ( evtgenName )
00041 , m_pythiaId ( pythiaId )
00042 , m_maxWidth ( maxWidth )
00043 , m_anti ( 0 )
00044 {}
00045
00047 ~ParticleProperty() {}
00048
00050 const std::string& particle() const { return m_name; }
00051
00053 void setParticle( const std::string& particle ) { m_name = particle; }
00054
00056 int geantID() const { return m_idgeant; }
00057
00059 void setGeantID( int id ) { m_idgeant = id; }
00060
00062 int pdgID() const { return m_idjetset; }
00063
00065 void setPdgID( int id) { m_idjetset = id; }
00066
00068 int jetsetID() const { return m_idjetset; }
00069
00071 void setJetsetID( int id ) { m_idjetset = id; }
00072
00074 double charge() const { return m_charge; }
00075
00077 void setCharge( double q ) { m_charge = q; }
00078
00080 double mass() const { return m_mass; }
00081
00083 void setMass( double m ) { m_mass = m; }
00084
00086 double lifetime() const { return m_tlife; }
00087
00089 void setLifetime( double t ) { m_tlife = t; }
00090
00092 const std::string& evtGenName() const { return m_evtgenName ; }
00093
00095 void setEvtGenName( const std::string & name ) { m_evtgenName = name ; }
00096
00098 int pythiaID() const { return m_pythiaId ; }
00099
00101 void setPythiaID( int pId ) { m_pythiaId = pId ; }
00102
00104 double maxWidth() const { return m_maxWidth ; }
00105
00107 void setMaxWidth( double mW ) { m_maxWidth = mW ; }
00108
00110 const ParticleProperty* antiParticle() const { return m_anti ; }
00112 void setAntiParticle( const ParticleProperty* p ) { m_anti = p ; }
00113
00114 friend std::ostream& operator<<
00115 ( std::ostream& stream, const ParticleProperty& pp)
00116 {
00117 stream << "Name : " << pp.m_name
00118 << ", Geant ID : " << pp.m_idgeant
00119 << ", JetSet ID : " << pp.m_idjetset
00120 << ", Charge (/e): " << pp.m_charge
00121 << ", Mass (MeV): " << pp.m_mass
00122 << ", Lifetime (ns): " << pp.m_tlife
00123 << ", EvtGen Name: " << pp.m_evtgenName
00124 << ", Pythia ID: " << pp.m_pythiaId
00125 << ", Max width deviation (MeV): " << pp.m_maxWidth ;
00126 return stream;
00127 }
00128
00129 private:
00131 std::string m_name;
00132
00134 int m_idgeant;
00135
00137 int m_idjetset;
00138
00140 double m_charge;
00141
00143 double m_mass;
00144
00146 double m_tlife;
00147
00149 std::string m_evtgenName ;
00150
00152 int m_pythiaId ;
00153
00155 double m_maxWidth ;
00156
00158 const ParticleProperty* m_anti ;
00159 };
00160
00161 #endif
00162