46 unsigned int amc = block.
amc().getAMCNumber();
47 unsigned int bxid = block.
amc().getBX();
49 if( (amc-1) != ((bxid-1+3)%9) )
return true;
50 LogDebug(
"L1T") <<
"Unpacking AMC " << amc <<
" for BX " << bxid;
57 res1_->setBXRange(0,0);
58 res2_->setBXRange(0,0);
59 res3_->setBXRange(0,0);
60 res4_->setBXRange(0,0);
66 int unsigned ftau = 5;
67 int unsigned fjet = 7;
75 uint32_t raw_data = block.
payload()[fet];
82 et.
setHwPt( ( uint32_t(raw_data & 0xFFFFFF) << 16 ) >> 16 );
86 et.
setHwPt( ( uint32_t(raw_data) ) );
90 et.
setHwPt( ( uint32_t(raw_data) ) );
94 et.
setHwPt( ( uint32_t(raw_data & 0xFFFFFF) << 16 ) >> 16 );
98 et.
setHwPt( ( uint32_t(raw_data) ) );
102 et.
setHwPt( ( uint32_t(raw_data) ) );
110 res2_->push_back(0,et);
115 raw_data = block.
payload()[fht];
120 ht.
setHwPt( ( uint32_t(raw_data & 0xFFFFFF) << 16 ) >> 16 );
133 res2_->push_back(0,ht);
136 for (
unsigned nJet=0; nJet < 2; nJet++){
138 raw_data = block.
payload()[fjet+nJet];
149 int mpEta = etasign*(raw_data & 0x3F);
151 jet.
setHwPhi((raw_data >> 6) & 0x7F);
152 jet.
setHwPt((raw_data >> 13) & 0xFFFF);
158 res1_->push_back(0,jet);
167 for (
unsigned nEG=0; nEG < 2; nEG++){
169 raw_data = block.
payload()[feg+nEG];
180 eg.
setHwEta(etasign*((raw_data >> 3) & 0x3F));
181 eg.
setHwPhi((raw_data >> 9) & 0x7F);
182 eg.
setHwPt((raw_data >> 20) & 0xFFF);
190 res3_->push_back(0,eg);
198 for (
unsigned nTau=0; nTau < 2; nTau++){
200 raw_data = block.
payload()[ftau+nTau];
211 tau.
setHwEta(etasign*((raw_data >> 3) & 0x3F));
212 tau.
setHwPhi((raw_data >> 9) & 0x7F);
213 tau.
setHwPt((raw_data >> 20) & 0xFFF);
220 res4_->push_back(0,tau);
BlockHeader header() const
std::vector< uint32_t > payload() const
void setType(EtSumType type)
#define DEFINE_L1T_UNPACKER(type)
virtual void setP4(const LorentzVector &p4) final
set 4-momentum
void amc(const amc::Header &h)
virtual bool unpack(const Block &block, UnpackerCollections *coll) override