BmnRoot
Loading...
Searching...
No Matches
RawTypes.h
Go to the documentation of this file.
1#ifndef RAWTYPES_H
2#define RAWTYPES_H
3
4/***************** SET OF DAQ CONSTANTS *****************/
5const uint32_t SYNC_EVENT = 0x2A50D5AF;
6const uint32_t SYNC_EVENT_OLD = 0x2A502A50;
7const uint32_t SYNC_STAT = 0x4A62B59D; // Statistics
8const uint32_t SYNC_EOS = 0x4A624A62; // End Of Spill
9const uint32_t SYNC_JSON = 0x4E4F534A;
10const uint32_t SYNC_RUN_START = 0x72617453;
11const uint32_t SYNC_RUN_STOP = 0x706F7453;
12const uint32_t SYNC_FILE_BEGIN = 0x67654246;
13const uint32_t SYNC_FILE_END = 0x646E4546;
14const uint32_t RECORD_RUN_NUMBER = 0x236E7552; // Run ID
15const uint32_t RECORD_RUN_INDEX = 0x78646E49; // Event Builder Name
16const uint32_t RECORD_EVENT_ORDER = 0x71655345;
17const uint32_t RECORD_FILE_ID = 0x64496946;
18const size_t kWORDSIZE = sizeof(uint32_t);
19const uint32_t kNBYTESINWORD = kWORDSIZE;
20
21// FVME data types
22const uint32_t kMODDATAMAX = 0x7;
23const uint32_t kMODHEADER = 0x8;
24const uint32_t kMODTRAILER = 0x9;
25const uint32_t kEVHEADER = 0xA;
26const uint32_t kEVTRAILER = 0xB;
27const uint32_t kSPILLHEADER = 0xC;
28const uint32_t kSPILLTRAILER = 0xD;
29const uint32_t kSTATUS = 0xE;
30const uint32_t kPADDING = 0xF;
31const uint32_t TMWR_TAI = 2;
32const uint32_t TMWR_REL_TS = 4;
33const uint32_t TMWR_REL_TS_TB = 5;
34const uint32_t TMWR_PULSE = 7;
35const uint32_t TMWR_EOS_CNT = 1;
36const uint32_t TMWR_EOS_CNT_MATCHED = 0;
37
38// MStream Data Type
39const uint32_t kMSTREAM_TYPE_TDC = 0x0;
40const uint32_t kMSTREAM_TYPE_ADC = 0x1;
41const uint32_t kMSTREAM_TYPE_TRIG = 0xA;
42const uint32_t kMSTREAM_TYPE_STAT = 0xF;
43
44// module ID
45const uint32_t kTDC64V = 0x10; // DCH
46const uint32_t kTDC64VHLE = 0x53;
47const uint32_t kTDC64VHLE_E = 0xD3;
48const uint32_t kTDC72VHL = 0x12;
49const uint32_t kTDC32VL = 0x11;
50const uint32_t kTQDC16 = 0x09;
51const uint32_t kTQDC16VS = 0x56;
52const uint32_t kVIRTUAL_DEVICE = 0x56;
53const uint32_t kTQDC16VS_E = 0xD6;
54const uint32_t kTRIG = 0xA;
55const uint32_t kTTVXS = 0xCF;
56const uint32_t kMSC16V = 0xF;
57const uint32_t kMSC16VE_E = 0xD8;
58const uint32_t kUT24VE_TRC = 0xE3;
59const uint32_t kUT24VE = 0xC9;
60const uint32_t kUT24VE_ = 0x49;
61const uint32_t kADC64VE = 0xD4;
62const uint32_t kADC64VE_XGE = 0xD9;
63const uint32_t kADC64WR = 0xCA;
64const uint32_t kHRB = 0xC2;
65const uint32_t kTDC72VXS = 0xD0;
66const uint32_t kFVME = 0xD1;
67const uint32_t kGENERIC_DEVICE = 0xDA;
68const uint32_t kVSP_SERIALS = 0x00535453;
69const uint32_t kHGND_SERIALS = 0x4e446574;
70const uint32_t SERIAL_RUN_DOCUMENT = 0x43526372; // rcRC
71const uint32_t SERIAL_TO_CFG = 0x30543074; // t0T0
72const uint32_t kU40VE_RC = 0x4C;
73
74// event type trigger
75const uint32_t kEVENTTYPESLOT = 12;
76const uint32_t kWORDTAI = 2;
77const uint32_t kWORDTRIG = 3;
78const uint32_t kWORDAUX = 4;
79const uint32_t kTRIGBEAM = 6;
80const uint32_t kTRIGMINBIAS = 1;
81
82const uint32_t TDC_EV_HEADER = 2;
83const uint32_t TDC_EV_TRAILER = 3;
84const uint32_t TDC_LEADING = 4;
85const uint32_t TDC_TRAILING = 5;
86const uint32_t TDC_ERROR = 6;
87
88const uint32_t MSC_N_COUNTERS = 16;
89const uint8_t MSC_EC_SPILL = 1;
90const uint8_t MSC_EC_BUSY = (1 << 1);
91const uint8_t MSC_TIME_SLICE_INFO = 0xE;
92
93const uint32_t kT0_BIN_BLOCK_WORDS = 256;
94const uint32_t kT0_BIN_BLOCK_2020_SEC = 0;
95const uint32_t kT0_BIN_BLOCK_UNIX_SEC = 248;
96
97const double TRC_CLOCK_NS = 8;
98
99#pragma pack(push, 1)
100
101struct __attribute__((packed)) DeviceHeader
102{
103 void Print()
104 {
105 printf("\tDeviceHeader:\n");
106 printf("Serial : 0x%08X\n", Serial);
107 printf("Length : %8u\n", Len);
108 printf("DeviceId : %8X\n", DeviceId);
109 }
110 const uint32_t GetNWords() { return Len / kWORDSIZE; }
111
112 uint32_t Serial;
113 uint32_t Len : 24;
114 uint8_t DeviceId : 8;
115};
116
121struct __attribute__((packed)) MStreamHeader
122{
123 void Print()
124 {
125 printf("\tMStreamHeader:\n");
126 printf("Subtype : %8u\n", Subtype);
127 printf("Length : %8u words\n", Len);
128 printf("CustomBits: %8u\n", CustomBits);
129 }
130 uint8_t Subtype : 2;
131 uint32_t Len : 22;
132 uint8_t CustomBits : 8;
133};
134
135struct __attribute__((packed)) MStreamTAI
136{
137 bool valid() { return Flags == 2; }
138 uint32_t Sec;
139 uint8_t Flags : 2;
140 uint32_t NSec : 30;
141};
142
143struct __attribute__((packed)) MStream0
144{
145 MStreamTAI Tai;
146 uint32_t MaskLo;
147 uint32_t MaskHi;
148};
149
153struct __attribute__((packed)) MSC16VE_EHeader
154{
155 MStreamHeader Hdr;
156 MStreamTAI Tai;
157 uint8_t NCntrBits : 4;
158 uint8_t ChanNumber : 8; // since V2
159 uint8_t ExtCondCnt : 4; // since V2
160 uint32_t : 12;
161 uint8_t Version : 4; // (Version-1)
162 uint32_t SliceInt; // Slice interval [ns]
163
164 uint8_t GetVersion() { return Version + 1; }
165};
166
171struct __attribute__((packed)) TqdcDataHeader
172{
173 uint16_t Len : 16;
174 uint8_t AdcBits : 3;
175 uint8_t : 5;
176 uint8_t Chan : 4;
177 uint8_t DataType : 4;
178};
179
180#pragma pack(pop)
181
182#endif
nsL1vector __attribute__
DataType
const uint32_t kTRIG
Definition RawTypes.h:54
const uint32_t RECORD_FILE_ID
Definition RawTypes.h:17
const uint32_t kMSTREAM_TYPE_TRIG
Definition RawTypes.h:41
const uint32_t kADC64VE_XGE
Definition RawTypes.h:62
const uint32_t kTDC72VXS
Definition RawTypes.h:65
const uint32_t SYNC_RUN_START
Definition RawTypes.h:10
const uint32_t kFVME
Definition RawTypes.h:66
const uint32_t kTTVXS
Definition RawTypes.h:55
const uint32_t SERIAL_RUN_DOCUMENT
Definition RawTypes.h:70
const uint32_t SYNC_EVENT
Definition RawTypes.h:5
const uint32_t TDC_ERROR
Definition RawTypes.h:86
const uint32_t RECORD_RUN_NUMBER
Definition RawTypes.h:14
const uint32_t kTRIGMINBIAS
Definition RawTypes.h:80
const uint32_t kU40VE_RC
Definition RawTypes.h:72
const uint32_t kEVENTTYPESLOT
Definition RawTypes.h:75
const uint32_t RECORD_EVENT_ORDER
Definition RawTypes.h:16
const uint32_t kVSP_SERIALS
Definition RawTypes.h:68
const uint32_t kMODTRAILER
Definition RawTypes.h:24
const uint32_t kTRIGBEAM
Definition RawTypes.h:79
const uint8_t MSC_EC_BUSY
Definition RawTypes.h:90
const uint32_t kTDC72VHL
Definition RawTypes.h:48
const uint32_t kT0_BIN_BLOCK_2020_SEC
Definition RawTypes.h:94
const uint32_t kTQDC16
Definition RawTypes.h:50
const uint32_t TDC_TRAILING
Definition RawTypes.h:85
const uint32_t kSPILLHEADER
Definition RawTypes.h:27
const uint32_t kSTATUS
Definition RawTypes.h:29
const uint32_t kMSTREAM_TYPE_TDC
Definition RawTypes.h:39
const uint32_t TMWR_REL_TS
Definition RawTypes.h:32
const uint32_t kVIRTUAL_DEVICE
Definition RawTypes.h:52
const uint32_t kTQDC16VS_E
Definition RawTypes.h:53
const uint32_t kADC64WR
Definition RawTypes.h:63
const uint32_t kEVTRAILER
Definition RawTypes.h:26
const uint32_t TMWR_REL_TS_TB
Definition RawTypes.h:33
const uint32_t TMWR_EOS_CNT
Definition RawTypes.h:35
const uint32_t kUT24VE_TRC
Definition RawTypes.h:58
const uint32_t SYNC_EOS
Definition RawTypes.h:8
const uint32_t SYNC_STAT
Definition RawTypes.h:7
const uint32_t kMSTREAM_TYPE_STAT
Definition RawTypes.h:42
const uint32_t kTDC64VHLE
Definition RawTypes.h:46
const uint32_t kUT24VE
Definition RawTypes.h:59
const uint32_t TMWR_TAI
Definition RawTypes.h:31
const uint32_t TDC_EV_HEADER
Definition RawTypes.h:82
const uint32_t SYNC_JSON
Definition RawTypes.h:9
const uint32_t TDC_EV_TRAILER
Definition RawTypes.h:83
const uint32_t kMODDATAMAX
Definition RawTypes.h:22
const uint32_t TDC_LEADING
Definition RawTypes.h:84
const uint32_t MSC_N_COUNTERS
Definition RawTypes.h:88
const uint32_t SYNC_RUN_STOP
Definition RawTypes.h:11
const uint32_t kMSTREAM_TYPE_ADC
Definition RawTypes.h:40
const uint32_t kNBYTESINWORD
Definition RawTypes.h:19
const uint32_t kGENERIC_DEVICE
Definition RawTypes.h:67
const uint32_t kT0_BIN_BLOCK_UNIX_SEC
Definition RawTypes.h:95
const uint32_t kHGND_SERIALS
Definition RawTypes.h:69
const uint32_t kTDC32VL
Definition RawTypes.h:49
const uint32_t kWORDTAI
Definition RawTypes.h:76
const uint32_t kADC64VE
Definition RawTypes.h:61
const uint32_t SYNC_FILE_BEGIN
Definition RawTypes.h:12
const double TRC_CLOCK_NS
Definition RawTypes.h:97
const uint32_t SERIAL_TO_CFG
Definition RawTypes.h:71
const uint32_t RECORD_RUN_INDEX
Definition RawTypes.h:15
const uint32_t kWORDTRIG
Definition RawTypes.h:77
const uint32_t kEVHEADER
Definition RawTypes.h:25
const uint32_t kHRB
Definition RawTypes.h:64
const uint32_t TMWR_PULSE
Definition RawTypes.h:34
const uint32_t SYNC_FILE_END
Definition RawTypes.h:13
const uint32_t kUT24VE_
Definition RawTypes.h:60
const uint32_t SYNC_EVENT_OLD
Definition RawTypes.h:6
const uint8_t MSC_EC_SPILL
Definition RawTypes.h:89
const uint32_t kSPILLTRAILER
Definition RawTypes.h:28
const uint32_t kTDC64VHLE_E
Definition RawTypes.h:47
const uint32_t kMSC16V
Definition RawTypes.h:56
const uint32_t kT0_BIN_BLOCK_WORDS
Definition RawTypes.h:93
const uint32_t kTQDC16VS
Definition RawTypes.h:51
const uint8_t MSC_TIME_SLICE_INFO
Definition RawTypes.h:91
const uint32_t kMSC16VE_E
Definition RawTypes.h:57
const uint32_t kWORDAUX
Definition RawTypes.h:78
const uint32_t kTDC64V
Definition RawTypes.h:45
const uint32_t kPADDING
Definition RawTypes.h:30
const uint32_t kMODHEADER
Definition RawTypes.h:23
const uint32_t TMWR_EOS_CNT_MATCHED
Definition RawTypes.h:36
const size_t kWORDSIZE
Definition RawTypes.h:18
UInt_t GetVersion(Int_t address)
Extract version number.