00001 #ifndef ParticleID_EmcPID_H 00002 #define ParticleID_EmcPID_H 00003 // 00004 // EmcPID package: particle identification with Emc energy deposits 00005 // 00006 // In 1st version, EmcPID is not ready 00007 // 00008 // Author: K.L. He 11/13/2005, created 00009 // 00010 00011 #include "ParticleID/ParticleIDBase.h" 00012 00013 class TMultiLayerPerceptron; 00014 class TTree; 00015 00016 class EmcPID : public ParticleIDBase { 00017 00018 public: 00019 00020 static EmcPID *instance(); 00021 ~EmcPID(){;} 00022 00023 void init(); 00024 void calculate(); 00025 bool IsPidInfoValid() const {return (m_ndof> 0);} 00026 double chi(int n) const {return m_chi[n];} 00027 double prob(int n) const {return m_prob[n];} 00028 int ndof() const {return m_ndof;} 00029 double energy() const{return m_energy;} 00030 double eseed() const{return m_eseed;} 00031 double e3x3() const{return m_e3x3;} 00032 double e5x5() const{return m_e5x5;} 00033 double delta_theta() const{return m_delta_theta;} 00034 double delta_phi() const{return m_delta_phi;} 00035 double secondmoment() const{return m_secondmoment;} 00036 double val_emc1() const{return m_val_emc;} 00037 int neuronPID() const {return -1;} 00038 double pars(int n) const{return params_emc1[n];} 00039 00040 protected: 00041 00042 int particleIDCalculation(); 00043 int neuronPIDCalculation() {return -1;} 00044 int LikelihoodCalculation() {return -1;} 00045 00046 private: 00047 double m_chi[5]; 00048 double m_prob[5]; 00049 double m_chimin; 00050 int m_ndof; 00051 double m_ptrk; 00052 double m_pt; 00053 int m_type; 00054 double m_energy; 00055 double m_eseed; 00056 double m_e3x3; 00057 double m_e5x5; 00058 double m_delta_theta; 00059 double m_delta_phi; 00060 double m_secondmoment; 00061 double m_latmoment; 00062 double m_a20moment; 00063 double m_a42moment; 00064 double m_val_emc; 00065 double params_emc1[9]; 00066 double m_e_h[18][300]; 00067 double m_m_h[18][300]; 00068 double m_p_h[18][300]; 00069 private: 00070 static TMultiLayerPerceptron *m_mlp_emc; 00071 static TTree *m_trainTree_emconly; 00072 00073 00074 private: 00075 EmcPID(); 00076 static EmcPID *m_pointer; 00077 }; 00078 00079 #endif