CMS 3D CMS Logo

List of all members | Public Member Functions
l1t::stage1::EtSumPacker Class Reference

#include <EtSumPacker.h>

Inheritance diagram for l1t::stage1::EtSumPacker:
l1t::Packer

Public Member Functions

Blocks pack (const edm::Event &, const PackerTokens *) override
 
- Public Member Functions inherited from l1t::Packer
unsigned board ()
 
void setBoard (unsigned board)
 
virtual ~Packer ()=default
 

Detailed Description

Definition at line 8 of file EtSumPacker.h.

Member Function Documentation

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

Implements l1t::Packer.

Definition at line 10 of file EtSumPacker.cc.

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

Referenced by pyrootRender.interactiveRender::draw().

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