00001 #ifndef ParticleID_MucPID_H 00002 #define ParticleID_MucPID_H 00003 00004 00005 // 00006 // MucPID package: particle identification with Muc energy deposits 00007 // 00008 // In 1st version, MucPID is not ready 00009 // 00010 // Author: K.L. He 11/13/2005, created 00011 // 00012 00013 #include "ParticleID/ParticleIDBase.h" 00014 00015 class TFile; 00016 class TTree; 00017 class TMultiLayerPerceptron; 00018 class TMLPAnalyzer; 00019 00020 class MucPID : public ParticleIDBase { 00021 00022 public: 00023 static MucPID *instance(); 00024 // ~MucPID(){;} 00025 00026 void init(); 00027 void calculate(); 00028 bool IsPidInfoValid() const {return (m_ndof> 0);} 00029 double chi(int n) const {return m_chi[n];} 00030 double prob(int n) const {return m_prob[n];} 00031 int ndof() const {return m_ndof;} 00032 double hits() const{return m_hits;} 00033 double depth() const{return m_depth;} 00034 double chi2() const{return m_chi2;} 00035 double distance() const{return m_distance;} 00036 double delta_phi() const{return m_muc_delta_phi;} 00037 double val_muc1() const{return m_val_muc;} 00038 00039 int neuronPID() const {return -1;} 00040 00041 00042 protected: 00043 00044 int particleIDCalculation(); 00045 int neuronPIDCalculation() {return -1;} 00046 int LikelihoodCalculation() {return -1;} 00047 00048 private: 00049 double m_chi[5]; 00050 double m_prob[5]; 00051 double m_chimin; 00052 int m_ndof; 00053 double m_hits; 00054 double m_depth; 00055 double m_chi2; 00056 double m_distance; 00057 double m_muc_delta_phi; 00058 double m_val_muc; 00059 double params_muc1[8]; 00060 double m_p_h[13][400]; 00061 double m_m_h[13][400]; 00062 00063 private: 00064 TFile *m_trainFile_muc; 00065 TTree *m_trainTree_muc; 00066 TMultiLayerPerceptron *m_mlp_muc; 00067 TMLPAnalyzer* m_mlpa_muc; 00068 00069 private: 00070 MucPID(); 00071 static MucPID *m_pointer; 00072 }; 00073 00074 #endif