CMS 3D CMS Logo

EtSumPacker.cc
Go to the documentation of this file.
3 
4 #include "CaloTokens.h"
5 
7 #include "EtSumPacker.h"
8 
9 namespace l1t {
10 namespace stage2 {
11  Blocks
13  {
15  event.getByToken(static_cast<const CommonTokens*>(toks)->getEtSumToken(), etSums);
16 
17  std::vector<uint32_t> load;
18  int nBx = 0;
19 
20  for (int i = etSums->getFirstBX(); i <= etSums->getLastBX(); ++i) {
21 
22  uint32_t et_word = 0;
23  uint32_t ht_word = 0;
24  uint32_t met_word = 0;
25  uint32_t mht_word = 0;
26  uint32_t methf_word = 0;
27  uint32_t mhthf_word = 0;
28 
29  for (auto j = etSums->begin(i); j != etSums->end(i); ++j) {
30  uint32_t word = std::min(j->hwPt(), 0xFFF);
31  if ((j->getType()==l1t::EtSum::kMissingEt) || (j->getType()==l1t::EtSum::kMissingHt)
32  || (j->getType()==l1t::EtSum::kMissingEtHF) || (j->getType()==l1t::EtSum::kMissingHtHF))
33  word = word | ((j->hwPhi() & 0xFF) << 12);
34 
35  if (j->getType()==l1t::EtSum::kTotalEt) et_word |= word;
36  if (j->getType()==l1t::EtSum::kTotalEtEm) et_word |= (word << 12);
37  if (j->getType()==l1t::EtSum::kMinBiasHFP0) et_word |= (word << 28);
38  if (j->getType()==l1t::EtSum::kTotalHt) ht_word |= word;
39  if (j->getType()==l1t::EtSum::kMinBiasHFM0) ht_word |= (word << 28);
40  if (j->getType()==l1t::EtSum::kMissingEt) met_word |= word;
41  if (j->getType()==l1t::EtSum::kMinBiasHFP1) met_word |= (word << 28);
42  if (j->getType()==l1t::EtSum::kMissingHt) mht_word |= word;
43  if (j->getType()==l1t::EtSum::kMinBiasHFM1) mht_word |= (word << 28);
44  if (j->getType()==l1t::EtSum::kMissingEtHF) methf_word |= word;
45  if (j->getType()==l1t::EtSum::kMissingHtHF) mhthf_word |= word;
46  if (j->getType()==l1t::EtSum::kTowerCount) ht_word |= (word << 12);
47  if (j->getType()==l1t::EtSum::kAsymEt) met_word |= (word << 20);
48  if (j->getType()==l1t::EtSum::kAsymHt) mht_word |= (word << 20);
49  if (j->getType()==l1t::EtSum::kAsymEtHF) methf_word |= (word << 20);
50  if (j->getType()==l1t::EtSum::kAsymHtHF) mhthf_word |= (word << 20);
51  if (j->getType()==l1t::EtSum::kCentrality){
52  methf_word |= ((word & 0xF) << 28);
53  mhthf_word |= (((word>>4) & 0xF) << 28);
54  }
55 
56  }
57 
58  load.push_back(et_word);
59  load.push_back(ht_word);
60  load.push_back(met_word);
61  load.push_back(mht_word);
62  load.push_back(methf_word);
63  load.push_back(mhthf_word);
64 
65  //pad with zeros to fill out block; must do this for each BX
67  nBx++;
68 
69  }
70 
71 
72  return {Block(b1_, load)};
73  }
74 }
75 }
76 
delete x;
Definition: CaloConfig.h:22
Blocks pack(const edm::Event &, const PackerTokens *) override
Definition: EtSumPacker.cc:12
std::vector< Block > Blocks
Definition: Block.h:72
T min(T a, T b)
Definition: MathUtil.h:58
#define DEFINE_L1T_PACKER(type)
Definition: PackerFactory.h:22
def load(fileName)
Definition: svgfig.py:547
Definition: event.py:1