From 910a91f69a6768bed98ae2690e04bee5f54503f4 Mon Sep 17 00:00:00 2001 From: leo-barreto Date: Wed, 13 Mar 2024 14:56:44 +0100 Subject: [PATCH 1/2] TRD: always update mChamberStatus --- Modules/TRD/src/DigitsTask.cxx | 16 ++++++---------- Modules/TRD/src/TrackletsTask.cxx | 14 +++++--------- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/Modules/TRD/src/DigitsTask.cxx b/Modules/TRD/src/DigitsTask.cxx index 16ac5e2208..4ae468dca7 100644 --- a/Modules/TRD/src/DigitsTask.cxx +++ b/Modules/TRD/src/DigitsTask.cxx @@ -146,16 +146,12 @@ void DigitsTask::monitorData(o2::framework::ProcessingContext& ctx) mNoiseMap = ptr.get(); } - if (!mChamberStatus) { - auto ptr = ctx.inputs().get*>("fedChamberStatus"); - mChamberStatus = ptr.get(); - // LB: only draw in plots if it is first instance, e.g. null ptr to non null ptr - if (mChamberStatus) { - // LB: no half chamber distribution map for Digits, pass it as null pointer - TRDHelpers::drawChamberStatusOnHistograms(mChamberStatus, nullptr, mLayers, NCOLUMN); - } else { - ILOG(Info, Support) << "Failed to retrieve ChamberStatus, so it will not show on plots" << ENDM; - } + // LB: Chamber Status cannot be loaded only once, it should always check object + auto ptr = ctx.inputs().get*>("fedChamberStatus"); + mChamberStatus = ptr.get(); + if (mChamberStatus) { + // LB: no half chamber distribution map for Digits, pass it as null pointer + TRDHelpers::drawChamberStatusOnHistograms(mChamberStatus, nullptr, mLayers, NCOLUMN); } // fill histograms diff --git a/Modules/TRD/src/TrackletsTask.cxx b/Modules/TRD/src/TrackletsTask.cxx index 018ad7f0d3..11dc4cb246 100644 --- a/Modules/TRD/src/TrackletsTask.cxx +++ b/Modules/TRD/src/TrackletsTask.cxx @@ -138,15 +138,11 @@ void TrackletsTask::monitorData(o2::framework::ProcessingContext& ctx) mNoiseMap = ptr.get(); } - if (!mChamberStatus) { - auto ptr = ctx.inputs().get*>("fedChamberStatus"); - mChamberStatus = ptr.get(); - // LB: only draw in plots if it is first instance, e.g. null ptr to non null ptr - if (mChamberStatus) { - TRDHelpers::drawChamberStatusOnHistograms(mChamberStatus, mTrackletsPerHC2D, mLayers, NCOLUMN / NSECTOR); - } else { - ILOG(Info, Support) << "Failed to retrieve ChamberStatus, so it will not show on plots" << ENDM; - } + // LB: Chamber Status cannot be loaded only once, it should always take check object + auto ptr = ctx.inputs().get*>("fedChamberStatus"); + mChamberStatus = ptr.get(); + if (mChamberStatus) { + TRDHelpers::drawChamberStatusOnHistograms(mChamberStatus, mTrackletsPerHC2D, mLayers, NCOLUMN / NSECTOR); } // Fill histograms From b6a50069ff62759d54a6c8a4befde0bde4bbeb7d Mon Sep 17 00:00:00 2001 From: leo-barreto Date: Sun, 17 Mar 2024 17:26:04 +0100 Subject: [PATCH 2/2] TRD: apply finaliseCCDB method for Chamber Status update --- Modules/TRD/include/TRD/DigitsTask.h | 2 +- Modules/TRD/include/TRD/TrackletsTask.h | 2 +- Modules/TRD/src/DigitsTask.cxx | 14 ++++++++------ Modules/TRD/src/TrackletsTask.cxx | 12 +++++++----- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/Modules/TRD/include/TRD/DigitsTask.h b/Modules/TRD/include/TRD/DigitsTask.h index 82c3d19c80..e1ad5565d0 100644 --- a/Modules/TRD/include/TRD/DigitsTask.h +++ b/Modules/TRD/include/TRD/DigitsTask.h @@ -45,6 +45,7 @@ class DigitsTask final : public TaskInterface void monitorData(o2::framework::ProcessingContext& ctx) override; void endOfCycle() override; void endOfActivity(const Activity& activity) override; + void finaliseCCDB(o2::framework::ConcreteDataMatcher& matcher, void* obj) override; void reset() override; void buildHistograms(); void drawLinesOnPulseHeight(TH1F* h); @@ -84,7 +85,6 @@ class DigitsTask final : public TaskInterface // CCDB objects const o2::trd::NoiseStatusMCM* mNoiseMap = nullptr; - const std::array* mChamberStatus = nullptr; }; } // namespace o2::quality_control_modules::trd diff --git a/Modules/TRD/include/TRD/TrackletsTask.h b/Modules/TRD/include/TRD/TrackletsTask.h index eb8c65db46..35e200eb5f 100644 --- a/Modules/TRD/include/TRD/TrackletsTask.h +++ b/Modules/TRD/include/TRD/TrackletsTask.h @@ -43,6 +43,7 @@ class TrackletsTask final : public TaskInterface void monitorData(o2::framework::ProcessingContext& ctx) override; void endOfCycle() override; void endOfActivity(const Activity& activity) override; + void finaliseCCDB(o2::framework::ConcreteDataMatcher& matcher, void* obj) override; void reset() override; void buildHistograms(); @@ -64,7 +65,6 @@ class TrackletsTask final : public TaskInterface // data to pull from CCDB const o2::trd::NoiseStatusMCM* mNoiseMap = nullptr; - const std::array* mChamberStatus = nullptr; }; } // namespace o2::quality_control_modules::trd diff --git a/Modules/TRD/src/DigitsTask.cxx b/Modules/TRD/src/DigitsTask.cxx index 4ae468dca7..b565846f40 100644 --- a/Modules/TRD/src/DigitsTask.cxx +++ b/Modules/TRD/src/DigitsTask.cxx @@ -146,13 +146,7 @@ void DigitsTask::monitorData(o2::framework::ProcessingContext& ctx) mNoiseMap = ptr.get(); } - // LB: Chamber Status cannot be loaded only once, it should always check object auto ptr = ctx.inputs().get*>("fedChamberStatus"); - mChamberStatus = ptr.get(); - if (mChamberStatus) { - // LB: no half chamber distribution map for Digits, pass it as null pointer - TRDHelpers::drawChamberStatusOnHistograms(mChamberStatus, nullptr, mLayers, NCOLUMN); - } // fill histograms auto digits = ctx.inputs().get>("digits"); @@ -339,6 +333,14 @@ void DigitsTask::endOfActivity(const Activity& /*activity*/) ILOG(Debug, Devel) << "endOfActivity" << ENDM; } +void DigitsTask::finaliseCCDB(o2::framework::ConcreteDataMatcher& matcher, void* obj) +{ + if (matcher == o2::framework::ConcreteDataMatcher("TRD", "FCHSTATUS", 0)) { + // LB: no half chamber distribution map for Digits, pass it as null pointer + TRDHelpers::drawChamberStatusOnHistograms(static_cast*>(obj), nullptr, mLayers, NCOLUMN); + } +} + void DigitsTask::reset() { // clean all the monitor objects here diff --git a/Modules/TRD/src/TrackletsTask.cxx b/Modules/TRD/src/TrackletsTask.cxx index 11dc4cb246..c9201794a0 100644 --- a/Modules/TRD/src/TrackletsTask.cxx +++ b/Modules/TRD/src/TrackletsTask.cxx @@ -138,12 +138,7 @@ void TrackletsTask::monitorData(o2::framework::ProcessingContext& ctx) mNoiseMap = ptr.get(); } - // LB: Chamber Status cannot be loaded only once, it should always take check object auto ptr = ctx.inputs().get*>("fedChamberStatus"); - mChamberStatus = ptr.get(); - if (mChamberStatus) { - TRDHelpers::drawChamberStatusOnHistograms(mChamberStatus, mTrackletsPerHC2D, mLayers, NCOLUMN / NSECTOR); - } // Fill histograms auto tracklets = ctx.inputs().get>("tracklets"); @@ -200,6 +195,13 @@ void TrackletsTask::endOfActivity(const Activity& /*activity*/) ILOG(Debug, Devel) << "endOfActivity" << ENDM; } +void TrackletsTask::finaliseCCDB(o2::framework::ConcreteDataMatcher& matcher, void* obj) +{ + if (matcher == o2::framework::ConcreteDataMatcher("TRD", "FCHSTATUS", 0)) { + TRDHelpers::drawChamberStatusOnHistograms(static_cast*>(obj), mTrackletsPerHC2D, mLayers, NCOLUMN / NSECTOR); + } +} + void TrackletsTask::reset() { // clean all the monitor objects here