diff --git a/mvd/CbmMvdPileupManager.cxx b/mvd/CbmMvdPileupManager.cxx index 766fc7aac42bf55dd7851b63e79f96eb21d40cb2..8813f5a2db6a5bf6f5c12bf5a58a785c82b5b862 100644 --- a/mvd/CbmMvdPileupManager.cxx +++ b/mvd/CbmMvdPileupManager.cxx @@ -74,7 +74,10 @@ Int_t CbmMvdPileupManager::FillBuffer(TString fileName, fBuffer->Delete(); TClonesArray* pointArray = NULL; - TFile* saveGFile = gFile; + + /// Save old global file and folder pointer to avoid messing with FairRoot + TFile* oldFile = gFile; + TDirectory* oldDir = gDirectory; TFile* bgfile = new TFile(fileName); if (!bgfile) { @@ -113,7 +116,10 @@ Int_t CbmMvdPileupManager::FillBuffer(TString fileName, delete bgtree; bgfile->Close(); delete bgfile; - saveGFile->cd(); + + /// Restore old global file and folder pointer to avoid messing with FairRoot + gFile = oldFile; + gDirectory = oldDir; return nBuffer; }