From cd0ed0285092dc85b09ce896eb6057c988bd0f94 Mon Sep 17 00:00:00 2001
From: "P.-A. Loizeau" <p.-a.loizeau@gsi.de>
Date: Fri, 14 Jul 2023 18:39:47 +0200
Subject: [PATCH] In CbmTaskDigiEventQa, fix bins fill in Histo1D-TH1D conv.
 method + ROOT warn

=> protect temporary histogram in CbmTaskDigiEventQa::ToTH1D from ROOT name registration clash
---
 reco/tasks/CbmTaskDigiEventQa.cxx | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/reco/tasks/CbmTaskDigiEventQa.cxx b/reco/tasks/CbmTaskDigiEventQa.cxx
index 4b0e370a51..1ea9b16047 100644
--- a/reco/tasks/CbmTaskDigiEventQa.cxx
+++ b/reco/tasks/CbmTaskDigiEventQa.cxx
@@ -161,12 +161,16 @@ InitStatus CbmTaskDigiEventQa::Init()
 // -----   Convert CBM histogram to ROOT histogram   --------------------------
 TH1D* CbmTaskDigiEventQa::ToTH1D(const cbm::algo::Histo1D& source)
 {
-
+  bool add = TH1::AddDirectoryStatus();
+  TH1::AddDirectory(false);  // Needed to prevent ROOT from adding histogram to its internal registry
   TH1D* result =
     new TH1D(source.Name().c_str(), source.Name().c_str(), source.NumBins(), source.MinValue(), source.MaxValue());
+  TH1::AddDirectory(add);  // Needed to prevent ROOT from adding histogram to its internal registry
   for (uint32_t bin = 0; bin < source.NumBins(); bin++) {
-    result->SetBinContent(bin, source.Content(bin));
+    result->SetBinContent(1 + bin, source.Content(bin));
   }
+  result->SetBinContent(0, source.Underflow());
+  result->SetBinContent(source.NumBins(), source.Overflow());
   result->SetEntries(source.NumEntries());
   return result;
 }
-- 
GitLab