Definition at line 9 of file GlobalAlgBlkUnpacker.cc.
Implements l1t::Unpacker.
Definition at line 21 of file GlobalAlgBlkUnpacker.cc.
References coll, l1t::BlockHeader::getID(), l1t::BlockHeader::getSize(), l1t::Block::header(), LogDebug, l1t::Block::payload(), GlobalAlgBlk::setAlgoDecisionFinal(), and GlobalAlgBlk::setFinalOR().
24 LogDebug(
"L1T") <<
"Block ID = " <<
block.header().getID() <<
" size = " <<
block.header().getSize();
26 int nBX = int(ceil(
block.header().getSize() / 6.));
29 int firstBX = -(ceil((
double)nBX/2.)-1);
32 lastBX = ceil((
double)nBX/2.);
34 lastBX = ceil((
double)nBX/2.)-1;
37 auto res_ =
static_cast<GTCollections*
>(
coll)->getAlgs();
38 res_->setBXRange(firstBX, lastBX);
40 LogDebug(
"L1T") <<
"nBX = " << nBX <<
" first BX = " << firstBX <<
" lastBX = " << lastBX;
43 for (
int bx=firstBX; bx<=lastBX; bx++){
46 if(
block.header().getID()==1) {
48 LogDebug(
"L1T") <<
"Creating GT Algorithm Block for BX =" << bx;
50 res_->push_back(bx,talg);
59 int algOffset = (
block.header().getID()/2)*192;
61 for(
unsigned int wd=0; wd<
block.header().getSize(); wd++) {
62 uint32_t raw_data =
block.payload()[wd];
63 LogDebug(
"L1T") <<
" payload word " << wd <<
" 0x" << hex << raw_data <<
" offset=" << algOffset;
66 if(
block.header().getID()!=5 || wd<4) {
67 for(
unsigned int bt=0; bt<32; bt++) {
68 int val = ((raw_data >> bt) & 0x1);
71 }
else if(
block.header().getID()==5 && wd==4) {
74 LogDebug(
"L1T") <<
" Packing the FinalOR " << wd <<
" 0x" << hex << raw_data;
void setAlgoDecisionFinal(int bit, bool val)