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