28 int nBX, firstBX, lastBX;
41 unsigned int linkId = (block.
header().
getID() - 1) / 2;
96 LogDebug(
"L1T") <<
"nBX = " << nBX <<
" first BX = " << firstBX <<
" lastBX = " << lastBX;
100 for (
const auto& bxBlock : bxBlocks) {
101 unpackBx(bxBlock.header().getBx(), bxBlock.payload());
110 unsigned int i = startIdx;
112 if (i +
nWords_ <= payload.size()) {
113 unsigned int muonCnt = 0;
114 for (
unsigned nWord = 0; nWord <
nWords_; nWord += 2, ++muonCnt) {
115 uint32_t raw_data_00_31 = payload[i++];
116 uint32_t raw_data_32_63 = payload[i++];
117 LogDebug(
"L1T") <<
"raw_data_00_31 = 0x" << hex << raw_data_00_31 <<
" raw_data_32_63 = 0x" << raw_data_32_63;
120 LogDebug(
"L1T") <<
"Muon hwPt zero. Skip.";
140 edm::LogWarning(
"L1T") <<
"Only " << payload.size() - i <<
" 32 bit words in this BX but " <<
nWords_ <<
" are required. Not unpacking the data for BX " << bx <<
".";
void getBXRange(int nbx, int &first, int &last)
BlockHeader header() const
std::vector< uint32_t > payload() const
static const unsigned ptShift_
void setBXRange(int bxFirst, int bxLast)
BxBlocks getBxBlocks(unsigned int payloadWordsPerBx, bool bxHeader) const
#define DEFINE_L1T_UNPACKER(type)
int hwChargeValid() const
void push_back(int bx, T object)
static const unsigned ptMask_
static void fillMuon(Muon &, uint32_t, uint32_t, int, unsigned int)