CMS 3D CMS Logo

GEMDAQStatusSource.cc
Go to the documentation of this file.
2 
3 using namespace std;
4 using namespace edm;
5 
8  tagVFAT_ = consumes<GEMVFATStatusCollection>(cfg.getParameter<edm::InputTag>("VFATInputLabel"));
9  tagOH_ = consumes<GEMOHStatusCollection>(cfg.getParameter<edm::InputTag>("OHInputLabel"));
10  tagAMC_ = consumes<GEMAMCStatusCollection>(cfg.getParameter<edm::InputTag>("AMCInputLabel"));
11  tagAMC13_ = consumes<GEMAMC13StatusCollection>(cfg.getParameter<edm::InputTag>("AMC13InputLabel"));
12 
13  nAMCSlots_ = cfg.getParameter<Int_t>("AMCSlots");
14 }
15 
18  desc.add<edm::InputTag>("VFATInputLabel", edm::InputTag("muonGEMDigis", "VFATStatus"));
19  desc.add<edm::InputTag>("OHInputLabel", edm::InputTag("muonGEMDigis", "OHStatus"));
20  desc.add<edm::InputTag>("AMCInputLabel", edm::InputTag("muonGEMDigis", "AMCStatus"));
21  desc.add<edm::InputTag>("AMC13InputLabel", edm::InputTag("muonGEMDigis", "AMC13Status"));
22 
23  desc.add<Int_t>("AMCSlots", 13);
24  desc.addUntracked<std::string>("runType", "online");
25  desc.addUntracked<std::string>("logCategory", "GEMDAQStatusSource");
26 
27  descriptions.add("GEMDAQStatusSource", desc);
28 }
29 
31  //if (useDBEMap_)
32  if (true) {
33  const auto &chMap = iSetup.getData(gemChMapToken_);
34  auto gemChMap = std::make_unique<GEMChMap>(chMap);
35 
36  for (auto const &[ec, dc] : gemChMap->chamberMap()) {
37  unsigned int fedId = ec.fedId;
38  uint8_t amcNum = ec.amcNum;
39  GEMDetId gemChId(dc.detId);
40 
41  mapFEDIdToRe_[fedId] = gemChId.region();
42  mapAMC13ToListChamber_[fedId].push_back(gemChId);
43  mapAMCToListChamber_[{fedId, amcNum}].push_back(gemChId);
44  }
45 
46  } else {
47  // no EMap in DB, using dummy
48  auto gemChMap = std::make_unique<GEMChMap>();
49  gemChMap->setDummy();
50 
51  for (auto const &[ec, dc] : gemChMap->chamberMap()) {
52  unsigned int fedId = ec.fedId;
53  uint8_t amcNum = ec.amcNum;
54  GEMDetId gemChId(dc.detId);
55 
56  mapFEDIdToRe_[fedId] = gemChId.region();
57  mapAMC13ToListChamber_[fedId].push_back(gemChId);
58  mapAMCToListChamber_[{fedId, amcNum}].push_back(gemChId);
59  }
60  }
61 }
62 
64  if (h2Status == nullptr) {
65  return;
66  }
67 
68  unsigned int unBinPos = 1;
69  h2Status->setBinLabel(unBinPos++, "Good", 2);
70  h2Status->setBinLabel(unBinPos++, "Invalid AMC", 2);
71  h2Status->setBinLabel(unBinPos++, "Invalid size", 2);
72  h2Status->setBinLabel(unBinPos++, "Fail trailer check", 2);
73  h2Status->setBinLabel(unBinPos++, "Fail fragment length", 2);
74  h2Status->setBinLabel(unBinPos++, "Fail trailer match", 2);
75  h2Status->setBinLabel(unBinPos++, "More trailer", 2);
76  h2Status->setBinLabel(unBinPos++, "CRC modified", 2);
77  h2Status->setBinLabel(unBinPos++, "S-link error", 2);
78  h2Status->setBinLabel(unBinPos++, "Wrong FED ID", 2);
79 
80  h2Status->setBinLabel(1, "GE11-M", 1);
81  h2Status->setBinLabel(2, "GE11-P", 1);
82 }
83 
85  if (h2Status == nullptr) {
86  return;
87  }
88 
89  unsigned int unBinPos = 1;
90  h2Status->setBinLabel(unBinPos++, "Good", 2);
91  h2Status->setBinLabel(unBinPos++, "Invalid OH", 2);
92  h2Status->setBinLabel(unBinPos++, "Back pressure", 2);
93  h2Status->setBinLabel(unBinPos++, "Bad EC", 2);
94  h2Status->setBinLabel(unBinPos++, "Bad BC", 2);
95  h2Status->setBinLabel(unBinPos++, "Bad OC", 2);
96  h2Status->setBinLabel(unBinPos++, "Bad run type", 2);
97  h2Status->setBinLabel(unBinPos++, "Bad CRC", 2);
98  h2Status->setBinLabel(unBinPos++, "MMCM locked", 2);
99  h2Status->setBinLabel(unBinPos++, "DAQ clock locked", 2);
100  h2Status->setBinLabel(unBinPos++, "DAQ not ready", 2);
101  h2Status->setBinLabel(unBinPos++, "BC0 not locked", 2);
102 }
103 
105  if (h2Status == nullptr) {
106  return;
107  }
108 
109  unsigned int unBinPos = 1;
110  h2Status->setBinLabel(unBinPos++, "Good", 2);
111  h2Status->setBinLabel(unBinPos++, "Event FIFO near full", 2);
112  h2Status->setBinLabel(unBinPos++, "Input FIFO near full", 2);
113  h2Status->setBinLabel(unBinPos++, "L1A FIFO near full", 2);
114  h2Status->setBinLabel(unBinPos++, "Event size warn", 2);
115  h2Status->setBinLabel(unBinPos++, "Invalid VFAT", 2);
116  h2Status->setBinLabel(unBinPos++, "Event FIFO full", 2);
117  h2Status->setBinLabel(unBinPos++, "Input FIFO full", 2);
118  h2Status->setBinLabel(unBinPos++, "L1A FIFO full", 2);
119  h2Status->setBinLabel(unBinPos++, "Event size overflow", 2);
120  h2Status->setBinLabel(unBinPos++, "Invalid event", 2);
121  h2Status->setBinLabel(unBinPos++, "Out of Sync AMC vs VFAT", 2);
122  h2Status->setBinLabel(unBinPos++, "Out of Sync VFAT vs VFAT", 2);
123  h2Status->setBinLabel(unBinPos++, "BX mismatch AMC vs VFAT", 2);
124  h2Status->setBinLabel(unBinPos++, "BX mismatch VFAT vs VFAT", 2);
125  h2Status->setBinLabel(unBinPos++, "Input FIFO underflow", 2);
126  h2Status->setBinLabel(unBinPos++, "Bad VFAT count", 2);
127 }
128 
130  if (h2Status == nullptr) {
131  return;
132  }
133 
134  unsigned int unBinPos = 1;
135  h2Status->setBinLabel(unBinPos++, "Good", 2);
136  h2Status->setBinLabel(unBinPos++, "Basic overflow", 2);
137  h2Status->setBinLabel(unBinPos++, "Zero-sup overflow", 2);
138  h2Status->setBinLabel(unBinPos++, "VFAT CRC error", 2);
139  h2Status->setBinLabel(unBinPos++, "Invalid header", 2);
140  h2Status->setBinLabel(unBinPos++, "AMC EC mismatch", 2);
141  h2Status->setBinLabel(unBinPos++, "AMC BC mismatch", 2);
142 }
143 
145  LoadROMap(iSetup);
146  if (mapAMC13ToListChamber_.empty() || mapAMCToListChamber_.empty())
147  return;
148  initGeometry(iSetup);
149  if (GEMGeometry_ == nullptr)
150  return;
151  loadChambers();
152 
153  strFolderMain_ = "GEM/DAQStatus";
154 
155  nBXMin_ = -10;
156  nBXMax_ = 10;
157 
158  mapFEDIdToRe_[1467] = -1; // FIXME: Need more systematic way
159  mapFEDIdToRe_[1468] = 1;
160 
161  ibooker.cd();
163 
164  h2AMC13Status_ = nullptr;
165  h2AMCStatusNeg_ = nullptr;
166  h2AMCStatusPos_ = nullptr;
167 
170  ibooker.book2D("amc13_status", "AMC13 Status;AMC13;", 2, 0.5, 2.5, nBitAMC13_, 0.5, nBitAMC13_ + 0.5);
171  h2AMCStatusNeg_ = ibooker.book2D("amc_status_GE11-M",
172  "AMC Status GE11-M;AMC slot;",
173  nAMCSlots_,
174  -0.5,
175  nAMCSlots_ - 0.5,
176  nBitAMC_,
177  0.5,
178  nBitAMC_ + 0.5);
179  h2AMCStatusPos_ = ibooker.book2D("amc_status_GE11-P",
180  "AMC Status GE11-P;AMC slot;",
181  nAMCSlots_,
182  -0.5,
183  nAMCSlots_ - 0.5,
184  nBitAMC_,
185  0.5,
186  nBitAMC_ + 0.5);
187  }
188 
192 
193  mapStatusOH_ =
194  MEMap3Inf(this, "oh_status", "OptoHybrid Status", 36, 0.5, 36.5, nBitOH_, 0.5, nBitOH_ + 0.5, "Chamber");
195 
197  this, "vfat_statusWarnSum", "VFAT reporting warnings", 36, 0.5, 36.5, 24, -0.5, 24 - 0.5, "Chamber", "VFAT");
199  this, "vfat_statusErrSum", "VFAT reporting errors", 36, 0.5, 36.5, 24, -0.5, 24 - 0.5, "Chamber", "VFAT");
201  MEMap4Inf(this, "vfat_status", "VFAT Status", 24, -0.5, 24 - 0.5, nBitVFAT_, 0.5, nBitVFAT_ + 0.5, "VFAT");
202 
205  }
206 
212  }
213 
214  GenerateMEPerChamber(ibooker);
215 
217  h2SummaryStatusAll = CreateSummaryHist(ibooker, "chamberAllStatus");
218  h2SummaryStatusWarning = CreateSummaryHist(ibooker, "chamberWarnings");
219  h2SummaryStatusError = CreateSummaryHist(ibooker, "chamberErrors");
220  h2SummaryStatusVFATWarning = CreateSummaryHist(ibooker, "chamberVFATWarnings");
221  h2SummaryStatusVFATError = CreateSummaryHist(ibooker, "chamberVFATErrors");
222  h2SummaryStatusOHWarning = CreateSummaryHist(ibooker, "chamberOHWarnings");
223  h2SummaryStatusOHError = CreateSummaryHist(ibooker, "chamberOHErrors");
224  h2SummaryStatusAMCWarning = CreateSummaryHist(ibooker, "chamberAMCWarnings");
225  h2SummaryStatusAMCError = CreateSummaryHist(ibooker, "chamberAMCErrors");
226  h2SummaryStatusAMC13Error = CreateSummaryHist(ibooker, "chamberAMC13Errors");
227 
228  h2SummaryStatusAll->setTitle("Summary of all number of OH or VFAT status of each chambers");
229  h2SummaryStatusWarning->setTitle("Summary of all warnings of each chambers");
230  h2SummaryStatusError->setTitle("Summary of all errors of each chambers");
231  h2SummaryStatusVFATWarning->setTitle("Summary of VFAT warnings of each chambers");
232  h2SummaryStatusVFATError->setTitle("Summary of VFAT errors of each chambers");
233  h2SummaryStatusOHWarning->setTitle("Summary of OH warnings of each chambers");
234  h2SummaryStatusOHError->setTitle("Summary of OH errors of each chambers");
235  h2SummaryStatusAMCWarning->setTitle("Summary of AMC warnings of each chambers");
236  h2SummaryStatusAMCError->setTitle("Summary of AMC errors of each chambers");
237  h2SummaryStatusAMC13Error->setTitle("Summary of AMC13 errors of each chambers");
238  }
239 }
240 
242  MEStationInfo &stationInfo = mapStationInfo_[key];
243 
245  mapStatusOH_.bookND(bh, key);
247 
248  if (mapStatusOH_.isOperating()) {
250  }
251 
257 
263 
264  return 0;
265 }
266 
268  ME3IdsKey key3 = key4Tokey3(key);
269  MEStationInfo &stationInfo = mapStationInfo_[key3];
270 
271  bh.getBooker()->setCurrentFolder(strFolderMain_ + "/VFATStatus_" + getNameDirLayer(key3));
272 
273  mapStatusVFATPerCh_.SetBinConfX(stationInfo.nMaxVFAT_, -0.5);
278  }
279 
281 
282  return 0;
283 }
284 
290 
291  event.getByToken(tagVFAT_, gemVFAT);
292  event.getByToken(tagOH_, gemOH);
293  event.getByToken(tagAMC_, gemAMC);
294  event.getByToken(tagAMC13_, gemAMC13);
295 
296  std::map<ME4IdsKey, bool> mapChamberAll;
297  std::map<ME4IdsKey, bool> mapChamberWarning;
298  std::map<ME4IdsKey, bool> mapChamberError;
299  std::map<ME4IdsKey, bool> mapChamberVFATWarning;
300  std::map<ME4IdsKey, bool> mapChamberVFATError;
301  std::map<ME4IdsKey, bool> mapChamberOHWarning;
302  std::map<ME4IdsKey, bool> mapChamberOHError;
303  std::map<ME4IdsKey, bool> mapChamberAMCWarning;
304  std::map<ME4IdsKey, bool> mapChamberAMCError;
305  std::map<ME4IdsKey, bool> mapChamberAMC13Error;
306 
307  for (auto amc13It = gemAMC13->begin(); amc13It != gemAMC13->end(); ++amc13It) {
308  int fedId = (*amc13It).first;
309  if (mapFEDIdToRe_.find(fedId) == mapFEDIdToRe_.end())
310  continue;
311  int nXBin = 0;
312  if (mapFEDIdToRe_[fedId] < 0) {
313  nXBin = 1;
314  } else if (mapFEDIdToRe_[fedId] > 0) {
315  nXBin = 2;
316  } else {
317  edm::LogError(log_category_) << "+++ Error : Unknown FED Id +++\n" << std::endl;
318  continue;
319  }
320 
321  const auto &range = (*amc13It).second;
322  for (auto amc13 = range.first; amc13 != range.second; ++amc13) {
323  Bool_t bWarn = false;
324  Bool_t bErr = false;
325 
328  if (warnings.InValidAMC)
329  FillWithRiseErr(h2AMC13Status_, nXBin, 2, bWarn);
330  }
331 
334  if (errors.InValidSize)
335  FillWithRiseErr(h2AMC13Status_, nXBin, 3, bErr);
336  if (errors.failTrailerCheck)
337  FillWithRiseErr(h2AMC13Status_, nXBin, 4, bErr);
338  if (errors.failFragmentLength)
339  FillWithRiseErr(h2AMC13Status_, nXBin, 5, bErr);
340  if (errors.failTrailerMatch)
341  FillWithRiseErr(h2AMC13Status_, nXBin, 6, bErr);
342  if (errors.moreTrailers)
343  FillWithRiseErr(h2AMC13Status_, nXBin, 7, bErr);
344  if (errors.crcModified)
345  FillWithRiseErr(h2AMC13Status_, nXBin, 8, bErr);
346  if (errors.slinkError)
347  FillWithRiseErr(h2AMC13Status_, nXBin, 9, bErr);
348  if (errors.wrongFedId)
349  FillWithRiseErr(h2AMC13Status_, nXBin, 10, bErr);
350  }
351 
352  if (!bWarn && !bErr) {
354  h2AMC13Status_->Fill(nXBin, 1);
355  }
356  } else {
357  auto &listChamber = mapAMC13ToListChamber_[fedId];
358  for (auto gid : listChamber) {
359  ME4IdsKey key4Ch{gid.region(), gid.station(), gid.layer(), gid.chamber()};
360  if (bErr)
361  mapChamberAMC13Error[key4Ch] = false;
362  }
363  }
364  }
365  }
366 
367  MonitorElement *h2AMCStatus = nullptr;
368 
369  for (auto amcIt = gemAMC->begin(); amcIt != gemAMC->end(); ++amcIt) {
370  int fedId = (*amcIt).first;
371  if (mapFEDIdToRe_.find(fedId) == mapFEDIdToRe_.end())
372  continue;
373  if (mapFEDIdToRe_[fedId] < 0) {
374  h2AMCStatus = h2AMCStatusNeg_;
375  } else if (mapFEDIdToRe_[fedId] > 0) {
376  h2AMCStatus = h2AMCStatusPos_;
377  } else {
378  edm::LogError(log_category_) << "+++ Error : Unknown FED Id +++\n" << std::endl;
379  continue;
380  }
381 
382  const GEMAMCStatusCollection::Range &range = (*amcIt).second;
383  for (auto amc = range.first; amc != range.second; ++amc) {
384  Bool_t bWarn = false;
385  Bool_t bErr = false;
386 
387  Int_t nAMCNum = amc->amcNumber();
388 
389  GEMAMCStatus::Warnings warnings{amc->warnings()};
391  if (warnings.InValidOH)
392  FillWithRiseErr(h2AMCStatus, nAMCNum, 2, bWarn);
393  if (warnings.backPressure)
394  FillWithRiseErr(h2AMCStatus, nAMCNum, 3, bWarn);
395  }
396 
397  GEMAMCStatus::Errors errors{amc->errors()};
399  if (errors.badEC)
400  FillWithRiseErr(h2AMCStatus, nAMCNum, 4, bErr);
401  if (errors.badBC)
402  FillWithRiseErr(h2AMCStatus, nAMCNum, 5, bErr);
403  if (errors.badOC)
404  FillWithRiseErr(h2AMCStatus, nAMCNum, 6, bErr);
405  if (errors.badRunType)
406  FillWithRiseErr(h2AMCStatus, nAMCNum, 7, bErr);
407  if (errors.badCRC)
408  FillWithRiseErr(h2AMCStatus, nAMCNum, 8, bErr);
409  if (errors.MMCMlocked)
410  FillWithRiseErr(h2AMCStatus, nAMCNum, 9, bErr);
411  if (errors.DAQclocklocked)
412  FillWithRiseErr(h2AMCStatus, nAMCNum, 10, bErr);
413  if (errors.DAQnotReday)
414  FillWithRiseErr(h2AMCStatus, nAMCNum, 11, bErr);
415  if (errors.BC0locked)
416  FillWithRiseErr(h2AMCStatus, nAMCNum, 12, bErr);
417  }
418 
419  if (!bWarn && !bErr) {
421  h2AMCStatus->Fill(nAMCNum, 1);
422  }
423  } else {
424  auto &listChamber = mapAMCToListChamber_[{fedId, nAMCNum}];
425  for (auto gid : listChamber) {
426  ME4IdsKey key4Ch{gid.region(), gid.station(), gid.layer(), gid.chamber()};
427  if (bErr)
428  mapChamberAMCError[key4Ch] = false;
429  if (bWarn)
430  mapChamberAMCWarning[key4Ch] = false;
431  }
432  }
433  }
434  }
435 
436  for (auto ohIt = gemOH->begin(); ohIt != gemOH->end(); ++ohIt) {
437  GEMDetId gid = (*ohIt).first;
438  ME3IdsKey key3{gid.region(), gid.station(), gid.layer()};
439  ME4IdsKey key4{gid.region(), gid.station(), gid.layer(), gid.chamber()}; // WARNING: Chamber, not iEta
440 
441  const GEMOHStatusCollection::Range &range = (*ohIt).second;
442  for (auto OHStatus = range.first; OHStatus != range.second; ++OHStatus) {
443  GEMOHStatus::Warnings warnings{OHStatus->warnings()};
444  if (warnings.EvtNF)
445  mapStatusOH_.Fill(key3, gid.chamber(), 2);
446  if (warnings.InNF)
447  mapStatusOH_.Fill(key3, gid.chamber(), 3);
448  if (warnings.L1aNF)
449  mapStatusOH_.Fill(key3, gid.chamber(), 4);
450  if (warnings.EvtSzW)
451  mapStatusOH_.Fill(key3, gid.chamber(), 5);
452  if (warnings.InValidVFAT)
453  mapStatusOH_.Fill(key3, gid.chamber(), 6);
454 
455  GEMOHStatus::Errors errors{OHStatus->errors()};
456  if (errors.EvtF)
457  mapStatusOH_.Fill(key3, gid.chamber(), 7);
458  if (errors.InF)
459  mapStatusOH_.Fill(key3, gid.chamber(), 8);
460  if (errors.L1aF)
461  mapStatusOH_.Fill(key3, gid.chamber(), 9);
462  if (errors.EvtSzOFW)
463  mapStatusOH_.Fill(key3, gid.chamber(), 10);
464  if (errors.Inv)
465  mapStatusOH_.Fill(key3, gid.chamber(), 11);
466  if (errors.OOScAvV)
467  mapStatusOH_.Fill(key3, gid.chamber(), 12);
468  if (errors.OOScVvV)
469  mapStatusOH_.Fill(key3, gid.chamber(), 13);
470  if (errors.BxmAvV)
471  mapStatusOH_.Fill(key3, gid.chamber(), 14);
472  if (errors.BxmVvV)
473  mapStatusOH_.Fill(key3, gid.chamber(), 15);
474  if (errors.InUfw)
475  mapStatusOH_.Fill(key3, gid.chamber(), 16);
476  if (errors.badVFatCount)
477  mapStatusOH_.Fill(key3, gid.chamber(), 17);
478 
479  Bool_t bWarn = warnings.wcodes != 0;
480  Bool_t bErr = errors.codes != 0;
481  if (!bWarn && !bErr)
482  mapStatusOH_.Fill(key3, gid.chamber(), 1);
483  if (bWarn)
484  mapChamberOHWarning[key4] = false;
485  if (bErr)
486  mapChamberOHError[key4] = false;
487  mapChamberAll[key4] = true;
488  }
489  }
490 
491  for (auto vfatIt = gemVFAT->begin(); vfatIt != gemVFAT->end(); ++vfatIt) {
492  GEMDetId gid = (*vfatIt).first;
493  ME3IdsKey key3{gid.region(), gid.station(), gid.layer()};
494  ME4IdsKey key4Ch{gid.region(), gid.station(), gid.layer(), gid.chamber()}; // WARNING: Chamber, not iEta
495  const GEMVFATStatusCollection::Range &range = (*vfatIt).second;
496 
497  for (auto vfatStat = range.first; vfatStat != range.second; ++vfatStat) {
498  Int_t nIdxVFAT = getVFATNumber(gid.station(), gid.ieta(), vfatStat->vfatPosition());
499 
500  GEMVFATStatus::Warnings warnings{vfatStat->warnings()};
501  if (warnings.basicOFW)
502  mapStatusVFATPerCh_.Fill(key4Ch, nIdxVFAT, 2);
503  if (warnings.zeroSupOFW)
504  mapStatusVFATPerCh_.Fill(key4Ch, nIdxVFAT, 3);
505 
506  GEMVFATStatus::Errors errors{(uint8_t)vfatStat->errors()};
507  mapStatusVFATPerCh_.Fill(key4Ch, nIdxVFAT, 4);
508  if (errors.InValidHeader)
509  mapStatusVFATPerCh_.Fill(key4Ch, nIdxVFAT, 5);
510  if (errors.EC)
511  mapStatusVFATPerCh_.Fill(key4Ch, nIdxVFAT, 6);
512  if (errors.BC)
513  mapStatusVFATPerCh_.Fill(key4Ch, nIdxVFAT, 7);
514 
515  Bool_t bWarn = warnings.wcodes != 0;
516  Bool_t bErr = errors.codes != 0;
517  if (!bWarn && !bErr)
518  mapStatusVFATPerCh_.Fill(key4Ch, nIdxVFAT, 1);
519  if (bWarn)
520  mapChamberVFATWarning[key4Ch] = false;
521  if (bErr)
522  mapChamberVFATError[key4Ch] = false;
523  if (bWarn)
524  mapStatusWarnVFATPerLayer_.Fill(key3, gid.chamber(), nIdxVFAT);
525  if (bErr)
526  mapStatusErrVFATPerLayer_.Fill(key3, gid.chamber(), nIdxVFAT);
527  mapChamberAll[key4Ch] = true;
528  }
529  }
530 
532  // Summarizing all presence of status of each chamber
533  for (auto const &[key4, bErr] : mapChamberAll) {
534  ME3IdsKey key3 = key4Tokey3(key4);
535  Int_t nChamber = keyToChamber(key4);
536  h2SummaryStatusAll->Fill(nChamber, mapStationToIdx_[key3]);
537  }
538 
539  // Summarizing all presence of status of each chamber
541  // Summarizing all the error and warning occupancy
542  FillStatusSummaryPlot(mapChamberVFATWarning, h2SummaryStatusVFATWarning, &mapChamberWarning);
543  FillStatusSummaryPlot(mapChamberVFATError, h2SummaryStatusVFATError, &mapChamberError);
544  FillStatusSummaryPlot(mapChamberOHWarning, h2SummaryStatusOHWarning, &mapChamberWarning);
545  FillStatusSummaryPlot(mapChamberOHError, h2SummaryStatusOHError, &mapChamberError);
546  FillStatusSummaryPlot(mapChamberAMCWarning, h2SummaryStatusAMCWarning, &mapChamberWarning);
547  FillStatusSummaryPlot(mapChamberAMCError, h2SummaryStatusAMCError, &mapChamberError);
548  FillStatusSummaryPlot(mapChamberAMC13Error, h2SummaryStatusAMC13Error, &mapChamberError);
549 
550  FillStatusSummaryPlot(mapChamberWarning, h2SummaryStatusWarning);
552  }
553 }
554 
virtual void setTitle(const std::string &title)
set (ie. change) histogram/profile title
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
constexpr int station() const
Definition: GEMDetId.h:179
ESGetTokenH3DDVariant esConsumes(std::string const &Record, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
MEMapInfT< MEMap4Ids, ME4IdsKey > MEMap4Inf
Definition: GEMDQMBase.h:460
dqm::impl::MonitorElement * CreateSummaryHist(DQMStore::IBooker &ibooker, TString strName)
Definition: GEMDQMBase.cc:131
int ProcessWithMEMap3WithChamber(BookingHelper &bh, ME4IdsKey key) override
GEMDAQStatusSource(const edm::ParameterSet &cfg)
constexpr int region() const
Definition: GEMDetId.h:171
Int_t nRunType_
Definition: GEMDQMBase.h:516
void FillWithRiseErr(MonitorElement *h, Int_t nX, Int_t nY, Bool_t &bErr)
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
edm::EDGetToken tagAMC13_
int getVFATNumber(const int, const int, const int)
Definition: GEMDQMBase.h:612
MonitorElement * h2SummaryStatusAMCWarning
MonitorElement * h2AMCStatusNeg_
MEMapInfT< MEMap3Ids, ME3IdsKey > MEMap3Inf
Definition: GEMDQMBase.h:459
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
MonitorElement * h2AMC13Status_
int SetLabelForChambers(K key, Int_t nAxis, Int_t nNumBin=-1)
Definition: GEMDQMBase.h:337
MonitorElement * h2SummaryStatusAMCError
int initGeometry(edm::EventSetup const &iSetup)
Definition: GEMDQMBase.cc:27
std::tuple< Int_t, Int_t, Int_t, Int_t > ME4IdsKey
std::map< UInt_t, int > mapFEDIdToRe_
int SetLabelForVFATs(K key, Int_t nNumEtaPartitions, Int_t nAxis, Int_t nNumBin=-1)
Definition: GEMDQMBase.h:359
std::map< ME3IdsKey, MEStationInfo > mapStationInfo_
Definition: GEMDQMBase.h:587
std::map< std::tuple< int, int >, std::vector< GEMDetId > > mapAMCToListChamber_
int loadChambers()
Definition: GEMDQMBase.cc:58
std::map< ME3IdsKey, int > mapStationToIdx_
Definition: GEMDQMBase.h:586
Log< level::Error, false > LogError
constexpr int layer() const
Definition: GEMDetId.h:190
int Fill(K key, Double_t x)
Definition: GEMDQMBase.h:380
std::string log_category_
Definition: GEMDQMBase.h:518
constexpr int chamber() const
Definition: GEMDetId.h:183
edm::EDGetToken tagVFAT_
MonitorElement * h2SummaryStatusVFATError
const edm::ESGetToken< GEMChMap, GEMChMapRcd > gemChMapToken_
void Fill(long long x)
MEMap3Inf mapStatusWarnVFATPerLayer_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
edm::EDGetToken tagOH_
MonitorElement * h2SummaryStatusError
MEMap3Inf mapStatusErrVFATPerLayer_
int GenerateMEPerChamber(DQMStore::IBooker &ibooker)
Definition: GEMDQMBase.cc:163
void SetLabelAMCStatus(MonitorElement *h2Status)
void LoadROMap(edm::EventSetup const &iSetup)
void analyze(edm::Event const &e, edm::EventSetup const &eSetup) override
Transition
Definition: Transition.h:12
bool getData(T &iHolder) const
Definition: EventSetup.h:122
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)
DigiRangeIterator begin() const
void SetLabelAMC13Status(MonitorElement *h2Status)
std::map< int, std::vector< GEMDetId > > mapAMC13ToListChamber_
MonitorElement * h2SummaryStatusVFATWarning
MonitorElement * h2SummaryStatusAll
constexpr int ieta() const
Definition: GEMDetId.h:199
const GEMGeometry * GEMGeometry_
Definition: GEMDQMBase.h:573
void SetLabelVFATStatus(MonitorElement *h2Status)
std::pair< const_iterator, const_iterator > Range
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
void add(std::string const &label, ParameterSetDescription const &psetDescription)
DQMStore::IBooker * getBooker()
Definition: GEMDQMBase.h:94
int keyToChamber(ME4IdsKey key)
Definition: GEMDQMBase.h:540
void SetLabelOHStatus(MonitorElement *h2Status)
std::string getNameDirLayer(ME3IdsKey key3)
Definition: GEMDQMBase.h:659
int bookND(BookingHelper &bh, K key)
Definition: GEMDQMBase.h:307
MonitorElement * h2SummaryStatusOHWarning
ME3IdsKey key4Tokey3(ME4IdsKey key)
Definition: GEMDQMBase.h:549
MonitorElement * h2SummaryStatusAMC13Error
HLT enums.
int ProcessWithMEMap3(BookingHelper &bh, ME3IdsKey key) override
std::tuple< Int_t, Int_t, Int_t > ME3IdsKey
void SetBinConfX(Int_t nBins, Double_t dL=0.5, Double_t dH=-1048576.0)
Definition: GEMDQMBase.h:281
Definition: errors.py:1
MonitorElement * h2SummaryStatusWarning
Definition: AMCSpec.h:8
void FillStatusSummaryPlot(std::map< ME4IdsKey, bool > &mapChamber, MonitorElement *h2Plot, std::map< ME4IdsKey, bool > *pmapSummary=nullptr)
MonitorElement * h2SummaryStatusOHError
void SetBinConfY(Int_t nBins, Double_t dL=0.5, Double_t dH=-1048576.0)
Definition: GEMDQMBase.h:289
dqm::impl::MonitorElement * FindHist(K key)
Definition: GEMDQMBase.h:328
DigiRangeIterator end() const
Definition: event.py:1
Definition: Run.h:45
MonitorElement * h2AMCStatusPos_
edm::EDGetToken tagAMC_