1#ifndef ParticleID_ParticleIDBase_H
2#define ParticleID_ParticleIDBase_H
16# include "EvtRecEvent/EvtRecTrack.h"
18# include "DstEvtRecTracks.h"
30 virtual double chi(
int n )
const = 0;
31 virtual double prob(
int n )
const = 0;
32 virtual int ndof()
const = 0;
44 void setRunNo(
const double runh = 8093 ) { m_runno = runh; }
56 double pol2(
double x,
double* par );
57 double pol3(
double x,
double* par );
58 double pol4(
double x,
double* par );
62 int useTof()
const {
return USE_TOF; }
69 int useEmc()
const {
return USE_EMC; }
70 int useMuc()
const {
return USE_MUC; }
73 int onlyPionKaon()
const {
return ( IDENTIFY_PION | IDENTIFY_KAON ); }
75 return ( IDENTIFY_PION | IDENTIFY_KAON | IDENTIFY_PROTON );
78 return ( IDENTIFY_PION | IDENTIFY_KAON | IDENTIFY_ELECTRON );
81 return ( IDENTIFY_ELECTRON | IDENTIFY_PION | IDENTIFY_KAON | IDENTIFY_PROTON );
109 void set_path(
const char* s_path = 0 );
122 double m_chimin_cut, m_chimax_cut;
123 double m_pdfsigmamin_cut;
125 static const int USE_DEDX;
126 static const int USE_TOF1;
127 static const int USE_TOF2;
128 static const int USE_TOF;
129 static const int USE_TOFE;
130 static const int USE_TOFQ;
131 static const int USE_TOFC;
132 static const int USE_TOFCorr;
133 static const int USE_EMC;
134 static const int USE_MUC;
136 static const int IDENTIFY_ELECTRON;
137 static const int IDENTIFY_MUON;
138 static const int IDENTIFY_PION;
139 static const int IDENTIFY_KAON;
140 static const int IDENTIFY_PROTON;
142 static const int PROBABILITY_PID;
143 static const int LIKELIHOOD_PID;
144 static const int NEURONNETWORK_PID;
146 static const int DEDX_VALID;
147 static const int TOF_VALID;
148 static const int TOF1_VALID;
149 static const int TOF2_VALID;
150 static const int TOFE_VALID;
151 static const int TOFQ_VALID;
152 static const int TOFC_VALID;
153 static const int TOFCorr_VALID;
154 static const int EMC_VALID;
155 static const int MUC_VALID;
double pol2(double x, double *par)
virtual int ndof() const =0
double interpolation(double *x, double *y, double x1)
void setPdfMinSigmaCut(const double pdf=4)
EvtRecTrack * PidTrk() const
double probCalculate(double chi2, int n)
int onlyPionKaonElectron() const
virtual double chi(int n) const =0
double pol4(double x, double *par)
void set_path(std::string s_path)
int methodProbability() const
double pol3(double x, double *par)
double pdfCalculate(double offset, double sigma)
virtual int LikelihoodCalculation()=0
void setRunNo(const double runh=8093)
double pdfMinSigmaCut() const
int onlyPionKaonProton() const
virtual int particleIDCalculation()=0
virtual void calculate()=0
int methodNeuronNetwork() const
void setChiMaxCut(const double chi=6)
void setChiMinCut(const double chi=4)
virtual bool IsPidInfoValid() const =0
int methodLikelihood() const
virtual double prob(int n) const =0
void setRecTrack(EvtRecTrack *trk)
virtual ~ParticleIDBase()
void set_path(const char *s_path=0)