MINT2
ParticleProperties.h
Go to the documentation of this file.
1 #ifndef PARTICLEPROPERTIES_HH
2 #define PARTICLEPROPERTIES_HH
3 // author: Jonas Rademacker (Jonas.Rademacker@bristol.ac.uk)
4 // status: Mon 9 Feb 2009 19:18:04 GMT
5 
6 #include <string>
7 #include <iostream>
8 
10 #include "Mint/FitParameter.h"
11 #include "Mint/FitParRef.h"
12 
14  static const char* pionString;
15  protected:
16  //MINT::FitParameter* _massPtr;
17  mutable double _mass, _mErrPlus, _mErrMinus;
18  //MINT::FitParameter* _widthPtr;
20  std::string _Isospin; // isospin
21  int _Gparity; // G-parity
22  std::string _JtotalSpin; // total spin
23  int _Parity; // Parity
24  int _Cqm; // Charge 'parity'
25  char _Aformat; // anti-particle format character
26  int _pdg_id;
27  std::string _charge;
28  int _Rexist; // likelihood of existence, baryons only
29  char _Status; // status (estalished or not etc)
30  std::string _name;
31  std::string _quarks;
32 
34 
35  double _Radius;
36  static double _defaultRadius;
37  static double _defaultCharmRadius;
38 
39  bool _isValid;
40 
41  void setRadius();
42 
43  void antiQuarks();
44  void antiQuarkContent();
45  void antiCharge();
46  public:
47  double mass() const{return _mass;}
48  // double mass()const{
49  // if(0 == _massPtr) return _pdgMass;
50  // else return _massPtr->mean();} // mass
51  // const MINT::FitParameter* massFitPtr()const{return _massPtr;} // mass
52  double mErrPlus()const{return _mErrPlus;}
53  double mErrMinus()const{return _mErrMinus;}
54 
55  void setMass(double m) const;
56 
57  double width() const{ return _width;}
58  // double width()const{
59  // if (0 == _widthPtr) return _pdgWidth;
60  // else return _widthPtr->mean();} // width
61  // const MINT::FitParameter* widthFitPtr()const{return _widthPtr;} // width
62  double wErrPlus()const{return _wErrPlus;}
63  double wErrMinus()const{return _wErrMinus;}
64 
65  std::string I()const{return _Isospin;} // isospin
66  int G()const{return _Gparity;}; // G-parity
67  std::string J()const{return _JtotalSpin;} // total spin
68  int P()const{return _Parity;} // Parity
69  int C()const{return _Cqm;} // Charge 'parity'
70  int pdg_id()const{return _pdg_id;}
71  std::string charge()const{return _charge;}
72  int R()const{return _Rexist;} // likelihood of existence, baryons only
73  char S()const{return _Status;} // status (estalished or not etc)
74  std::string name() const;
75  std::string quarks() const{return _quarks;}
77 
78  double lifetime() const;
79  double ctau() const;
80  double ctau_in_microns() const;
81  double lifetime_in_ns() const;
82  double lifetime_in_ps() const;
83 
84  double radius() const;
85 
86  std::string ScalarVectorPseudoAxialVectorTensor() const;
87  std::string SVPAT() const{
89  }
90  bool isVector() const{return ScalarVectorPseudoAxialVectorTensor() == "V";}
91  bool isScalar() const{return ScalarVectorPseudoAxialVectorTensor() == "S";}
92  bool isPseudoScalar() const{return ScalarVectorPseudoAxialVectorTensor() == "P";}
93  bool isAxialVector() const{return ScalarVectorPseudoAxialVectorTensor() == "A";}
94  bool isTensor() const{return ScalarVectorPseudoAxialVectorTensor() == "T";}
95  bool isPseudoTensor() const{return ScalarVectorPseudoAxialVectorTensor() == "PT";}
96 
97  // double mass_in_GeV() const{return mass()/1000.0;}
98 
99  bool isValid() const{return _isValid;}
100 
101  bool hasDistinctAnti() const;
102  bool isItsOwnAnti() const{return ! hasDistinctAnti();}
103 
104  ParticleProperties(std::string pdg_string="");
105 
106  void print(std::ostream& out = std::cout) const;
107 
108  bool operator==(const ParticleProperties& rhs) const{
109  if(_pdg_id==0 && rhs._pdg_id==0){
110  return name() == rhs.name();
111  }
112  return _pdg_id == rhs._pdg_id;
113  }
114  bool operator<(const ParticleProperties& rhs) const{
115  if(_pdg_id==0 || rhs._pdg_id==0){
116  return name() < rhs.name();
117  }
118  return _pdg_id < rhs._pdg_id;
119  }
120  bool operator>(const ParticleProperties& rhs) const{
121  return ! (*this == rhs || *this < rhs);
122  }
123  bool operator<=(const ParticleProperties& rhs) const{
124  return (*this < rhs || *this == rhs);
125  }
126  bool operator>=(const ParticleProperties& rhs) const{
127  return (*this > rhs || *this == rhs);
128  }
129 
130  bool antiThis();
131  ParticleProperties anti() const;
132 
133  bool isNonResonant() const;
134 
135 };
136 
137 std::ostream& operator<<(std::ostream& out, const ParticleProperties& pp);
138 
139 #endif
140 //
double wErrPlus() const
double mErrMinus() const
double lifetime_in_ps() const
std::string I() const
MultiQuarkContent _netQuarkContent
static const char * pionString
std::string SVPAT() const
double mErrPlus() const
std::string J() const
static double _defaultCharmRadius
bool operator>(const ParticleProperties &rhs) const
bool isAxialVector() const
std::string quarks() const
void print(std::ostream &out=std::cout) const
bool isPseudoTensor() const
ParticleProperties(std::string pdg_string="")
std::string charge() const
void setMass(double m) const
double lifetime_in_ns() const
static const double m
double ctau_in_microns() const
bool operator<=(const ParticleProperties &rhs) const
bool operator==(const ParticleProperties &rhs) const
bool operator<(const ParticleProperties &rhs) const
std::string name() const
bool operator>=(const ParticleProperties &rhs) const
double wErrMinus() const
const MultiQuarkContent & netQuarkContent() const
ParticleProperties anti() const
double width() const
std::ostream & operator<<(std::ostream &out, const ParticleProperties &pp)
std::string ScalarVectorPseudoAxialVectorTensor() const
static double _defaultRadius
bool isPseudoScalar() const