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::CaloSpareHFPacker Class Reference
Inheritance diagram for l1t::stage1::CaloSpareHFPacker:
l1t::Packer

Public Member Functions

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

Detailed Description

Definition at line 9 of file CaloSpareHFPacker.cc.

Member Function Documentation

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

Implements l1t::Packer.

Definition at line 21 of file CaloSpareHFPacker.cc.

References i, j, svgfig::load(), min(), and gen::n.

Referenced by pyrootRender.interactiveRender::draw().

22  {
23  edm::Handle<CaloSpareBxCollection> calosparesHFBitCounts;
24  event.getByToken(static_cast<const CaloTokens*>(toks)->getCaloSpareHFBitCountsToken(), calosparesHFBitCounts);
25 
26  edm::Handle<CaloSpareBxCollection> calosparesHFRingSums;
27  event.getByToken(static_cast<const CaloTokens*>(toks)->getCaloSpareHFRingSumsToken(), calosparesHFRingSums);
28 
29  std::vector<uint32_t> load;
30 
31  for (int i = calosparesHFBitCounts->getFirstBX(); i <= calosparesHFBitCounts->getLastBX(); ++i) {
32  int n = 0;
33 
34  int hfbitcount=0;
35  int hfringsum=0;
36 
37  for (auto j = calosparesHFBitCounts->begin(i); j != calosparesHFBitCounts->end(i) && n < 2; ++j, ++n) {
38  hfbitcount=std::min(j->hwPt(),0xFFF);
39  }
40 
41  n=0;
42 
43  for (auto j = calosparesHFRingSums->begin(i); j != calosparesHFRingSums->end(i) && n < 2; ++j, ++n) {
44  hfringsum=std::min(j->hwPt(),0xFFF);
45  }
46 
47  uint16_t object[2]={0,0};
48 
49  object[0]=hfbitcount|((hfringsum & 0x7) << 12);
50  object[1]=((hfringsum>>3) & 0x1FF) |(0x1)<<10 | (0x1)<<12 | (0x1)<<14;
51 
52  uint32_t word0=(object[0] & 0xFFFF);
53  uint32_t word1=(object[1] & 0xFFFF);
54 
55  word0 |= (1 << 15);
56  word1 |= ((i == 0) << 15);
57 
58  load.push_back(word0);
59  load.push_back(word1);
60  }
61 
62  return {Block(97, 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