21 <<
" AMC = " << block.
amc().getAMCNumber();
24 unsigned int amc = block.
amc().getAMCNumber();
25 unsigned int bxid = block.
amc().getBX();
26 LogDebug(
"L1T") <<
"Unpacking AMC " << amc <<
" for BX " << bxid;
33 res1_->setBXRange(0, 0);
34 res2_->setBXRange(0, 0);
35 res3_->setBXRange(0, 0);
36 res4_->setBXRange(0, 0);
42 int unsigned ftau = 5;
43 int unsigned fjet = 7;
49 uint32_t raw_data = block.
payload()[fet];
56 et.
setHwPt((uint32_t(raw_data & 0xFFFFFF) << 16) >> 16);
60 et.
setHwPt((uint32_t(raw_data)));
64 et.
setHwPt((uint32_t(raw_data)));
68 et.
setHwPt((uint32_t(raw_data & 0xFFFFFF) << 16) >> 16);
72 et.
setHwPt((uint32_t(raw_data)));
76 et.
setHwPt((uint32_t(raw_data)));
84 res2_->push_back(0, et);
88 raw_data = block.
payload()[fht];
93 ht.
setHwPt((uint32_t(raw_data & 0xFFFFFF) << 16) >> 16);
119 res2_->push_back(0, ht);
122 for (
unsigned nJet = 0; nJet < 2; nJet++) {
123 raw_data = block.
payload()[fjet + nJet];
134 int mpEta = etasign * (raw_data & 0x3F);
136 jet.
setHwPhi((raw_data >> 6) & 0x7F);
137 jet.
setHwPt((raw_data >> 13) & 0xFFFF);
140 LogDebug(
"L1T") <<
"Jet: eta " << jet.
hwEta() <<
" phi " << jet.
hwPhi() <<
" pT " << jet.
hwPt() <<
" qual "
144 res1_->push_back(0, jet);
151 for (
unsigned nEG = 0; nEG < 2; nEG++) {
152 raw_data = block.
payload()[feg + nEG];
163 eg.
setHwEta(etasign * ((raw_data >> 3) & 0x3F));
164 eg.
setHwPhi((raw_data >> 9) & 0x7F);
165 eg.
setHwPt((raw_data >> 20) & 0xFFF);
169 LogDebug(
"L1T") <<
"Egamma: eta " << eg.
hwEta() <<
" phi " << eg.
hwPhi() <<
" pT " << eg.
hwPt() <<
" qual "
173 res3_->push_back(0, eg);
180 for (
unsigned nTau = 0; nTau < 2; nTau++) {
181 raw_data = block.
payload()[ftau + nTau];
192 tau.
setHwEta(etasign * ((raw_data >> 3) & 0x3F));
193 tau.
setHwPhi((raw_data >> 9) & 0x7F);
194 tau.
setHwPt((raw_data >> 20) & 0xFFF);
195 tau.
setHwIso((raw_data >> 1) & 0x3);
198 LogDebug(
"L1T") <<
"Tau: eta " << tau.
hwEta() <<
" phi " << tau.
hwPhi() <<
" pT " << tau.
hwPt() <<
" qual "
202 res4_->push_back(0, tau);
const std::vector< uint32_t > & payload() const
BlockHeader header() const
void setType(EtSumType type)
#define DEFINE_L1T_UNPACKER(type)
void amc(const amc::Header &h)
void setP4(const LorentzVector &p4) final
set 4-momentum
bool unpack(const Block &block, UnpackerCollections *coll) override