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