diff --git a/analysis/detectors/mvd/CbmMvdReadout.cxx b/analysis/detectors/mvd/CbmMvdReadout.cxx
index aac79434ead728c185791c354ff2ce4bb79a4167..02533f83847f6f518bfa67951c4e5e214e74a711 100644
--- a/analysis/detectors/mvd/CbmMvdReadout.cxx
+++ b/analysis/detectors/mvd/CbmMvdReadout.cxx
@@ -5,27 +5,19 @@
 // -------------------------------------------------------------------------
 // -----                    CbmMvdClusterfinder source file                -----
 // -------------------------------------------------------------------------
-
-// Includes from MVD
 #include "CbmMvdReadout.h"
 
-#include "CbmMvdDetector.h"
-#include "CbmMvdSensorReadoutTask.h"
-
-// Includes from FAIR
-#include "FairModule.h"
-#include "FairRootManager.h"
-
-// Includes from ROOT
-#include "CbmDigiManager.h"
-
-#include "TClonesArray.h"
+#include "CbmDefs.h"                               // for ECbmModuleId
+#include "CbmDigiManager.h"                        // for CbmDigiManager
+#include "CbmMvdDetector.h"                        // for CbmMvdDetector
+#include "CbmMvdDigi.h"                            // for CbmMvdDigi
+#include "CbmMvdSensor.h"                          // for CbmMvdSensor
+#include "CbmMvdSensorReadoutTask.h"               // for CbmMvdSensorReadoudoutTask
 
+#include <FairRootManager.h>                       // for FairRootManager
+#include <Logger.h>                                // for LOG
 
-// Includes from C++
-#include <iomanip>
-#include <iostream>
-
+#include <iostream>                                // for operator<<, endl
 
 using std::cout;
 using std::endl;
@@ -109,9 +101,23 @@ InitStatus CbmMvdReadout::Init()
     LOG(fatal) << "Geometry couldn't be loaded from file. No MVD digitizer available.";
   }
 
-  CbmMvdSensorReadoutTask* readerTask = new CbmMvdSensorReadoutTask();
+  // Add the readout plugin to all sensors
+  std::map<int, CbmMvdSensor*>& sensorMap = fDetector->GetSensorMap();
+  UInt_t plugincount=fDetector->GetPluginCount();
+
+  for (auto itr = sensorMap.begin();
+              itr != sensorMap.end(); itr++) {
+    CbmMvdSensorReadoutTask* readerTask = new CbmMvdSensorReadoutTask();
+
+    itr->second->AddPlugin(readerTask);
+    // Don't know why type of plugin it is
+    // Decide to use Cluster Plugin since it works on CbmMvdDigis as the
+    // normal cluster plugin does
+    itr->second->SetClusterPlugin(plugincount);
+  }
+  fDetector->SetSensorArrayFilled(kTRUE);
+  fDetector->SetPluginCount(plugincount+1);
 
-  fDetector->AddPlugin(readerTask);
   fPluginNr = (UInt_t)(fDetector->GetPluginArraySize());
   fDetector->Init();
 
diff --git a/analysis/detectors/mvd/CbmMvdReadout.h b/analysis/detectors/mvd/CbmMvdReadout.h
index cf200aafd2f3691835025f3e355f86745715f165..072a15aa32854b539d50b9ca444fce7c2dcfd5f9 100644
--- a/analysis/detectors/mvd/CbmMvdReadout.h
+++ b/analysis/detectors/mvd/CbmMvdReadout.h
@@ -11,11 +11,16 @@
 #ifndef CBMMVDREADOUT_H
 #define CBMMVDREADOUT_H 1
 
-#include "FairTask.h"
+#include <FairTask.h>    // for InitStatus, FairTask
+
+#include <Rtypes.h>      // for ClassDef
+#include <RtypesCore.h>  // for Int_t, Bool_t, Option_t, kTRUE
 
-class CbmMvdDetector;
-class TClonesArray;
 class CbmDigiManager;
