28 using namespace l1t::stage2::layer2;
35 int firstBX = -(ceil((
double)nBX/2.)-1);
38 lastBX = ceil((
double)nBX/2.);
40 lastBX = ceil((
double)nBX/2.)-1;
44 res_->setBXRange(firstBX, lastBX);
46 LogDebug(
"L1T") <<
"nBX = " << nBX <<
" first BX = " << firstBX <<
" lastBX = " << lastBX;
49 for (
int bx=firstBX; bx<=lastBX; bx++){
53 uint32_t raw_data = block.
payload().at(iFrame);
62 if (jet.
hwPt()==0)
continue;
64 int abs_eta = (raw_data >> 11) & 0x7F;
65 if ((raw_data >> 18) & 0x1) {
71 jet.
setHwPhi((raw_data >> 19) & 0xFF);
74 LogDebug(
"L1T") <<
"Jet: eta " << jet.
hwEta() <<
" phi " << jet.
hwPhi() <<
" pT " << jet.
hwPt() <<
" qual " << jet.
hwQual() <<
" bx " << bx;
78 res_->push_back(bx, jet);
BlockHeader header() const
std::vector< uint32_t > payload() const
#define DEFINE_L1T_UNPACKER(type)
virtual bool unpack(const Block &block, UnpackerCollections *coll) override
unsigned int nOutputFramePerBX
virtual void setP4(const LorentzVector &p4) final
set 4-momentum