CMS 3D CMS Logo

L1TdeCSCTPGShower.cc
Go to the documentation of this file.
1 #include <string>
2 
5 
7  : dataALCTShower_token_(consumes<CSCShowerDigiCollection>(ps.getParameter<edm::InputTag>("dataALCTShower"))),
8  emulALCTShower_token_(consumes<CSCShowerDigiCollection>(ps.getParameter<edm::InputTag>("emulALCTShower"))),
9  dataCLCTShower_token_(consumes<CSCShowerDigiCollection>(ps.getParameter<edm::InputTag>("dataCLCTShower"))),
10  emulCLCTShower_token_(consumes<CSCShowerDigiCollection>(ps.getParameter<edm::InputTag>("emulCLCTShower"))),
11  dataLCTShower_token_(consumes<CSCShowerDigiCollection>(ps.getParameter<edm::InputTag>("dataLCTShower"))),
12  emulLCTShower_token_(consumes<CSCShowerDigiCollection>(ps.getParameter<edm::InputTag>("emulLCTShower"))),
13  monitorDir_(ps.getUntrackedParameter<std::string>("monitorDir")) {}
14 
16 
19 
20  // 2D summary plots
22  iBooker.book2D("lct_cscshower_data_nom_summary_denom", "Data LCT Nominal Shower All", 36, 1, 37, 18, 0, 18);
24  "lct_cscshower_data_nom_summary_num", "Data LCT Nominal Shower Emul Matched", 36, 1, 37, 18, 0, 18);
26  iBooker.book2D("alct_cscshower_data_nom_summary_denom", "Data ALCT Nominal Shower All", 36, 1, 37, 18, 0, 18);
28  "alct_cscshower_data_nom_summary_num", "Data ALCT Nominal Shower Emul Matched", 36, 1, 37, 18, 0, 18);
30  iBooker.book2D("clct_cscshower_data_nom_summary_denom", "Data CLCT Nominal Shower All", 36, 1, 37, 18, 0, 18);
32  "clct_cscshower_data_nom_summary_num", "Data CLCT Nominal Shower Emul Matched", 36, 1, 37, 18, 0, 18);
33 
35  iBooker.book2D("lct_cscshower_emul_nom_summary_denom", "Emul LCT Nominal Shower All", 36, 1, 37, 18, 0, 18);
37  "lct_cscshower_emul_nom_summary_num", "Emul LCT Nominal Shower Not Matched to Data", 36, 1, 37, 18, 0, 18);
39  iBooker.book2D("alct_cscshower_emul_nom_summary_denom", "Emul ALCT Nominal Shower All", 36, 1, 37, 18, 0, 18);
41  "alct_cscshower_emul_nom_summary_num", "Emul ALCT Nominal Shower Not Matched to Data", 36, 1, 37, 18, 0, 18);
43  iBooker.book2D("clct_cscshower_emul_nom_summary_denom", "Emul CLCT Nominal Shower All", 36, 1, 37, 18, 0, 18);
45  "clct_cscshower_emul_nom_summary_num", "Emul CLCT Nominal Shower Not Matched to Data", 36, 1, 37, 18, 0, 18);
46 
48  iBooker.book2D("lct_cscshower_data_tight_summary_denom", "Data LCT Tight Shower All", 36, 1, 37, 18, 0, 18);
50  "lct_cscshower_data_tight_summary_num", "Data LCT Tight Shower Emul Matched", 36, 1, 37, 18, 0, 18);
52  iBooker.book2D("alct_cscshower_data_tight_summary_denom", "Data ALCT Tight Shower All", 36, 1, 37, 18, 0, 18);
54  "alct_cscshower_data_tight_summary_num", "Data ALCT Tight Shower Emul Matched", 36, 1, 37, 18, 0, 18);
56  iBooker.book2D("clct_cscshower_data_tight_summary_denom", "Data CLCT Tight Shower All", 36, 1, 37, 18, 0, 18);
58  "clct_cscshower_data_tight_summary_num", "Data CLCT Tight Shower Emul Matched", 36, 1, 37, 18, 0, 18);
59 
61  iBooker.book2D("lct_cscshower_emul_tight_summary_denom", "Emul LCT Tight Shower All", 36, 1, 37, 18, 0, 18);
63  "lct_cscshower_emul_tight_summary_num", "Emul LCT Tight Shower Not Matched to Data", 36, 1, 37, 18, 0, 18);
65  iBooker.book2D("alct_cscshower_emul_tight_summary_denom", "Emul ALCT Tight Shower All", 36, 1, 37, 18, 0, 18);
67  "alct_cscshower_emul_tight_summary_num", "Emul ALCT Tight Shower Not Matched to Data", 36, 1, 37, 18, 0, 18);
69  iBooker.book2D("clct_cscshower_emul_tight_summary_denom", "Emul CLCT Tight Shower All", 36, 1, 37, 18, 0, 18);
71  "clct_cscshower_emul_tight_summary_num", "Emul CLCT Tight Shower Not Matched to Data", 36, 1, 37, 18, 0, 18);
72 
73  // x labels
80 
87 
94 
101 
102  // plotting option
109 
116 
123 
130 
131  const std::array<std::string, 9> suffix_label{{"4/2", "4/1", "3/2", "3/1", " 2/2", "2/1", "1/3", "1/2", "1/1"}};
132 
133  // y labels
134  for (int ybin = 1; ybin <= 9; ++ybin) {
135  lctShowerDataNomSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
136  lctShowerDataNomSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
137  alctShowerDataNomSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
138  alctShowerDataNomSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
139  clctShowerDataNomSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
140  clctShowerDataNomSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
141 
142  lctShowerEmulNomSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
143  lctShowerEmulNomSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
144  alctShowerEmulNomSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
145  alctShowerEmulNomSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
146  clctShowerEmulNomSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
147  clctShowerEmulNomSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
148 
149  lctShowerDataNomSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
150  lctShowerDataNomSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
151  alctShowerDataNomSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
152  alctShowerDataNomSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
153  clctShowerDataNomSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
154  clctShowerDataNomSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
155 
156  lctShowerEmulNomSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
157  lctShowerEmulNomSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
158  alctShowerEmulNomSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
159  alctShowerEmulNomSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
160  clctShowerEmulNomSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
161  clctShowerEmulNomSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
162 
163  lctShowerDataTightSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
164  lctShowerDataTightSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
165  alctShowerDataTightSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
166  alctShowerDataTightSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
167  clctShowerDataTightSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
168  clctShowerDataTightSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
169 
170  lctShowerEmulTightSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
171  lctShowerEmulTightSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
172  alctShowerEmulTightSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
173  alctShowerEmulTightSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
174  clctShowerEmulTightSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
175  clctShowerEmulTightSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
176 
177  lctShowerDataTightSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
178  lctShowerDataTightSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
179  alctShowerDataTightSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
180  alctShowerDataTightSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
181  clctShowerDataTightSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
182  clctShowerDataTightSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
183 
184  lctShowerEmulTightSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
185  lctShowerEmulTightSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
186  alctShowerEmulTightSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
187  alctShowerEmulTightSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
188  clctShowerEmulTightSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
189  clctShowerEmulTightSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
190  }
191 }
192 
194  // handles
201 
202  e.getByToken(dataALCTShower_token_, dataALCTshs);
203  e.getByToken(emulALCTShower_token_, emulALCTshs);
204  e.getByToken(dataCLCTShower_token_, dataCLCTshs);
205  e.getByToken(emulCLCTShower_token_, emulCLCTshs);
206  e.getByToken(dataLCTShower_token_, dataLCTshs);
207  e.getByToken(emulLCTShower_token_, emulLCTshs);
208 
209  const std::map<std::pair<int, int>, int> histIndexCSC = {{{1, 1}, 8},
210  {{1, 2}, 7},
211  {{1, 3}, 6},
212  {{2, 1}, 5},
213  {{2, 2}, 4},
214  {{3, 1}, 3},
215  {{3, 2}, 2},
216  {{4, 1}, 1},
217  {{4, 2}, 0}};
218 
219  const int min_endcap = CSCDetId::minEndcapId();
220  const int max_endcap = CSCDetId::maxEndcapId();
221  const int min_station = CSCDetId::minStationId();
222  const int max_station = CSCDetId::maxStationId();
223  const int min_sector = CSCTriggerNumbering::minTriggerSectorId();
224  const int max_sector = CSCTriggerNumbering::maxTriggerSectorId();
225  const int min_subsector = CSCTriggerNumbering::minTriggerSubSectorId();
226  const int max_subsector = CSCTriggerNumbering::maxTriggerSubSectorId();
227  const int min_chamber = CSCTriggerNumbering::minTriggerCscId();
228  const int max_chamber = CSCTriggerNumbering::maxTriggerCscId();
229 
230  for (int endc = min_endcap; endc <= max_endcap; endc++) {
231  // loop on all stations
232  for (int stat = min_station; stat <= max_station; stat++) {
233  int numsubs = ((stat == 1) ? max_subsector : 1);
234  // loop on sectors and subsectors
235  for (int sect = min_sector; sect <= max_sector; sect++) {
236  for (int subs = min_subsector; subs <= numsubs; subs++) {
237  // loop on all chambers
238  for (int cham = min_chamber; cham <= max_chamber; cham++) {
239  // extract the ring number
241 
242  // actual chamber number =/= trigger chamber number
244 
245  // 0th layer means whole chamber.
246  CSCDetId detid(endc, stat, ring, chid, 0);
247 
248  int chamber = detid.chamber();
249 
250  int sr = histIndexCSC.at({stat, ring});
251  if (endc == 1)
252  sr = 17 - sr;
253  bool chamber20 = (sr == 1 or sr == 3 or sr == 5 or sr == 12 or sr == 14 or sr == 16);
254 
255  // ALCT analysis
256  auto range_dataALCT = dataALCTshs->get(detid);
257  auto range_emulALCT = emulALCTshs->get(detid);
258 
259  for (auto dalct = range_dataALCT.first; dalct != range_dataALCT.second; dalct++) {
260  if (dalct->isValid() and dalct->isNominalInTime()) {
261  if (dalct->isTightInTime()) {
262  if (chamber20) {
265  } else
267  }
268  if (chamber20) {
269  alctShowerDataNomSummary_denom_->Fill(chamber * 2 - 1, sr, 0.5);
271  } else
273  // check for least one matching ALCT
274  for (auto ealct = range_emulALCT.first; ealct != range_emulALCT.second; ealct++) {
275  if (ealct->isValid() and areSameShowers(*dalct, *ealct)) {
276  if (dalct->isTightInTime()) {
277  if (chamber20) {
278  alctShowerDataTightSummary_num_->Fill(chamber * 2 - 1, sr, 0.5);
280  } else
282  }
283  if (chamber20) {
284  alctShowerDataNomSummary_num_->Fill(chamber * 2 - 1, sr, 0.5);
286  } else
288  }
289  }
290  }
291  } // End of for (auto dalct = range_dataALCT.first; dalct != range_dataALCT.second; dalct++)
292 
293  for (auto ealct = range_emulALCT.first; ealct != range_emulALCT.second; ealct++) {
294  bool isMatched = false;
295  if (ealct->isValid() and ealct->isNominalInTime()) {
296  if (ealct->isTightInTime()) {
297  if (chamber20) {
300  } else
302  }
303  if (chamber20) {
304  alctShowerEmulNomSummary_denom_->Fill(chamber * 2 - 1, sr, 0.5);
306  } else
308  // check for least one matching ALCT
309  for (auto dalct = range_dataALCT.first; dalct != range_dataALCT.second; dalct++) {
310  if (areSameShowers(*dalct, *ealct))
311  isMatched = true;
312  }
313  // only fill when it is not matched to an ALCT
314  // to understand if the emulator is producing too many ALCTs
315  if (!isMatched) {
316  if (ealct->isTightInTime()) {
317  if (chamber20) {
318  alctShowerEmulTightSummary_num_->Fill(chamber * 2 - 1, sr, 0.5);
320  } else
322  }
323  if (chamber20) {
324  alctShowerEmulNomSummary_num_->Fill(chamber * 2 - 1, sr, 0.5);
326  } else
328  }
329  }
330  } // End of for (auto ealct = range_emulALCT.first; ealct != range_emulALCT.second; ealct++)
331 
332  // CLCT analysis
333  auto range_dataCLCT = dataCLCTshs->get(detid);
334  auto range_emulCLCT = emulCLCTshs->get(detid);
335 
336  for (auto dclct = range_dataCLCT.first; dclct != range_dataCLCT.second; dclct++) {
337  if (dclct->isValid() and dclct->isNominalInTime()) {
338  if (dclct->isTightInTime()) {
339  if (chamber20) {
342  } else
344  }
345  if (chamber20) {
346  clctShowerDataNomSummary_denom_->Fill(chamber * 2 - 1, sr, 0.5);
348  } else
350  // check for least one matching CLCT
351  for (auto eclct = range_emulCLCT.first; eclct != range_emulCLCT.second; eclct++) {
352  if (eclct->isValid() and areSameShowers(*dclct, *eclct)) {
353  if (dclct->isTightInTime()) {
354  if (chamber20) {
355  clctShowerDataTightSummary_num_->Fill(chamber * 2 - 1, sr, 0.5);
357  } else
359  }
360  if (chamber20) {
361  clctShowerDataNomSummary_num_->Fill(chamber * 2 - 1, sr, 0.5);
363  } else
365  }
366  }
367  }
368  } // End of for (auto dclct = range_dataCLCT.first; dclct != range_dataCLCT.second; dclct++)
369 
370  for (auto eclct = range_emulCLCT.first; eclct != range_emulCLCT.second; eclct++) {
371  bool isMatched = false;
372  if (eclct->isValid() and eclct->isNominalInTime()) {
373  if (eclct->isTightInTime()) {
374  if (chamber20) {
377  } else
379  }
380  if (chamber20) {
381  clctShowerEmulNomSummary_denom_->Fill(chamber * 2 - 1, sr, 0.5);
383  } else
385  // check for least one matching CLCT
386  for (auto dclct = range_dataCLCT.first; dclct != range_dataCLCT.second; dclct++) {
387  if (areSameShowers(*dclct, *eclct))
388  isMatched = true;
389  }
390  // only fill when it is not matched to an CLCT
391  // to understand if the emulator is producing too many CLCTs
392  if (!isMatched) {
393  if (eclct->isTightInTime()) {
394  if (chamber20) {
395  clctShowerEmulTightSummary_num_->Fill(chamber * 2 - 1, sr, 0.5);
397  } else
399  }
400  if (chamber20) {
401  clctShowerEmulNomSummary_num_->Fill(chamber * 2 - 1, sr, 0.5);
403  } else
405  }
406  }
407  } // End of for (auto eclct = range_emulCLCT.first; eclct != range_emulCLCT.second; eclct++)
408 
409  // LCT analysis
410  auto range_dataLCT = dataLCTshs->get(detid);
411  auto range_emulLCT = emulLCTshs->get(detid);
412 
413  for (auto dlct = range_dataLCT.first; dlct != range_dataLCT.second; dlct++) {
414  if (dlct->isValid() and dlct->isNominalInTime()) {
415  if (dlct->isTightInTime()) {
416  if (chamber20) {
417  lctShowerDataTightSummary_denom_->Fill(chamber * 2 - 1, sr, 0.5);
419  } else
421  }
422  if (chamber20) {
423  lctShowerDataNomSummary_denom_->Fill(chamber * 2 - 1, sr, 0.5);
425  } else
427  // check for least one matching LCT
428  for (auto elct = range_emulLCT.first; elct != range_emulLCT.second; elct++) {
429  if (elct->isValid() and areSameShowers(*dlct, *elct)) {
430  if (dlct->isTightInTime()) {
431  if (chamber20) {
432  lctShowerDataTightSummary_num_->Fill(chamber * 2 - 1, sr, 0.5);
434  } else
436  }
437  if (chamber20) {
438  lctShowerDataNomSummary_num_->Fill(chamber * 2 - 1, sr, 0.5);
440  } else
442  }
443  }
444  }
445  } // End of for (auto dlct = range_dataLCT.first; dlct != range_dataLCT.second; dlct++)
446 
447  for (auto elct = range_emulLCT.first; elct != range_emulLCT.second; elct++) {
448  bool isMatched = false;
449  if (elct->isValid() and elct->isNominalInTime()) {
450  if (elct->isTightInTime()) {
451  if (chamber20) {
452  lctShowerEmulTightSummary_denom_->Fill(chamber * 2 - 1, sr, 0.5);
454  } else
456  }
457  if (chamber20) {
458  lctShowerEmulNomSummary_denom_->Fill(chamber * 2 - 1, sr, 0.5);
460  } else
462  // check for least one matching LCT
463  for (auto dlct = range_dataLCT.first; dlct != range_dataLCT.second; dlct++) {
464  if (areSameShowers(*dlct, *elct))
465  isMatched = true;
466  }
467  // only fill when it is not matched to an LCT
468  // to understand if the emulator is producing too many LCTs
469  if (!isMatched) {
470  if (elct->isTightInTime()) {
471  if (chamber20) {
472  lctShowerEmulTightSummary_num_->Fill(chamber * 2 - 1, sr, 0.5);
474  } else
476  }
477  if (chamber20) {
478  lctShowerEmulNomSummary_num_->Fill(chamber * 2 - 1, sr, 0.5);
480  } else
482  }
483  }
484  } // End of for (auto elct = range_emulLCT.first; elct != range_emulLCT.second; elct++) {
485  }
486  }
487  }
488  }
489  }
490 }
491 
493  bool returnValue = false;
494  if (lhs.isValid() == rhs.isValid() && lhs.getCSCID() == rhs.getCSCID() && lhs.bitsInTime() == rhs.bitsInTime() &&
495  lhs.bitsOutOfTime() == rhs.bitsOutOfTime()) {
496  returnValue = true;
497  }
498  return returnValue;
499 }
MonitorElement * lctShowerEmulNomSummary_num_
MonitorElement * lctShowerEmulNomSummary_denom_
MonitorElement * alctShowerDataNomSummary_num_
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
static int minEndcapId()
Definition: CSCDetId.h:234
MonitorElement * clctShowerDataNomSummary_num_
MonitorElement * clctShowerDataTightSummary_denom_
edm::EDGetTokenT< CSCShowerDigiCollection > dataLCTShower_token_
virtual void setOption(const char *option)
static int maxTriggerSectorId()
bool isValid() const
data
edm::EDGetTokenT< CSCShowerDigiCollection > dataCLCTShower_token_
edm::EDGetTokenT< CSCShowerDigiCollection > emulCLCTShower_token_
uint16_t bitsOutOfTime() const
Definition: CSCShowerDigi.h:33
void analyze(const edm::Event &, const edm::EventSetup &) override
static int maxStationId()
Definition: CSCDetId.h:237
static int minTriggerSectorId()
static int ringFromTriggerLabels(int station, int triggerCSCID)
void Fill(long long x)
MonitorElement * lctShowerDataTightSummary_num_
MonitorElement * lctShowerEmulTightSummary_num_
L1TdeCSCTPGShower(const edm::ParameterSet &ps)
static int minStationId()
Definition: CSCDetId.h:236
void bookHistograms(DQMStore::IBooker &, const edm::Run &, const edm::EventSetup &) override
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
static int maxEndcapId()
Definition: CSCDetId.h:235
MonitorElement * alctShowerEmulNomSummary_denom_
MonitorElement * alctShowerDataTightSummary_denom_
Range get(const IndexType &index) const
return the digis for a given DetUnit
int chamber() const
Definition: CSCDetId.h:62
bool isMatched(TrackingRecHit const &hit)
MonitorElement * lctShowerEmulTightSummary_denom_
MonitorElement * clctShowerDataNomSummary_denom_
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
edm::EDGetTokenT< CSCShowerDigiCollection > emulALCTShower_token_
MonitorElement * alctShowerEmulNomSummary_num_
uint16_t getCSCID() const
Definition: CSCShowerDigi.h:35
MonitorElement * alctShowerDataTightSummary_num_
MonitorElement * clctShowerEmulTightSummary_denom_
MonitorElement * alctShowerEmulTightSummary_num_
static int minTriggerSubSectorId()
std::string monitorDir_
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:212
bool areSameShowers(const CSCShowerDigi &lhs, const CSCShowerDigi &rhs) const
MonitorElement * clctShowerEmulNomSummary_num_
uint16_t bitsInTime() const
Definition: CSCShowerDigi.h:32
HLT enums.
MonitorElement * clctShowerEmulNomSummary_denom_
MonitorElement * lctShowerDataTightSummary_denom_
edm::EDGetTokenT< CSCShowerDigiCollection > dataALCTShower_token_
MonitorElement * alctShowerDataNomSummary_denom_
MonitorElement * lctShowerDataNomSummary_num_
MonitorElement * lctShowerDataNomSummary_denom_
edm::EDGetTokenT< CSCShowerDigiCollection > emulLCTShower_token_
MonitorElement * clctShowerDataTightSummary_num_
MonitorElement * clctShowerEmulTightSummary_num_
~L1TdeCSCTPGShower() override
MonitorElement * alctShowerEmulTightSummary_denom_
static int chamberFromTriggerLabels(int TriggerSector, int TriggerSubSector, int station, int TriggerCSCID)
static int maxTriggerSubSectorId()
Definition: Run.h:45
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
A container for a generic type of digis indexed by some index, implemented with a map<IndexType...