#ifndef _PDGPARTICLE_H_ #define _PDGPARTICLE_H_ #include #include class PdgParticle { public: PdgParticle(): _pid(-999), _mass(0), _charge(0), _gamma_tot(0), _tau(0), _name("Unknown") {}; PdgParticle(const int pid, const std::string& name, const float m, const float q, const float gamma, const float tau); PdgParticle(const PdgParticle& p); PdgParticle& operator=(const PdgParticle& p); ~PdgParticle() {}; int pid() const {return _pid;}; float mass() const {return _mass;}; float charge() const {return _charge;}; float gamma_tot() const {return _gamma_tot;}; float tau() const {return _tau;}; std::string name() const {return _name;}; private: int _pid; float _mass; // GeV float _charge; // in e+ float _gamma_tot; float _tau; std::string _name; }; class PdgTable { public: PdgTable(){}; PdgTable(const PdgTable& table); PdgTable& operator=(const PdgTable& table); ~PdgTable(){}; void insert(const int pid, const PdgParticle &p); void print() const; PdgParticle operator[](const int pid) const; private: std::map _table; }; #endif