CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions
l1t::stage1::EtSumPacker Class Reference
Inheritance diagram for l1t::stage1::EtSumPacker:
l1t::Packer

Public Member Functions

virtual Blocks pack (const edm::Event &, const PackerTokens *) override
 

Detailed Description

Definition at line 9 of file EtSumPacker.cc.

Member Function Documentation

Blocks l1t::stage1::EtSumPacker::pack ( const edm::Event event,
const PackerTokens toks 
)
overridevirtual

Implements l1t::Packer.

Definition at line 21 of file EtSumPacker.cc.

References i, j, l1t::EtSum::kTotalEt, l1t::EtSum::kTotalHt, svgfig::load(), min(), and gen::n.

Referenced by pyrootRender.interactiveRender::draw().

22  {
24  event.getByToken(static_cast<const CaloTokens*>(toks)->getEtSumToken(), etSums);
25 
26  std::vector<uint32_t> load;
27 
28  for (int i = etSums->getFirstBX(); i <= etSums->getLastBX(); ++i) {
29  int n = 0;
30 
31  uint16_t objectTotalEt=0;
32  uint16_t objectTotalHt=0;
33  int flagTotalEt=0;
34  int flagTotalHt=0;
35 
36  for (auto j = etSums->begin(i); j != etSums->end(i) && n < 4; ++j, ++n) {
37 
38  if (j->getType()==l1t::EtSum::kTotalEt){
39  flagTotalEt=j->hwQual() & 0x1;
40  objectTotalEt=std::min(j->hwPt(), 0xFFF)|(flagTotalEt<<12);
41  }
42 
43  else if (j->getType()==l1t::EtSum::kTotalHt){
44  flagTotalHt=j->hwQual() & 0x1;
45  objectTotalHt=std::min(j->hwPt(), 0xFFF)|(flagTotalHt<<12);
46  }
47  }
48 
49  uint32_t word0=(objectTotalEt & 0xFFFF);
50  uint32_t word1=(objectTotalHt & 0xFFFF);
51 
52  word0 |= (1 << 15);
53  word1 |= ((i == 0) << 15);
54 
55 
56  load.push_back(word0);
57  load.push_back(word1);
58  }
59 
60 
61 
62  return {Block(93, load)};
63  }
int i
Definition: DBlmapReader.cc:9
def load
Definition: svgfig.py:546
int j
Definition: DBlmapReader.cc:9
T min(T a, T b)
Definition: MathUtil.h:58