diff --git a/macro/C2F/c2f_transport.C b/macro/C2F/c2f_transport.C
index bb66f66e16a0acf2fb8b602bcf51642e3a1593c5..1840abb37b7a39e53e920be31514f93831f23e89 100644
--- a/macro/C2F/c2f_transport.C
+++ b/macro/C2F/c2f_transport.C
@@ -240,8 +240,6 @@ void c2f_transport(Int_t nEvents = 2, const char* setupName = "sis100_electron",
   FairParRootFileIo* parOut = new FairParRootFileIo(kParameterMerged);
   parOut->open(parFile.Data());
   rtdb->setOutput(parOut);
-  rtdb->saveOutput();
-  rtdb->print();
   // ------------------------------------------------------------------------
 
 
@@ -253,6 +251,8 @@ void c2f_transport(Int_t nEvents = 2, const char* setupName = "sis100_electron",
 
 
   // -----   Finish   -------------------------------------------------------
+  rtdb->saveOutput();
+  rtdb->print();
   run->CreateGeometryFile(geoFile);
   timer.Stop();
   Double_t rtime = timer.RealTime();
diff --git a/macro/beamtime/mcbm2022/mcbm_digievent_display.C b/macro/beamtime/mcbm2022/mcbm_digievent_display.C
index 8695ad0203641f584f5ab3a4d3d625b528984cd7..79561073fd98b9632dc4f65371df5e8c4286707c 100644
--- a/macro/beamtime/mcbm2022/mcbm_digievent_display.C
+++ b/macro/beamtime/mcbm2022/mcbm_digievent_display.C
@@ -1293,8 +1293,6 @@ Bool_t mcbm_digievent_display(UInt_t uRunId               = 2391,
   parIo3->open(parFileOut.Data(), "RECREATE");
   // ------------------------------------------------------------------------
   rtdb->setOutput(parIo3);
-  rtdb->saveOutput();
-  rtdb->print();
 
   // -----   Event display   ---------------------------------------------------------------------------------------- //
   std::string sXmlGeoConfig = "evt_disp_conf_mcbm_beam_2022_05_23_nickel.xml";
@@ -1340,6 +1338,9 @@ Bool_t mcbm_digievent_display(UInt_t uRunId               = 2391,
   ann->SetTextColor(4);
   // ---------------------------------------------------------------------------------------------------------------- //
 
+  rtdb->saveOutput();
+  rtdb->print();
+
   if (kFALSE) {
     gROOT->LoadMacro("save_hst.C");
     TString SaveToHstFile = "save_hst(\"" + cHstFile + "\")";
diff --git a/macro/beamtime/mcbm2022/mcbm_digievent_reco.C b/macro/beamtime/mcbm2022/mcbm_digievent_reco.C
index f595b4d944b4f874bd6f5e8c1932524611d5d3ac..86dda771aaaff7440f6295fe7abde35d5f69ddda 100644
--- a/macro/beamtime/mcbm2022/mcbm_digievent_reco.C
+++ b/macro/beamtime/mcbm2022/mcbm_digievent_reco.C
@@ -637,8 +637,6 @@ Bool_t mcbm_digievent_reco(UInt_t uRunId               = 2365,
   parIo3->open(parFileOut.Data(), "RECREATE");
   // ------------------------------------------------------------------------
   rtdb->setOutput(parIo3);
-  rtdb->saveOutput();
-  rtdb->print();
 
   // -----   Run initialisation   -------------------------------------------
   std::cout << std::endl;
@@ -659,6 +657,8 @@ Bool_t mcbm_digievent_reco(UInt_t uRunId               = 2365,
   gInterpreter->ProcessLine(SaveToHstFile);
 
   // -----   Finish   -------------------------------------------------------
+  rtdb->saveOutput();
+  rtdb->print();
   timer.Stop();
   FairMonitor::GetMonitor()->Print();
   Double_t rtime = timer.RealTime();
diff --git a/macro/beamtime/mcbm2022/mcbm_event_reco.C b/macro/beamtime/mcbm2022/mcbm_event_reco.C
index e893e9b8f16c3247595743abfc4e178c34122db9..cac2c468e7319ca9f3dc8306f30a1460ca84adee 100644
--- a/macro/beamtime/mcbm2022/mcbm_event_reco.C
+++ b/macro/beamtime/mcbm2022/mcbm_event_reco.C
@@ -944,8 +944,6 @@ Bool_t mcbm_event_reco(UInt_t uRunId                   = 2391,
   parIo3->open(parFileOut.Data(), "RECREATE");
   // ------------------------------------------------------------------------
   rtdb->setOutput(parIo3);
-  rtdb->saveOutput();
-  rtdb->print();
 
   // -----   Run initialisation   -------------------------------------------
   std::cout << std::endl;
@@ -963,6 +961,8 @@ Bool_t mcbm_event_reco(UInt_t uRunId                   = 2391,
 
 
   // -----   Finish   -------------------------------------------------------
+  rtdb->saveOutput();
+  rtdb->print();
   timer.Stop();
   FairMonitor::GetMonitor()->Print();
   Double_t rtime = timer.RealTime();
diff --git a/macro/beamtime/mcbm2022/mcbm_reco.C b/macro/beamtime/mcbm2022/mcbm_reco.C
index b4ac8880139e5933726f4e5e48108bda7b6603db..4357665e4bbf30556ca89fb1e78f8be72e62c384 100644
--- a/macro/beamtime/mcbm2022/mcbm_reco.C
+++ b/macro/beamtime/mcbm2022/mcbm_reco.C
@@ -600,8 +600,6 @@ Bool_t mcbm_reco(UInt_t uRunId                   = 2391,
   parIo3->open(parFileOut.Data(), "RECREATE");
   // ------------------------------------------------------------------------
   rtdb->setOutput(parIo3);
-  rtdb->saveOutput();
-  rtdb->print();
 
   // -----   Run initialisation   -------------------------------------------
   std::cout << std::endl;
@@ -619,6 +617,8 @@ Bool_t mcbm_reco(UInt_t uRunId                   = 2391,
 
 
   // -----   Finish   -------------------------------------------------------
+  rtdb->saveOutput();
+  rtdb->print();
   timer.Stop();
   FairMonitor::GetMonitor()->Print();
   Double_t rtime = timer.RealTime();
diff --git a/macro/mcbm/eventDisplay_reco.C b/macro/mcbm/eventDisplay_reco.C
index 5c76862f02aaea4942dc197ba334e68306344cad..ef8ae854f91376820ff579a72f2b0425599f9310 100644
--- a/macro/mcbm/eventDisplay_reco.C
+++ b/macro/mcbm/eventDisplay_reco.C
@@ -234,7 +234,6 @@ void eventDisplay_reco(TString cSys = "lam", TString cEbeam = "2.5gev", TString
   rtdb->setFirstInput(parIo1);
   rtdb->setSecondInput(parIo2);
   rtdb->setOutput(parIo1);
-  rtdb->saveOutput();
   // ------------------------------------------------------------------------
 
   FairEventManager* fMan = new FairEventManager();
@@ -302,6 +301,7 @@ void eventDisplay_reco(TString cSys = "lam", TString cEbeam = "2.5gev", TString
   }
 
   // -----   Finish   -------------------------------------------------------
+  rtdb->saveOutput();
   timer.Stop();
   Double_t rtime = timer.RealTime();
   Double_t ctime = timer.CpuTime();
diff --git a/macro/mcbm/mcbm_mc_nh.C b/macro/mcbm/mcbm_mc_nh.C
index 43b4dd9bcf07ef8b1b5ae520e398c2e790b982f2..f3b7bf98904672759cc3b5a69f0e0993d5260ada 100644
--- a/macro/mcbm/mcbm_mc_nh.C
+++ b/macro/mcbm/mcbm_mc_nh.C
@@ -330,8 +330,6 @@ void mcbm_mc_nh(Int_t nEvents = 2, Int_t iMode = 3, TString cSys = "lam", TStrin
   FairParRootFileIo* parOut = new FairParRootFileIo(kParameterMerged);
   parOut->open(parFile.Data());
   rtdb->setOutput(parOut);
-  rtdb->saveOutput();
-  rtdb->print();
   // ------------------------------------------------------------------------
 
 
@@ -342,6 +340,8 @@ void mcbm_mc_nh(Int_t nEvents = 2, Int_t iMode = 3, TString cSys = "lam", TStrin
   // ------------------------------------------------------------------------
 
   // -----   Finish   -------------------------------------------------------
+  rtdb->saveOutput();
+  rtdb->print();
   run->CreateGeometryFile(geoFile);
   timer.Stop();
   Double_t rtime = timer.RealTime();
diff --git a/macro/mcbm/mcbm_pribeam.C b/macro/mcbm/mcbm_pribeam.C
index 43b7f82627c235d96cb171dc0a0bea5aef0f5335..dfbda464f7fc9e31ca49d156d670c6fdf0cbc3d8 100644
--- a/macro/mcbm/mcbm_pribeam.C
+++ b/macro/mcbm/mcbm_pribeam.C
@@ -290,8 +290,6 @@ void mcbm_pribeam(Int_t nEvents = 2, const char* setupName = "sis18_mcbm", const
   FairParRootFileIo* parOut = new FairParRootFileIo(kParameterMerged);
   parOut->open(parFile.Data());
   rtdb->setOutput(parOut);
-  rtdb->saveOutput();
-  rtdb->print();
   // ------------------------------------------------------------------------
 
 
@@ -302,6 +300,8 @@ void mcbm_pribeam(Int_t nEvents = 2, const char* setupName = "sis18_mcbm", const
   // ------------------------------------------------------------------------
 
   // -----   Finish   -------------------------------------------------------
+  rtdb->saveOutput();
+  rtdb->print();
   run->CreateGeometryFile(geoFile);
   timer.Stop();
   Double_t rtime = timer.RealTime();
diff --git a/macro/mcbm/mcbm_qa_nh.C b/macro/mcbm/mcbm_qa_nh.C
index 489b20b98e470cbfe4804d606e6448b12ea1828e..d48ee02952e8f40959ae554c7b005ea9619084da 100644
--- a/macro/mcbm/mcbm_qa_nh.C
+++ b/macro/mcbm/mcbm_qa_nh.C
@@ -88,7 +88,6 @@ void mcbm_qa_nh(Int_t nEvents = 1000, TString cSys = "nini", TString cEbeam = "1
   rtdb->setFirstInput(parIo1);
   //  rtdb->setSecondInput(parIo2);
   rtdb->setOutput(parIo1);
-  rtdb->saveOutput();
   // ------------------------------------------------------------------------
 
 
@@ -99,6 +98,7 @@ void mcbm_qa_nh(Int_t nEvents = 1000, TString cSys = "nini", TString cEbeam = "1
   // ------------------------------------------------------------------------
 
   // -----   Finish   -------------------------------------------------------
+  rtdb->saveOutput();
   timer.Stop();
   Double_t rtime = timer.RealTime();
   Double_t ctime = timer.CpuTime();
diff --git a/macro/mcbm/mcbm_reco_dev.C b/macro/mcbm/mcbm_reco_dev.C
index 0a84b2d695bd94fa9b858f2920a99e6cf791f607..2cb11b19b13b2b4a39883948af5279e9056673cd 100644
--- a/macro/mcbm/mcbm_reco_dev.C
+++ b/macro/mcbm/mcbm_reco_dev.C
@@ -176,8 +176,6 @@ void mcbm_reco_dev(Int_t nEvents = 2, const char* setupName = "sis18_mcbm_25deg_
   rtdb->setFirstInput(parIo1);
   rtdb->setSecondInput(parIo2);
   rtdb->setOutput(parIo1);
-  rtdb->saveOutput();
-  rtdb->print();
   // ------------------------------------------------------------------------
 
 
@@ -196,6 +194,8 @@ void mcbm_reco_dev(Int_t nEvents = 2, const char* setupName = "sis18_mcbm_25deg_
 
 
   // -----   Finish   -------------------------------------------------------
+  rtdb->saveOutput();
+  rtdb->print();
   timer.Stop();
   Double_t rtime = timer.RealTime();
   Double_t ctime = timer.CpuTime();
diff --git a/macro/mcbm/mcbm_reco_gp.C b/macro/mcbm/mcbm_reco_gp.C
index c056c4c8dfbdbb1144afd96444635b4b598e53b9..4c51cdac7118b386df989a9187122acfb2410342 100644
--- a/macro/mcbm/mcbm_reco_gp.C
+++ b/macro/mcbm/mcbm_reco_gp.C
@@ -238,8 +238,6 @@ void mcbm_reco_gp(Int_t nEvents = 100, TString cSys = "nini", TString cEbeam = "
   rtdb->setFirstInput(parIo1);
   rtdb->setSecondInput(parIo2);
   rtdb->setOutput(parIo1);
-  rtdb->saveOutput();
-  rtdb->print();
   // ------------------------------------------------------------------------
 
 
@@ -258,6 +256,8 @@ void mcbm_reco_gp(Int_t nEvents = 100, TString cSys = "nini", TString cEbeam = "
 
 
   // -----   Finish   -------------------------------------------------------
+  rtdb->saveOutput();
+  rtdb->print();
   timer.Stop();
   Double_t rtime = timer.RealTime();
   Double_t ctime = timer.CpuTime();
diff --git a/macro/mcbm/mcbm_reco_nh.C b/macro/mcbm/mcbm_reco_nh.C
index c30822cea22f33b4510c1adb6eab82bc3f732748..87443ba4af507cef9ab0cbc19805e190e5f2f06a 100644
--- a/macro/mcbm/mcbm_reco_nh.C
+++ b/macro/mcbm/mcbm_reco_nh.C
@@ -164,8 +164,6 @@ void mcbm_reco_nh(Int_t nEvents = 1000, TString cSys = "lam", TString cEbeam = "
   rtdb->setFirstInput(parIo1);
   rtdb->setSecondInput(parIo2);
   rtdb->setOutput(parIo1);
-  rtdb->saveOutput();
-  rtdb->print();
   // ------------------------------------------------------------------------
 
 
@@ -182,6 +180,8 @@ void mcbm_reco_nh(Int_t nEvents = 1000, TString cSys = "lam", TString cEbeam = "
   // ------------------------------------------------------------------------
 
   // -----   Finish   -------------------------------------------------------
+  rtdb->saveOutput();
+  rtdb->print();
   timer.Stop();
   Double_t rtime = timer.RealTime();
   Double_t ctime = timer.CpuTime();
diff --git a/macro/mcbm/sps17_mc.C b/macro/mcbm/sps17_mc.C
index 7e2a387e269a29bdb7a13e7d6f5adca453877bc8..9935de88c5d42fc75b87d116d50487f983d90ebc 100644
--- a/macro/mcbm/sps17_mc.C
+++ b/macro/mcbm/sps17_mc.C
@@ -286,8 +286,6 @@ void sps17_mc(Int_t nEvents = 2, const char* setupName = "sps17", const char* in
   FairParRootFileIo* parOut = new FairParRootFileIo(kParameterMerged);
   parOut->open(parFile.Data());
   rtdb->setOutput(parOut);
-  rtdb->saveOutput();
-  rtdb->print();
   // ------------------------------------------------------------------------
 
 
@@ -298,6 +296,8 @@ void sps17_mc(Int_t nEvents = 2, const char* setupName = "sps17", const char* in
   // ------------------------------------------------------------------------
 
   // -----   Finish   -------------------------------------------------------
+  rtdb->saveOutput();
+  rtdb->print();
   run->CreateGeometryFile(geoFile);
   timer.Stop();
   Double_t rtime = timer.RealTime();
diff --git a/macro/tutorial/run_HitProducerTaskIdeal.C b/macro/tutorial/run_HitProducerTaskIdeal.C
index cacc2c96a21cb40ed857e431e4a4e962d9acc51f..fa7308c70777df5b5d9baebc32dd0ad6139e96a7 100644
--- a/macro/tutorial/run_HitProducerTaskIdeal.C
+++ b/macro/tutorial/run_HitProducerTaskIdeal.C
@@ -79,7 +79,6 @@ void run_HitProducerTaskIdeal(Int_t nEvents = 10, TString inFile = "data/test.mc
   rtdb->setFirstInput(parIo1);
   rtdb->setSecondInput(parIo2);
   rtdb->setOutput(parIo1);
-  rtdb->saveOutput();
   // ------------------------------------------------------------------------
 
 
@@ -90,6 +89,7 @@ void run_HitProducerTaskIdeal(Int_t nEvents = 10, TString inFile = "data/test.mc
   // ------------------------------------------------------------------------
 
   // -----   Finish   -------------------------------------------------------
+  rtdb->saveOutput();
   timer.Stop();
   Double_t rtime = timer.RealTime();
   Double_t ctime = timer.CpuTime();