00001 #ifndef ParticleID_TofPID_H 00002 #define ParticleID_TofPID_H 00003 // 00004 // TofPID package: particle Identification with Barrel TOF inner layer 00005 // 00006 // 00007 // In 1st version, only the momentum dependent is taken into account 00008 // The corrections are made by: M.Yang, M.S. Chen, L.L. Wang, J.Y. Zhang and Y.Z. Sun 00009 // Author: K.L. He date: 11/12/2005, created 00010 // 00011 00012 00013 #include "ParticleID/ParticleIDBase.h" 00014 #include "ParticleID/Tof1PID.h" 00015 #include "ParticleID/Tof2PID.h" 00016 00017 class TofPID : public ParticleIDBase { 00018 00019 public: 00020 00021 static TofPID * instance(); 00022 ~TofPID(){;} 00023 00024 void init(); 00025 void calculate(); 00026 bool IsPidInfoValid() const {return (m_ndof > 0); } 00027 double chi(int n) const {return m_chi[n];} 00028 double prob(int n) const {return m_prob[n];} 00029 double offset(int n) const {return m_offset[n];} 00030 double sigma(int n) const {return m_sigma[n];} 00031 int ndof() const {return m_ndof;} 00032 double getweight1() const{ return weight1;} 00033 double getweight2() const{ return weight2;} 00034 double chilayer1(int n) const; 00035 double chilayer2(int n) const; 00036 00037 protected: 00038 00039 int particleIDCalculation(); 00040 int neuronPIDCalculation() { return -1;} 00041 int LikelihoodCalculation() {return -1;} 00042 00043 private: 00044 bool val_tof1; 00045 bool val_tof2; 00046 double m_chi[5]; 00047 double m_offset[5]; 00048 double m_prob[5]; 00049 double m_sigma[5]; 00050 double m_chimin; 00051 double m_pdfmin; 00052 int m_ndof; 00053 Tof1PID* m_tof1pid; 00054 Tof2PID* m_tof2pid; 00055 double weight1; 00056 double weight2; 00057 private: 00058 TofPID(); 00059 static TofPID *m_pointer; 00060 }; 00061 00062 #endif