Implements l1t::Unpacker.
Definition at line 15 of file MPUnpacker.cc.
References l1t::Block::amc(), l1t::CaloTools::caloEta(), coll, DEFINE_L1T_UNPACKER, ModuleToSequenceAssign::EGamma, stringResolutionProvider_cfi::et, l1t::BlockHeader::getID(), l1t::BlockHeader::getSize(), l1t::Block::header(), l1t::L1Candidate::hwEta(), l1t::L1Candidate::hwPhi(), l1t::L1Candidate::hwPt(), l1t::L1Candidate::hwQual(), metsig::jet, nanoDQM_cff::Jet, l1t::EtSum::kTotalEt, l1t::EtSum::kTotalEtx, l1t::EtSum::kTotalEty, l1t::EtSum::kTotalHt, l1t::EtSum::kTotalHtx, l1t::EtSum::kTotalHty, LogDebug, l1t::CaloTools::p4MP(), l1t::Block::payload(), l1t::L1Candidate::setHwEta(), l1t::L1Candidate::setHwIso(), l1t::L1Candidate::setHwPhi(), l1t::L1Candidate::setHwPt(), l1t::L1Candidate::setHwQual(), reco::LeafCandidate::setP4(), l1t::EtSum::setType(), metsig::tau, and globals_cff::x1.
18 LogDebug(
"L1T") <<
"Block ID = " <<
block.header().getID() <<
" size = " <<
block.header().getSize() <<
" AMC = " <<
block.amc().getAMCNumber();
21 unsigned int amc =
block.amc().getAMCNumber();
22 unsigned int bxid =
block.amc().getBX();
23 LogDebug(
"L1T") <<
"Unpacking AMC " << amc <<
" for BX " << bxid;
25 auto res1_ =
static_cast<CaloCollections*
>(
coll)->getMPJets();
26 auto res2_ =
static_cast<CaloCollections*
>(
coll)->getMPEtSums();
27 auto res3_ =
static_cast<CaloCollections*
>(
coll)->getMPEGammas();
28 auto res4_ =
static_cast<CaloCollections*
>(
coll)->getMPTaus();
30 res1_->setBXRange(0,0);
31 res2_->setBXRange(0,0);
32 res3_->setBXRange(0,0);
33 res4_->setBXRange(0,0);
38 int unsigned fjet = 6;
40 int unsigned ftau = 4;
47 uint32_t raw_data =
block.payload()[fet];
51 et.
setHwPt( static_cast<int32_t>( uint32_t(raw_data & 0xFFFFFF) << 16 ) >> 16 );
53 switch(
block.header().getID()){
65 res2_->push_back(0,et);
70 raw_data =
block.payload()[fht];
75 ht.
setHwPt( static_cast<int32_t>( uint32_t(raw_data & 0xFFFFFF) << 16 ) >> 16 );
76 switch(
block.header().getID()){
88 res2_->push_back(0,ht);
91 for (
unsigned nJet=0; nJet < 2; nJet++){
93 raw_data =
block.payload()[fjet+nJet];
101 if ((
block.header().getID() == 125) ||
102 (
block.header().getID() == 131) ||
103 (
block.header().getID() == 129)) {
107 LogDebug(
"L1") <<
"block ID=" <<
block.header().getID() <<
" etasign=" << etasign;
109 int mpEta = etasign*(raw_data & 0x3F);
111 jet.
setHwPhi((raw_data >> 6) & 0x7F);
112 jet.
setHwPt((raw_data >> 13) & 0xFFFF);
117 res1_->push_back(0,jet);
159 for (
unsigned nEG=0; nEG < 2; nEG++){
161 raw_data =
block.payload()[feg+nEG];
169 if ((
block.header().getID() == 125) ||
170 (
block.header().getID() == 131) ||
171 (
block.header().getID() == 129)) {
175 LogDebug(
"L1") <<
"block ID=" <<
block.header().getID() <<
" etasign=" << etasign;
177 eg.
setHwEta(etasign*((raw_data >> 4) & 0x3F));
178 eg.
setHwPhi((raw_data >> 10) & 0x7F);
179 eg.
setHwPt((raw_data >> 21) & 0x3FF);
180 eg.
setHwQual(((raw_data >> 3) & 0
x1) + (((raw_data >> 1) & 0
x1) << 2));
186 res3_->push_back(0,eg);
194 for (
unsigned nTau=0; nTau < 2; nTau++){
196 raw_data =
block.payload()[ftau+nTau];
204 if ((
block.header().getID() == 125) ||
205 (
block.header().getID() == 131) ||
206 (
block.header().getID() == 129)) {
210 LogDebug(
"L1") <<
"block ID=" <<
block.header().getID() <<
" etasign=" << etasign;
212 tau.
setHwEta(etasign*((raw_data >> 4) & 0x3F));
213 tau.
setHwPhi((raw_data >> 10) & 0x7F);
214 tau.
setHwPt((raw_data >> 21) & 0x3FF);
215 tau.
setHwQual(((raw_data >> 3) & 0x1) + (((raw_data >> 1) & 0x1) << 2));
228 res4_->push_back(0,tau);
void setType(EtSumType type)
et
define resolution functions of each parameter
void setP4(const LorentzVector &p4) final
set 4-momentum