CMS 3D CMS Logo

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

#include <RCTEmRegionPacker.h>

Inheritance diagram for l1t::stage1::RCTEmRegionPacker:
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 RCTEmRegionPacker.h.

Member Function Documentation

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

Implements l1t::Packer.

Definition at line 23 of file RCTEmRegionPacker.cc.

References electrons_cff::bool, edmIntegrityCheck::d, DEFINE_L1T_PACKER, stringResolutionProvider_cfi::et, l1t::PhysicsToBitConverter::Extract32bitwords(), l1t::rctDataBase::GetLinkMP7(), mps_fire::i, recoMuon::in, createfilelist::int, GlobalTrackerMuonAlignment_cfi::isolated, svgfig::load(), LogDebug, funct::m, gen::n, l1t::PhysicsToBitConverter::SetHFEt(), l1t::PhysicsToBitConverter::SetHFFg(), l1t::PhysicsToBitConverter::SetIECard(), l1t::PhysicsToBitConverter::SetIEEt(), l1t::PhysicsToBitConverter::SetIEReg(), l1t::PhysicsToBitConverter::SetNECard(), l1t::PhysicsToBitConverter::SetNEEt(), l1t::PhysicsToBitConverter::SetNEReg(), l1t::PhysicsToBitConverter::SetRCEt(), l1t::PhysicsToBitConverter::SetRCHad(), l1t::PhysicsToBitConverter::SetRCOf(), and l1t::PhysicsToBitConverter::SetRCTau().

Referenced by pyrootRender.interactiveRender::draw().

23  {
25  event.getByToken(static_cast<const CaloTokens*>(toks)->getCaloRegionToken(), caloregion);
26 
28  event.getByToken(static_cast<const CaloTokens*>(toks)->getCaloEmCandToken(), caloemcand);
29 
30  std::vector<uint32_t> load[36];
31 
32  for (int i = 0; i <= 0; ++i) {
33  int n = 0;
34  PhysicsToBitConverter converter[18];
35  for (auto j = caloregion->begin(); j != caloregion->end(); ++j, ++n) {
36 
37  int et=(int)j->et();
38  int overFlow=(int)j->overFlow();
39  int fineGrain=(int)j->fineGrain();
40  int mip=(int)j->mip();
41  bool tauveto=j->tauVeto();
42  //int quiet=(int)j->quiet();
43 
44  int rctCrate=(int)j->rctCrate();
45  int rctCard=(int)j->rctCard();
46  int rctRegion=(int)j->rctRegionIndex();
47  bool isHf=(bool)j->isHf();
48 
49  if(!isHf){
50  converter[rctCrate].SetRCEt(et,rctCard,rctRegion);
51  converter[rctCrate].SetRCOf(overFlow,rctCard,rctRegion);
52  converter[rctCrate].SetRCTau(tauveto,rctCard,rctRegion);
53  converter[rctCrate].SetRCHad(mip,rctCard,rctRegion);
54  LogDebug("L1T")<<"CRATE"<<rctCrate<<"region="<<rctRegion<<", card="<<rctCard<<", rgnEt="<<et<<", overflow="<<overFlow<<", tauveto="<<tauveto<<", hadveto="<<mip<<std::endl;
55 
56  }
57  else{
58  converter[rctCrate].SetHFEt(et,rctRegion);
59  converter[rctCrate].SetHFFg(fineGrain,rctRegion);
60  LogDebug("L1T")<<"CRATE"<<rctCrate<<"region="<<rctRegion<<", rgnEt="<<et<<std::endl;
61 
62  }
63  }//end calo region
64 
65  int m = 0;
66  for (auto j = caloemcand->begin(); j != caloemcand->end(); ++j, ++m) {
67 
68  int rank=(int)j->rank();
69  int index=(int)j->index();
70  int rctCrate=(int)j->rctCrate();
71  bool isolated=(bool)j->isolated();
72  int rctCard=(int)j->rctCard();
73  int rctRegion=(int)j->rctRegion();
74 
75  if(isolated){
76  converter[rctCrate].SetIEEt(rank,index);
77  converter[rctCrate].SetIEReg(rctRegion,index);
78  converter[rctCrate].SetIECard(rctCard,index);
79  LogDebug("L1T")<<"CRATE"<<rctCrate<<"ISO em rank="<<rank<<", region="<<rctRegion<<", card="<<rctCard<<std::endl;
80  }
81  else{
82  converter[rctCrate].SetNEEt(rank,index);
83  converter[rctCrate].SetNEReg(rctRegion,index);
84  converter[rctCrate].SetNECard(rctCard,index);
85  LogDebug("L1T")<<"CRATE"<<rctCrate<<"NON ISO em rank="<<rank<<", region="<<rctRegion<<", card="<<rctCard<<std::endl;
86  }
87  }//end of em cand
88 
89  for (int in=0;in<18;in++){
90  converter[in].Extract32bitwords();
91  for (int d=0;d<6;d++){
92  load[2*in].push_back((uint32_t)converter[in].Get32bitWordLinkEven(d));
93  load[2*in+1].push_back((uint32_t)converter[in].Get32bitWordLinkOdd(d));
94  }
95  }
96  }// end of BX
97 
98  rctDataBase database;
99 
100  Blocks res = {};
101 
102  for (int i = 0; i < 36; ++i) {
103  unsigned int mycrateRCT=(int)(i/2);
104  bool myRCTeven;
105  if (i%2==0) myRCTeven=true;
106  else myRCTeven=false;
107  int linkMP7=-1;
108  database.GetLinkMP7(mycrateRCT,myRCTeven,linkMP7);
109  res.push_back(Block(2*linkMP7, load[i], 0));
110  res.push_back(Block(2*linkMP7, load[i], 1));
111  }
112  return res;
113  }
#define LogDebug(id)
Definition: Electron.h:6
std::vector< Block > Blocks
Definition: Block.h:72
def load(fileName)
Definition: svgfig.py:547
et
define resolution functions of each parameter