12#ifndef ALICEO2_CPV_RAWFORMATS_H
13#define ALICEO2_CPV_RAWFORMATS_H
41 CpvWord(std::vector<char>::const_iterator
b, std::vector<char>::const_iterator e)
45 for (
int i = 0;
i < 10 &&
b != e;
i++,
b++) {
52 return (
mBytes[9] <
static_cast<unsigned char>(24));
72 CpvHeader(std::vector<char>::const_iterator
b, std::vector<char>::const_iterator e)
74 for (
int i = 0;
i < 10 &&
b != e;
i++,
b++) {
84 mBytes[0] = (0x010 & 0x0ff);
85 mBytes[1] = ((0x010 & 0xf00) >> 8)
87 mBytes[2] = (orbitBC.bc & 0x00ff);
88 mBytes[3] = (orbitBC.bc & 0x0f00) >> 8;
89 mBytes[4] = (orbitBC.orbit & 0x000000ff);
90 mBytes[5] = (orbitBC.orbit & 0x0000ff00) >> 8;
91 mBytes[6] = (orbitBC.orbit & 0x00ff0000) >> 16;
92 mBytes[7] = (orbitBC.orbit & 0xff000000) >> 24;
100 uint16_t
bc()
const {
return static_cast<uint16_t
>(
mBytes[2]) +
static_cast<uint16_t
>((
mBytes[3] & 0x0f) << 8); }
111 CpvTrailer(std::vector<char>::const_iterator
b, std::vector<char>::const_iterator e)
113 for (
int i = 0;
i < 10 &&
b != e;
i++,
b++) {
119 mBytes[0] = bunchCrossing & 0x00ff;
120 mBytes[1] = ((bunchCrossing & 0x0f00) >> 8)
124 for (
int i = 3;
i < 8;
i++) {
uint16_t wordCounter() const
bool isAllDataSent() const
CpvTrailer(std::vector< char >::const_iterator b, std::vector< char >::const_iterator e)
CpvTrailer(unsigned short wordCounter, uint16_t bunchCrossing, bool isAllDataSent)
uint32_t cpvPadWord(int i) const
CpvWord(std::vector< char >::const_iterator b, std::vector< char >::const_iterator e)
GLboolean GLboolean GLboolean b
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
uint32_t dil
Bits 21 - 22 : dilogic (1..24)
uint32_t charge
Bits 0 - 11 : charge.
uint32_t address
Bits 12 - 17 : address (0..47)
uint32_t zero
Bits 23 - 23 : control bit (0 -> pad word, 1 -> FEE control word)
uint32_t gas
Bits 18 - 20 : gasiplex (1..10)