|
|
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 + 2;
60 for (
unsigned nWord = 2; nWord <
nWords_; nWord += 2) {
61 uint32_t raw_data_spare =
payload[startIdx + 1];
62 uint32_t raw_data_00_31 =
payload[
i++];
63 uint32_t raw_data_32_63 =
payload[
i++];
64 LogDebug(
"L1T") <<
"raw_data_spare = 0x" << hex << raw_data_spare <<
" raw_data_00_31 = 0x" << raw_data_00_31
65 <<
" raw_data_32_63 = 0x" << raw_data_32_63;
68 LogDebug(
"L1T") <<
"Muon hwPt zero. Skip.";
77 LogDebug(
"L1T") <<
"Mu" << nWord / 2 <<
": eta " <<
mu.hwEta() <<
" phi " <<
mu.hwPhi() <<
" pT " <<
mu.hwPt()
78 <<
" iso " <<
mu.hwIso() <<
" qual " <<
mu.hwQual() <<
" charge " <<
mu.hwCharge()
79 <<
" charge valid " <<
mu.hwChargeValid();
85 <<
" are required. Not unpacking the data for BX " <<
bx <<
".";
static constexpr unsigned nWords_
static constexpr unsigned bxzs_enable_shift_
static constexpr unsigned ptShift_
static void fillMuon(Muon &mu, uint32_t raw_data_spare, uint32_t raw_data_00_31, uint32_t raw_data_32_63, int fed, unsigned int fw, int muInBx)
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 constexpr 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()