00001 #ifndef ParticleID_Tof2PID_H
00002 #define ParticleID_Tof2PID_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include "ParticleID/ParticleIDBase.h"
00013
00014 class Tof2PID : public ParticleIDBase {
00015
00016 public:
00017 static Tof2PID *instance();
00018 ~Tof2PID(){;}
00019
00020 void init();
00021 void calculate();
00022 bool IsPidInfoValid() const {return (m_ndof > 0); }
00023 double chi(int n) const {return m_chi[n];}
00024 double sigma(int n) const{return m_sigma[n];}
00025 double offset(int n) const{return m_offset[n];}
00026 double prob(int n) const {return m_prob[n];}
00027 int ndof() const {return m_ndof;}
00028 double mass2() const {return m_mass2;}
00029 double ph2() const {return m_ph2;}
00030 double zhit2() const{return m_zhit2;}
00031 double path2() const{return m_path2;}
00032 double tof2() const{return m_tof2;}
00033 int neuronPID() const {return -1;}
00034 protected:
00035
00036 int particleIDCalculation();
00037 int neuronPIDCalculation() {return -1;}
00038 int LikelihoodCalculation() {return -1;}
00039 double offsetTof2(int n, int cntr, double ptrk, double ztof, double m_ph2,double charge);
00040 double sigmaTof2(int n, int cntr, double ptrk, double ztof, double m_ph2, double charge);
00041 double sampleQ0(double betagamma,double beta);
00042
00043 private:
00044 double m_chi[5];
00045 double m_prob[5];
00046 double m_sigma[5];
00047 double m_offset[5];
00048 double m_chimin;
00049 double m_pdfmin;
00050 int m_ndof;
00051 double m_mass2;
00052 double m_ph2;
00053 double m_zhit2;
00054 double m_path2;
00055 double m_tof2;
00056 double m_pars[15];
00057 private:
00058 Tof2PID();
00059 static Tof2PID *m_pointer;
00060 };
00061
00062 #endif