Skip to content

Commit

Permalink
Merge pull request #13787 from cms-l1t-offline/l1t-fixCaloPack-80x
Browse files Browse the repository at this point in the history
Fixes in L1T Calo packers - useful for data taking - 81x
  • Loading branch information
davidlange6 committed Mar 22, 2016
2 parents 8580f6e + 3592e35 commit d19277c
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 5 deletions.
Expand Up @@ -40,8 +40,8 @@ namespace stage2 {
std::min(j->hwPt(), 0x1FF) |
packed_eta << 9 |
(j->hwPhi() & 0xFF) << 17 |
(j->hwIso() & 0x1) << 25 |
(j->hwQual() & 0x7) << 26;
(j->hwIso() & 0x3) << 25 |
(j->hwQual() & 0x7) << 27;

if (load1.size() < l1t::stage2::layer2::demux::nEGPerLink) load1.push_back(word);
else load2.push_back(word);
Expand Down
16 changes: 14 additions & 2 deletions EventFilter/L1TRawToDigi/src/implementations_stage2/EtSumPacker.cc
Expand Up @@ -25,17 +25,29 @@ namespace stage2 {
edm::Handle<EtSumBxCollection> etSums;
event.getByToken(static_cast<const CaloTokens*>(toks)->getEtSumToken(), etSums);

std::vector<uint32_t> load;
uint32_t et_word = 0;
uint32_t ht_word = 0;
uint32_t met_word = 0;
uint32_t mht_word = 0;

for (int i = etSums->getFirstBX(); i <= etSums->getLastBX(); ++i) {
for (auto j = etSums->begin(i); j != etSums->end(i); ++j) {
uint32_t word = std::min(j->hwPt(), 0xFFF);
if ((j->getType()==l1t::EtSum::kMissingEt) || (j->getType()==l1t::EtSum::kMissingHt))
word = word | ((j->hwPhi() & 0xFF) << 12);
load.push_back(word);

if (j->getType()==l1t::EtSum::kTotalEt) et_word = word;
if (j->getType()==l1t::EtSum::kTotalHt) ht_word = word;
if (j->getType()==l1t::EtSum::kMissingEt) met_word = word;
if (j->getType()==l1t::EtSum::kMissingHt) mht_word = word;
}
}

std::vector<uint32_t> load;
load.push_back(et_word);
load.push_back(ht_word);
load.push_back(met_word);
load.push_back(mht_word);
while (load.size()<l1t::stage2::layer2::demux::nOutputFramePerBX) load.push_back(0);

return {Block(21, load)};
Expand Down
Expand Up @@ -88,8 +88,8 @@ void l1t::Stage2Layer2DemuxSumsAlgoFirmwareImp1::processEvent(const std::vector<
l1t::EtSum htSumMissingHt(p4,l1t::EtSum::EtSumType::kMissingHt,mht,0,mhtPhi>>4,0);

outputSums.push_back(etSumTotalEt);
outputSums.push_back(etSumMissingEt);
outputSums.push_back(htSumht);
outputSums.push_back(etSumMissingEt);
outputSums.push_back(htSumMissingHt);

}

0 comments on commit d19277c

Please sign in to comment.