diff --git a/reco/littrack/cbm/qa/clustering/CbmLitClusteringQa.cxx b/reco/littrack/cbm/qa/clustering/CbmLitClusteringQa.cxx index 38b31a674e080dc8e96f5f8a41abeee5c2ddb889..4fa3e3fa43ef2f2a806758045acd79e21fc0b50d 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 467ffe2988d9d2a43c4c5d538283ac1ce8d76f42..3ac845991d98679d2d94c1fad4d73c8ca338daa4 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();