/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Analysis/ParticleID/ParticleID-00-04-61/ParticleID/DedxPID.h

Go to the documentation of this file.
00001 #ifndef ParticleID_DedxPID_H
00002 #define ParticleID_DedxPID_H
00003 //
00004 // DedxPID package:  particle identification with dE/dx 
00005 // read original chi from DstDedx, 
00006 // make beta*gamma = p/m  and dip angle cos(theta) dependent correction   
00007 // 
00008 // In 1st version, only the momentum dependent is taken into account
00009 // The corrections are made by: M.Yang, M.S. Chen, L.L. Wang, J.Y. Zhang and Y.Z. Sun
00010 // Author: K.L. He     date: 11/12/2005, created
00011 //
00012 
00013 #include "ParticleID/ParticleIDBase.h"
00014 
00015 class DedxPID : public ParticleIDBase {
00016 
00017  public:
00018 
00019   static DedxPID * instance();
00020   // constructor & desconstructor
00021   ~DedxPID(){;} 
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   double offset(int n) const {return m_offset[n];}
00029   double sigma(int n) const {return m_sigma[n];}
00030   int    ndof() const {return m_ndof;}
00031   double normPH() const { return m_normPH;}
00032   double goodHits() const {return m_goodHits;}
00033   int    neuronPID() const {return -1;}
00034   int getNhitCutDx() const {return m_nhitcutdx;}
00035   void setNhitCutDx(const int nhitcuthdx = 5) {m_nhitcutdx = nhitcuthdx;}
00036  
00037  protected:
00038 
00039   int particleIDCalculation();
00040   int neuronPIDCalculation() {return -1;}
00041   double offsetDedx(int n, double ptrk, double cost);
00042   double sigmaDedx(int n, double ptrk, double cost);
00043   int LikelihoodCalculation() {return -1;}
00044   double mypol3(double x, double par0, double par1, double par2, double par3); 
00045   double mypol5(double x, double par0, double par1, double par2, double par3, double par4,
00046               double par5); 
00047   void inputpar();
00048   double CorrDedx(int n, double ptrk, double cost,double chi,int charge); 
00049   double iterate(double ptrk,double *mean,double *p);
00050   double cal_par(int index1,double *m_jpsi_pip_ptrk_offset,double ptrk,double begin,double bin);
00051  private:
00052   double m_chi[5];
00053   double m_prob[5];
00054   double m_offset[5];
00055   double m_sigma[5];
00056   double m_chimin;
00057   double m_pdfmin;
00058   int m_ndof;
00059   int m_nhitcutdx;
00060   int m_readstate;
00061   double m_normPH;
00062   double m_probPH;
00063   double m_goodHits;
00064 //lixr add 
00065     int m_runxx; 
00066     
00067     double m_jpsi_kap_ptrk_offset[12];
00068     double m_jpsi_kap_ptrk_sigma[12];
00069     double m_jpsi_kam_ptrk_offset[12];
00070     double m_jpsi_kam_ptrk_sigma[12];
00071     double m_jpsi_kap_theta_offset[18];
00072     double m_jpsi_kap_theta_sigma[18];
00073     double m_jpsi_kam_theta_offset[18];
00074     double m_jpsi_kam_theta_sigma[18];
00075 
00076     double m_jpsi_mc_kap_ptrk_offset[12];
00077     double m_jpsi_mc_kap_ptrk_sigma[12];
00078     double m_jpsi_mc_kam_ptrk_offset[12];
00079     double m_jpsi_mc_kam_ptrk_sigma[12];
00080     double m_jpsi_mc_kap_theta_offset[18];
00081     double m_jpsi_mc_kap_theta_sigma[18];
00082     double m_jpsi_mc_kam_theta_offset[18];
00083     double m_jpsi_mc_kam_theta_sigma[18];
00084 
00085 
00086     
00087     double m_jpsi_protonp_ptrk_offset[8];
00088     double m_jpsi_protonp_ptrk_sigma[8];
00089     double m_jpsi_protonm_ptrk_offset[8];
00090     double m_jpsi_protonm_ptrk_sigma[8];
00091     double m_jpsi_protonp_theta_offset[18];
00092     double m_jpsi_protonp_theta_sigma[18];
00093     double m_jpsi_protonm_theta_offset[18];
00094     double m_jpsi_protonm_theta_sigma[18];
00095 
00096 
00097     double m_jpsi_mc_protonp_ptrk_offset[8];
00098     double m_jpsi_mc_protonp_ptrk_sigma[8];
00099     double m_jpsi_mc_protonm_ptrk_offset[8];
00100     double m_jpsi_mc_protonm_ptrk_sigma[8];
00101     double m_jpsi_mc_protonp_theta_offset[18];
00102     double m_jpsi_mc_protonp_theta_sigma[18];
00103     double m_jpsi_mc_protonm_theta_offset[18];
00104     double m_jpsi_mc_protonm_theta_sigma[18];
00105 
00106 
00107 
00108 //psip
00109     double m_psip_kap_ptrk_offset[9];
00110     double m_psip_kap_ptrk_sigma[9];
00111     double m_psip_kam_ptrk_offset[9];
00112     double m_psip_kam_ptrk_sigma[9];
00113 
00114     double m_psip_mc_kap_ptrk_offset[9];
00115     double m_psip_mc_kap_ptrk_sigma[9];
00116     double m_psip_mc_kam_ptrk_offset[9];
00117     double m_psip_mc_kam_ptrk_sigma[9];
00118 
00119 
00120     double m_psip_protonp_ptrk_offset[9];
00121     double m_psip_protonp_ptrk_sigma[9];
00122     double m_psip_protonm_ptrk_offset[9];
00123     double m_psip_protonm_ptrk_sigma[9];
00124 
00125     double m_psip_mc_protonp_ptrk_offset[9];
00126     double m_psip_mc_protonp_ptrk_sigma[9];
00127     double m_psip_mc_protonm_ptrk_offset[9];
00128     double m_psip_mc_protonm_ptrk_sigma[9];
00129 
00130 //psipp
00131     
00132     double m_psipp_pi_ptrk_offset[18];
00133     double m_psipp_pi_ptrk_sigma[18];
00134     double m_psipp_pi_theta_offset[16];
00135     double m_psipp_pi_theta_sigma[16];
00136 
00137     double m_psipp_mc_pi_ptrk_offset[18];
00138     double m_psipp_mc_pi_ptrk_sigma[18];
00139     double m_psipp_mc_pi_theta_offset[16];
00140     double m_psipp_mc_pi_theta_sigma[16];
00141 
00142     double m_psipp_ka_ptrk_offset[17];
00143     double m_psipp_ka_ptrk_sigma[17];
00144     double m_psipp_ka_theta_offset[16];
00145     double m_psipp_ka_theta_sigma[16];
00146 
00147     double m_psipp_mc_ka_ptrk_offset[17];
00148     double m_psipp_mc_ka_ptrk_sigma[17];
00149     double m_psipp_mc_ka_theta_offset[16];
00150     double m_psipp_mc_ka_theta_sigma[16];
00151 
00152     double m_psipp_proton_ptrk_offset[18];
00153     double m_psipp_proton_ptrk_sigma[18];
00154     double m_psipp_proton_theta_offset[18];
00155     double m_psipp_proton_theta_sigma[18];
00156 
00157     double m_psipp_mc_proton_ptrk_offset[9];
00158     double m_psipp_mc_proton_ptrk_sigma[9];
00159     double m_psipp_mc_proton_theta_offset[18];
00160     double m_psipp_mc_proton_theta_sigma[18];
00161 
00162 
00163 
00164 
00165 
00166     
00167  private:
00168   DedxPID();
00169   static DedxPID *m_pointer;
00170 };
00171 
00172 #endif

Generated on Tue Nov 29 22:57:34 2016 for BOSS_7.0.2 by  doxygen 1.4.7