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