|
|
Go to the documentation of this file.
14 LogDebug(
"L1T") <<
"Block ID = " <<
block.header().getID() <<
" size = " <<
block.header().getSize();
17 if (
block.header().getSize() < 1) {
36 res_ = static_cast<L1TObjectCollections*>(coll)->getMuons(
muonCopy_);
42 for (
const auto& bxBlock : bxBlocks) {
44 const auto bx = bxBlock.header().getBx();
45 if (bx < firstBX || bx >
lastBX) {
47 <<
"Corrupt RAW data from FED " <<
fed_ <<
", AMC " <<
block.amc().getAMCNumber() <<
". BX number " <<
bx
48 <<
" in BX header is outside of the BX range [" <<
firstBX <<
"," <<
lastBX
49 <<
"] defined in the block header.";
57 unsigned int i = startIdx;
60 for (
unsigned nWord = 0; nWord <
nWords_; nWord += 2) {
61 uint32_t raw_data_00_31 =
payload[
i++];
62 uint32_t raw_data_32_63 =
payload[
i++];
63 LogDebug(
"L1T") <<
"raw_data_00_31 = 0x" << hex << raw_data_00_31 <<
" raw_data_32_63 = 0x" << raw_data_32_63;
66 LogDebug(
"L1T") <<
"Muon hwPt zero. Skip.";
74 LogDebug(
"L1T") <<
"Mu" << nWord / 2 <<
": eta " <<
mu.hwEta() <<
" phi " <<
mu.hwPhi() <<
" pT " <<
mu.hwPt()
75 <<
" iso " <<
mu.hwIso() <<
" qual " <<
mu.hwQual() <<
" charge " <<
mu.hwCharge()
76 <<
" charge valid " <<
mu.hwChargeValid();
82 <<
" are required. Not unpacking the data for BX " <<
bx <<
".";
static constexpr unsigned nWords_
static constexpr unsigned bxzs_enable_shift_
static const unsigned ptShift_
static void fillMuon(Muon &, uint32_t, uint32_t, int, unsigned int)
constexpr int32_t ceil(float num)
bool unpack(const Block &block, UnpackerCollections *coll) override
void unpackBx(int bx, const std::vector< uint32_t > &payload, unsigned int startIdx=0)
static const unsigned ptMask_
#define DEFINE_L1T_UNPACKER(type)
void getBXRange(int nbx, int &first, int &last)
void setBXRange(int bxFirst, int bxLast)
void push_back(int bx, T object)
unsigned int getAlgoVersion()