00001
00002
00003
00004
00005
00006 #ifndef _MdcTables_h_
00007 #define _MdcTables_h_
00008
00009 #include <string>
00010 #include <iostream>
00011 #include <vector>
00012
00013
00014 #include "MdcGeomSvc/MdcGeomSvc.h"
00015 #include "MdcTables/HepevtTables.h"
00016 #include "MdcRecEvent/RecMdcHit.h"
00017
00018
00019 using namespace std;
00020
00021
00022
00023
00024 class MdcRaw_wirhit {
00025 public:
00026 MdcRaw_wirhit() {};
00027 public:
00028 int id;
00029 int crt;
00030 int slt;
00031 int chn;
00032 int pre;
00033 int sqt;
00034 int edges;
00035 int tdc1;
00036 int tdc2;
00037 int tdc3;
00038 int tdc4;
00039 int tdc5;
00040 int tdc6;
00041 int tdc7;
00042 int tdc8;
00043 int tdc9;
00044 int tdc10;
00045 int tdc11;
00046 int tdc12;
00047 int tdc13;
00048 int tdc14;
00049 int tdc15;
00050 int tdc16;
00051 int stat;
00052 int layer;
00053 int local;
00054 const MdcGeoWire * geo;
00055 };
00056
00057 class MdcRawWirhitCol {
00058 public:
00059 static vector<MdcRaw_wirhit>* getMdcRawWirhitCol(void);
00060 private:
00061 static vector<MdcRaw_wirhit>* s_col;
00062 };
00063
00064
00065
00066
00067
00068 class MdcRec_wirhit;
00069 class MdcDat_wirhit {
00070 public:
00071 MdcDat_wirhit() {};
00072 public:
00073 int id;
00074 float adc;
00075 float tdc;
00076 int stat;
00077 const MdcGeoWire * geo;
00078 MdcRec_wirhit * rec;
00079 };
00080
00081 class MdcDatWirhitCol {
00082 public:
00083 static vector<MdcDat_wirhit>* getMdcDatWirhitCol(void);
00084 private:
00085 static vector<MdcDat_wirhit>* s_col;
00086 };
00087
00088
00089
00090
00091 class MdcDat_olhit {
00092 public:
00093 MdcDat_olhit() {};
00094 public:
00095 int id;
00096 float adc;
00097 float tdc;
00098 int stat;
00099 const MdcGeoWire * geo;
00100 };
00101
00102 class MdcDatOlhitCol {
00103 public:
00104 static vector<MdcDat_olhit>* getMdcDatOlhitCol(void);
00105 private:
00106 static vector<MdcDat_olhit>* s_col;
00107 };
00108
00109
00110
00111
00112 class MdcCal_tzero {
00113 public:
00114 MdcCal_tzero() {};
00115 public:
00116 int id;
00117 float tzero;
00118 };
00119
00120 class MdcCalTzeroCol {
00121 public:
00122 static vector<MdcCal_tzero>* getMdcCalTzeroCol(void);
00123 private:
00124 static vector<MdcCal_tzero>* s_col;
00125 };
00126
00127
00128
00129
00130 class MdcCal_tzero2 {
00131 public:
00132 MdcCal_tzero2() {};
00133 public:
00134 int id;
00135 float t0;
00136 };
00137
00138 class MdcCalTzero2Col {
00139 public:
00140 static vector<MdcCal_tzero2>* getMdcCalTzero2Col(void);
00141 private:
00142 static vector<MdcCal_tzero2>* s_col;
00143 };
00144
00145
00146
00147
00148 class MdcCal_badwire {
00149 public:
00150 MdcCal_badwire() {};
00151 public:
00152 int id;
00153 int bad[3];
00154 };
00155
00156 class MdcCalBadwireCol {
00157 public:
00158 static vector<MdcCal_badwire>* getMdcCalBadwireCol(void);
00159 private:
00160 static vector<MdcCal_badwire>* s_col;
00161 };
00162
00163
00164
00165
00166 class MdcCal_const {
00167 public:
00168 MdcCal_const() {};
00169 public:
00170 int id;
00171 float xtl[8][18];
00172 float xtr[8][18];
00173 float bndl[4][18];
00174 float bndr[4][18];
00175 };
00176
00177 class MdcCalConstCol {
00178 public:
00179 static vector<MdcCal_const>* getMdcCalConstCol(void);
00180 private:
00181 static vector<MdcCal_const>* s_col;
00182 };
00183
00184
00185
00186
00187 class MdcCal_const2 {
00188 public:
00189 MdcCal_const2() {};
00190 public:
00191 int id;
00192 float sgm[5];
00193 };
00194
00195 class MdcCalConst2Col {
00196 public:
00197 static vector<MdcCal_const2>* getMdcCalConst2Col(void);
00198 private:
00199 static vector<MdcCal_const2>* s_col;
00200 };
00201
00202
00203
00204
00205 class MdcCal_const3 {
00206 public:
00207 MdcCal_const3() {};
00208 public:
00209 int id;
00210 float tw[2];
00211 };
00212
00213 class MdcCalConst3Col {
00214 public:
00215 static vector<MdcCal_const3>* getMdcCalConst3Col(void);
00216 private:
00217 static vector<MdcCal_const3>* s_col;
00218 };
00219
00220
00221
00222
00223 class MdcCal_const4 {
00224 public:
00225 MdcCal_const4() {};
00226 public:
00227 int id;
00228 float fudge;
00229 int npoint;
00230 float tanl[20];
00231 float ftanl[20];
00232 float a[20];
00233 float b[20];
00234 };
00235
00236 class MdcCalConst4Col {
00237 public:
00238 static vector<MdcCal_const4>* getMdcCalConst4Col(void);
00239 private:
00240 static vector<MdcCal_const4>* s_col;
00241 };
00242
00243
00244
00245
00246 class MdcCal_misc {
00247 public:
00248 MdcCal_misc() {};
00249 public:
00250 int id;
00251 int level;
00252 float inv_speed;
00253 };
00254
00255 class MdcCalMiscCol {
00256 public:
00257 static vector<MdcCal_misc>* getMdcCalMiscCol(void);
00258 private:
00259 static vector<MdcCal_misc>* s_col;
00260 };
00261
00262
00263
00264
00265 class MdcCal_ped {
00266 public:
00267 MdcCal_ped() {};
00268 public:
00269 int id;
00270 float pmean;
00271 float psigma;
00272 };
00273
00274 class MdcCalPedCol {
00275 public:
00276 static vector<MdcCal_ped>* getMdcCalPedCol(void);
00277 private:
00278 static vector<MdcCal_ped>* s_col;
00279 };
00280
00281
00282
00283
00284 class MdcRec_trk;
00285 class MdcRec_wirhit {
00286 public:
00287 MdcRec_wirhit() : geo(0), dat(0), trk(0),rechitptr(0){};
00288 ~MdcRec_wirhit( );
00289 MdcRec_wirhit(const MdcRec_wirhit& rhs) : geo(rhs.geo),
00290 dat(rhs.dat), trk(rhs.trk),rechitptr(rhs.rechitptr) {
00291 id = rhs.id;
00292 ddl = rhs.ddl;
00293 ddr = rhs.ddr;
00294 erddl = rhs.erddl;
00295 erddr = rhs.erddr;
00296 pChiSq = rhs.pChiSq;
00297 lr = rhs.lr;
00298 stat = rhs.stat;
00299 tdc = rhs.tdc;
00300 adc = rhs.adc;
00301 timechannel=rhs.timechannel;
00302 }
00303
00304 MdcRec_wirhit& operator =(const MdcRec_wirhit& rhs) {
00305
00306 if(this == &rhs)
00307 return *this;
00308 id = rhs.id;
00309 ddl = rhs.ddl;
00310 ddr = rhs.ddr;
00311 erddl = rhs.erddl;
00312 erddr = rhs.erddr;
00313 pChiSq = rhs.pChiSq;
00314 lr = rhs.lr;
00315 stat = rhs.stat;
00316 geo = rhs.geo;
00317 trk = rhs.trk;
00318 dat = rhs.dat;
00319 tdc = rhs.tdc;
00320 adc = rhs.adc;
00321 timechannel=rhs.timechannel;
00322 rechitptr = rhs.rechitptr;
00323 return *this;
00324 }
00325
00326 public:
00327 int id;
00328 float ddl;
00329 float ddr;
00330 float erddl;
00331 float erddr;
00332 float pChiSq;
00333 int lr;
00334 int stat;
00335 const MdcGeoWire * geo;
00336 MdcDat_wirhit * dat;
00337 MdcRec_trk * trk;
00338 RecMdcHit* rechitptr;
00339 float tdc;
00340 float adc;
00341 unsigned timechannel;
00342 };
00343
00344 class MdcRecWirhitCol {
00345 public:
00346 static vector<MdcRec_wirhit>* getMdcRecWirhitCol(void);
00347 private:
00348 static vector<MdcRec_wirhit>* s_col;
00349 };
00350
00351
00352
00353
00354 class MdcRec_trk_add;
00355 class MdcRec_trk {
00356 public:
00357 MdcRec_trk():add(0) {};
00358 ~MdcRec_trk( );
00359
00360 MdcRec_trk(const MdcRec_trk& rhs) : add(rhs.add) {
00361 id = rhs.id;
00362 chiSq = rhs.chiSq;
00363 ndf = rhs.ndf;
00364 fiTerm = rhs.fiTerm;
00365 nhits = rhs.nhits;
00366 nster = rhs.nster;
00367 nclus = rhs.nclus;
00368 stat = rhs.stat;
00369 mass = rhs.mass;
00370 hitcol = rhs.hitcol;
00371 for ( int i=0; i<15; i++ ) {
00372 if( i<3 ) pivot[i] = rhs.pivot[i];
00373 if( i<5 ) helix[i] = rhs.helix[i];
00374 error[i] = rhs.error[i];
00375 }
00376 }
00377
00378 MdcRec_trk& operator =(const MdcRec_trk& rhs) {
00379
00380 if(this == &rhs)
00381 return *this;
00382 id = rhs.id;
00383 chiSq = rhs.chiSq;
00384 ndf = rhs.ndf;
00385 fiTerm = rhs.fiTerm;
00386 nhits = rhs.nhits;
00387 nster = rhs.nster;
00388 nclus = rhs.nclus;
00389 stat = rhs.stat;
00390 add = rhs.add;
00391 mass = rhs.mass;
00392 hitcol = rhs.hitcol;
00393 for ( int i=0; i<15; i++ ) {
00394 if( i<3 ) pivot[i] = rhs.pivot[i];
00395 if( i<5 ) helix[i] = rhs.helix[i];
00396 error[i] = rhs.error[i];
00397 }
00398 return *this;
00399 }
00400
00401 public:
00402 int id;
00403 float helix[5];
00404 float pivot[3];
00405 float error[15];
00406 float chiSq;
00407 float ndf;
00408 float fiTerm;
00409 int nhits;
00410 int nster;
00411 int nclus;
00412 int stat;
00413 float mass;
00414 vector<MdcRec_wirhit*> hitcol;
00415 MdcRec_trk_add* add;
00416 public:
00417 const float fi0(void)const{
00418 return helix[1];
00419 }
00420 const float cpa(void)const{
00421 return helix[2];
00422 }
00423 const float dz(void)const{
00424 return helix[3];
00425 }
00426 const float tanl(void)const{
00427 return helix[4];
00428 }
00429
00430
00431 };
00432
00433 class MdcRecTrkCol {
00434 public:
00435 static vector<MdcRec_trk>* getMdcRecTrkCol(void);
00436 private:
00437 static vector<MdcRec_trk>* s_col;
00438 };
00439
00440
00441
00442
00443 class MdcRec_dedx {
00444 public:
00445 MdcRec_dedx() {};
00446 public:
00447 int id;
00448 float dEdx;
00449 float dEdx_exp[5];
00450 float sigma_dEdx[5];
00451 float pid_prob[5];
00452 MdcRec_trk * trk;
00453 int stat;
00454 };
00455
00456 class MdcRecDedxCol {
00457 public:
00458 static vector<MdcRec_dedx>* getMdcRecDedxCol(void);
00459 private:
00460 static vector<MdcRec_dedx>* s_col;
00461 };
00462
00463
00464
00465
00466 class MdcRec_timing {
00467 public:
00468 MdcRec_timing() {};
00469 public:
00470 int id;
00471 float time;
00472 int quality;
00473 };
00474
00475 class MdcRecTimingCol {
00476 public:
00477 static vector<MdcRec_timing>* getMdcRecTimingCol(void);
00478 private:
00479 static vector<MdcRec_timing>* s_col;
00480 };
00481
00482
00483
00484
00485 class MdcRec_excalib {
00486 public:
00487 MdcRec_excalib() {};
00488 public:
00489 int id;
00490 float gain[8208];
00491 float ggs_f[10];
00492 float ggs_b[10];
00493 float erggs_f[10];
00494 float erggs_b[10];
00495 float localg[15][47];
00496 float ddg[10][47];
00497 float mdcgain;
00498 };
00499
00500 class MdcRecExcalibCol {
00501 public:
00502 static vector<MdcRec_excalib>* getMdcRecExcalibCol(void);
00503 private:
00504 static vector<MdcRec_excalib>* s_col;
00505 };
00506
00507
00508
00509
00510 class MdcRec_exglobal {
00511 public:
00512 MdcRec_exglobal() {};
00513 public:
00514 int id;
00515 float mdcgain;
00516 float mdcresol;
00517 };
00518
00519 class MdcRecExglobalCol {
00520 public:
00521 static vector<MdcRec_exglobal>* getMdcRecExglobalCol(void);
00522 private:
00523 static vector<MdcRec_exglobal>* s_col;
00524 };
00525
00526
00527
00528
00529 class MdcRec_excurve {
00530 public:
00531 MdcRec_excurve() {};
00532 public:
00533 int id;
00534 float f_bg[10];
00535 float f_erbg[12];
00536 float f_erbg2[12];
00537 };
00538
00539 class MdcRecExcurveCol {
00540 public:
00541 static vector<MdcRec_excurve>* getMdcRecExcurveCol(void);
00542 private:
00543 static vector<MdcRec_excurve>* s_col;
00544 };
00545
00546
00547
00548
00549 class MdcRec_excurve_add {
00550 public:
00551 MdcRec_excurve_add() {};
00552 public:
00553 int id;
00554 int flag;
00555 float f_e[12];
00556 float f_mu[12];
00557 float f_pi[12];
00558 float f_k[12];
00559 float f_p[12];
00560 };
00561
00562 class MdcRecExcurveAddCol {
00563 public:
00564 static vector<MdcRec_excurve_add>* getMdcRecExcurveAddCol(void);
00565 private:
00566 static vector<MdcRec_excurve_add>* s_col;
00567 };
00568
00569
00570
00571
00572 class MdcRec_exnoggs {
00573 public:
00574 MdcRec_exnoggs() {};
00575 public:
00576 int id;
00577 float dEdx_r;
00578 float mdcR_old;
00579 MdcRec_trk * trk;
00580 MdcRec_dedx * rex;
00581 };
00582
00583 class MdcRecExnoggsCol {
00584 public:
00585 static vector<MdcRec_exnoggs>* getMdcRecExnoggsCol(void);
00586 private:
00587 static vector<MdcRec_exnoggs>* s_col;
00588 };
00589
00590
00591
00592
00593 class MdcRec_excurrentfit {
00594 public:
00595 MdcRec_excurrentfit() {};
00596 public:
00597 int id;
00598 float curr_slope;
00599 float curr_const;
00600 float f_slope[50];
00601 float f_const[50];
00602 };
00603
00604 class MdcRecExcurrentfitCol {
00605 public:
00606 static vector<MdcRec_excurrentfit>* getMdcRecExcurrentfitCol(void);
00607 private:
00608 static vector<MdcRec_excurrentfit>* s_col;
00609 };
00610
00611
00612
00613
00614 class MdcRec_daqom {
00615 public:
00616 MdcRec_daqom() {};
00617 public:
00618 int id;
00619 int Time;
00620 float MC[56];
00621 float GasPress;
00622 float MDCTemp[5];
00623 int RunState;
00624 float BeamCurrent[2];
00625 float LUMEFC;
00626 float LUMCSI;
00627 float VLT40;
00628 float TOFRATES;
00629 };
00630
00631 class MdcRecDaqomCol {
00632 public:
00633 static vector<MdcRec_daqom>* getMdcRecDaqomCol(void);
00634 private:
00635 static vector<MdcRec_daqom>* s_col;
00636 };
00637
00638
00639
00640
00641 class MdcDat_mcwirhit {
00642 public:
00643 MdcDat_mcwirhit() {};
00644 public:
00645 int id;
00646 float xw;
00647 float yw;
00648 float zw;
00649 float dist;
00650 float chrg;
00651 float xin;
00652 float yin;
00653 float zin;
00654 float xout;
00655 float yout;
00656 float zout;
00657 int lr;
00658 int stat;
00659 const MdcGeoWire * geo;
00660 MdcDat_wirhit * dat;
00661 const Gen_hepevt * hep;
00662 MdcRec_trk * trk;
00663 float px;
00664 float py;
00665 float pz;
00666 float pid;
00667 float tof;
00668 float tdc;
00669 };
00670
00671 class MdcDatMcwirhitCol {
00672 public:
00673 static vector<MdcDat_mcwirhit>* getMdcDatMcwirhitCol(void);
00674 private:
00675 static vector<MdcDat_mcwirhit>* s_col;
00676 };
00677
00678
00679
00680
00681 class MdcRec_mctrk {
00682 public:
00683 MdcRec_mctrk() {};
00684 public:
00685 int id;
00686 const Gen_hepevt * hep;
00687 float wirFrac;
00688 float wirFracHep;
00689 int charge;
00690 float ptFrac;
00691 float pzFrac;
00692 int quality;
00693 };
00694
00695 class MdcRecMctrkCol {
00696 public:
00697 static vector<MdcRec_mctrk>* getMdcRecMctrkCol(void);
00698 private:
00699 static vector<MdcRec_mctrk>* s_col;
00700 };
00701
00702
00703
00704
00705 class MdcRec_mctrk2hep {
00706 public:
00707 MdcRec_mctrk2hep() {};
00708 public:
00709 int id;
00710 MdcRec_wirhit * wir;
00711
00712 MdcRec_trk * trk;
00713 const Gen_hepevt * hep;
00714 };
00715
00716 class MdcRecMctrk2hepCol {
00717 public:
00718 static vector<MdcRec_mctrk2hep>* getMdcRecMctrk2hepCol(void);
00719 private:
00720 static vector<MdcRec_mctrk2hep>* s_col;
00721 };
00722
00723
00724
00725
00726 class MdcTrk;
00727 class MdcRec_trk_add {
00728 public:
00729 MdcRec_trk_add() : body(0),mother(0),
00730 daughter(0), rectrk(0) { };
00731 ~MdcRec_trk_add( );
00732 MdcRec_trk_add(const MdcRec_trk_add& rhs) : mother(rhs.mother),
00733 body(rhs.body),daughter(rhs.daughter), rectrk(rhs.rectrk) {
00734 id = rhs.id;
00735 quality = rhs.quality;
00736 kind = rhs.kind;
00737 decision = rhs.decision;
00738 stat = rhs.stat;
00739 for ( int i=0; i<3; i++ ) {
00740 likelihood[i] = rhs.likelihood[i];
00741 }
00742 }
00743
00744 MdcRec_trk_add& operator =(const MdcRec_trk_add& rhs) {
00745
00746 if(this == &rhs)
00747 return *this;
00748 id = rhs.id;
00749 quality = rhs.quality;
00750 kind = rhs.kind;
00751 decision = rhs.decision;
00752 stat = rhs.stat;
00753 rectrk = rhs.rectrk;
00754 body = rhs.body;
00755 mother = rhs.mother;
00756 daughter = rhs.daughter;
00757 for ( int i=0; i<3; i++ ) {
00758 likelihood[i] = rhs.likelihood[i];
00759 }
00760 return *this;
00761 }
00762
00763 public:
00764 int id;
00765 int quality;
00766 int kind;
00767 MdcRec_trk* body;
00768 MdcRec_trk* mother;
00769 MdcRec_trk* daughter;
00770 int decision;
00771 float likelihood[3];
00772 int stat;
00773 MdcTrk* rectrk;
00774 };
00775
00776 class MdcRecTrkAddCol {
00777 public:
00778 static vector<MdcRec_trk_add>* getMdcRecTrkAddCol(void);
00779 private:
00780 static vector<MdcRec_trk_add>* s_col;
00781 };
00782
00783
00784
00785
00786 class MdcRec_timeofs {
00787 public:
00788 MdcRec_timeofs() {};
00789 public:
00790 int id;
00791 float offset;
00792 };
00793
00794 class MdcRecTimeofsCol {
00795 public:
00796 static vector<MdcRec_timeofs>* getMdcRecTimeofsCol(void);
00797 private:
00798 static vector<MdcRec_timeofs>* s_col;
00799 };
00800
00801
00802
00803
00804
00805 class Mdc_xtime2 {
00806 public:
00807 Mdc_xtime2() {};
00808 public:
00809 int id;
00810 float xtime;
00811 float tofhit;
00812 float trig32;
00813 float evtime;
00814 float tdcstop;
00815 };
00816
00817 class MdcXtime2Col {
00818 public:
00819 static vector<Mdc_xtime2>* getMdcXtime2Col(void);
00820 private:
00821 static vector<Mdc_xtime2>* s_col;
00822 };
00823
00824 #endif // _MdcTables_h_
00825