5#include "ParticleID/ParticleIDBase.h"
8const int ParticleIDBase::USE_DEDX = 1;
9const int ParticleIDBase::USE_TOF1 = 2;
10const int ParticleIDBase::USE_TOF2 = 4;
11const int ParticleIDBase::USE_TOFE = 8;
12const int ParticleIDBase::USE_TOFQ = 16;
13const int ParticleIDBase::USE_EMC = 32;
14const int ParticleIDBase::USE_MUC = 64;
15const int ParticleIDBase::USE_TOF = 128;
16const int ParticleIDBase::USE_TOFC = 256;
17const int ParticleIDBase::USE_TOFCorr = 512;
19const int ParticleIDBase::IDENTIFY_ELECTRON = 1;
20const int ParticleIDBase::IDENTIFY_MUON = 2;
21const int ParticleIDBase::IDENTIFY_PION = 4;
22const int ParticleIDBase::IDENTIFY_KAON = 8;
23const int ParticleIDBase::IDENTIFY_PROTON = 16;
25const int ParticleIDBase::PROBABILITY_PID = 1;
26const int ParticleIDBase::LIKELIHOOD_PID = 2;
27const int ParticleIDBase::NEURONNETWORK_PID = 4;
29const int ParticleIDBase::DEDX_VALID = 1;
30const int ParticleIDBase::TOF1_VALID = 2;
31const int ParticleIDBase::TOF2_VALID = 4;
32const int ParticleIDBase::TOFE_VALID = 8;
33const int ParticleIDBase::TOFQ_VALID = 16;
34const int ParticleIDBase::EMC_VALID = 32;
35const int ParticleIDBase::MUC_VALID = 64;
36const int ParticleIDBase::TOF_VALID = 128;
37const int ParticleIDBase::TOFC_VALID = 256;
38const int ParticleIDBase::TOFCorr_VALID = 512;
58 path = string(s_path);
60 char* env_path = getenv(
"PARTICLEIDROOT");
62 cout <<
" ParticleIDBase::set_path ERROR:"
63 " the environment PARTICLEIDROOT not defined " << endl;
66 path = string(env_path);
72 double mass[5] = {0.000511, 0.105658, 0.139570,0.493677, 0.938272};
73 if(n < 0 || n >=5)
return 0.0;
79 double vel = 299.792458;
85 if(chi2 < 0)
return p;
86 p = TMath::Prob(chi2,
ndof);
95 double chi2 = -0.5*offset*offset/(
sigma*
sigma);
102 if(!m_trk)
return val;
110 if(!m_trk)
return val;
118 if(!m_trk)
return val;
121 val = mdcTrk->
charge() + 0.0;
126 double c1 = (
y[0]-
y[1])*(
x[1]-
x[2])-(
x[0]-
x[1])*(
y[1]-
y[2]);
127 double c2 = (
x[0]*
x[0]-
x[1]*
x[1])*(
x[1]-
x[2])-(
x[1]*
x[1]-
x[2]*
x[2])*(
x[0]-
x[1]);
129 double b1 = (
y[0]-
y[1])*(
x[1]*
x[1]-
x[2]*
x[2])-(
x[0]*
x[0]-
x[1]*
x[1])*(
y[1]-
y[2]);
130 double b2 = (
x[0]-
x[1])*(
x[1]*
x[1]-
x[2]*
x[2])-(
x[1]-
x[2])*(
x[0]*
x[0]-
x[1]*
x[1]);
132 double a =
y[0] -
b*
x[0]-c*
x[0]*
x[0];
133 double y1 = a +
b*x1 +c*x1*x1;
140 return par[0] +
y*(par[1] +
y*(par[2]));
146 return par[0] +
y*(par[1] +
y*(par[2] +
y*(par[3])));
152 return par[0] +
y*(par[1] +
y*(par[2] +
y*(par[3] +
y*(par[4]))));
EvtComplex exp(const EvtComplex &c)
double pol2(double x, double *par)
virtual int ndof() const =0
double interpolation(double *x, double *y, double x1)
double probCalculate(double chi2, int n)
double pol4(double x, double *par)
double pol3(double x, double *par)
double pdfCalculate(double offset, double sigma)
void set_path(const char *s_path=0)