CMS 3D CMS Logo

MissHtPacker.cc
Go to the documentation of this file.
3 
4 #include "CaloTokens.h"
5 #include "MissHtPacker.h"
6 
7 // Implementation
8 
9 namespace l1t {
10  namespace stage1 {
11  Blocks
13  {
15  event.getByToken(static_cast<const CaloTokens*>(toks)->getEtSumToken(), etSums);
16 
17  std::vector<uint32_t> load;
18 
19  for (int i = etSums->getFirstBX(); i <= etSums->getLastBX(); ++i) {
20  int n = 0;
21 
22  int htmissphi=0;
23  int htmiss=0;
24 
25  int flaghtmiss=0;
26 
27  for (auto j = etSums->begin(i); j != etSums->end(i) && n < 4; ++j, ++n) {
28  if (j->getType()==l1t::EtSum::kMissingHt){
29 
30  flaghtmiss=j->hwQual() & 0x1;
31  htmiss=std::min(j->hwPt(),0x7F);
32  htmissphi=std::min(j->hwPhi(),0x1F);
33  }
34  }
35 
36  uint16_t object[2]={0,0};
37 
38  object[0]=htmissphi|((htmiss & 0x7F) << 5 ) |(flaghtmiss<<12)|(0x1 << 14);
39  object[1]= 0x1 | (0x1 << 2) | (0x1 << 4) | (0x1 << 6) |(0x1 << 8) | (0x1 << 10) | (0x1 << 12) | (0x1 << 14);
40 
41  uint32_t word0=(object[0] & 0xFFFF);
42  uint32_t word1=(object[1] & 0xFFFF);
43 
44  word0 |= (1 << 15);
45  word1 |= ((i == 0) << 15);
46 
47  load.push_back(word0);
48  load.push_back(word1);
49  }
50 
51  return {Block(99, load)};
52  }
53  }
54 }
55 
Blocks pack(const edm::Event &, const PackerTokens *) override
Definition: MissHtPacker.cc:12
delete x;
Definition: CaloConfig.h:22
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