6 namespace Phase2Tracker {
31 LogTrace(
"Phase2TrackerFEDBuffer") <<
"[Phase2Tracker::Phase2TrackerFEDHeader::" << __func__ <<
"]: \n"
32 <<
" Tracker Header contents:\n"
36 <<
" -- Condition Data : " << (
conditionData_ ?
"Present" :
"Absent")
38 <<
" -- Data Type : " << (
dataType_ ?
"Real" :
"Fake") <<
"\n"
39 <<
" -- Glib Stat registers : " << std::hex << std::setw(16) <<
glibStatusCode_
47 std::ostringstream
ss;
48 ss <<
"[Phase2Tracker::Phase2TrackerFEDHeader::" << __func__ <<
"] ";
49 ss <<
"Invalid Data Format Version in Traker Header : ";
68 std::ostringstream
ss;
69 ss <<
"[Phase2Tracker::Phase2TrackerFEDHeader::" << __func__ <<
"] ";
70 ss <<
"Invalid Header Format in Traker Header : ";
93 std::ostringstream
ss;
94 ss <<
"[Phase2Tracker::Phase2TrackerFEDHeader::" << __func__ <<
"] ";
95 ss <<
"Invalid Readout Mode in Traker Header : ";
111 std::vector<bool>
status(16,
false);
112 for (
int i = 0;
i < 16;
i++) {
113 status[
i] = (FE_status >>
i) & 0x1;
141 std::vector<uint8_t> cbc_status;
142 if (status_size == 8) {
143 int num_bytes = cbc_num;
144 int current_byte = 5;
145 while (num_bytes > 0) {
146 cbc_status.push_back(static_cast<uint8_t>((data64 >> current_byte * 8) & 0xFF));
147 if (current_byte == 0) {
155 }
else if (status_size == 1) {
156 int current_bit = 47;
157 int num_bits = cbc_num;
158 while (num_bits > 0) {
159 cbc_status.push_back(static_cast<uint8_t>((data64 >> current_bit) & 0x1));
160 if (current_bit == 0) {
183 int num_add_words64 = (cbc_num * status_size - 48 + 64 - 1) / 64;
unsigned long long uint64_t
void printHex(const void *pointer, const size_t lengthInBytes, std::ostream &os)
uint64_t extract64(trackerHeader_m mask, trackerHeader_s shift, uint64_t data)
uint64_t read64(int offset, const uint8_t *buffer)