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] =
63  std::make_unique<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] =
66  std::make_unique<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] =
69  std::make_unique<CSCGEMMotherboardME21>(endc, stat, sect, subs, cham, conf);
70  else if (isSLHC_ and ring == 1 and
71  ((stat == 2 and runME21Up_ and !runME21ILT_) || (stat == 3 and runME31Up_) ||
72  (stat == 4 and runME41Up_)))
73  tmb_[endc - 1][stat - 1][sect - 1][subs - 1][cham - 1] =
74  std::make_unique<CSCUpgradeMotherboard>(endc, stat, sect, subs, cham, conf);
75  else
76  tmb_[endc - 1][stat - 1][sect - 1][subs - 1][cham - 1] =
77  std::make_unique<CSCMotherboard>(endc, stat, sect, subs, cham, conf);
78  }
79  }
80  }
81  }
82  }
83 
84  // Get min and max BX to sort LCTs in MPC.
85  m_minBX_ = conf.getParameter<int>("MinBX");
86  m_maxBX_ = conf.getParameter<int>("MaxBX");
87 
88  // Init MPC
89  m_muonportcard.reset(new CSCMuonPortCard(conf));
90 }
91 
92 //------------
93 // Destructor
94 //------------
96 
98  // Receives CSCDBL1TPParameters percolated down from ESProducer.
99 
100  for (int endc = min_endcap; endc <= max_endcap; endc++) {
101  for (int stat = min_station; stat <= max_station; stat++) {
102  int numsubs = ((stat == 1) ? max_subsector : 1);
103  for (int sect = min_sector; sect <= max_sector; sect++) {
104  for (int subs = min_subsector; subs <= numsubs; subs++) {
105  for (int cham = min_chamber; cham <= max_chamber; cham++) {
106  tmb_[endc - 1][stat - 1][sect - 1][subs - 1][cham - 1]->setConfigParameters(conf);
107  }
108  }
109  }
110  }
111  }
112 }
113 
115  const CSCWireDigiCollection* wiredc,
116  const CSCComparatorDigiCollection* compdc,
117  const GEMPadDigiCollection* gemPads,
118  const GEMPadDigiClusterCollection* gemClusters,
119  CSCALCTDigiCollection& oc_alct,
120  CSCALCTDigiCollection& oc_alct_all,
121  CSCCLCTDigiCollection& oc_clct,
122  CSCCLCTDigiCollection& oc_clct_all,
123  CSCALCTPreTriggerDigiCollection& oc_alctpretrigger,
124  CSCCLCTPreTriggerDigiCollection& oc_pretrigger,
125  CSCCLCTPreTriggerCollection& oc_pretrig,
127  CSCCorrelatedLCTDigiCollection& oc_sorted_lct,
128  GEMCoPadDigiCollection& oc_gemcopad) {
129  // CSC geometry.
130  for (int endc = min_endcap; endc <= max_endcap; endc++) {
131  for (int stat = min_station; stat <= max_station; stat++) {
132  int numsubs = ((stat == 1) ? max_subsector : 1);
133  for (int sect = min_sector; sect <= max_sector; sect++) {
134  for (int subs = min_subsector; subs <= numsubs; subs++) {
135  for (int cham = min_chamber; cham <= max_chamber; cham++) {
136  // extract the ring number
138 
139  // case when you want to ignore ME42
140  if (disableME42_ && stat == 4 && ring == 2)
141  continue;
142 
143  CSCMotherboard* tmb = tmb_[endc - 1][stat - 1][sect - 1][subs - 1][cham - 1].get();
144 
145  tmb->setCSCGeometry(csc_g);
146 
147  // actual chamber number =/= trigger chamber number
149 
150  // 0th layer means whole chamber.
151  CSCDetId detid(endc, stat, ring, chid, 0);
152 
153  // Run processors only if chamber exists in geometry.
154  if (tmb == nullptr || csc_g->chamber(detid) == nullptr)
155  continue;
156 
157  // Skip chambers marked as bad (usually includes most of ME4/2 chambers;
158  // also, there's no ME1/a-1/b separation, it's whole ME1/1)
159  if (checkBadChambers_ && badChambers->isInBadChamber(detid))
160  continue;
161 
162  // running upgraded ME1/1 TMBs
163  if (stat == 1 && ring == 1 && isSLHC_ && !runME11ILT_) {
164  // run the TMB
165  CSCMotherboardME11* tmb11 = static_cast<CSCMotherboardME11*>(tmb);
166  if (infoV > 1)
167  LogTrace("CSCTriggerPrimitivesBuilder")
168  << "CSCTriggerPrimitivesBuilder::build in E:" << endc << " S:" << stat << " R:" << ring;
169  tmb11->run(wiredc, compdc);
170 
171  // get all collections
172  // all ALCTs, CLCTs, LCTs are written with detid ring = 1, as data did
173  // but CLCTs and LCTs are written sperately in ME1a and ME1b, considering whether ME1a is disabled or not
174  const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb11->readoutLCTs1b();
175  const std::vector<CSCCorrelatedLCTDigi>& lctV1a = tmb11->readoutLCTs1a();
176  const std::vector<CSCALCTDigi>& alctV = tmb11->alctProc->readoutALCTs();
177  const std::vector<CSCALCTDigi>& alctV_all =
178  tmb11->alctProc->readoutALCTs(CSCConstants::MAX_ALCTS_PER_PROCESSOR);
179  const std::vector<CSCCLCTDigi>& clctV = tmb11->clctProc->readoutCLCTsME1b();
180  const std::vector<CSCCLCTDigi>& clctV_all =
181  tmb11->clctProc->readoutCLCTsME1b(CSCConstants::MAX_CLCTS_PER_PROCESSOR);
182  const std::vector<int>& preTriggerBXs = tmb11->clctProc->preTriggerBXs();
183  const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb11->clctProc->preTriggerDigisME1b();
184  const std::vector<CSCCLCTDigi>& clctV1a = tmb11->clctProc->readoutCLCTsME1a();
185  const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV1a = tmb11->clctProc->preTriggerDigisME1a();
186  const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = tmb11->alctProc->preTriggerDigis();
187 
188  if (infoV > 1)
189  LogTrace("CSCTriggerPrimitivesBuilder")
190  << "CSCTriggerPrimitivesBuilder:: a=" << alctV.size() << " c=" << clctV.size()
191  << " l=" << lctV.size() << " c=" << clctV1a.size() << " l=" << lctV1a.size();
192 
193  // ME1/b
194 
195  if (!(lctV.empty() && alctV.empty() && clctV.empty()) and infoV > 1) {
196  LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder results in " << detid;
197  }
198  // put collections in event
199  put(lctV, oc_lct, detid, " ME1b LCT digi");
200  put(alctV, oc_alct, detid, " ME1b ALCT digi");
201  put(alctV_all, oc_alct_all, detid, " ME1b ALCT digi");
202  put(clctV, oc_clct, detid, " ME1b CLCT digi");
203  put(clctV_all, oc_clct_all, detid, " ME1b CLCT digi");
204  put(pretriggerV, oc_pretrigger, detid, " ME1b CLCT pre-trigger digi");
205  put(preTriggerBXs, oc_pretrig, detid, " ME1b CLCT pre-trigger BX");
206  put(alctpretriggerV, oc_alctpretrigger, detid, " ME1b ALCT pre-trigger digi");
207 
208  // ME1/a
209 
210  if (disableME1a_)
211  continue;
212 
213  CSCDetId detid1a(endc, stat, 4, chid, 0);
214 
215  if (!(lctV1a.empty() && clctV1a.empty()) and infoV > 1) {
216  LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder results in " << detid1a;
217  }
218 
219  // put collections in event, still use detid ring =1
220  put(lctV1a, oc_lct, detid, " ME1a LCT digi");
221  put(clctV1a, oc_clct, detid, " ME1a CLCT digi");
222  put(pretriggerV1a, oc_pretrigger, detid, " ME1a CLCT pre-trigger digi");
223  } // upgraded TMB
224 
225  // running upgraded ME1/1 TMBs with GEMs
226  else if (stat == 1 && ring == 1 && isSLHC_ && runME11ILT_) {
227  // run the TMB
228  CSCGEMMotherboardME11* tmb11GEM = static_cast<CSCGEMMotherboardME11*>(tmb);
229  tmb11GEM->setCSCGeometry(csc_g);
230  tmb11GEM->setGEMGeometry(gem_g);
231  if (infoV > 1)
232  LogTrace("CSCTriggerPrimitivesBuilder")
233  << "CSCTriggerPrimitivesBuilder::build in E:" << endc << " S:" << stat << " R:" << ring;
234 
235  if (useClusters_) {
236  tmb11GEM->run(wiredc, compdc, gemClusters);
237  } else {
238  tmb11GEM->run(wiredc, compdc, gemPads);
239  }
240 
241  // 0th layer means whole chamber.
242  GEMDetId gemId(detid.zendcap(), 1, 1, 0, chid, 0);
243 
244  // get the collections
245  const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb11GEM->readoutLCTs1b();
246  const std::vector<CSCCorrelatedLCTDigi>& lctV1a = tmb11GEM->readoutLCTs1a();
247  const std::vector<CSCALCTDigi>& alctV = tmb11GEM->alctProc->readoutALCTs();
248  const std::vector<CSCALCTDigi>& alctV_all =
249  tmb11GEM->alctProc->readoutALCTs(CSCConstants::MAX_ALCTS_PER_PROCESSOR);
250  const std::vector<CSCCLCTDigi>& clctV = tmb11GEM->clctProc->readoutCLCTsME1b();
251  const std::vector<CSCCLCTDigi>& clctV_all =
252  tmb11GEM->clctProc->readoutCLCTsME1b(CSCConstants::MAX_CLCTS_PER_PROCESSOR);
253  const std::vector<int>& preTriggerBXs = tmb11GEM->clctProc->preTriggerBXs();
254  const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb11GEM->clctProc->preTriggerDigisME1b();
255  const std::vector<CSCCLCTDigi>& clctV1a = tmb11GEM->clctProc->readoutCLCTsME1a();
256  const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV1a = tmb11GEM->clctProc->preTriggerDigisME1a();
257  const std::vector<GEMCoPadDigi>& copads = tmb11GEM->coPadProcessor->readoutCoPads();
258  const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = tmb11GEM->alctProc->preTriggerDigis();
259 
260  // ME1/b
261  if (!(lctV.empty() && alctV.empty() && clctV.empty()) and infoV > 1) {
262  LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder results in " << detid;
263  }
264 
265  // put collections in event
266  put(lctV, oc_lct, detid, " ME1b LCT digi");
267  put(alctV, oc_alct, detid, " ME1b ALCT digi");
268  put(alctV_all, oc_alct_all, detid, " ME1b ALCT digi");
269  put(clctV, oc_clct, detid, " ME1b CLCT digi");
270  put(clctV_all, oc_clct_all, detid, " ME1b CLCT digi");
271  put(pretriggerV, oc_pretrigger, detid, " ME1b CLCT pre-trigger digi");
272  put(preTriggerBXs, oc_pretrig, detid, " ME1b CLCT pre-trigger BX");
273  put(copads, oc_gemcopad, gemId, " GEM coincidence pad");
274  put(alctpretriggerV, oc_alctpretrigger, detid, " ME1b ALCT pre-trigger digi");
275 
276  // ME1/a
277  if (disableME1a_)
278  continue;
279 
280  CSCDetId detid1a(endc, stat, 4, chid, 0);
281 
282  if (!(lctV1a.empty() && clctV1a.empty()) and infoV > 1) {
283  LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder results in " << detid1a;
284  }
285 
286  // put collections in event, still use detid ring =1
287  put(lctV1a, oc_lct, detid, " ME1a LCT digi");
288  put(clctV1a, oc_clct, detid, " ME1a CLCT digi");
289  put(pretriggerV1a, oc_pretrigger, detid, " ME1a CLCT pre-trigger digi");
290  }
291 
292  // running upgraded ME2/1 TMBs
293  else if (stat == 2 && ring == 1 && isSLHC_ && runME21ILT_) {
294  // run the TMB
295  CSCGEMMotherboardME21* tmb21GEM = static_cast<CSCGEMMotherboardME21*>(tmb);
296  tmb21GEM->setCSCGeometry(csc_g);
297  tmb21GEM->setGEMGeometry(gem_g);
298 
299  if (useClusters_) {
300  tmb21GEM->run(wiredc, compdc, gemClusters);
301  } else {
302  tmb21GEM->run(wiredc, compdc, gemPads);
303  }
304 
305  // 0th layer means whole chamber.
306  GEMDetId gemId(detid.zendcap(), 1, 2, 0, chid, 0);
307 
308  // get the collections
309  const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb21GEM->readoutLCTs();
310  const std::vector<CSCALCTDigi>& alctV = tmb21GEM->alctProc->readoutALCTs();
311  const std::vector<CSCALCTDigi>& alctV_all =
312  tmb21GEM->alctProc->readoutALCTs(CSCConstants::MAX_ALCTS_PER_PROCESSOR);
313  const std::vector<CSCCLCTDigi>& clctV = tmb21GEM->clctProc->readoutCLCTs();
314  const std::vector<CSCCLCTDigi>& clctV_all =
315  tmb21GEM->clctProc->readoutCLCTs(CSCConstants::MAX_CLCTS_PER_PROCESSOR);
316  const std::vector<int>& preTriggerBXs = tmb21GEM->clctProc->preTriggerBXs();
317  const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb21GEM->clctProc->preTriggerDigis();
318  const std::vector<GEMCoPadDigi>& copads = tmb21GEM->coPadProcessor->readoutCoPads();
319  const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = tmb21GEM->alctProc->preTriggerDigis();
320 
321  if (!(alctV.empty() && clctV.empty() && lctV.empty()) and infoV > 1) {
322  LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder got results in " << detid;
323  }
324 
325  // put collections in event
326  put(lctV, oc_lct, detid, " ME21 LCT digi");
327  put(alctV, oc_alct, detid, " ME21 ALCT digi");
328  put(alctV_all, oc_alct_all, detid, " ME21 ALCT digi");
329  put(clctV, oc_clct, detid, " ME21 CLCT digi");
330  put(clctV_all, oc_clct_all, detid, " ME21 CLCT digi");
331  put(pretriggerV, oc_pretrigger, detid, " ME21 CLCT pre-trigger digi");
332  put(preTriggerBXs, oc_pretrig, detid, " ME21 CLCT pre-trigger BX");
333  put(copads, oc_gemcopad, gemId, " GEM coincidence pad");
334  put(alctpretriggerV, oc_alctpretrigger, detid, " ME21 ALCT pre-trigger digi");
335  }
336  // running upgraded ME2/1-ME3/1-ME4/1 TMBs (without GEMs or RPCs)
337  else if (isSLHC_ and ring == 1 and
338  ((stat == 2 and runME21Up_ and !runME21ILT_) || (stat == 3 and runME31Up_) ||
339  (stat == 4 and runME41Up_))) {
340  // run the TMB
341  CSCUpgradeMotherboard* utmb = static_cast<CSCUpgradeMotherboard*>(tmb);
342  utmb->setCSCGeometry(csc_g);
343  utmb->run(wiredc, compdc);
344 
345  // get the collections
346  const std::vector<CSCCorrelatedLCTDigi>& lctV = utmb->readoutLCTs();
347  const std::vector<CSCALCTDigi>& alctV = utmb->alctProc->readoutALCTs();
348  const std::vector<CSCALCTDigi>& alctV_all =
349  utmb->alctProc->readoutALCTs(CSCConstants::MAX_ALCTS_PER_PROCESSOR);
350  const std::vector<CSCCLCTDigi>& clctV = utmb->clctProc->readoutCLCTs();
351  const std::vector<CSCCLCTDigi>& clctV_all =
352  utmb->clctProc->readoutCLCTs(CSCConstants::MAX_CLCTS_PER_PROCESSOR);
353  const std::vector<int>& preTriggerBXs = utmb->clctProc->preTriggerBXs();
354  const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = utmb->clctProc->preTriggerDigis();
355  const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = utmb->alctProc->preTriggerDigis();
356 
357  if (!(alctV.empty() && clctV.empty() && lctV.empty()) and infoV > 1) {
358  LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder got results in " << detid;
359  }
360 
361  // put collections in event
362  put(lctV, oc_lct, detid, " LCT digi");
363  put(alctV, oc_alct, detid, " ALCT digi");
364  put(alctV_all, oc_alct_all, detid, " ALCT digi");
365  put(clctV, oc_clct, detid, " CLCT digi");
366  put(clctV_all, oc_clct_all, detid, tmb->getCSCName() + " CLCT digi");
367  put(pretriggerV, oc_pretrigger, detid, " CLCT pre-trigger digi");
368  put(preTriggerBXs, oc_pretrig, detid, " CLCT pre-trigger BX");
369  put(alctpretriggerV, oc_alctpretrigger, detid, " ALCT pre-trigger digi");
370  }
371 
372  // running non-upgraded TMB
373  else {
374  // run the TMB
375  tmb->run(wiredc, compdc);
376 
377  // get the collections
378  const std::vector<CSCCorrelatedLCTDigi>& lctV = tmb->readoutLCTs();
379  const std::vector<CSCALCTDigi>& alctV = tmb->alctProc->readoutALCTs();
380  const std::vector<CSCALCTDigi>& alctV_all =
382  const std::vector<CSCCLCTDigi>& clctV = tmb->clctProc->readoutCLCTs();
383  const std::vector<CSCCLCTDigi>& clctV_all =
385  const std::vector<int>& preTriggerBXs = tmb->clctProc->preTriggerBXs();
386  const std::vector<CSCCLCTPreTriggerDigi>& pretriggerV = tmb->clctProc->preTriggerDigis();
387  const std::vector<CSCALCTPreTriggerDigi>& alctpretriggerV = tmb->alctProc->preTriggerDigis();
388 
389  if (!(alctV.empty() && clctV.empty() && lctV.empty()) and infoV > 1) {
390  LogTrace("L1CSCTrigger") << "CSCTriggerPrimitivesBuilder got results in " << detid;
391  }
392 
393  // put collections in event
394  put(lctV, oc_lct, detid, tmb->getCSCName() + " LCT digi");
395  put(alctV, oc_alct, detid, tmb->getCSCName() + " ALCT digi");
396  put(alctV_all, oc_alct_all, detid, tmb->getCSCName() + " ALCT digi");
397  put(clctV, oc_clct, detid, tmb->getCSCName() + " CLCT digi");
398  put(clctV_all, oc_clct_all, detid, tmb->getCSCName() + " CLCT digi");
399  put(pretriggerV, oc_pretrigger, detid, tmb->getCSCName() + " CLCT pre-trigger digi");
400  put(preTriggerBXs, oc_pretrig, detid, tmb->getCSCName() + " CLCT pre-trigger BX");
401  put(alctpretriggerV, oc_alctpretrigger, detid, tmb->getCSCName() + " ALCT pre-trigger digi");
402  } // non-upgraded TMB
403  }
404  }
405  }
406  }
407  }
408 
409  // run MPC simulation
410  m_muonportcard->loadDigis(oc_lct);
411 
412  // sort the LCTs per sector
413  // insert them into the result vector
414  std::vector<csctf::TrackStub> result;
415  for (int bx = m_minBX_; bx <= m_maxBX_; ++bx)
416  for (int e = min_endcap; e <= max_endcap; ++e)
417  for (int st = min_station; st <= max_station; ++st)
418  for (int se = min_sector; se <= max_sector; ++se) {
419  if (st == 1) {
420  std::vector<csctf::TrackStub> subs1, subs2;
421  subs1 = m_muonportcard->sort(e, st, se, 1, bx);
422  subs2 = m_muonportcard->sort(e, st, se, 2, bx);
423  result.insert(result.end(), subs1.begin(), subs1.end());
424  result.insert(result.end(), subs2.begin(), subs2.end());
425  } else {
426  std::vector<csctf::TrackStub> sector;
427  sector = m_muonportcard->sort(e, st, se, 0, bx);
428  result.insert(result.end(), sector.begin(), sector.end());
429  }
430  }
431 
432  // now convert csctf::TrackStub back into CSCCorrelatedLCTDigi
433  // put MPC stubs into the event
434  std::vector<csctf::TrackStub>::const_iterator itr = result.begin();
435  for (; itr != result.end(); itr++) {
436  oc_sorted_lct.insertDigi(CSCDetId(itr->getDetId().rawId()), *(itr->getDigi()));
437  if (infoV > 1)
438  LogDebug("L1CSCTrigger") << "MPC " << *(itr->getDigi()) << " found in ME" << ((itr->endcap() == 1) ? "+" : "-")
439  << itr->station() << "/" << CSCDetId(itr->getDetId().rawId()).ring() << "/"
440  << CSCDetId(itr->getDetId().rawId()).chamber() << " (sector " << itr->sector()
441  << " trig id. " << itr->cscid() << ")"
442  << "\n";
443  }
444 }
CSCCLCTPreTriggerCollection
CSCMotherboard::run
virtual void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc)
Definition: CSCMotherboard.cc:130
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:114
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:38
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:441
CSCGEMMotherboardME11::run
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiClusterCollection *gemPads) override
Definition: CSCGEMMotherboardME11.cc:55
CSCGEMMotherboardME11::readoutLCTs1a
std::vector< CSCCorrelatedLCTDigi > readoutLCTs1a() const
Definition: CSCGEMMotherboardME11.cc:420
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:97
CSCBaseboard::setCSCGeometry
void setCSCGeometry(const CSCGeometry *g)
Definition: CSCBaseboard.cc:84
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:260
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:95
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:422
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:53
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:331
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:69
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
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:227
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:229
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