9 unsigned int blockId =
block.header().getID();
10 LogDebug(
"L1T") <<
"Block ID: " << blockId <<
" size: " <<
block.header().getSize();
15 (
bool)((
block.header().getFlags() >> 1) & 0x01);
18 block.getBxBlocks((
unsigned int)6,
true);
21 block.getBxBlocks((
unsigned int)6,
false);
24 <<
" ZS_enabled->" << ZS_enabled <<
" isTriggeringAlgo->" <<
isTriggeringAlgo <<
" isKalman->" 36 if (!bxBlocks.empty()) {
37 nBX = bxBlocks[0].header().getTotalBx();
41 res->setBXRange(-2, 2);
42 LogDebug(
"L1T") <<
"No BXs included in the given Block. Set the BXRange to be (-2,2).";
48 int processor =
block.amc().getBoardID() - 1;
49 if (processor < 0 || processor > 11) {
50 edm::LogInfo(
"L1T") <<
"Processor found out of range, it will be calculated by the old way";
51 if (
block.amc().getAMCNumber() % 2 != 0)
52 processor =
block.amc().getAMCNumber() / 2;
54 processor = 6 + (
block.amc().getAMCNumber() / 2 - 1);
57 for (
const auto &bxBlock : bxBlocks) {
58 int ibx = bxBlock.header().getBx();
60 for (
auto iw = 0; iw < 6; iw += 2) {
61 uint32_t raw_first = bxBlock.payload()[iw];
62 uint32_t raw_secnd = bxBlock.payload()[iw + 1];
64 LogDebug(
"L1T") <<
"Raw data is zero";
72 if (muCand.
hwPt() == 0) {
83 res->push_back(ibx, muCand);
const int hwPhi() const
Get compressed local phi (returned int * 2*pi/576 = local phi in rad)
bool unpack(const Block &block, UnpackerCollections *coll) override
void getBXRange(int nbx, int &first, int &last)
const int hwPt() const
Get compressed pT (returned int * 0.5 = pT (GeV))
const int hwEta() const
Get compressed eta (returned int * 0.010875 = eta)
Log< level::Info, false > LogInfo
const int hwPtUnconstrained() const
Get second compressed pT (returned int * 1.0 = pT (GeV))
static void fillRegionalMuonCand(RegionalMuonCand &mu, uint32_t raw_data_00_31, uint32_t raw_data_32_63, int proc, tftype tf, bool isKbmtf, bool useOmtfDisplacementInfo, bool useEmtfDisplacementInfo)
std::vector< BxBlock > BxBlocks
#define DEFINE_L1T_UNPACKER(type)