BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Mdc/MdcTables/include/MdcTables/MdcTables.h
Go to the documentation of this file.
1/* modified the Class MdcRec_wirhit for KalFit & Calib use
2 *
3 **********************************************************/
4
5#ifndef _MdcTables_h_
6#define _MdcTables_h_
7
8#include <iostream>
9#include <string>
10#include <vector>
11
12#include "MdcRecEvent/RecMdcHit.h"
13#include "MdcTables/HepevtTables.h"
14
15using namespace std;
16
17//
18//*** raw data info. of MDC wire hits ***
19//
20class MdcRaw_wirhit {
21public:
23
24public:
25 int id;
26 int crt;
27 int slt;
28 int chn;
29 int pre;
30 int sqt;
31 int edges;
32 int tdc1;
33 int tdc2;
34 int tdc3;
35 int tdc4;
36 int tdc5;
37 int tdc6;
38 int tdc7;
39 int tdc8;
40 int tdc9;
41 int tdc10;
42 int tdc11;
43 int tdc12;
44 int tdc13;
45 int tdc14;
46 int tdc15;
47 int tdc16;
48 int stat;
49 int layer;
50 int local;
51 const MdcGeoWire* geo;
52};
53
54class MdcRawWirhitCol {
55public:
56 static vector<MdcRaw_wirhit>* getMdcRawWirhitCol( void );
57
58private:
59 static vector<MdcRaw_wirhit>* s_col;
60};
61
62//
63//*** digitized info. of MDC wire hits ***
64//
65class MdcRec_wirhit;
66class MdcDat_wirhit {
67public:
69
70public:
71 int id;
72 float adc;
73 float tdc;
74 int stat;
75 const MdcGeoWire* geo;
77};
78
79class MdcDatWirhitCol {
80public:
81 static vector<MdcDat_wirhit>* getMdcDatWirhitCol( void );
82
83private:
84 static vector<MdcDat_wirhit>* s_col;
85};
86
87//
88//*** digitized info. of MDC wire hits ***
89//
90class MdcDat_olhit {
91public:
93
94public:
95 int id;
96 float adc;
97 float tdc;
98 int stat;
99 const MdcGeoWire* geo;
100};
101
102class MdcDatOlhitCol {
103public:
104 static vector<MdcDat_olhit>* getMdcDatOlhitCol( void );
105
106private:
107 static vector<MdcDat_olhit>* s_col;
108};
109
110//
111//*** const. param. to calculate drift distance ***
112//
113class MdcCal_tzero {
114public:
116
117public:
118 int id;
119 float tzero;
120};
121
122class MdcCalTzeroCol {
123public:
124 static vector<MdcCal_tzero>* getMdcCalTzeroCol( void );
125
126private:
127 static vector<MdcCal_tzero>* s_col;
128};
129
130//
131//*** run by run t0 ***
132//
133class MdcCal_tzero2 {
134public:
136
137public:
138 int id;
139 float t0;
140};
141
142class MdcCalTzero2Col {
143public:
144 static vector<MdcCal_tzero2>* getMdcCalTzero2Col( void );
145
146private:
147 static vector<MdcCal_tzero2>* s_col;
148};
149
150//
151//*** Defifinition of bad wires ***
152//
153class MdcCal_badwire {
154public:
156
157public:
158 int id;
159 int bad[3];
160};
161
162class MdcCalBadwireCol {
163public:
164 static vector<MdcCal_badwire>* getMdcCalBadwireCol( void );
165
166private:
167 static vector<MdcCal_badwire>* s_col;
168};
169
170//
171//**** nition of tables for const. param. to calculate drift distance ***
172//
173class MdcCal_const {
174public:
176
177public:
178 int id;
179 float xtl[8][18];
180 float xtr[8][18];
181 float bndl[4][18];
182 float bndr[4][18];
183};
184
185class MdcCalConstCol {
186public:
187 static vector<MdcCal_const>* getMdcCalConstCol( void );
188
189private:
190 static vector<MdcCal_const>* s_col;
191};
192
193//
194//*** const. param. for error of drift distance ***
195//
196class MdcCal_const2 {
197public:
199
200public:
201 int id;
202 float sgm[5];
203};
204
205class MdcCalConst2Col {
206public:
207 static vector<MdcCal_const2>* getMdcCalConst2Col( void );
208
209private:
210 static vector<MdcCal_const2>* s_col;
211};
212
213//
214//*** const. param. for time walk ***
215//
216class MdcCal_const3 {
217public:
219
220public:
221 int id;
222 float tw[2];
223};
224
225class MdcCalConst3Col {
226public:
227 static vector<MdcCal_const3>* getMdcCalConst3Col( void );
228
229private:
230 static vector<MdcCal_const3>* s_col;
231};
232
233//
234//*** fudge factor and tanL dep. ***
235//
236class MdcCal_const4 {
237public:
239
240public:
241 int id;
242 float fudge;
243 int npoint;
244 float tanl[20];
245 float ftanl[20];
246 float a[20];
247 float b[20];
248};
249
250class MdcCalConst4Col {
251public:
252 static vector<MdcCal_const4>* getMdcCalConst4Col( void );
253
254private:
255 static vector<MdcCal_const4>* s_col;
256};
257
258//
259//*** miscellaneous ***
260//
261class MdcCal_misc {
262public:
264
265public:
266 int id;
267 int level;
268 float inv_speed;
269};
270
271class MdcCalMiscCol {
272public:
273 static vector<MdcCal_misc>* getMdcCalMiscCol( void );
274
275private:
276 static vector<MdcCal_misc>* s_col;
277};
278
279//
280//*** const. param. to calculate charge ***
281//
282class MdcCal_ped {
283public:
285
286public:
287 int id;
288 float pmean;
289 float psigma;
290};
291
292class MdcCalPedCol {
293public:
294 static vector<MdcCal_ped>* getMdcCalPedCol( void );
295
296private:
297 static vector<MdcCal_ped>* s_col;
298};
299
300//
301//*** wire-hits of MDC ***
302//
303class MdcRec_trk;
304class MdcRec_wirhit {
305public:
306 MdcRec_wirhit() : geo( 0 ), dat( 0 ), trk( 0 ), rechitptr( 0 ) {};
309 : geo( rhs.geo ), dat( rhs.dat ), trk( rhs.trk ), rechitptr( rhs.rechitptr ) {
310 id = rhs.id;
311 ddl = rhs.ddl;
312 ddr = rhs.ddr;
313 erddl = rhs.erddl;
314 erddr = rhs.erddr;
315 pChiSq = rhs.pChiSq;
316 lr = rhs.lr;
317 stat = rhs.stat;
318 tdc = rhs.tdc;
319 adc = rhs.adc;
321 }
322
324
325 if ( this == &rhs ) return *this;
326 id = rhs.id;
327 ddl = rhs.ddl;
328 ddr = rhs.ddr;
329 erddl = rhs.erddl;
330 erddr = rhs.erddr;
331 pChiSq = rhs.pChiSq;
332 lr = rhs.lr;
333 stat = rhs.stat;
334 geo = rhs.geo;
335 trk = rhs.trk;
336 dat = rhs.dat;
337 tdc = rhs.tdc;
338 adc = rhs.adc;
340 rechitptr = rhs.rechitptr;
341 return *this;
342 }
343
344public:
345 int id{ 0 };
346 float ddl{ 0.0 };
347 float ddr{ 0.0 };
348 float erddl{ 0.0 };
349 float erddr{ 0.0 };
350 float pChiSq{ 0.0 };
351 int lr{ 0 };
352 int stat{ 0 };
353 const MdcGeoWire* geo{ nullptr };
354 MdcDat_wirhit* dat{ nullptr };
355 MdcRec_trk* trk{ nullptr };
356 RecMdcHit* rechitptr{ nullptr };
357 float tdc{ 0.0 };
358 float adc{ 0.0 };
359 unsigned timechannel{ 0 }; // liucy for tsf
360};
361
362class MdcRecWirhitCol {
363public:
364 static vector<MdcRec_wirhit>* getMdcRecWirhitCol( void );
365
366private:
367 static vector<MdcRec_wirhit>* s_col;
368};
369
370//
371//*** track of MDC ***
372//
373class MdcRec_trk_add;
374class MdcRec_trk {
375public:
376 MdcRec_trk() : add( 0 ) {};
378
379 MdcRec_trk( const MdcRec_trk& rhs ) : add( rhs.add ) {
380 id = rhs.id;
381 chiSq = rhs.chiSq;
382 ndf = rhs.ndf;
383 fiTerm = rhs.fiTerm;
384 nhits = rhs.nhits;
385 nster = rhs.nster;
386 nclus = rhs.nclus;
387 stat = rhs.stat;
388 mass = rhs.mass;
389 hitcol = rhs.hitcol;
390 for ( int i = 0; i < 15; i++ )
391 {
392 if ( i < 3 ) pivot[i] = rhs.pivot[i];
393 if ( i < 5 ) helix[i] = rhs.helix[i];
394 error[i] = rhs.error[i];
395 }
396 }
397
399
400 if ( this == &rhs ) return *this;
401 id = rhs.id;
402 chiSq = rhs.chiSq;
403 ndf = rhs.ndf;
404 fiTerm = rhs.fiTerm;
405 nhits = rhs.nhits;
406 nster = rhs.nster;
407 nclus = rhs.nclus;
408 stat = rhs.stat;
409 add = rhs.add;
410 mass = rhs.mass;
411 hitcol = rhs.hitcol;
412 for ( int i = 0; i < 15; i++ )
413 {
414 if ( i < 3 ) pivot[i] = rhs.pivot[i];
415 if ( i < 5 ) helix[i] = rhs.helix[i];
416 error[i] = rhs.error[i];
417 }
418 return *this;
419 }
420
421public:
422 int id;
423 float helix[5];
424 float pivot[3];
425 float error[15];
426 float chiSq;
427 float ndf;
428 float fiTerm;
429 int nhits;
430 int nster;
431 int nclus;
432 int stat;
433 float mass;
434 vector<MdcRec_wirhit*> hitcol;
436
437public:
438 const float fi0( void ) const { return helix[1]; }
439 const float cpa( void ) const { return helix[2]; }
440 const float dz( void ) const { return helix[3]; }
441 const float tanl( void ) const { return helix[4]; }
442};
443
444class MdcRecTrkCol {
445public:
446 static vector<MdcRec_trk>* getMdcRecTrkCol( void );
447
448private:
449 static vector<MdcRec_trk>* s_col;
450};
451
452//
453//*** dEdx of MDC ***
454//
455class MdcRec_dedx {
456public:
458
459public:
460 int id;
461 float dEdx;
462 float dEdx_exp[5];
463 float sigma_dEdx[5];
464 float pid_prob[5];
466 int stat;
467};
468
469class MdcRecDedxCol {
470public:
471 static vector<MdcRec_dedx>* getMdcRecDedxCol( void );
472
473private:
474 static vector<MdcRec_dedx>* s_col;
475};
476
477//
478//*** MDC timing ***
479//
480class MdcRec_timing {
481public:
483
484public:
485 int id;
486 float time;
487 int quality;
488};
489
490class MdcRecTimingCol {
491public:
492 static vector<MdcRec_timing>* getMdcRecTimingCol( void );
493
494private:
495 static vector<MdcRec_timing>* s_col;
496};
497
498//
499//*** const. param. for dE/dx caliburation ***
500//
501class MdcRec_excalib {
502public:
504
505public:
506 int id;
507 float gain[8208];
508 float ggs_f[10];
509 float ggs_b[10];
510 float erggs_f[10];
511 float erggs_b[10];
512 float localg[15][47];
513 float ddg[10][47];
514 float mdcgain;
515};
516
517class MdcRecExcalibCol {
518public:
519 static vector<MdcRec_excalib>* getMdcRecExcalibCol( void );
520
521private:
522 static vector<MdcRec_excalib>* s_col;
523};
524
525//
526//*** const. param. to caliburate global gain ***
527//
528class MdcRec_exglobal {
529public:
531
532public:
533 int id;
534 float mdcgain;
535 float mdcresol;
536};
537
538class MdcRecExglobalCol {
539public:
540 static vector<MdcRec_exglobal>* getMdcRecExglobalCol( void );
541
542private:
543 static vector<MdcRec_exglobal>* s_col;
544};
545
546//
547//*** const. param. to caliburate dE/dx curve ***
548//
549class MdcRec_excurve {
550public:
552
553public:
554 int id;
555 float f_bg[10];
556 float f_erbg[12];
557 float f_erbg2[12];
558};
559
560class MdcRecExcurveCol {
561public:
562 static vector<MdcRec_excurve>* getMdcRecExcurveCol( void );
563
564private:
565 static vector<MdcRec_excurve>* s_col;
566};
567
568//
569//*** const. to calib. dE/dx curve for 5 particles ***
570//
571class MdcRec_excurve_add {
572public:
574
575public:
576 int id;
577 int flag;
578 float f_e[12];
579 float f_mu[12];
580 float f_pi[12];
581 float f_k[12];
582 float f_p[12];
583};
584
586public:
587 static vector<MdcRec_excurve_add>* getMdcRecExcurveAddCol( void );
588
589private:
590 static vector<MdcRec_excurve_add>* s_col;
591};
592
593//
594//*** re-reconst. dE/dx ( global calib )"
595//
596class MdcRec_exnoggs {
597public:
599
600public:
601 int id;
602 float dEdx_r;
603 float mdcR_old;
606};
607
608class MdcRecExnoggsCol {
609public:
610 static vector<MdcRec_exnoggs>* getMdcRecExnoggsCol( void );
611
612private:
613 static vector<MdcRec_exnoggs>* s_col;
614};
615
616//
617//*** Definition of current calib. function parameter (2nd POLY.)"
618//
620public:
622
623public:
624 int id;
625 float curr_slope;
626 float curr_const;
627 float f_slope[50];
628 float f_const[50];
629};
630
632public:
633 static vector<MdcRec_excurrentfit>* getMdcRecExcurrentfitCol( void );
634
635private:
636 static vector<MdcRec_excurrentfit>* s_col;
637};
638
639//
640//*** wire current from daqom"
641//
642class MdcRec_daqom {
643public:
645
646public:
647 int id;
648 int Time;
649 float MC[56];
650 float GasPress;
651 float MDCTemp[5];
652 int RunState;
653 float BeamCurrent[2];
654 float LUMEFC;
655 float LUMCSI;
656 float VLT40;
657 float TOFRATES;
658};
659
660class MdcRecDaqomCol {
661public:
662 static vector<MdcRec_daqom>* getMdcRecDaqomCol( void );
663
664private:
665 static vector<MdcRec_daqom>* s_col;
666};
667
668//
669//*** digitized info. of MDC wire hits ***
670//
671class MdcDat_mcwirhit {
672public:
674
675public:
676 int id;
677 float xw;
678 float yw;
679 float zw;
680 float dist;
681 float chrg;
682 float xin;
683 float yin;
684 float zin;
685 float xout;
686 float yout;
687 float zout;
688 int lr;
689 int stat;
690 const MdcGeoWire* geo;
692 const Gen_hepevt* hep;
694 float px;
695 float py;
696 float pz;
697 float pid;
698 float tof;
699 float tdc;
700};
701
702class MdcDatMcwirhitCol {
703public:
704 static vector<MdcDat_mcwirhit>* getMdcDatMcwirhitCol( void );
705
706private:
707 static vector<MdcDat_mcwirhit>* s_col;
708};
709
710//
711//*** MC information of MDC track ***
712//
713class MdcRec_mctrk {
714public:
716
717public:
718 int id;
719 const Gen_hepevt* hep;
720 float wirFrac;
721 float wirFracHep;
722 int charge;
723 float ptFrac;
724 float pzFrac;
725 int quality;
726};
727
728class MdcRecMctrkCol {
729public:
730 static vector<MdcRec_mctrk>* getMdcRecMctrkCol( void );
731
732private:
733 static vector<MdcRec_mctrk>* s_col;
734};
735
736//
737//*** MDC track and generated track matching ***
738//
739class MdcRec_mctrk2hep {
740public:
742
743public:
744 int id;
746 // MdcRec_clust * clust;
748 const Gen_hepevt* hep;
749};
750
751class MdcRecMctrk2hepCol {
752public:
753 static vector<MdcRec_mctrk2hep>* getMdcRecMctrk2hepCol( void );
754
755private:
756 static vector<MdcRec_mctrk2hep>* s_col;
757};
758
759//
760//*** additional tables for track of MDC ***
761//
762class MdcTrk;
763class MdcRec_trk_add {
764public:
765 MdcRec_trk_add() : body( 0 ), mother( 0 ), daughter( 0 ), rectrk( 0 ) {};
768 : mother( rhs.mother )
769 , body( rhs.body )
770 , daughter( rhs.daughter )
771 , rectrk( rhs.rectrk ) {
772 id = rhs.id;
773 quality = rhs.quality;
774 kind = rhs.kind;
775 decision = rhs.decision;
776 stat = rhs.stat;
777 for ( int i = 0; i < 3; i++ ) { likelihood[i] = rhs.likelihood[i]; }
778 }
779
781
782 if ( this == &rhs ) return *this;
783 id = rhs.id;
784 quality = rhs.quality;
785 kind = rhs.kind;
786 decision = rhs.decision;
787 stat = rhs.stat;
788 rectrk = rhs.rectrk;
789 body = rhs.body;
790 mother = rhs.mother;
791 daughter = rhs.daughter;
792 for ( int i = 0; i < 3; i++ ) { likelihood[i] = rhs.likelihood[i]; }
793 return *this;
794 }
795
796public:
797 int id;
798 int quality;
799 int kind;
803 int decision;
804 float likelihood[3];
805 int stat;
806 MdcTrk* rectrk;
807};
808
809class MdcRecTrkAddCol {
810public:
811 static vector<MdcRec_trk_add>* getMdcRecTrkAddCol( void );
812
813private:
814 static vector<MdcRec_trk_add>* s_col;
815};
816
817//
818//*** mdctime run-dependent offset ***
819//
820class MdcRec_timeofs {
821public:
823
824public:
825 int id;
826 float offset;
827};
828
829class MdcRecTimeofsCol {
830public:
831 static vector<MdcRec_timeofs>* getMdcRecTimeofsCol( void );
832
833private:
834 static vector<MdcRec_timeofs>* s_col;
835};
836
837//
838//*** Tof_xtime2 information with tighter cuts ***
839//*** from Tof_mdctime ***
840//
841class Mdc_xtime2 {
842public:
844
845public:
846 int id;
847 float xtime;
848 float tofhit;
849 float trig32;
850 float evtime;
851 float tdcstop;
852};
853
854class MdcXtime2Col {
855public:
856 static vector<Mdc_xtime2>* getMdcXtime2Col( void );
857
858private:
859 static vector<Mdc_xtime2>* s_col;
860};
861
862#endif // _MdcTables_h_
double mass
Double_t time
Double_t xtime[11]
static vector< MdcCal_badwire > * getMdcCalBadwireCol(void)
static vector< MdcCal_const2 > * getMdcCalConst2Col(void)
static vector< MdcCal_const3 > * getMdcCalConst3Col(void)
static vector< MdcCal_const4 > * getMdcCalConst4Col(void)
static vector< MdcCal_const > * getMdcCalConstCol(void)
static vector< MdcCal_misc > * getMdcCalMiscCol(void)
static vector< MdcCal_ped > * getMdcCalPedCol(void)
static vector< MdcCal_tzero2 > * getMdcCalTzero2Col(void)
static vector< MdcCal_tzero > * getMdcCalTzeroCol(void)
static vector< MdcDat_mcwirhit > * getMdcDatMcwirhitCol(void)
static vector< MdcDat_olhit > * getMdcDatOlhitCol(void)
static vector< MdcDat_wirhit > * getMdcDatWirhitCol(void)
static vector< MdcRaw_wirhit > * getMdcRawWirhitCol(void)
static vector< MdcRec_daqom > * getMdcRecDaqomCol(void)
static vector< MdcRec_dedx > * getMdcRecDedxCol(void)
static vector< MdcRec_excalib > * getMdcRecExcalibCol(void)
static vector< MdcRec_excurrentfit > * getMdcRecExcurrentfitCol(void)
static vector< MdcRec_excurve_add > * getMdcRecExcurveAddCol(void)
static vector< MdcRec_excurve > * getMdcRecExcurveCol(void)
static vector< MdcRec_exglobal > * getMdcRecExglobalCol(void)
static vector< MdcRec_exnoggs > * getMdcRecExnoggsCol(void)
static vector< MdcRec_mctrk2hep > * getMdcRecMctrk2hepCol(void)
static vector< MdcRec_mctrk > * getMdcRecMctrkCol(void)
static vector< MdcRec_timeofs > * getMdcRecTimeofsCol(void)
static vector< MdcRec_timing > * getMdcRecTimingCol(void)
static vector< MdcRec_trk_add > * getMdcRecTrkAddCol(void)
static vector< MdcRec_trk > * getMdcRecTrkCol(void)
static vector< MdcRec_wirhit > * getMdcRecWirhitCol(void)
MdcRec_trk_add(const MdcRec_trk_add &rhs)
MdcRec_trk_add & operator=(const MdcRec_trk_add &rhs)
MdcRec_trk & operator=(const MdcRec_trk &rhs)
MdcRec_wirhit(const MdcRec_wirhit &rhs)
MdcRec_wirhit & operator=(const MdcRec_wirhit &rhs)
static vector< Mdc_xtime2 > * getMdcXtime2Col(void)