ROOTPWA
particleData.h
Go to the documentation of this file.
1 #ifndef __PARTICLEDATA_H_
2 #define __PARTICLEDATA_H_
3 
4 
5 #include <string>
6 #include <iostream>
7 #include <fstream>
8 #include <cstdlib>
9 
10 #include "pputil.h"
11 
12 
13 #define getsign(x) (((x)>0)?"+":"-")
14 
15 
16 class particleData {
17 
18 private:
19 
22  std::string _name;
23  double _mass;
24  double _width;
25  int _isospin;
26  int _gparity;
27  int _spin;
28  int _parity;
29  int _cparity;
30 
31  void _init(const std::string&, double, double, int, int, int, int, int);
32 
33 public:
34 
35  particleData();
36  particleData(const particleData&);
37  particleData(const std::string& n,double m, double w, int i, int g, int j, int p, int c);
38  virtual ~particleData();
39  int OK() const;
40 
41  particleData& setName(const std::string&);
42 
43  particleData& setMass(double m)
44  {
45  this->_mass = m;
46  return(*this);
47  }
48 
50  {
51  this->_width = w;
52  return(*this);
53  }
54 
56  {
57  this->_isospin = i;
58  return(*this);
59  }
60 
62  {
63  this->_gparity = g;
64  return(*this);
65  }
66 
68  {
69  this->_spin = j;
70  return(*this);
71  }
72 
74  {
75  this->_parity = p;
76  return(*this);
77  }
78 
80  {
81  this->_cparity = c;
82  return(*this);
83  }
84 
85  std::string Name() const;
86 
87  double Mass() const { return(this->_mass); }
88  double Width() const { return(this->_width); }
89  int I() const { return(this->_isospin); }
90  int G() const { return(this->_gparity); }
91  int J() const { return(this->_spin); }
92  int P() const { return(this->_parity); }
93  int C() const { return(this->_cparity); }
94 
95  void print() const;
96  void dump() const;
97 
99 
100  void debug(int d = 1) { _particle_data_debug = d; }
101 
102  friend std::ostream & operator << (std::ostream& out, particleData& p);
103 };
104 
105 
106 class tableEntry {
107 
108 private:
109 
112 
113  void _init(const particleData& p, tableEntry* n);
114 
115 public:
116 
118  tableEntry(const tableEntry& te);
119  virtual ~tableEntry();
120 
121  tableEntry& operator = (const tableEntry& te);
122 
123  tableEntry* next() const;
124  particleData Particle() const;
125  void print() const;
126  void dump() const;
127 };
128 
129 
131 
132 private:
133 
135 
136 public:
137 
138  particleDataTable(tableEntry* p = NULL);
139 
140  void initialize();
141  void initialize(const char* PDTfile);
142  void insert(const particleData& p);
143 
144  particleData get(const std::string& _name) const;
145  double mass(const std::string& _name) const;
146  double width(const std::string& _name) const;
147  int ListLen() const;
148  char** List() const;
149  void print() const;
150  void dump() const;
151 };
152 
153 
154 #endif // __PARTICLEDATA_H_