From c716cfee48579db4b8635e33d5d4aaa8579fd73b Mon Sep 17 00:00:00 2001 From: Florian Uhlig <f.uhlig@gsi.de> Date: Thu, 11 Feb 2021 17:47:22 +0100 Subject: [PATCH] MQ: Add gFile + gDirectory protection --- MQ/histoServer/CbmMqHistoServer.cxx | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/MQ/histoServer/CbmMqHistoServer.cxx b/MQ/histoServer/CbmMqHistoServer.cxx index b72d29b960..0ec75bbed1 100644 --- a/MQ/histoServer/CbmMqHistoServer.cxx +++ b/MQ/histoServer/CbmMqHistoServer.cxx @@ -388,11 +388,13 @@ bool CbmMqHistoServer::PrepareCanvas(uint32_t uCanvIdx) { } bool CbmMqHistoServer::SaveHistograms() { + /// Save old global file and folder pointer to avoid messing with FairRoot + TFile* oldFile = gFile; + TDirectory* oldDir = gDirectory; + /// (Re-)Create ROOT file to store the histos - TDirectory* oldDir = NULL; - TFile* histoFile = NULL; - // Store current directory position to allow restore later - oldDir = gDirectory; + TFile* histoFile = nullptr; + // open separate histo file in recreate mode histoFile = new TFile(fsHistoFileName.data(), "RECREATE"); @@ -423,8 +425,10 @@ bool CbmMqHistoServer::SaveHistograms() { histoFile->cd(); } // for( UInt_t uHisto = 0; uHisto < fvCanvas.size(); ++uHisto ) - // Restore original directory position - oldDir->cd(); + /// Restore old global file and folder pointer to avoid messing with FairRoot + gFile = oldFile; + gDirectory = oldDir; + histoFile->Close(); return true; -- GitLab