+class CbmMvdDetector;
+class TBuffer;
+class TClass;
+class TMemberInspector;
 
 class CbmMvdReadout : public FairTask {
 
diff --git a/analysis/detectors/mvd/CbmMvdReadoutCluster.cxx b/analysis/detectors/mvd/CbmMvdReadoutCluster.cxx
index 96d1b67d03ca1b86b954fecfd651141ae872c068..f6ad8e2999d271db6a1a52e13d85fe2942fd31b9 100644
--- a/analysis/detectors/mvd/CbmMvdReadoutCluster.cxx
+++ b/analysis/detectors/mvd/CbmMvdReadoutCluster.cxx
@@ -9,22 +9,19 @@
 
 #include "CbmMvdReadoutCluster.h"
 
-#include "CbmMvdCluster.h"
-
-//-- Include from Fair --//
-#include <FairRootManager.h>
-#include <Logger.h>
-
-//-- Include from Root --//
-#include "TCanvas.h"
-#include "TClonesArray.h"
-#include "TF1.h"
-#include "TMath.h"
-#include <TFile.h>
-
-#include <iostream>
-#include <map>
-#include <utility>
+#include "CbmMvdCluster.h"    // for CbmMvdCluster
+
+#include <FairRootManager.h>  // for FairRootManager
+#include <Logger.h>           // for LOG, Logger
+
+#include <TClonesArray.h>     // for TClonesArray
+#include <TFile.h>            // for TFile
+#include <TH1.h>              // for TH1F
+#include <TString.h>          // for Form
+
+#include <iostream>           // for cout, endl
+#include <map>                // for allocator, map, operator!=, __map_iterator
+#include <utility>            // for pair
 
 using std::cout;
 using std::endl;
diff --git a/analysis/detectors/mvd/CbmMvdReadoutCluster.h b/analysis/detectors/mvd/CbmMvdReadoutCluster.h
index 41b1a2f1cb0e295171beca81033fdff4090a5a41..f707282a6526216befd2be8520ca65ff3ef57e64 100644
--- a/analysis/detectors/mvd/CbmMvdReadoutCluster.h
+++ b/analysis/detectors/mvd/CbmMvdReadoutCluster.h
@@ -18,13 +18,17 @@
 #ifndef CBMMVDREADOUTCLUSTER_H
 #define CBMMVDREADOUTCLUSTER_H 1
 
-#include "FairTask.h"
+#include <FairTask.h>    // for FairTask, InitStatus
 
-#include "TH1F.h"
-#include "TH2F.h"
+#include <Rtypes.h>      // for ClassDef
+#include <RtypesCore.h>  // for Int_t, Bool_t, Option_t, kTRUE
 
+class TBuffer;
+class TClass;
 class TClonesArray;
 class TFile;
+class TH1F;
+class TMemberInspector;
 
 class CbmMvdReadoutCluster : public FairTask {
 public:
diff --git a/analysis/detectors/mvd/CbmMvdReadoutSimple.cxx b/analysis/detectors/mvd/CbmMvdReadoutSimple.cxx
index 0e8ed6ca939bbeb53a2d83eec7de31ed85766e5f..ccc923f5ceae712f370da16c23299937fcdc2c7b 100644
--- a/analysis/detectors/mvd/CbmMvdReadoutSimple.cxx
+++ b/analysis/detectors/mvd/CbmMvdReadoutSimple.cxx
@@ -6,29 +6,23 @@
 // -----                  CbmMvdReadoutSimple source file              -----
 // -----                  Created 17/10/16 by P. Sitzmann              -----
 // -------------------------------------------------------------------------
-
 #include "CbmMvdReadoutSimple.h"
 
-#include "CbmMCTrack.h"
-#include "CbmMvdDetector.h"
-#include "CbmMvdPoint.h"
-#include "CbmMvdSensor.h"
-#include "tools/CbmMvdGeoHandler.h"
-
-
-//-- Include from Fair --//
-#include <FairRootManager.h>
-#include <FairTrackParam.h>
-#include <Logger.h>
+#include "CbmMvdPoint.h"      // for CbmMvdPoint
 
+#include <FairRootManager.h>  // for FairRootManager
+#include <Logger.h>           // for Logger, LOG
 
-//-- Include from Root --//
-#include <TCanvas.h>
-#include <TF1.h>
-#include <TFile.h>
-#include <TMath.h>
+#include <TAxis.h>            // for TAxis
+#include <TCanvas.h>          // for TCanvas
+#include <TClonesArray.h>     // for TClonesArray
+#include <TF1.h>              // for TF1
+#include <TFile.h>            // for TFile
+#include <TH1.h>              // for TH1F, TH1I
+#include <TH2.h>              // for TH2F, TH2I
+#include <TString.h>          // for Form
 
-#include <iostream>
+#include <iostream>           // for operator<<, basic_ostream, endl, cout
 
 using std::cout;
 using std::endl;
diff --git a/analysis/detectors/mvd/CbmMvdReadoutSimple.h b/analysis/detectors/mvd/CbmMvdReadoutSimple.h
index ce4efd7818d63a9dc55ecb2592cf84daaaeab52e..950b1ebaa7c8a3e05eacd6f326c34d56b7fcd77e 100644
--- a/analysis/detectors/mvd/CbmMvdReadoutSimple.h
+++ b/analysis/detectors/mvd/CbmMvdReadoutSimple.h
@@ -18,13 +18,20 @@
 #ifndef CBMMVDREADOUTSIMPLE_H
 #define CBMMVDREADOUTSIMPLE_H 1
 
-#include "FairTask.h"
+#include <FairTask.h>    // for FairTask, InitStatus
 
-#include "TH1F.h"
-#include "TH2F.h"
+#include <Rtypes.h>      // for ClassDef
+#include <RtypesCore.h>  // for Int_t, Bool_t, Option_t, kTRUE
 
+class TBuffer;
+class TClass;
 class TClonesArray;
 class TFile;
+class TH1F;
+class TH1I;
+class TH2F;
+class TH2I;
+class TMemberInspector;
 
 class CbmMvdReadoutSimple : public FairTask {
 public:
diff --git a/analysis/detectors/mvd/plugins/tasks/CbmMvdSensorReadoutTask.cxx b/analysis/detectors/mvd/plugins/tasks/CbmMvdSensorReadoutTask.cxx
index 1ac40168c5fbe41caea9ff4a0584e6414525836d..7542a16c26ab8f90f02382c07d847084b90eb26f 100644
--- a/analysis/detectors/mvd/plugins/tasks/CbmMvdSensorReadoutTask.cxx
+++ b/analysis/detectors/mvd/plugins/tasks/CbmMvdSensorReadoutTask.cxx
@@ -6,14 +6,14 @@
 // -----                  CbmMvdSensorReadoutTask source file          -----
 // -----                  Created 15.05.2017 by P. Sitzmann            -----
 // -------------------------------------------------------------------------
-
 #include "CbmMvdSensorReadoutTask.h"
 
-#include "TClonesArray.h"
-#include "TH1I.h"
-#include "TObjArray.h"
+#include "CbmMvdDigi.h"    // for CbmMvdDigi
+
+#include <TClonesArray.h>  // for TClonesArray
+#include <TH1.h>           // for TH1I
 
-#include <iostream>
+#include <iostream>        // for operator<<, basic_ostream, endl, cout, ost...
 
 using std::cout;
 using std::endl;
diff --git a/analysis/detectors/mvd/plugins/tasks/CbmMvdSensorReadoutTask.h b/analysis/detectors/mvd/plugins/tasks/CbmMvdSensorReadoutTask.h
index 4dd64d2d607187c0ec6ff6dfbe8af0ee1d5e8703..087952be8c090bc2a2bd983b37e484036b0cc96c 100644
--- a/analysis/detectors/mvd/plugins/tasks/CbmMvdSensorReadoutTask.h
+++ b/analysis/detectors/mvd/plugins/tasks/CbmMvdSensorReadoutTask.h
@@ -17,16 +17,17 @@
 #ifndef CBMMVDSENSORREADOUTTASK_H
 #define CBMMVDSENSORREADOUTTASK_H 1
 
-#include "CbmMvdDigi.h"
-#include "CbmMvdSensorTask.h"
+#include "CbmMvdSensorTask.h"  // for CbmMvdSensorTask
 
-#include "TObject.h"
+#include <Rtypes.h>            // for ClassDef
+#include <RtypesCore.h>        // for Int_t
 
-#include <iostream>
-
-
-class TClonesArray;
+class CbmMvdDigi;
 class CbmMvdSensor;
+class TBuffer;
+class TClass;
+class TClonesArray;
+class TMemberInspector;
 
 class CbmMvdSensorReadoutTask : public CbmMvdSensorTask {
 
diff --git a/analysis/detectors/mvd/qa/CbmMvdClusterAna.cxx b/analysis/detectors/mvd/qa/CbmMvdClusterAna.cxx
index 2a41e3c65b8c34142683a84344529367ec1a6373..ac55debc288ea5583ea763e253ff1a92fa0138ec 100644
--- a/analysis/detectors/mvd/qa/CbmMvdClusterAna.cxx
+++ b/analysis/detectors/mvd/qa/CbmMvdClusterAna.cxx
@@ -56,16 +56,16 @@ using std::flush;
 // -----   Default constructor   -------------------------------------------
 CbmMvdClusterAna::CbmMvdClusterAna()
   : FairTask("MvdClusterAna")
-  , fMcPoints(NULL)
-  , fMvdDigis(NULL)
-  , fMvdClusters(NULL)
-  , fMvdHits(NULL)
-  , fMvdDigisMatch(NULL)
-  , fMvdClustersMatch(NULL)
-  , fMvdHitsMatch(NULL)
-  , fListMCTracks(NULL)
-  , fStsTrackArray(NULL)
-  , fStsTrackMatches(NULL)
+  , fMcPoints(nullptr)
+  , fMvdDigis(nullptr)
+  , fMvdClusters(nullptr)
+  , fMvdHits(nullptr)
+  , fMvdDigisMatch(nullptr)
+  , fMvdClustersMatch(nullptr)
+  , fMvdHitsMatch(nullptr)
+  , fListMCTracks(nullptr)
+  , fStsTrackArray(nullptr)
+  , fStsTrackMatches(nullptr)
   , fMvdHisto1()
   , fMvdHisto2()
   , fProf()
@@ -83,16 +83,16 @@ CbmMvdClusterAna::CbmMvdClusterAna()
 // -----   Standard constructor   ------------------------------------------
 CbmMvdClusterAna::CbmMvdClusterAna(const char* name, Int_t iVerbose)
   : FairTask(name, iVerbose)
-  , fMcPoints(NULL)
-  , fMvdDigis(NULL)
-  , fMvdClusters(NULL)
-  , fMvdHits(NULL)
-  , fMvdDigisMatch(NULL)
-  , fMvdClustersMatch(NULL)
-  , fMvdHitsMatch(NULL)
-  , fListMCTracks(NULL)
-  , fStsTrackArray(NULL)
-  , fStsTrackMatches(NULL)
+  , fMcPoints(nullptr)
+  , fMvdDigis(nullptr)
+  , fMvdClusters(nullptr)
+  , fMvdHits(nullptr)
+  , fMvdDigisMatch(nullptr)
+  , fMvdClustersMatch(nullptr)
+  , fMvdHitsMatch(nullptr)
+  , fListMCTracks(nullptr)
+  , fStsTrackArray(nullptr)
+  , fStsTrackMatches(nullptr)
   , fMvdHisto1()
   , fMvdHisto2()
   , fProf()
diff --git a/analysis/detectors/mvd/qa/CbmMvdQa.cxx b/analysis/detectors/mvd/qa/CbmMvdQa.cxx
index fb26039e829cec39f4e0b581e40a917cb514b95e..490207aec7b6e8e0be4b41948aef812e7b0e60ac 100644
--- a/analysis/detectors/mvd/qa/CbmMvdQa.cxx
+++ b/analysis/detectors/mvd/qa/CbmMvdQa.cxx
@@ -6,44 +6,40 @@
 // -----              CbmMvdQa  source file                            -----
 // -----              Created 12/01/15  by P. Sitzmann                 -----
 // ------------------------------------------------------------------------
-
-//-- Include from Cbm --//
 #include "CbmMvdQa.h"
 
-#include "CbmGlobalTrack.h"
-#include "CbmLink.h"
-#include "CbmMCTrack.h"
-#include "CbmMatch.h"
-#include "CbmMvdDetector.h"
-#include "CbmMvdDigi.h"
-#include "CbmMvdHit.h"
-#include "CbmMvdPoint.h"
-#include "CbmMvdSensor.h"
-#include "CbmMvdStationPar.h"
-#include "CbmStsTrack.h"
-#include "CbmTrackMatchNew.h"
-#include "CbmVertex.h"
-#include "tools/CbmMvdGeoHandler.h"
-
-
-//-- Include from Fair --//
-#include <FairRootManager.h>
-#include <FairTrackParam.h>
-#include <Logger.h>
-
-
-//-- Include from Root --//
-#include "TCanvas.h"
-#include "TClonesArray.h"
-#include "TH1F.h"
-#include "TH2F.h"
-#include "TMath.h"
-#include "TStyle.h"
-#include <TFile.h>
-
-//-- Include from C++ --//
-#include <iostream>
-
+#include "CbmGlobalTrack.h"    // for CbmGlobalTrack
+#include "CbmLink.h"           // for CbmLink
+#include "CbmMCTrack.h"        // for CbmMCTrack
+#include "CbmMatch.h"          // for CbmMatch
+#include "CbmMvdCluster.h"     // for CbmMvdCluster
+#include "CbmMvdDetector.h"    // for CbmMvdDetector
+#include "CbmMvdDigi.h"        // for CbmMvdDigi
+#include "CbmMvdHit.h"         // for CbmMvdHit
+#include "CbmMvdPoint.h"       // for CbmMvdPoint
+#include "CbmMvdSensor.h"      // for CbmMvdSensor
+#include "CbmMvdStationPar.h"  // for CbmMvdStationPar
+#include "CbmStsTrack.h"       // for CbmStsTrack
+#include "CbmTrackMatchNew.h"  // for CbmTrackMatchNew
+#include "CbmTrackParam.h"     // for CbmTrackParam
+#include "CbmVertex.h"         // for CbmVertex
+
+#include <FairRootManager.h>   // for FairRootManager
+#include <FairTask.h>          // for InitStatus, FairTask
+#include <FairTrackParam.h>    // for FairTrackParam
+#include <Logger.h>            // for Logger, LOG
+
+#include <TAxis.h>             // for TAxis
+#include <TCanvas.h>           // for TCanvas
+#include <TClonesArray.h>      // for TClonesArray
+#include <TFile.h>             // for TFile
+#include <TH1.h>               // for TH1F
+#include <TH2.h>               // for TH2F
+#include <TObject.h>           // for TObject
+#include <TStyle.h>            // for TStyle, gStyle
+
+#include <cmath>               // for sqrt, fabs
+#include <iostream>            // for operator<<, basic_ostream, char_traits
 
 using std::cout;
 using std::endl;
@@ -866,7 +862,7 @@ Bool_t CbmMvdQa::HasHitFirstTrue(Int_t MCtrackID, CbmStsTrack* stsTrack)
   Int_t nrOfMvdHits        = stsTrack->GetNofMvdHits();
   Int_t nrOfLinks          = 0;
   Int_t mcTrackId          = 0;
-  const CbmMvdPoint* point = NULL;
+  const CbmMvdPoint* point = nullptr;
   for (Int_t iHit = 0; iHit < nrOfMvdHits; iHit++) {
     CbmMatch* mvdMatch = (CbmMatch*) fMvdHitMatchArray->At(stsTrack->GetMvdHitIndex(iHit));
     if (mvdMatch) { nrOfLinks = mvdMatch->GetNofLinks(); }
@@ -876,7 +872,7 @@ Bool_t CbmMvdQa::HasHitFirstTrue(Int_t MCtrackID, CbmStsTrack* stsTrack)
     for (Int_t iLink = 0; iLink < nrOfLinks; iLink++) {
       Int_t pointIndex = mvdMatch->GetLink(iLink).GetIndex();
       if (pointIndex < fMcPoints->GetEntriesFast()) point = (CbmMvdPoint*) fMcPoints->At(pointIndex);
-      if (NULL == point) {
+      if (nullptr == point) {
         continue;  //delta or background event
       }
       else
@@ -894,7 +890,7 @@ void CbmMvdQa::GetFirstMCPos(CbmStsTrack* stsTrack, Float_t* pos)
 {
   Int_t nrOfMvdHits        = stsTrack->GetNofMvdHits();
   Int_t nrOfLinks          = 0;
-  const CbmMvdPoint* point = NULL;
+  const CbmMvdPoint* point = nullptr;
   for (Int_t iHit = 0; iHit < nrOfMvdHits; iHit++) {
     CbmMatch* mvdMatch = (CbmMatch*) fMvdHitMatchArray->At(stsTrack->GetMvdHitIndex(iHit));
     if (mvdMatch) { nrOfLinks = mvdMatch->GetNofLinks(); }
@@ -904,7 +900,7 @@ void CbmMvdQa::GetFirstMCPos(CbmStsTrack* stsTrack, Float_t* pos)
     for (Int_t iLink = 0; iLink < nrOfLinks; iLink++) {
       Int_t pointIndex = mvdMatch->GetLink(iLink).GetIndex();
       if (pointIndex < fMcPoints->GetEntriesFast()) point = (CbmMvdPoint*) fMcPoints->At(pointIndex);
-      if (NULL == point) {
+      if (nullptr == point) {
         continue;  //delta or background event
       }
       else if (point->GetZOut() < fFirstMvdPos + 1) {
@@ -929,7 +925,7 @@ void CbmMvdQa::SetMatches(Int_t MCtrackID, CbmStsTrack* stsTrack)
   Bool_t hasTrack;
   Int_t nrOfLinks          = 0;
   fMvdRecoRatio            = 0.;
-  const CbmMvdPoint* point = NULL;
+  const CbmMvdPoint* point = nullptr;
   for (Int_t iHit = 0; iHit < nrOfMvdHits; iHit++) {
     hasTrack           = kFALSE;
     CbmMatch* mvdMatch = (CbmMatch*) fMvdHitMatchArray->At(stsTrack->GetMvdHitIndex(iHit));
@@ -943,7 +939,7 @@ void CbmMvdQa::SetMatches(Int_t MCtrackID, CbmStsTrack* stsTrack)
     for (Int_t iLink = 0; iLink < nrOfLinks; iLink++) {
       Int_t pointIndex = mvdMatch->GetLink(iLink).GetIndex();
       if (pointIndex < fMcPoints->GetEntriesFast()) point = (CbmMvdPoint*) fMcPoints->At(pointIndex);
-      if (NULL == point) {
+      if (nullptr == point) {
         continue;  //delta or background event
       }
       else
diff --git a/analysis/detectors/mvd/qa/CbmMvdQa.h b/analysis/detectors/mvd/qa/CbmMvdQa.h
index 46c9f8ff8d242064839421aa786907a536395d46..cf60db9abf62c641455ceaec4efdf4fcfd304973 100644
--- a/analysis/detectors/mvd/qa/CbmMvdQa.h
+++ b/analysis/detectors/mvd/qa/CbmMvdQa.h
@@ -19,21 +19,21 @@
 #ifndef CBMMVDQA_H
 #define CBMMVDQA_H 1
 
-#include "FairTask.h"
+#include "FairTask.h"    // for FairTask, InitStatus
 
+#include <Rtypes.h>      // for ClassDef
+#include <RtypesCore.h>  // for Int_t, Bool_t, kTRUE, Float_t, Option_t
 
+class CbmMvdDetector;
+class CbmStsTrack;
+class CbmVertex;
+class TBuffer;
+class TClass;
 class TClonesArray;
 class TFile;
 class TH1F;
 class TH2F;
-
-class FairTrackParam;
-
-class CbmMvdDetector;
-//class CbmLitTrackParam;
-class CbmVertex;
-class CbmStsTrack;
-
+class TMemberInspector;
 
 class CbmMvdQa : public FairTask {
 public:
diff --git a/core/detectors/mvd/CbmMvdBaseLinkDef.h b/core/detectors/mvd/CbmMvdBaseLinkDef.h
index bb7bc0804e9acd3d95017ba8204aa54dc4108ffa..29458b338cc0d2059c45b86c3378a49460d95ea4 100644
--- a/core/detectors/mvd/CbmMvdBaseLinkDef.h
+++ b/core/detectors/mvd/CbmMvdBaseLinkDef.h
@@ -1,6 +1,6 @@
-/* Copyright (C) 2006-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
+/* Copyright (C) 2023 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
    SPDX-License-Identifier: GPL-3.0-only
-   Authors: Philipp Sitzmann, Volker Friese [committer] */
+   Authors: Florian Uhlig [committer] */
 
 #ifdef __CINT__
 
diff --git a/core/detectors/mvd/CbmMvdDetector.cxx b/core/detectors/mvd/CbmMvdDetector.cxx
index 20799f16df44038e0056448fa1090d855506edeb..3f4a1eb431a5699b5de9c092a1cd93cc528ca5db 100644
--- a/core/detectors/mvd/CbmMvdDetector.cxx
+++ b/core/detectors/mvd/CbmMvdDetector.cxx
@@ -9,34 +9,22 @@
 
 #include "CbmMvdDetector.h"
 
-/// includes from CbmRoot
-#include "CbmDigiManager.h"
-#include "CbmMvdDetectorId.h"
-#include "CbmMvdDigi.h"
-#include "CbmMvdSensor.h"
-#include "plugins/CbmMvdSensorPlugin.h"
-#include "plugins/tasks/CbmMvdSensorTask.h"
-#include "tools/CbmMvdGeoHandler.h"
+#include "CbmMvdDetectorId.h"    // for CbmMvdDetectorId
+#include "CbmMvdGeoHandler.h"    // for CbmMvdGeoHandler
+#include "CbmMvdHelper.h"        // for CbmMvdSensorTyp
+#include "CbmMvdSensor.h"        // for CbmMvdSensor
+#include "CbmMvdSensorPlugin.h"  // for CbmMvdSensorPlugin, MvdSensorPluginType
+#include "CbmMvdSensorTask.h"    // for CbmMvdSensorTask
 
+#include <Logger.h>              // for LOG, Logger
 
+#include <Rtypes.h>              // for TGenericClassInfo
 
-
-
-/// includes from FairRoot
-#include <Logger.h>
-
-/// includes from Root
-#include "TGeoBBox.h"
-#include "TGeoMatrix.h"
-#include "TGeoVolume.h"
-#include "TRandom.h"
-#include "TString.h"
-
-/// includes from c
-#include <iostream>
-
-using std::cout;
-using std::endl;
+#include <TClonesArray.h>        // for TClonesArray
+#include <TNamed.h>              // for TNamed
+#include <TObjArray.h>           // for TObjArray
+#include <TRandom.h>             // for TRandom, gRandom
+#include <TString.h>             // for TString, operator==, operator<<
 
 //_____________________________________________________________________________
 CbmMvdDetector* CbmMvdDetector::fInstance = 0;
@@ -63,7 +51,6 @@ CbmMvdDetector::CbmMvdDetector()
   : TNamed()
   , fSensorArray(nullptr)
   , fSensorMap()
-  , fSensorIDArray(nullptr)
   , fPluginCount(0)
   , foutput(nullptr)
   , foutputHits(nullptr)
@@ -94,7 +81,6 @@ CbmMvdDetector::CbmMvdDetector(const char* name)
   : TNamed()
   , fSensorArray(new TClonesArray("CbmMvdSensor", 10))
   , fSensorMap()
-  , fSensorIDArray(nullptr)
   , fPluginCount(0)
   , foutput(nullptr)
   , foutputHits(nullptr)
@@ -178,83 +164,20 @@ void CbmMvdDetector::AddSensor(TString clearName, TString fullName, TString node
 
 // ----------------------------------------------------------------------
 
-
-//-----------------------------------------------------------------------
-void CbmMvdDetector::AddPlugin(CbmMvdSensorPlugin* plugin)
-{
-  /**
- * if there is a new buffer or task typ you have to insert it here
- * or you can't use it.
- */
-  fSensorArrayFilled = kTRUE;
-
-  CbmMvdSensor* sensor;
-  Int_t nSensors                = fSensorArray->GetEntriesFast();
-  const TString digitizername   = "CbmMvdSensorDigitizerTask";    //done
-  const TString digitizerTBname = "CbmMvdSensorDigitizerTBTask";
-  //  const TString findername      = "CbmMvdSensorFindHitTask";
-  //const TString framename = "CbmMvdSensorFrameBuffer";
-  //const TString trackingname = "CbmMvdSensorTrackingBuffer";
-  const TString clustername   = "CbmMvdSensorClusterfinderTask";  //khun //done
-  const TString hitname       = "CbmMvdSensorHitfinderTask";      //khun
-  const TString digitohitname = "CbmMvdSensorDigiToHitTask";
-
-  for (Int_t i = 0; i < nSensors; i++) {
-
-
-    if (plugin->GetPluginType() == task) {
-
-      if (plugin->ClassName() == digitizername) {
-        LOG(fatal) << "Should never come here. Tasks are now added in CbmMvdDigitizer class";
-      }
-      else if (plugin->ClassName() == digitizerTBname) {
-        LOG(fatal) << "Should never come here. Tasks are now added in CbmMvdDigitizerTB class";
-      }
-
-      //Re-enable cluster and hit finder in addition to khun
-      else if (plugin->ClassName() == clustername) {
-        LOG(fatal) << "Should never come here. Tasks are now added in CbmMvdClusterfinder class";
-      }
-      else if (plugin->ClassName() == hitname) {
-        LOG(fatal) << "Should never come here. Tasks are now added in CbmMvdHitfinder class";
-      }
-      //end: re-enable cluster and hit finder in addition to khun
-
-      else if (plugin->ClassName() == digitohitname) {
-        LOG(fatal) << "Should never come here. Tasks are now added in CbmMvdDigiToHit class";
-      }
-      else {
-        cout << endl << "task not included yet, adding standart task." << endl;
-        CbmMvdSensorTask* task = new CbmMvdSensorTask();
-        sensor                 = (CbmMvdSensor*) fSensorArray->At(i);
-        sensor->AddPlugin(task);
-      }
-      //data parallelizm requires that each sensor get its own task object
-    }
-
-    else {
-      cout << "Invalide" << endl;
-    }
-  };
-  fPluginCount++;
-};
-
-//----------------------------------------------------------------------
-
 Int_t CbmMvdDetector::DetectPlugin(Int_t pluginID)
 {
   // Detects the position of a plugin with a given Plugin-ID (set in the plugin implementation constructor) in the plugin-array of the sensors
 
 
 
-  if (!fSensorArrayFilled) {cout << "-W - CbmMvdDetector::DetectPlugin: You tried to access sensor plugins while the detector is not initialized yet." << endl;  return -1;}
+  if (!fSensorArrayFilled) {LOG(warning) << "CbmMvdDetector::DetectPlugin: You tried to access sensor plugins while the detector is not initialized yet.";  return -1;}
   CbmMvdSensor* sensor=GetSensor(0);
   TObjArray* pluginArray= sensor->GetPluginArray();
 
   Int_t nPlugin=pluginArray->GetEntries();
   for(Int_t i=0; i<nPlugin;i++) {
     CbmMvdSensorPlugin* plugin= (CbmMvdSensorPlugin*) pluginArray->At(i);
-    // cout << "- I - CbmMvdDetector::DetectPlugin: PlugInID = " << plugin->GetPluginIDNumber() << " Position: "<< i << endl;
+    // LOG(info) <<"CbmMvdDetector::DetectPlugin: PlugInID = " << plugin->GetPluginIDNumber() << " Position: "<< i;
     if (pluginID==plugin->GetPluginIDNumber()){return i;}
   }
 
@@ -338,9 +261,9 @@ void CbmMvdDetector::ExecChain()
   CbmMvdSensor* sensor;
   for (Int_t i = 0; i < nSensors; i++) {
     sensor = (CbmMvdSensor*) fSensorArray->At(i);
-    //cout << "I------ Send Chain to " << sensor->GetName() << endl;
+    //LOG(info) << "Send Chain to " << sensor->GetName() << endl;
     sensor->ExecChain();
-    //cout << "I------ finished Chain at "<< sensor->GetName() <<endl<< endl;
+    //LOG(info) << "finished Chain at "<< sensor->GetName() <<endl<< endl;
   };
 }
 
@@ -398,25 +321,6 @@ void CbmMvdDetector::ExecFrom(UInt_t nLevel)
 }
 //-----------------------------------------------------------------------
 
-//-----------------------------------------------------------------------
-TClonesArray* CbmMvdDetector::GetCurrentEvent()
-{
-
-  /**
-   * Method used for debugging, Plugins have to hold there output until next call
-   */
-  Int_t nSensors = fSensorArray->GetEntriesFast();
-  CbmMvdSensor* sensor;
-  for (Int_t i = 0; i < nSensors; i++) {
-    sensor = (CbmMvdSensor*) fSensorArray->At(i);
-    // foutput = sensor->GetOutputArray(0);
-    fcurrentEvent->AbsorbObjects(sensor->GetOutputArray(0));
-  }
-
-  return (fcurrentEvent);
-}
-//-----------------------------------------------------------------------
-
 void CbmMvdDetector::GetOutputArray(Int_t nPlugin, TClonesArray* outputArray){
   Int_t nSensors = fSensorArray->GetEntriesFast();
   CbmMvdSensor* sensor;
@@ -427,7 +331,7 @@ void CbmMvdDetector::GetOutputArray(Int_t nPlugin, TClonesArray* outputArray){
     sensor       = (CbmMvdSensor*) fSensorArray->At(i);
     tmpArray=sensor->GetOutputArray(nPlugin);
     Int_t length = tmpArray->GetEntriesFast();
-    //cout<< "CbmMvdDetector::GetOutputArray - Length = " << length << endl;
+    //LOG(info)<< "CbmMvdDetector::GetOutputArray - Length = " << length;
     if (length >= 0) {
       outputArray->AbsorbObjects(tmpArray);
     }
diff --git a/core/detectors/mvd/CbmMvdDetector.h b/core/detectors/mvd/CbmMvdDetector.h
index 3be4d8cf016092a8e170123bb6896bfb5a4df408..d914d9c58cfc86c255ae72cd3744cd6d63560a87 100644
--- a/core/detectors/mvd/CbmMvdDetector.h
+++ b/core/detectors/mvd/CbmMvdDetector.h
@@ -20,25 +20,25 @@
 #ifndef CBMMVDDETECTOR_H
 #define CBMMVDDETECTOR_H 1
 
+#include "CbmMvdStationPar.h"  // for CbmMvdStationPar
 
-/// includes from c
-//#include <vector>
+#include <Rtypes.h>            // for ClassDef
+#include <RtypesCore.h>        // for Int_t, UInt_t, Bool_t, Float_t, Double_t
+#include <TClonesArray.h>      // for TClonesArray
+#include <TNamed.h>            // for TNamed
+#include <TString.h>           // for TString
 
-/// includes from ROOT
-#include "TClonesArray.h"
-#include "TNamed.h"
+#include <map>                 // for map
 
-/// includes from CbmRoot
-#include "CbmMvdStationPar.h"
-//#include "CbmMvdDigi.h"
-#include "tools/CbmMvdHelper.h"
-
-class CbmMvdPoint;
+class CbmMvdSensor;
 class CbmMvdSensorDataSheet;
 class CbmMvdSensorPlugin;
-class CbmMvdSensor;
+class TBuffer;
+class TClass;
+class TMemberInspector;
+class TObject;
 
-class CbmDigiManager;
+enum class CbmMvdSensorTyp;
 
 class CbmMvdDetector : public TNamed {
 
@@ -52,79 +52,59 @@ public:
    */
   static CbmMvdDetector* Instance();
 
-
   /** Destructor **/
   virtual ~CbmMvdDetector();
 
   /** Data interface */
-
   void SendInputToSensorPlugin(Int_t detectorid, Int_t nPlugin, TObject* input);
 
-
-  //TClonesArray* GetOuput() { return 0; }
-  //TClonesArray* GetOutputHits();
-  //TClonesArray* GetOutputDigis();
-  //TClonesArray* GetOutputDigiMatchs();
-  //TClonesArray* GetOutputCluster();  //khun
-  //TClonesArray* GetOutputArray(Int_t nPlugin);
   void GetOutputArray(Int_t nPlugin,TClonesArray* outputArray);
   void GetMatchArray(Int_t nPlugin, TClonesArray* matchArray);
 
-  TClonesArray* GetSensorArray(){return fSensorArray;};
+  std::map<int, CbmMvdSensor*>& GetSensorMap() { return fSensorMap;};
   CbmMvdSensor* GetSensor(Int_t nSensor) {return (CbmMvdSensor*) fSensorArray->At(nSensor);}
-  TClonesArray* GetSensorIDArray(){return fSensorIDArray;};
-  // TClonesArray* GetClonesArray(Int_t dataLevel){ return 0;}
   Int_t GetSensorArraySize() { return (fSensorArray->GetEntriesFast()); }
+
   Int_t GetPluginArraySize() { return fPluginCount - 1; }
   UInt_t GetPluginCount() { return fPluginCount; }
   void SetPluginCount(UInt_t count) { fPluginCount=count; }
   Int_t  DetectPlugin(Int_t pluginID);
 
-
-  TClonesArray* GetCurrentEvent();
   /** Initialisation */
-
   void AddSensor(TString clearName, TString fullName, TString nodeName, CbmMvdSensorDataSheet* sensorData,
                  Int_t sensorNr, Int_t volumeId, Double_t sensorStartTime, Int_t stationNr);
-  void AddPlugin(CbmMvdSensorPlugin* plugin);
-  void BuildDebugHistograms() { ; };
+  static void SetSensorTyp(CbmMvdSensorTyp typ) { fSensorTyp = typ; };
+  void SetSensorArrayFilled(Bool_t value = kTRUE) {fSensorArrayFilled=value;}
   void Init();
+
   void SetMisalignment(Float_t misalignment[3])
   {
     for (Int_t i = 0; i < 3; i++)
       fepsilon[i] = misalignment[i];
   };
-  void SetParameterFile(CbmMvdStationPar* parameter) { fParameter = parameter; };
-  void ShowDebugHistos();
-  /** Data Processing */
 
-  std::map<int, CbmMvdSensor*>& GetSensorMap() { return fSensorMap;};
+  void BuildDebugHistograms() { ; };
+  void ShowDebugHistos();
 
+  /** Data Processing */
   void ExecChain();          //Processes the full execution chain
   void Exec(UInt_t nLevel);  //Processes Element nLevel of the chain
-  // void ExecTo(UInt_t nLevel){;}; // Processes Elements to a given Level of Plugins
   void ExecFrom(UInt_t nLevel);  //Preocesses Elements from a given level till the end
 
   /** Finish */
-
   void Finish();
-  // void StoreDebugHistograms(TString fileName){;}
 
-  /** Accessors */
+  /** Parameters */
+  void SetParameterFile(CbmMvdStationPar* parameter) { fParameter = parameter; };
   CbmMvdStationPar* GetParameterFile() { return fParameter; };
-  CbmMvdSensor* GetSensor(UInt_t nSensor) { return (CbmMvdSensor*) fSensorArray->At(nSensor); };
   void PrintParameter() { fParameter->Print(); };
 
-  static void SetSensorTyp(CbmMvdSensorTyp typ) { fSensorTyp = typ; };
-
-  void SetSensorArrayFilled(Bool_t value = kTRUE) {fSensorArrayFilled=value;}
 
 private:
   static CbmMvdSensorTyp fSensorTyp;
 
   TClonesArray* fSensorArray;
   std::map<int, CbmMvdSensor*> fSensorMap;
-  TClonesArray* fSensorIDArray;  //Array of Sensor ID
   UInt_t fPluginCount;
   TClonesArray* foutput;
   TClonesArray* foutputHits;
@@ -154,7 +134,7 @@ private:
   CbmMvdDetector(const CbmMvdDetector&);
   CbmMvdDetector operator=(const CbmMvdDetector&);
 
-  ClassDef(CbmMvdDetector, 2);
+  ClassDef(CbmMvdDetector, 3);
 };
 
 #endif
diff --git a/core/detectors/mvd/CbmMvdPileupManager.cxx b/core/detectors/mvd/CbmMvdPileupManager.cxx
index 6d3455007411d525f6ba11a9058f4bf47f5ede27..39b857c5bb53017b866428248275a314240dbe41 100644
--- a/core/detectors/mvd/CbmMvdPileupManager.cxx
+++ b/core/detectors/mvd/CbmMvdPileupManager.cxx
@@ -8,21 +8,23 @@
 // -------------------------------------------------------------------------
 #include "CbmMvdPileupManager.h"
 
-#include <Logger.h>
+#include <Logger.h>        // for Logger, LOG
 
-#include "TClonesArray.h"
-#include "TFile.h"
-#include "TObjArray.h"
-#include "TTree.h"
+#include <TClonesArray.h>  // for TClonesArray
+#include <TDirectory.h>    // for TDirectoryAtomicAdapter, gDirectory, TDire...
+#include <TFile.h>         // for TFile, gFile
+#include <TMathBase.h>     // for Min
+#include <TObjArray.h>     // for TObjArray
+#include <TTree.h>         // for TTree
 
-#include <iostream>
+#include <iostream>        // for operator<<, endl, basic_ostream, char_traits
+#include <memory>          // for allocator
 
 using std::cout;
 using std::endl;
 
-
 // -----   Default constructor   -------------------------------------------
-CbmMvdPileupManager::CbmMvdPileupManager() : TObject(), fBuffer(NULL) {}
+CbmMvdPileupManager::CbmMvdPileupManager() : TObject(), fBuffer(nullptr) {}
 // -------------------------------------------------------------------------
 
 
@@ -53,15 +55,15 @@ TClonesArray* CbmMvdPileupManager::GetEvent(Int_t iEvent)
 
   if (iEvent > fBuffer->GetEntriesFast()) {
     cout << "-W- CbmMvdPileupManager::GetEvent: Event " << iEvent << " not present in buffer! " << endl;
-    cout << "                                   Returning NULL pointer! " << endl;
-    return NULL;
+    cout << "                                   Returning nullptr pointer! " << endl;
+    return nullptr;
   }
 
   TClonesArray* pArray = (TClonesArray*) fBuffer->At(iEvent);
 
   if (!pArray) {
-    cout << "-W CbmMvdPileupManager::GetEvent: Returning NULL pointer!" << endl;
-    return NULL;
+    cout << "-W CbmMvdPileupManager::GetEvent: Returning nullptr pointer!" << endl;
+    return nullptr;
   }
 
   return pArray;
@@ -77,7 +79,7 @@ Int_t CbmMvdPileupManager::FillBuffer(TString fileName, TString branchName, Int_
 
   fBuffer->Delete();
 
-  TClonesArray* pointArray = NULL;
+  TClonesArray* pointArray = nullptr;
 
   /// Save old global file and folder pointer to avoid messing with FairRoot
   TFile* oldFile     = gFile;
diff --git a/core/detectors/mvd/CbmMvdPileupManager.h b/core/detectors/mvd/CbmMvdPileupManager.h
index 532fc5b3325178c68e91f00b859b04a4e50fee59..c0988b932f413036dde8dc56fdcd99ae721d0df3 100644
--- a/core/detectors/mvd/CbmMvdPileupManager.h
+++ b/core/detectors/mvd/CbmMvdPileupManager.h
@@ -21,13 +21,16 @@
 #ifndef CBMMVDPILEUPMANAGER_H
 #define CBMMVDPILEUPMANAGER_H 1
 
-
-#include "TObjArray.h"
-#include "TObject.h"
-#include "TString.h"
-
+#include <Rtypes.h>      // for ClassDef
+#include <RtypesCore.h>  // for Int_t
+#include <TObjArray.h>   // for TObjArray
+#include <TObject.h>     // for TObject
+#include <TString.h>     // for TString
+
+class TBuffer;
+class TClass;
 class TClonesArray;
-
+class TMemberInspector;
 
 class CbmMvdPileupManager : public TObject {
 
diff --git a/core/detectors/mvd/CbmMvdSensor.cxx b/core/detectors/mvd/CbmMvdSensor.cxx
index 4c9fe84f529fe0924c37a30f4cb73b2f185e887f..cc0f68407f8d08dbebd68fec098342840fe7fc5a 100644
--- a/core/detectors/mvd/CbmMvdSensor.cxx
+++ b/core/detectors/mvd/CbmMvdSensor.cxx
@@ -9,32 +9,28 @@
 
 #include "CbmMvdSensor.h"
 
-//---Plugins
 #include "CbmMvdSensorPlugin.h"
 #include "CbmMvdSensorBuffer.h"
-#include "plugins/tasks/CbmMvdSensorTask.h"
-
-/// includes from ROOT
-#include "TGeoManager.h"
-#include "TGeoMatrix.h"
-#include "TGeoVolume.h"
-
-/// includes from FairRoot
-#include "FairEventHeader.h"
-#include "FairMCEventHeader.h"
-#include "FairPrimaryGenerator.h"
-#include "FairRunAna.h"
-#include "FairRunSim.h"
+#include "CbmMvdSensorTask.h"
+
+#include <FairEventHeader.h>
+#include <FairMCEventHeader.h>
+#include <FairPrimaryGenerator.h>
+#include <FairRunAna.h>
+#include <FairRunSim.h>
 #include <Logger.h>
 
+#include <TClonesArray.h>
+#include <TGeoManager.h>
+#include <TGeoMatrix.h>
+#include <TGeoVolume.h>
+
+
 /// includes from C
 #include <iostream>
-#include <vector>
 
 using std::cout;
 using std::endl;
-using std::map;
-using std::vector;
 
 // -----   Default constructor   -------------------------------------------
 CbmMvdSensor::CbmMvdSensor()
@@ -50,20 +46,20 @@ CbmMvdSensor::CbmMvdSensor()
   , fVolName("")
   , fNodeName("")
  /*
-  , foutputDigis(NULL)
-  , foutputCluster(NULL)
+  , foutputDigis(nullptr)
+  , foutputCluster(nullptr)
   ,  //not needed khun
-  foutputDigiMatch(NULL)
-  , foutputBuffer(NULL)
+  foutputDigiMatch(nullptr)
+  , foutputBuffer(nullptr)
 
-  , fcurrentPoints(NULL)
+  , fcurrentPoints(nullptr)
   */
   , fcurrentEventTime(0.)
   , epsilon()
-  , fShape(NULL)
-  , fMCMatrix(NULL)
-  , fRecoMatrix(NULL)
-  , fAlignmentCorr(NULL)
+  , fShape(nullptr)
+  , fMCMatrix(nullptr)
+  , fRecoMatrix(nullptr)
+  , fAlignmentCorr(nullptr)
   , fTempCoordinate()
   , fSensorPosition()
   , fSensorData(new CbmMvdSensorDataSheet())
@@ -99,20 +95,20 @@ CbmMvdSensor::CbmMvdSensor(const char* name, CbmMvdSensorDataSheet* dataSheet, T
   , fVolName(volName)
   , fNodeName(nodeName)
  /*
-  , foutputDigis(NULL)
-  , foutputCluster(NULL)
+  , foutputDigis(nullptr)
+  , foutputCluster(nullptr)
   ,  //not needed khun
-  foutputDigiMatch(NULL)
-  , foutputBuffer(NULL)
+  foutputDigiMatch(nullptr)
+  , foutputBuffer(nullptr)
 
-  , fcurrentPoints(NULL)
+  , fcurrentPoints(nullptr)
   */
   , fcurrentEventTime(0.)
   , epsilon()
-  , fShape(NULL)
-  , fMCMatrix(NULL)
-  , fRecoMatrix(NULL)
-  , fAlignmentCorr(NULL)
+  , fShape(nullptr)
+  , fMCMatrix(nullptr)
+  , fRecoMatrix(nullptr)
+  , fAlignmentCorr(nullptr)
   , fTempCoordinate()
   , fSensorPosition()
   , fSensorData(dataSheet)
@@ -242,7 +238,7 @@ void CbmMvdSensor::Init()
 
   if (nPlugin == 0) {
     LOG(debug) << "No Plugins on this Sensor ";
-    pluginFirst = NULL;
+    pluginFirst = nullptr;
   }
   initialized = kTRUE;
 }
diff --git a/core/detectors/mvd/CbmMvdSensor.h b/core/detectors/mvd/CbmMvdSensor.h
index cdee5bd881862f39897e2dbcaa12c38792d2f7ac..f9daac23da3ccf4bafc338b7ad3d5fcb3ca421c0 100644
--- a/core/detectors/mvd/CbmMvdSensor.h
+++ b/core/detectors/mvd/CbmMvdSensor.h
@@ -19,25 +19,24 @@
 #ifndef CBMMVDSENSOR_H
 #define CBMMVDSENSOR_H 1
 
-#include "CbmMvdCluster.h"
-#include "CbmMvdDetectorId.h"
-#include "SensorDataSheets/CbmMvdSensorDataSheet.h"
-#include "plugins/CbmMvdSensorPlugin.h"
-
-#include "TClonesArray.h"
-#include "TGeoBBox.h"
-#include "TNamed.h"
-#include "TObjArray.h"
-#include "TString.h"
-
-#include <map>
-
-// data classes
-class CbmMvdPoint;
-class CbmMvdDigi;
+#include "CbmMvdDetectorId.h"       // for CbmMvdDetectorId
+#include "CbmMvdSensorDataSheet.h"  // for CbmMvdSensorDataSheet
+#include "CbmMvdSensorPlugin.h"     // for CbmMvdSensorPlugin
+
+#include <Rtypes.h>                 // for ClassDef
+#include <RtypesCore.h>             // for Int_t, Double_t, Float_t, UInt_t
+#include <TGeoBBox.h>               // for TGeoBBox
+#include <TNamed.h>                 // for TNamed
+#include <TObjArray.h>              // for TObjArray
+#include <TString.h>                // for TString
+#include <map>                      // for map
+
+class TBuffer;
+class TClass;
+class TClonesArray;
 class TGeoHMatrix;
-class TGeoHMatrix;
-
+class TMemberInspector;
+class TObject;
 
 class CbmMvdSensor : public TNamed, CbmMvdDetectorId {
 
diff --git a/core/detectors/mvd/CbmMvdStationPar.cxx b/core/detectors/mvd/CbmMvdStationPar.cxx
index 224bc7c8dc123c4d7d4c7e76ec6d8ca778e57774..409b95b78d5ff039fab8ad634b3bc30527878b96 100644
--- a/core/detectors/mvd/CbmMvdStationPar.cxx
+++ b/core/detectors/mvd/CbmMvdStationPar.cxx
@@ -9,15 +9,11 @@
 
 #include "CbmMvdStationPar.h"
 
-#include <Logger.h>
+#include <Logger.h>  // for Logger, LOG
 
-#include <iostream>
-#include <limits>
-
-#include <math.h>
-
-using std::cout;
-using std::endl;
+#include <assert.h>  // for assert
+#include <cmath>    // for fabs, isnan
+#include <limits>    // for numeric_limits
 
 
 // -----   Default constructor   -------------------------------------------
diff --git a/core/detectors/mvd/CbmMvdStationPar.h b/core/detectors/mvd/CbmMvdStationPar.h
index 7b34f4a7d9073024d0c5a9d70cfad67de92bd07e..efd7719f45b070a7a01851450fd2fb9d25f80cd5 100644
--- a/core/detectors/mvd/CbmMvdStationPar.h
+++ b/core/detectors/mvd/CbmMvdStationPar.h
@@ -19,10 +19,15 @@
 #ifndef CBMMVDSTATIONPAR_H
 #define CBMMVDSTATIONPAR_H 1
 
+#include <Rtypes.h>      // for ClassDef
+#include <RtypesCore.h>  // for Double_t, Int_t, Option_t
+#include <TNamed.h>      // for TNamed
 
-#include "TNamed.h"
+#include <vector>        // for vector
 
-#include <map>
+class TBuffer;
+class TClass;
+class TMemberInspector;
 
 class CbmMvdStationPar : public TNamed {
 
diff --git a/core/detectors/mvd/CbmMvdTrackingInterface.cxx b/core/detectors/mvd/CbmMvdTrackingInterface.cxx
index dbc09eb3927af49be8ac0738bacf54c697a7d7bc..a4db0e0483c77791d52ad0e6e31f9beaeb34b11a 100644
--- a/core/detectors/mvd/CbmMvdTrackingInterface.cxx
+++ b/core/detectors/mvd/CbmMvdTrackingInterface.cxx
@@ -11,8 +11,8 @@
 
 #include "CbmMvdTrackingInterface.h"
 
-#include "FairDetector.h"
-#include "FairRunAna.h"
+#include "CbmMvdDetector.h"
+
 #include <Logger.h>
 
 ClassImp(CbmMvdTrackingInterface)
diff --git a/core/detectors/mvd/CbmMvdTrackingInterface.h b/core/detectors/mvd/CbmMvdTrackingInterface.h
index fdb6af21b93ec9e6d81bd4dff2b1867e51a4fad9..76a09531ce26a5f79519ad6e17c9084093c5ffda 100644
--- a/core/detectors/mvd/CbmMvdTrackingInterface.h
+++ b/core/detectors/mvd/CbmMvdTrackingInterface.h
@@ -12,19 +12,23 @@
 #ifndef CbmMvdTrackingInterface_h
 #define CbmMvdTrackingInterface_h 1
 
-#include "CbmMvdDetector.h"
-#include "CbmMvdDetectorId.h"
-#include "CbmMvdHit.h"
-#include "CbmMvdStationPar.h"
-#include "CbmPixelHit.h"
-#include "CbmTrackingDetectorInterfaceBase.h"
+#include "CbmMvdDetectorId.h"                  // for CbmMvdDetectorId
+#include "CbmMvdHit.h"                         // for CbmMvdHit
+#include "CbmMvdStationPar.h"                  // for CbmMvdStationPar
+#include "CbmPixelHit.h"                       // for CbmPixelHit
+#include "CbmTrackingDetectorInterfaceBase.h"  // for CbmTrackingDetectorInt...
 
-#include "FairTask.h"
+#include <FairTask.h>                          // for InitStatus, FairTask
 
-#include "TMath.h"
+#include <Rtypes.h>                            // for ClassDef
+#include <TMath.h>                             // for Pi
 
-#include <iostream>
-#include <vector>
+#include <algorithm>                           // for min, max
+#include <string>                              // for string
+
+class TBuffer;
+class TClass;
+class TMemberInspector;
 
 /// Class CbmMvdTrackingInterface is a CbmL1 subtask, which provides necessary methods for L1 tracker
 /// to access the geometry and dataflow settings.
diff --git a/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa26AHR.cxx b/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa26AHR.cxx
index 04bf5cc8c0200cc2638227fa9bb841bc26315195..36309748b42b773af635122796520c188dd857a8 100644
--- a/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa26AHR.cxx
+++ b/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa26AHR.cxx
@@ -9,14 +9,9 @@
 
 #include "CbmMvdMimosa26AHR.h"
 
-#include "TMath.h"
-
-#include <iostream>
-
-
-using std::cout;
-using std::endl;
-
+#include <RtypesCore.h>  // for kTRUE
+#include <TString.h>     // for TString
+#include <TMath.h>       // for Power
 
 // -----   Default constructor   -------------------------------------------
 CbmMvdMimosa26AHR::CbmMvdMimosa26AHR()
diff --git a/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa26AHR.h b/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa26AHR.h
index 43d0c3478538f91ea3c02238fff34fe61d6e9357..868a7c3f01368c38d41d2dc4a388e3b768075754 100644
--- a/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa26AHR.h
+++ b/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa26AHR.h
@@ -20,9 +20,13 @@
 #ifndef CBMMVDMIMOSA26AHR_H
 #define CBMMVDMIMOSA26AHR_H 1
 
+#include "CbmMvdSensorDataSheet.h"  // for CbmMvdSensorDataSheet
 
-#include "CbmMvdSensorDataSheet.h"
+#include <Rtypes.h>                 // for ClassDef
 
+class TBuffer;
+class TClass;
+class TMemberInspector;
 
 class CbmMvdMimosa26AHR : public CbmMvdSensorDataSheet {
 
diff --git a/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa34.cxx b/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa34.cxx
index 9f8ec7b2bc30fd753c179883c4465d205c913609..7b061ee1a7533843431973e628a682bfa528f372 100644
--- a/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa34.cxx
+++ b/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa34.cxx
@@ -9,14 +9,11 @@
 
 #include "CbmMvdMimosa34.h"
 
-#include "TMath.h"
-
-#include <iostream>
-
-
-using std::cout;
-using std::endl;
+#include <RtypesCore.h>  // for kTRUE
+#include <TString.h>     // for TString
+#include <TMath.h>       // for Power
 
+#include <iostream>      // for cout, endl
 
 // -----   Default constructor   -------------------------------------------
 CbmMvdMimosa34::CbmMvdMimosa34()
diff --git a/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa34.h b/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa34.h
index 52b92d34f95bb014e102ca687135590d1f9dd104..44adbef29c46c700f8a40435d7904c35c5b8bc5a 100644
--- a/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa34.h
+++ b/core/detectors/mvd/SensorDataSheets/CbmMvdMimosa34.h
@@ -18,8 +18,13 @@
 #ifndef CBMMVDMIMOSA34_H
 #define CBMMVDMIMOSA34_H 1
 
+#include "CbmMvdSensorDataSheet.h"  // for CbmMvdSensorDataSheet
 
-#include "CbmMvdSensorDataSheet.h"
+#include <Rtypes.h>                 // for ClassDef
+
+class TBuffer;
+class TClass;
+class TMemberInspector;
 
 
 class CbmMvdMimosa34 : public CbmMvdSensorDataSheet {
diff --git a/core/detectors/mvd/SensorDataSheets/CbmMvdMimosis.cxx b/core/detectors/mvd/SensorDataSheets/CbmMvdMimosis.cxx
index 0ab69e062affc4126bbec1efd2344ed4a60f3348..86617fc7423c8d8dc094c67791f4f88961d39a1c 100644
--- a/core/detectors/mvd/SensorDataSheets/CbmMvdMimosis.cxx
+++ b/core/detectors/mvd/SensorDataSheets/CbmMvdMimosis.cxx
@@ -9,14 +9,9 @@
 
 #include "CbmMvdMimosis.h"
 
-#include "TMath.h"
-
-#include <iostream>
-
-
-using std::cout;
-using std::endl;
-
+#include <RtypesCore.h>  // for kTRUE
+#include <TString.h>     // for TString
+#include <TMath.h>       // for Power
 
 // -----   Default constructor   -------------------------------------------
 CbmMvdMimosis::CbmMvdMimosis()
diff --git a/core/detectors/mvd/SensorDataSheets/CbmMvdMimosis.h b/core/detectors/mvd/SensorDataSheets/CbmMvdMimosis.h
index c25d14c145f6ad06a62b72be9b9a244517ccbef7..09b6ed4ba739baf36c2b896851c56d4facf951fd 100644
--- a/core/detectors/mvd/SensorDataSheets/CbmMvdMimosis.h
+++ b/core/detectors/mvd/SensorDataSheets/CbmMvdMimosis.h
@@ -18,9 +18,13 @@
 #ifndef CBMMVDMIMOSIS_H
 #define CBMMVDMIMOSIS_H 1
 
+#include "CbmMvdSensorDataSheet.h"  // for CbmMvdSensorDataSheet
 
-#include "CbmMvdSensorDataSheet.h"
+#include <Rtypes.h>                 // for ClassDef
 
+class TBuffer;
+class TClass;
+class TMemberInspector;
 
 class CbmMvdMimosis : public CbmMvdSensorDataSheet {
 
diff --git a/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.h b/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.h
index 7e977ed63d74cb75e5d880527f8c08d04650c083..0d64bab7bf05410595a8b52118352f337fc0b6b6 100644
--- a/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.h
+++ b/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.h
@@ -19,9 +19,14 @@
 #ifndef CBMMVDSENSORDATASHEET_H
 #define CBMMVDSENSORDATASHEET_H 1
 
-
-#include "TNamed.h"
-
+#include <Rtypes.h>      // for ClassDef
+#include <RtypesCore.h>  // for Double_t, Int_t, Float_t, Bool_t, Option_t
+#include <TString.h>     // for TString
+#include <TNamed.h>      // for TNamed
+
+class TBuffer;
+class TClass;
+class TMemberInspector;
 
 class CbmMvdSensorDataSheet : public TNamed {
 
diff --git a/core/detectors/mvd/plugins/CbmMvdSensorPlugin.cxx b/core/detectors/mvd/plugins/CbmMvdSensorPlugin.cxx
index efc92db4f4f50ce1f458661f84df3c2943a24159..634b7bcfeb90a4a41513059478b02a263eaf34f5 100644
--- a/core/detectors/mvd/plugins/CbmMvdSensorPlugin.cxx
+++ b/core/detectors/mvd/plugins/CbmMvdSensorPlugin.cxx
@@ -8,15 +8,11 @@
 // -------------------------------------------------------------------------
 #include "CbmMvdSensorPlugin.h"
 
-#include "TClonesArray.h"
-#include "TObjArray.h"
-
-
 // -----   Default constructor   -------------------------------------------
 CbmMvdSensorPlugin::CbmMvdSensorPlugin()
   : TObject()
-  , fNextPlugin(NULL)
-  , fPreviousPlugin(NULL)
+  , fNextPlugin(nullptr)
+  , fPreviousPlugin(nullptr)
   , bFlag(false)
   , initialized(kFALSE)
   , fShowDebugHistos(kFALSE)
@@ -28,8 +24,8 @@ CbmMvdSensorPlugin::CbmMvdSensorPlugin()
 // -----   constructor   -------------------------------------------
 CbmMvdSensorPlugin::CbmMvdSensorPlugin(const char* name)
   : TObject()
-  , fNextPlugin(NULL)
-  , fPreviousPlugin(NULL)
+  , fNextPlugin(nullptr)
+  , fPreviousPlugin(nullptr)
   , bFlag(false)
   , initialized(kFALSE)
   , fShowDebugHistos(kFALSE)
diff --git a/core/detectors/mvd/plugins/CbmMvdSensorPlugin.h b/core/detectors/mvd/plugins/CbmMvdSensorPlugin.h
index c659488f425e6d52f5c9313cb97c23c81d55edd4..8ab6ba02d3725b1c9d34e9666f630bc98456fa7b 100644
--- a/core/detectors/mvd/plugins/CbmMvdSensorPlugin.h
+++ b/core/detectors/mvd/plugins/CbmMvdSensorPlugin.h
@@ -17,13 +17,16 @@
 #ifndef CBMMVDSENSORPLUGIN_H
 #define CBMMVDSENSORPLUGIN_H 1
 
-#include "CbmMvdPoint.h"
-using std::cout;
-using std::endl;
+#include <Rtypes.h>      // for ClassDef
+#include <RtypesCore.h>  // for Bool_t, Int_t, kTRUE
+#include <TObject.h>     // for TObject
 
-class TClonesArray;
-class CbmMvdSensor;
-class TObject;
+#include <Logger.h>      // for LOG
+
+class TBuffer;
+class TClass;
+class TClonesArray;  // lines 24-24
+class TMemberInspector;
 
 enum MvdSensorPluginType
 {
@@ -54,8 +57,7 @@ public:
   virtual TClonesArray* GetWriteArray() { return 0; }
 
   virtual void SetInputArray(TClonesArray*) { ; }
-  //virtual void SetInput(CbmMvdPoint*) { ; }
-  virtual void SetInput(TObject*) {cout << "-E- CbmMvdSensorPlugin::SetInput - You are sending input to the base class instead to your plugin!" << endl;}
+  virtual void SetInput(TObject*) {LOG(error) << "You are sending input to the base class instead to your plugin!";}
   virtual void SetOutputArray(TClonesArray*) { ; }
 
   virtual void SetNextPlugin(CbmMvdSensorPlugin* plugin) { fNextPlugin = plugin; }
diff --git a/core/detectors/mvd/plugins/buffers/CbmMvdSensorBuffer.cxx b/core/detectors/mvd/plugins/buffers/CbmMvdSensorBuffer.cxx
index da8c7de17ef17a9b38067b5f68c2fabf96b3a2ff..c71c83f0ba531b376b0f0b94fdcb3188ba15e8fe 100644
--- a/core/detectors/mvd/plugins/buffers/CbmMvdSensorBuffer.cxx
+++ b/core/detectors/mvd/plugins/buffers/CbmMvdSensorBuffer.cxx
@@ -9,11 +9,9 @@
 #include "CbmMvdSensorBuffer.h"
 
 #include "TClonesArray.h"
-#include "TObjArray.h"
-
 
 // -----   Default constructor   -------------------------------------------
-CbmMvdSensorBuffer::CbmMvdSensorBuffer() : CbmMvdSensorPlugin(), fBuffer(NULL), fCurrentEvent(NULL), fSensor(NULL) {}
+CbmMvdSensorBuffer::CbmMvdSensorBuffer() : CbmMvdSensorPlugin(), fBuffer(nullptr), fCurrentEvent(nullptr), fSensor(nullptr) {}
 // -------------------------------------------------------------------------
 
 // -----   Destructor   ----------------------------------------------------
@@ -24,7 +22,7 @@ CbmMvdSensorBuffer::~CbmMvdSensorBuffer()
 }
 // -------------------------------------------------------------------------
 
-void CbmMvdSensorBuffer::Clear(Option_t* opt)
+void CbmMvdSensorBuffer::Clear(Option_t* /*opt*/)
 {
   if (fBuffer) { fBuffer->Clear(); }
   if (fCurrentEvent) { fCurrentEvent->Clear(); }
diff --git a/core/detectors/mvd/plugins/buffers/CbmMvdSensorBuffer.h b/core/detectors/mvd/plugins/buffers/CbmMvdSensorBuffer.h
index 88fbc0d661d4f2f97edd0d93bb5a6a18b676546e..e4d3fca5f50e2043e0794eb39d35197f59981f30 100644
--- a/core/detectors/mvd/plugins/buffers/CbmMvdSensorBuffer.h
+++ b/core/detectors/mvd/plugins/buffers/CbmMvdSensorBuffer.h
@@ -20,16 +20,16 @@
 #ifndef CBMMVDSENSORBUFFER_H
 #define CBMMVDSENSORBUFFER_H 1
 
+#include "CbmMvdSensorPlugin.h"  // for MvdSensorPluginType, CbmMvdSensorPlugin
 
-#include "plugins/CbmMvdSensorPlugin.h"
+#include <Rtypes.h>              // for ClassDef
+#include <RtypesCore.h>          // for Double_t, Option_t
 
-#include "TObject.h"
-
-#include <iostream>
-
-
-class TClonesArray;
 class CbmMvdSensor;
+class TBuffer;
+class TClass;
+class TClonesArray;
+class TMemberInspector;
 
 class CbmMvdSensorBuffer : public CbmMvdSensorPlugin {
 
diff --git a/core/detectors/mvd/plugins/buffers/CbmMvdSensorFrameBuffer.cxx b/core/detectors/mvd/plugins/buffers/CbmMvdSensorFrameBuffer.cxx
index 0dd965e412842511461116aced71fc8a9cbc3ce4..95825d0b4fe277085cdc7a371ea1afcddf0c78e3 100644
--- a/core/detectors/mvd/plugins/buffers/CbmMvdSensorFrameBuffer.cxx
+++ b/core/detectors/mvd/plugins/buffers/CbmMvdSensorFrameBuffer.cxx
@@ -8,24 +8,29 @@
 // -------------------------------------------------------------------------
 #include "CbmMvdSensorFrameBuffer.h"
 
-#include "CbmMvdPoint.h"
+#include "CbmMvdPoint.h"            // for CbmMvdPoint
+#include "CbmMvdSensor.h"           // for CbmMvdSensor
+#include "CbmMvdSensorDataSheet.h"  // for CbmMvdSensorDataSheet
+
+#include <Logger.h>                 // for LOG, Logger
+
+#include "TClonesArray.h"           // for TClonesArray
+
 
-#include "TClonesArray.h"
-#include "TObjArray.h"
 
 
 // -----   Default constructor   -------------------------------------------
 CbmMvdSensorFrameBuffer::CbmMvdSensorFrameBuffer()
   : CbmMvdSensorBuffer()
-  , fCurrentEvent(NULL)
-  , fOutputPoints(NULL)
+  , fCurrentEvent(nullptr)
+  , fOutputPoints(nullptr)
   , lastFrame(-1)
   , thisFrame(-1)
-  , fSensorData(NULL)
+  , fSensorData(nullptr)
   , bOverflow(kFALSE)
   , currentTime(0.)
 {
-  fBuffer = NULL;
+  fBuffer = nullptr;
   bFlag   = false;
 }
 // -------------------------------------------------------------------------
@@ -52,7 +57,7 @@ void CbmMvdSensorFrameBuffer::InitBuffer(CbmMvdSensor* mySensor)
   fOutputPoints = new TClonesArray("CbmMvdPoint", 1000);
 
 
-  cout << "-I- " << GetName() << ": Initialisation of sensor " << fSensor->GetName() << endl;
+  LOG(info) << "Initialisation of sensor " << fSensor->GetName();
 
   lastFrame = 0;
 };
@@ -66,14 +71,14 @@ void CbmMvdSensorFrameBuffer::ExecChain()
   thisFrame   = fSensor->GetFrameNumber(fSensorData->GetNPixelsY(), currentTime);
 
   if (thisFrame > lastFrame) {
-    //cout << endl << "Detected full Frame "<< lastFrame << " on sensor " << fSensor->GetName() << endl;
+    //LOG(info) << "Detected full Frame "<< lastFrame << " on sensor " << fSensor->GetName();
     fOutputPoints->AbsorbObjects(fCurrentEvent);
     //
     lastFrame = thisFrame;
 
     if (fOutputPoints->GetEntriesFast() > 0) {
       SetPluginReady(true);
-      // 	 s cout << endl << "Buffer is ready for readout on sensor " << fSensor->GetName()<< endl << endl;
+      // 	 LOG(info) << "Buffer is ready for readout on sensor " << fSensor->GetName();
       //  	  fOutputPoints->Print();
     }
   }
@@ -92,12 +97,12 @@ void CbmMvdSensorFrameBuffer::SendInputArray(TClonesArray* inputStream)
   Int_t i        = 0;
   while (i < nEntries) {
     point = (CbmMvdPoint*) inputStream->At(i);
-    //cout << endl <<"check if point belongs to this sensor" << endl;
+    //LOG(info) <<"check if point belongs to this sensor";
     if (point->GetDetectorID() == fSensor->GetDetectorID()) {
 
       new ((*fBuffer)[fBuffer->GetEntriesFast()]) CbmMvdPoint(*((CbmMvdPoint*) inputStream->At(i)));
       nEntries = inputStream->GetEntriesFast();
-      // cout << endl << "New Input registered at " << fSensor->GetName() << endl;
+      // LOG(info) << "New Input registered at " << fSensor->GetName();
     };
     i++;
   };
@@ -152,9 +157,9 @@ void CbmMvdSensorFrameBuffer::BuildMimosaFrame(Int_t frameNumber)
     //Get frame number from the CbmMvdSensor according to assumed position of the
     //rolling shutter.
     pointFrameNumber = fSensor->GetFrameNumber(pixelY, point->GetAbsTime());
-    // cout << endl << "current pointFrameNumber " << pointFrameNumber << endl;
+    // LOG(info) << "current pointFrameNumber " << pointFrameNumber;
 
-    if (pointFrameNumber < frameNumber) { cout << endl << "super error" << endl; }
+    if (pointFrameNumber < frameNumber) { LOG(info) << "super error"; }
 
     // if it belongs to the frame, copy it to the event buffer
     if (pointFrameNumber == frameNumber) {
diff --git a/core/detectors/mvd/plugins/buffers/CbmMvdSensorFrameBuffer.h b/core/detectors/mvd/plugins/buffers/CbmMvdSensorFrameBuffer.h
index 583ca5f45ff72fffa4f9cc7f79169c51d4022f57..5c4747078b24dcfbb0f5a34923809b5c26957f8d 100644
--- a/core/detectors/mvd/plugins/buffers/CbmMvdSensorFrameBuffer.h
+++ b/core/detectors/mvd/plugins/buffers/CbmMvdSensorFrameBuffer.h
@@ -20,16 +20,20 @@
 #ifndef CBMMVDSENSORFRAMEBUFFER_H
 #define CBMMVDSENSORFRAMEBUFFER_H 1
 
-#include "CbmMvdHit.h"
-#include "CbmMvdSensor.h"
-#include "CbmMvdSensorBuffer.h"
+#include "CbmMvdSensorBuffer.h"  // for CbmMvdSensorBuffer
 
-#include "TObject.h"
+#include <Logger.h>              // for LOG
 
-#include <iostream>
+#include <Rtypes.h>              // for ClassDef
+#include <RtypesCore.h>          // for Double_t, Int_t, Bool_t
 
-class TClonesArray;
-class CbmMvdSensorDataSheet;
+class CbmMvdPoint;
+class CbmMvdSensor;
+class CbmMvdSensorDataSheet;  // lines 32-32
+class TBuffer;
+class TClass;
+class TClonesArray;  // lines 31-31
+class TMemberInspector;
 
 class CbmMvdSensorFrameBuffer : public CbmMvdSensorBuffer {
 
@@ -63,7 +67,7 @@ public:
   virtual void InitBuffer(CbmMvdSensor* mySensor);
   virtual void BuildTimeSlice(Double_t /*tStart*/, Double_t /*tStop*/)
   {
-    std::cout << "Do not use " << GetName() << "::BuildTimeSlice()" << std::endl;
+    LOG(fatal) << "Do not use " << GetName() << "::BuildTimeSlice()";
   };
 
   /**BuildMimosaFrame: Provides a TClonesArray containing all points related to a frame.
diff --git a/core/detectors/mvd/plugins/tasks/CbmMvdSensorTask.cxx b/core/detectors/mvd/plugins/tasks/CbmMvdSensorTask.cxx
index 51c02762a59776a91b2d4f3fd373d1cf8602c8ec..4441440ff3c85b4bc28a2ef2c15761a52b2f08c6 100644
--- a/core/detectors/mvd/plugins/tasks/CbmMvdSensorTask.cxx
+++ b/core/detectors/mvd/plugins/tasks/CbmMvdSensorTask.cxx
@@ -10,20 +10,18 @@
 #include "CbmMvdSensorTask.h"
 
 #include "TClonesArray.h"
-#include "TObjArray.h"
-
 
 // -----   Default constructor   -------------------------------------------
-CbmMvdSensorTask::CbmMvdSensorTask() : CbmMvdSensorPlugin(), fInputBuffer(NULL), fOutputBuffer(NULL), fSensor(NULL) {
+CbmMvdSensorTask::CbmMvdSensorTask() : CbmMvdSensorPlugin(), fInputBuffer(nullptr), fOutputBuffer(nullptr), fSensor(nullptr) {
 fPluginIDNumber= -1;
 }
 // -------------------------------------------------------------------------
 // -----  constructor   -------------------------------------------
 CbmMvdSensorTask::CbmMvdSensorTask(const char* name)
   : CbmMvdSensorPlugin(name)
-  , fInputBuffer(NULL)
-  , fOutputBuffer(NULL)
-  , fSensor(NULL)
+  , fInputBuffer(nullptr)
+  , fOutputBuffer(nullptr)
+  , fSensor(nullptr)
 {
 fPluginIDNumber= -1;
 }
diff --git a/core/detectors/mvd/plugins/tasks/CbmMvdSensorTask.h b/core/detectors/mvd/plugins/tasks/CbmMvdSensorTask.h
index 8dfc2320eda9d7b2af26a565f515b824b6b352de..bec028f0b32e9c08359a24dc9ab51d197617aeab 100644
--- a/core/detectors/mvd/plugins/tasks/CbmMvdSensorTask.h
+++ b/core/detectors/mvd/plugins/tasks/CbmMvdSensorTask.h
@@ -17,17 +17,16 @@
 #ifndef CBMMVDSENSORTASK_H
 #define CBMMVDSENSORTASK_H 1
 
-#include "plugins/CbmMvdSensorPlugin.h"
+#include "CbmMvdSensorPlugin.h"  // for MvdSensorPluginType, CbmMvdSensorPlugin
 
-#include "TObject.h"
+#include <Rtypes.h>              // for ClassDef
 
-#include <iostream>
-
-
-class TClonesArray;
-class CbmMvdSensor;
-class CbmMvdPoint;
 class CbmMvdDigi;
+class CbmMvdSensor;
+class TBuffer;
+class TClass;
+class TClonesArray; 
+class TMemberInspector;
 
 class CbmMvdSensorTask : public CbmMvdSensorPlugin {
 
@@ -41,7 +40,6 @@ public:
 
 
   virtual void SendInputBuffer(TClonesArray* inputBuffer) { fInputBuffer = inputBuffer; };
-  virtual void SetInput(CbmMvdPoint*) { ; };
   virtual void SetInputDigi(CbmMvdDigi*) { ; };
   virtual void CallBufferForInputData() { ; };  //See comment in ExecChain() in .cxx
   virtual TClonesArray* GetOutputArray() { return fOutputBuffer; };
diff --git a/core/detectors/mvd/tools/CbmMvdGeoHandler.cxx b/core/detectors/mvd/tools/CbmMvdGeoHandler.cxx
index c52fca6a4c99745db61d9c99dbbdbe559ce2781a..f21e34d419bea06c8655eda531f8a12c78aecb30 100644
--- a/core/detectors/mvd/tools/CbmMvdGeoHandler.cxx
+++ b/core/detectors/mvd/tools/CbmMvdGeoHandler.cxx
@@ -8,35 +8,33 @@
  * \brief addapted from TrdGeoHandler by Florian Uhlig <f.uhlig@gsi.de>
  */
 
-#include "CbmMvdGeoHandler.h"
-
-#include "CbmMvdDetector.h"
-#include "CbmMvdStationPar.h"
-#include "SensorDataSheets/CbmMvdMimosa26AHR.h"
-#include "SensorDataSheets/CbmMvdMimosa34.h"
-#include "SensorDataSheets/CbmMvdMimosis.h"
 
-#include <Logger.h>
+#include "CbmMvdGeoHandler.h"
 
-#include "TGeoBBox.h"
-#include "TGeoManager.h"
-#include "TGeoMatrix.h"
-#include "TGeoNode.h"
-#include "TGeoVolume.h"
-#include "TString.h"
-#include "TVirtualMC.h"
+#include "CbmMvdDetector.h"     // for CbmMvdDetector
+#include "CbmMvdHelper.h"       // for CbmMvdSensorTyp
+#include "CbmMvdMimosa26AHR.h"  // for CbmMvdMimosa26AHR
+#include "CbmMvdMimosis.h"      // for CbmMvdMimosis
+#include "CbmMvdStationPar.h"   // for CbmMvdStationPar
 
-#include <cstdlib>
+#include <Logger.h>             // for LOG, Logger
 
-using std::atoi;
+#include <TGeoBBox.h>           // for TGeoBBox
+#include <TGeoManager.h>        // for TGeoManager, gGeoManager
+#include <TGeoMaterial.h>       // for TGeoMaterial
+#include <TGeoNode.h>           // for TGeoNode
+#include <TGeoVolume.h>         // for TGeoVolume
+#include <TObjArray.h>          // for TObjArray
+#include <TString.h>            // for TString, operator+, Form, operator<<
 
+#include <cmath>                // for fabs
 
 //--------------------------------------------------------------------------
 CbmMvdGeoHandler::CbmMvdGeoHandler()
   : TObject()
   , fSensorTyp(CbmMvdSensorTyp::MIMOSA26)
-  , fDetector(NULL)
-  , fStationPar(NULL)
+  , fDetector(nullptr)
+  , fStationPar(nullptr)
   , fStationMap()
   , fIsSimulation(kFALSE)
   , fGeoPathHash()
diff --git a/core/detectors/mvd/tools/CbmMvdGeoHandler.h b/core/detectors/mvd/tools/CbmMvdGeoHandler.h
index 2d1d0b652f794849afc450762018249df70530fe..befb099f823c744008ccb757b3f9fca2c68e097c 100644
--- a/core/detectors/mvd/tools/CbmMvdGeoHandler.h
+++ b/core/detectors/mvd/tools/CbmMvdGeoHandler.h
@@ -13,18 +13,23 @@
 #ifndef CbmMvdGeoHandler_H_
 #define CbmMvdGeoHandler_H_ 1
 
-#include <map>
-using std::map;
-
-#include "CbmMvdDetector.h"
-#include "CbmMvdStationPar.h"
-#include "tools/CbmMvdHelper.h"
-
-#include "TObject.h"
-
+#include <Rtypes.h>      // for ClassDef
+#include <RtypesCore.h>  // for Int_t, Double_t, Bool_t, kFALSE, UInt_t
+#include <TObject.h>     // for TObject
+#include <TString.h>     // for TString
+
+class CbmMvdDetector;
+class CbmMvdStationPar;
+class TBuffer;
+class TClass;
 class TGeoBBox;
-class TGeoVolume;
 class TGeoHMatrix;
+class TGeoVolume;
+class TMemberInspector;
+
+enum class CbmMvdSensorTyp;
+
+#include <map>           // for map
 
 enum CbmMvdGeoTyp
 {
@@ -71,7 +76,7 @@ public:
   Double_t GetZ(const TString& path);
   Int_t GetStation(const TString& path);
   void Fill();
-  map<Int_t, Int_t> GetMap() { return fStationMap; };
+  std::map<Int_t, Int_t> GetMap() { return fStationMap; };
   void PrintGeoParameter();
   Int_t GetIDfromPath(TString path);
 
@@ -92,7 +97,7 @@ private:
   CbmMvdDetector* fDetector;
   CbmMvdStationPar* fStationPar;
 
-  map<Int_t, Int_t> fStationMap;
+  std::map<Int_t, Int_t> fStationMap;
 
   Bool_t fIsSimulation;  //!
 
diff --git a/reco/detectors/mvd/CbmMvdClusterfinder.cxx b/reco/detectors/mvd/CbmMvdClusterfinder.cxx
index 2473aef2d3e32b591a8ab0484485e5520a27765b..1458673146ee71b1fa9a849e1b941b2720ec471e 100644
--- a/reco/detectors/mvd/CbmMvdClusterfinder.cxx
+++ b/reco/detectors/mvd/CbmMvdClusterfinder.cxx
@@ -5,32 +5,26 @@
 // -------------------------------------------------------------------------
 // -----                    CbmMvdClusterfinder source file                -----
 // -------------------------------------------------------------------------
-
-// Includes from MVD
 #include "CbmMvdClusterfinder.h"
 
-#include "CbmDigiManager.h"
-#include "CbmMvdDetector.h"
-#include "CbmMvdPoint.h"
-#include "SensorDataSheets/CbmMvdMimosa26AHR.h"
-#include "plugins/tasks/CbmMvdSensorClusterfinderTask.h"
-#include "tools/CbmMvdGeoHandler.h"
-
-// Includes from FAIR
-#include "FairModule.h"
-#include "FairRootManager.h"
+#include "CbmDefs.h"                               // for ECbmModuleId
+#include "CbmDigiManager.h"                        // for CbmDigiManager
+#include "CbmMvdDetector.h"                        // for CbmMvdDetector
+#include "CbmMvdDigi.h"                            // for CbmMvdDigi
+#include "CbmMvdSensor.h"                          // for CbmMvdSensor
+#include "CbmMvdSensorClusterfinderTask.h"         // for CbmMvdSensorCluste...
 
+#include <FairRootManager.h>                       // for FairRootManager
+#include <FairTask.h>                              // for InitStatus, FairTask
+#include <Logger.h>                                // for Logger, LOG
 
-// Includes from ROOT
-#include "TClonesArray.h"
-#include "TGeoManager.h"
-#include "TMath.h"
-#include "TString.h"
+#include <TClonesArray.h>                          // for TClonesArray
 
+#include <iomanip>                                 // for setprecision, setw
+#include <iostream>                                // for operator<<, endl
+#include <map>                                     // for allocator, __map_i...
+#include <utility>                                 // for pair
 
-// Includes from C++
-#include <iomanip>
-#include <iostream>
 
 using std::cout;
 using std::endl;
@@ -43,9 +37,9 @@ CbmMvdClusterfinder::CbmMvdClusterfinder()
   : FairTask("MVDClusterfinder")
   , fMode(0)
   , fShowDebugHistos(kFALSE)
-  , fDetector(NULL)
+  , fDetector(nullptr)
   , fDigiMan(nullptr)
-  , fCluster(NULL)
+  , fCluster(nullptr)
   , fClusterPluginNr()
   , fBranchName("")
   , fTimer()
@@ -58,9 +52,9 @@ CbmMvdClusterfinder::CbmMvdClusterfinder(const char* name, Int_t iMode, Int_t iV
   : FairTask(name, iVerbose)
   , fMode(iMode)
   , fShowDebugHistos(kFALSE)
-  , fDetector(NULL)
+  , fDetector(nullptr)
   , fDigiMan(nullptr)
-  , fCluster(NULL)
+  , fCluster(nullptr)
   , fClusterPluginNr(0)
   , fBranchName("MvdDigi")
   , fTimer()
diff --git a/reco/detectors/mvd/CbmMvdClusterfinder.h b/reco/detectors/mvd/CbmMvdClusterfinder.h
index d5b94044fd2016d54588f648987e6f358cb17b67..e6ab276e6d4b109298cc75662150574b3f18b1e7 100644
--- a/reco/detectors/mvd/CbmMvdClusterfinder.h
+++ b/reco/detectors/mvd/CbmMvdClusterfinder.h
@@ -11,15 +11,19 @@
 #ifndef CBMMVDCLUSTERFINDER_H
 #define CBMMVDCLUSTERFINDER_H 1
 
+#include "FairTask.h"    // for InitStatus, FairTask
 
-#include "FairTask.h"
-
-#include "TStopwatch.h"
+#include <Rtypes.h>      // for ClassDef
+#include <RtypesCore.h>  // for Int_t, Bool_t, Option_t, UInt_t, kTRUE
+#include <TString.h>     // for TString
+#include <TStopwatch.h>  // for TStopwatch
 
+class CbmDigiManager;
 class CbmMvdDetector;
+class TBuffer;
+class TClass;
 class TClonesArray;
-class TString;
-class CbmDigiManager;
+class TMemberInspector;
 
 
 class CbmMvdClusterfinder : public FairTask {
diff --git a/reco/detectors/mvd/CbmMvdClusterfinderTB.cxx b/reco/detectors/mvd/CbmMvdClusterfinderTB.cxx
index cdfbec700c3aac081534bf2aa84c591bfa536a87..fda616bf90893fe53e18cb9039d4b6791270e6e7 100644
--- a/reco/detectors/mvd/CbmMvdClusterfinderTB.cxx
+++ b/reco/detectors/mvd/CbmMvdClusterfinderTB.cxx
@@ -13,8 +13,8 @@
 #include "CbmEvent.h"
 #include "CbmMvdDetector.h"
 #include "CbmMvdPoint.h"
-#include "plugins/tasks/CbmMvdSensorClusterfinderTask.h"
-#include "tools/CbmMvdGeoHandler.h"
+#include "CbmMvdSensorClusterfinderTask.h"
+#include "CbmMvdGeoHandler.h"
 
 // Includes from FAIR
 #include "FairModule.h"
@@ -47,11 +47,11 @@ CbmMvdClusterfinderTB::CbmMvdClusterfinderTB(const char* name, Int_t iMode, Int_
   : FairTask(name, iVerbose)
   , fMode(iMode)
   , fShowDebugHistos(kFALSE)
-  , fDetector(NULL)
-  , fEvents(NULL)
+  , fDetector(nullptr)
+  , fEvents(nullptr)
   , fDigiMan(nullptr)
-  , fEventDigis(NULL)
-  , fCluster(NULL)
+  , fEventDigis(nullptr)
+  , fCluster(nullptr)
   , fClusterPluginNr(0)
   , fBranchName("MvdDigi")
   , fTimer()
diff --git a/reco/detectors/mvd/CbmMvdDigiToHit.cxx b/reco/detectors/mvd/CbmMvdDigiToHit.cxx
index 0f1407799a4941896032980b46404afe6ea94219..8a39dfaf1b20fcfc309a5f87e7e6060661d94944 100644
--- a/reco/detectors/mvd/CbmMvdDigiToHit.cxx
+++ b/reco/detectors/mvd/CbmMvdDigiToHit.cxx
@@ -11,9 +11,8 @@
 
 #include "CbmMvdDetector.h"
 #include "CbmMvdPoint.h"
-#include "SensorDataSheets/CbmMvdMimosa26AHR.h"
-#include "plugins/tasks/CbmMvdSensorDigiToHitTask.h"
-#include "tools/CbmMvdGeoHandler.h"
+#include "CbmMvdSensorDigiToHitTask.h"
+#include "CbmMvdGeoHandler.h"
 
 // Includes from FAIR
 #include "FairModule.h"
@@ -49,9 +48,9 @@ CbmMvdDigiToHit::CbmMvdDigiToHit()
   : FairTask("CbmMvdDigiToHit")
   , fMode(0)
   , fShowDebugHistos(kFALSE)
-  , fDetector(NULL)
-  , fInputDigis(NULL)
-  , fHit(NULL)
+  , fDetector(nullptr)
+  , fInputDigis(nullptr)
+  , fHit(nullptr)
   , fHitPluginNr()
   , fBranchName("")
   , fTimer()
@@ -64,9 +63,9 @@ CbmMvdDigiToHit::CbmMvdDigiToHit(const char* name, Int_t iMode, Int_t iVerbose)
   : FairTask(name, iVerbose)
   , fMode(iMode)
   , fShowDebugHistos(kFALSE)
-  , fDetector(NULL)
-  , fInputDigis(NULL)
-  , fHit(NULL)
+  , fDetector(nullptr)
+  , fInputDigis(nullptr)
+  , fHit(nullptr)
   , fHitPluginNr(0)
   , fBranchName("MvdDigi")
   , fTimer()
diff --git a/reco/detectors/mvd/CbmMvdDigiToHitTB.cxx b/reco/detectors/mvd/CbmMvdDigiToHitTB.cxx
index e756b86277e613e1450ca684204cd801beaa1fa0..3bf8e71c4dc438c95a2dfa165beeac5ba65f4fbd 100644
--- a/reco/detectors/mvd/CbmMvdDigiToHitTB.cxx
+++ b/reco/detectors/mvd/CbmMvdDigiToHitTB.cxx
@@ -12,8 +12,8 @@
 #include "CbmEvent.h"
 #include "CbmMvdDetector.h"
 #include "CbmMvdPoint.h"
-#include "plugins/tasks/CbmMvdSensorDigiToHitTask.h"
-#include "tools/CbmMvdGeoHandler.h"
+#include "CbmMvdSensorDigiToHitTask.h"
+#include "CbmMvdGeoHandler.h"
 
 // Includes from FAIR
 #include "FairModule.h"
@@ -46,11 +46,11 @@ CbmMvdDigiToHitTB::CbmMvdDigiToHitTB(const char* name, Int_t iMode, Int_t iVerbo
   : FairTask(name, iVerbose)
   , fMode(iMode)
   , fShowDebugHistos(kFALSE)
-  , fDetector(NULL)
-  , fEvents(NULL)
-  , fInputDigis(NULL)
-  , fEventDigis(NULL)
-  , fCluster(NULL)
+  , fDetector(nullptr)
+  , fEvents(nullptr)
+  , fInputDigis(nullptr)
+  , fEventDigis(nullptr)
+  , fCluster(nullptr)
   , fClusterPluginNr(0)
   , fBranchName("MvdDigi")
   , fTimer()
diff --git a/reco/detectors/mvd/CbmMvdHitfinder.cxx b/reco/detectors/mvd/CbmMvdHitfinder.cxx
index 00000cbf2e3014ffa065d5ba37a412f132a12388..b97ee8d235d04462c987bb8bbbc6558256caa2a1 100644
--- a/reco/detectors/mvd/CbmMvdHitfinder.cxx
+++ b/reco/detectors/mvd/CbmMvdHitfinder.cxx
@@ -5,29 +5,27 @@
 // -------------------------------------------------------------------------
 // -----                    CbmMvdHitfinder source file                -----
 // -------------------------------------------------------------------------
-
-// Includes from MVD
 #include "CbmMvdHitfinder.h"
 
-#include "CbmMvdPoint.h"
-#include "SensorDataSheets/CbmMvdMimosa26AHR.h"
-// #include "plugins/tasks/CbmMvdSensorFindHitTask.h" //digi to hit
-#include "CbmDigiManager.h"
-#include "plugins/tasks/CbmMvdSensorHitfinderTask.h" // cluster to hit
-#include "tools/CbmMvdGeoHandler.h"
-
-
-// Includes from FAIR
-#include "FairModule.h"
-#include "FairRootManager.h"
+#include "CbmDefs.h"                               // for ECbmModuleId
+#include "CbmDigiManager.h"                        // for CbmDigiManager
+#include "CbmMvdCluster.h"                         // for CbmMvdCluster
+#include "CbmMvdDetector.h"                        // for CbmMvdDetector
+#include "CbmMvdDigi.h"                            // for CbmMvdDigi
+#include "CbmMvdSensor.h"                          // for CbmMvdSensor
+#include "CbmMvdSensorFindHitTask.h"               // for CbmMvdSensorFindHi...
+#include "CbmMvdSensorHitfinderTask.h"             // for CbmMvdSensorHitfin...
 
-// Includes from ROOT
-#include "TClonesArray.h"
+#include <FairTask.h>                              // for InitStatus, FairTask
+#include <FairRootManager.h>                       // for FairRootManager
+#include <Logger.h>                                // for Logger, LOG
 
+#include <TClonesArray.h>                          // for TClonesArray
 
-// Includes from C++
-#include <iomanip>
-#include <iostream>
+#include <iomanip>                                 // for setprecision, setw
+#include <iostream>                                // for operator<<, endl
+#include <map>                                     // for allocator, __map_i...
+#include <utility>                                 // for pair
 
 using std::cout;
 using std::endl;
@@ -39,10 +37,10 @@ using std::setw;
 // -----   Default constructor   ------------------------------------------
 CbmMvdHitfinder::CbmMvdHitfinder()
   : FairTask("MVDHitfinder")
-  , fDetector(NULL)
+  , fDetector(nullptr)
   , fDigiMan(nullptr)
-  , fInputCluster(NULL)
-  , fHits(NULL)
+  , fInputCluster(nullptr)
+  , fHits(nullptr)
   , fHitfinderPluginNr(0)
   , fUseClusterfinder(kFALSE)
   , fShowDebugHistos(kFALSE)
@@ -55,10 +53,10 @@ CbmMvdHitfinder::CbmMvdHitfinder()
 // -----   Standard constructor   ------------------------------------------
 CbmMvdHitfinder::CbmMvdHitfinder(const char* name, Int_t iVerbose)
   : FairTask(name, iVerbose)
-  , fDetector(NULL)
+  , fDetector(nullptr)
   , fDigiMan(nullptr)
-  , fInputCluster(NULL)
-  , fHits(NULL)
+  , fInputCluster(nullptr)
+  , fHits(nullptr)
   , fHitfinderPluginNr(0)
   , fUseClusterfinder(kFALSE)
   , fShowDebugHistos(kFALSE)
@@ -71,10 +69,10 @@ CbmMvdHitfinder::CbmMvdHitfinder(const char* name, Int_t iVerbose)
 // -----   Standard constructor   ------------------------------------------
 CbmMvdHitfinder::CbmMvdHitfinder(const char* name, Int_t mode, Int_t iVerbose)
   : FairTask(name, iVerbose)
-  , fDetector(NULL)
+  , fDetector(nullptr)
   , fDigiMan(nullptr)
-  , fInputCluster(NULL)
-  , fHits(NULL)
+  , fInputCluster(nullptr)
+  , fHits(nullptr)
   , fHitfinderPluginNr(0)
   , fUseClusterfinder(kFALSE)
   , fShowDebugHistos(kFALSE)
diff --git a/reco/detectors/mvd/CbmMvdHitfinder.h b/reco/detectors/mvd/CbmMvdHitfinder.h
index 3383a47d668ac41822073fcdab845eea3484cc3c..dd58151bbc4d71938f55c42f4b1426e392e31ba4 100644
--- a/reco/detectors/mvd/CbmMvdHitfinder.h
+++ b/reco/detectors/mvd/CbmMvdHitfinder.h
@@ -11,13 +11,18 @@
 #ifndef CBMMVDHITFINDER_H
 #define CBMMVDHITFINDER_H 1
 
-#include "FairTask.h"
+#include "FairTask.h"    // for InitStatus, FairTask
 
-#include "TStopwatch.h"
+#include <Rtypes.h>      // for ClassDef
+#include <RtypesCore.h>  // for Int_t, Bool_t, Option_t, UInt_t, kTRUE
+#include <TStopwatch.h>  // for TStopwatch
 
-class CbmMvdDetector;
 class CbmDigiManager;
+class CbmMvdDetector;
+class TBuffer;
+class TClass;
 class TClonesArray;
+class TMemberInspector;
 
 class CbmMvdHitfinder : public FairTask {
 
diff --git a/reco/detectors/mvd/CbmMvdHitfinderTB.cxx b/reco/detectors/mvd/CbmMvdHitfinderTB.cxx
index 9802db40101f233f0a121edf250931f5198a6215..cf0b4a3a6978f2d495c8053bbca6619b4827238c 100644
--- a/reco/detectors/mvd/CbmMvdHitfinderTB.cxx
+++ b/reco/detectors/mvd/CbmMvdHitfinderTB.cxx
@@ -10,10 +10,9 @@
 #include "CbmMvdHitfinderTB.h"
 
 #include "CbmMvdPoint.h"
-#include "SensorDataSheets/CbmMvdMimosa26AHR.h"
-#include "plugins/tasks/CbmMvdSensorFindHitTask.h"
-#include "plugins/tasks/CbmMvdSensorHitfinderTask.h"
-#include "tools/CbmMvdGeoHandler.h"
+#include "CbmMvdSensorFindHitTask.h"
+#include "CbmMvdSensorHitfinderTask.h"
+#include "CbmMvdGeoHandler.h"
 
 
 // Includes from FAIR
@@ -38,10 +37,10 @@ using std::setw;
 // -----   Default constructor   ------------------------------------------
 CbmMvdHitfinderTB::CbmMvdHitfinderTB()
   : FairTask("MVDHitfinder")
-  , fDetector(NULL)
-  , fInputDigis(NULL)
-  , fInputCluster(NULL)
-  , fHits(NULL)
+  , fDetector(nullptr)
+  , fInputDigis(nullptr)
+  , fInputCluster(nullptr)
+  , fHits(nullptr)
   , fHitfinderPluginNr(0)
   , useClusterfinder(kFALSE)
   , fShowDebugHistos(kFALSE)
@@ -54,10 +53,10 @@ CbmMvdHitfinderTB::CbmMvdHitfinderTB()
 // -----   Standard constructor   ------------------------------------------
 CbmMvdHitfinderTB::CbmMvdHitfinderTB(const char* name, Int_t iVerbose)
   : FairTask(name, iVerbose)
-  , fDetector(NULL)
-  , fInputDigis(NULL)
-  , fInputCluster(NULL)
-  , fHits(NULL)
+  , fDetector(nullptr)
+  , fInputDigis(nullptr)
+  , fInputCluster(nullptr)
+  , fHits(nullptr)
   , fHitfinderPluginNr(0)
   , useClusterfinder(kFALSE)
   , fShowDebugHistos(kFALSE)
@@ -70,10 +69,10 @@ CbmMvdHitfinderTB::CbmMvdHitfinderTB(const char* name, Int_t iVerbose)
 // -----   Standard constructor   ------------------------------------------
 CbmMvdHitfinderTB::CbmMvdHitfinderTB(const char* name, Int_t mode, Int_t iVerbose)
   : FairTask(name, iVerbose)
-  , fDetector(NULL)
-  , fInputDigis(NULL)
-  , fInputCluster(NULL)
-  , fHits(NULL)
+  , fDetector(nullptr)
+  , fInputDigis(nullptr)
+  , fInputCluster(nullptr)
+  , fHits(nullptr)
   , fHitfinderPluginNr(0)
   , useClusterfinder(kFALSE)
   , fShowDebugHistos(kFALSE)
diff --git a/reco/detectors/mvd/CbmMvdRecoLinkDef.h b/reco/detectors/mvd/CbmMvdRecoLinkDef.h
index 824d7bd3ae441cec4435d9f5c7324be556d282b0..4b7bb70724ba25e51d879a67766c86d4ca809424 100644
--- a/reco/detectors/mvd/CbmMvdRecoLinkDef.h
+++ b/reco/detectors/mvd/CbmMvdRecoLinkDef.h
@@ -1,6 +1,6 @@
-/* Copyright (C) 2006-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
+/* Copyright (C) 2023 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
    SPDX-License-Identifier: GPL-3.0-only
-   Authors: Philipp Sitzmann, Volker Friese [committer] */
+   Authors: Florian Uhlig [committer] */
 
 #ifdef __CINT__
 
@@ -16,7 +16,4 @@
 #pragma link C++ class CbmMvdTrackingInterface + ;
 //#pragma link C++ class CbmMvdSensorFindHitTask + ;
 
-#pragma link C++ class CbmMvdQa+;
-//#pragma link C++ class CbmMvdClusterAna+;
-
 #endif
diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx
index 7c45990cd9cd2371d7a298807b8eb4460fe5a9fb..f523409bd680052806f387be9ad144f6797a03db 100644
--- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx
+++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx
@@ -40,28 +40,28 @@ CbmMvdSensorClusterfinderTask::CbmMvdSensorClusterfinderTask(Int_t iMode, Int_t
   , fAdcSteps(-1)
   , fAddress(0)
   , fAdcStepSize(-1.)
-  , fDigis(NULL)
-  , fPixelChargeHistos(NULL)
-  , fTotalChargeInNpixelsArray(NULL)
-  , fResolutionHistoX(NULL)
-  , fResolutionHistoY(NULL)
-  , fResolutionHistoCleanX(NULL)
-  , fResolutionHistoCleanY(NULL)
-  , fResolutionHistoMergedX(NULL)
-  , fResolutionHistoMergedY(NULL)
-  , fBadHitHisto(NULL)
-  , fGausArray(NULL)
+  , fDigis(nullptr)
+  , fPixelChargeHistos(nullptr)
+  , fTotalChargeInNpixelsArray(nullptr)
+  , fResolutionHistoX(nullptr)
+  , fResolutionHistoY(nullptr)
+  , fResolutionHistoCleanX(nullptr)
+  , fResolutionHistoCleanY(nullptr)
+  , fResolutionHistoMergedX(nullptr)
+  , fResolutionHistoMergedY(nullptr)
+  , fBadHitHisto(nullptr)
+  , fGausArray(nullptr)
   , fGausArrayIt(-1)
   , fGausArrayLimit(5000)
   , fDigiMap()
   , fDigiMapIt()
-  , h(NULL)
-  , h3(NULL)
-  , h1(NULL)
-  , h2(NULL)
-  , Qseed(NULL)
-  , fFullClusterHisto(NULL)
-  , c1(NULL)
+  , h(nullptr)
+  , h3(nullptr)
+  , h1(nullptr)
+  , h2(nullptr)
+  , Qseed(nullptr)
+  , fFullClusterHisto(nullptr)
+  , c1(nullptr)
   , fNEvent(0)
   , fMode(iMode)
   , fCounter(0)
diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.h b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.h
index 169da3f23a3db49d30d49a60bc0e7aaf365dbdac..2d08f2786b6b14f7a6b879a75e0998ca53ca1d1e 100644
--- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.h
+++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.h
@@ -19,6 +19,7 @@
 
 #include "TArrayS.h"
 #include "TCanvas.h"
+#include <TClonesArray.h>
 #include "TH1.h"
 #include "TH1F.h"
 #include "TH2.h"
diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorDigiToHitTask.h b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorDigiToHitTask.h
index a7322c3d2ebad65c5ae0dd07152b470e265ce849..27457a1dfd96b1c6949d878ef81da654293b8940 100644
--- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorDigiToHitTask.h
+++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorDigiToHitTask.h
@@ -8,6 +8,8 @@
 #include "CbmMvdCluster.h"
 #include "CbmMvdDigi.h"
 #include "CbmMvdHit.h"
+#include "CbmMvdSensor.h"
+#include "CbmMvdSensorTask.h"
 
 #include "TArrayS.h"
 #include "TCanvas.h"
@@ -26,10 +28,7 @@
 #include <numeric>
 #include <utility>
 #include <vector>
-//#include <Vc/Vc>
 
-#include "CbmMvdSensor.h"
-#include "CbmMvdSensorTask.h"
 
 class TClonesArray;
 class TRandom3;
diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorFindHitTask.cxx b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorFindHitTask.cxx
index 7475e4aa040165c183f9f612db98d7cb395b0d2a..8b2d24aafba57de0c0eb159373ce69336a26f222 100644
--- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorFindHitTask.cxx
+++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorFindHitTask.cxx
@@ -67,30 +67,30 @@ CbmMvdSensorFindHitTask::CbmMvdSensorFindHitTask()
   , fAdcBits(1)
   , fAdcSteps(-1)
   , fAdcStepSize(-1.)
-  , fDigis(NULL)
-  , fHits(NULL)
+  , fDigis(nullptr)
+  , fHits(nullptr)
   , fClusters(new TClonesArray("CbmMvdCluster", 10000))
-  , fPixelChargeHistos(NULL)
-  , fTotalChargeInNpixelsArray(NULL)
-  , fResolutionHistoX(NULL)
-  , fResolutionHistoY(NULL)
-  , fResolutionHistoCleanX(NULL)
-  , fResolutionHistoCleanY(NULL)
-  , fResolutionHistoMergedX(NULL)
-  , fResolutionHistoMergedY(NULL)
-  , fBadHitHisto(NULL)
-  , fGausArray(NULL)
+  , fPixelChargeHistos(nullptr)
+  , fTotalChargeInNpixelsArray(nullptr)
+  , fResolutionHistoX(nullptr)
+  , fResolutionHistoY(nullptr)
+  , fResolutionHistoCleanX(nullptr)
+  , fResolutionHistoCleanY(nullptr)
+  , fResolutionHistoMergedX(nullptr)
+  , fResolutionHistoMergedY(nullptr)
+  , fBadHitHisto(nullptr)
+  , fGausArray(nullptr)
   , fGausArrayIt(-1)
   , fGausArrayLimit(5000)
   , fDigiMap()
   , fDigiMapIt()
-  , h(NULL)
-  , h3(NULL)
-  , h1(NULL)
-  , h2(NULL)
-  , Qseed(NULL)
-  , fFullClusterHisto(NULL)
-  , c1(NULL)
+  , h(nullptr)
+  , h3(nullptr)
+  , h1(nullptr)
+  , h2(nullptr)
+  , Qseed(nullptr)
+  , fFullClusterHisto(nullptr)
+  , c1(nullptr)
   , fNEvent(0)
   , fMode(0)
   , fCounter(0)
@@ -126,30 +126,30 @@ CbmMvdSensorFindHitTask::CbmMvdSensorFindHitTask(Int_t iMode)
   , fAdcBits(1)
   , fAdcSteps(-1)
   , fAdcStepSize(-1.)
-  , fDigis(NULL)
-  , fHits(NULL)
+  , fDigis(nullptr)
+  , fHits(nullptr)
   , fClusters(new TClonesArray("CbmMvdCluster", 100))
-  , fPixelChargeHistos(NULL)
-  , fTotalChargeInNpixelsArray(NULL)
-  , fResolutionHistoX(NULL)
-  , fResolutionHistoY(NULL)
-  , fResolutionHistoCleanX(NULL)
-  , fResolutionHistoCleanY(NULL)
-  , fResolutionHistoMergedX(NULL)
-  , fResolutionHistoMergedY(NULL)
-  , fBadHitHisto(NULL)
-  , fGausArray(NULL)
+  , fPixelChargeHistos(nullptr)
+  , fTotalChargeInNpixelsArray(nullptr)
+  , fResolutionHistoX(nullptr)
+  , fResolutionHistoY(nullptr)
+  , fResolutionHistoCleanX(nullptr)
+  , fResolutionHistoCleanY(nullptr)
+  , fResolutionHistoMergedX(nullptr)
+  , fResolutionHistoMergedY(nullptr)
+  , fBadHitHisto(nullptr)
+  , fGausArray(nullptr)
   , fGausArrayIt(-1)
   , fGausArrayLimit(5000)
   , fDigiMap()
   , fDigiMapIt()
-  , h(NULL)
-  , h3(NULL)
-  , h1(NULL)
-  , h2(NULL)
-  , Qseed(NULL)
-  , fFullClusterHisto(NULL)
-  , c1(NULL)
+  , h(nullptr)
+  , h3(nullptr)
+  , h1(nullptr)
+  , h2(nullptr)
+  , Qseed(nullptr)
+  , fFullClusterHisto(nullptr)
+  , c1(nullptr)
   , fNEvent(0)
   , fMode(iMode)
   , fCounter(0)
@@ -260,7 +260,7 @@ void CbmMvdSensorFindHitTask::Exec()
     inputSet                    = kFALSE;
     vector<Int_t>* clusterArray = new vector<Int_t>;
 
-    CbmMvdDigi* digi = NULL;
+    CbmMvdDigi* digi = nullptr;
 
     Int_t iDigi = 0;
     digi        = (CbmMvdDigi*) fInputBuffer->At(iDigi);
@@ -591,7 +591,7 @@ void CbmMvdSensorFindHitTask::CreateHit(vector<Int_t>* clusterArray, TVector3& p
   Int_t latestClusterIndex = -1;
   Int_t digisInArray       = 0;
 
-  CbmMvdCluster* latestCluster = NULL;
+  CbmMvdCluster* latestCluster = nullptr;
   Int_t nClusters              = -1;
 
   for (i = 0; i < clusterSize; i++) {
diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorFindHitTask.h b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorFindHitTask.h
index 0557a4d65e6607eb89ae2fe7294ebafb5316a376..d5c63469c5988541a9f7cbecad033c8d1437cb18 100644
--- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorFindHitTask.h
+++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorFindHitTask.h
@@ -14,12 +14,14 @@
 #include "CbmMvdDigi.h"
 #include "CbmMvdPoint.h"
 #include "CbmMvdSensor.h"
+#include "CbmMvdCluster.h"
 #include "CbmMvdSensorTask.h"
 
 #include "FairTask.h"
 
 #include "TArrayS.h"
 #include "TCanvas.h"
+#include <TClonesArray.h>
 #include "TH1.h"
 #include "TH1F.h"
 #include "TH2.h"
diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx
index 986487cbcb8eb052d761a2065028275b971149fe..a7e2c1293a52c991b9082714838297d0ea128d65 100644
--- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx
+++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx
@@ -7,45 +7,25 @@
 // -----                      Created 11/09/13  by P.Sitzmann                              -----
 // -----      				 						   -----
 // ---------------------------------------------------------------------------------------------
-// Includes from MVD
 #include "CbmMvdSensorHitfinderTask.h"
 
-#include "CbmMvdCluster.h"
-#include "CbmMvdHit.h"
-#include "CbmMvdPileupManager.h"
-#include "CbmMvdPoint.h"
-
-// Includes from base
-#include "CbmMCTrack.h"
-
-#include "FairGeoNode.h"
-#include "FairRootManager.h"
-#include "FairRunAna.h"
-#include "FairRuntimeDb.h"
-#include <Logger.h>
-
-// Includes from ROOT
-#include "TArrayD.h"
-#include "TCanvas.h"
-#include "TClonesArray.h"
-#include "TF1.h"
-#include "TGeoManager.h"
-#include "TGeoTube.h"
-#include "TH1.h"
-#include "TH2.h"
-#include "TMath.h"
-#include "TObjArray.h"
-#include "TRandom3.h"
-#include "TRefArray.h"
-#include "TString.h"
-#include "TVector3.h"
-#include <TMatrixD.h>
-
-// Includes from C++
-#include <iomanip>
-#include <iostream>
-#include <map>
-#include <vector>
+#include "CbmMvdCluster.h"  // for CbmMvdCluster
+#include "CbmMvdHit.h"      // for CbmMvdHit
+#include "CbmMvdSensor.h"   // for CbmMvdSensor
+
+#include <TClonesArray.h>   // for TClonesArray
+#include <TGeoMatrix.h>     // for TGeoHMatrix
+#include <TMath.h>          // for Power
+#include <TMathBase.h>      // for Abs
+#include <TObjArray.h>      // for TObjArray
+#include <TRandom.h>        // for TRandom
+#include <TRandom3.h>       // for gRandom
+#include <TVector3.h>       // for TVector3
+
+#include <iomanip>          // for setprecision, setw
+#include <iostream>         // for operator<<, basic_ostream, char_traits, endl
+#include <map>              // for map, __map_iterator, operator!=, operator==
+#include <vector>           // for vector
 
 using std::cout;
 using std::endl;
@@ -69,27 +49,27 @@ CbmMvdSensorHitfinderTask::CbmMvdSensorHitfinderTask()
   , fAdcSteps(-1)
   , fAdcStepSize(-1.)
   , fClusters(new TClonesArray("CbmMvdCluster", 10000))
-  , fPixelChargeHistos(NULL)
-  , fTotalChargeInNpixelsArray(NULL)
-  , fResolutionHistoX(NULL)
-  , fResolutionHistoY(NULL)
-  , fResolutionHistoCleanX(NULL)
-  , fResolutionHistoCleanY(NULL)
-  , fResolutionHistoMergedX(NULL)
-  , fResolutionHistoMergedY(NULL)
-  , fBadHitHisto(NULL)
-  , fGausArray(NULL)
+  , fPixelChargeHistos(nullptr)
+  , fTotalChargeInNpixelsArray(nullptr)
+  , fResolutionHistoX(nullptr)
+  , fResolutionHistoY(nullptr)
+  , fResolutionHistoCleanX(nullptr)
+  , fResolutionHistoCleanY(nullptr)
+  , fResolutionHistoMergedX(nullptr)
+  , fResolutionHistoMergedY(nullptr)
+  , fBadHitHisto(nullptr)
+  , fGausArray(nullptr)
   , fGausArrayIt(-1)
   , fGausArrayLimit(5000)
   , fDigiMap()
   , fDigiMapIt()
-  , h(NULL)
-  , h3(NULL)
-  , h1(NULL)
-  , h2(NULL)
-  , Qseed(NULL)
-  , fFullClusterHisto(NULL)
-  , c1(NULL)
+  , h(nullptr)
+  , h3(nullptr)
+  , h1(nullptr)
+  , h2(nullptr)
+  , Qseed(nullptr)
+  , fFullClusterHisto(nullptr)
+  , c1(nullptr)
   , fNEvent(0)
   , fMode(0)
   , fCounter(0)
@@ -126,27 +106,27 @@ CbmMvdSensorHitfinderTask::CbmMvdSensorHitfinderTask(Int_t iMode)
   , fAdcSteps(-1)
   , fAdcStepSize(-1.)
   , fClusters(new TClonesArray("CbmMvdCluster", 10000))
-  , fPixelChargeHistos(NULL)
-  , fTotalChargeInNpixelsArray(NULL)
-  , fResolutionHistoX(NULL)
-  , fResolutionHistoY(NULL)
-  , fResolutionHistoCleanX(NULL)
-  , fResolutionHistoCleanY(NULL)
-  , fResolutionHistoMergedX(NULL)
-  , fResolutionHistoMergedY(NULL)
-  , fBadHitHisto(NULL)
-  , fGausArray(NULL)
+  , fPixelChargeHistos(nullptr)
+  , fTotalChargeInNpixelsArray(nullptr)
+  , fResolutionHistoX(nullptr)
+  , fResolutionHistoY(nullptr)
+  , fResolutionHistoCleanX(nullptr)
+  , fResolutionHistoCleanY(nullptr)
+  , fResolutionHistoMergedX(nullptr)
+  , fResolutionHistoMergedY(nullptr)
+  , fBadHitHisto(nullptr)
+  , fGausArray(nullptr)
   , fGausArrayIt(-1)
   , fGausArrayLimit(5000)
   , fDigiMap()
   , fDigiMapIt()
-  , h(NULL)
-  , h3(NULL)
-  , h1(NULL)
-  , h2(NULL)
-  , Qseed(NULL)
-  , fFullClusterHisto(NULL)
-  , c1(NULL)
+  , h(nullptr)
+  , h3(nullptr)
+  , h1(nullptr)
+  , h2(nullptr)
+  , Qseed(nullptr)
+  , fFullClusterHisto(nullptr)
+  , c1(nullptr)
   , fNEvent(0)
   , fMode(iMode)
   , fCounter(0)
diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h
index 6b7815ec1ad04971a8db83558a8152adc229d70f..5aede833fea441a66d795ede849ad3aba7a3031e 100644
--- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h
+++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h
@@ -11,34 +11,29 @@
 #ifndef CBMMVDSENSORHITFINDERTASK_H
 #define CBMMVDSENSORHITFINDERTASK_H 1
 
-#include "CbmMvdCluster.h"
-#include "CbmMvdDigi.h"
-#include "CbmMvdPoint.h"
-#include "CbmMvdSensor.h"
-#include "CbmMvdSensorTask.h"
-
-#include "FairTask.h"
-
-#include "TArrayS.h"
-#include "TCanvas.h"
-#include "TH1.h"
-#include "TH1F.h"
-#include "TH2.h"
-#include "TMath.h"
-#include "TObjArray.h"
-#include "TRandom3.h"
-#include "TRefArray.h"
-#include "TStopwatch.h"
-#include "TString.h"
-
-#include <list>
-#include <map>
-#include <utility>
-#include <vector>
-
-class TClonesArray;
-class TRandom3;
-class CbmMvdPileupManager;
+#include "CbmMvdCluster.h"     // for CbmMvdCluster
+#include "CbmMvdSensorTask.h"  // for CbmMvdSensorTask
+
+#include <FairTask.h>          // for InitStatus
+
+#include <Rtypes.h>            // for ClassDef
+#include <RtypesCore.h>        // for Int_t, Double_t, Bool_t, Float_t, kTRUE
+#include <TClonesArray.h>      // for TClonesArray
+#include <TString.h>           // for TString
+
+#include <map>                 // for map
+#include <utility>           // for pair
+
+class CbmMvdSensor;
+class TBuffer;
+class TCanvas;
+class TClass;
+class TH1F;
+class TH2F;
+class TMemberInspector;
+class TObjArray;
+class TObject;
+class TVector3;
 
 class CbmMvdSensorHitfinderTask : public CbmMvdSensorTask {
 
diff --git a/sim/detectors/mvd/CbmMvd.cxx b/sim/detectors/mvd/CbmMvd.cxx
index ced259652a52b564aa27c3526dbe5fb9bc5e83ae..d419017b65ee1f3e9a6c2a91501e263af0c92d9d 100644
--- a/sim/detectors/mvd/CbmMvd.cxx
+++ b/sim/detectors/mvd/CbmMvd.cxx
@@ -6,31 +6,25 @@
 // -----                        CbmMvd source file                     -----
 // -----                  Created 26/07/04  by V. Friese               -----
 // -------------------------------------------------------------------------
-
 #include "CbmMvd.h"
 
-#include "CbmMvdPoint.h"
-#include "CbmStack.h"
-#include "tools/CbmMvdGeoHandler.h"
+#include <Logger.h>            // for Logger, LOG
 
-#include "FairRootManager.h"
-#include "FairRun.h"
-#include "FairRuntimeDb.h"
-#include "FairVolume.h"
+#include "CbmDefs.h"           // for ToIntegralType, ECbmModuleId
+#include "CbmMvdGeoHandler.h"  // for CbmMvdGeoHandler
+#include "CbmMvdPoint.h"       // for CbmMvdPoint
+#include "CbmStack.h"          // for CbmStack
 
-#include "TClonesArray.h"
-#include "TGeoManager.h"
-#include "TList.h"
-#include "TObjArray.h"
-#include "TParticle.h"
-#include "TString.h"
-#include "TVirtualMC.h"
-#include "TVirtualMCStack.h"
+#include <FairRootManager.h>   // for FairRootManager
+#include <FairVolume.h>        // for FairVolume
 
-#include <iostream>
-using std::cout;
-using std::endl;
+#include <TClonesArray.h>      // for TClonesArray
+#include <TList.h>             // for TList
+#include <TString.h>           // for TString, operator<<
+#include <TVirtualMC.h>        // for TVirtualMC, gMC
+#include <TVirtualMCStack.h>   // for TVirtualMCStack
 
+#include <string>              // for allocator
 
 // -----   Default constructor   -------------------------------------------
 CbmMvd::CbmMvd()
@@ -177,7 +171,7 @@ TClonesArray* CbmMvd::GetCollection(Int_t iColl) const
 {
   if (iColl == 0) return fCollection;
   else
-    return NULL;
+    return nullptr;
 }
 // -------------------------------------------------------------------------
 
@@ -207,7 +201,7 @@ void CbmMvd::CopyClones(TClonesArray* cl1, TClonesArray* cl2, Int_t offset)
   Int_t nEntries = cl1->GetEntriesFast();
   LOG(info) << "CbmMvd: " << nEntries << " entries to add.";
   TClonesArray& clref   = *cl2;
-  CbmMvdPoint* oldpoint = NULL;
+  CbmMvdPoint* oldpoint = nullptr;
   for (Int_t i = 0; i < nEntries; i++) {
     oldpoint    = (CbmMvdPoint*) cl1->At(i);
     Int_t index = oldpoint->GetTrackID() + offset;
diff --git a/sim/detectors/mvd/CbmMvd.h b/sim/detectors/mvd/CbmMvd.h
index f6dbbc68b5cf60c3d45fa2311d7236663711a24e..b69b4fcd1dc2f243ce8d292b7291c39ea7b4934c 100644
--- a/sim/detectors/mvd/CbmMvd.h
+++ b/sim/detectors/mvd/CbmMvd.h
@@ -18,27 +18,25 @@
 #ifndef CBMMVD_H
 #define CBMMVD_H 1
 
+#include <FairDetector.h>    // for FairDetector
 
-//#include "SensorDataSheets/CbmMvdMimosa26AHR.h"
-
-#include "FairDetector.h"
-
-#include "TLorentzVector.h"
-#include "TVector3.h"
-
-#include <map>
+#include <Rtypes.h>          // for ClassDef
+#include <RtypesCore.h>      // for Int_t, Bool_t, Double32_t, Double_t, Opt...
+#include <TLorentzVector.h>  // for TLorentzVector
+#include <TVector3.h>        // for TVector3
 
+#include <string>            // for string
+#include <map>               // for map
 
+class CbmMvdGeoHandler;
+class CbmMvdPoint;
+class FairVolume;
+class TBuffer;
+class TClass;
 class TClonesArray;
+class TGeoMatrix;
 class TList;
-class FairVolume;
-class CbmMvdPoint;
-class CbmMvdGeoHandler;
-class CbmMvdDetector;
-
-
-using std::map;
-
+class TMemberInspector;
 
 class CbmMvd : public FairDetector {
 
@@ -123,12 +121,12 @@ public:
 
   virtual void ConstructAsciiGeometry();
 
-  virtual void ConstructRootGeometry(TGeoMatrix* shift = NULL);
+  virtual void ConstructRootGeometry(TGeoMatrix* shift = nullptr);
 
   virtual Bool_t IsSensitive(const std::string& name);
   virtual Bool_t CheckIfSensitive(std::string name);
 
-  virtual map<Int_t, Int_t> GetMap() { return fStationMap; };
+  virtual std::map<Int_t, Int_t> GetMap() { return fStationMap; };
 
 private:
   /** Track information to be stored until the track leaves the
@@ -146,7 +144,7 @@ private:
   TClonesArray* fCollection;      //!  The hit collection
   Bool_t kGeoSaved;               //!
   TList* fGeoPar;                 //!  List of geometry parameters
-  map<Int_t, Int_t> fStationMap;  //! Map from MC volume ID to station number
+  std::map<Int_t, Int_t> fStationMap;  //! Map from MC volume ID to station number
 
   CbmMvdGeoHandler* fmvdHandler;
 
diff --git a/sim/detectors/mvd/CbmMvdDigitizer.cxx b/sim/detectors/mvd/CbmMvdDigitizer.cxx
index 41d1d46f192a12c3a631ac366d69180d6b9e88fd..1f932aefc5a9d4a4cc36b9e8812fbfb2805fc5cf 100644
--- a/sim/detectors/mvd/CbmMvdDigitizer.cxx
+++ b/sim/detectors/mvd/CbmMvdDigitizer.cxx
@@ -5,33 +5,31 @@
 // -------------------------------------------------------------------------
 // -----                    CbmMvdDigitizer source file                -----
 // -------------------------------------------------------------------------
-
-// Includes from MVD
 #include "CbmMvdDigitizer.h"
 
-#include "CbmMatch.h"
-#include "CbmMvdDetector.h"
-#include "CbmMvdDigi.h"
-#include "CbmMvdPileupManager.h"
-#include "CbmMvdPoint.h"
-//#include "SensorDataSheets/CbmMvdMimosa26AHR.h"
-#include "plugins/tasks/CbmMvdSensorDigitizerTask.h"
-#include "tools/CbmMvdGeoHandler.h"
-
-// Includes from FAIR
-#include "FairModule.h"
-#include "FairRootManager.h"
-#include <Logger.h>
-
-// Includes from ROOT
-#include "TClonesArray.h"
-#include "TStopwatch.h"
-
-// Includes from C++
-#include <cassert>
-#include <iomanip>
-#include <iostream>
-#include <vector>
+#include "CbmMatch.h"                   // for CbmMatch
+#include "CbmMvdDetector.h"             // for CbmMvdDetector
+#include "CbmMvdDigi.h"                 // for CbmMvdDigi
+#include "CbmMvdPileupManager.h"        // for CbmMvdPileupManager
+#include "CbmMvdPoint.h"                // for CbmMvdPoint
+#include "CbmMvdSensor.h"               // for CbmMvdSensor
+#include "CbmMvdSensorDigitizerTask.h"  // for CbmMvdSensorDigitizerTask
+
+#include <FairRootManager.h>            // for FairRootManager
+#include <Logger.h>                     // for Logger, LOG
+
+#include <TClonesArray.h>               // for TClonesArray
+#include <TObject.h>                    // for TObject
+#include <TRandom.h>                    // for TRandom
+#include <TRandom3.h>                   // for gRandom
+#include <TStopwatch.h>                 // for TStopwatch
+
+#include <cassert>                      // for assert
+#include <iomanip>                      // for setprecision, setw, __iom_t5
+#include <iostream>                     // for operator<<, basic_ostream, endl
+#include <map>                          // for __map_iterator, map, operator!=
+#include <string>                       // for allocator, char_traits
+#include <vector>                       // for vector
 
 using std::cout;
 using std::endl;
@@ -128,7 +126,9 @@ void CbmMvdDigitizer::Exec(Option_t* /*opt*/)
   fTimer.Start();
   GetEventInfo();  // event number and time
 
+  // Add points from BG and Delta files to the array if needed
   BuildEvent();
+
   Int_t nPoints = fInputPoints->GetEntriesFast();
   Int_t nDigis  = 0;
   CbmMvdPoint* point=0;
@@ -143,25 +143,18 @@ void CbmMvdDigitizer::Exec(Option_t* /*opt*/)
 
     Int_t nTargetPlugin=DetectPlugin(100);
 
-    for (Int_t i=0; i< nPoints; i++) { //loop over all points
+    // Distribute the points from the input array to the sensors
+    for (Int_t i=0; i< nPoints; i++) {
       point=(CbmMvdPoint*) fInputPoints->At(i);
       fDetector->SendInputToSensorPlugin(point->GetDetectorID(), nTargetPlugin, static_cast<TObject*>(point));
-
-
     }
 
-    //cout << "CbmMvdDigitizer::Exec() - Send data completed" << endl;
-
-
-
-
+    // Execute the plugged digitizer plugin for all sensors
     LOG(debug) << fName << ": Execute DigitizerPlugin Nr. " << fDigiPluginNr;
     fDetector->Exec(fDigiPluginNr);
     LOG(debug) << fName << ": End Chain";
 
 
-    //cout << "CbmMvdDigitizer::Exec() - Exec data completed" << endl;
-
     // --- Send produced digis to DAQ
     //fTmpDigi  = fDetector->GetOutputDigis();
     //fTmpMatch = fDetector->GetOutputDigiMatchs();
@@ -182,12 +175,16 @@ void CbmMvdDigitizer::Exec(Option_t* /*opt*/)
       CbmMvdDigi* digi1 = new CbmMvdDigi(*digi);
       assert(digi1);
       fDigiVect.push_back(digi1);
+//      // Create new digi in the output digi outputfrom the one in the internal TClonesArray
+//      fDigiVect.emplace_back(new CbmMvdDigi(*(static_cast<CbmMvdDigi*>(fTmpDigi->At(index)))));
 
       //     CbmMatch match{*(dynamic_cast<CbmMatch*>(fTmpMatch->At(index)))};
       //     CbmMatch* match1 = new CbmMatch(match);
       CbmMatch* match  = dynamic_cast<CbmMatch*>(fTmpMatch->At(index));
       CbmMatch* match1 = new CbmMatch(*match);
       fMatchVect.push_back(match1);
+//      // Create new match in the output match vector from the one in the internal TClonesArray
+//      fMatchVect.emplace_back(new CbmMatch(*(static_cast<CbmMatch*>(fTmpMatch->At(index)))));
 
       //digi1->SetMatch(match1);
       SendData(digi1->GetTime(), digi1, match1);
@@ -248,7 +245,7 @@ InitStatus CbmMvdDigitizer::Init()
   // **********  RootManager
   FairRootManager* ioman = FairRootManager::Instance();
   if (!ioman) {
-    cout << "-E- " << GetName() << "::Init: No FairRootManager!" << endl;
+    LOG(fatal) <<  "No FairRootManager!";
     return kFATAL;
   }
 
@@ -272,41 +269,32 @@ InitStatus CbmMvdDigitizer::Init()
   // **********  Create pileup manager if necessary
   if (fNPileup >= 1 && !(fPileupManager) && fMode == 0) {
     if (fBgFileName == "") {
-      cout << "-E- " << GetName() << "::Init: Pileup events needed, but no "
-           << " background file name given! " << endl;
+      LOG(error) << "Pileup events needed, but no background file name given! ";
       return kERROR;
     }
     fPileupManager = new CbmMvdPileupManager(fBgFileName, fInputBranchName, fBgBufferSize);
     if (fPileupManager->GetNEvents() < 2 * fNPileup) {
-      cout << "-E- " << GetName()
-           << ": The size of your BG-File is insufficient to perform the "
-              "requested pileup"
-           << endl;
-      cout << "    You need at least events > 2* fNPileup." << endl;
-      cout << "    Detected: fPileUp = " << fNPileup << ", events in file " << fPileupManager->GetNEvents() << endl;
-      Fatal(GetName(), "The size of your BG-File is insufficient");
-      return kERROR;
+      LOG(error) << "The size of your BG-File is insufficient to perform the requested pileup";
+      LOG(error) << " You need at least events > 2* fNPileup but there are only"
+                 << fNPileup << ", events in file " << fPileupManager->GetNEvents();
+      LOG(fatal) << "The size of your BG-File is insufficient";
+      return kFATAL;
     }
   }
 
   // **********   Create delta electron manager if required
   if (fNDeltaElect >= 1 && !(fDeltaManager) && fMode == 0) {
     if (fDeltaFileName == "") {
-      cout << "-E- " << GetName() << "::Init: Pileup events needed, but no "
-           << " background file name given! " << endl;
+      LOG(error) << "Delta events needed, but no delta elector file name given! ";
       return kERROR;
     }
     fDeltaManager = new CbmMvdPileupManager(fDeltaFileName, fInputBranchName, fDeltaBufferSize);
     if (fDeltaManager->GetNEvents() < 2 * fNDeltaElect) {
-      cout << "-E- " << GetName()
-           << ": The size of your Delta-File is insufficient to perform the "
-              "requested pileup"
-           << endl;
-      cout << "    You need at least events > 2* fNDeltaElect." << endl;
-      cout << "    Detected: fNDeltaElect = " << fNDeltaElect << ", events in file " << fDeltaManager->GetNEvents()
-           << endl;
-      Fatal(GetName(), "The size of your Delta-File is insufficient");
-      return kERROR;
+      LOG(error) << "The size of your Delta-File is insufficient to perform the requested pileup";
+      LOG(error) << " You need at least events > 2* fNDeltaElect but there are only"
+                 << fNDeltaElect << ", events in file " << fDeltaManager->GetNEvents();
+      LOG(fatal) << "The size of your Delta-File is insufficient";
+      return kFATAL;
     }
   }
 
@@ -329,8 +317,6 @@ InitStatus CbmMvdDigitizer::Init()
   if (fShowDebugHistos) fDetector->ShowDebugHistos();
   fDetector->Init();
 
-  if (fNoiseSensors) fDetector->SetProduceNoise();
-
   // --- Read list of inactive channels
   if (!fInactiveChannelFileName.IsNull()) {
     LOG(info) << GetName() << ": Reading inactive channels from " << fInactiveChannelFileName;
@@ -394,7 +380,9 @@ Int_t CbmMvdDigitizer::DetectPlugin(Int_t pluginID)
 
   CbmMvdDetector* detector= CbmMvdDetector::Instance();
   return detector->DetectPlugin(pluginID);
-  /*CbmMvdSensor* sensor=detector->GetSensor(0);
+
+  /*
+  CbmMvdSensor* sensor=detector->GetSensor(0);
   TObjArray* pluginArray= sensor->GetPluginArray();
 
   Int_t nPlugin=pluginArray->GetEntries();
@@ -405,7 +393,8 @@ Int_t CbmMvdDigitizer::DetectPlugin(Int_t pluginID)
   }
 
 
- return -1;*/
+ return -1;
+ */
 }
 
 // -----   Private method PrintParameters   --------------------------------
diff --git a/sim/detectors/mvd/CbmMvdDigitizer.h b/sim/detectors/mvd/CbmMvdDigitizer.h
index 9be5dea481b1ce460ceffe6f4da3303feddd5aa8..d817e2c5bfced402cf58fc831fcfff1dd5b1f97e 100644
--- a/sim/detectors/mvd/CbmMvdDigitizer.h
+++ b/sim/detectors/mvd/CbmMvdDigitizer.h
@@ -12,19 +12,28 @@
 #ifndef CBMMVDDIGITIZER_H
 #define CBMMVDDIGITIZER_H 1
 
-#include "CbmDefs.h"
-#include "CbmDigitize.h"
+#include "CbmDefs.h"         // for ECbmModuleId
+#include "CbmDigitize.h"     // for CbmDigitize
+#include "CbmMvdDigi.h"      // for CbmMvdDigi
 
-#include "TStopwatch.h"
-#include "TString.h"
+#include <FairTask.h>        // for InitStatus
 
-#include <utility>
-#include <vector>
+#include <Rtypes.h>          // for ClassDef
+#include <RtypesCore.h>      // for Int_t, Float_t, Bool_t, kTRUE, Double_t
+#include <TStopwatch.h>      // for TStopwatch
+#include <TString.h>         // for TString
 
+#include <utility>           // for pair
+#include <string>            // for string
+#include <vector>            // for vector
+
+class CbmMatch;
 class CbmMvdDetector;
 class CbmMvdPileupManager;
-class CbmMvdDigi;
-class CbmMatch;
+class TBuffer;
+class TClass;
+class TClonesArray;
+class TMemberInspector;
 
 class CbmMvdDigitizer : public CbmDigitize<CbmMvdDigi> {
 
diff --git a/sim/detectors/mvd/CbmMvdDigitizerTB.cxx b/sim/detectors/mvd/CbmMvdDigitizerTB.cxx
index 451ed9095d0b057e2a6d05f6a8560a2668c42eb2..119df871c4b9bde850d3d2973bcb33c2370ebd8a 100644
--- a/sim/detectors/mvd/CbmMvdDigitizerTB.cxx
+++ b/sim/detectors/mvd/CbmMvdDigitizerTB.cxx
@@ -11,8 +11,9 @@
 
 #include "CbmMvdDetector.h"
 #include "CbmMvdPoint.h"
-#include "plugins/tasks/CbmMvdSensorDigitizerTBTask.h"
-#include "tools/CbmMvdGeoHandler.h"
+#include "CbmMvdSensorDigitizerTBTask.h"
+#include "CbmMvdGeoHandler.h"
+#include "CbmDaqBuffer.h"
 
 #include "FairModule.h"
 #include "FairRootManager.h"
@@ -22,8 +23,6 @@
 #include "TClonesArray.h"
 #include "TStopwatch.h"
 
-// Includes from C++
-#include "../base/CbmDaqBuffer.h"
 
 #include <iomanip>
 #include <iostream>
@@ -43,11 +42,11 @@ CbmMvdDigitizerTB::CbmMvdDigitizerTB(const char* name, Int_t iMode, Int_t iVerbo
   , eventNumber(0)
   , fShowDebugHistos(kFALSE)
   , fNoiseSensors(kFALSE)
-  , fDetector(NULL)
-  , fInputPoints(NULL)
-  , fTracks(NULL)
-  , fDigis(NULL)
-  , fDigiMatch(NULL)
+  , fDetector(nullptr)
+  , fInputPoints(nullptr)
+  , fTracks(nullptr)
+  , fDigis(nullptr)
+  , fDigiMatch(nullptr)
   , fPerformanceDigi()
   , fDigiPluginNr(0)
   , fFakeRate(-1.)
diff --git a/sim/detectors/mvd/CbmMvdPixelCharge.h b/sim/detectors/mvd/CbmMvdPixelCharge.h
index a1d4f4074d65d63e66e01b345780baaef5fb4fde..87bb5f15e1c8b27af473f8beb51ff48ee1e62a68 100644
--- a/sim/detectors/mvd/CbmMvdPixelCharge.h
+++ b/sim/detectors/mvd/CbmMvdPixelCharge.h
@@ -11,8 +11,13 @@
 #ifndef CBMMVDPIXELCHARGE_H
 #define CBMMVDPIXELCHARGE_H 1
 
-#include "TMath.h"
-#include "TObject.h"
+#include <Rtypes.h>      // for ClassDef
+#include <RtypesCore.h>  // for Float_t, Int_t, Short_t, Bool_t, Option_t
+#include <TObject.h>     // for TObject
+
+class TBuffer;
+class TClass;
+class TMemberInspector;
 
 
 class CbmMvdPixelCharge : public TObject {
diff --git a/sim/detectors/mvd/CbmMvdSimLinkDef.h b/sim/detectors/mvd/CbmMvdSimLinkDef.h
index 2fe7bdbd42c9fefc6d15b4e23fb9e211109d25bc..fc2616d4518716035d9e60b3178e1acd6decc785 100644
--- a/sim/detectors/mvd/CbmMvdSimLinkDef.h
+++ b/sim/detectors/mvd/CbmMvdSimLinkDef.h
@@ -1,6 +1,6 @@
-/* Copyright (C) 2006-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
+/* Copyright (C) 2023 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
    SPDX-License-Identifier: GPL-3.0-only
-   Authors: Philipp Sitzmann, Volker Friese [committer] */
+   Authors: Florian Uhlig [committer] */
 
 #ifdef __CINT__
 
diff --git a/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTBTask.cxx b/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTBTask.cxx
index 93640276ff961f25fcd6643ce3c9178913ce0ddb..bc9cab4d4fd3ddbe644294f05174d5cb186f16eb 100644
--- a/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTBTask.cxx
+++ b/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTBTask.cxx
@@ -235,14 +235,6 @@ void CbmMvdSensorDigitizerTBTask::SetInputArray(TClonesArray* inputStream)
 }
 // -----------------------------------------------------------------------------
 
-// -----------------------------------------------------------------------------
-void CbmMvdSensorDigitizerTBTask::SetInput(CbmMvdPoint* point)
-{
-
-  new ((*fInputPoints)[fInputPoints->GetEntriesFast()]) CbmMvdPoint(*((CbmMvdPoint*) point));
-}
-// -----------------------------------------------------------------------------
-
 // -------------- public method ExecChain   ------------------------------------
 void CbmMvdSensorDigitizerTBTask::ExecChain() { Exec(); }
 // -----------------------------------------------------------------------------
@@ -715,7 +707,7 @@ void CbmMvdSensorDigitizerTBTask::InitTask(CbmMvdSensor* mySensor)
 
   ReadSensorInformation();
 
-  fPreviousPlugin = NULL;
+  fPreviousPlugin = nullptr;
   initialized     = kTRUE;
 }
 // -------------------------------------------------------------------------
diff --git a/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTBTask.h b/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTBTask.h
index fdb7b3917c9e3477fab8d28287aca09599a9cd0c..9e107ee5f58df34f660c100317c0b0bad42e46a6 100644
--- a/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTBTask.h
+++ b/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTBTask.h
@@ -65,7 +65,6 @@ public:
 
   /** fill buffer **/
   void SetInputArray(TClonesArray* inputStream);
-  virtual void SetInput(CbmMvdPoint* point);
 
   /** Execute **/
   void Exec();
diff --git a/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTask.cxx b/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTask.cxx
index e77e65a8549d9e4667bbcf20c868d7f34cd6796b..e9d03cb7c2fa4493700afc89c343ccd53e2fce69 100644
--- a/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTask.cxx
+++ b/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTask.cxx
@@ -18,43 +18,46 @@
  * ____________________________________________________________________________________________
  * --------------------------------------------------------------------------------------------
  **/
-
-
 #include "CbmMvdSensorDigitizerTask.h"
 
-#include "CbmMvdPileupManager.h"
-#include "CbmMvdPoint.h"
-
-#include "FairRuntimeDb.h"
-
-#include "TClonesArray.h"
-#include "TObjArray.h"
-
-// Includes from FairRoot
-#include "FairEventHeader.h"
-#include "FairMCEventHeader.h"
-#include "FairRunAna.h"
-#include "FairRunSim.h"
-#include <Logger.h>
-
+#include "CbmMatch.h"               // for CbmMatch
+#include "CbmMvdDigi.h"             // for CbmMvdDigi
+#include "CbmMvdPileupManager.h"    // for CbmMvdPileupManager
+#include "CbmMvdPixelCharge.h"      // for CbmMvdPixelCharge
+#include "CbmMvdPoint.h"            // for CbmMvdPoint
+#include "CbmMvdSensor.h"           // for CbmMvdSensor
+#include "CbmMvdSensorDataSheet.h"  // for CbmMvdSensorDataSheet
+#include "CbmMvdSensorPlugin.h"     // for CbmMvdSensorPlugin
+
+#include <FairEventHeader.h>        // for FairEventHeader
+#include <FairRunAna.h>             // for FairRunAna
+#include <FairRootManager.h>        // for FairRootManager
+#include <FairRunSim.h>             // for FairRunSim
+#include <Logger.h>                 // for LOG, Logger
+
+#include <TCanvas.h>                // for TCanvas
+#include <TClonesArray.h>           // for TClonesArray
+#include <TH1.h>                    // for TH1F
+#include <TH2.h>                    // for TH2F
+#include <TMath.h>                  // for Pi, ATan
+#include <TMathBase.h>              // for Abs, Max
+#include <TRandom.h>                // for TRandom
+#include <TRefArray.h>              // for TRefArray
+#include <TVector3.h>               // for TVector3, operator*, operator+
+
+#include <cmath>                    // for sqrt
+#include <iomanip>                  // for operator<<, setprecision, setw
+#include <iostream>                 // for operator<<, basic_ostream, endl
+#include <map>                      // for map, operator==, __map_iterator
+#include <vector>                   // for allocator, vector
 
-// Includes from C++
-#include <iomanip>
-#include <iostream>
-#include <map>
-#include <vector>
 
 using std::cout;
 using std::endl;
-using std::fixed;
 using std::ios_base;
-using std::left;
-using std::map;
 using std::pair;
-using std::right;
 using std::setprecision;
 using std::setw;
-using std::vector;
 
 
 // -----   Default constructor   ------------------------------------------
@@ -77,16 +80,16 @@ CbmMvdSensorDigitizerTask::CbmMvdSensorDigitizerTask()
   , fCurrentParticleMass(0.)
   , fCurrentParticleMomentum(0.)
   , fCurrentParticlePdg(0)
-  , fRandomGeneratorTestHisto(NULL)
-  , fPosXY(NULL)
-  , fpZ(NULL)
-  , fPosXinIOut(NULL)
-  , fAngle(NULL)
-  , fSegResolutionHistoX(NULL)
-  , fSegResolutionHistoY(NULL)
-  , fSegResolutionHistoZ(NULL)
-  , fTotalChargeHisto(NULL)
-  , fTotalSegmentChargeHisto(NULL)
+  , fRandomGeneratorTestHisto(nullptr)
+  , fPosXY(nullptr)
+  , fpZ(nullptr)
+  , fPosXinIOut(nullptr)
+  , fAngle(nullptr)
+  , fSegResolutionHistoX(nullptr)
+  , fSegResolutionHistoY(nullptr)
+  , fSegResolutionHistoZ(nullptr)
+  , fTotalChargeHisto(nullptr)
+  , fTotalSegmentChargeHisto(nullptr)
   , fLorentzY0(-6.1)
   , fLorentzXc(0.)
   , fLorentzW(1.03)
@@ -101,8 +104,8 @@ CbmMvdSensorDigitizerTask::CbmMvdSensorDigitizerTask()
   , fPar1(0.34)
   , fPar2(-1.2)
   , fCompression(1.)
-  , fResolutionHistoX(NULL)
-  , fResolutionHistoY(NULL)
+  , fResolutionHistoX(nullptr)
+  , fResolutionHistoY(nullptr)
   , fNumberOfSegments(0)
   , fCurrentLayer(0)
   , fEvent(0)
@@ -110,14 +113,14 @@ CbmMvdSensorDigitizerTask::CbmMvdSensorDigitizerTask()
   , fNPixelsX(0)
   , fNPixelsY(0)
   , fPixelCharge(new TClonesArray("CbmMvdPixelCharge"))
-  , fDigis(NULL)
-  , fDigiMatch(NULL)
+  , fDigis(nullptr)
+  , fDigiMatch(nullptr)
   , fproduceNoise(kFALSE)
   , fPixelChargeShort()
-  , fPixelScanAccelerator(NULL)
+  , fPixelScanAccelerator(nullptr)
   , fChargeMap()
   , fChargeMapIt()
-  , fsensorDataSheet(NULL)
+  , fsensorDataSheet(nullptr)
   , fMode(0)
   , fSigmaX(0.0005)
   , fSigmaY(0.0005)
@@ -132,12 +135,12 @@ CbmMvdSensorDigitizerTask::CbmMvdSensorDigitizerTask()
   , fBranchName("")
   , fBgFileName("")
   , fDeltaFileName("")
-  , fInputPoints(NULL)
+  , fInputPoints(nullptr)
   , fPoints(new TRefArray())
   , fRandGen()
   , fTimer()
-  , fPileupManager(NULL)
-  , fDeltaManager(NULL)
+  , fPileupManager(nullptr)
+  , fDeltaManager(nullptr)
   , fNEvents(0)
   , fNPoints(0.)
   , fNReal(0.)
@@ -147,11 +150,11 @@ CbmMvdSensorDigitizerTask::CbmMvdSensorDigitizerTask()
   , fNMerged(0.)
   , fTime(0.)
   , fSignalPoints()
-  , h_trackLength(NULL)
-  , h_numSegments(NULL)
-  , h_LengthVsAngle(NULL)
-  , h_LengthVsEloss(NULL)
-  , h_ElossVsMomIn(NULL)
+  , h_trackLength(nullptr)
+  , h_numSegments(nullptr)
+  , h_LengthVsAngle(nullptr)
+  , h_LengthVsEloss(nullptr)
+  , h_ElossVsMomIn(nullptr)
 {
   fRandGen.SetSeed(2736);
   fproduceNoise = kFALSE;
@@ -180,16 +183,16 @@ CbmMvdSensorDigitizerTask::CbmMvdSensorDigitizerTask(Int_t iMode)
   , fCurrentParticleMass(0.)
   , fCurrentParticleMomentum(0.)
   , fCurrentParticlePdg(0)
-  , fRandomGeneratorTestHisto(NULL)
-  , fPosXY(NULL)
-  , fpZ(NULL)
-  , fPosXinIOut(NULL)
-  , fAngle(NULL)
-  , fSegResolutionHistoX(NULL)
-  , fSegResolutionHistoY(NULL)
-  , fSegResolutionHistoZ(NULL)
-  , fTotalChargeHisto(NULL)
-  , fTotalSegmentChargeHisto(NULL)
+  , fRandomGeneratorTestHisto(nullptr)
+  , fPosXY(nullptr)
+  , fpZ(nullptr)
+  , fPosXinIOut(nullptr)
+  , fAngle(nullptr)
+  , fSegResolutionHistoX(nullptr)
+  , fSegResolutionHistoY(nullptr)
+  , fSegResolutionHistoZ(nullptr)
+  , fTotalChargeHisto(nullptr)
+  , fTotalSegmentChargeHisto(nullptr)
   , fLorentzY0(-6.1)
   , fLorentzXc(0.)
   , fLorentzW(1.03)
@@ -204,8 +207,8 @@ CbmMvdSensorDigitizerTask::CbmMvdSensorDigitizerTask(Int_t iMode)
   , fPar1(0.34)
   , fPar2(-1.2)
   , fCompression(1.)
-  , fResolutionHistoX(NULL)
-  , fResolutionHistoY(NULL)
+  , fResolutionHistoX(nullptr)
+  , fResolutionHistoY(nullptr)
   , fNumberOfSegments(0)
   , fCurrentLayer(0)
   , fEvent(0)
@@ -213,14 +216,14 @@ CbmMvdSensorDigitizerTask::CbmMvdSensorDigitizerTask(Int_t iMode)
   , fNPixelsX(0)
   , fNPixelsY(0)
   , fPixelCharge(new TClonesArray("CbmMvdPixelCharge", 100000))
-  , fDigis(NULL)
-  , fDigiMatch(NULL)
+  , fDigis(nullptr)
+  , fDigiMatch(nullptr)
   , fproduceNoise(kFALSE)
   , fPixelChargeShort()
-  , fPixelScanAccelerator(NULL)
+  , fPixelScanAccelerator(nullptr)
   , fChargeMap()
   , fChargeMapIt()
-  , fsensorDataSheet(NULL)
+  , fsensorDataSheet(nullptr)
   , fMode(iMode)
   , fSigmaX(0.0005)
   , fSigmaY(0.0005)
@@ -235,12 +238,12 @@ CbmMvdSensorDigitizerTask::CbmMvdSensorDigitizerTask(Int_t iMode)
   , fBranchName("MvdPoint")
   , fBgFileName("")
   , fDeltaFileName("")
-  , fInputPoints(NULL)
+  , fInputPoints(nullptr)
   , fPoints(new TRefArray())
   , fRandGen()
   , fTimer()
-  , fPileupManager(NULL)
-  , fDeltaManager(NULL)
+  , fPileupManager(nullptr)
+  , fDeltaManager(nullptr)
   , fNEvents(0)
   , fNPoints(0.)
   , fNReal(0.)
@@ -250,11 +253,11 @@ CbmMvdSensorDigitizerTask::CbmMvdSensorDigitizerTask(Int_t iMode)
   , fNMerged(0.)
   , fTime(0.)
   , fSignalPoints()
-  , h_trackLength(NULL)
-  , h_numSegments(NULL)
-  , h_LengthVsAngle(NULL)
-  , h_LengthVsEloss(NULL)
-  , h_ElossVsMomIn(NULL)
+  , h_trackLength(nullptr)
+  , h_numSegments(nullptr)
+  , h_LengthVsAngle(nullptr)
+  , h_LengthVsEloss(nullptr)
+  , h_ElossVsMomIn(nullptr)
 
 { fPluginIDNumber= 100;
   if(gDebug>0){cout << "Starting CbmMvdSensorDigitizerTask::CbmMvdSensorDigitizerTask() " << endl;}
@@ -380,12 +383,6 @@ void CbmMvdSensorDigitizerTask::SetInputArray(TClonesArray* inputStream)
     i++;
   }
 }
-// -----------------------------------------------------------------------------
-void CbmMvdSensorDigitizerTask::SetInput(CbmMvdPoint* point)
-{
-
-  new ((*fInputPoints)[fInputPoints->GetEntriesFast()]) CbmMvdPoint(*((CbmMvdPoint*) point));
-}
 //-----------------------------------------------------------------------------
 
 void CbmMvdSensorDigitizerTask::SetInput(TObject* point)
@@ -423,13 +420,11 @@ void CbmMvdSensorDigitizerTask::Exec()
       CbmMvdPoint* point = (CbmMvdPoint*) fInputPoints->At(iPoint);
 
       if (!point) {
-        cout << "-W-" << GetName() << ":: Exec:" << endl;
-        cout << "    -received bad MC-Point. Ignored." << endl;
+        LOG(warning) << "    -received bad MC-Point. Ignored.";
         continue;
       }
       if (point->GetStationNr() != fSensor->GetSensorNr()) {
-        cout << "-W-" << GetName() << ":: Exec:" << endl;
-        cout << "    -received bad MC-Point which doesn't belong here. Ignored." << endl;
+        LOG(warning) << "    -received bad MC-Point which doesn't belong here. Ignored.";
         continue;
       }
       fcurrentFrameNumber = point->GetFrame();
@@ -1034,7 +1029,7 @@ void CbmMvdSensorDigitizerTask::InitTask(CbmMvdSensor* mySensor)
   PrintParameters();
   cout << "---------------------------------------------" << endl;**/
 
-  fPreviousPlugin = NULL;
+  fPreviousPlugin = nullptr;
   initialized     = kTRUE;
 }
 // -------------------------------------------------------------------------
diff --git a/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTask.h b/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTask.h
index 026ab52cef0e161d444a313d5b3aba77f2bb569e..a689bc9f12b6b641ff77cb56481a1b6aa01da6d5 100644
--- a/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTask.h
+++ b/sim/detectors/mvd/plugins/tasks/CbmMvdSensorDigitizerTask.h
@@ -17,39 +17,34 @@
 #ifndef CBMMVDSENSORDIGITIZERTASK_H
 #define CBMMVDSENSORDIGITIZERTASK_H 1
 
-
-#include "CbmMvdSensor.h"
-
-#include "FairTask.h"
-//#include "omp.h"
-#include "CbmMatch.h"
-#include "CbmMvdDigi.h"
-#include "CbmMvdPileupManager.h"
-#include "CbmMvdPixelCharge.h"
-#include "CbmMvdPoint.h"
-#include "CbmMvdSensorTask.h"
-
-#include "FairTask.h"
-
-#include "TCanvas.h"
-#include "TH1.h"
-#include "TH1F.h"
-#include "TH2.h"
-#include "TH2F.h"
-#include "TMath.h"
-#include "TObjArray.h"
-#include "TRandom3.h"
-#include "TRefArray.h"
-#include "TStopwatch.h"
-#include "TString.h"
-
-#include <list>
-#include <map>
-#include <utility>
-#include <vector>
-
+#include "CbmMvdSensorTask.h"  // for CbmMvdSensorTask
+
+#include <FairTask.h>          // for InitStatus
+
+#include <Rtypes.h>            // for ClassDef
+#include <RtypesCore.h>        // for Double_t, Int_t, Float_t, Bool_t, kTRUE
+#include <TRandom3.h>          // for TRandom3
+#include <TStopwatch.h>        // for TStopwatch
+#include <TString.h>           // for TString
+
+#include <map>                 // for map
+#include <utility>             // for pair
+#include <vector>              // for vector
+
+class CbmMvdPileupManager;
+class CbmMvdPixelCharge;
+class CbmMvdPoint;
+class CbmMvdSensor;
+class CbmMvdSensorDataSheet;
+class TBuffer;
+class TClass;
 class TClonesArray;
-
+class TH1F;
+class TH2F;
+class TMemberInspector;
+class TObjArray;
+class TObject;
+class TRefArray;
 
 class CbmMvdSensorDigitizerTask : public CbmMvdSensorTask {
 
@@ -66,7 +61,6 @@ public:
 
   /** fill buffer **/
   void SetInputArray(TClonesArray* inputStream);
-  void SetInput(CbmMvdPoint* point);
   void SetInput(TObject*); //overwrite
 
   /** Execute **/