Implements l1t::Unpacker.
Definition at line 17 of file MuonUnpacker.cc.
References l1t::Block::amc(), bxzs_enable_shift_, coll, Exception, fed_, l1t::Block::getBxBlocks(), l1t::getBXRange(), l1t::BlockHeader::getFlags(), l1t::BlockHeader::getID(), l1t::BlockHeader::getSize(), l1t::BxBlockHeader::getTotalBx(), l1t::Block::header(), createfilelist::int, LogDebug, muonCopy_, nWords_, jets_cff::payload, l1t::Block::payload(), res_, BXVector< T >::setBXRange(), unpackBx(), and globals_cff::x1.
Referenced by ~MuonUnpacker().
19 LogDebug(
"L1T") <<
"Block ID = " <<
block.header().getID() <<
" size = " <<
block.header().getSize();
22 if (
block.header().getSize() < 1) {
28 int nBX, firstBX, lastBX;
33 BxBlockHeader bxHeader(
payload.at(0));
34 nBX = bxHeader.getTotalBx();
43 LogDebug(
"L1T") <<
"nBX = " << nBX <<
" first BX = " << firstBX <<
" lastBX = " << lastBX;
47 for (
const auto& bxBlock : bxBlocks) {
49 const auto bx = bxBlock.header().getBx();
50 if (bx < firstBX || bx > lastBX) {
51 throw cms::Exception(
"CorruptData") <<
"Corrupt RAW data from FED " <<
fed_ <<
", AMC " <<
block.amc().getAMCNumber() <<
". BX number " << bx <<
" in BX header is outside of the BX range [" << firstBX <<
"," << lastBX <<
"] defined in the block header.";
static unsigned bxzs_enable_shift_
void getBXRange(int nbx, int &first, int &last)
void unpackBx(int bx, const std::vector< uint32_t > &payload, unsigned int startIdx=0)
void setBXRange(int bxFirst, int bxLast)