diff --git a/fles/mcbm2018/monitor/CbmCheckDataFormatGdpb2018.cxx b/fles/mcbm2018/monitor/CbmCheckDataFormatGdpb2018.cxx
index 976600540789537a51f23d8995e25325ec0b3a93..ab09f0795b6478dda3f500de43644892d8882c2c 100644
--- a/fles/mcbm2018/monitor/CbmCheckDataFormatGdpb2018.cxx
+++ b/fles/mcbm2018/monitor/CbmCheckDataFormatGdpb2018.cxx
@@ -1367,10 +1367,11 @@ void CbmCheckDataFormatGdpb2018::SaveAllHistos(TString sFileName) {
   if ("" != sFileName) {
     // Restore original directory position
     histoFile->Close();
-    /// Restore old global file and folder pointer to avoid messing with FairRoot
-    gFile      = oldFile;
-    gDirectory = oldDir;
   }  // if( "" != sFileName )
+
+  /// Restore old global file and folder pointer to avoid messing with FairRoot
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 
 void CbmCheckDataFormatGdpb2018::ResetAllHistos() {
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorDataRates.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorDataRates.cxx
index c5708cde3e152d7aca15b967e602fcc6656f3dbd..af06f1eefd3be764df14e5ebcf13c37f02198a78 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorDataRates.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorDataRates.cxx
@@ -646,10 +646,11 @@ void CbmMcbm2018MonitorDataRates::SaveAllHistos(TString sFileName) {
   if ("" != sFileName) {
     // Restore original directory position
     histoFile->Close();
-    /// Restore old global file and folder pointer to avoid messing with FairRoot
-    gFile      = oldFile;
-    gDirectory = oldDir;
   }  // if( "" != sFileName )
+
+  /// Restore old global file and folder pointer to avoid messing with FairRoot
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 
 void CbmMcbm2018MonitorDataRates::ResetAllHistos() {
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorMcbmPulser.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorMcbmPulser.cxx
index 6c6b2b821f92ab9d009fc73260f2d176e591a4d5..1e1e229b0a6238b3b985341fead998fa6fd17551 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorMcbmPulser.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorMcbmPulser.cxx
@@ -1442,10 +1442,11 @@ void CbmMcbm2018MonitorMcbmPulser::SaveAllHistos(TString sFileName) {
   if ("" != sFileName) {
     // Restore original directory position
     histoFile->Close();
-    /// Restore old global file and folder pointer to avoid messing with FairRoot
-    gFile      = oldFile;
-    gDirectory = oldDir;
   }  // if( "" != sFileName )
+
+  /// Restore old global file and folder pointer to avoid messing with FairRoot
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 void CbmMcbm2018MonitorMcbmPulser::ResetAllHistos() {
   /****************** STS Sync ******************************************/
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorMcbmRate.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorMcbmRate.cxx
index 3949008b903f928bf42a45988382814cf4f63343..3f35bd67de16dbe18f5e2b18d80e72f8e8277698 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorMcbmRate.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorMcbmRate.cxx
@@ -1332,10 +1332,11 @@ void CbmMcbm2018MonitorMcbmRate::SaveAllHistos(TString sFileName) {
   if ("" != sFileName) {
     // Restore original directory position
     histoFile->Close();
-    /// Restore old global file and folder pointer to avoid messing with FairRoot
-    gFile      = oldFile;
-    gDirectory = oldDir;
   }  // if( "" != sFileName )
+
+  /// Restore old global file and folder pointer to avoid messing with FairRoot
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 void CbmMcbm2018MonitorMcbmRate::ResetAllHistos() {
   /****************** STS Sync ******************************************/
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorMcbmSync.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorMcbmSync.cxx
index a2932495aa7e3339ec13c3d0caf41daaad6a1a4d..5132d801d045ce3bb3d4d05c88676c395cb24173 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorMcbmSync.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorMcbmSync.cxx
@@ -1592,10 +1592,11 @@ void CbmMcbm2018MonitorMcbmSync::SaveAllHistos(TString sFileName) {
   if ("" != sFileName) {
     // Restore original directory position
     histoFile->Close();
-    /// Restore old global file and folder pointer to avoid messing with FairRoot
-    gFile      = oldFile;
-    gDirectory = oldDir;
   }  // if( "" != sFileName )
+
+  /// Restore old global file and folder pointer to avoid messing with FairRoot
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 void CbmMcbm2018MonitorMcbmSync::ResetAllHistos() {
   /****************** STS Sync ******************************************/
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorMuch.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorMuch.cxx
index 7f87df29a2865481fc162aa1720130fb41bff486..a788a645bcd7221033c0d93611bb060629c91c58 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorMuch.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorMuch.cxx
@@ -2060,10 +2060,11 @@ void CbmMcbm2018MonitorMuch::SaveAllHistos(TString sFileName) {
   if ("" != sFileName) {
     // Restore original directory position
     histoFile->Close();
-    /// Restore old global file and folder pointer to avoid messing with FairRoot
-    gFile      = oldFile;
-    gDirectory = oldDir;
   }  // if( "" != sFileName )
+
+  /// Restore old global file and folder pointer to avoid messing with FairRoot
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 void CbmMcbm2018MonitorMuch::ResetAllHistos() {
   LOG(info) << "Reseting all STS histograms.";
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorMuchLite.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorMuchLite.cxx
index 9f09fc3cab3b6cbc0f62078448b85bba244145e8..d37d5f5fa6700cc2d112ab144b6d3dcabf6492a8 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorMuchLite.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorMuchLite.cxx
@@ -1653,10 +1653,11 @@ void CbmMcbm2018MonitorMuchLite::SaveAllHistos(TString sFileName) {
   if ("" != sFileName) {
     // Restore original directory position
     histoFile->Close();
-    /// Restore old global file and folder pointer to avoid messing with FairRoot
-    gFile      = oldFile;
-    gDirectory = oldDir;
   }  // if( "" != sFileName )
+
+  /// Restore old global file and folder pointer to avoid messing with FairRoot
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 
 void CbmMcbm2018MonitorMuchLite::ResetAllHistos() {
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorSts.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorSts.cxx
index 71c83655ba2db2be80eb0cac53f14124425c62ec..8416ea06d6fd1d88c982fcf3d1b3cdf5146e34a0 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorSts.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorSts.cxx
@@ -2703,10 +2703,11 @@ void CbmMcbm2018MonitorSts::SaveAllHistos(TString sFileName) {
   if ("" != sFileName) {
     // Restore original directory position
     histoFile->Close();
-    /// Restore old global file and folder pointer to avoid messing with FairRoot
-    gFile      = oldFile;
-    gDirectory = oldDir;
   }  // if( "" != sFileName )
+
+  /// Restore old global file and folder pointer to avoid messing with FairRoot
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 void CbmMcbm2018MonitorSts::ResetAllHistos() {
   LOG(info) << "Reseting all STS histograms.";
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorStsPulser.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorStsPulser.cxx
index b548473046dd41078926eeb9770761d1547a6fe9..70b9a39368751258697932f0df228092337a8ee4 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorStsPulser.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorStsPulser.cxx
@@ -1403,10 +1403,11 @@ void CbmCosy2018MonitorPulser::SaveAllHistos(TString sFileName) {
   if ("" != sFileName) {
     // Restore original directory position
     histoFile->Close();
-    /// Restore old global file and folder pointer to avoid messing with FairRoot
-    gFile      = oldFile;
-    gDirectory = oldDir;
   }  // if( "" != sFileName )
+
+  /// Restore old global file and folder pointer to avoid messing with FairRoot
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 void CbmCosy2018MonitorPulser::ResetAllHistos() {
   LOG(info) << "Reseting all STS histograms.";
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorStsSync.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorStsSync.cxx
index bb8f8d5be107e47b7a178581c38189d5173c373b..9114f57e5b0750530e954552e9bab1e673c11cb4 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorStsSync.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorStsSync.cxx
@@ -1897,10 +1897,11 @@ void CbmMcbm2018MonitorStsSync::SaveAllHistos(TString sFileName) {
   if ("" != sFileName) {
     // Restore original directory position
     histoFile->Close();
-    /// Restore old global file and folder pointer to avoid messing with FairRoot
-    gFile      = oldFile;
-    gDirectory = oldDir;
   }  // if( "" != sFileName )
+
+  /// Restore old global file and folder pointer to avoid messing with FairRoot
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 void CbmMcbm2018MonitorStsSync::SavePulserHistos(TString sFileName) {
   /// Save old global file and folder pointer to avoid messing with FairRoot
@@ -1931,10 +1932,11 @@ void CbmMcbm2018MonitorStsSync::SavePulserHistos(TString sFileName) {
   if ("" != sFileName) {
     // Restore original directory position
     histoFile->Close();
-    /// Restore old global file and folder pointer to avoid messing with FairRoot
-    gFile      = oldFile;
-    gDirectory = oldDir;
   }  // if( "" != sFileName )
+
+  /// Restore old global file and folder pointer to avoid messing with FairRoot
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 void CbmMcbm2018MonitorStsSync::ResetAllHistos() {
   LOG(info) << "Reseting all STS histograms.";
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorTof.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorTof.cxx
index c11bcab45a79f4e4797e52f44345993fd0438269..1de7fb838033fada37be652e7908b772953fa096 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorTof.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorTof.cxx
@@ -3563,10 +3563,11 @@ void CbmMcbm2018MonitorTof::SaveAllHistos(TString sFileName) {
   if ("" != sFileName) {
     // Restore original directory position
     histoFile->Close();
-    /// Restore old global file and folder pointer to avoid messing with FairRoot
-    gFile      = oldFile;
-    gDirectory = oldDir;
   }  // if( "" != sFileName )
+
+  /// Restore old global file and folder pointer to avoid messing with FairRoot
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 
 void CbmMcbm2018MonitorTof::ResetAllHistos() {
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018MonitorTofPulser.cxx b/fles/mcbm2018/monitor/CbmMcbm2018MonitorTofPulser.cxx
index e4e2819075b6fc662682465add6369ee037e3cde..bb87352fd59c4ffd606f87505e320be36831ab02 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018MonitorTofPulser.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018MonitorTofPulser.cxx
@@ -1666,10 +1666,11 @@ void CbmMcbm2018MonitorTofPulser::SaveAllHistos(TString sFileName) {
   if ("" != sFileName) {
     // Restore original directory position
     histoFile->Close();
-    /// Restore old global file and folder pointer to avoid messing with FairRoot
-    gFile      = oldFile;
-    gDirectory = oldDir;
   }  // if( "" != sFileName )
+
+  /// Restore old global file and folder pointer to avoid messing with FairRoot
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 
 void CbmMcbm2018MonitorTofPulser::ResetAllHistos() {
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018TofFeeThr.cxx b/fles/mcbm2018/monitor/CbmMcbm2018TofFeeThr.cxx
index 2657d60db61560c77b974b7d5cb8d2715b526c7b..36fc7876a21ad8f21f0d4c99314b9d66b973bc05 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018TofFeeThr.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018TofFeeThr.cxx
@@ -528,10 +528,11 @@ void CbmMcbm2018TofFeeThr::SaveAllHistos(TString sFileName) {
   if ("" != sFileName) {
     // Restore original directory position
     histoFile->Close();
-    /// Restore old global file and folder pointer to avoid messing with FairRoot
-    gFile      = oldFile;
-    gDirectory = oldDir;
   }  // if( "" != sFileName )
+
+  /// Restore old global file and folder pointer to avoid messing with FairRoot
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 
 void CbmMcbm2018TofFeeThr::ResetAllHistos() {
diff --git a/fles/mcbm2018/monitor/CbmMcbm2018TofTestFee.cxx b/fles/mcbm2018/monitor/CbmMcbm2018TofTestFee.cxx
index d893bc5fe2b952e1cf84a1e001269e6b84a9a09d..87cbd73cfe8cc07121f7921bd91bbd736f77a8ff 100644
--- a/fles/mcbm2018/monitor/CbmMcbm2018TofTestFee.cxx
+++ b/fles/mcbm2018/monitor/CbmMcbm2018TofTestFee.cxx
@@ -1914,10 +1914,11 @@ void CbmMcbm2018TofTestFee::SaveAllHistos(TString sFileName) {
   if ("" != sFileName) {
     // Restore original directory position
     histoFile->Close();
-    /// Restore old global file and folder pointer to avoid messing with FairRoot
-    gFile      = oldFile;
-    gDirectory = oldDir;
   }  // if( "" != sFileName )
+
+  /// Restore old global file and folder pointer to avoid messing with FairRoot
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 
 void CbmMcbm2018TofTestFee::ResetAllHistos() {
diff --git a/fles/mcbm2018/tasks/CbmCheckDigisNbCorr.cxx b/fles/mcbm2018/tasks/CbmCheckDigisNbCorr.cxx
index 1908197eaa9802efa315fb3744b209ff60413543..62613aa6950b2b8bb7c18510f9f8bc037447768b 100644
--- a/fles/mcbm2018/tasks/CbmCheckDigisNbCorr.cxx
+++ b/fles/mcbm2018/tasks/CbmCheckDigisNbCorr.cxx
@@ -20,6 +20,7 @@
 #include "TH2.h"
 #include "THttpServer.h"
 #include "TProfile.h"
+#include <TDirectory.h>
 #include <TFile.h>
 
 #include "CbmMuchDigi.h"
@@ -698,7 +699,9 @@ void CbmCheckDigisNbCorr::Exec(Option_t* /*option*/) {
 void CbmCheckDigisNbCorr::Finish() { WriteHistos(); }
 
 void CbmCheckDigisNbCorr::WriteHistos() {
-  TFile* old     = gFile;
+  TFile* oldFile     = gFile;
+  TDirectory* oldDir = gDirectory;
+
   TFile* outfile = TFile::Open(fOutFileName, "RECREATE");
 
 
@@ -741,7 +744,8 @@ void CbmCheckDigisNbCorr::WriteHistos() {
   outfile->Close();
   delete outfile;
 
-  gFile = old;
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 
 ClassImp(CbmCheckDigisNbCorr)
diff --git a/fles/mcbm2018/tasks/CbmCheckEvents.cxx b/fles/mcbm2018/tasks/CbmCheckEvents.cxx
index f954d3e57977677535e36cbe9465ba5a9d402f4b..35e2dc0ad34d6299df2d5d5da7b146f443b7ee0b 100644
--- a/fles/mcbm2018/tasks/CbmCheckEvents.cxx
+++ b/fles/mcbm2018/tasks/CbmCheckEvents.cxx
@@ -24,6 +24,7 @@
 #include "TH2.h"
 #include "THttpServer.h"
 #include "TProfile.h"
+#include <TDirectory.h>
 #include <TFile.h>
 
 #include <iomanip>
@@ -264,7 +265,9 @@ void CbmCheckEvents::GetTimeDiffT0(CbmEvent* event, TH1* deltaT, TH1* size) {
 
 // ---- Finish --------------------------------------------------------
 void CbmCheckEvents::Finish() {
-  TFile* old     = gFile;
+  TFile* oldFile     = gFile;
+  TDirectory* oldDir = gDirectory;
+
   TFile* outfile = TFile::Open("test2.root", "RECREATE");
 
   fEventSize->Write();
@@ -287,7 +290,8 @@ void CbmCheckEvents::Finish() {
   outfile->Close();
   delete outfile;
 
-  gFile = old;
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 
 ClassImp(CbmCheckEvents)
diff --git a/fles/mcbm2018/tasks/CbmMcbm2018EventBuilder.cxx b/fles/mcbm2018/tasks/CbmMcbm2018EventBuilder.cxx
index d57aef935da3e883cae9eb733c8c5d30ebe04695..28ae219ea4997d13de7eecb2e78b54b31e6f9893 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2018EventBuilder.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2018EventBuilder.cxx
@@ -15,6 +15,7 @@
 #include "TH1.h"
 #include "TH2.h"
 #include "THttpServer.h"
+#include <TDirectory.h>
 #include <TFile.h>
 
 #include "CbmMuchBeamTimeDigi.h"
@@ -649,7 +650,9 @@ void CbmMcbm2018EventBuilder::AddDigiToSorter(ECbmModuleId _system,
 // ---- Finish --------------------------------------------------------
 void CbmMcbm2018EventBuilder::Finish() {
   if (fFillHistos) {
-    TFile* old     = gFile;
+    TFile* oldFile     = gFile;
+    TDirectory* oldDir = gDirectory;
+
     TFile* outfile = TFile::Open(fOutFileName, "RECREATE");
 
     fDiffTime->Write();
@@ -670,7 +673,8 @@ void CbmMcbm2018EventBuilder::Finish() {
     outfile->Close();
     delete outfile;
 
-    gFile = old;
+    gFile      = oldFile;
+    gDirectory = oldDir;
   }
   LOG(info) << "Total errors: " << fErrors;
 }
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisMuch.cxx b/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisMuch.cxx
index ef8d17e1c643b0b721b26755011cf75eb4a16203..63f3bffae864ce9dccde49fd80ee9507cc1cfa0b 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisMuch.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisMuch.cxx
@@ -18,6 +18,7 @@
 #include "TH1.h"
 #include "TH2.h"
 #include "THttpServer.h"
+#include <TDirectory.h>
 #include <TFile.h>
 
 #include <iomanip>
@@ -199,7 +200,9 @@ void CbmMcbm2019CheckDigisMuch::Exec(Option_t* /*option*/) {
 void CbmMcbm2019CheckDigisMuch::Finish() { WriteHistos(); }
 
 void CbmMcbm2019CheckDigisMuch::WriteHistos() {
-  TFile* old     = gFile;
+  TFile* oldFile     = gFile;
+  TDirectory* oldDir = gDirectory;
+
   TFile* outfile = TFile::Open(fOutFileName, "RECREATE");
 
   fDigisPerAsicEvo->Write();
@@ -209,7 +212,8 @@ void CbmMcbm2019CheckDigisMuch::WriteHistos() {
   outfile->Close();
   delete outfile;
 
-  gFile = old;
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 
 ClassImp(CbmMcbm2019CheckDigisMuch)
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisSts.cxx b/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisSts.cxx
index f84c03802b2f9c22e045c7729f06cd11d8934129..110db892f9d6003b14b5eb7402463f0992a9f318 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisSts.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2019CheckDigisSts.cxx
@@ -18,6 +18,7 @@
 #include "TH1.h"
 #include "TH2.h"
 #include "THttpServer.h"
+#include <TDirectory.h>
 #include <TFile.h>
 
 #include <iomanip>
@@ -186,7 +187,9 @@ void CbmMcbm2019CheckDigisSts::Exec(Option_t* /*option*/) {
 void CbmMcbm2019CheckDigisSts::Finish() { WriteHistos(); }
 
 void CbmMcbm2019CheckDigisSts::WriteHistos() {
-  TFile* old     = gFile;
+  TFile* oldFile     = gFile;
+  TDirectory* oldDir = gDirectory;
+
   TFile* outfile = TFile::Open(fOutFileName, "RECREATE");
 
   fDigisPerAsicEvo->Write();
@@ -195,7 +198,8 @@ void CbmMcbm2019CheckDigisSts::WriteHistos() {
   outfile->Close();
   delete outfile;
 
-  gFile = old;
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 
 ClassImp(CbmMcbm2019CheckDigisSts)
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019CheckDtInDet.cxx b/fles/mcbm2018/tasks/CbmMcbm2019CheckDtInDet.cxx
index 96290840e2f5edd52ec0c1967205d126bfad9129..88c58aad453210c90e3acfa9cd492a1caaf836b3 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019CheckDtInDet.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2019CheckDtInDet.cxx
@@ -25,9 +25,9 @@
 #include "TH2.h"
 #include "THttpServer.h"
 #include "TProfile.h"
+#include <TDirectory.h>
 #include <TFile.h>
 
-
 #include <iomanip>
 #include <iostream>
 #include <type_traits>
@@ -510,7 +510,10 @@ void CbmMcbm2019CheckDtInDet::FillHistosPerDet(TH1* histoSameTime,
 void CbmMcbm2019CheckDtInDet::Finish() { WriteHistos(); }
 
 void CbmMcbm2019CheckDtInDet::WriteHistos() {
-  TFile* old     = gFile;
+  TFile* oldFile     = gFile;
+  TDirectory* oldDir = gDirectory;
+
+
   TFile* outfile = TFile::Open(fOutFileName, "RECREATE");
 
   fT0T0SameTime->Write();
@@ -548,7 +551,8 @@ void CbmMcbm2019CheckDtInDet::WriteHistos() {
   outfile->Close();
   delete outfile;
 
-  gFile = old;
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 
 ClassImp(CbmMcbm2019CheckDtInDet)
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019CheckPulser.cxx b/fles/mcbm2018/tasks/CbmMcbm2019CheckPulser.cxx
index 642a7ed8ff56d79cc553be0f03dcc2bbb61a9a43..40fb17690dc67402401a4512b152fa044fa9087c 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019CheckPulser.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2019CheckPulser.cxx
@@ -25,9 +25,9 @@
 #include "TH2.h"
 #include "THttpServer.h"
 #include "TProfile.h"
+#include <TDirectory.h>
 #include <TFile.h>
 
-
 #include <iomanip>
 #include <iostream>
 #include <type_traits>
@@ -1113,7 +1113,9 @@ Int_t CbmMcbm2019CheckPulser::FillSystemOffsetHistos(TH1* histo,
 void CbmMcbm2019CheckPulser::Finish() { WriteHistos(); }
 
 void CbmMcbm2019CheckPulser::WriteHistos() {
-  TFile* old     = gFile;
+  TFile* oldFile     = gFile;
+  TDirectory* oldDir = gDirectory;
+
   TFile* outfile = TFile::Open(fOutFileName, "RECREATE");
 
   fT0StsDiff->Write();
@@ -1189,7 +1191,8 @@ void CbmMcbm2019CheckPulser::WriteHistos() {
   outfile->Close();
   delete outfile;
 
-  gFile = old;
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 
 ClassImp(CbmMcbm2019CheckPulser)
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019CheckTimingPairs.cxx b/fles/mcbm2018/tasks/CbmMcbm2019CheckTimingPairs.cxx
index 6403fe7b31a9fb06285e73c87108b399a1137811..c4da8780fc71c134f61e90df8efe4e5d0a558e67 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019CheckTimingPairs.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2019CheckTimingPairs.cxx
@@ -19,9 +19,9 @@
 #include "TH2.h"
 #include "THttpServer.h"
 #include "TProfile.h"
+#include <TDirectory.h>
 #include <TFile.h>
 
-
 #include <iomanip>
 #include <iostream>
 #include <type_traits>
@@ -626,7 +626,9 @@ void CbmMcbm2019CheckTimingPairs::FillHistos(UInt_t uIndexT0,
 void CbmMcbm2019CheckTimingPairs::Finish() { WriteHistos(); }
 
 void CbmMcbm2019CheckTimingPairs::WriteHistos() {
-  TFile* old     = gFile;
+  TFile* oldFile     = gFile;
+  TDirectory* oldDir = gDirectory;
+
   TFile* outfile = TFile::Open(fOutFileName, "RECREATE");
 
   for (UInt_t uPair = 0; uPair < fhDtADtB.size(); ++uPair) {
@@ -636,7 +638,8 @@ void CbmMcbm2019CheckTimingPairs::WriteHistos() {
   outfile->Close();
   delete outfile;
 
-  gFile = old;
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 
 ClassImp(CbmMcbm2019CheckTimingPairs)
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.cxx b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.cxx
index 1216bf30e5dc7c8859819a47217e1b53518f779d..683a1f8e67b468ffeced53df13383b30fa062757 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderTask.cxx
@@ -17,6 +17,7 @@
 #include "TH1.h"
 #include "TH2.h"
 #include "THttpServer.h"
+#include <TDirectory.h>
 #include <TFile.h>
 
 // ---- Default constructor -------------------------------------------
@@ -127,11 +128,11 @@ void CbmMcbm2019TimeWinEventBuilderTask::SaveHistos() {
     histoFile->cd();
   }  // for( UInt_t uHisto = 0; uHisto < vHistos.size(); ++uHisto )
 
+  histoFile->Close();
+
   /// Restore old global file and folder pointer to avoid messing with FairRoot
   gFile      = oldFile;
   gDirectory = oldDir;
-
-  histoFile->Close();
 }
 //----------------------------------------------------------------------
 void CbmMcbm2019TimeWinEventBuilderTask::SetFillHistos(Bool_t bFlag) {
diff --git a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx
index 5d325e5d37d8e821ca06f11100fbd8b3ff0b7acb..af8c47e6579d6d34e166070b8334a819e141287f 100644
--- a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx
@@ -23,6 +23,7 @@
 #include "TH1.h"
 #include "TH2.h"
 #include "THttpServer.h"
+#include <TDirectory.h>
 #include <TFile.h>
 
 #include <iomanip>
@@ -415,7 +416,9 @@ void CbmMcbmCheckTimingAlgo::Finish() {
 }
 
 void CbmMcbmCheckTimingAlgo::WriteHistos() {
-  TFile* old     = gFile;
+  TFile* oldFile     = gFile;
+  TDirectory* oldDir = gDirectory;
+
   TFile* outfile = TFile::Open(fOutFileName, "RECREATE");
 
   for (UInt_t uDetIdx = 0; uDetIdx < fvDets.size(); ++uDetIdx) {
@@ -435,7 +438,8 @@ void CbmMcbmCheckTimingAlgo::WriteHistos() {
   outfile->Close();
   delete outfile;
 
-  gFile = old;
+  gFile      = oldFile;
+  gDirectory = oldDir;
 }
 
 // ---- Finish --------------------------------------------------------
diff --git a/fles/mcbm2018/tasks/CbmMcbmCheckTimingTask.cxx b/fles/mcbm2018/tasks/CbmMcbmCheckTimingTask.cxx
index 7fa222bf489b7558afbbae51da5b5f6da6a2a20b..5fd266077b9faa3283a20366f8027adc2377fce4 100644
--- a/fles/mcbm2018/tasks/CbmMcbmCheckTimingTask.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbmCheckTimingTask.cxx
@@ -16,6 +16,7 @@
 #include "TH1.h"
 #include "TH2.h"
 #include "THttpServer.h"
+#include <TDirectory.h>
 #include <TFile.h>
 
 /// C/C++ headers
@@ -71,13 +72,13 @@ void CbmMcbmCheckTimingTask::SaveHistos() {
    /// Obtain vector of pointers on each histo from the algo (+ optionally desired folder)
    std::vector< std::pair< TNamed *, std::string > > vHistos = fpAlgo->GetHistoVector();
 
-   /// (Re-)Create ROOT file to store the histos
-   TFile* histoFile   = nullptr;
-
    /// 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
+   TFile* histoFile   = nullptr;
+
    /// open separate histo file in recreate mode
    histoFile = new TFile( fsOutFileName , "RECREATE");
    histoFile->cd();
@@ -98,8 +99,8 @@ void CbmMcbmCheckTimingTask::SaveHistos() {
    } // for( UInt_t uHisto = 0; uHisto < vHistos.size(); ++uHisto )
 
   /// Restore original directory position
-  oldDir->cd();
-  histoFile->Close();
+  gFile      = oldFile;
+  gDirectory = oldDir;
 */
 }
 //----------------------------------------------------------------------
diff --git a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTrdR.cxx b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTrdR.cxx
index 7198fe429042f5dd74f6ebef4c8ef11ee4ad9bbf..70638ccdf89f6acbba958b948d7e12f3a6fcd307 100644
--- a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTrdR.cxx
+++ b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerTaskTrdR.cxx
@@ -117,13 +117,13 @@ void CbmMcbm2018UnpackerTaskTrdR::Finish() {
     std::vector<std::pair<TNamed*, std::string>> vHistos =
       fUnpackerAlgo->GetHistoVector();
 
-    /// (Re-)Create ROOT file to store the histos
-    TFile* histoFile   = nullptr;
-
     /// 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
+    TFile* histoFile = nullptr;
+
     // open separate histo file in recreate mode
     TString histoFileName = fMonitorHistoFileName;
     histoFile             = new TFile(histoFileName.Data(), "RECREATE");
@@ -138,6 +138,7 @@ void CbmMcbm2018UnpackerTaskTrdR::Finish() {
       vHistos[uHisto].first->Write();
       histoFile->cd();
     }
+
     /// Restore old global file and folder pointer to avoid messing with FairRoot
     gFile      = oldFile;
     gDirectory = oldDir;