19 using wordtype = uint64_t;
20 constexpr int RAWHEADERWORDS =
sizeof(
header) /
sizeof(wordtype);
21 wordtype
message[RAWHEADERWORDS];
23 for (
int i = 0;
i < RAWHEADERWORDS;
i++) {
41 using wordtype = uint64_t;
42 constexpr int RAWHEADERWORDS =
sizeof(
header) /
sizeof(wordtype);
43 wordtype
message[RAWHEADERWORDS];
45 for (
int i = 0;
i < RAWHEADERWORDS;
i++) {
63 using wordtype = uint64_t;
64 constexpr int RAWHEADERWORDS =
sizeof(
header) /
sizeof(wordtype);
65 wordtype
message[RAWHEADERWORDS];
67 for (
int i = 0;
i < RAWHEADERWORDS;
i++) {
85 using wordtype = uint64_t;
86 constexpr int RAWHEADERWORDS =
sizeof(
header) /
sizeof(wordtype);
87 wordtype
message[RAWHEADERWORDS];
89 for (
int i = 0;
i < RAWHEADERWORDS;
i++) {
106 stream <<
"Raw data header V4:\n"
107 <<
" Word0 " <<
header.word0 <<
" (0x" << std::hex <<
header.word0 << std::dec <<
")\n"
108 <<
" Version: " <<
header.version <<
"\n"
109 <<
" Header size: " <<
header.headerSize <<
"\n"
110 <<
" Block length: " <<
header.blockLength <<
"\n"
111 <<
" FEE ID: " <<
header.feeId <<
"\n"
112 <<
" Priority: " <<
header.priority <<
"\n"
113 <<
" Word1 " <<
header.word1 <<
" (0x" << std::hex <<
header.word1 << std::dec <<
")\n"
114 <<
" Offset to next: " <<
header.offsetToNext <<
"\n"
115 <<
" Payload size (B):" <<
header.memorySize <<
"\n"
116 <<
" Packet counter: " <<
static_cast<int>(
header.packetCounter) <<
"\n"
117 <<
" Link ID: " <<
static_cast<int>(
header.linkID) <<
"\n"
118 <<
" Card ID: " <<
header.cruID <<
"\n"
119 <<
" Endpoint: " <<
static_cast<int>(
header.endPointID) <<
"\n"
120 <<
" Word2 " <<
header.word2 <<
" (0x" << std::hex <<
header.word2 << std::dec <<
")\n"
121 <<
" Trigger orbit: " <<
header.triggerOrbit <<
"\n"
122 <<
" Heartbeat orbit: " <<
header.heartbeatOrbit <<
"\n"
123 <<
" Word3 " <<
header.word3 <<
" (0x" << std::hex <<
header.word3 << std::dec <<
")\n"
124 <<
" Word4 " <<
header.word4 <<
" (0x" << std::hex <<
header.word4 << std::dec <<
")\n"
125 <<
" Trigger BC: " <<
header.triggerBC <<
"\n"
126 <<
" Heartbeat BC: " <<
header.heartbeatBC <<
"\n"
127 <<
" Trigger Type: " <<
header.triggerType <<
"\n"
128 <<
" Word5 " <<
header.word5 <<
" (0x" << std::hex <<
header.word5 << std::dec <<
")\n"
129 <<
" Word6 " <<
header.word6 <<
" (0x" << std::hex <<
header.word6 << std::dec <<
")\n"
130 <<
" Detector Field: " <<
header.detectorField <<
"\n"
131 <<
" PAR: " <<
header.par <<
"\n"
132 <<
" STOP: " <<
header.stop <<
"\n"
133 <<
" Page count: " <<
header.pageCnt <<
"\n"
134 <<
" Word7 " <<
header.word7 <<
" (0x" << std::hex <<
header.word7 << std::dec <<
")\n"
141 stream <<
"Raw data header V5:\n"
142 <<
" Word0 " <<
header.word0 <<
" (0x" << std::hex <<
header.word0 << std::dec <<
")\n"
143 <<
" Version: " <<
header.version <<
"\n"
144 <<
" Header size: " <<
header.headerSize <<
"\n"
145 <<
" FEE ID: " <<
header.feeId <<
"\n"
146 <<
" Priority: " <<
header.priority <<
"\n"
147 <<
" Word1 " <<
header.word1 <<
" (0x" << std::hex <<
header.word1 << std::dec <<
")\n"
148 <<
" Offset to next: " <<
header.offsetToNext <<
"\n"
149 <<
" Payload size (B):" <<
header.memorySize <<
"\n"
150 <<
" Packet counter: " <<
static_cast<int>(
header.packetCounter) <<
"\n"
151 <<
" Link ID: " <<
static_cast<int>(
header.linkID) <<
"\n"
152 <<
" Card ID: " <<
header.cruID <<
"\n"
153 <<
" Endpoint: " <<
static_cast<int>(
header.endPointID) <<
"\n"
154 <<
" Word2 " <<
header.word2 <<
" (0x" << std::hex <<
header.word2 << std::dec <<
")\n"
155 <<
" Bunch crossing: " <<
header.bunchCrossing <<
"\n"
156 <<
" Orbit: " <<
header.orbit <<
"\n"
157 <<
" Word3 " <<
header.word3 <<
" (0x" << std::hex <<
header.word3 << std::dec <<
")\n"
158 <<
" Word4 " <<
header.word4 <<
" (0x" << std::hex <<
header.word4 << std::dec <<
")\n"
159 <<
" Trigger Type: " << std::bitset<64>(
header.triggerType) <<
"\n"
160 <<
" Page count: " <<
header.pageCnt <<
"\n"
161 <<
" Stop: " << (
static_cast<bool>(
header.stop) ?
"yes" :
"no") <<
"\n"
162 <<
" Word5 " <<
header.word5 <<
" (0x" << std::hex <<
header.word5 << std::dec <<
")\n"
163 <<
" Word6 " <<
header.word6 <<
" (0x" << std::hex <<
header.word6 << std::dec <<
")\n"
164 <<
" Detector Field: " <<
header.detectorField <<
"\n"
165 <<
" PAR: " <<
header.detectorPAR <<
"\n"
166 <<
" Word7 " <<
header.word7 <<
" (0x" << std::hex <<
header.word7 << std::dec <<
")\n"
173 stream <<
"Raw data header V6:\n"
174 <<
" Word0 " <<
header.word0 <<
" (0x" << std::hex <<
header.word0 << std::dec <<
")\n"
175 <<
" Version: " <<
header.version <<
"\n"
176 <<
" Header size: " <<
header.headerSize <<
"\n"
177 <<
" Source ID: " <<
header.sourceID <<
"\n"
178 <<
" FEE ID: " <<
header.feeId <<
"\n"
179 <<
" Priority: " <<
header.priority <<
"\n"
180 <<
" Word1 " <<
header.word1 <<
" (0x" << std::hex <<
header.word1 << std::dec <<
")\n"
181 <<
" Offset to next: " <<
header.offsetToNext <<
"\n"
182 <<
" Payload size (B):" <<
header.memorySize <<
"\n"
183 <<
" Packet counter: " <<
static_cast<int>(
header.packetCounter) <<
"\n"
184 <<
" Link ID: " <<
static_cast<int>(
header.linkID) <<
"\n"
185 <<
" Card ID: " <<
header.cruID <<
"\n"
186 <<
" Endpoint: " <<
static_cast<int>(
header.endPointID) <<
"\n"
187 <<
" Word2 " <<
header.word2 <<
" (0x" << std::hex <<
header.word2 << std::dec <<
")\n"
188 <<
" Bunch crossing: " <<
header.bunchCrossing <<
"\n"
189 <<
" Orbit: " <<
header.orbit <<
"\n"
190 <<
" Word3 " <<
header.word3 <<
" (0x" << std::hex <<
header.word3 << std::dec <<
")\n"
191 <<
" Word4 " <<
header.word4 <<
" (0x" << std::hex <<
header.word4 << std::dec <<
")\n"
192 <<
" Trigger Type: " << std::bitset<64>(
header.triggerType) <<
"\n"
193 <<
" Page count: " <<
header.pageCnt <<
"\n"
194 <<
" Stop: " << (
static_cast<bool>(
header.stop) ?
"yes" :
"no") <<
"\n"
195 <<
" Word5 " <<
header.word5 <<
" (0x" << std::hex <<
header.word5 << std::dec <<
")\n"
196 <<
" Word6 " <<
header.word6 <<
" (0x" << std::hex <<
header.word6 << std::dec <<
")\n"
197 <<
" Detector Field: " <<
header.detectorField <<
"\n"
198 <<
" PAR: " <<
header.detectorPAR <<
"\n"
199 <<
" Word7 " <<
header.word7 <<
" (0x" << std::hex <<
header.word7 << std::dec <<
")\n"
206 stream <<
"Raw data header V7:\n"
207 <<
" Word0 " <<
header.word0 <<
" (0x" << std::hex <<
header.word0 << std::dec <<
")\n"
208 <<
" Version: " <<
header.version <<
"\n"
209 <<
" Header size: " <<
header.headerSize <<
"\n"
210 <<
" Source ID: " <<
header.sourceID <<
"\n"
211 <<
" FEE ID: " <<
header.feeId <<
"\n"
212 <<
" Priority: " <<
header.priority <<
"\n"
213 <<
" Word1 " <<
header.word1 <<
" (0x" << std::hex <<
header.word1 << std::dec <<
")\n"
214 <<
" Offset to next: " <<
header.offsetToNext <<
"\n"
215 <<
" Payload size (B):" <<
header.memorySize <<
"\n"
216 <<
" Packet counter: " <<
static_cast<int>(
header.packetCounter) <<
"\n"
217 <<
" Link ID: " <<
static_cast<int>(
header.linkID) <<
"\n"
218 <<
" Card ID: " <<
header.cruID <<
"\n"
219 <<
" Endpoint: " <<
static_cast<int>(
header.endPointID) <<
"\n"
220 <<
" Word2 " <<
header.word2 <<
" (0x" << std::hex <<
header.word2 << std::dec <<
")\n"
221 <<
" Bunch crossing: " <<
header.bunchCrossing <<
"\n"
222 <<
" Orbit: " <<
header.orbit <<
"\n"
223 <<
" Word3 " <<
header.word3 <<
" (0x" << std::hex <<
header.word3 << std::dec <<
")\n"
224 <<
" Data format: " <<
header.dataFormat <<
"\n"
225 <<
" Word4 " <<
header.word4 <<
" (0x" << std::hex <<
header.word4 << std::dec <<
")\n"
226 <<
" Trigger Type: " << std::bitset<64>(
header.triggerType) <<
"\n"
227 <<
" Page count: " <<
header.pageCnt <<
"\n"
228 <<
" Stop: " << (
static_cast<bool>(
header.stop) ?
"yes" :
"no") <<
"\n"
229 <<
" Word5 " <<
header.word5 <<
" (0x" << std::hex <<
header.word5 << std::dec <<
")\n"
230 <<
" Word6 " <<
header.word6 <<
" (0x" << std::hex <<
header.word6 << std::dec <<
")\n"
231 <<
" Detector Field: " <<
header.detectorField <<
"\n"
232 <<
" PAR: " <<
header.detectorPAR <<
"\n"
233 <<
" Word7 " <<
header.word7 <<
" (0x" << std::hex <<
header.word7 << std::dec <<
")\n"
std::vector< std::string > header
GLuint GLuint64EXT address
GLuint GLsizei const GLchar * message
std::istream & operator>>(std::istream &stream, o2::header::RAWDataHeaderV4 &header)
std::ostream & operator<<(std::ostream &stream, const o2::header::RAWDataHeaderV4 &header)