From 712a2940b831127c71eb46c1bd8094689f6c1b3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Thu, 11 Apr 2024 11:33:59 +0200 Subject: [PATCH 1/6] TOF: add start publishing --- Modules/TOF/include/TOF/PostProcessHitMap.h | 6 +++- Modules/TOF/src/PostProcessHitMap.cxx | 39 ++++++++++++--------- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/Modules/TOF/include/TOF/PostProcessHitMap.h b/Modules/TOF/include/TOF/PostProcessHitMap.h index 5671084716..64f5949fe4 100644 --- a/Modules/TOF/include/TOF/PostProcessHitMap.h +++ b/Modules/TOF/include/TOF/PostProcessHitMap.h @@ -29,6 +29,8 @@ class TH1F; class TH2F; +class TCanvas; +class TPaveText; namespace o2::quality_control_modules::tof { @@ -63,7 +65,7 @@ class PostProcessHitMap final : public quality_control::postprocessing::PostProc /// registry with singleton interfaces. /// \param trigger Trigger which caused the initialization, for example Trigger::EOR /// \param services Interface containing optional interfaces, for example DatabaseInterface - void finalize(quality_control::postprocessing::Trigger, framework::ServiceRegistryRef) override{}; + void finalize(quality_control::postprocessing::Trigger, framework::ServiceRegistryRef) override; private: o2::quality_control::repository::DatabaseInterface* mDatabase = nullptr; @@ -74,6 +76,8 @@ class PostProcessHitMap final : public quality_control::postprocessing::PostProc /// Reference hit map taken from the CCDB and translated into QC binning std::shared_ptr mHistoRefHitMap = nullptr; /// TOF reference hit map std::shared_ptr mHistoHitMap = nullptr; /// TOF hit map + std::shared_ptr mCanvasMo = nullptr; /// Canvas with hit map and ref. map + std::shared_ptr mPhosPad = nullptr; /// PHOS pad to draw bool mDrawRefOnTop; /// flag to enable the drawing of the refmap on top of the hit map. if false drawing on top the hitmap (initialized from the configure method) }; diff --git a/Modules/TOF/src/PostProcessHitMap.cxx b/Modules/TOF/src/PostProcessHitMap.cxx index 3d3e4da6b4..4ffaa24b84 100644 --- a/Modules/TOF/src/PostProcessHitMap.cxx +++ b/Modules/TOF/src/PostProcessHitMap.cxx @@ -126,7 +126,23 @@ void PostProcessHitMap::update(Trigger t, framework::ServiceRegistryRef services ILOG(Warning, Support) << "mHistoHitMap undefined, can't finalize" << ENDM; return; } - TCanvas* canvas = new TCanvas(mHistoHitMap->GetName(), mHistoHitMap->GetName()); + if (!mCanvasMo) { + mCanvasMo = std::make_shared(mHistoHitMap->GetName(), mHistoHitMap->GetName()); + getObjectsManager()->startPublishing(mCanvasMo.get()); + + mPhosPad = std::make_shared(13.f, 38.f, 16.f, 53.f, "bl"); + mPhosPad.SetTextSize(0.05); + mPhosPad.SetBorderSize(1); + mPhosPad.SetTextColor(kBlack); + mPhosPad.SetFillColor(kGreen); + mPhosPad.SetFillStyle(3004); + mPhosPad.AddText("Red: No Match"); + mPhosPad.AddText("Blu: RefMap"); + mPhosPad.AddText("Green: HitMap"); + } + + mCanvasMo->Clear(); + mHistoRefHitMap->GetZaxis()->SetRangeUser(0, 1); mHistoHitMap->GetZaxis()->SetRangeUser(0, 1); @@ -142,27 +158,18 @@ void PostProcessHitMap::update(Trigger t, framework::ServiceRegistryRef services mHistoRefHitMap->GetListOfFunctions()->Clear(); mHistoRefHitMap->Draw("BOXsame"); } - TPaveText phosPad{ 13.f, 38.f, 16.f, 53.f, "bl" }; - phosPad.SetTextSize(0.05); - phosPad.SetBorderSize(1); - phosPad.SetTextColor(kBlack); - phosPad.SetFillColor(kGreen); - phosPad.SetFillStyle(3004); - phosPad.AddText("Red: No Match"); - phosPad.AddText("Blu: RefMap"); - phosPad.AddText("Green: HitMap"); - phosPad.Draw(); + mPhosPad.Draw(); // Draw the shifter message if (mHistoHitMap->GetListOfFunctions()->FindObject(Form("%s_msg", mHistoHitMap->GetName()))) { mHistoHitMap->GetListOfFunctions()->FindObject(Form("%s_msg", mHistoHitMap->GetName()))->Draw("same"); } +} - auto moToStore = std::make_shared(canvas, getID(), "o2::quality_control_modules::tof::PostProcessDiagnosticPerCreate", "TOF"); - moToStore->setIsOwner(false); - mDatabase->storeMO(moToStore); - // It should delete everything inside. Confirmed by trying to delete histo after and getting a segfault. - delete canvas; +void PostProcessHitMap::finalize(Trigger, framework::ServiceRegistryRef) +{ + // Only if you don't want it to be published after finalisation. + getObjectsManager()->stopPublishing(mCanvasMo.get()); } } // namespace o2::quality_control_modules::tof From 2534b9a4754d432a875f2a3992aeff9c7e00bf84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Thu, 11 Apr 2024 11:35:39 +0200 Subject: [PATCH 2/6] Fix header --- Modules/TOF/src/PostProcessHitMap.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Modules/TOF/src/PostProcessHitMap.cxx b/Modules/TOF/src/PostProcessHitMap.cxx index 4ffaa24b84..901c1e7054 100644 --- a/Modules/TOF/src/PostProcessHitMap.cxx +++ b/Modules/TOF/src/PostProcessHitMap.cxx @@ -20,12 +20,6 @@ #include "DataFormatsTOF/TOFFEElightInfo.h" #include "TOFBase/Geo.h" -// QualityControl includes -#include "QualityControl/MonitorObject.h" -#include "QualityControl/QcInfoLogger.h" -#include "TOF/PostProcessHitMap.h" -#include "QualityControl/DatabaseInterface.h" - // ROOT includes #include #include @@ -33,6 +27,12 @@ #include #include +// QualityControl includes +#include "QualityControl/MonitorObject.h" +#include "QualityControl/QcInfoLogger.h" +#include "TOF/PostProcessHitMap.h" +#include "QualityControl/DatabaseInterface.h" + using namespace std; using namespace o2::quality_control::postprocessing; using namespace o2::quality_control::core; From 254a9af8b2852a8baada2e87ac78fe12082062e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Thu, 11 Apr 2024 16:10:58 +0200 Subject: [PATCH 3/6] Fix --- Modules/TOF/src/PostProcessHitMap.cxx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Modules/TOF/src/PostProcessHitMap.cxx b/Modules/TOF/src/PostProcessHitMap.cxx index 901c1e7054..eeaac381f2 100644 --- a/Modules/TOF/src/PostProcessHitMap.cxx +++ b/Modules/TOF/src/PostProcessHitMap.cxx @@ -131,14 +131,14 @@ void PostProcessHitMap::update(Trigger t, framework::ServiceRegistryRef services getObjectsManager()->startPublishing(mCanvasMo.get()); mPhosPad = std::make_shared(13.f, 38.f, 16.f, 53.f, "bl"); - mPhosPad.SetTextSize(0.05); - mPhosPad.SetBorderSize(1); - mPhosPad.SetTextColor(kBlack); - mPhosPad.SetFillColor(kGreen); - mPhosPad.SetFillStyle(3004); - mPhosPad.AddText("Red: No Match"); - mPhosPad.AddText("Blu: RefMap"); - mPhosPad.AddText("Green: HitMap"); + mPhosPad->SetTextSize(0.05); + mPhosPad->SetBorderSize(1); + mPhosPad->SetTextColor(kBlack); + mPhosPad->SetFillColor(kGreen); + mPhosPad->SetFillStyle(3004); + mPhosPad->AddText("Red: No Match"); + mPhosPad->AddText("Blu: RefMap"); + mPhosPad->AddText("Green: HitMap"); } mCanvasMo->Clear(); @@ -158,7 +158,7 @@ void PostProcessHitMap::update(Trigger t, framework::ServiceRegistryRef services mHistoRefHitMap->GetListOfFunctions()->Clear(); mHistoRefHitMap->Draw("BOXsame"); } - mPhosPad.Draw(); + mPhosPad->Draw(); // Draw the shifter message if (mHistoHitMap->GetListOfFunctions()->FindObject(Form("%s_msg", mHistoHitMap->GetName()))) { From d06d7cbc48f09383356a22dcca650665699c9362 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Thu, 11 Apr 2024 16:13:05 +0200 Subject: [PATCH 4/6] Deleting MO --- Modules/TOF/src/PostProcessHitMap.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Modules/TOF/src/PostProcessHitMap.cxx b/Modules/TOF/src/PostProcessHitMap.cxx index eeaac381f2..fb18625024 100644 --- a/Modules/TOF/src/PostProcessHitMap.cxx +++ b/Modules/TOF/src/PostProcessHitMap.cxx @@ -170,6 +170,8 @@ void PostProcessHitMap::finalize(Trigger, framework::ServiceRegistryRef) { // Only if you don't want it to be published after finalisation. getObjectsManager()->stopPublishing(mCanvasMo.get()); + delete mCanvasMo; + mCanvasMo = nullptr; } } // namespace o2::quality_control_modules::tof From 880f08b9d615077bdd0cd70727299a46c1d2ee6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Thu, 11 Apr 2024 16:18:25 +0200 Subject: [PATCH 5/6] Use initialize --- Modules/TOF/src/PostProcessHitMap.cxx | 32 +++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/Modules/TOF/src/PostProcessHitMap.cxx b/Modules/TOF/src/PostProcessHitMap.cxx index fb18625024..6fe954d9e9 100644 --- a/Modules/TOF/src/PostProcessHitMap.cxx +++ b/Modules/TOF/src/PostProcessHitMap.cxx @@ -60,6 +60,19 @@ void PostProcessHitMap::initialize(Trigger, framework::ServiceRegistryRef servic { // Setting up services mDatabase = &services.get(); + + mCanvasMo = std::make_shared("defaultMap", "defaultMap"); + getObjectsManager()->startPublishing(mCanvasMo.get()); + + mPhosPad = std::make_shared(13.f, 38.f, 16.f, 53.f, "bl"); + mPhosPad->SetTextSize(0.05); + mPhosPad->SetBorderSize(1); + mPhosPad->SetTextColor(kBlack); + mPhosPad->SetFillColor(kGreen); + mPhosPad->SetFillStyle(3004); + mPhosPad->AddText("Red: No Match"); + mPhosPad->AddText("Blu: RefMap"); + mPhosPad->AddText("Green: HitMap"); } void PostProcessHitMap::update(Trigger t, framework::ServiceRegistryRef services) @@ -126,21 +139,10 @@ void PostProcessHitMap::update(Trigger t, framework::ServiceRegistryRef services ILOG(Warning, Support) << "mHistoHitMap undefined, can't finalize" << ENDM; return; } - if (!mCanvasMo) { - mCanvasMo = std::make_shared(mHistoHitMap->GetName(), mHistoHitMap->GetName()); - getObjectsManager()->startPublishing(mCanvasMo.get()); - - mPhosPad = std::make_shared(13.f, 38.f, 16.f, 53.f, "bl"); - mPhosPad->SetTextSize(0.05); - mPhosPad->SetBorderSize(1); - mPhosPad->SetTextColor(kBlack); - mPhosPad->SetFillColor(kGreen); - mPhosPad->SetFillStyle(3004); - mPhosPad->AddText("Red: No Match"); - mPhosPad->AddText("Blu: RefMap"); - mPhosPad->AddText("Green: HitMap"); - } + mCanvasMo->SetName(mHistoHitMap->GetName()); + mCanvasMo->SetTitle(mHistoHitMap->GetName()); + mCanvasMo->cd(); mCanvasMo->Clear(); mHistoRefHitMap->GetZaxis()->SetRangeUser(0, 1); @@ -170,8 +172,6 @@ void PostProcessHitMap::finalize(Trigger, framework::ServiceRegistryRef) { // Only if you don't want it to be published after finalisation. getObjectsManager()->stopPublishing(mCanvasMo.get()); - delete mCanvasMo; - mCanvasMo = nullptr; } } // namespace o2::quality_control_modules::tof From a462094080f4d853fc0bb29c3679cff6836e7a45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Thu, 11 Apr 2024 19:01:46 +0200 Subject: [PATCH 6/6] ResetBefore --- Modules/TOF/src/PostProcessHitMap.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Modules/TOF/src/PostProcessHitMap.cxx b/Modules/TOF/src/PostProcessHitMap.cxx index 6fe954d9e9..fd03731a90 100644 --- a/Modules/TOF/src/PostProcessHitMap.cxx +++ b/Modules/TOF/src/PostProcessHitMap.cxx @@ -61,9 +61,11 @@ void PostProcessHitMap::initialize(Trigger, framework::ServiceRegistryRef servic // Setting up services mDatabase = &services.get(); + mCanvasMo.reset(); mCanvasMo = std::make_shared("defaultMap", "defaultMap"); getObjectsManager()->startPublishing(mCanvasMo.get()); + mPhosPad.reset(); mPhosPad = std::make_shared(13.f, 38.f, 16.f, 53.f, "bl"); mPhosPad->SetTextSize(0.05); mPhosPad->SetBorderSize(1);