diff --git a/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx b/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx
index b8a467a29787175dfd5ee98e03636e9e74f95f1a..16dc585bbf3c42396adb06e54696f77090457bfb 100644
--- a/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx
+++ b/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx
@@ -37,23 +37,24 @@ using namespace std;
 #include "CbmTrdPoint.h"
 #include "CbmVertex.h"
 
-#include "FairMCEventHeader.h"
-#include "FairMCPoint.h"
-#include "FairRootManager.h"
-#include "FairRunAna.h"
+#include <FairMCEventHeader.h>
+#include <FairMCPoint.h>
+#include <FairRootFileSink.h>
+#include <FairRootManager.h>
+#include <FairRunAna.h>
 #include <Logger.h>
 
-#include "TClonesArray.h"
-#include "TFile.h"
-#include "TH1.h"
-#include "TH1F.h"
-#include "TH2F.h"
-#include "TH3.h"
-#include "TH3F.h"
-#include "TMath.h"
-#include "TROOT.h"
-#include "TRandom.h"
-#include "TString.h"
+#include <TClonesArray.h>
+#include <TFile.h>
+#include <TH1.h>
+#include <TH1F.h>
+#include <TH2F.h>
+#include <TH3.h>
+#include <TH3F.h>
+#include <TMath.h>
+#include <TROOT.h>
+#include <TRandom.h>
+#include <TString.h>
 
 CbmDigiManager* fDigiMan;   // TOF Input Digis
 TClonesArray* fEventsColl;  // CBMEvents (time based)
