BOSS 7.0.4
BESIII Offline Software System
Loading...
Searching...
No Matches
InstallArea/include/MdcTables/MdcTables/TrkTables.h
Go to the documentation of this file.
1#ifndef _TrkTables_h_
2#define _TrkTables_h_
3
4#include <string>
5#include <iostream>
6#include <vector>
7
8#include "MdcTables/MdcTables.h"
9
10using namespace std;
11
12//
13//*** Info. on tracks reconstructed in KalFitter. For each track 5 slots
14//*** are allocated to handle different mass hypotheses.
15//
16class MdcTrk_global; // what is the purpose of this class ???
17class MdcTrk_localz;
18class MdcTrk_localf;
19class MdcTrk_locall;
20class MdcRec_trk;
21class MdcTrk {
22public:
23 MdcTrk() :prekal(0) {
24 for(int i =0; i<5; i++) {
25 glob[i]=0;
26 zero[i]=0;
27 first[i]=0;
28 last[i]=0;
29 }
30 }
31
32 MdcTrk(const MdcTrk& rhs) {
33 for( int i=0; i<5; i++) {
34 glob[i] = rhs.glob[i];
35 zero[i] = rhs.zero[i];
36 first[i] = rhs.first[i];
37 last[i] = rhs.last[i];
38 }
39 prekal = rhs.prekal;
40 }
41
42 MdcTrk& operator =(const MdcTrk& rhs) {
43
44 if(this == &rhs)
45 return *this;
46 for( int i=0; i<5; i++) {
47 glob[i] = rhs.glob[i];
48 zero[i] = rhs.zero[i];
49 first[i] = rhs.first[i];
50 last[i] = rhs.last[i];
51 }
52 prekal = rhs.prekal;
53
54 return *this;
55 }
56
57
58public:
59 int id;
65private:
66
67
68};
69
70class MdcTrkCol {
71public:
72 static vector<MdcTrk>* getMdcTrkCol(void);
73private:
74 static vector<MdcTrk>* s_col;
75};
76
77//
78//*** Track fit results indep. of position. ***
79//
81public:
83 id = 0;
84 mass = 0.0;
85 pathl = 0.0;
86 tof = 0.0;
87 pathl_rd = 0.0;
88 pathl_ab = 0.0;
89
90 for ( int i=0; i<5; i++ ) {
91 if( i<2 ) stat[i] = 0;
92 if( i<3 ) {
93 chisq[i] = 999;
94 ndf[i] = 0;
95 hit[i] = 0;
96 }
97 nhits[i] = 0;
98 }
99 }
100
102
103 id = rhs.id;
104 mass = rhs.mass;
105 pathl = rhs.pathl;
106 tof = rhs.tof;
107 pathl_rd = rhs.pathl_rd;
108 pathl_ab = rhs.pathl_ab;
109
110 for ( int i=0; i<5; i++ ) {
111 if( i<2 ) stat[i] = rhs.stat[i];
112 if( i<3 ) {
113 chisq[i] = rhs.chisq[i];
114 ndf[i] = rhs.ndf[i];
115 hit[i] = rhs.hit[i];
116 }
117 nhits[i] = rhs.nhits[i];
118 }
119 }
120
122
123 if(this == &rhs)
124 return *this;
125 id = rhs.id;
126 mass = rhs.mass;
127 pathl = rhs.pathl;
128 tof = rhs.tof;
129 pathl_rd = rhs.pathl_rd;
130 pathl_ab = rhs.pathl_ab;
131
132 for ( int i=0; i<5; i++ ) {
133 if( i<2 ) stat[i] = rhs.stat[i];
134 if( i<3 ) {
135 chisq[i] = rhs.chisq[i];
136 ndf[i] = rhs.ndf[i];
137 hit[i] = rhs.hit[i];
138 }
139 nhits[i] = rhs.nhits[i];
140 }
141
142 return *this;
143 }
144
145public:
146 int id;
147 float mass;
148 float chisq[3];
149 int ndf[3];
150 float pathl;
151 float tof;
152 float pathl_rd;
153 float pathl_ab;
154 int stat[2];
155 int nhits[5];
156 int hit[3];
157};
158
160public:
161 static vector<MdcTrk_global>* getMdcTrkGlobalCol(void);
162private:
163 static vector<MdcTrk_global>* s_col;
164};
165
166//
167//*** Track fit results at near the coord. origin. ***
168//
170public:
173 id = rhs.id;
174 for ( int i=0; i<15; i++ ) {
175 if( i<3 ) pivot[i] = rhs.pivot[i];
176 if( i<5 ) helix[i] = rhs.helix[i];
177 error[i] = rhs.error[i];
178 }
179 }
180
182
183 if(this == &rhs)
184 return *this;
185 id = rhs.id;
186 for ( int i=0; i<15; i++ ) {
187 if( i<3 ) pivot[i] = rhs.pivot[i];
188 if( i<5 ) helix[i] = rhs.helix[i];
189 error[i] = rhs.error[i];
190 }
191
192 return *this;
193 }
194public:
195 int id;
196 float pivot[3];
197 float helix[5];
198 float error[15];
199};
200
202public:
203 static vector<MdcTrk_localz>* getMdcTrkLocalzCol(void);
204private:
205 static vector<MdcTrk_localz>* s_col;
206};
207
208//
209//*** Track fit results at the first hit point. ***
210//
212public:
215 id = rhs.id;
216 for ( int i=0; i<15; i++ ) {
217 if( i<3 ) pivot[i] = rhs.pivot[i];
218 if( i<5 ) helix[i] = rhs.helix[i];
219 error[i] = rhs.error[i];
220 }
221 }
222
224
225 if(this == &rhs)
226 return *this;
227 id = rhs.id;
228 for ( int i=0; i<15; i++ ) {
229 if( i<3 ) pivot[i] = rhs.pivot[i];
230 if( i<5 ) helix[i] = rhs.helix[i];
231 error[i] = rhs.error[i];
232 }
233
234 return *this;
235 }
236public:
237 int id;
238 float pivot[3];
239 float helix[5];
240 float error[15];
241};
242
244public:
245 static vector<MdcTrk_localf>* getMdcTrkLocalfCol(void);
246private:
247 static vector<MdcTrk_localf>* s_col;
248};
249
250//
251//*** Track fit results at the last hit point. ***
252//
254public:
257 id = rhs.id;
258 for ( int i=0; i<15; i++ ) {
259 if( i<3 ) pivot[i] = rhs.pivot[i];
260 if( i<5 ) helix[i] = rhs.helix[i];
261 error[i] = rhs.error[i];
262 }
263 }
265
266 if(this == &rhs)
267 return *this;
268 id = rhs.id;
269 for ( int i=0; i<15; i++ ) {
270 if( i<3 ) pivot[i] = rhs.pivot[i];
271 if( i<5 ) helix[i] = rhs.helix[i];
272 error[i] = rhs.error[i];
273 }
274
275 return *this;
276 }
277public:
278 int id;
279 float pivot[3];
280 float helix[5];
281 float error[15];
282};
283
285public:
286 static vector<MdcTrk_locall>* getMdcTrkLocallCol(void);
287private:
288 static vector<MdcTrk_locall>* s_col;
289};
290
291//
292//*** V0 candidates. ***
293//
295public:
297public:
298 int id;
299 int kind;
301 float vtx[3];
302 float P[5];
303 float fl;
304 float dz;
305 int type;
306};
307
309public:
310 static vector<MdcTrk_v0>* getMdcTrkV0Col(void);
311private:
312 static vector<MdcTrk_v0>* s_col;
313};
314
315//
316//*** V0 candidates; V0 info. after vtx-constrained fit***
317//
320public:
322public:
323 int id;
324 int kind;
326 float P[4];
327 float vtx[3];
328 float dz;
329 float chisq;
330 int type;
332};
333
335public:
336 static vector<MdcTrk_v02>* getMdcTrkV02Col(void);
337private:
338 static vector<MdcTrk_v02>* s_col;
339};
340
341//
342//*** Track params. and error matrix of V0 daughters before the ***
343//*** vtx-constraint fit. They are defined at the V0 vtx-position. ***
344//
346public:
348public:
349 int id;
350 float helix_p[5];
351 float helix_m[5];
352 float error_p[15];
353 float error_m[15];
354};
355
357public:
358 static vector<MdcTrk_v0_daughters>* getMdcTrkV0DaughtersCol(void);
359private:
360 static vector<MdcTrk_v0_daughters>* s_col;
361};
362
363//
364//*** Path length in MDC for dEdx pid. ***
365//
367public:
370 id = rhs.id;
371 layer = rhs.layer;
372 trk = rhs.trk;
373 xin = rhs.xin;
374 yin = rhs.yin;
375 zin = rhs.zin;
376 xout = rhs.xout;
377 yout = rhs.yout;
378 zout = rhs.zout;
379 pathl = rhs.pathl;
380 px = rhs.px;
381 py = rhs.py;
382 pz = rhs.pz;
383 status = rhs.status;
384 return *this;
385 };
386
387// MdcTrk_pathl(const MdcTrk_pathl& rhs){
388// this = rhs;
389 // }
390public:
391 int id;
392 int layer;
394 float xin;
395 float yin;
396 float zin;
397 float xout;
398 float yout;
399 float zout;
400 float pathl;
401 float px;
402 float py;
403 float pz;
405 private:
406
407
408};
409
411public:
412 static vector<MdcTrk_pathl>* getMdcTrkPathlCol(void);
413private:
414 static vector<MdcTrk_pathl>* s_col;
415};
416
417//
418//*** Info. on tracks found either in MDC+SVD combined system or in SVD only. ***
419//
420class MdcRec_trk_add;
422public:
424public:
425 int id;
426 float Helix[5];
428 // svd_cluster[24];
430};
431
433public:
434 static vector<MdcTrk_svd>* getMdcTrkSvdCol(void);
435private:
436 static vector<MdcTrk_svd>* s_col;
437};
438
439//
440//*** Tof results for diff mass assumptions ***
441//
443public:
446 id = rhs.id ;
447 rectrk = rhs.rectrk;
448 tof_k = rhs.tof_k;
449 tof_p = rhs.tof_p;
450 return *this;
451
452 };
453public:
454 int id;
456 float tof;
457 float tof_k;
458 float tof_p;
459private:
460// MdcTrk_tof(MdcTrk_tof &rhs);
461
462
463};
464
466public:
467 static vector<MdcTrk_tof>* getMdcTrkTofCol(void);
468private:
469 static vector<MdcTrk_tof>* s_col;
470};
471
472#endif // _TrkTables_h_
473
static vector< MdcTrk > * getMdcTrkCol(void)
Definition: TrkTables.cxx:11
static vector< MdcTrk_global > * getMdcTrkGlobalCol(void)
Definition: TrkTables.cxx:24
static vector< MdcTrk_localf > * getMdcTrkLocalfCol(void)
Definition: TrkTables.cxx:50
static vector< MdcTrk_locall > * getMdcTrkLocallCol(void)
Definition: TrkTables.cxx:63
static vector< MdcTrk_localz > * getMdcTrkLocalzCol(void)
Definition: TrkTables.cxx:37
static vector< MdcTrk_pathl > * getMdcTrkPathlCol(void)
Definition: TrkTables.cxx:116
static vector< MdcTrk_svd > * getMdcTrkSvdCol(void)
Definition: TrkTables.cxx:129
static vector< MdcTrk_tof > * getMdcTrkTofCol(void)
Definition: TrkTables.cxx:142
static vector< MdcTrk_v02 > * getMdcTrkV02Col(void)
Definition: TrkTables.cxx:89
static vector< MdcTrk_v0 > * getMdcTrkV0Col(void)
Definition: TrkTables.cxx:76
static vector< MdcTrk_v0_daughters > * getMdcTrkV0DaughtersCol(void)
Definition: TrkTables.cxx:103
MdcTrk_global & operator=(const MdcTrk_global &rhs)
MdcTrk_localf & operator=(const MdcTrk_localf &rhs)
MdcTrk_locall & operator=(const MdcTrk_locall &rhs)
MdcTrk_localz & operator=(const MdcTrk_localz &rhs)
MdcTrk_pathl & operator=(MdcTrk_pathl &rhs)
MdcTrk_tof & operator=(MdcTrk_tof &rhs)
MdcTrk & operator=(const MdcTrk &rhs)