BOSS 7.0.2
BESIII Offline Software System
Loading...
Searching...
No Matches
InstallArea/include/RootEventData/RootEventData/TRecMdcKalTrack.h
Go to the documentation of this file.
1#ifndef RootEventData_TRecMdcKalTrack_H
2#define RootEventData_TRecMdcKalTrack_H 1
3
4#include "TObject.h"
5#include "TString.h"
6
7class TRecMdcKalTrack : public TObject {
8
9 public:
10
13
14 //extractors
15 const Int_t getTrackId() const { return m_trackId; }
16 const Double_t getMass( Int_t pid ) const { return m_mass[pid]; }
17 const Double_t getLength( Int_t pid ) const { return m_length[pid]; }
18 const Double_t getTof( Int_t pid ) const { return m_tof[pid]; }
19 const Double_t getfiTerm( Int_t pid ) const { return m_fiTerm[pid]; }
20 const Double_t getPathSM( Int_t pid ) const { return m_pathSM[pid]; }
21 const Int_t getNhits( Int_t pid ) const { return m_nhits[pid]; }
22 const Int_t getNlayer( Int_t pid ) const { return m_nlayer[pid]; }
23 const Int_t getStat( Int_t i,Int_t pid ) const { return m_stat[i][pid]; }
24 const Double_t getChisq( Int_t i, Int_t pid ) const { return m_chisq[i][pid];}
25 const Int_t getNdf( Int_t i, Int_t pid ) const { return m_ndf[i][pid]; }
26 const Int_t getNseg( Int_t pid ) const { return m_nSegs[pid]; }
27 const Double_t getZHelix(Int_t i) const {return m_zhelix[i];}
28 const Double_t getZError(Int_t i, Int_t j) const {return m_zerror[i][j];}
29 const Double_t getZHelixE(Int_t i) const {return m_zhelix_e[i];}
30 const Double_t getZErrorE(Int_t i, Int_t j) const {return m_zerror_e[i][j];}
31 const Double_t getZHelixMu(Int_t i) const {return m_zhelix_mu[i];}
32 const Double_t getZErrorMu(Int_t i, Int_t j) const {return m_zerror_mu[i][j];}
33 const Double_t getZHelixK(Int_t i) const {return m_zhelix_k[i];}
34 const Double_t getZErrorK(Int_t i, Int_t j) const {return m_zerror_k[i][j];}
35 const Double_t getZHelixP(Int_t i) const {return m_zhelix_p[i];}
36 const Double_t getZErrorP(Int_t i, Int_t j) const {return m_zerror_p[i][j];}
37 const Double_t getFHelix(Int_t i) const {return m_fhelix[i];}
38 const Double_t getFError(Int_t i, Int_t j) const {return m_ferror[i][j];}
39 const Double_t getFHelixE(Int_t i) const {return m_fhelix_e[i];}
40 const Double_t getFErrorE(Int_t i, Int_t j) const {return m_ferror_e[i][j];}
41 const Double_t getFHelixMu(Int_t i) const {return m_fhelix_mu[i];}
42 const Double_t getFErrorMu(Int_t i, Int_t j) const {return m_ferror_mu[i][j];}
43 const Double_t getFHelixK(Int_t i) const {return m_fhelix_k[i];}
44 const Double_t getFErrorK(Int_t i, Int_t j) const {return m_ferror_k[i][j];}
45 const Double_t getFHelixP(Int_t i) const {return m_fhelix_p[i];}
46 const Double_t getFErrorP(Int_t i, Int_t j) const {return m_ferror_p[i][j];}
47 const Double_t getLHelix(Int_t i) const {return m_lhelix[i];}
48 const Double_t getLError(Int_t i, Int_t j) const {return m_lerror[i][j];}
49 const Double_t getLHelixE(Int_t i) const {return m_lhelix_e[i];}
50 const Double_t getLErrorE(Int_t i, Int_t j) const {return m_lerror_e[i][j];}
51 const Double_t getLHelixMu(Int_t i) const {return m_lhelix_mu[i];}
52 const Double_t getLErrorMu(Int_t i, Int_t j) const {return m_lerror_mu[i][j];}
53 const Double_t getLHelixK(Int_t i) const {return m_lhelix_k[i];}
54 const Double_t getLErrorK(Int_t i, Int_t j) const {return m_lerror_k[i][j];}
55 const Double_t getLHelixP(Int_t i) const {return m_lhelix_p[i];}
56 const Double_t getLErrorP(Int_t i, Int_t j) const {return m_lerror_p[i][j];}
57 const Double_t getTHelix(Int_t i) const {return m_thelix[i];}
58 const Double_t getTError(Int_t i) const {return m_terror[i];}
59
60 const Double_t getPocaE(Int_t i) const {return m_poca_e[i];}
61
62 const Double_t getPocaMu(Int_t i) const {return m_poca_mu[i];}
63
64 const Double_t getPoca(Int_t i) const {return m_poca[i];}
65
66 const Double_t getPocaK(Int_t i) const {return m_poca_k[i];}
67
68 const Double_t getPocaP(Int_t i) const {return m_poca_p[i];}
69
70 const Double_t getLPointE(Int_t i) const {return m_lpoint_e[i];}
71 const Double_t getLPointMu(Int_t i) const {return m_lpoint_mu[i];}
72 const Double_t getLPoint(Int_t i) const {return m_lpoint[i];}
73 const Double_t getLPointK(Int_t i) const {return m_lpoint_k[i];}
74 const Double_t getLPointP(Int_t i) const {return m_lpoint_p[i];}
75
76 const Double_t getLPivotE(Int_t i) const {return m_lpivot_e[i];}
77 const Double_t getLPivotMu(Int_t i) const {return m_lpivot_mu[i];}
78 const Double_t getLPivot(Int_t i) const {return m_lpivot[i];}
79 const Double_t getLPivotK(Int_t i) const {return m_lpivot_k[i];}
80 const Double_t getLPivotP(Int_t i) const {return m_lpivot_p[i];}
81
82 //modifiers
83
84 void setTrackId (const Int_t trackId) { m_trackId = trackId; }
85 void setMass(const Double_t mass[5]){
86 for (int i =0 ; i< 5 ; i++)
87 m_mass[i] = mass[i];
88 }
89
90 void setLength(const Double_t length[5]){
91 for (int i =0 ; i< 5 ; i++)
92 m_length[i] = length[i];
93 }
94
95 void setFiTerm(const Double_t fiTerm[5]){
96 for (int i =0 ; i< 5 ; i++)
97 m_fiTerm[i] = fiTerm[i];
98 }
99
100 void setPathSM(const Double_t pathSM[5]){
101 for (int i =0 ; i< 5 ; i++)
102 m_pathSM[i] = pathSM[i];
103 }
104
105 void setTof(const Double_t tof[5]){
106 for (int i =0 ; i< 5 ; i++)
107 m_tof[i] = tof[i];
108 }
109
110 void setNhits(const Int_t nhits[5]){
111 for (int i =0 ; i< 5 ; i++)
112 m_nhits[i] = nhits[i];
113 }
114
115 void setStat(const Int_t stat , Int_t i , Int_t pid){ m_stat[i][pid] = stat ;}
116 void setChisq(const Double_t chisq , Int_t i , Int_t pid){ m_chisq[i][pid] = chisq ;}
117 void setNdf(const Int_t ndf , Int_t i , Int_t pid){ m_ndf[i][pid] = ndf ;}
118 void setNseg(const Int_t nSeg , Int_t pid){ m_nSegs[pid] = nSeg ;}
119 void setNlayer(const Int_t nlayer , Int_t pid){ m_nlayer[pid] = nlayer;}
120 //Z
121 void setZHelix(const Double_t zhelix[5]){
122 for (int i = 0 ; i<5 ; i++)
123 m_zhelix[i] = zhelix[i];
124 }
125 void setZError(const Double_t zerror[5][5]){
126 for (int i= 0 ; i<5 ; i++)
127 for (int j=0; j<=i; j++){
128 m_zerror[i][j] = zerror[i][j];
129 m_zerror[j][i] = zerror[i][j];
130 }
131 }
132 void setZHelixE(const Double_t zhelix_e[5]){
133 for (int i = 0 ; i<5 ; i++)
134 m_zhelix_e[i] = zhelix_e[i];
135 }
136 void setZErrorE(const Double_t zerror_e[5][5]){
137 for (int i= 0 ; i<5 ; i++)
138 for (int j=0; j<=i; j++){
139 m_zerror_e[i][j] = zerror_e[i][j];
140 m_zerror_e[j][i] = zerror_e[i][j];
141 }
142 }
143
144 void setZHelixMu(const Double_t zhelix_mu[5]){
145 for (int i = 0 ; i<5 ; i++)
146 m_zhelix_mu[i] = zhelix_mu[i];
147 }
148
149 void setZErrorMu(const Double_t zerror_mu[5][5]){
150 for (int i= 0 ; i<5 ; i++)
151 for (int j=0; j<=i; j++){
152 m_zerror_mu[i][j] = zerror_mu[i][j];
153 m_zerror_mu[j][i] = zerror_mu[i][j];
154 }
155 }
156 void setZHelixK(const Double_t zhelix_k[5]){
157 for (int i = 0 ; i<5 ; i++)
158 m_zhelix_k[i] = zhelix_k[i];
159 }
160 void setZErrorK(const Double_t zerror_k[5][5]){
161 for (int i= 0 ; i<5 ; i++)
162 for (int j=0; j<=i; j++){
163 m_zerror_k[i][j] = zerror_k[i][j];
164 m_zerror_k[j][i] = zerror_k[i][j];
165 }
166 }
167 void setZHelixP(const Double_t zhelix_p[5]){
168 for (int i = 0 ; i<5 ; i++)
169 m_zhelix_p[i] = zhelix_p[i];
170 }
171 void setZErrorP(const Double_t zerror_p[5][5]){
172 for (int i= 0 ; i<5 ; i++)
173 for (int j=0; j<=i; j++){
174 m_zerror_p[i][j] = zerror_p[i][j];
175 m_zerror_p[j][i] = zerror_p[i][j];
176 }
177 }
178
179 //F
180 void setFHelix(const Double_t fhelix[5]){
181 for (int i = 0 ; i<5 ; i++)
182 m_fhelix[i] = fhelix[i];
183 }
184
185 void setFError(const Double_t ferror[5][5]){
186 for (int i= 0 ; i<5 ; i++)
187 for (int j=0; j<=i; j++){
188 m_ferror[i][j] = ferror[i][j];
189 m_ferror[j][i] = ferror[i][j];
190 }
191 }
192 void setFHelixE(const Double_t fhelix_e[5]){
193 for (int i = 0 ; i<5 ; i++)
194 m_fhelix_e[i] = fhelix_e[i];
195 }
196 void setFErrorE(const Double_t ferror_e[5][5]){
197 for (int i= 0 ; i<5 ; i++)
198 for (int j=0; j<=i; j++){
199 m_ferror_e[i][j] = ferror_e[i][j];
200 m_ferror_e[j][i] = ferror_e[i][j];
201 }
202 }
203 void setFHelixMu(const Double_t fhelix_mu[5]){
204 for (int i = 0 ; i<5 ; i++)
205 m_fhelix_mu[i] = fhelix_mu[i];
206 }
207 void setFErrorMu(const Double_t ferror_mu[5][5]){
208 for (int i= 0 ; i<5 ; i++)
209 for (int j=0; j<=i; j++){
210 m_ferror_mu[i][j] = ferror_mu[i][j];
211 m_ferror_mu[j][i] = ferror_mu[i][j];
212 }
213 }
214 void setFHelixK(const Double_t fhelix_k[5]){
215 for (int i = 0 ; i<5 ; i++)
216 m_fhelix_k[i] = fhelix_k[i];
217 }
218 void setFErrorK(const Double_t ferror_k[5][5]){
219 for (int i= 0 ; i<5 ; i++)
220 for (int j=0; j<=i; j++){
221 m_ferror_k[i][j] = ferror_k[i][j];
222 m_ferror_k[j][i] = ferror_k[i][j];
223 }
224 }
225 void setFHelixP(const Double_t fhelix_p[5]){
226 for (int i = 0 ; i<5 ; i++)
227 m_fhelix_p[i] = fhelix_p[i];
228 }
229 void setFErrorP(const Double_t ferror_p[5][5]){
230 for (int i= 0 ; i<5 ; i++)
231 for (int j=0; j<=i; j++){
232 m_ferror_p[i][j] = ferror_p[i][j];
233 m_ferror_p[j][i] = ferror_p[i][j];
234 }
235 }
236
237 // L
238 void setLHelix(const Double_t lhelix[5]){
239 for (int i = 0 ; i<5 ; i++)
240 m_lhelix[i] = lhelix[i];
241 }
242 void setLError(const Double_t lerror[5][5]){
243 for (int i= 0 ; i<5 ; i++)
244 for (int j=0; j<=i; j++){
245 m_lerror[i][j] = lerror[i][j];
246 m_lerror[j][i] = lerror[i][j];
247 }
248 }
249 void setLHelixE(const Double_t lhelix_e[5]){
250 for (int i = 0 ; i<5 ; i++)
251 m_lhelix_e[i] = lhelix_e[i];
252 }
253
254 void setLErrorE(const Double_t lerror_e[5][5]){
255 for (int i= 0 ; i<5 ; i++)
256 for (int j=0; j<=i; j++){
257 m_lerror_e[i][j] = lerror_e[i][j];
258 m_lerror_e[j][i] = lerror_e[i][j];
259 }
260 }
261
262 void setLHelixMu(const Double_t lhelix_mu[5]){
263 for (int i = 0 ; i<5 ; i++)
264 m_lhelix_mu[i] = lhelix_mu[i];
265 }
266
267 void setLErrorMu(const Double_t lerror_mu[5][5]){
268 for (int i=0; i<5; i++)
269 for (int j=0; j<=i; j++){
270 m_lerror_mu[i][j] = lerror_mu[i][j];
271 m_lerror_mu[j][i] = lerror_mu[i][j];
272 }
273 }
274
275 void setLHelixK(const Double_t lhelix_k[5]){
276 for (int i=0; i<5; i++)
277 m_lhelix_k[i] = lhelix_k[i];
278 }
279
280 void setLErrorK(const Double_t lerror_k[5][5]){
281 for (int i=0; i<5; i++)
282 for (int j=0; j<=i; j++){
283 m_lerror_k[i][j] = lerror_k[i][j];
284 m_lerror_k[j][i] = lerror_k[i][j];
285 }
286 }
287
288 void setLHelixP(const Double_t lhelix_p[5]){
289 for (int i =0; i<5 ; i++)
290 m_lhelix_p[i] = lhelix_p[i];
291 }
292
293 void setLErrorP(const Double_t lerror_p[5][5]){
294 for (int i=0; i<5 ; i++)
295 for (int j=0; j<=i; j++){
296 m_lerror_p[i][j] = lerror_p[i][j];
297 m_lerror_p[j][i] = lerror_p[i][j];
298 }
299 }
300
301 void setTHelix(const Double_t thelix[5]){
302 for (int i = 0 ; i<5 ; i++)
303 m_thelix[i] = thelix[i];
304 }
305 void setTError(const Double_t terror[15]){
306 for (int i= 0 ; i<15 ; i++){
307 m_terror[i] = terror[i];
308 }
309 }
310
311 void setPocaE(const Double_t poca_e[3]){
312 for(int i=0; i<3; i++) m_poca_e[i] = poca_e[i];
313 }
314
315 void setPocaMu(const Double_t poca_mu[3]){
316 for(int i=0; i<3; i++) m_poca_mu[i] = poca_mu[i];
317 }
318
319 void setPoca(const Double_t poca[3]){
320 for(int i=0; i<3; i++) m_poca[i] = poca[i];
321 }
322
323 void setPocaK(const Double_t poca_k[3]){
324 for(int i=0; i<3; i++) m_poca_k[i] = poca_k[i];
325 }
326
327 void setPocaP(const Double_t poca_p[3]){
328 for(int i=0; i<3; i++) m_poca_p[i] = poca_p[i];
329 }
330
331 void setLPointE(const Double_t lpoint_e[3]){
332 for(int i=0; i<3; i++) m_lpoint_e[i] = lpoint_e[i];
333 }
334
335 void setLPointMu(const Double_t lpoint_mu[3]){
336 for(int i=0; i<3; i++) m_lpoint_mu[i] = lpoint_mu[i];
337 }
338
339 void setLPoint(const Double_t lpoint[3]){
340 for(int i=0; i<3; i++) m_lpoint[i] = lpoint[i];
341 }
342
343 void setLPointK(const Double_t lpoint_k[3]){
344 for(int i=0; i<3; i++) m_lpoint_k[i] = lpoint_k[i];
345 }
346
347 void setLPointP(const Double_t lpoint_p[3]){
348 for(int i=0; i<3; i++) m_lpoint_p[i] = lpoint_p[i];
349 }
350
351 void setLPivotE(const Double_t lpivot_e[3]){
352 for(int i=0; i<3; i++) m_lpivot_e[i] = lpivot_e[i];
353 }
354
355 void setLPivotMu(const Double_t lpivot_mu[3]){
356 for(int i=0; i<3; i++) m_lpivot_mu[i] = lpivot_mu[i];
357 }
358
359 void setLPivot(const Double_t lpivot[3]){
360 for(int i=0; i<3; i++) m_lpivot[i] = lpivot[i];
361 }
362
363 void setLPivotK(const Double_t lpivot_k[3]){
364 for(int i=0; i<3; i++) m_lpivot_k[i] = lpivot_k[i];
365 }
366
367 void setLPivotP(const Double_t lpivot_p[3]){
368 for(int i=0; i<3; i++) m_lpivot_p[i] = lpivot_p[i];
369 }
370
371
372 private:
373 Int_t m_trackId; //Track Id wensp Add 2005-10-19
374 Double_t m_mass[5]; // mass assumption during the fit
375 Double_t m_length[5]; //track path length from closest point to coord. origin to the last hit
376 Double_t m_tof[5]; // time of flight correspond to length;
377 Double_t m_fiTerm[5]; // terminal phi
378 Double_t m_pathSM[5];
379 Int_t m_nhits[5]; // number of total hits contained
380 Int_t m_nlayer[5]; // number of layer that track passed
381 Int_t m_stat[2][5]; // status flag
382 Double_t m_chisq[2][5]; // chi square of fit 0:filter 1:smoother
383 Int_t m_ndf[2][5]; // degree of freedom for the fit 0:filter 1:smoother
384 Int_t m_nSegs[5]; // number of segments
385
386 Double_t m_poca[3];
387 Double_t m_poca_e[3];
388 Double_t m_poca_mu[3];
389 Double_t m_poca_k[3];
390 Double_t m_poca_p[3];
391
392 Double_t m_lpoint[3];
393 Double_t m_lpoint_e[3];
394 Double_t m_lpoint_mu[3];
395 Double_t m_lpoint_k[3];
396 Double_t m_lpoint_p[3];
397
398 Double_t m_lpivot[3];
399 Double_t m_lpivot_e[3];
400 Double_t m_lpivot_mu[3];
401 Double_t m_lpivot_k[3];
402 Double_t m_lpivot_p[3];
403
404 Double_t m_zhelix[5]; // 5 track parameters at zero point for pi
405 Double_t m_zerror[5][5]; // error matrix at zero point for pion
406 Double_t m_zhelix_e[5]; // 5 track parameters at zero point for el
407 Double_t m_zerror_e[5][5]; // error matrix at zero point for electron
408 Double_t m_zhelix_mu[5]; // 5 track parameters at zero point for mu
409 Double_t m_zerror_mu[5][5];// error matrix at zero point for muon ;
410 Double_t m_zhelix_k[5]; // 5 track parameters at zero point for ka
411 Double_t m_zerror_k[5][5]; // error matrix at zero point for kaon
412 Double_t m_zhelix_p[5]; // 5 track parameters at zero point for pr
413 Double_t m_zerror_p[5][5]; // error matrix at zero point for proton
414
415 Double_t m_fhelix[5]; // 5 track parameters at zero point for pi
416 Double_t m_ferror[5][5]; // error matrix at zero point for pion
417 Double_t m_fhelix_e[5]; // 5 track parameters at zero point for el
418 Double_t m_ferror_e[5][5]; // error matrix at zero point for electron
419 Double_t m_fhelix_mu[5]; // 5 track parameters at zero point for mu
420 Double_t m_ferror_mu[5][5]; // error matrix at zero point for muon ;
421 Double_t m_fhelix_k[5]; // 5 track parameters at zero point for ka
422 Double_t m_ferror_k[5][5]; // error matrix at zero point for kaon
423 Double_t m_fhelix_p[5]; // 5 track parameters at zero point for pr
424 Double_t m_ferror_p[5][5]; // error matrix at zero point for proton
425
426 Double_t m_lhelix[5]; // 5 track parameters at zero point for pi
427 Double_t m_lerror[5][5]; // error matrix at zero point for pion
428 Double_t m_lhelix_e[5]; // 5 track parameters at zero point for el
429 Double_t m_lerror_e[5][5]; // error matrix at zero point for electron
430 Double_t m_lhelix_mu[5]; // 5 track parameters at zero point for mu
431 Double_t m_lerror_mu[5][5]; // error matrix at zero point for muon ;
432 Double_t m_lhelix_k[5]; // 5 track parameters at zero point for ka
433 Double_t m_lerror_k[5][5]; // error matrix at zero point for kaon
434 Double_t m_lhelix_p[5]; // 5 track parameters at zero point for pr
435 Double_t m_lerror_p[5][5]; // error matrix at zero point for proton
436
437 Double_t m_thelix[5]; // 5 track parameters of track finding
438 Double_t m_terror[15]; // error matrix of track finding
439
440 ClassDef(TRecMdcKalTrack, 4)
441};
442
443#endif
double mass
void setChisq(const Double_t chisq, Int_t i, Int_t pid)
void setStat(const Int_t stat, Int_t i, Int_t pid)