19 #include <TDirectoryFile.h>
31 void dqmEndLuminosityBlock(DQMStore::IBooker &,
35 void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &)
override{};
47 m_fReportSummary = -1.0;
54 descriptions.
add(
"GEMDQMHarvester", desc);
62 refineSummaryHistogram(store);
64 store->setCurrentFolder(
"GEM/StatusDigi");
65 auto listME = store->getMEs();
67 for (
auto strName : listME) {
68 if (strName.find(
"vfatStatus_BC_") != std::string::npos) {
69 fillUnderOverflowBunchCrossing(store, strName);
76 std::string strNameSrc =
"reportSummaryMapPreliminary";
79 store->setCurrentFolder(strDirCurr);
81 MonitorElement *h3Curr = store->get(strDirCurr +
"/" + strNameSrc);
83 TH2F *h2New =
nullptr;
85 refineSummaryHistogramCore(h3Curr->
getTH3F(), strNewName, h2New);
86 store->book2D(strNewName, h2New);
89 store->bookFloat(
"reportSummary")->Fill(m_fReportSummary);
98 Int_t nNBinX = h3Src->GetNbinsX();
99 Int_t nNBinY = h3Src->GetNbinsY();
101 Float_t arrfBinX[128], arrfBinY[32];
103 Float_t fNumPass, fNumError, fNumTotal;
105 for (
i = 0;
i <= nNBinX;
i++)
106 arrfBinX[
i] = h3Src->GetXaxis()->GetBinLowEdge(
i + 1);
107 for (
i = 0;
i <= nNBinY;
i++)
108 arrfBinY[
i] = h3Src->GetYaxis()->GetBinLowEdge(
i + 1);
110 h2New =
new TH2F(strNewName.c_str(), h3Src->GetTitle(), nNBinX, arrfBinX, nNBinY, arrfBinY);
112 fNumTotal = fNumPass = fNumError = 0.0;
114 for (
i = 0;
i < nNBinX;
i++) {
115 h2New->GetXaxis()->SetBinLabel(
i + 1, h3Src->GetXaxis()->GetBinLabel(
i + 1));
116 for (
j = 0;
j < nNBinY;
j++) {
117 h2New->GetYaxis()->SetBinLabel(
j + 1, h3Src->GetYaxis()->GetBinLabel(
j + 1));
119 if (h3Src->GetBinContent(
i + 1,
j + 1, 2) != 0) {
120 h2New->SetBinContent(
i + 1,
j + 1, 2);
122 }
else if (h3Src->GetBinContent(
i + 1,
j + 1, 1) != 0) {
123 h2New->SetBinContent(
i + 1,
j + 1, 1);
131 if (fNumPass > 0.0 || fNumError > 0.0)
132 m_fReportSummary = fNumPass / fNumTotal;
138 store->setCurrentFolder(strDirCurr);
139 MonitorElement *h2Curr = store->get(strDirCurr +
"/" + strNameSrc);
144 for (Int_t
i = 0;
i < nNBinY;
i++) {