From 136a0ed175b3e1b8e09ead4e04a042ab99984883 Mon Sep 17 00:00:00 2001 From: Lucia Anna Tarasovicova Date: Wed, 25 Jun 2025 10:45:08 +0200 Subject: [PATCH 1/3] modification of quality message --- Modules/CTP/include/CTP/RawDataReaderCheck.h | 1 + Modules/CTP/src/RawDataReaderCheck.cxx | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Modules/CTP/include/CTP/RawDataReaderCheck.h b/Modules/CTP/include/CTP/RawDataReaderCheck.h index 550919f978..b7a1fa1673 100644 --- a/Modules/CTP/include/CTP/RawDataReaderCheck.h +++ b/Modules/CTP/include/CTP/RawDataReaderCheck.h @@ -74,6 +74,7 @@ class RawDataReaderCheck : public o2::quality_control::checker::CheckInterface std::vector mVecIndexBad; // vector of ctp input and class indices, which had a big relative change std::vector mVecIndexMedium; // vector of ctp input and class indices, which had a relative change std::bitset mLHCBCs; // LHC filling scheme + bool lhcDataFileFound = true; ClassDefOverride(RawDataReaderCheck, 10); }; diff --git a/Modules/CTP/src/RawDataReaderCheck.cxx b/Modules/CTP/src/RawDataReaderCheck.cxx index 9bde558f06..83094a67a4 100644 --- a/Modules/CTP/src/RawDataReaderCheck.cxx +++ b/Modules/CTP/src/RawDataReaderCheck.cxx @@ -229,7 +229,10 @@ void RawDataReaderCheck::beautify(std::shared_ptr mo, Quality che } if (checkResult == Quality::Null) { - msg = std::make_shared(0.2, 0.8, Form("Check was not performed, LHC information not available")); + if (lhcDataFileFound) + msg = std::make_shared(0.2, 0.8, Form("Check was not performed, LHC filling scheme empty")); + else + msg = std::make_shared(0.2, 0.8, Form("Check was not performed, LHC information not available")); msg->SetTextColor(kBlack); msg->SetTextSize(0.03); msg->SetNDC(); @@ -419,6 +422,7 @@ void RawDataReaderCheck::startOfActivity(const core::Activity& activity) auto lhcifdata = UserCodeInterface::retrieveConditionAny("GLO/Config/GRPLHCIF", metadata, mTimestamp); if (lhcifdata == nullptr) { ILOG(Info, Support) << "LHC data not found for timestamp:" << mTimestamp << ENDM; + lhcDataFileFound = false; return; } else { ILOG(Info, Support) << "LHC data found for timestamp:" << mTimestamp << ENDM; From 1a51971b48e1b858b9b0661d97ee6dcfc52fdc13 Mon Sep 17 00:00:00 2001 From: Lucia Anna Tarasovicova Date: Wed, 25 Jun 2025 15:25:59 +0200 Subject: [PATCH 2/3] create the error histogram, only if consitency check enabled --- Modules/CTP/include/CTP/RawDataQcTask.h | 1 + Modules/CTP/src/RawDataQcTask.cxx | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Modules/CTP/include/CTP/RawDataQcTask.h b/Modules/CTP/include/CTP/RawDataQcTask.h index 27696518d6..ce07f1ca67 100644 --- a/Modules/CTP/include/CTP/RawDataQcTask.h +++ b/Modules/CTP/include/CTP/RawDataQcTask.h @@ -74,6 +74,7 @@ class CTPRawDataReaderTask final : public TaskInterface const o2::ctp::CTPConfiguration* mCTPconfig = nullptr; std::string mMBclassName; std::array mClassErrorsA; + bool mPerformConsistencyCheck = false; }; } // namespace o2::quality_control_modules::ctp diff --git a/Modules/CTP/src/RawDataQcTask.cxx b/Modules/CTP/src/RawDataQcTask.cxx index 05f01c2601..e570c2aa5b 100644 --- a/Modules/CTP/src/RawDataQcTask.cxx +++ b/Modules/CTP/src/RawDataQcTask.cxx @@ -51,14 +51,12 @@ void CTPRawDataReaderTask::initialize(o2::framework::InitContext& /*ctx*/) mHistoBCMinBias2 = std::make_unique("bcMinBias2", "BC position MB2", norbits, 0, norbits); mHistoInputRatios = std::make_unique("inputRatio", "Input Ratio to MTVX; Input; Ratio;", ninps, 0, ninps, true); mHistoClassRatios = std::make_unique("classRatio", "Class Ratio to MB; Class; Ratio", nclasses, 0, nclasses, true); - mHistoDecodeError = std::make_unique("decodeError", "Errors from decoder", nclasses, 0, nclasses); getObjectsManager()->startPublishing(mHistoInputs.get()); getObjectsManager()->startPublishing(mHistoClasses.get()); getObjectsManager()->startPublishing(mHistoClassRatios.get()); getObjectsManager()->startPublishing(mHistoInputRatios.get()); getObjectsManager()->startPublishing(mHistoBCMinBias1.get()); getObjectsManager()->startPublishing(mHistoBCMinBias2.get()); - getObjectsManager()->startPublishing(mHistoDecodeError.get()); mDecoder.setDoLumi(1); mDecoder.setDoDigits(1); @@ -78,7 +76,6 @@ void CTPRawDataReaderTask::startOfActivity(const Activity& activity) mHistoInputRatios->Reset(); mHistoBCMinBias1->Reset(); mHistoBCMinBias2->Reset(); - mHistoDecodeError->Reset(); mRunNumber = activity.mId; mTimestamp = activity.mValidity.getMin(); @@ -213,9 +210,15 @@ void CTPRawDataReaderTask::startOfActivity(const Activity& activity) if (performConsistencyCheck == "true") { mDecoder.setCheckConsistency(1); mDecoder.setDecodeInps(1); + mPerformConsistencyCheck = true; } else { mDecoder.setCheckConsistency(0); } + + if (mPerformConsistencyCheck) { + mHistoDecodeError = std::make_unique("decodeError", "Errors from decoder", nclasses, 0, nclasses); + getObjectsManager()->startPublishing(mHistoDecodeError.get()); + } } void CTPRawDataReaderTask::startOfCycle() @@ -269,9 +272,11 @@ void CTPRawDataReaderTask::monitorData(o2::framework::ProcessingContext& ctx) o2::framework::InputRecord& inputs = ctx.inputs(); int ret = mDecoder.decodeRaw(inputs, filter, outputDigits, lumiPointsHBF1); mClassErrorsA = mDecoder.getClassErrorsA(); - for (size_t i = 0; i < o2::ctp::CTP_NCLASSES; i++) { - if (mClassErrorsA[i] > 0) { - mHistoDecodeError->Fill(i, mClassErrorsA[i]); + if (mPerformConsistencyCheck) { + for (size_t i = 0; i < o2::ctp::CTP_NCLASSES; i++) { + if (mClassErrorsA[i] > 0) { + mHistoDecodeError->Fill(i, mClassErrorsA[i]); + } } } @@ -340,7 +345,8 @@ void CTPRawDataReaderTask::reset() mHistoClassRatios->Reset(); mHistoBCMinBias1->Reset(); mHistoBCMinBias2->Reset(); - mHistoDecodeError->Reset(); + if (mPerformConsistencyCheck) + mHistoDecodeError->Reset(); } } // namespace o2::quality_control_modules::ctp From 8eee3cd020a7f7fcc64c493ac13b490a6f89ed95 Mon Sep 17 00:00:00 2001 From: Lucia Anna Tarasovicova Date: Thu, 3 Jul 2025 10:57:47 +0200 Subject: [PATCH 3/3] Fixing the filter --- Modules/CTP/src/RawDataQcTask.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/CTP/src/RawDataQcTask.cxx b/Modules/CTP/src/RawDataQcTask.cxx index e570c2aa5b..17fbab6263 100644 --- a/Modules/CTP/src/RawDataQcTask.cxx +++ b/Modules/CTP/src/RawDataQcTask.cxx @@ -231,7 +231,7 @@ void CTPRawDataReaderTask::monitorData(o2::framework::ProcessingContext& ctx) static constexpr double sOrbitLengthInMS = o2::constants::lhc::LHCOrbitMUS / 1000; auto nOrbitsPerTF = 32.; // get the input - std::vector filter; + std::vector filter{ o2::framework::InputSpec{ "filter", o2::framework::ConcreteDataTypeMatcher{ "CTP", "RAWDATA" }, o2::framework::Lifetime::Timeframe } }; std::vector lumiPointsHBF1; std::vector outputDigits;