BOSS 7.0.8
BESIII Offline Software System
Loading...
Searching...
No Matches
DedxPID.h
Go to the documentation of this file.
1#ifndef ParticleID_DedxPID_H
2#define ParticleID_DedxPID_H
3//
4// DedxPID package: particle identification with dE/dx
5// read original chi from DstDedx,
6// make beta*gamma = p/m and dip angle cos(theta) dependent correction
7//
8// In 1st version, only the momentum dependent is taken into account
9// The corrections are made by: M.Yang, M.S. Chen, L.L. Wang, J.Y. Zhang and Y.Z. Sun
10// Author: K.L. He date: 11/12/2005, created
11//
12
14
15class DedxPID : public ParticleIDBase {
16
17 public:
18
19 static DedxPID * instance();
20 // constructor & desconstructor
22
23 void init();
24 void calculate();
25 bool IsPidInfoValid() const {return (m_ndof>0);}
26 double chi(int n) const {return m_chi[n];}
27 double prob(int n) const {return m_prob[n];}
28 double offset(int n) const {return m_offset[n];}
29 double sigma(int n) const {return m_sigma[n];}
30 int ndof() const {return m_ndof;}
31 double normPH() const { return m_normPH;}
32 double goodHits() const {return m_goodHits;}
33 int neuronPID() const {return -1;}
34 int getNhitCutDx() const {return m_nhitcutdx;}
35 void setNhitCutDx(const int nhitcuthdx = 5) {m_nhitcutdx = nhitcuthdx;}
36
37 protected:
38
40 int neuronPIDCalculation() {return -1;}
41 double offsetDedx(int n, double ptrk, double cost);
42 double sigmaDedx(int n, double ptrk, double cost);
43 int LikelihoodCalculation() {return -1;}
44 double mypol3(double x, double par0, double par1, double par2, double par3);
45 double mypol5(double x, double par0, double par1, double par2, double par3, double par4,
46 double par5);
47 void inputpar();
48 double CorrDedx(int n, double ptrk, double cost,double chi,int charge);
49 double iterate(double ptrk,double *mean,double *p);
50 double cal_par(int index1,double *m_jpsi_pip_ptrk_offset,double ptrk,double begin,double bin);
51 double offsetCorr(int n, int charge, double ptrk, double cost);
52 double sigmaCorr(int n, int charge, double ptrk, double cost);
53 double interpolation(double cost, double * costheta, double * par);
54 private:
55 double m_chi[5];
56 double m_prob[5];
57 double m_offset[5];
58 double m_sigma[5];
59 double m_chimin;
60 double m_pdfmin;
61 int m_ndof;
62 int m_nhitcutdx;
63 int m_readstate;
64 double m_normPH;
65 double m_probPH;
66 double m_goodHits;
67//lixr add
68 int m_runxx;
69
70 double m_jpsi_kap_ptrk_offset[12];
71 double m_jpsi_kap_ptrk_sigma[12];
72 double m_jpsi_kam_ptrk_offset[12];
73 double m_jpsi_kam_ptrk_sigma[12];
74 double m_jpsi_kap_theta_offset[18];
75 double m_jpsi_kap_theta_sigma[18];
76 double m_jpsi_kam_theta_offset[18];
77 double m_jpsi_kam_theta_sigma[18];
78
79 double m_jpsi_mc_kap_ptrk_offset[12];
80 double m_jpsi_mc_kap_ptrk_sigma[12];
81 double m_jpsi_mc_kam_ptrk_offset[12];
82 double m_jpsi_mc_kam_ptrk_sigma[12];
83 double m_jpsi_mc_kap_theta_offset[18];
84 double m_jpsi_mc_kap_theta_sigma[18];
85 double m_jpsi_mc_kam_theta_offset[18];
86 double m_jpsi_mc_kam_theta_sigma[18];
87
88
89
90 double m_jpsi_protonp_ptrk_offset[8];
91 double m_jpsi_protonp_ptrk_sigma[8];
92 double m_jpsi_protonm_ptrk_offset[8];
93 double m_jpsi_protonm_ptrk_sigma[8];
94 double m_jpsi_protonp_theta_offset[18];
95 double m_jpsi_protonp_theta_sigma[18];
96 double m_jpsi_protonm_theta_offset[18];
97 double m_jpsi_protonm_theta_sigma[18];
98
99
100 double m_jpsi_mc_protonp_ptrk_offset[8];
101 double m_jpsi_mc_protonp_ptrk_sigma[8];
102 double m_jpsi_mc_protonm_ptrk_offset[8];
103 double m_jpsi_mc_protonm_ptrk_sigma[8];
104 double m_jpsi_mc_protonp_theta_offset[18];
105 double m_jpsi_mc_protonp_theta_sigma[18];
106 double m_jpsi_mc_protonm_theta_offset[18];
107 double m_jpsi_mc_protonm_theta_sigma[18];
108
109
110
111//psip
112 double m_psip_kap_ptrk_offset[9];
113 double m_psip_kap_ptrk_sigma[9];
114 double m_psip_kam_ptrk_offset[9];
115 double m_psip_kam_ptrk_sigma[9];
116
117 double m_psip_mc_kap_ptrk_offset[9];
118 double m_psip_mc_kap_ptrk_sigma[9];
119 double m_psip_mc_kam_ptrk_offset[9];
120 double m_psip_mc_kam_ptrk_sigma[9];
121
122
123 double m_psip_protonp_ptrk_offset[9];
124 double m_psip_protonp_ptrk_sigma[9];
125 double m_psip_protonm_ptrk_offset[9];
126 double m_psip_protonm_ptrk_sigma[9];
127
128 double m_psip_mc_protonp_ptrk_offset[9];
129 double m_psip_mc_protonp_ptrk_sigma[9];
130 double m_psip_mc_protonm_ptrk_offset[9];
131 double m_psip_mc_protonm_ptrk_sigma[9];
132
133//psipp
134
135 double m_psipp_pi_ptrk_offset[18];
136 double m_psipp_pi_ptrk_sigma[18];
137 double m_psipp_pi_theta_offset[16];
138 double m_psipp_pi_theta_sigma[16];
139
140 double m_psipp_mc_pi_ptrk_offset[18];
141 double m_psipp_mc_pi_ptrk_sigma[18];
142 double m_psipp_mc_pi_theta_offset[16];
143 double m_psipp_mc_pi_theta_sigma[16];
144
145 double m_psipp_ka_ptrk_offset[17];
146 double m_psipp_ka_ptrk_sigma[17];
147 double m_psipp_ka_theta_offset[16];
148 double m_psipp_ka_theta_sigma[16];
149
150 double m_psipp_mc_ka_ptrk_offset[17];
151 double m_psipp_mc_ka_ptrk_sigma[17];
152 double m_psipp_mc_ka_theta_offset[16];
153 double m_psipp_mc_ka_theta_sigma[16];
154
155 double m_psipp_proton_ptrk_offset[18];
156 double m_psipp_proton_ptrk_sigma[18];
157 double m_psipp_proton_theta_offset[18];
158 double m_psipp_proton_theta_sigma[18];
159
160 double m_psipp_mc_proton_ptrk_offset[9];
161 double m_psipp_mc_proton_ptrk_sigma[9];
162 double m_psipp_mc_proton_theta_offset[18];
163 double m_psipp_mc_proton_theta_sigma[18];
164
165 double m_offsetCorr[5];
166 double m_sigmaCorr[5];
167
168
169
170
171 private:
172 DedxPID();
173 static DedxPID *m_pointer;
174};
175
176#endif
const Int_t n
*******INTEGER m_nBinMax INTEGER m_NdiMax !No of bins in histogram for cell exploration division $ !Last vertex $ !Last active cell $ !Last cell in buffer $ !No of sampling when dividing cell $ !No of function total $ !Flag for random ceel for $ !Flag for type of for WtMax $ !Flag which decides whether vertices are included in the sampling $ entire domain is hyp !Maximum effective eevents per bin
Definition: FoamA.h:85
double mypol3(double x, double par0, double par1, double par2, double par3)
Definition: DedxPID.cxx:518
double mypol5(double x, double par0, double par1, double par2, double par3, double par4, double par5)
Definition: DedxPID.cxx:525
int getNhitCutDx() const
Definition: DedxPID.h:34
double sigma(int n) const
Definition: DedxPID.h:29
double offsetCorr(int n, int charge, double ptrk, double cost)
Definition: DedxPID.cxx:928
int particleIDCalculation()
Definition: DedxPID.cxx:51
int LikelihoodCalculation()
Definition: DedxPID.h:43
bool IsPidInfoValid() const
Definition: DedxPID.h:25
double CorrDedx(int n, double ptrk, double cost, double chi, int charge)
Definition: DedxPID.cxx:171
~DedxPID()
Definition: DedxPID.h:21
double sigmaDedx(int n, double ptrk, double cost)
Definition: DedxPID.cxx:467
double prob(int n) const
Definition: DedxPID.h:27
void inputpar()
Definition: DedxPID.cxx:532
double iterate(double ptrk, double *mean, double *p)
Definition: DedxPID.cxx:906
void init()
Definition: DedxPID.cxx:26
int neuronPIDCalculation()
Definition: DedxPID.h:40
int ndof() const
Definition: DedxPID.h:30
double offsetDedx(int n, double ptrk, double cost)
Definition: DedxPID.cxx:167
int neuronPID() const
Definition: DedxPID.h:33
double interpolation(double cost, double *costheta, double *par)
Definition: DedxPID.cxx:1188
void setNhitCutDx(const int nhitcuthdx=5)
Definition: DedxPID.h:35
double offset(int n) const
Definition: DedxPID.h:28
double cal_par(int index1, double *m_jpsi_pip_ptrk_offset, double ptrk, double begin, double bin)
Definition: DedxPID.cxx:915
void calculate()
Definition: DedxPID.cxx:42
double chi(int n) const
Definition: DedxPID.h:26
double normPH() const
Definition: DedxPID.h:31
static DedxPID * instance()
Definition: DedxPID.cxx:17
double goodHits() const
Definition: DedxPID.h:32
double sigmaCorr(int n, int charge, double ptrk, double cost)
Definition: DedxPID.cxx:1056
float costheta
float ptrk