BOSS 7.0.3
BESIII Offline Software System
Loading...
Searching...
No Matches
InstallArea/include/ParticleID/ParticleID/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
13#include "ParticleID/ParticleIDBase.h"
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 private:
52 double m_chi[5];
53 double m_prob[5];
54 double m_offset[5];
55 double m_sigma[5];
56 double m_chimin;
57 double m_pdfmin;
58 int m_ndof;
59 int m_nhitcutdx;
60 int m_readstate;
61 double m_normPH;
62 double m_probPH;
63 double m_goodHits;
64//lixr add
65 int m_runxx;
66
67 double m_jpsi_kap_ptrk_offset[12];
68 double m_jpsi_kap_ptrk_sigma[12];
69 double m_jpsi_kam_ptrk_offset[12];
70 double m_jpsi_kam_ptrk_sigma[12];
71 double m_jpsi_kap_theta_offset[18];
72 double m_jpsi_kap_theta_sigma[18];
73 double m_jpsi_kam_theta_offset[18];
74 double m_jpsi_kam_theta_sigma[18];
75
76 double m_jpsi_mc_kap_ptrk_offset[12];
77 double m_jpsi_mc_kap_ptrk_sigma[12];
78 double m_jpsi_mc_kam_ptrk_offset[12];
79 double m_jpsi_mc_kam_ptrk_sigma[12];
80 double m_jpsi_mc_kap_theta_offset[18];
81 double m_jpsi_mc_kap_theta_sigma[18];
82 double m_jpsi_mc_kam_theta_offset[18];
83 double m_jpsi_mc_kam_theta_sigma[18];
84
85
86
87 double m_jpsi_protonp_ptrk_offset[8];
88 double m_jpsi_protonp_ptrk_sigma[8];
89 double m_jpsi_protonm_ptrk_offset[8];
90 double m_jpsi_protonm_ptrk_sigma[8];
91 double m_jpsi_protonp_theta_offset[18];
92 double m_jpsi_protonp_theta_sigma[18];
93 double m_jpsi_protonm_theta_offset[18];
94 double m_jpsi_protonm_theta_sigma[18];
95
96
97 double m_jpsi_mc_protonp_ptrk_offset[8];
98 double m_jpsi_mc_protonp_ptrk_sigma[8];
99 double m_jpsi_mc_protonm_ptrk_offset[8];
100 double m_jpsi_mc_protonm_ptrk_sigma[8];
101 double m_jpsi_mc_protonp_theta_offset[18];
102 double m_jpsi_mc_protonp_theta_sigma[18];
103 double m_jpsi_mc_protonm_theta_offset[18];
104 double m_jpsi_mc_protonm_theta_sigma[18];
105
106
107
108//psip
109 double m_psip_kap_ptrk_offset[9];
110 double m_psip_kap_ptrk_sigma[9];
111 double m_psip_kam_ptrk_offset[9];
112 double m_psip_kam_ptrk_sigma[9];
113
114 double m_psip_mc_kap_ptrk_offset[9];
115 double m_psip_mc_kap_ptrk_sigma[9];
116 double m_psip_mc_kam_ptrk_offset[9];
117 double m_psip_mc_kam_ptrk_sigma[9];
118
119
120 double m_psip_protonp_ptrk_offset[9];
121 double m_psip_protonp_ptrk_sigma[9];
122 double m_psip_protonm_ptrk_offset[9];
123 double m_psip_protonm_ptrk_sigma[9];
124
125 double m_psip_mc_protonp_ptrk_offset[9];
126 double m_psip_mc_protonp_ptrk_sigma[9];
127 double m_psip_mc_protonm_ptrk_offset[9];
128 double m_psip_mc_protonm_ptrk_sigma[9];
129
130//psipp
131
132 double m_psipp_pi_ptrk_offset[18];
133 double m_psipp_pi_ptrk_sigma[18];
134 double m_psipp_pi_theta_offset[16];
135 double m_psipp_pi_theta_sigma[16];
136
137 double m_psipp_mc_pi_ptrk_offset[18];
138 double m_psipp_mc_pi_ptrk_sigma[18];
139 double m_psipp_mc_pi_theta_offset[16];
140 double m_psipp_mc_pi_theta_sigma[16];
141
142 double m_psipp_ka_ptrk_offset[17];
143 double m_psipp_ka_ptrk_sigma[17];
144 double m_psipp_ka_theta_offset[16];
145 double m_psipp_ka_theta_sigma[16];
146
147 double m_psipp_mc_ka_ptrk_offset[17];
148 double m_psipp_mc_ka_ptrk_sigma[17];
149 double m_psipp_mc_ka_theta_offset[16];
150 double m_psipp_mc_ka_theta_sigma[16];
151
152 double m_psipp_proton_ptrk_offset[18];
153 double m_psipp_proton_ptrk_sigma[18];
154 double m_psipp_proton_theta_offset[18];
155 double m_psipp_proton_theta_sigma[18];
156
157 double m_psipp_mc_proton_ptrk_offset[9];
158 double m_psipp_mc_proton_ptrk_sigma[9];
159 double m_psipp_mc_proton_theta_offset[18];
160 double m_psipp_mc_proton_theta_sigma[18];
161
162
163
164
165
166
167 private:
168 DedxPID();
169 static DedxPID *m_pointer;
170};
171
172#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)
double mypol5(double x, double par0, double par1, double par2, double par3, double par4, double par5)
int particleIDCalculation()
double CorrDedx(int n, double ptrk, double cost, double chi, int charge)
double sigmaDedx(int n, double ptrk, double cost)
void inputpar()
double iterate(double ptrk, double *mean, double *p)
void init()
double offsetDedx(int n, double ptrk, double cost)
void setNhitCutDx(const int nhitcuthdx=5)
double cal_par(int index1, double *m_jpsi_pip_ptrk_offset, double ptrk, double begin, double bin)
void calculate()
static DedxPID * instance()