00001 #ifndef _DAQ_FORMATS_H
00002 #define _DAQ_FORMATS_H
00003
00004 #ifdef VXWORKS
00005 #include <vxWorks.h>
00006 #else
00007 typedef unsigned int UINT32 ;
00008 typedef unsigned short UINT16 ;
00009 typedef unsigned char UINT8 ;
00010 #endif
00011
00012 #include <SECTOR/sector.h>
00013
00014
00015
00016
00017
00018
00019 #if (TRG_VERSION == 0x20)
00020 #include <TRG/trgStructures_20.h>
00021 #elif (TRG_VERSION == 0x12)
00022 #include <TRG/trgStructures-Jan2002.h>
00023 #elif (TRG_VERSION == 0x21)
00024 #include <TRG/trgStructures_21.h>
00025 #elif (TRG_VERSION == 0x22)
00026 #include <TRG/trgStructures_v22.h>
00027 #elif (TRG_VERSION == 0x30)
00028 #include <TRG/trgStructures_30.h>
00029 #elif (TRG_VERSION == 0x32)
00030 #include <trgStructures_32.h>
00031 #else // after version 0x40, no TRGD
00032 #define NOTRGD
00033 #if (TRG_VERSION == 0x40)
00034 #include <trgDataDefs_40.h>
00035 #else
00036 #ifndef TRG_VERSION
00037 #define TRG_VERSION 0x41 // changed on Feb 22, 2007
00038 #endif
00039 #include <trgDataDefs.h>
00040 #endif
00041 #endif
00042
00043 #define FMT_ADCD (1 << 0)
00044 #define FMT_ADCR (1 << 1)
00045 #define FMT_ADCHUF (1 << 2)
00046 #define FMT_CPPR (1 << 3)
00047 #define FMT_CLD (1 << 4)
00048
00049 #define FMT_PADK (1 << 5)
00050 #define FMT_SEQD (1 << 6)
00051 #define FMT_ADCX (1 << 7)
00052
00053 #define FMT_NOT_FREE (FMT_ADCR | FMT_ADCD | FMT_ADCHUF)
00054
00055 #define FMT_PEDR (1 << 8)
00056 #define FMT_RMSR (1 << 9)
00057 #define FMT_GAINR (1 << 10)
00058 #define FMT_BADR (1 << 11)
00059 #define FMT_CFGR (1 << 12)
00060 #define FMT_NONE (1 << 13)
00061
00062
00063
00064
00065
00066
00067 #define DAQ_RAW_FORMAT_VERSION 0x00020003 // 2.30
00068
00069
00070 #define DAQ_RAW_FORMAT_ORDER 0x04030201
00071
00072
00073
00074
00075 #define DAQ_RAW_FORMAT_WORD9 0x00000000
00076
00077 #define DATAP_FORMAT_NUMBER 1
00078 #define SVTP_FORMAT_NUMBER 1
00079 #define TPCP_FORMAT_NUMBER 1
00080 #define FTPCP_FORMAT_NUMBER 1
00081 #define LRHD_FORMAT_NUMBER 1
00082 #define TRGP_FORMAT_NUMBER 1
00083 #define EMCP_FORMAT_NUMBER 1
00084 #define SSDP_FORMAT_NUMBER 1
00085 #define TRGID_FORMAT_NUMBER 1
00086 #define TPXP_FORMAT_NUMBER 1
00087
00088
00089
00090
00091
00092 #define TPC_ADCD 0
00093 #define TPC_SEQD 1
00094 #define TPC_ADCX 2
00095 #define TPC_PADK 3
00096 #define SVT_ANODK 3
00097 #define TPC_CPPR 4
00098 #define TPC_ADCR 5
00099 #define TPC_MZCLD 6
00100 #define TPC_CFGR 7
00101 #define TPC_PEDR 8
00102 #define TPC_RMSR 9
00103 #define TPC_GAINR 10
00104 #define TPC_GAIND 10
00105 #define TPC_BADR 11
00106
00107 #define TPC_MZP_BANKS_NUM 12
00108
00109
00110 #define CHAR_LRHD "LRHD "
00111 #define CHAR_BEGR "BEGR "
00112 #define CHAR_ENDR "ENDR "
00113 #define CHAR_DATA "DATA "
00114 #define CHAR_SLOW "SLOW "
00115
00116 #define CHAR_DATAP "DATAP "
00117 #define CHAR_DATAPX "DATAPX "
00118
00119
00120 #define CHAR_TPCP "TPCP "
00121
00122 #define CHAR_TPCSECLP "TPCSECLP"
00123 #define CHAR_TPCRBCLP "TPCRBCLP"
00124 #define CHAR_TPCMZCLD "TPCMZCLD"
00125
00126 #define CHAR_TPCSECP "TPCSECP "
00127 #define CHAR_TPCRBP "TPCRBP "
00128 #define CHAR_TPCMZP "TPCMZP "
00129
00130 #define CHAR_TPCADCD "TPCADCD "
00131 #define CHAR_TPCSEQD "TPCSEQD "
00132 #define CHAR_TPCADCX "TPCADCX "
00133 #define CHAR_TPCPADK "TPCPADK "
00134 #define CHAR_TPCCPPR "TPCCPPR "
00135 #define CHAR_TPCADCR "TPCADCR "
00136 #define CHAR_TPCCFGR "TPCCFGR "
00137 #define CHAR_TPCPEDR "TPCPEDR "
00138 #define CHAR_TPCRMSR "TPCRMSR "
00139 #define CHAR_TPCGAINR "TPCGAINR"
00140 #define CHAR_TPCGAIND "TPCGAIND" // new, sane gain bank
00141 #define CHAR_TPCBADR "TPCBADR " // this is obsolete...
00142
00143
00144 #define CHAR_SVTP "SVTP "
00145
00146 #define CHAR_SVTSECLP "SVTSECLP"
00147 #define CHAR_SVTRBCLP "SVTRBCLP"
00148 #define CHAR_SVTMZCLD "SVTMZCLD"
00149
00150 #define CHAR_SVTSECP "SVTSECP "
00151 #define CHAR_SVTRBP "SVTRBP "
00152 #define CHAR_SVTMZP "SVTMZP "
00153
00154 #define CHAR_SVTADCD "SVTADCD "
00155 #define CHAR_SVTSEQD "SVTSEQD "
00156 #define CHAR_SVTADCX "SVTADCX "
00157 #define CHAR_SVTANODK "SVTANODK"
00158 #define CHAR_SVTCPPR "SVTCPPR "
00159 #define CHAR_SVTADCR "SVTADCR "
00160 #define CHAR_SVTCFGR "SVTCFGR "
00161 #define CHAR_SVTPEDR "SVTPEDR "
00162 #define CHAR_SVTRMSR "SVTRMSR "
00163 #define CHAR_SVTGAINR "SVTGAINR"
00164 #define CHAR_SVTBADR "SVTBADR "
00165
00166
00167 #define CHAR_FTPP "FTPP "
00168
00169 #define CHAR_FTPSECLP "FTPSECLP"
00170 #define CHAR_FTPRBCLP "FTPRBCLP"
00171 #define CHAR_FTPMZCLD "FTPMZCLD"
00172
00173 #define CHAR_FTPSECP "FTPSECP "
00174 #define CHAR_FTPRBP "FTPRBP "
00175 #define CHAR_FTPMZP "FTPMZP "
00176
00177 #define CHAR_FTPADCD "FTPADCD "
00178 #define CHAR_FTPSEQD "FTPSEQD "
00179 #define CHAR_FTPADCX "FTPADCX "
00180 #define CHAR_FTPPADK "FTPPADK "
00181 #define CHAR_FTPCPPR "FTPCPPR "
00182 #define CHAR_FTPADCR "FTPADCR "
00183 #define CHAR_FTPCFGR "FTPCFGR "
00184 #define CHAR_FTPPEDR "FTPPEDR "
00185 #define CHAR_FTPRMSR "FTPRMSR "
00186 #define CHAR_FTPGAINR "FTPGAINR"
00187 #define CHAR_FTPBADR "FTPBADR "
00188
00189
00190 #define CHAR_SSDP "SSDP "
00191
00192 #define CHAR_SSDSECLP "SSDSECLP"
00193 #define CHAR_SSDRBCLP "SSDRBCLP"
00194 #define CHAR_SSDMZCLD "SSDMZCLD"
00195
00196 #define CHAR_SSDSECP "SSDSECP "
00197 #define CHAR_SSDRBP "SSDRBP "
00198 #define CHAR_SSDMZP "SSDMZP "
00199
00200 #define CHAR_SSDADCD "SSDADCD "
00201 #define CHAR_SSDSEQD "SSDSEQD "
00202 #define CHAR_SSDADCX "SSDADCX "
00203 #define CHAR_SSDPADK "SSDPADK "
00204 #define CHAR_SSDCPPR "SSDCPPR "
00205 #define CHAR_SSDADCR "SSDADCR "
00206 #define CHAR_SSDCFGR "SSDCFGR "
00207 #define CHAR_SSDPEDR "SSDPEDR "
00208 #define CHAR_SSDRMSR "SSDRMSR "
00209 #define CHAR_SSDGAINR "SSDGAINR"
00210 #define CHAR_SSDBADR "SSDBADR "
00211
00212
00213
00214 #define CHAR_RICP "RICP "
00215 #define CHAR_RICCRAMP "RICCRAMP"
00216 #define CHAR_RICDATAD "RICDATAD"
00217 #define CHAR_RICDATAR "RICDATAR"
00218 #define CHAR_RICPEDR "RICPEDR "
00219 #define CHAR_RICRMSR "RICRMSR "
00220 #define CHAR_RICTHRER "RICTHRER"
00221 #define CHAR_RICBADR "RICBADR "
00222
00223
00224 #define CHAR_TOFP "TOFP "
00225 #define CHAR_TOFADCD "TOFADCD "
00226 #define CHAR_TOFTDCD "TOFTDCD "
00227 #define CHAR_TOFA2DD "TOFA2DD "
00228 #define CHAR_TOFSCAD "TOFSCAD "
00229 #define CHAR_TOFDDLR "TOFDDLR "
00230
00231
00232 #define CHAR_FPDP "FPDP "
00233 #define CHAR_FPDADCD "FPDADCD "
00234 #define CHAR_FPDTDCD "FPDTDCD "
00235 #define CHAR_FPDREGD "FPDREGD "
00236 #define CHAR_FPDPEDR "FPDPEDR "
00237 #define CHAR_FPDSCL "FPDSCL "
00238
00239 #define CHAR_BBCDAT "BBCDAT "
00240 #define CHAR_BBCPED "BBCPED "
00241 #define CHAR_BBCSCL "BBCSCL "
00242
00243
00244
00245 #define CHAR_FP2P "FP2P "
00246
00247
00248
00249 #define CHAR_EMCP "EMCP "
00250 #define CHAR_EMCSECP "EMCSECP "
00251 #define CHAR_EMCRBP "EMCRBP "
00252
00253 #define CHAR_EMCADCD "EMCADCD "
00254 #define CHAR_EMCSEQD "EMCSEQD "
00255 #define CHAR_EMCADCX "EMCADCX "
00256 #define CHAR_EMCPADK "EMCPADK "
00257 #define CHAR_EMCCPPR "EMCCPPR "
00258 #define CHAR_EMCADCR "EMCADCR "
00259 #define CHAR_EMCCFGR "EMCCFGR "
00260 #define CHAR_EMCPEDR "EMCPEDR "
00261 #define CHAR_EMCRMSR "EMCRMSR "
00262 #define CHAR_EMCGAINR "EMCGAINR"
00263 #define CHAR_EMCBADR "EMCBADR "
00264
00265
00266 #define CHAR_EECP "EECP "
00267 #define CHAR_EECSECP "EECSECP "
00268 #define CHAR_EECRBP "EECRBP "
00269
00270 #define CHAR_EECADCD "EECADCD "
00271 #define CHAR_EECSEQD "EECSEQD "
00272 #define CHAR_EECADCX "EECADCX "
00273 #define CHAR_EECPADK "EECPADK "
00274 #define CHAR_EECCPPR "EECCPPR "
00275 #define CHAR_EECADCR "EECADCR "
00276 #define CHAR_EECCFGR "EECCFGR "
00277 #define CHAR_EECPEDR "EECPEDR "
00278 #define CHAR_EECRMSR "EECRMSR "
00279 #define CHAR_EECGAINR "EECGAINR"
00280 #define CHAR_EECBADR "EECBADR "
00281
00282
00283
00284 #define CHAR_PMDP "PMDP "
00285 #define CHAR_PMDSECP "PMDSECP "
00286 #define CHAR_PMDADCD "PMDADCD "
00287 #define CHAR_PMDRMSR "PMDRMSR "
00288 #define CHAR_PMDPEDR "PMDPEDR "
00289 #define CHAR_PMDTHRR "PMDTHRR "
00290
00291
00292 #define CHAR_TRGP "TRGP "
00293 #define CHAR_TRGD "TRGD "
00294 #define CHAR_TRGID "TRGID "
00295
00296
00297 #define CHAR_PP2PPP "PP2PPP "
00298 #define CHAR_PP2PPR "PP2PPR "
00299
00300 #define CHAR_L3P "L3P "
00301
00302
00303 #define CHAR_SCD "SCD "
00304
00305 #define CHAR_TPXP "TPXP "
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316 struct bankHeader {
00317 char bank_type[8] ;
00318 UINT32 length ;
00319 UINT32 bank_id ;
00320 UINT32 format_ver ;
00321 UINT32 byte_order ;
00322 UINT32 format_number ;
00323 UINT32 token ;
00324 UINT32 w9 ;
00325 UINT32 crc ;
00326 } ;
00327
00328 struct logicalHeader {
00329 char bank_type[8] ;
00330 UINT32 length ;
00331 UINT32 run ;
00332 UINT32 format_ver ;
00333 UINT32 byte_order ;
00334 UINT32 w7 ;
00335 UINT32 w8 ;
00336 UINT32 w9 ;
00337 UINT32 crc ;
00338 } ;
00339
00340 struct offlen {
00341 UINT32 off ;
00342 UINT32 len;
00343 } ;
00344
00345 struct row_pad {
00346 UINT8 row ;
00347 UINT8 pad ;
00348 } ;
00349
00350 struct LOGREC {
00351 struct logicalHeader lh ;
00352 UINT32 length ;
00353 UINT32 blocking ;
00354 char record_type[8] ;
00355 UINT32 crc ;
00356 } ;
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366
00367
00368 #if defined(UNIX_LITTLE_ENDIAN) || defined(RTS_LITTLE_ENDIAN)
00369 struct EventDescriptor2001 {
00370 UINT8 format_version;
00371 UINT8 tag;
00372 UINT16 byteCount;
00373 UINT32 bx_hi;
00374 UINT32 bx_lo;
00375 UINT8 detectorMask;
00376 UINT8 TRG_DAQ_cmds;
00377 UINT16 token;
00378 UINT16 dsm_address;
00379 UINT16 dsm_data;
00380 UINT16 TRG_word;
00381 UINT8 add_bits;
00382 UINT8 busy;
00383 UINT16 npost;
00384 UINT16 npre;
00385 };
00386 #else
00387 struct EventDescriptor2001 {
00388 UINT16 byteCount;
00389 UINT8 tag;
00390 UINT8 format_version;
00391 UINT32 bx_hi;
00392 UINT32 bx_lo;
00393 UINT16 token;
00394 UINT8 TRG_DAQ_cmds;
00395 UINT8 detectorMask;
00396 UINT16 dsm_data;
00397 UINT16 dsm_address;
00398 UINT8 busy;
00399 UINT8 add_bits;
00400 UINT16 TRG_word;
00401 UINT16 npre;
00402 UINT16 npost;
00403 } ;
00404 #endif
00405
00406 typedef struct {
00407 unsigned short TCUdataBytes;
00408 char TCUEvtDesc;
00409 unsigned char TrgDataFmtVer;
00410 unsigned int bunchXing_hi;
00411 unsigned int bunchXing_lo;
00412 unsigned short actionWdDetectorBitMask;
00413 unsigned char actionWdTrgCommand;
00414 unsigned char actionWdDaqCommand;
00415 unsigned short TrgToken;
00416 unsigned short addBits;
00417 unsigned short DSMInput;
00418 unsigned short externalBusy;
00419 unsigned short modifiedBusyStatus;
00420 unsigned short physicsWord;
00421 unsigned short TriggerWord;
00422 unsigned short DSMAddress;
00423 unsigned short contaminationBusyStatus;
00424 unsigned short npre;
00425 unsigned short npost;
00426 unsigned short dummy;
00427 } EventDescriptor2007;
00428
00429 typedef struct {
00430 char name[3];
00431 char TrgDataFmtVer;
00432 int length;
00433 unsigned int bunchXing_hi;
00434 unsigned int bunchXing_lo;
00435 unsigned short actionWdDetectorBitMask;
00436 unsigned char actionWdTrgCommand;
00437 unsigned char actionWdDaqCommand;
00438 unsigned short TrgToken;
00439 unsigned short addBits;
00440 unsigned short DSMInput;
00441 unsigned short externalBusy;
00442 unsigned short modifiedBusyStatus;
00443 unsigned short physicsWord;
00444 unsigned short TriggerWord;
00445 unsigned short DSMAddress;
00446 unsigned short contaminationBusyStatus;
00447 unsigned short npre;
00448 unsigned short npost;
00449 unsigned short dummy;
00450 } EventDescriptor2008a;
00451
00452 struct DATAP {
00453 struct bankHeader bh ;
00454 UINT32 len ;
00455 UINT32 time ;
00456 UINT32 seq ;
00457 UINT32 trg_word ;
00458 UINT32 trg_in_word ;
00459 UINT32 detector ;
00460 struct offlen det[10] ;
00461 UINT32 TRG_L1_summary[2];
00462 UINT32 TRG_L2_summary[2];
00463 UINT32 L3_Summary[4] ;
00464 struct EventDescriptor2001 evtdes ;
00465
00466 } ;
00467
00468 struct DATAPX {
00469 struct bankHeader bh ;
00470 struct offlen det[22] ;
00471 } ;
00472
00473 struct TRGID {
00474 struct bankHeader bh ;
00475 UINT32 triggerId[32] ;
00476 };
00477
00478 struct DUMMYDATA {
00479 struct bankHeader bh ;
00480 } ;
00481
00482 struct TPCP {
00483 struct bankHeader bh ;
00484 struct offlen sb[24] ;
00485 } ;
00486
00487 struct TPXP {
00488 struct bankHeader bh;
00489 struct offlen sb;
00490 };
00491
00492 struct TPXD {
00493 struct bankHeader;
00494 UINT32 data[1];
00495 };
00496
00497
00498 struct TRGP {
00499 struct bankHeader bh ;
00500 struct offlen trgData ;
00501 struct offlen trgId;
00502 };
00503
00504
00505 #ifndef NOTRGD
00506
00507 struct TRGD {
00508 struct bankHeader bh ;
00509 EvtDescData desc ;
00510 TrgSumData sum ;
00511 RawTrgDet raw[MAX_RAW_DATA_BLOCKS] ;
00512 } ;
00513
00514 #endif
00515
00516
00517
00518
00519
00520 struct TPCSECLP {
00521 struct bankHeader bh ;
00522 struct offlen rb[SB_RB_NUM] ;
00523 } ;
00524
00525 struct TPCRBCLP {
00526 struct bankHeader bh ;
00527 struct offlen mz[RB_MZ_NUM] ;
00528 UINT8 fiberHdr[RB_FIBER_HDR_LEN] ;
00529 } ;
00530
00531 struct mzCentroid {
00532 UINT16 x ;
00533 UINT16 t ;
00534 UINT16 flags ;
00535 UINT16 charge ;
00536 } ;
00537
00538
00539
00540
00541
00542
00543 struct TPCSECP {
00544 struct bankHeader bh ;
00545 struct offlen rb[SB_RB_NUM] ;
00546 } ;
00547
00548
00549 struct TPCRBP {
00550 struct bankHeader bh ;
00551 struct offlen mz[RB_MZ_NUM] ;
00552 UINT8 fiberHdr[RB_FIBER_HDR_LEN] ;
00553 } ;
00554
00555 struct TPCMZP {
00556 struct bankHeader bh ;
00557 struct offlen banks[TPC_MZP_BANKS_NUM] ;
00558 } ;
00559
00560
00561
00562 struct TPCMZCLD_local {
00563 struct bankHeader bh ;
00564 UINT32 rows ;
00565 UINT32 padrowFiller[2*MZ_MAX_ROWS] ;
00566 struct mzCentroid centroidFiller[MZ_MAX_CLUSTERS] ;
00567 } ;
00568
00569
00570 struct TPCADCX {
00571 struct bankHeader bh ;
00572 struct rowx {
00573 UINT32 row ;
00574 UINT32 offADC ;
00575 UINT32 offSEQ ;
00576 } lrow[MZ_MAX_ROWS] ;
00577 } ;
00578
00579 struct TPCADCD {
00580 struct bankHeader bh ;
00581 UINT8 adc[MZ_MAX_CHANNELS] ;
00582 } ;
00583
00584 struct TPCSEQD {
00585 struct bankHeader bh ;
00586 UINT16 seq[MZ_MAX_CHANNELS/2] ;
00587
00588 } ;
00589
00590
00591 struct TPCPEDR {
00592 struct bankHeader bh ;
00593 UINT32 events ;
00594 UINT8 ped[MZ_MAX_CHANNELS] ;
00595 } ;
00596
00597 struct TPCRMSR {
00598 struct bankHeader bh ;
00599 UINT32 events ;
00600 UINT8 rms[MZ_MAX_CHANNELS] ;
00601 } ;
00602
00603
00604 struct TPCADCR_l {
00605 struct bankHeader bh ;
00606 } ;
00607
00608 struct TPCCPPR_l {
00609 struct bankHeader bh ;
00610 UINT8 thr_lo ;
00611 UINT8 thr_hi ;
00612 UINT8 seq_lo ;
00613 UINT8 seq_hi ;
00614 } ;
00615
00616
00617
00618
00619 struct DETPADK {
00620 struct bankHeader bh ;
00621 UINT32 bytesADC ;
00622 UINT32 bytesCPP ;
00623 UINT32 bytesPED ;
00624 UINT32 bytesRMS ;
00625 UINT32 bytesCFG ;
00626 UINT32 bytesGAIN ;
00627 struct row_pad rp[MZ_MAX_PADS] ;
00628 } ;
00629
00630
00631 struct TPCPADK {
00632 struct bankHeader bh ;
00633 UINT32 bytesADC ;
00634 UINT32 bytesCPP ;
00635 UINT32 bytesPED ;
00636 UINT32 bytesRMS ;
00637 UINT32 bytesCFG ;
00638 UINT32 bytesGAIN ;
00639 struct row_pad rp[MZ_TPC_MAX_PADS_PER_MEZ] ;
00640 } ;
00641
00642 struct FTPPADK {
00643 struct bankHeader bh ;
00644 UINT32 bytesADC ;
00645 UINT32 bytesCPP ;
00646 UINT32 bytesPED ;
00647 UINT32 bytesRMS ;
00648 UINT32 bytesCFG ;
00649 UINT32 bytesGAIN ;
00650 struct row_pad rp[MZ_FTP_PADS_PER_MEZ] ;
00651 } ;
00652
00653
00654
00655 struct SVTANODK {
00656 struct bankHeader bh ;
00657 UINT32 bytesADC ;
00658 UINT32 bytesCPP ;
00659 UINT32 bytesPED ;
00660 UINT32 bytesRMS ;
00661 UINT32 bytesCFG ;
00662 UINT32 bytesGAIN ;
00663 UINT32 hybrids[6] ;
00664 #ifdef TONKO_ELABORATE
00665 struct hybrids {
00666 UINT8 barrel ;
00667 UINT8 ladder ;
00668 UINT8 hy_wf ;
00669 UINT8 hybridID ;
00670 } hybrids[6] ;
00671 #endif
00672
00673 UINT32 pre ;
00674 UINT32 post ;
00675 UINT32 pedOff ;
00676 } ;
00677
00678
00679 struct DETCFGR {
00680 struct bankHeader bh ;
00681 UINT8 feeId[MZ_MAX_PADS] ;
00682 } ;
00683
00684 struct TPCCFGR {
00685 struct bankHeader bh ;
00686 UINT8 feeId[MZ_TPC_MAX_PADS_PER_MEZ] ;
00687 } ;
00688
00689 struct FTPCFGR {
00690 struct bankHeader bh ;
00691 UINT8 feeId[MZ_FTP_PADS_PER_MEZ] ;
00692 } ;
00693
00694 struct SVTCFGR {
00695 struct bankHeader bh ;
00696 UINT8 feeId[MZ_SVT_MAX_PADS_PER_MEZ] ;
00697 } ;
00698
00699
00700 struct DETGAINR {
00701 struct bankHeader bh ;
00702 UINT32 events ;
00703 UINT32 meanGain ;
00704 struct gain {
00705 UINT16 t0 ;
00706 UINT8 t0_rms ;
00707 UINT8 rel_gain ;
00708 } gain[MZ_MAX_PADS] ;
00709 UINT8 trans_table[1024] ;
00710 UINT16 exp_table[256] ;
00711 } ;
00712
00713 struct DETGAIND {
00714 struct bankHeader bh ;
00715 struct gain {
00716 short t0 ;
00717 unsigned short rel_gain ;
00718 } gain[MZ_MAX_PADS] ;
00719 UINT8 trans_table[1024] ;
00720 UINT16 exp_table[256] ;
00721 } ;
00722
00723
00724 struct SVTGAINR {
00725 struct bankHeader bh ;
00726 UINT32 events ;
00727 UINT32 meanGain ;
00728 struct gain {
00729 UINT16 t0 ;
00730 UINT8 t0_rms ;
00731 UINT8 rel_gain ;
00732 } gain[MZ_SVT_MAX_PADS_PER_MEZ] ;
00733 UINT8 trans_table[1024] ;
00734 UINT16 exp_table[256] ;
00735 } ;
00736
00737 struct TPCGAINR {
00738 struct bankHeader bh ;
00739 UINT32 events ;
00740 UINT32 meanGain ;
00741 struct gain {
00742 UINT16 t0 ;
00743 UINT8 t0_rms ;
00744 UINT8 rel_gain ;
00745 } gain[MZ_TPC_MAX_PADS_PER_MEZ] ;
00746 UINT8 trans_table[1024] ;
00747 UINT16 exp_table[256] ;
00748 } ;
00749
00750 struct FTPGAINR {
00751 struct bankHeader bh ;
00752 UINT32 events ;
00753 UINT32 meanGain ;
00754 struct gain {
00755 UINT16 t0 ;
00756 UINT8 t0_rms ;
00757 UINT8 rel_gain ;
00758 } gain[MZ_FTP_PADS_PER_MEZ] ;
00759 UINT8 trans_table[1024] ;
00760 UINT16 exp_table[256] ;
00761 } ;
00762
00763
00764 struct DETBADR {
00765 struct bankHeader bh ;
00766 struct row_pad rp[MZ_MAX_PADS] ;
00767 } ;
00768
00769 struct TPCBADR {
00770 struct bankHeader bh ;
00771 struct row_pad rp[MZ_TPC_MAX_PADS_PER_MEZ] ;
00772 } ;
00773
00774 struct FTPBADR {
00775 struct bankHeader bh ;
00776 struct row_pad rp[MZ_FTP_PADS_PER_MEZ] ;
00777 } ;
00778
00779 struct SVTBADR {
00780 struct bankHeader bh ;
00781 struct row_pad rp[MZ_SVT_MAX_PADS_PER_MEZ] ;
00782 } ;
00783
00784
00785
00786 #define RIC_BANK_DATAD 0
00787 #define RIC_BANK_DATAR 1
00788 #define RIC_BANK_PEDR 2
00789 #define RIC_BANK_RMSR 3
00790
00791 struct RICP {
00792 struct bankHeader bh ;
00793 struct offlen crams[18] ;
00794 } ;
00795
00796 struct RICCRAMP {
00797 struct bankHeader bh ;
00798 struct offlen banks[8] ;
00799 } ;
00800
00801 struct RICDATAD {
00802 struct bankHeader bh ;
00803 unsigned short data[2*960] ;
00804 } ;
00805
00806 struct RICDATAR {
00807 struct bankHeader bh ;
00808 } ;
00809
00810 struct RICPEDR {
00811 struct bankHeader bh ;
00812 };
00813
00814 struct RICRMSR {
00815 struct bankHeader bh ;
00816 } ;
00817
00818 struct RICTHRER {
00819 struct bankHeader bh ;
00820 } ;
00821
00822 struct RICBADR {
00823 struct bankHeader bh ;
00824 } ;
00825
00826
00827
00828
00829
00830 #define FPDP_MAX_BANKS 8
00831
00832 #define FPDP_ADCD 0
00833 #define FPDP_TDCD 1
00834 #define FPDP_REGD 2
00835 #define FPDP_PEDR 3
00836 #define FPDP_SCL 4
00837 #define FPDP_BBCDAT 5
00838 #define FPDP_BBCPED 6
00839 #define FPDP_BBCSCL 7
00840
00841
00842 struct FPDP {
00843 struct bankHeader bh ;
00844 struct offlen type[FPDP_MAX_BANKS] ;
00845 } ;
00846
00847 struct FPDADCD {
00848 struct bankHeader bh ;
00849 unsigned short data[256] ;
00850 } ;
00851
00852 struct FPDTDCD {
00853 struct bankHeader bh ;
00854 unsigned short data[8] ;
00855 } ;
00856
00857 struct FPDREGD {
00858 struct bankHeader bh ;
00859 unsigned short data[4] ;
00860 } ;
00861
00862 struct FPDPEDR {
00863 struct bankHeader bh ;
00864 unsigned short ped[256] ;
00865 unsigned short rms[256] ;
00866 } ;
00867
00868 struct FPDSCL {
00869 struct bankHeader bh ;
00870 unsigned int scl[128] ;
00871 } ;
00872
00873 struct BBCDAT {
00874 struct bankHeader bh ;
00875 unsigned short pulse[32] ;
00876 unsigned short time[32] ;
00877 unsigned short proof[2] ;
00878 unsigned short spare[6] ;
00879 } ;
00880
00881 struct BBCPED {
00882 struct bankHeader bh ;
00883 unsigned short ped[32] ;
00884 unsigned short rms[32] ;
00885 unsigned short peaks[64] ;
00886 } ;
00887
00888 struct BBCSCL {
00889 struct bankHeader bh ;
00890 unsigned int scl[32] ;
00891 } ;
00892
00893
00894
00895
00896
00897
00898
00899 struct TOFP {
00900 struct bankHeader bh ;
00901 struct offlen type[8] ;
00902 } ;
00903
00904 struct TOFADCD {
00905 struct bankHeader bh ;
00906 unsigned int data[180] ;
00907 } ;
00908
00909 struct TOFTDCD {
00910 struct bankHeader bh ;
00911 unsigned int data[184] ;
00912 } ;
00913
00914 struct TOFA2DD {
00915 struct bankHeader bh ;
00916 unsigned int data[32] ;
00917 } ;
00918
00919 struct TOFSCAD {
00920 struct bankHeader bh ;
00921 unsigned int data[12] ;
00922 } ;
00923
00924 struct TOFDDLR {
00925 struct bankHeader bh ;
00926 char data[0] ;
00927 } ;
00928
00929
00930
00931 #define PMD_CRAMS_MAX 12
00932 #define PMD_CRAMS_CH_MAX 1728
00933
00934
00935 #define PMD_ADCD_N 0
00936 #define PMD_PEDR_N 1
00937 #define PMD_RMSR_N 2
00938 #define PMD_THRR_N 3
00939
00940 struct PMDP {
00941 struct bankHeader bh ;
00942 struct offlen sec[2] ;
00943 } ;
00944
00945 struct PMDSECP {
00946 struct bankHeader bh ;
00947 struct offlen type[4] ;
00948 } ;
00949
00950 struct PMDADCD {
00951 struct bankHeader bh ;
00952 UINT32 data[PMD_CRAMS_MAX*2*(1+PMD_CRAMS_CH_MAX)] ;
00953 } ;
00954
00955 struct PMDPEDR {
00956 struct bankHeader bh ;
00957 UINT16 data[PMD_CRAMS_MAX*2*(1+PMD_CRAMS_CH_MAX)] ;
00958
00959 } ;
00960
00961 struct PMDRMSR {
00962 struct bankHeader bh ;
00963 UINT16 data[PMD_CRAMS_MAX*2*(1+PMD_CRAMS_CH_MAX)] ;
00964 } ;
00965
00966 struct PMDTHRR {
00967 struct bankHeader bh ;
00968 UINT16 data[PMD_CRAMS_MAX*2*(1+PMD_CRAMS_CH_MAX)] ;
00969 } ;
00970
00971
00972
00973
00974
00975
00976
00977
00978
00979
00980
00981
00982
00983
00984 #define EMC_SEC_NUM 6 // num. of "sections" i.e. subparts
00985 #define EMC_FIBER_NUM 12 // max num of fibers per subemc
00986
00987
00988 #define EMC_B_TOW 0
00989 #define EMC_B_SMD 1
00990 #define EMC_B_PRE 2
00991 #define EMC_E_TOW 3
00992 #define EMC_E_SMD 4
00993 #define EMC_E_PRE 5
00994
00995 struct EMCP {
00996 struct bankHeader bh ;
00997 struct offlen sec[EMC_SEC_NUM] ;
00998 } ;
00999
01000 struct EMCSECP {
01001 struct bankHeader bh ;
01002 struct offlen fiber[EMC_FIBER_NUM] ;
01003 } ;
01004
01005 struct EMCRBP {
01006 struct bankHeader bh ;
01007 struct offlen banks[TPC_MZP_BANKS_NUM] ;
01008 } ;
01009
01010 struct EMCADCD {
01011 struct bankHeader bh ;
01012 unsigned short version ;
01013 unsigned short count ;
01014 unsigned short cap ;
01015 unsigned short fiber ;
01016
01017
01018
01019 } ;
01020
01021 struct EMCPEDR {
01022 struct bankHeader bh ;
01023 unsigned short version ;
01024 unsigned short count ;
01025 unsigned short cap ;
01026 unsigned short fiber ;
01027
01028
01029 } ;
01030
01031 struct PP2PPP {
01032 struct bankHeader bh ;
01033 struct offlen sec[3] ;
01034 } ;
01035
01036
01037 struct PP2PPR {
01038 struct bankHeader bh ;
01039 unsigned int type ;
01040 unsigned int xing ;
01041 unsigned int seq ;
01042 unsigned int hash ;
01043 unsigned int seqAdj ;
01044 unsigned int xingAdj ;
01045 unsigned int ms ;
01046 unsigned int res[1] ;
01047 char data[0] ;
01048 } ;
01049
01050
01051 #define SCD_FORMAT_VERSION 0x00050001 // Run FY05, version 1
01052 struct SCD {
01053 struct bankHeader bh ;
01054 unsigned int time ;
01055 int mag_field ;
01056 unsigned int rich_scalers[16] ;
01057 } ;
01058
01059
01060
01061
01062 #include "L3/L3Formats.h"
01063
01064
01065
01066
01067
01068
01069
01070
01071
01072
01073
01074
01075
01076
01077
01078 #ifdef VERIFY_SIZES
01079
01080
01081
01082
01083
01084
01085
01086
01087
01088
01089
01090
01091
01092 static UINT32 sTPCSECP = sizeof(struct TPCSECP) ;
01093 static UINT32 aTPCSECP = __alignof__(struct TPCSECP) ;
01094
01095 static UINT32 sTPCSECLP = sizeof(struct TPCSECLP) ;
01096 static UINT32 aTPCSECLP = __alignof__(struct TPCSECLP) ;
01097
01098 static UINT32 sTPCRBCLP = sizeof(struct TPCRBCLP) ;
01099 static UINT32 aTPCRBCLP = __alignof__(struct TPCRBCLP) ;
01100
01101 static UINT32 sTPCMZCLD_local = sizeof(struct TPCMZCLD_local) ;
01102 static UINT32 aTPCMZCLD_local = __alignof__(struct TPCMZCLD_local) ;
01103
01104 static UINT32 sTPCRBP = sizeof(struct TPCRBP) ;
01105 static UINT32 aTPCRBP = __alignof__(struct TPCRBP) ;
01106
01107 static UINT32 sTPCMZP = sizeof(struct TPCMZP) ;
01108 static UINT32 aTPCMZP = __alignof__(struct TPCMZP) ;
01109
01110 static UINT32 sTPCADCX = sizeof(struct TPCADCX) ;
01111 static UINT32 aTPCADCX = __alignof__(struct TPCADCX) ;
01112
01113 static UINT32 sTPCADCD = sizeof(struct TPCADCD) ;
01114 static UINT32 aTPCADCD = __alignof__(struct TPCADCD) ;
01115
01116 static UINT32 sTPCSEQD = sizeof(struct TPCSEQD) ;
01117 static UINT32 aTPCSEQD = __alignof__(struct TPCSEQD) ;
01118
01119 static UINT32 sTPCPADK = sizeof(struct TPCPADK) ;
01120 static UINT32 aTPCPADK = __alignof__(struct TPCPADK) ;
01121
01122 static UINT32 sTPCCFGR = sizeof(struct TPCCFGR) ;
01123 static UINT32 aTPCCFGR = __alignof__(struct TPCCFGR) ;
01124
01125 static UINT32 sTPCGAINR = sizeof(struct TPCGAINR) ;
01126 static UINT32 aTPCGAINR = __alignof__(struct TPCGAINR) ;
01127
01128 static UINT32 sTPCPEDR = sizeof(struct TPCPEDR) ;
01129 static UINT32 aTPCPEDR = __alignof__(struct TPCPEDR) ;
01130
01131 static UINT32 sTPCRMSR = sizeof(struct TPCRMSR) ;
01132 static UINT32 aTPCRMSR = __alignof__(struct TPCRMSR) ;
01133
01134 static UINT32 sTPCBADR = sizeof(struct TPCBADR) ;
01135 static UINT32 aTPCBADR = __alignof__(struct TPCBADR) ;
01136
01137 static UINT32 sTPCADCR_l = sizeof(struct TPCADCR_l) ;
01138 static UINT32 aTPCADCR_l = __alignof__(struct TPCADCR_l) ;
01139
01140 static UINT32 sTPCCPPR_l = sizeof(struct TPCCPPR_l) ;
01141 static UINT32 aTPCCPPR_l = __alignof__(struct TPCCPPR_l) ;
01142
01143
01144 #endif
01145
01146 #endif
01147