From bc211f36427a9d2ac24f6e6a1d3ec0cf5ec52860 Mon Sep 17 00:00:00 2001 From: Florian Uhlig <f.uhlig@gsi.de> Date: Thu, 11 Feb 2021 17:55:09 +0100 Subject: [PATCH] littrack: Add gFile + gDirectory protection --- .../littrack/cbm/qa/clustering/CbmLitClusteringQa.cxx | 10 ++++++++-- reco/littrack/clustering/CbmMuchClustering.cxx | 11 +++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/reco/littrack/cbm/qa/clustering/CbmLitClusteringQa.cxx b/reco/littrack/cbm/qa/clustering/CbmLitClusteringQa.cxx index 38b31a674e..4fa3e3fa43 100644 --- a/reco/littrack/cbm/qa/clustering/CbmLitClusteringQa.cxx +++ b/reco/littrack/cbm/qa/clustering/CbmLitClusteringQa.cxx @@ -152,12 +152,18 @@ void CbmLitClusteringQa::Finish() { void CbmLitClusteringQa::InitMuchGeoScheme(const string& digiFileName) { if (fDet.GetDet(ECbmModuleId::kMuch) && fMuchDigiFileName != "") { - TFile* oldfile = gFile; + /// Save old global file and folder pointer to avoid messing with FairRoot + TFile* oldFile = gFile; + TDirectory* oldDir = gDirectory; + TFile* file = new TFile(digiFileName.c_str()); TObjArray* stations = (TObjArray*) file->Get("stations"); file->Close(); file->Delete(); - gFile = oldfile; + + /// Restore old global file and folder pointer to avoid messing with FairRoot + gFile = oldFile; + gDirectory = oldDir; CbmMuchGeoScheme::Instance()->Init(stations, 0); } } diff --git a/reco/littrack/clustering/CbmMuchClustering.cxx b/reco/littrack/clustering/CbmMuchClustering.cxx index 467ffe2988..3ac845991d 100644 --- a/reco/littrack/clustering/CbmMuchClustering.cxx +++ b/reco/littrack/clustering/CbmMuchClustering.cxx @@ -74,12 +74,19 @@ InitStatus CbmMuchClustering::Init() { std::cout << "CbmMuchClustering::Init" << std::endl; // Initialize GeoScheme - TFile* oldfile = gFile; + /// Save old global file and folder pointer to avoid messing with FairRoot + TFile* oldFile = gFile; + TDirectory* oldDir = gDirectory; + TFile* file = new TFile(fDigiFile); TObjArray* stations = (TObjArray*) file->Get("stations"); file->Close(); file->Delete(); - gFile = oldfile; + + /// Restore old global file and folder pointer to avoid messing with FairRoot + gFile = oldFile; + gDirectory = oldDir; + fScheme->Init(stations, 0); // Initialize arrays of objects ReadDataBranches(); -- GitLab