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

Public Member Functions

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

Detailed Description

Definition at line 21 of file RCTEmRegionPacker.cc.

Member Function Documentation

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

Implements l1t::Packer.

Definition at line 33 of file RCTEmRegionPacker.cc.

References ztail::d, l1t::PhysicsToBitConverter::Extract32bitwords(), l1t::rctDataBase::GetLinkMP7(), i, recoMuon::in, cmsHarvester::index, j, svgfig::load(), LogDebug, visualization-live-secondInstance_cfg::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().

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