15 LogDebug(
"L1T") <<
"Block ID = " <<
block.header().getID() <<
" size = " <<
block.header().getSize();
18 if (
block.header().getSize() < 1) {
37 unsigned int linkId = (
block.header().getID() - 1) / 2;
88 <<
" not associated with intermediate muons. Skip.";
97 for (
const auto& bxBlock : bxBlocks) {
98 unpackBx(bxBlock.header().getBx(), bxBlock.payload());
104 unsigned int i = startIdx;
107 unsigned int muonCnt = 0;
108 for (
unsigned nWord = 0; nWord <
nWords_; nWord += 2, ++muonCnt) {
109 uint32_t raw_data_00_31 =
payload[
i++];
110 uint32_t raw_data_32_63 =
payload[
i++];
111 LogDebug(
"L1T") <<
"raw_data_00_31 = 0x" << hex << raw_data_00_31 <<
" raw_data_32_63 = 0x" << raw_data_32_63;
114 LogDebug(
"L1T") <<
"Muon hwPt zero. Skip.";
125 LogDebug(
"L1T") <<
"Mu" << nWord / 2 <<
": eta " <<
mu.hwEta() <<
" phi " <<
mu.hwPhi() <<
" pT " <<
mu.hwPt()
126 <<
" iso " <<
mu.hwIso() <<
" qual " <<
mu.hwQual() <<
" charge " <<
mu.hwCharge()
127 <<
" charge valid " <<
mu.hwChargeValid();
137 <<
" are required. Not unpacking the data for BX " <<
bx <<
".";
constexpr int32_t ceil(float num)
unsigned int getAlgoVersion()
void getBXRange(int nbx, int &first, int &last)
static void fillIntermediateMuon(Muon &mu, uint32_t raw_data_00_31, uint32_t raw_data_32_63, unsigned int fw)
static constexpr unsigned ptShift_
void setBXRange(int bxFirst, int bxLast)
#define DEFINE_L1T_UNPACKER(type)
Log< level::Warning, false > LogWarning
static constexpr unsigned ptMask_
void push_back(int bx, T object)