CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
GEMDAQStatusSource.cc
Go to the documentation of this file.
2 
3 using namespace std;
4 using namespace edm;
5 
7  tagVFAT_ = consumes<GEMVFATStatusCollection>(cfg.getParameter<edm::InputTag>("VFATInputLabel"));
8  tagOH_ = consumes<GEMOHStatusCollection>(cfg.getParameter<edm::InputTag>("OHInputLabel"));
9  tagAMC_ = consumes<GEMAMCStatusCollection>(cfg.getParameter<edm::InputTag>("AMCInputLabel"));
10  tagAMC13_ = consumes<GEMAMC13StatusCollection>(cfg.getParameter<edm::InputTag>("AMC13InputLabel"));
11 
12  nAMCSlots_ = cfg.getParameter<Int_t>("AMCSlots");
13 }
14 
17  desc.add<edm::InputTag>("VFATInputLabel", edm::InputTag("muonGEMDigis", "VFATStatus"));
18  desc.add<edm::InputTag>("OHInputLabel", edm::InputTag("muonGEMDigis", "OHStatus"));
19  desc.add<edm::InputTag>("AMCInputLabel", edm::InputTag("muonGEMDigis", "AMCStatus"));
20  desc.add<edm::InputTag>("AMC13InputLabel", edm::InputTag("muonGEMDigis", "AMC13Status"));
21 
22  desc.add<Int_t>("AMCSlots", 13);
23  desc.addUntracked<std::string>("logCategory", "GEMDAQStatusSource");
24 
25  descriptions.add("GEMDAQStatusSource", desc);
26 }
27 
29  unsigned int unBinPos = 1;
30  h2Status->setBinLabel(unBinPos++, "Good", 2);
31  h2Status->setBinLabel(unBinPos++, "Invalid AMC", 2);
32  h2Status->setBinLabel(unBinPos++, "Invalid size", 2);
33  h2Status->setBinLabel(unBinPos++, "Fail trailer check", 2);
34  h2Status->setBinLabel(unBinPos++, "Fail fragment length", 2);
35  h2Status->setBinLabel(unBinPos++, "Fail trailer match", 2);
36  h2Status->setBinLabel(unBinPos++, "More trailer", 2);
37  h2Status->setBinLabel(unBinPos++, "CRC modified", 2);
38  h2Status->setBinLabel(unBinPos++, "S-link error", 2);
39  h2Status->setBinLabel(unBinPos++, "Wrong FED ID", 2);
40 
41  h2Status->setBinLabel(1, "GE11-M", 1);
42  h2Status->setBinLabel(2, "GE11-P", 1);
43 }
44 
46  unsigned int unBinPos = 1;
47  h2Status->setBinLabel(unBinPos++, "Good", 2);
48  h2Status->setBinLabel(unBinPos++, "Invalid OH", 2);
49  h2Status->setBinLabel(unBinPos++, "Back pressure", 2);
50  h2Status->setBinLabel(unBinPos++, "Bad EC", 2);
51  h2Status->setBinLabel(unBinPos++, "Bad BC", 2);
52  h2Status->setBinLabel(unBinPos++, "Bad OC", 2);
53  h2Status->setBinLabel(unBinPos++, "Bad run type", 2);
54  h2Status->setBinLabel(unBinPos++, "Bad CRC", 2);
55  h2Status->setBinLabel(unBinPos++, "MMCM locked", 2);
56  h2Status->setBinLabel(unBinPos++, "DAQ clock locked", 2);
57  h2Status->setBinLabel(unBinPos++, "DAQ not ready", 2);
58  h2Status->setBinLabel(unBinPos++, "BC0 not locked", 2);
59 }
60 
62  unsigned int unBinPos = 1;
63  h2Status->setBinLabel(unBinPos++, "Good", 2);
64  h2Status->setBinLabel(unBinPos++, "Event FIFO near full", 2);
65  h2Status->setBinLabel(unBinPos++, "Input FIFO near full", 2);
66  h2Status->setBinLabel(unBinPos++, "L1A FIFO near full", 2);
67  h2Status->setBinLabel(unBinPos++, "Event size warn", 2);
68  h2Status->setBinLabel(unBinPos++, "Invalid VFAT", 2);
69  h2Status->setBinLabel(unBinPos++, "Event FIFO full", 2);
70  h2Status->setBinLabel(unBinPos++, "Input FIFO full", 2);
71  h2Status->setBinLabel(unBinPos++, "L1A FIFO full", 2);
72  h2Status->setBinLabel(unBinPos++, "Event size overflow", 2);
73  h2Status->setBinLabel(unBinPos++, "Invalid event", 2);
74  h2Status->setBinLabel(unBinPos++, "Out of Sync AMC vs VFAT", 2);
75  h2Status->setBinLabel(unBinPos++, "Out of Sync VFAT vs VFAT", 2);
76  h2Status->setBinLabel(unBinPos++, "BX mismatch AMC vs VFAT", 2);
77  h2Status->setBinLabel(unBinPos++, "BX mismatch VFAT vs VFAT", 2);
78  h2Status->setBinLabel(unBinPos++, "Input FIFO underflow", 2);
79  h2Status->setBinLabel(unBinPos++, "Bad VFAT count", 2);
80 }
81 
83  unsigned int unBinPos = 1;
84  h2Status->setBinLabel(unBinPos++, "Good", 2);
85  h2Status->setBinLabel(unBinPos++, "Basic overflow", 2);
86  h2Status->setBinLabel(unBinPos++, "Zero-sup overflow", 2);
87  h2Status->setBinLabel(unBinPos++, "VFAT CRC error", 2);
88  h2Status->setBinLabel(unBinPos++, "Invalid header", 2);
89  h2Status->setBinLabel(unBinPos++, "AMC EC mismatch", 2);
90  h2Status->setBinLabel(unBinPos++, "AMC BC mismatch", 2);
91 }
92 
94  initGeometry(iSetup);
95  if (GEMGeometry_ == nullptr)
96  return;
97  loadChambers();
98 
99  nBXMin_ = -10;
100  nBXMax_ = 10;
101 
102  mapFEDIdToRe_[1467] = -1; // FIXME: Need more systematic way
103  mapFEDIdToRe_[1468] = 1;
104 
105  ibooker.cd();
106  ibooker.setCurrentFolder("GEM/DAQStatus");
107 
109  ibooker.book2D("amc13_status", "AMC13 Status;AMC13;", 2, 0.5, 2.5, nBitAMC13_, 0.5, nBitAMC13_ + 0.5);
110  h2AMCStatusNeg_ = ibooker.book2D("amc_status_GE11-M",
111  "AMC Status GE11-M;AMC slot;",
112  nAMCSlots_,
113  -0.5,
114  nAMCSlots_ - 0.5,
115  nBitAMC_,
116  0.5,
117  nBitAMC_ + 0.5);
118  h2AMCStatusPos_ = ibooker.book2D("amc_status_GE11-P",
119  "AMC Status GE11-P;AMC slot;",
120  nAMCSlots_,
121  -0.5,
122  nAMCSlots_ - 0.5,
123  nBitAMC_,
124  0.5,
125  nBitAMC_ + 0.5);
126 
130 
131  mapStatusOH_ =
132  MEMap3Inf(this, "oh_status", "OptoHybrid Status", 36, 0.5, 36.5, nBitOH_, 0.5, nBitOH_ + 0.5, "Chamber");
134  MEMap3Inf(this, "vfat_status", "VFAT Status", 24, -0.5, 24 - 0.5, nBitVFAT_, 0.5, nBitVFAT_ + 0.5, "VFAT");
135 
137  this, "vfat_statusWarnSum", "VFAT reporting warnings", 36, 0.5, 36.5, 24, -0.5, 24 - 0.5, "Chamber", "VFAT");
139  this, "vfat_statusErrSum", "VFAT reporting errors", 36, 0.5, 36.5, 24, -0.5, 24 - 0.5, "Chamber", "VFAT");
141  MEMap4Inf(this, "vfat_status", "VFAT Status", 24, -0.5, 24 - 0.5, nBitVFAT_, 0.5, nBitVFAT_ + 0.5, "VFAT");
142 
143  GenerateMEPerChamber(ibooker);
144 
145  h2SummaryStatusAll = CreateSummaryHist(ibooker, "chamberAllStatus");
146  h2SummaryStatusWarning = CreateSummaryHist(ibooker, "chamberWarnings");
147  h2SummaryStatusError = CreateSummaryHist(ibooker, "chamberErrors");
148 
149  h2SummaryStatusAll->setTitle("Summary of all number of OH or VFAT status of each chambers");
150  h2SummaryStatusWarning->setTitle("Summary of OH or VFAT warnings of each chambers");
151  h2SummaryStatusError->setTitle("Summary of OH or VFAT errors of each chambers");
152 }
153 
155  MEStationInfo &stationInfo = mapStationInfo_[key];
156 
158  mapStatusOH_.bookND(bh, key);
160 
162 
168 
174 
175  mapStatusVFAT_.SetBinConfX(stationInfo.nMaxVFAT_, -0.5);
176  mapStatusVFAT_.bookND(bh, key);
178 
180 
181  return 0;
182 }
183 
185  ME3IdsKey key3 = key4Tokey3(key);
186  MEStationInfo &stationInfo = mapStationInfo_[key3];
187 
188  mapStatusVFATPerCh_.SetBinConfX(stationInfo.nMaxVFAT_, -0.5);
189  mapStatusVFATPerCh_.bookND(bh, key);
192 
193  return 0;
194 }
195 
201 
202  event.getByToken(tagVFAT_, gemVFAT);
203  event.getByToken(tagOH_, gemOH);
204  event.getByToken(tagAMC_, gemAMC);
205  event.getByToken(tagAMC13_, gemAMC13);
206 
207  for (auto amc13It = gemAMC13->begin(); amc13It != gemAMC13->end(); ++amc13It) {
208  int fedId = (*amc13It).first;
209  if (mapFEDIdToRe_.find(fedId) == mapFEDIdToRe_.end())
210  continue;
211  int nXBin = 0;
212  if (mapFEDIdToRe_[fedId] < 0) {
213  nXBin = 1;
214  } else if (mapFEDIdToRe_[fedId] > 0) {
215  nXBin = 2;
216  } else {
217  edm::LogError(log_category_) << "+++ Error : Unknown FED Id +++\n" << std::endl;
218  continue;
219  }
220 
221  const auto &range = (*amc13It).second;
222  for (auto amc13 = range.first; amc13 != range.second; ++amc13) {
223  Bool_t bWarn = false;
224  Bool_t bErr = false;
225 
226  GEMAMC13Status::Warnings warnings{amc13->warnings()};
227  if (warnings.InValidAMC)
228  FillWithRiseErr(h2AMC13Status_, nXBin, 2, bWarn);
229 
230  GEMAMC13Status::Errors errors{amc13->errors()};
231  if (errors.InValidSize)
232  FillWithRiseErr(h2AMC13Status_, nXBin, 3, bErr);
233  if (errors.failTrailerCheck)
234  FillWithRiseErr(h2AMC13Status_, nXBin, 4, bErr);
235  if (errors.failFragmentLength)
236  FillWithRiseErr(h2AMC13Status_, nXBin, 5, bErr);
237  if (errors.failTrailerMatch)
238  FillWithRiseErr(h2AMC13Status_, nXBin, 6, bErr);
239  if (errors.moreTrailers)
240  FillWithRiseErr(h2AMC13Status_, nXBin, 7, bErr);
241  if (errors.crcModified)
242  FillWithRiseErr(h2AMC13Status_, nXBin, 8, bErr);
243  if (errors.slinkError)
244  FillWithRiseErr(h2AMC13Status_, nXBin, 9, bErr);
245  if (errors.wrongFedId)
246  FillWithRiseErr(h2AMC13Status_, nXBin, 10, bErr);
247 
248  if (!bWarn && !bErr)
249  h2AMC13Status_->Fill(nXBin, 1);
250  }
251  }
252 
253  MonitorElement *h2AMCStatus = nullptr;
254 
255  for (auto amcIt = gemAMC->begin(); amcIt != gemAMC->end(); ++amcIt) {
256  int fedId = (*amcIt).first;
257  if (mapFEDIdToRe_.find(fedId) == mapFEDIdToRe_.end())
258  continue;
259  if (mapFEDIdToRe_[fedId] < 0) {
260  h2AMCStatus = h2AMCStatusNeg_;
261  } else if (mapFEDIdToRe_[fedId] > 0) {
262  h2AMCStatus = h2AMCStatusPos_;
263  } else {
264  edm::LogError(log_category_) << "+++ Error : Unknown FED Id +++\n" << std::endl;
265  continue;
266  }
267 
268  const GEMAMCStatusCollection::Range &range = (*amcIt).second;
269  for (auto amc = range.first; amc != range.second; ++amc) {
270  Bool_t bWarn = false;
271  Bool_t bErr = false;
272 
273  Int_t nAMCNum = amc->amcNumber();
274 
275  GEMAMCStatus::Warnings warnings{amc->warnings()};
276  if (warnings.InValidOH)
277  FillWithRiseErr(h2AMCStatus, nAMCNum, 2, bWarn);
278  if (warnings.backPressure)
279  FillWithRiseErr(h2AMCStatus, nAMCNum, 3, bWarn);
280 
281  GEMAMCStatus::Errors errors{amc->errors()};
282  if (errors.badEC)
283  FillWithRiseErr(h2AMCStatus, nAMCNum, 4, bErr);
284  if (errors.badBC)
285  FillWithRiseErr(h2AMCStatus, nAMCNum, 5, bErr);
286  if (errors.badOC)
287  FillWithRiseErr(h2AMCStatus, nAMCNum, 6, bErr);
288  if (errors.badRunType)
289  FillWithRiseErr(h2AMCStatus, nAMCNum, 7, bErr);
290  if (errors.badCRC)
291  FillWithRiseErr(h2AMCStatus, nAMCNum, 8, bErr);
292  if (errors.MMCMlocked)
293  FillWithRiseErr(h2AMCStatus, nAMCNum, 9, bErr);
294  if (errors.DAQclocklocked)
295  FillWithRiseErr(h2AMCStatus, nAMCNum, 10, bErr);
296  if (errors.DAQnotReday)
297  FillWithRiseErr(h2AMCStatus, nAMCNum, 11, bErr);
298  if (errors.BC0locked)
299  FillWithRiseErr(h2AMCStatus, nAMCNum, 12, bErr);
300 
301  if (!bWarn && !bErr)
302  h2AMCStatus->Fill(nAMCNum, 1);
303  }
304  }
305 
306  // WARNING: ME4IdsKey for region, station, layer, chamber (not iEta)
307  std::map<ME4IdsKey, bool> mapChamberAll;
308  std::map<ME4IdsKey, bool> mapChamberWarning;
309  std::map<ME4IdsKey, bool> mapChamberError;
310 
311  for (auto ohIt = gemOH->begin(); ohIt != gemOH->end(); ++ohIt) {
312  GEMDetId gid = (*ohIt).first;
313  ME3IdsKey key3{gid.region(), gid.station(), gid.layer()};
314  ME4IdsKey key4{gid.region(), gid.station(), gid.layer(), gid.chamber()}; // WARNING: Chamber, not iEta
315 
316  const GEMOHStatusCollection::Range &range = (*ohIt).second;
317  for (auto OHStatus = range.first; OHStatus != range.second; ++OHStatus) {
318  GEMOHStatus::Warnings warnings{OHStatus->warnings()};
319  if (warnings.EvtNF)
320  mapStatusOH_.Fill(key3, gid.chamber(), 2);
321  if (warnings.InNF)
322  mapStatusOH_.Fill(key3, gid.chamber(), 3);
323  if (warnings.L1aNF)
324  mapStatusOH_.Fill(key3, gid.chamber(), 4);
325  if (warnings.EvtSzW)
326  mapStatusOH_.Fill(key3, gid.chamber(), 5);
327  if (warnings.InValidVFAT)
328  mapStatusOH_.Fill(key3, gid.chamber(), 6);
329 
330  GEMOHStatus::Errors errors{OHStatus->errors()};
331  if (errors.EvtF)
332  mapStatusOH_.Fill(key3, gid.chamber(), 7);
333  if (errors.InF)
334  mapStatusOH_.Fill(key3, gid.chamber(), 8);
335  if (errors.L1aF)
336  mapStatusOH_.Fill(key3, gid.chamber(), 9);
337  if (errors.EvtSzOFW)
338  mapStatusOH_.Fill(key3, gid.chamber(), 10);
339  if (errors.Inv)
340  mapStatusOH_.Fill(key3, gid.chamber(), 11);
341  if (errors.OOScAvV)
342  mapStatusOH_.Fill(key3, gid.chamber(), 12);
343  if (errors.OOScVvV)
344  mapStatusOH_.Fill(key3, gid.chamber(), 13);
345  if (errors.BxmAvV)
346  mapStatusOH_.Fill(key3, gid.chamber(), 14);
347  if (errors.BxmVvV)
348  mapStatusOH_.Fill(key3, gid.chamber(), 15);
349  if (errors.InUfw)
350  mapStatusOH_.Fill(key3, gid.chamber(), 16);
351  if (errors.badVFatCount)
352  mapStatusOH_.Fill(key3, gid.chamber(), 17);
353 
354  Bool_t bWarn = warnings.wcodes != 0;
355  Bool_t bErr = errors.codes != 0;
356  if (!bWarn && !bErr)
357  mapStatusOH_.Fill(key3, gid.chamber(), 1);
358  if (bWarn)
359  mapChamberWarning[key4] = false;
360  if (bErr)
361  mapChamberError[key4] = false;
362  mapChamberAll[key4] = true;
363  }
364  }
365 
366  for (auto vfatIt = gemVFAT->begin(); vfatIt != gemVFAT->end(); ++vfatIt) {
367  GEMDetId gid = (*vfatIt).first;
368  ME3IdsKey key3{gid.region(), gid.station(), gid.layer()};
369  ME4IdsKey key4Ch{gid.region(), gid.station(), gid.layer(), gid.chamber()}; // WARNING: Chamber, not iEta
370  const GEMVFATStatusCollection::Range &range = (*vfatIt).second;
371 
372  for (auto vfatStat = range.first; vfatStat != range.second; ++vfatStat) {
373  Int_t nIdxVFAT = getVFATNumber(gid.station(), gid.ieta(), vfatStat->vfatPosition());
374 
375  GEMVFATStatus::Warnings warnings{vfatStat->warnings()};
376  if (warnings.basicOFW)
377  mapStatusVFAT_.Fill(key3, nIdxVFAT, 2);
378  if (warnings.zeroSupOFW)
379  mapStatusVFAT_.Fill(key3, nIdxVFAT, 3);
380  if (warnings.basicOFW)
381  mapStatusVFATPerCh_.Fill(key4Ch, nIdxVFAT, 2);
382  if (warnings.zeroSupOFW)
383  mapStatusVFATPerCh_.Fill(key4Ch, nIdxVFAT, 3);
384 
385  GEMVFATStatus::Errors errors{(uint8_t)vfatStat->errors()};
386  if (errors.vc)
387  mapStatusVFAT_.Fill(key3, nIdxVFAT, 4);
388  if (errors.InValidHeader)
389  mapStatusVFAT_.Fill(key3, nIdxVFAT, 5);
390  if (errors.EC)
391  mapStatusVFAT_.Fill(key3, nIdxVFAT, 6);
392  if (errors.BC)
393  mapStatusVFAT_.Fill(key3, nIdxVFAT, 7);
394  if (errors.vc)
395  mapStatusVFATPerCh_.Fill(key4Ch, nIdxVFAT, 4);
396  if (errors.InValidHeader)
397  mapStatusVFATPerCh_.Fill(key4Ch, nIdxVFAT, 5);
398  if (errors.EC)
399  mapStatusVFATPerCh_.Fill(key4Ch, nIdxVFAT, 6);
400  if (errors.BC)
401  mapStatusVFATPerCh_.Fill(key4Ch, nIdxVFAT, 7);
402 
403  Bool_t bWarn = warnings.wcodes != 0;
404  Bool_t bErr = errors.codes != 0;
405  if (!bWarn && !bErr)
406  mapStatusVFAT_.Fill(key3, nIdxVFAT, 1);
407  if (!bWarn && !bErr)
408  mapStatusVFATPerCh_.Fill(key4Ch, nIdxVFAT, 1);
409  if (bWarn)
410  mapChamberWarning[key4Ch] = false;
411  if (bErr)
412  mapChamberError[key4Ch] = false;
413  if (bWarn)
414  mapStatusWarnVFATPerLayer_.Fill(key3, gid.chamber(), nIdxVFAT);
415  if (bErr)
416  mapStatusErrVFATPerLayer_.Fill(key3, gid.chamber(), nIdxVFAT);
417  mapChamberAll[key4Ch] = true;
418  }
419  }
420 
421  // Summarizing all presence of status of each chamber
422  for (auto const &[key4, bErr] : mapChamberAll) {
423  ME3IdsKey key3 = key4Tokey3(key4);
424  Int_t nChamber = keyToChamber(key4);
425  h2SummaryStatusAll->Fill(nChamber, mapStationToIdx_[key3]);
426  }
427 
428  // Summarizing the warning occupancy
429  for (auto const &[key4, bWarning] : mapChamberWarning) {
430  if (mapChamberError.find(key4) != mapChamberError.end()) // Avoiding any double-counting
431  continue;
432  ME3IdsKey key3 = key4Tokey3(key4);
433  Int_t nChamber = keyToChamber(key4);
434  h2SummaryStatusWarning->Fill(nChamber, mapStationToIdx_[key3]);
435  }
436 
437  // Summarizing the error occupancy
438  for (auto const &[key4, bErr] : mapChamberError) {
439  ME3IdsKey key3 = key4Tokey3(key4);
440  Int_t nChamber = keyToChamber(key4);
441  h2SummaryStatusError->Fill(nChamber, mapStationToIdx_[key3]);
442  }
443 }
444 
virtual void setTitle(const std::string &title)
set (ie. change) histogram/profile title
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
MEMapInfT< MEMap4Ids, ME4IdsKey > MEMap4Inf
Definition: GEMDQMBase.h:457
dqm::impl::MonitorElement * CreateSummaryHist(DQMStore::IBooker &ibooker, TString strName)
Definition: GEMDQMBase.cc:123
int ProcessWithMEMap3WithChamber(BookingHelper &bh, ME4IdsKey key) override
GEMDAQStatusSource(const edm::ParameterSet &cfg)
tuple cfg
Definition: looper.py:296
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
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:591
MonitorElement * h2AMCStatusNeg_
MEMapInfT< MEMap3Ids, ME3IdsKey > MEMap3Inf
Definition: GEMDQMBase.h:456
#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:334
int initGeometry(edm::EventSetup const &iSetup)
Definition: GEMDQMBase.cc:15
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:356
std::map< ME3IdsKey, MEStationInfo > mapStationInfo_
Definition: GEMDQMBase.h:564
int loadChambers()
Definition: GEMDQMBase.cc:46
std::map< ME3IdsKey, int > mapStationToIdx_
Definition: GEMDQMBase.h:563
Log< level::Error, false > LogError
int Fill(K key, Double_t x)
Definition: GEMDQMBase.h:377
std::string log_category_
Definition: GEMDQMBase.h:496
constexpr int ieta() const
Definition: GEMDetId.h:199
edm::EDGetToken tagVFAT_
const uint16_t range(const Frame &aFrame)
void Fill(long long x)
MEMap3Inf mapStatusWarnVFATPerLayer_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
edm::EDGetToken tagOH_
MonitorElement * h2SummaryStatusError
double amc
Definition: hdecay.h:20
MEMap3Inf mapStatusErrVFATPerLayer_
int GenerateMEPerChamber(DQMStore::IBooker &ibooker)
Definition: GEMDQMBase.cc:159
void SetLabelAMCStatus(MonitorElement *h2Status)
constexpr int region() const
Definition: GEMDetId.h:171
tuple key
prepare the HTCondor submission files and eventually submit them
void analyze(edm::Event const &e, edm::EventSetup const &eSetup) override
ParameterDescriptionBase * add(U const &iLabel, T const &value)
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)
void SetLabelAMC13Status(MonitorElement *h2Status)
MonitorElement * h2SummaryStatusAll
const GEMGeometry * GEMGeometry_
Definition: GEMDQMBase.h:550
void SetLabelVFATStatus(MonitorElement *h2Status)
constexpr int chamber() const
Definition: GEMDetId.h:183
constexpr int layer() const
Definition: GEMDetId.h:190
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:177
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
constexpr int station() const
Definition: GEMDetId.h:179
void add(std::string const &label, ParameterSetDescription const &psetDescription)
int keyToChamber(ME4IdsKey key)
Definition: GEMDQMBase.h:520
void SetLabelOHStatus(MonitorElement *h2Status)
int bookND(BookingHelper &bh, K key)
Definition: GEMDQMBase.h:305
ME3IdsKey key4Tokey3(ME4IdsKey key)
Definition: GEMDQMBase.h:529
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:279
MonitorElement * h2SummaryStatusWarning
void SetBinConfY(Int_t nBins, Double_t dL=0.5, Double_t dH=-1048576.0)
Definition: GEMDQMBase.h:287
dqm::impl::MonitorElement * FindHist(K key)
Definition: GEMDQMBase.h:326
Definition: Run.h:45
MonitorElement * h2AMCStatusPos_
edm::EDGetToken tagAMC_