BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
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;
95const uint32_t kT0_BIN_BLOCK_2020_SEC = 0;
96const uint32_t kT0_BIN_BLOCK_UNIX_SEC = 248;
97const uint32_t kT0_BIN_BLOCK_TIME_TXT = 251;
98const uint32_t kT0_TXT_BLOCK_BYTES = 4096;
99
100const double TRC_CLOCK_NS = 8;
101
102#pragma pack(push, 1)
103
104struct __attribute__((packed)) DeviceHeader
105{
106 void Print() const
107 {
108 printf("\tDeviceHeader:\n");
109 printf("Serial : 0x%08X\n", Serial);
110 printf("Length : %8u\n", Len);
111 printf("DeviceId : %8X\n", DeviceId);
112 }
113 const uint32_t GetNWords() const { return Len / kWORDSIZE; }
114
115 uint32_t Serial;
116 uint32_t Len : 24; // bytes
117 uint8_t DeviceId : 8;
118};
119
120/**
121 * M-Stream Header
122 * https://afi.jinr.ru/MpdDeviceRawDataFormat
123 */
124struct __attribute__((packed)) MStreamHeader
125{
126 void Print() const
127 {
128 printf("\tMStreamHeader:\n");
129 printf("Subtype : %8u\n", Subtype);
130 printf("Length : %8u words\n", Len);
131 printf("CustomBits: %8u\n", CustomBits);
132 }
133 uint8_t Subtype : 2;
134 uint32_t Len : 22;
135 uint8_t CustomBits : 8;
136};
137
138struct __attribute__((packed)) MStreamTAI
139{
140 bool valid() const { return Flags == 2; }
141 uint32_t Sec;
142 uint8_t Flags : 2;
143 uint32_t NSec : 30;
144};
145
146struct __attribute__((packed)) MStream0
147{
148 MStreamTAI Tai;
149 uint32_t MaskLo;
150 uint32_t MaskHi;
151};
152
153/**
154 * https://afi.jinr.ru/DataFormatMSC_ETH
155 */
156struct __attribute__((packed)) MSC16VE_EHeader
157{
158 MStreamHeader Hdr;
159 MStreamTAI Tai;
160 uint8_t NCntrBits : 4;
161 uint8_t ChanNumber : 8; // since V2
162 uint8_t ExtCondCnt : 4; // since V2
163 uint32_t : 12;
164 uint8_t Version : 4; // (Version-1)
165 uint32_t SliceInt; // Slice interval [ns]
166
167 uint8_t GetVersion() const { return Version + 1; }
168};
169
170/**
171 * TQDC-E Data Block header
172 * https://afi.jinr.ru/DataFormatTQDC16VSE
173 */
174struct __attribute__((packed)) TqdcDataHeader
175{
176 uint16_t Len : 16;
177 uint8_t AdcBits : 3;
178 uint8_t : 5;
179 uint8_t Chan : 4;
180 uint8_t DataType : 4;
181};
182
183#pragma pack(pop)
184
185#endif
nsL1vector __attribute__
M-Stream Header https://afi.jinr.ru/MpdDeviceRawDataFormat.
DataType
Data type enumerator.
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:95
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 kT0_BIN_BLOCK_TIME_TXT
Definition RawTypes.h:97
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:96
const uint32_t kHGND_SERIALS
Definition RawTypes.h:69
const uint32_t kT0_TXT_BLOCK_BYTES
Definition RawTypes.h:98
const uint32_t kTDC32VL
Definition RawTypes.h:49
const uint32_t kT0_BIN_BLOCK_BYTES
Definition RawTypes.h:94
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:100
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
void Print(void *xp)
const char * Version