Rev | Line | |
---|
[386] | 1 | #ifndef _PDGPARTICLE_H_
|
---|
| 2 | #define _PDGPARTICLE_H_
|
---|
| 3 |
|
---|
| 4 | #include <string>
|
---|
| 5 | #include <map>
|
---|
| 6 |
|
---|
| 7 | class PdgParticle {
|
---|
| 8 | public:
|
---|
[402] | 9 | PdgParticle(): _pid(-999), _mass(0), _charge(0), _gamma_tot(0), _ctau(0), _name("Unknown") {};
|
---|
| 10 | PdgParticle(const int pid, const std::string& name, const float m, const float q, const float gamma, const float ctau);
|
---|
[386] | 11 | PdgParticle(const PdgParticle& p);
|
---|
| 12 | PdgParticle& operator=(const PdgParticle& p);
|
---|
| 13 | ~PdgParticle() {};
|
---|
| 14 | int pid() const {return _pid;};
|
---|
| 15 | float mass() const {return _mass;};
|
---|
| 16 | float charge() const {return _charge;};
|
---|
| 17 | float gamma_tot() const {return _gamma_tot;};
|
---|
[402] | 18 | double ctau() const {return _ctau;};
|
---|
[386] | 19 | std::string name() const {return _name;};
|
---|
| 20 |
|
---|
| 21 | private:
|
---|
| 22 | int _pid;
|
---|
| 23 | float _mass; // GeV
|
---|
| 24 | float _charge; // in e+
|
---|
[402] | 25 | float _gamma_tot; // GeV
|
---|
| 26 | double _ctau; // in m
|
---|
[386] | 27 | std::string _name;
|
---|
| 28 | };
|
---|
| 29 |
|
---|
| 30 | class PdgTable {
|
---|
| 31 | public:
|
---|
| 32 | PdgTable(){};
|
---|
| 33 | PdgTable(const PdgTable& table);
|
---|
| 34 | PdgTable& operator=(const PdgTable& table);
|
---|
| 35 | ~PdgTable(){};
|
---|
| 36 | void insert(const int pid, const PdgParticle &p);
|
---|
| 37 | void print() const;
|
---|
| 38 | PdgParticle operator[](const int pid) const;
|
---|
| 39 | private:
|
---|
| 40 | std::map<int, PdgParticle> _table;
|
---|
| 41 | };
|
---|
| 42 |
|
---|
| 43 | #endif
|
---|
Note:
See
TracBrowser
for help on using the repository browser.