@@ -491,8 +492,11 @@ void CbmHadronAnalysis::CreateHistogramms()
 {
   // Create histogramms
   // gROOT->cd();
-  FairRunAna* fRun = FairRunAna::Instance();
-  fHist            = fRun->GetOutputFile();
+  auto sink = FairRunAna::Instance()->GetSink();
+  assert(sink->GetSinkType() == kFILESINK);
+  auto rootFileSink = static_cast<FairRootFileSink*>(sink);
+  fHist             = rootFileSink->GetRootFile();
+
   TString hname    = fHist->GetName();
   hname.Insert(hname.Length() - 5, ".HadAna");
   fHist = new TFile(hname, "recreate");
diff --git a/core/field/CbmFieldCreator.cxx b/core/field/CbmFieldCreator.cxx
index 97c4f3f159616b81ae3b4813daf916c97d557b98..9543e2c088768a7d4ebb949dffb6ccc5e7abaf15 100644
--- a/core/field/CbmFieldCreator.cxx
+++ b/core/field/CbmFieldCreator.cxx
@@ -28,7 +28,7 @@ using std::endl;
 
 static CbmFieldCreator gCbmFieldCreator;
 
-CbmFieldCreator::CbmFieldCreator() : FairFieldFactory(), fFieldPar(nullptr) { fCreator = this; }
+CbmFieldCreator::CbmFieldCreator() : FairFieldFactory(), fFieldPar(nullptr) {}
 
 CbmFieldCreator::~CbmFieldCreator() {}
 
diff --git a/sim/response/base/CbmDigitization.cxx b/sim/response/base/CbmDigitization.cxx
index 5c64e630a9dda361658278c3aef80355e6cd6735..3acf0c1c6e9ad86ba56c77e34aa2fdc78319bc82 100644
--- a/sim/response/base/CbmDigitization.cxx
+++ b/sim/response/base/CbmDigitization.cxx
@@ -21,18 +21,19 @@
 #include "CbmTofDigitize.h"
 #include "CbmTrdDigitizer.h"
 
-#include "FairFileSource.h"
-#include "FairMCEventHeader.h"
-#include "FairMonitor.h"
-#include "FairParAsciiFileIo.h"
-#include "FairParRootFileIo.h"
-#include "FairRuntimeDb.h"
+#include <FairFileSource.h>
+#include <FairMCEventHeader.h>
+#include <FairMonitor.h>
+#include <FairParAsciiFileIo.h>
+#include <FairParRootFileIo.h>
+#include <FairRootFileSink.h>
+#include <FairRuntimeDb.h>
 #include <Logger.h>
 
-#include "TClonesArray.h"
-#include "TGeoManager.h"
-#include "TObjString.h"
-#include "TROOT.h"
+#include <TClonesArray.h>
+#include <TGeoManager.h>
+#include <TObjString.h>
+#include <TROOT.h>
 
 #include <cassert>
 
@@ -371,8 +372,10 @@ void CbmDigitization::Run(Int_t event1, Int_t event2)
   run->SetSource(fSource);
 
 
-  // --- Set output file
-  run->SetOutputFile(fOutFile);
+  // --- Create file sink using output file name
+  // TODO: remove release after switching to FairRoot v18.8
+  //run->SetSink(std::make_unique<FairRootFileSink>(fOutFile));
+  run->SetSink(std::make_unique<FairRootFileSink>(fOutFile).release());
   LOG(info) << fName << ": Output file is " << fOutFile;
 
 
diff --git a/sim/transport/steer/CbmTransport.cxx b/sim/transport/steer/CbmTransport.cxx
index 72edb8858dd7cae7b417639060d9fa3de005d742..babc2725b741367bcf54682c892f56a3899a1ab5 100644
--- a/sim/transport/steer/CbmTransport.cxx
+++ b/sim/transport/steer/CbmTransport.cxx
@@ -22,28 +22,29 @@
 #include "CbmTarget.h"
 #include "CbmUnigenGenerator.h"
 
-#include "FairMonitor.h"
-#include "FairParRootFileIo.h"
-#include "FairRunSim.h"
-#include "FairRuntimeDb.h"
-#include "FairSystemInfo.h"
-#include "FairUrqmdGenerator.h"
+#include <FairMonitor.h>
+#include <FairParRootFileIo.h>
+#include <FairRootFileSink.h>
+#include <FairRunSim.h>
+#include <FairRuntimeDb.h>
+#include <FairSystemInfo.h>
+#include <FairUrqmdGenerator.h>
 #include <Logger.h>
 
-#include "TDatabasePDG.h"
-#include "TG4RunConfiguration.h"
-#include "TGeant3.h"
-#include "TGeant3TGeo.h"
-#include "TGeant4.h"
-#include "TGeoManager.h"
-#include "TPythia6Decayer.h"
-#include "TROOT.h"
-#include "TRandom.h"
-#include "TStopwatch.h"
-#include "TString.h"
-#include "TSystem.h"
-#include "TVector3.h"
-#include "TVirtualMC.h"
+#include <TDatabasePDG.h>
+#include <TG4RunConfiguration.h>
+#include <TGeant3.h>
+#include <TGeant3TGeo.h>
+#include <TGeant4.h>
+#include <TGeoManager.h>
+#include <TPythia6Decayer.h>
+#include <TROOT.h>
+#include <TRandom.h>
+#include <TStopwatch.h>
+#include <TString.h>
+#include <TSystem.h>
+#include <TVector3.h>
+#include <TVirtualMC.h>
 
 #include <boost/filesystem.hpp>
 
@@ -530,8 +531,10 @@ void CbmTransport::Run(Int_t nEvents)
   fRun->SetName(engineName);
 
 
-  // --- Set output file name
-  fRun->SetOutputFile(fOutFileName);
+  // --- Create file sink using output file name
+  // TODO: remove release after switching to FairRoot v18.8
+  //  fRun->SetSink(std::make_unique<FairRootFileSink>(fOutFileName));
+  fRun->SetSink(std::make_unique<FairRootFileSink>(fOutFileName).release());
 
   // --- Create and register the setup modules, field and media with FairRoot
   RegisterSetup();
@@ -607,7 +610,11 @@ void CbmTransport::Run(Int_t nEvents)
   TDirectory* oldDir = gDirectory;
 
   // Write Transport Settings to the output file
-  TFile* outfile = fRun->GetOutputFile();
+  auto sink = fRun->GetSink();
+  assert(sink->GetSinkType() == kFILESINK);
+  auto rootFileSink = static_cast<FairRootFileSink*>(sink);
+  TFile* outfile    = rootFileSink->GetRootFile();
+  ;
   outfile->cd();
 
   LOG(info) << "Here I am";