#ifndef _PDGPARTICLE_H_ #define _PDGPARTICLE_H_ /*********************************************************************** ** ** ** /----------------------------------------------\ ** ** | Delphes, a framework for the fast simulation | ** ** | of a generic collider experiment | ** ** \------------- arXiv:0903.2225v1 ------------/ ** ** ** ** ** ** This package uses: ** ** ------------------ ** ** ROOT: Nucl. Inst. & Meth. in Phys. Res. A389 (1997) 81-86 ** ** FastJet algorithm: Phys. Lett. B641 (2006) [hep-ph/0512210] ** ** Hector: JINST 2:P09005 (2007) [physics.acc-ph:0707.1198v2] ** ** FROG: [hep-ex/0901.2718v1] ** ** HepMC: Comput. Phys. Commun.134 (2001) 41 ** ** ** ** ------------------------------------------------------------------ ** ** ** ** Main authors: ** ** ------------- ** ** ** ** Severine Ovyn Xavier Rouby ** ** severine.ovyn@uclouvain.be xavier.rouby@cern ** ** ** ** Center for Particle Physics and Phenomenology (CP3) ** ** Universite catholique de Louvain (UCL) ** ** Louvain-la-Neuve, Belgium ** ** ** ** Copyright (C) 2008-2009, ** ** All rights reserved. ** ** ** ***********************************************************************/ #include #include #include class PdgParticle { public: PdgParticle(): _pid(-999), _mass(0), _charge(0), _gamma_tot(0), _ctau(0), _name("Unknown"), _isInvisible(false) {}; PdgParticle(const long int pid, const std::string& name, const float m, const float q, const float gamma, const float ctau); PdgParticle(const PdgParticle& p); PdgParticle& operator=(const PdgParticle& p); ~PdgParticle() {}; long int pid() const {return _pid;}; float mass() const {return _mass;}; float charge() const {return _charge;}; float gamma_tot() const {return _gamma_tot;}; double ctau() const {return _ctau;}; bool invisible() const {return _isInvisible;}; std::string name() const {return _name;}; private: long int _pid; float _mass; // GeV float _charge; // in e+ float _gamma_tot; // GeV double _ctau; // in m std::string _name; bool _isInvisible; // neutrino-like }; class PdgTable { public: PdgTable(){}; PdgTable(const PdgTable& table); PdgTable& operator=(const PdgTable& table); ~PdgTable(){}; void insert(const long int pid, const PdgParticle &p); void print() const; PdgParticle operator[](const int pid) const; private: std::map _table; }; #endif