30#ifndef O2_TOF_RAWDATAFORMAT
31#define O2_TOF_RAWDATAFORMAT
48#define TOF_MAGIC 0x70F
49#define TOF_SOURCE_ID 0x5
63#define TOF_DETFIELD_MAGIC(x) (x & FFF)
64#define TOF_DETFIELD_RECVTRIGGER(x) ((x >> 16) & 0xFF)
65#define TOF_DETFIELD_SERVTRIGGER(x) ((x >> 24) & 0xFF)
70#define TRM_GEOAD_MIN 3
71#define TRM_GEOAD_MAX 12
77#define FILLER_WORD (TOF_FILLER << 28)
78#define TOF_GETGEO(x) (x & 0xF)
79#define TOF_GETDATAID(x) ((x >> 28) & 0xF)
105#define TDH_SIZE sizeof(TDH_t)
106#define TDH_LENGTH TDH_SIZE / 4
108#define TDH_HEADER(d) TOF_GETDATAID(d)
109#define TDH_PAYLOAD(d) (d & 0x3FFFF)
110#define TDH_WORDS(d) TDH_PAYLOAD(d) / 4
111#define TDH_ORBIT(d) (d & 0xFFFFFFFF)
204#define DRMH_SIZE sizeof(DRMh_t)
205#define DRMH_LENGTH DRMH_SIZE / 4
206#define DRM_HEAD_NW DRMH_LENGTH
209#define DRM_EVWORDS(a) ((a & 0x000FFFF0) >> 4)
210#define DRM_DRMID(a) ((a & 0x07F00000) >> 20)
211#define DRM_GENDATA(a) ((a & 0x08000000) >> 27)
212#define DRM_DRMID_OLD(a) ((a & 0x007E00000) >> 21)
213#define DRM_EVWORDS_OLD(a) ((a & 0x0001FFFF0) >> 4)
215#define DRM_SLOTID(a) ((a & 0x00007FF0) >> 4)
216#define DRM_CLKFLG(a) ((a & 0x00030000) >> 16)
217#define DRM_VERSID(a) ((a & 0x007C0000) >> 18)
218#define DRM_HSIZE(a) ((a & 0x07800000) >> 23)
219#define DRM_VERSID_OLD(a) ((a & 0x003E0000) >> 17)
220#define DRM_CLKFLG_OLD(a) ((a & 0x00018000) >> 15)
221#define DRM_HSIZE_OLD(a) ((a & 0x03C00000) >> 22)
222#define DRM_NEW_VERSION(a) ((a & 0x02000000) >> 25)
224#define DRM_ENABLEID(a) ((a & 0x00007FF0) >> 4)
225#define DRM_FAULTID(a) ((a & 0x07FF0000) >> 16)
226#define DRM_RTMO(a) ((a & 0x08000000) >> 27)
228#define DRM_BCGBT(a) ((a & 0x0000FFF0) >> 4)
229#define DRM_BCLOC(a) ((a & 0x0FFF0000) >> 16)
231#define DRM_TEMP(a) ((a & 0x00003FF0) >> 4)
232#define DRM_SENSAD(a) ((a & 0x00070000) >> 16)
234#define DRM_EVCRC(a) ((a & 0x000FFFF0) >> 4)
236#define DRM_LOCEVCNT(a) ((a & 0x0000FFF0) >> 4)
239#define TRM_HEADER TOF_HEADER
240#define TRM_TRAILER TOF_TRAILER
241#define CHAIN_0_HEADER 0
242#define CHAIN_0_TRAILER 1
243#define CHAIN_1_HEADER 2
244#define CHAIN_1_TRAILER 3
245#define HIT_LEADING 0xA
246#define HIT_TRAILING 0xC
247#define REPORT_ERROR 6
248#define DEBERR REPORT_ERROR
250#define TRM_WORDID(a) TOF_GETDATAID(a)
262 uint32_t eventWords : 13;
267#define TRM_EVCNT_GH(a) ((a & 0x07FE0000) >> 17)
268#define TRM_EVWORDS(a) ((a & 0x0001FFF0) >> 4)
269#define TRM_EMPTYBIT(a) ((a & 0x08000000) >> 27)
282#define TRM_BUNCHID(a) ((a & 0x0000FFF0) >> 4)
292 uint32_t eventCnt : 12;
295#define TRM_EVCNT_CT(a) ((a & 0x0FFF0000) >> 16)
296#define TRM_CHAINSTAT(a) (a & 0xF)
309 uint32_t eventCRC : 12;
310 uint32_t tempValue : 8;
311 uint32_t tempAddress : 3;
318#define TRM_LUTERRBIT(a) ((a & 0x08000000) >> 27)
319#define TRM_PB24TEMP(a) ((a & 0x003FC000) >> 14)
320#define TRM_PB24ID(a) ((a & 0x01C00000) >> 22)
321#define TRM_PB24CHAIN(a) ((a & 0x02000000) >> 25)
322#define TRM_PB24ACK(a) ((a & 0x04000000) >> 26)
323#define TRM_EVCRC2(a) ((a & 0x00003FFC) >> 2)
324#define TRM_TERM(a) (a & 0x3)
348#define TRM_TIME(a) (a & 0x1FFFFF)
349#define TRM_CHANID(a) ((a >> 21) & 0x7)
350#define TRM_TDCID(a) ((a >> 24) & 0xF)
356 uint32_t eventWords : 13;
362#define LTM_HEAD_TAG(x) TOF_GETDATAID(x)
363#define LTM_HEAD_FAULTFLAG(x) (((x) >> 18) & 0x1)
364#define LTM_HEAD_CYCSTATUS(x) (((x) >> 17) & 0x1)
365#define LTM_EVENTSIZE(x) (((x) >> 4) & 0x1FFF)
366#define LTM_HEAD_EVENTSIZE(x) (((x) >> 4) & 0x1FFF)
367#define LTM_HEAD_GEOADDR(x) TOF_GETGEO(x)
368#define LTM_HEADER TOF_HEADER
372 uint32_t eventCRC : 12;
373 uint32_t eventCnt : 12;
376#define LTM_TAIL_TAG(x) TOF_GETDATAID(x)
377#define LTM_TAIL_EVENTNUM(x) (((x) >> 16) & 0xFFF)
378#define LTM_TAIL_EVENTCRC(x) (((x) >> 4) & 0xFFF)
379#define LTM_TAIL_GEOADDR(x) TOF_GETGEO(x)
380#define LTM_TRAILER TOF_TRAILER
398 LTMPdlWord_t pdlData[12];
400 LTMAdcWord_t adcData[36];
410#define LTM_EVSIZE sizeof(LTMPackedEvent_t)
411#define LTM_PDL_FIELD(x, n) (((x) >> ((n)*8)) & 0xFF)
412#define LTM_V_FIELD(x, n) (((x) >> ((n)*10)) & 0x3FF)
413#define LTM_T_FIELD(x, n) (((x) >> ((n)*10)) & 0x3FF)
414#define LTM_OR_FIELD(x, n) (((x) >> ((n)*10)) & 0x3FF)
422 uint32_t PdlDelay[48];
426 uint32_t FeacTemp[8];
427 uint32_t LocalTemp[12];
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
uint32_t triggerRecvInOrbit
uint32_t triggerServInOrbit
DRMDataTrailer_t drmDataTrailer
TRMDataTrailer_t trmDataTrailer
TRMChainTrailer_t trmChainTrailer
DRMDataHeader_t drmDataHeader
TOFDataHeader_t tofDataHeader
TRMChainHeader_t trmChainHeader
TRMDataHeader_t trmDataHeader