10 LogDebug(
"L1T") <<
"AMCNo " <<
block.amc().getAMCNumber() <<
" Block ID = " <<
block.header().getID()
11 <<
" size = " <<
block.header().getSize();
15 unsigned int wdPerBX = 6;
16 unsigned int initialBlkID = 33;
17 unsigned int intermBlkID = 39;
18 unsigned int finalBlkID = 45;
21 unsigned int uGTBoard =
block.amc().getAMCNumber() - 1;
35 auto res_ = static_cast<GTCollections*>(coll)->getAlgs();
44 if (
block.header().getID() == initialBlkID && uGTBoard == 0) {
45 LogDebug(
"L1T") <<
"Creating GT Algorithm Block for BX =" <<
bx << std::endl;
47 res_->push_back(
bx, talg);
57 int algOffset = (
block.header().getID() - initialBlkID + 1) / 2;
58 algOffset = (algOffset % 3) * 192;
60 for (
unsigned int wd = 0; wd < wdPerBX; wd++) {
61 uint32_t raw_data =
block.payload()[wd +
numBX * wdPerBX];
62 LogDebug(
"L1T") <<
"BX " <<
bx <<
" payload word " << wd <<
" 0x" << hex << raw_data <<
" offset=" <<
dec
63 << algOffset << std::endl;
66 if ((
block.header().getID() != initialBlkID + 4 &&
block.header().getID() != intermBlkID + 4 &&
67 block.header().getID() != finalBlkID + 4) ||
69 for (
unsigned int bt = 0; bt < 32; bt++) {
70 int val = ((raw_data >> bt) & 0
x1);
71 unsigned int algBit = bt + wd * 32 + algOffset;
74 LogDebug(
"L1T") <<
"Found valid alg bit (" << algBit <<
") on bit (" << bt <<
") word (" << wd
75 <<
") algOffset (" << algOffset <<
") block ID (" <<
block.header().getID() <<
")"
76 <<
" Board# " << uGTBoard << std::endl;
77 if (
block.header().getID() < initialBlkID + 5) {
79 }
else if (
block.header().getID() < intermBlkID + 5) {
84 }
else if (
val == 1) {
85 LogDebug(
"L1T") <<
"Found invalid alg bit (" << algBit <<
") out of range on bit (" << bt <<
") word ("
86 << wd <<
") algOffset (" << algOffset <<
") block ID (" <<
block.header().getID() <<
")"
91 }
else if (
block.header().getID() == initialBlkID + 4 && (wd == 4 || wd == 5)) {
99 }
else if (
block.header().getID() == finalBlkID + 4 && wd == 4) {
101 if ((raw_data & 0x100) >> 8)
103 if ((raw_data & 0
x1) >> 0)
105 LogDebug(
"L1T") <<
" Packing the FinalOR " << wd <<
" 0x" << hex << raw_data << endl;
106 }
else if (
block.header().getID() == finalBlkID + 4 && wd == 5) {
109 LogDebug(
"L1T") <<
" Packing the Prescale Column " << wd <<
" 0x" << hex << raw_data << endl;
121 res_->set(
bx, 0, alg);