From 8244125560fdbf46440052fd7bb4b24dd1c63851 Mon Sep 17 00:00:00 2001 From: dstocco Date: Wed, 31 May 2023 00:55:32 +0200 Subject: [PATCH] Fill MID digits summary histo in the checker to avoid merging --- Modules/MUON/MID/src/DigitsQcCheck.cxx | 85 ++++++++++++++------------ Modules/MUON/MID/src/DigitsQcTask.cxx | 6 -- 2 files changed, 47 insertions(+), 44 deletions(-) diff --git a/Modules/MUON/MID/src/DigitsQcCheck.cxx b/Modules/MUON/MID/src/DigitsQcCheck.cxx index cd66984293..7bff14f977 100644 --- a/Modules/MUON/MID/src/DigitsQcCheck.cxx +++ b/Modules/MUON/MID/src/DigitsQcCheck.cxx @@ -64,56 +64,65 @@ Quality DigitsQcCheck::check(std::mapgetName() == "NbDigitTF") { mHistoHelper.setNTFs(static_cast(item.second->getObject())->GetBinContent(1)); - break; + } else if (item.second->getName() == "MeanMultiHits") { + meanMultiHits = static_cast(item.second->getObject()); } } - for (auto& [moName, mo] : *moMap) { - if (mo->getName() == "MeanMultiHits") { - int nGood = 0, nNull = 0, nBad = 0, nMedium = 0; - auto globalQual = Quality::Null; - for (int icath = 0; icath < 2; ++icath) { - for (int ich = 0; ich < 4; ++ich) { - int ibin = 1 + 4 * icath + ich; - auto histo = static_cast(mo->getObject()); - auto mean = histo->GetBinContent(ibin); - auto qual = Quality::Good; - if (mean == 0.) { - ++nNull; - qual = Quality::Null; - } else if (mean > mMeanMultThreshold || mean < mMinMultThreshold) { - qual = Quality::Bad; - result = qual; - ++nBad; - } else if (mean > mMeanMultThreshold / 2.) { - qual = Quality::Medium; - ++nMedium; - } else { - ++nGood; - } - std::string hName = "MultHit"; - hName += histo->GetXaxis()->GetBinLabel(ibin); - mQualityMap[hName] = qual; + // Fill the summary multiplicity histogram + if (meanMultiHits) { + meanMultiHits->Reset(); + std::unordered_map ref; + for (int ibin = 1; ibin <= meanMultiHits->GetNbinsX(); ++ibin) { + std::string hName = "MultHit"; + hName += meanMultiHits->GetXaxis()->GetBinLabel(ibin); + ref[hName] = ibin; + } + + int nGood = 0, nNull = 0, nBad = 0, nMedium = 0; + auto globalQual = Quality::Null; + for (auto& item : *moMap) { + if (item.second->getName().find("MultHitMT") != std::string::npos) { + std::string hName = item.second->getName(); + auto mean = static_cast(item.second->getObject())->GetMean(); + meanMultiHits->SetBinContent(ref[hName], mean); + auto qual = Quality::Good; + if (mean == 0.) { + ++nNull; + qual = Quality::Null; + } else if (mean > mMeanMultThreshold || mean < mMinMultThreshold) { + qual = Quality::Bad; + result = qual; + ++nBad; + } else if (mean > mMeanMultThreshold / 2.) { + qual = Quality::Medium; + ++nMedium; + } else { + ++nGood; } + mQualityMap[hName] = qual; } - if (nBad > 0) { - globalQual = Quality::Bad; - } else if (nMedium > 0) { - globalQual = Quality::Medium; - } else if (nGood == 8) { - globalQual = Quality::Good; - } - mQualityMap[mo->getName()] = globalQual; } + if (nBad > 0) { + globalQual = Quality::Bad; + } else if (nMedium > 0) { + globalQual = Quality::Medium; + } else if (nGood == 8) { + globalQual = Quality::Good; + } + mQualityMap[meanMultiHits->GetName()] = globalQual; + } - if (mo->getName() == "LocalBoardsMap") { + for (auto& item : *moMap) { + if (item.second->getName() == "LocalBoardsMap") { if (mHistoHelper.getNTFs() > 0) { int nEmptyLB = 0; int nBadLB = 0; - auto histo = static_cast(mo->getObject()); + auto histo = static_cast(item.second->getObject()); mHistoHelper.normalizeHistoTokHz(histo); for (int bx = 1; bx < 15; bx++) { for (int by = 1; by < 37; by++) { @@ -147,7 +156,7 @@ Quality DigitsQcCheck::check(std::mapgetName()] = qual; + mQualityMap[item.second->getName()] = qual; } // if mNTFInSeconds > 0. } } diff --git a/Modules/MUON/MID/src/DigitsQcTask.cxx b/Modules/MUON/MID/src/DigitsQcTask.cxx index 749461a21c..a553c99661 100644 --- a/Modules/MUON/MID/src/DigitsQcTask.cxx +++ b/Modules/MUON/MID/src/DigitsQcTask.cxx @@ -171,12 +171,6 @@ void DigitsQcTask::endOfCycle() // Then fill from the strip histogram mDigitsHelper.fillMapHistos(mHits.get(), mBendHitsMap, mNBendHitsMap, mLocalBoardsMap); - - // Fill the summary multiplicity histogram - for (int ich = 0; ich < 4; ++ich) { - mMeanMultiHits->SetBinContent(1 + ich, mMultHitB[ich]->GetMean()); - mMeanMultiHits->SetBinContent(5 + ich, mMultHitNB[ich]->GetMean()); - } } void DigitsQcTask::endOfActivity(Activity& /*activity*/)