00001 #ifndef PARTICLE_CLASS_PID_H 00002 #define PARTICLE_CLASS_PID_H 00003 00004 #include <string> 00005 #include "particle/constant.h" 00006 00008 class PID { 00009 00010 public: 00012 PID(){ allReset(); } 00013 00015 PID(const PID &pid); 00016 00018 virtual ~PID(){}; 00019 00021 virtual std::string className(void){ return std::string("PID"); } 00022 00024 virtual void dump(const std::string &keyword = std::string(""), 00025 const std::string &prefix = std::string("")) const; 00026 00028 virtual bool isIsoMuon(void) const { return (m_bitForProperties & PID_BIT_ISOMUON); } 00029 00031 virtual bool isMuon(void) const { return (m_bitForProperties & PID_BIT_MUON); } 00032 00034 virtual bool isIsoElec(void) const { return (m_bitForProperties & PID_BIT_ISOELEC); } 00035 00037 virtual bool isElec(void) const { return (m_bitForProperties & PID_BIT_ELEC); } 00038 00040 virtual bool isIsoGamma(void) const { return (m_bitForProperties & PID_BIT_ISOGAMM); } 00041 00043 virtual bool isGamma(void) const { return (m_bitForProperties & PID_BIT_GAMM); } 00044 00046 virtual bool isJet(void) const { return (m_bitForProperties & PID_BIT_JET); } 00047 00049 inline virtual double ePID(void) const { return m_ePID; } 00050 00052 inline virtual double muPID(void) const { return m_muPID; } 00053 00055 inline virtual double gammaPID(void) const { return m_gammaPID; } 00056 00058 inline virtual double bJetPID(void) const { return m_bJetPID; } 00059 00061 inline virtual double tauJetPID(void) const { return m_tauJetPID; } 00062 00064 inline virtual double jetCharge(void) const { return m_jetCharge; } 00065 00067 inline virtual void ePID(double x) { m_ePID = x; } 00068 00070 inline virtual void muPID(double x) { m_muPID = x; } 00071 00073 inline virtual void gammaPID(double x) { m_gammaPID = x; } 00074 00076 inline virtual void bJetPID(double x) { m_bJetPID = x; } 00077 00079 inline virtual void tauJetPID(double x) { m_tauJetPID = x; } 00080 00082 inline virtual void jetCharge(double x) { m_jetCharge = x; } 00083 00085 virtual void setIsoMuon(unsigned f); 00086 00088 virtual void setMuon(unsigned f); 00089 00091 virtual void setIsoElec(unsigned f); 00092 00094 virtual void setElec(unsigned f); 00095 00097 virtual void setIsoGamma(unsigned f); 00098 00100 virtual void setGamma(unsigned f); 00101 00103 virtual void setJet(unsigned f); 00104 00106 virtual void allReset(void) { 00107 m_ePID = m_muPID = m_gammaPID = m_bJetPID = m_tauJetPID = m_jetCharge = 0.; 00108 m_bitForProperties = 0; 00109 } 00110 00112 PID & operator = (const PID &); 00113 00114 protected: 00115 double m_ePID; 00116 double m_muPID; 00117 double m_gammaPID; 00118 double m_bJetPID; 00119 double m_tauJetPID; 00120 double m_jetCharge; 00121 unsigned m_bitForProperties; 00122 }; 00123 #endif // PARTICLE_CLASS_PID_H