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