1#ifndef ParticleID_ParticleIDBase_H
2#define ParticleID_ParticleIDBase_H
16#include "EvtRecEvent/EvtRecTrack.h"
18#include "DstEvtRecTracks.h"
31 virtual double chi(
int n)
const = 0;
32 virtual double prob(
int n)
const = 0;
33 virtual int ndof()
const = 0;
43 void setRunNo(
const double runh = 8093) {m_runno = runh;}
57 double pol2(
double x,
double* par);
58 double pol3(
double x,
double* par);
59 double pol4(
double x,
double* par);
79 int all()
const {
return (IDENTIFY_ELECTRON | IDENTIFY_PION | IDENTIFY_KAON | IDENTIFY_PROTON);}
104 void set_path(
const char* s_path = 0);
118 double m_pdfsigmamin_cut;
119 static const int USE_DEDX;
120 static const int USE_TOF1;
121 static const int USE_TOF2;
122 static const int USE_TOF;
123 static const int USE_TOFE;
124 static const int USE_TOFQ;
125 static const int USE_TOFC;
126 static const int USE_TOFCorr;
127 static const int USE_EMC;
128 static const int USE_MUC;
129 static const int USE_MRPC;
131 static const int IDENTIFY_ELECTRON;
132 static const int IDENTIFY_MUON;
133 static const int IDENTIFY_PION;
134 static const int IDENTIFY_KAON;
135 static const int IDENTIFY_PROTON;
137 static const int PROBABILITY_PID;
138 static const int LIKELIHOOD_PID;
139 static const int NEURONNETWORK_PID;
141 static const int DEDX_VALID;
142 static const int TOF_VALID;
143 static const int TOF1_VALID;
144 static const int TOF2_VALID;
145 static const int TOFE_VALID;
146 static const int TOFQ_VALID;
147 static const int TOFC_VALID;
148 static const int TOFCorr_VALID;
149 static const int EMC_VALID;
150 static const int MUC_VALID;
151 static const int MRPC_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 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)