BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Analysis/ParticleID/include/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
17public:
18 static DedxPID* instance();
19 // constructor & desconstructor
20 ~DedxPID() { ; }
21
22 void init();
23 void calculate();
24 bool IsPidInfoValid() const { return ( m_ndof > 0 ); }
25 double chi( int n ) const { return m_chi[n]; }
26 double prob( int n ) const { return m_prob[n]; }
27 double offset( int n ) const { return m_offset[n]; }
28 double sigma( int n ) const { return m_sigma[n]; }
29 int ndof() const { return m_ndof; }
30 double normPH() const { return m_normPH; }
31 double goodHits() const { return m_goodHits; }
32 int neuronPID() const { return -1; }
33 int getNhitCutDx() const { return m_nhitcutdx; }
34 void setNhitCutDx( const int nhitcuthdx = 5 ) { m_nhitcutdx = nhitcuthdx; }
35
36protected:
38 int neuronPIDCalculation() { return -1; }
39 double offsetDedx( int n, double ptrk, double cost );
40 double sigmaDedx( int n, double ptrk, double cost );
41 int LikelihoodCalculation() { return -1; }
42 double mypol3( double x, double par0, double par1, double par2, double par3 );
43 double mypol5( double x, double par0, double par1, double par2, double par3, double par4,
44 double par5 );
45 void inputpar();
46 double CorrDedx( int n, double ptrk, double cost, double chi, int charge );
47 double iterate( double ptrk, double* mean, double* p );
48 double cal_par( int index1, double* m_jpsi_pip_ptrk_offset, double ptrk, double begin,
49 double bin );
50 double offsetCorr( int n, int charge, double ptrk, double cost );
51 double sigmaCorr( int n, int charge, double ptrk, double cost );
52 double interpolation( double cost, double* costheta, double* par );
53
54private:
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 double m_jpsi_protonp_ptrk_offset[8];
89 double m_jpsi_protonp_ptrk_sigma[8];
90 double m_jpsi_protonm_ptrk_offset[8];
91 double m_jpsi_protonm_ptrk_sigma[8];
92 double m_jpsi_protonp_theta_offset[18];
93 double m_jpsi_protonp_theta_sigma[18];
94 double m_jpsi_protonm_theta_offset[18];
95 double m_jpsi_protonm_theta_sigma[18];
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 // psip
107 double m_psip_kap_ptrk_offset[9];
108 double m_psip_kap_ptrk_sigma[9];
109 double m_psip_kam_ptrk_offset[9];
110 double m_psip_kam_ptrk_sigma[9];
111
112 double m_psip_mc_kap_ptrk_offset[9];
113 double m_psip_mc_kap_ptrk_sigma[9];
114 double m_psip_mc_kam_ptrk_offset[9];
115 double m_psip_mc_kam_ptrk_sigma[9];
116
117 double m_psip_protonp_ptrk_offset[9];
118 double m_psip_protonp_ptrk_sigma[9];
119 double m_psip_protonm_ptrk_offset[9];
120 double m_psip_protonm_ptrk_sigma[9];
121
122 double m_psip_mc_protonp_ptrk_offset[9];
123 double m_psip_mc_protonp_ptrk_sigma[9];
124 double m_psip_mc_protonm_ptrk_offset[9];
125 double m_psip_mc_protonm_ptrk_sigma[9];
126
127 // psipp
128
129 double m_psipp_pi_ptrk_offset[18];
130 double m_psipp_pi_ptrk_sigma[18];
131 double m_psipp_pi_theta_offset[16];
132 double m_psipp_pi_theta_sigma[16];
133
134 double m_psipp_mc_pi_ptrk_offset[18];
135 double m_psipp_mc_pi_ptrk_sigma[18];
136 double m_psipp_mc_pi_theta_offset[16];
137 double m_psipp_mc_pi_theta_sigma[16];
138
139 double m_psipp_ka_ptrk_offset[17];
140 double m_psipp_ka_ptrk_sigma[17];
141 double m_psipp_ka_theta_offset[16];
142 double m_psipp_ka_theta_sigma[16];
143
144 double m_psipp_mc_ka_ptrk_offset[17];
145 double m_psipp_mc_ka_ptrk_sigma[17];
146 double m_psipp_mc_ka_theta_offset[16];
147 double m_psipp_mc_ka_theta_sigma[16];
148
149 double m_psipp_proton_ptrk_offset[18];
150 double m_psipp_proton_ptrk_sigma[18];
151 double m_psipp_proton_theta_offset[18];
152 double m_psipp_proton_theta_sigma[18];
153
154 double m_psipp_mc_proton_ptrk_offset[9];
155 double m_psipp_mc_proton_ptrk_sigma[9];
156 double m_psipp_mc_proton_theta_offset[18];
157 double m_psipp_mc_proton_theta_sigma[18];
158
159 double m_offsetCorr[5];
160 double m_sigmaCorr[5];
161
162private:
163 DedxPID();
164 static DedxPID* m_pointer;
165};
166
167#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
NTuple::Array< double > m_sigma
double mypol3(double x, double par0, double par1, double par2, double par3)
Definition DedxPID.cxx:533
double mypol5(double x, double par0, double par1, double par2, double par3, double par4, double par5)
Definition DedxPID.cxx:538
double offsetCorr(int n, int charge, double ptrk, double cost)
Definition DedxPID.cxx:994
int particleIDCalculation()
Definition DedxPID.cxx:51
double CorrDedx(int n, double ptrk, double cost, double chi, int charge)
Definition DedxPID.cxx:150
double sigmaDedx(int n, double ptrk, double cost)
Definition DedxPID.cxx:482
void inputpar()
Definition DedxPID.cxx:545
double iterate(double ptrk, double *mean, double *p)
Definition DedxPID.cxx:966
void init()
Definition DedxPID.cxx:24
double offsetDedx(int n, double ptrk, double cost)
Definition DedxPID.cxx:148
double interpolation(double cost, double *costheta, double *par)
Definition DedxPID.cxx:1284
void setNhitCutDx(const int nhitcuthdx=5)
double cal_par(int index1, double *m_jpsi_pip_ptrk_offset, double ptrk, double begin, double bin)
Definition DedxPID.cxx:980
void calculate()
Definition DedxPID.cxx:41
static DedxPID * instance()
Definition DedxPID.cxx:17
double sigmaCorr(int n, int charge, double ptrk, double cost)
Definition DedxPID.cxx:1123