CMS 3D CMS Logo

CSCTriggerPrimitivesBuilder.cc
Go to the documentation of this file.
8 
19 
21  // special configuration parameters for ME11 treatment
22  edm::ParameterSet commonParams = conf.getParameter<edm::ParameterSet>("commonParam");
23  isSLHC_ = commonParams.getParameter<bool>("isSLHC");
24  infoV = commonParams.getParameter<int>("verbosity");
25  disableME1a_ = commonParams.getParameter<bool>("disableME1a");
26  disableME42_ = commonParams.getParameter<bool>("disableME42");
27 
28  checkBadChambers_ = conf.getParameter<bool>("checkBadChambers");
29 
30  runME11Up_ = commonParams.getParameter<bool>("runME11Up");
31  runME21Up_ = commonParams.getParameter<bool>("runME21Up");
32  runME31Up_ = commonParams.getParameter<bool>("runME31Up");
33  runME41Up_ = commonParams.getParameter<bool>("runME41Up");
34 
35  runME11ILT_ = commonParams.getParameter<bool>("runME11ILT");
36  runME21ILT_ = commonParams.getParameter<bool>("runME21ILT");
37 
38  useClusters_ = commonParams.getParameter<bool>("useClusters");
39 
40  // Initializing boards.
41  for (int endc = min_endcap; endc <= max_endcap; endc++) {
42  for (int stat = min_station; stat <= max_station; stat++) {
43  int numsubs = ((stat == 1) ? max_subsector : 1);
44  for (int sect = min_sector; sect <= max_sector; sect++) {
45  for (int subs = min_subsector; subs <= numsubs; subs++) {
46  for (int cham = min_chamber; cham <= max_chamber; cham++) {
47  if ((endc <= 0 || endc > MAX_ENDCAPS) || (stat <= 0 || stat > MAX_STATIONS) ||
48  (sect <= 0 || sect > MAX_SECTORS) || (subs <= 0 || subs > MAX_SUBSECTORS) ||
49  (cham <= 0 || cham > MAX_CHAMBERS)) {
50  edm::LogError("CSCTriggerPrimitivesBuilder|SetupError")
51  << "+++ trying to instantiate TMB of illegal CSC id ["
52  << " endcap = " << endc << " station = " << stat << " sector = " << sect << " subsector = " << subs
53  << " chamber = " << cham << "]; skipping it... +++\n";
54  continue;
55  }
57  // When the motherboard is instantiated, it instantiates ALCT
58  // and CLCT processors.
59 
60  // go through all possible cases
61  if (isSLHC_ and ring == 1 and stat == 1 and runME11Up_ and !runME11ILT_)
62  tmb_[endc - 1][stat - 1][sect - 1][subs - 1][cham - 1].reset(
63  new CSCMotherboardME11(endc, stat, sect, subs, cham, conf));
64  else if (isSLHC_ and ring == 1 and stat == 1 and runME11Up_ and runME11ILT_)
65  tmb_[endc - 1][stat - 1][sect - 1][subs - 1][cham - 1].reset(
66  new CSCGEMMotherboardME11(endc, stat, sect, subs, cham, conf));
67  else if (isSLHC_ and ring == 1 and stat == 2 and runME21Up_ and !runME21ILT_)
68  tmb_[endc - 1][stat - 1][sect - 1][subs - 1][cham - 1].reset(
69  new CSCUpgradeMotherboard(endc, stat, sect, subs, cham, conf));
70  else if (isSLHC_ and ring == 1 and stat == 2 and runME21Up_ and runME21ILT_)
71  tmb_[endc - 1][stat - 1][sect - 1][subs - 1][cham - 1].reset(
72  new CSCGEMMotherboardME21(endc, stat, sect, subs, cham, conf));
73  else if (isSLHC_ and ring == 1 and ((stat == 3 and runME31Up_) || (stat == 4 and runME41Up_)))
74  tmb_[endc - 1][stat - 1][sect - 1][subs - 1][cham - 1].reset(
75  new CSCUpgradeMotherboard(endc, stat, sect, subs, cham, conf));
76  else
77  tmb_[endc - 1][stat - 1][sect - 1][subs - 1][cham - 1].reset(
78  new CSCMotherboard(endc, stat, sect, subs, cham, conf));
79  }
80  }
81  }
82  }
83  }
84 
85  // Get min and max BX to sort LCTs in MPC.
86  m_minBX_ = conf.getParameter<int>("MinBX");
87  m_maxBX_ = conf.getParameter<int>("MaxBX");
88 
89  // Init MPC
90  m_muonportcard.reset(new CSCMuonPortCard(conf));
91 }
92 
93 //------------
94 // Destructor
95 //------------
97 
99  // Receives CSCDBL1TPParameters percolated down from ESProducer.
100 
101  for (int endc = min_endcap; endc <= max_endcap; endc++) {
102  for (int stat = min_station; stat <= max_station; stat++) {
103  int numsubs = ((stat == 1) ? max_subsector : 1);
104  for (int sect = min_sector; sect <= max_sector; sect++) {
105  for (int subs = min_subsector; subs <= numsubs; subs++) {
106  for (int cham = min_chamber; cham <= max_chamber; cham++) {
107  tmb_[endc - 1][stat - 1][sect - 1][subs - 1][cham - 1]->setConfigParameters(conf);
108  }
109  }
110  }
111  }
112  }
113 }
114 
116  const CSCWireDigiCollection* wiredc,
117  const CSCComparatorDigiCollection* compdc,
118  const GEMPadDigiCollection* gemPads,
119  const GEMPadDigiClusterCollection* gemClusters,
120  CSCALCTDigiCollection& oc_alct,
121  CSCALCTDigiCollection& oc_alct_all,
122  CSCCLCTDigiCollection& oc_clct,
123  CSCCLCTDigiCollection& oc_clct_all,
124  CSCALCTPreTriggerDigiCollection& oc_alctpretrigger,
125  CSCCLCTPreTriggerDigiCollection& oc_pretrigger,
126  CSCCLCTPreTriggerCollection& oc_pretrig,
128  CSCCorrelatedLCTDigiCollection& oc_sorted_lct,
129  GEMCoPadDigiCollection& oc_gemcopad) {
130  // CSC geometry.
131  for (int endc = min_endcap; endc <= max_endcap; endc++) {
132  for (int stat = min_station; stat <= max_station; stat++) {
133  int numsubs = ((stat == 1) ? max_subsector : 1);
134  for (int sect = min_sector; sect <= max_sector; sect++) {
135  for (int subs = min_subsector; subs <= numsubs; subs++) {
136  for (int cham = min_chamber; cham <= max_chamber; cham++) {
137  // extract the ring number
139 
140  // case when you want to ignore ME42
141  if (disableME42_ && stat == 4 && ring == 2)
142  continue;
143 
144  CSCMotherboard* tmb = tmb_[endc - 1][stat - 1][sect - 1][subs - 1][cham - 1].get();
145 
146  tmb->setCSCGeometry(csc_g);
147 
148  // actual chamber number =/= trigger chamber number
150 
151  // 0th layer means whole chamber.
152  CSCDetId detid(endc, stat, ring, chid, 0);
153 
154  // Run processors only if chamber exists in geometry.
155  if (tmb == nullptr || csc_g->chamber(detid) == nullptr)
156  continue;
157 
158  // Skip chambers marked as bad (usually includes most of ME4/2 chambers;
159  // also, there's no ME1/a-1/b separation, it's whole ME1/1)
160  if (checkBadChambers_ && badChambers->isInBadChamber(detid))
161  continue;
162 
163  // running upgraded ME1/1 TMBs
164  if (stat == 1 && ring == 1 && isSLHC_ && !runME11ILT_) {
165  // run the TMB
166  CSCMotherboardME11* tmb11 = static_cast<CSCMotherboardME11*>(tmb);
167  if (infoV > 1)
168  LogTrace("CSCTriggerPrimitivesBuilder")
169  << "CSCTriggerPrimitivesBuilder::build in E:" << endc << " S:" << stat << " R:" << ring;
170  tmb11->run(wiredc, compdc);
171 
172  // get all collections
173  // all ALCTs, CLCTs, LCTs are written with detid ring = 1, as data did
174  // but CLCTs and LCTs are written sperately in ME1a and ME1b, considering whether ME1a is disabled or not
175  const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb11->readoutLCTs1b();
176  const std::vector<CSCCorrelatedLCTDigi>& lctV1a = tmb11->readoutLCTs1a();
177  const std::vector<CSCALCTDigi>& alctV = tmb11->alctProc->readoutALCTs();
178  const std::vector<CSCALCTDigi>& alctV_all =
179  tmb11->alctProc->readoutALCTs(CSCConstants::MAX_ALCTS_PER_PROCESSOR);
180  const std::vector<CSCCLCTDigi>& clctV = tmb11->clctProc->readoutCLCTsME1b();
181  const std::vector<CSCCLCTDigi>& clctV_all =
182  tmb11->clctProc->readoutCLCTsME1b(CSCConstants::MAX_CLCTS_PER_PROCESSOR);
183  const std::vector<int>& preTriggerBXs = tmb11->clctProc->preTriggerBXs();
184  const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb11->clctProc->preTriggerDigisME1b();
185  const std::vector<CSCCLCTDigi>& clctV1a = tmb11->clctProc->readoutCLCTsME1a();
186  const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV1a = tmb11->clctProc->preTriggerDigisME1a();
187  const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = tmb11->alctProc->preTriggerDigis();
188 
189  if (infoV > 1)
190  LogTrace("CSCTriggerPrimitivesBuilder")
191  << "CSCTriggerPrimitivesBuilder:: a=" << alctV.size() << " c=" << clctV.size()
192  << " l=" << lctV.size() << " c=" << clctV1a.size() << " l=" << lctV1a.size();
193 
194  // ME1/b
195 
196  if (!(lctV.empty() && alctV.empty() && clctV.empty()) and infoV > 1) {
197  LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder results in " << detid;
198  }
199  // put collections in event
200  put(lctV, oc_lct, detid, " ME1b LCT digi");
201  put(alctV, oc_alct, detid, " ME1b ALCT digi");
202  put(alctV_all, oc_alct_all, detid, " ME1b ALCT digi");
203  put(clctV, oc_clct, detid, " ME1b CLCT digi");
204  put(clctV_all, oc_clct_all, detid, " ME1b CLCT digi");
205  put(pretriggerV, oc_pretrigger, detid, " ME1b CLCT pre-trigger digi");
206  put(preTriggerBXs, oc_pretrig, detid, " ME1b CLCT pre-trigger BX");
207  put(alctpretriggerV, oc_alctpretrigger, detid, " ME1b ALCT pre-trigger digi");
208 
209  // ME1/a
210 
211  if (disableME1a_)
212  continue;
213 
214  CSCDetId detid1a(endc, stat, 4, chid, 0);
215 
216  if (!(lctV1a.empty() && clctV1a.empty()) and infoV > 1) {
217  LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder results in " << detid1a;
218  }
219 
220  // put collections in event, still use detid ring =1
221  put(lctV1a, oc_lct, detid, " ME1a LCT digi");
222  put(clctV1a, oc_clct, detid, " ME1a CLCT digi");
223  put(pretriggerV1a, oc_pretrigger, detid, " ME1a CLCT pre-trigger digi");
224  } // upgraded TMB
225 
226  // running upgraded ME1/1 TMBs with GEMs
227  else if (stat == 1 && ring == 1 && isSLHC_ && runME11ILT_) {
228  // run the TMB
229  CSCGEMMotherboardME11* tmb11GEM = static_cast<CSCGEMMotherboardME11*>(tmb);
230  tmb11GEM->setCSCGeometry(csc_g);
231  tmb11GEM->setGEMGeometry(gem_g);
232  if (infoV > 1)
233  LogTrace("CSCTriggerPrimitivesBuilder")
234  << "CSCTriggerPrimitivesBuilder::build in E:" << endc << " S:" << stat << " R:" << ring;
235 
236  if (useClusters_) {
237  tmb11GEM->run(wiredc, compdc, gemClusters);
238  } else {
239  tmb11GEM->run(wiredc, compdc, gemPads);
240  }
241 
242  // 0th layer means whole chamber.
243  GEMDetId gemId(detid.zendcap(), 1, 1, 0, chid, 0);
244 
245  // get the collections
246  const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb11GEM->readoutLCTs1b();
247  const std::vector<CSCCorrelatedLCTDigi>& lctV1a = tmb11GEM->readoutLCTs1a();
248  const std::vector<CSCALCTDigi>& alctV = tmb11GEM->alctProc->readoutALCTs();
249  const std::vector<CSCALCTDigi>& alctV_all =
250  tmb11GEM->alctProc->readoutALCTs(CSCConstants::MAX_ALCTS_PER_PROCESSOR);
251  const std::vector<CSCCLCTDigi>& clctV = tmb11GEM->clctProc->readoutCLCTsME1b();
252  const std::vector<CSCCLCTDigi>& clctV_all =
253  tmb11GEM->clctProc->readoutCLCTsME1b(CSCConstants::MAX_CLCTS_PER_PROCESSOR);
254  const std::vector<int>& preTriggerBXs = tmb11GEM->clctProc->preTriggerBXs();
255  const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb11GEM->clctProc->preTriggerDigisME1b();
256  const std::vector<CSCCLCTDigi>& clctV1a = tmb11GEM->clctProc->readoutCLCTsME1a();
257  const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV1a = tmb11GEM->clctProc->preTriggerDigisME1a();
258  const std::vector<GEMCoPadDigi>& copads = tmb11GEM->coPadProcessor->readoutCoPads();
259  const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = tmb11GEM->alctProc->preTriggerDigis();
260 
261  // ME1/b
262  if (!(lctV.empty() && alctV.empty() && clctV.empty()) and infoV > 1) {
263  LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder results in " << detid;
264  }
265 
266  // put collections in event
267  put(lctV, oc_lct, detid, " ME1b LCT digi");
268  put(alctV, oc_alct, detid, " ME1b ALCT digi");
269  put(alctV_all, oc_alct_all, detid, " ME1b ALCT digi");
270  put(clctV, oc_clct, detid, " ME1b CLCT digi");
271  put(clctV_all, oc_clct_all, detid, " ME1b CLCT digi");
272  put(pretriggerV, oc_pretrigger, detid, " ME1b CLCT pre-trigger digi");
273  put(preTriggerBXs, oc_pretrig, detid, " ME1b CLCT pre-trigger BX");
274  put(copads, oc_gemcopad, gemId, " GEM coincidence pad");
275  put(alctpretriggerV, oc_alctpretrigger, detid, " ME1b ALCT pre-trigger digi");
276 
277  // ME1/a
278  if (disableME1a_)
279  continue;
280 
281  CSCDetId detid1a(endc, stat, 4, chid, 0);
282 
283  if (!(lctV1a.empty() && clctV1a.empty()) and infoV > 1) {
284  LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder results in " << detid1a;
285  }
286 
287  // put collections in event, still use detid ring =1
288  put(lctV1a, oc_lct, detid, " ME1a LCT digi");
289  put(clctV1a, oc_clct, detid, " ME1a CLCT digi");
290  put(pretriggerV1a, oc_pretrigger, detid, " ME1a CLCT pre-trigger digi");
291  }
292 
293  // running upgraded ME2/1 TMBs
294  else if (stat == 2 && ring == 1 && isSLHC_ && runME21ILT_) {
295  // run the TMB
296  CSCGEMMotherboardME21* tmb21GEM = static_cast<CSCGEMMotherboardME21*>(tmb);
297  tmb21GEM->setCSCGeometry(csc_g);
298  tmb21GEM->setGEMGeometry(gem_g);
299 
300  if (useClusters_) {
301  tmb21GEM->run(wiredc, compdc, gemClusters);
302  } else {
303  tmb21GEM->run(wiredc, compdc, gemPads);
304  }
305 
306  // 0th layer means whole chamber.
307  GEMDetId gemId(detid.zendcap(), 1, 2, 0, chid, 0);
308 
309  // get the collections
310  const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb21GEM->readoutLCTs();
311  const std::vector<CSCALCTDigi>& alctV = tmb21GEM->alctProc->readoutALCTs();
312  const std::vector<CSCALCTDigi>& alctV_all =
313  tmb21GEM->alctProc->readoutALCTs(CSCConstants::MAX_ALCTS_PER_PROCESSOR);
314  const std::vector<CSCCLCTDigi>& clctV = tmb21GEM->clctProc->readoutCLCTs();
315  const std::vector<CSCCLCTDigi>& clctV_all =
316  tmb21GEM->clctProc->readoutCLCTs(CSCConstants::MAX_CLCTS_PER_PROCESSOR);
317  const std::vector<int>& preTriggerBXs = tmb21GEM->clctProc->preTriggerBXs();
318  const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb21GEM->clctProc->preTriggerDigis();
319  const std::vector<GEMCoPadDigi>& copads = tmb21GEM->coPadProcessor->readoutCoPads();
320  const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = tmb21GEM->alctProc->preTriggerDigis();
321 
322  if (!(alctV.empty() && clctV.empty() && lctV.empty()) and infoV > 1) {
323  LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder got results in " << detid;
324  }
325 
326  // put collections in event
327  put(lctV, oc_lct, detid, " ME21 LCT digi");
328  put(alctV, oc_alct, detid, " ME21 ALCT digi");
329  put(alctV_all, oc_alct_all, detid, " ME21 ALCT digi");
330  put(clctV, oc_clct, detid, " ME21 CLCT digi");
331  put(clctV_all, oc_clct_all, detid, " ME21 CLCT digi");
332  put(pretriggerV, oc_pretrigger, detid, " ME21 CLCT pre-trigger digi");
333  put(preTriggerBXs, oc_pretrig, detid, " ME21 CLCT pre-trigger BX");
334  put(copads, oc_gemcopad, gemId, " GEM coincidence pad");
335  put(alctpretriggerV, oc_alctpretrigger, detid, " ME21 ALCT pre-trigger digi");
336  }
337  // running upgraded ME2/1-ME3/1-ME4/1 TMBs (without GEMs or RPCs)
338  else if ((stat == 2 or stat == 3 or stat == 4) && ring == 1 && isSLHC_) {
339  // run the TMB
340  CSCUpgradeMotherboard* utmb = static_cast<CSCUpgradeMotherboard*>(tmb);
341  utmb->setCSCGeometry(csc_g);
342  utmb->run(wiredc, compdc);
343 
344  // get the collections
345  const std::vector<CSCCorrelatedLCTDigi>& lctV = utmb->readoutLCTs();
346  const std::vector<CSCALCTDigi>& alctV = utmb->alctProc->readoutALCTs();
347  const std::vector<CSCALCTDigi>& alctV_all =
348  utmb->alctProc->readoutALCTs(CSCConstants::MAX_ALCTS_PER_PROCESSOR);
349  const std::vector<CSCCLCTDigi>& clctV = utmb->clctProc->readoutCLCTs();
350  const std::vector<CSCCLCTDigi>& clctV_all =
351  utmb->clctProc->readoutCLCTs(CSCConstants::MAX_CLCTS_PER_PROCESSOR);
352  const std::vector<int>& preTriggerBXs = utmb->clctProc->preTriggerBXs();
353  const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = utmb->clctProc->preTriggerDigis();
354  const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = utmb->alctProc->preTriggerDigis();
355 
356  if (!(alctV.empty() && clctV.empty() && lctV.empty()) and infoV > 1) {
357  LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder got results in " << detid;
358  }
359 
360  // put collections in event
361  put(lctV, oc_lct, detid, " LCT digi");
362  put(alctV, oc_alct, detid, " ALCT digi");
363  put(alctV_all, oc_alct_all, detid, " ALCT digi");
364  put(clctV, oc_clct, detid, " CLCT digi");
365  put(clctV_all, oc_clct_all, detid, tmb->getCSCName() + " CLCT digi");
366  put(pretriggerV, oc_pretrigger, detid, " CLCT pre-trigger digi");
367  put(preTriggerBXs, oc_pretrig, detid, " CLCT pre-trigger BX");
368  put(alctpretriggerV, oc_alctpretrigger, detid, " ALCT pre-trigger digi");
369  }
370 
371  // running non-upgraded TMB
372  else {
373  // run the TMB
374  tmb->run(wiredc, compdc);
375 
376  // get the collections
377  const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb->readoutLCTs();
378  const std::vector<CSCALCTDigi>& alctV = tmb->alctProc->readoutALCTs();
379  const std::vector<CSCALCTDigi>& alctV_all =
381  const std::vector<CSCCLCTDigi>& clctV = tmb->clctProc->readoutCLCTs();
382  const std::vector<CSCCLCTDigi>& clctV_all =
384  const std::vector<int>& preTriggerBXs = tmb->clctProc->preTriggerBXs();
385  const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb->clctProc->preTriggerDigis();
386  const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = tmb->alctProc->preTriggerDigis();
387 
388  if (!(alctV.empty() && clctV.empty() && lctV.empty()) and infoV > 1) {
389  LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder got results in " << detid;
390  }
391 
392  // put collections in event
393  put(lctV, oc_lct, detid, tmb->getCSCName() + " LCT digi");
394  put(alctV, oc_alct, detid, tmb->getCSCName() + " ALCT digi");
395  put(alctV_all, oc_alct_all, detid, tmb->getCSCName() + " ALCT digi");
396  put(clctV, oc_clct, detid, tmb->getCSCName() + " CLCT digi");
397  put(clctV_all, oc_clct_all, detid, tmb->getCSCName() + " CLCT digi");
398  put(pretriggerV, oc_pretrigger, detid, tmb->getCSCName() + " CLCT pre-trigger digi");
399  put(preTriggerBXs, oc_pretrig, detid, tmb->getCSCName() + " CLCT pre-trigger BX");
400  put(alctpretriggerV, oc_alctpretrigger, detid, tmb->getCSCName() + " ALCT pre-trigger digi");
401  } // non-upgraded TMB
402  }
403  }
404  }
405  }
406  }
407 
408  // run MPC simulation
409  m_muonportcard->loadDigis(oc_lct);
410 
411  // sort the LCTs per sector
412  // insert them into the result vector
413  std::vector<csctf::TrackStub> result;
414  for (int bx = m_minBX_; bx <= m_maxBX_; ++bx)
415  for (int e = min_endcap; e <= max_endcap; ++e)
416  for (int st = min_station; st <= max_station; ++st)
417  for (int se = min_sector; se <= max_sector; ++se) {
418  if (st == 1) {
419  std::vector<csctf::TrackStub> subs1, subs2;
420  subs1 = m_muonportcard->sort(e, st, se, 1, bx);
421  subs2 = m_muonportcard->sort(e, st, se, 2, bx);
422  result.insert(result.end(), subs1.begin(), subs1.end());
423  result.insert(result.end(), subs2.begin(), subs2.end());
424  } else {
425  std::vector<csctf::TrackStub> sector;
426  sector = m_muonportcard->sort(e, st, se, 0, bx);
427  result.insert(result.end(), sector.begin(), sector.end());
428  }
429  }
430 
431  // now convert csctf::TrackStub back into CSCCorrelatedLCTDigi
432  // put MPC stubs into the event
433  std::vector<csctf::TrackStub>::const_iterator itr = result.begin();
434  for (; itr != result.end(); itr++) {
435  oc_sorted_lct.insertDigi(CSCDetId(itr->getDetId().rawId()), *(itr->getDigi()));
436  if (infoV > 1)
437  LogDebug("L1CSCTrigger") << "MPC " << *(itr->getDigi()) << " found in ME" << ((itr->endcap() == 1) ? "+" : "-")
438  << itr->station() << "/" << CSCDetId(itr->getDetId().rawId()).ring() << "/"
439  << CSCDetId(itr->getDetId().rawId()).chamber() << " (sector " << itr->sector()
440  << " trig id. " << itr->cscid() << ")"
441  << "\n";
442  }
443 }
CSCCLCTPreTriggerCollection
CSCMotherboard::run
virtual void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc)
Definition: CSCMotherboard.cc:127
CSCDBL1TPParameters
Definition: CSCDBL1TPParameters.h:14
CSCTriggerPrimitivesBuilder::max_sector
static const int max_sector
Definition: CSCTriggerPrimitivesBuilder.h:101
CSCUpgradeMotherboard
Definition: CSCUpgradeMotherboard.h:35
CSCDetId::maxStationId
static int maxStationId()
Definition: CSCDetId.h:222
CSCTriggerPrimitivesBuilder::m_minBX_
int m_minBX_
Definition: CSCTriggerPrimitivesBuilder.h:136
CSCTriggerPrimitivesBuilder::build
void build(const CSCBadChambers *badChambers, const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads, const GEMPadDigiClusterCollection *gemPadClusters, CSCALCTDigiCollection &oc_alct, CSCALCTDigiCollection &oc_alct_all, CSCCLCTDigiCollection &oc_clct, CSCCLCTDigiCollection &oc_clct_all, CSCALCTPreTriggerDigiCollection &oc_alctpretrigger, CSCCLCTPreTriggerDigiCollection &oc_clctpretrigger, CSCCLCTPreTriggerCollection &oc_pretrig, CSCCorrelatedLCTDigiCollection &oc_lct, CSCCorrelatedLCTDigiCollection &oc_sorted_lct, GEMCoPadDigiCollection &oc_gemcopad)
Definition: CSCTriggerPrimitivesBuilder.cc:115
CSCTriggerPrimitivesBuilder::tmb_
std::unique_ptr< CSCMotherboard > tmb_[MAX_ENDCAPS][MAX_STATIONS][MAX_SECTORS][MAX_SUBSECTORS][MAX_CHAMBERS]
Definition: CSCTriggerPrimitivesBuilder.h:139
CSCTriggerPrimitivesBuilder::max_endcap
static const int max_endcap
Definition: CSCTriggerPrimitivesBuilder.h:97
CSCTriggerPrimitivesBuilder::useClusters_
bool useClusters_
Definition: CSCTriggerPrimitivesBuilder.h:134
GEMCoPadDigiCollection
CSCTriggerPrimitivesBuilder::max_chamber
static const int max_chamber
Definition: CSCTriggerPrimitivesBuilder.h:105
CSCTriggerPrimitivesBuilder::put
void put(const T &, S &, const CSCDetId &, std::string comment)
Definition: CSCTriggerPrimitivesBuilder.h:150
CSCGEMMotherboardME21.h
relativeConstraints.cham
cham
Definition: relativeConstraints.py:69
CSCTriggerPrimitivesBuilder::checkBadChambers_
bool checkBadChambers_
a flag whether to skip chambers from the bad chambers map
Definition: CSCTriggerPrimitivesBuilder.h:110
CSCMotherboard::alctProc
std::unique_ptr< CSCAnodeLCTProcessor > alctProc
Definition: CSCMotherboard.h:75
CSCTriggerPrimitivesBuilder::min_subsector
static const int min_subsector
Definition: CSCTriggerPrimitivesBuilder.h:102
CSCDetId::zendcap
short int zendcap() const
Definition: CSCDetId.h:91
MuonDigiCollection
A container for a generic type of digis indexed by some index, implemented with a map<IndexType,...
Definition: MuonDigiCollection.h:87
CSCGEMMotherboardME21::run
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiClusterCollection *gemPads) override
Definition: CSCGEMMotherboardME21.cc:30
CSCTriggerPrimitivesBuilder::max_subsector
static const int max_subsector
Definition: CSCTriggerPrimitivesBuilder.h:103
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
CSCGEMMotherboardME21::readoutLCTs
std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const override
Definition: CSCGEMMotherboardME21.cc:432
CSCGEMMotherboardME11::run
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiClusterCollection *gemPads) override
Definition: CSCGEMMotherboardME11.cc:47
CSCGEMMotherboardME11::readoutLCTs1a
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1a() const
Definition: CSCGEMMotherboardME11.cc:414
CSCMotherboard
Definition: CSCMotherboard.h:41
CSCGEMMotherboard::setGEMGeometry
void setGEMGeometry(const GEMGeometry *g)
set CSC and GEM geometries for the matching needs
Definition: CSCGEMMotherboard.h:66
CSCTriggerPrimitivesBuilder::MAX_ENDCAPS
Definition: CSCTriggerPrimitivesBuilder.h:85
CSCTriggerNumbering::maxTriggerSectorId
static int maxTriggerSectorId()
Definition: CSCTriggerNumbering.h:112
CSCBadChambers
Definition: CSCBadChambers.h:9
CSCMuonPortCard
Definition: CSCMuonPortCard.h:35
CSCConstants::MAX_CLCTS_PER_PROCESSOR
Definition: CSCConstants.h:67
CSCDetId::minStationId
static int minStationId()
Definition: CSCDetId.h:221
CSCTriggerPrimitivesBuilder::m_maxBX_
int m_maxBX_
Definition: CSCTriggerPrimitivesBuilder.h:136
CSCMotherboard::clctProc
std::unique_ptr< CSCCathodeLCTProcessor > clctProc
Definition: CSCMotherboard.h:78
CSCTriggerPrimitivesBuilder::setConfigParameters
void setConfigParameters(const CSCDBL1TPParameters *conf)
Definition: CSCTriggerPrimitivesBuilder.cc:98
CSCBaseboard::setCSCGeometry
void setCSCGeometry(const CSCGeometry *g)
Definition: CSCBaseboard.cc:83
CSCTriggerPrimitivesBuilder::runME21Up_
bool runME21Up_
Definition: CSCTriggerPrimitivesBuilder.h:123
hgcalPlots.stat
stat
Definition: hgcalPlots.py:1111
CSCUpgradeMotherboard::readoutLCTs
std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const override
Definition: CSCUpgradeMotherboard.cc:241
CSCDetId::minEndcapId
static int minEndcapId()
Definition: CSCDetId.h:219
CSCGEMMotherboardME21
Definition: CSCGEMMotherboardME21.h:16
GEMPadDigiCollection
CSCTriggerPrimitivesBuilder::MAX_SUBSECTORS
Definition: CSCTriggerPrimitivesBuilder.h:85
CSCTriggerPrimitivesBuilder::min_sector
static const int min_sector
Definition: CSCTriggerPrimitivesBuilder.h:100
CSCTriggerPrimitivesBuilder::infoV
int infoV
Definition: CSCTriggerPrimitivesBuilder.h:108
CSCMotherboard.h
GEMPadDigiClusterCollection
CSCTriggerPrimitivesBuilder::~CSCTriggerPrimitivesBuilder
~CSCTriggerPrimitivesBuilder()
Definition: CSCTriggerPrimitivesBuilder.cc:96
CSCGEMMotherboard::coPadProcessor
std::unique_ptr< GEMCoPadProcessor > coPadProcessor
Definition: CSCGEMMotherboard.h:63
CSCBaseboard::getCSCName
std::string getCSCName() const
Definition: CSCBaseboard.h:33
CSCTriggerPrimitivesBuilder::MAX_CHAMBERS
Definition: CSCTriggerPrimitivesBuilder.h:85
CSCTriggerPrimitivesBuilder::disableME42_
bool disableME42_
Definition: CSCTriggerPrimitivesBuilder.h:119
CSCBadChambers::isInBadChamber
bool isInBadChamber(IndexType ichamber) const
Is the chamber with index 'ichamber' flagged as bad?
Definition: CSCBadChambers.cc:4
CSCMuonPortCard.h
CSCGEMMotherboardME11.h
CSCGEMMotherboardME11::readoutLCTs1b
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1b() const
Definition: CSCGEMMotherboardME11.cc:416
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
edm::ParameterSet
Definition: ParameterSet.h:36
edm::LogError
Definition: MessageLogger.h:183
CSCTriggerPrimitivesBuilder::runME31Up_
bool runME31Up_
Definition: CSCTriggerPrimitivesBuilder.h:124
CSCTriggerPrimitivesBuilder::runME41Up_
bool runME41Up_
Definition: CSCTriggerPrimitivesBuilder.h:125
CSCTriggerPrimitivesBuilder::isSLHC_
bool isSLHC_
Definition: CSCTriggerPrimitivesBuilder.h:113
CSCMotherboardME11::run
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc) override
Definition: CSCMotherboardME11.cc:49
CSCConstants::MAX_ALCTS_PER_PROCESSOR
Definition: CSCConstants.h:70
CSCTriggerNumbering::minTriggerCscId
static int minTriggerCscId()
Definition: CSCTriggerNumbering.h:111
CSCTriggerNumbering::minTriggerSubSectorId
static int minTriggerSubSectorId()
Definition: CSCTriggerNumbering.h:115
CSCTriggerPrimitivesBuilder::gem_g
const GEMGeometry * gem_g
Definition: CSCTriggerPrimitivesBuilder.h:143
GEMDetId
Definition: GEMDetId.h:17
CSCDetId
Definition: CSCDetId.h:26
CSCTriggerPrimitivesBuilder::CSCTriggerPrimitivesBuilder
CSCTriggerPrimitivesBuilder(const edm::ParameterSet &)
Definition: CSCTriggerPrimitivesBuilder.cc:20
CSCALCTDigiCollection
CSCTriggerPrimitivesBuilder::MAX_SECTORS
Definition: CSCTriggerPrimitivesBuilder.h:85
CSCTriggerPrimitivesBuilder::m_muonportcard
std::unique_ptr< CSCMuonPortCard > m_muonportcard
Definition: CSCTriggerPrimitivesBuilder.h:146
CSCTriggerNumbering::minTriggerSectorId
static int minTriggerSectorId()
Definition: CSCTriggerNumbering.h:113
CSCTriggerNumbering::maxTriggerSubSectorId
static int maxTriggerSubSectorId()
Definition: CSCTriggerNumbering.h:114
CSCMotherboardME11
Definition: CSCMotherboardME11.h:18
CSCTriggerNumbering::ringFromTriggerLabels
static int ringFromTriggerLabels(int station, int triggerCSCID)
Definition: CSCTriggerNumbering.cc:5
CSCComparatorDigiCollection
CSCTriggerNumbering::chamberFromTriggerLabels
static int chamberFromTriggerLabels(int TriggerSector, int TriggerSubSector, int station, int TriggerCSCID)
Definition: CSCTriggerNumbering.cc:30
CSCDetId::maxEndcapId
static int maxEndcapId()
Definition: CSCDetId.h:220
CSCMotherboardME11.h
CSCCorrelatedLCTDigiCollection
itr
std::vector< std::pair< float, float > >::iterator itr
Definition: HGCDigitizer.cc:28
CSCTriggerPrimitivesBuilder.h
CSCMotherboard::readoutLCTs
virtual std::vector< CSCCorrelatedLCTDigi > readoutLCTs() const
Definition: CSCMotherboard.cc:329
CSCTriggerPrimitivesBuilder::runME11Up_
bool runME11Up_
Definition: CSCTriggerPrimitivesBuilder.h:122
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
CSCTriggerPrimitivesBuilder::MAX_STATIONS
Definition: CSCTriggerPrimitivesBuilder.h:85
GEMGeometry.h
CSCWireDigiCollection
CSCTriggerPrimitivesBuilder::min_chamber
static const int min_chamber
Definition: CSCTriggerPrimitivesBuilder.h:104
CSCTriggerPrimitivesBuilder::csc_g
const CSCGeometry * csc_g
Definition: CSCTriggerPrimitivesBuilder.h:142
CSCCLCTDigiCollection
CSCTriggerPrimitivesBuilder::min_station
static const int min_station
Definition: CSCTriggerPrimitivesBuilder.h:98
relativeConstraints.ring
ring
Definition: relativeConstraints.py:68
CSCUpgradeMotherboard::run
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc) override
Definition: CSCUpgradeMotherboard.cc:49
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
CSCTriggerNumbering::maxTriggerCscId
static int maxTriggerCscId()
Definition: CSCTriggerNumbering.h:110
CSCALCTPreTriggerDigiCollection
CSCTriggerPrimitivesBuilder::min_endcap
static const int min_endcap
Definition: CSCTriggerPrimitivesBuilder.h:96
mps_fire.result
result
Definition: mps_fire.py:303
CSCGEMMotherboardME11
Definition: CSCGEMMotherboardME11.h:16
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:671
CSCMotherboardME11::readoutLCTs1a
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1a() const
Definition: CSCMotherboardME11.cc:224
CSCTriggerPrimitivesBuilder::max_station
static const int max_station
Definition: CSCTriggerPrimitivesBuilder.h:99
CSCTriggerPrimitivesBuilder::runME21ILT_
bool runME21ILT_
Definition: CSCTriggerPrimitivesBuilder.h:131
CSCMotherboardME11::readoutLCTs1b
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1b() const
Definition: CSCMotherboardME11.cc:226
CSCGeometry::chamber
const CSCChamber * chamber(CSCDetId id) const
Return the chamber corresponding to given DetId.
Definition: CSCGeometry.cc:100
CSCTriggerPrimitivesBuilder::runME11ILT_
bool runME11ILT_
Definition: CSCTriggerPrimitivesBuilder.h:128
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
CSCTriggerPrimitivesBuilder::disableME1a_
bool disableME1a_
Definition: CSCTriggerPrimitivesBuilder.h:116