diff --git a/algo/ca/core/data/CaGrid.cxx b/algo/ca/core/data/CaGrid.cxx
index d9eeded1f558923637ea19c24c81b8bbddde441e..0cb070746ee6b5d958ad89cb5f02bb4c7821b52c 100644
--- a/algo/ca/core/data/CaGrid.cxx
+++ b/algo/ca/core/data/CaGrid.cxx
@@ -9,8 +9,7 @@
 #include "CaGrid.h"
 
 #include <algorithm>
-
-#include <string.h>
+#include <cstring>
 
 #include "CaHit.h"
 
diff --git a/algo/ca/core/tracking/CaCloneMerger.cxx b/algo/ca/core/tracking/CaCloneMerger.cxx
index 37074f5a88f31c1b7f048d297c2e0de509c5cf3d..ebcaad09f166912fc11383c185c8c51d289e9d36 100644
--- a/algo/ca/core/tracking/CaCloneMerger.cxx
+++ b/algo/ca/core/tracking/CaCloneMerger.cxx
@@ -140,7 +140,7 @@ void CloneMerger::Exec(Vector<Track>& extTracks, Vector<ca::HitIndex_t>& extReco
       fitB.Extrapolate(zMiddle, fld);
 
       fvec Chi2Tracks(0.);
-      FilterTracks(&(Tf.X()), &(Tf.C00()), &(Tb.X()), &(Tb.C00()), 0, 0, &Chi2Tracks);
+      FilterTracks(&(Tf.X()), &(Tf.C00()), &(Tb.X()), &(Tb.C00()), nullptr, nullptr, &Chi2Tracks);
       if (Chi2Tracks[0] > 50) continue;
 
       if (Chi2Tracks[0] < trackChi2[iTr] || Chi2Tracks[0] < trackChi2[jTr]) {
diff --git a/algo/ca/core/tracking/CaTrackFinderWindow.cxx b/algo/ca/core/tracking/CaTrackFinderWindow.cxx
index 0b14efccebbfba1419f29ecdd90b636a9331a14c..4b0c580ecce84268a9414e96feeba54f8573e9b6 100644
--- a/algo/ca/core/tracking/CaTrackFinderWindow.cxx
+++ b/algo/ca/core/tracking/CaTrackFinderWindow.cxx
@@ -22,13 +22,12 @@
 #include "CaTrackFinderWindow.h"
 
 #include <algorithm>
+#include <cstdio>
 #include <fstream>
 #include <iostream>
 #include <list>
 #include <map>
 
-#include <stdio.h>
-
 #include "CaBranch.h"
 #include "CaFramework.h"
 #include "CaGrid.h"
diff --git a/algo/ca/core/utils/CaDefines.h b/algo/ca/core/utils/CaDefines.h
index 04e58e80136a5cfc82cf8803709cc70ab9c9ffc4..abb188ba3ae2b0819983cf4b3ba4d1c52c06ab03 100644
--- a/algo/ca/core/utils/CaDefines.h
+++ b/algo/ca/core/utils/CaDefines.h
@@ -8,10 +8,9 @@
 
 #pragma once  // include this header only once per compilation unit
 
+#include <cassert>
 #include <iostream>
 
-#include <assert.h>
-
 // #define CBMCA_DEBUG_MODE
 
 #if defined(CBMCA_DEBUG_MODE)
diff --git a/core/qa/CbmQaIO.h b/core/qa/CbmQaIO.h
index ef89c77ea68f726fef5df4b34d3bfcce8d3684f5..55fb1f318911bb6cff554fa87d715246bdc33487 100644
--- a/core/qa/CbmQaIO.h
+++ b/core/qa/CbmQaIO.h
@@ -192,7 +192,7 @@ T* CbmQaIO::ConstructAndRegisterQaObject(TString sName, Args... args)
 
   // Take object ownership from ROOT
   if constexpr (std::is_base_of_v<TH1, T>) {  // all kind of histograms
-    pObj->SetDirectory(0);
+    pObj->SetDirectory(nullptr);
   }
 
   // apply user-defined properties
diff --git a/reco/KF/CbmKF.cxx b/reco/KF/CbmKF.cxx
index f0ed83263a13979d1a5131faa60c71c71f058c2b..d76b8d99ca2e773826c7d29562359a96fdbd5fb0 100644
--- a/reco/KF/CbmKF.cxx
+++ b/reco/KF/CbmKF.cxx
@@ -46,7 +46,7 @@ using std::vector;
 
 ClassImp(CbmKF)
 
-  CbmKF* CbmKF::fInstance = 0;
+  CbmKF* CbmKF::fInstance = nullptr;
 
 CbmKF::CbmKF(const char* name, Int_t iVerbose)
   : FairTask(name, iVerbose)
@@ -75,14 +75,14 @@ CbmKF::CbmKF(const char* name, Int_t iVerbose)
   , MuchStation2MCIDMap()
   ,
 
-  fMagneticField(0)
+  fMagneticField(nullptr)
   , fMethod(1)
   , fMaterialID2IndexMap()
 {
   if (!fInstance) fInstance = this;
 }
 
-CbmKF::~CbmKF() { fInstance = 0; }
+CbmKF::~CbmKF() { fInstance = nullptr; }
 
 void CbmKF::SetParContainers()
 {
@@ -103,7 +103,7 @@ InitStatus CbmKF::Init()
       << "\033[1;30mrun->AddTask(new CbmTrackingDetectorInterfaceInit());\033[0m";
   }
 
-  fMagneticField = 0;
+  fMagneticField = nullptr;
 
   vMvdMaterial.clear();
   vStsMaterial.clear();
@@ -466,7 +466,7 @@ Int_t CbmKF::ReadTube(CbmKFTube& tube, FairGeoNode* node)
 CbmKFMaterial* CbmKF::ReadPassive(FairGeoNode* node)
 {
 
-  if (!node) return 0;
+  if (!node) return nullptr;
 
   TString name  = node->getName();
   TString Sname = node->getShapePointer()->GetName();
@@ -497,7 +497,7 @@ CbmKFMaterial* CbmKF::ReadPassive(FairGeoNode* node)
   Double_t y0 = centerV.Y();
   Double_t z0 = centerV.Z();
 
-  CbmKFMaterial* ret = 0;
+  CbmKFMaterial* ret = nullptr;
 
   if (Sname == "TUBS" || Sname == "TUBE") {
     CbmKFTube tube(ID, x0, y0, z0, 2. * P->At(2), P->At(0), P->At(1), RadLength);
diff --git a/reco/KF/CbmKFFieldMath.cxx b/reco/KF/CbmKFFieldMath.cxx
index 884923b8006e61f67d2c73cfee4aa8fe7aac51fd..bee9d3062872230a1ca5e1b378e3da4b0ca76024 100644
--- a/reco/KF/CbmKFFieldMath.cxx
+++ b/reco/KF/CbmKFFieldMath.cxx
@@ -8,7 +8,7 @@
 
 #include "FairField.h"
 
-#include "math.h"
+#include <cmath>
 
 //using std::sqrt;
 //using std::finite;
@@ -951,10 +951,10 @@ Int_t CbmKFFieldMath::ExtrapolateALight(const Double_t T_in[],  // input track p
   {
     bool ok = 1;
     for (int i = 0; i < 6; i++)
-      ok = ok && isfinite(T_in[i]) && (T_in[i] < 1.e5);
+      ok = ok && std::isfinite(T_in[i]) && (T_in[i] < 1.e5);
     if (C_in)
       for (int i = 0; i < 15; i++)
-        ok = ok && isfinite(C_in[i]);
+        ok = ok && std::isfinite(C_in[i]);
     if (!ok) {
       for (int i = 0; i < 6; i++)
         T_out[i] = 0;
diff --git a/reco/KF/CbmKFMaterial.cxx b/reco/KF/CbmKFMaterial.cxx
index b6cfffe404d60d6b9da3cc49c65f3194ebbab046..8328ca7d4cd63fc8a100d877cf3d06bd9ee16706 100644
--- a/reco/KF/CbmKFMaterial.cxx
+++ b/reco/KF/CbmKFMaterial.cxx
@@ -124,7 +124,7 @@ Int_t CbmKFCone::Pass(Double_t ZCross, Double_t /*ZThick*/, CbmKFTrackInterface&
   Double_t T_tmp[6];
   for (Int_t j = 0; j < 6; j++)
     T_tmp[j] = T[j];
-  err = err || KF->Propagate(T_tmp, 0, ZReference, QP0);
+  err = err || KF->Propagate(T_tmp, nullptr, ZReference, QP0);
   if (err) return err;
   Double_t cz1, ct1, cz2, ct2;
   {
diff --git a/reco/KF/CbmKFMath.h b/reco/KF/CbmKFMath.h
index be68cc2b7daff312a04d9c5a11ca48b851c3f24a..54e0b0ab9454946f2e51a730a828d9e97411d4ff 100644
--- a/reco/KF/CbmKFMath.h
+++ b/reco/KF/CbmKFMath.h
@@ -39,7 +39,7 @@ public:
   static void four_dim_inv(Double_t a[4][4]);
   static void five_dim_inv(Double_t a[5][5]);
   static Bool_t invS(Double_t A[], Int_t N);
-  static Double_t getDeviation(Double_t x, Double_t y, Double_t C[], Double_t vx, Double_t vy, Double_t Cv[] = 0);
+  static Double_t getDeviation(Double_t x, Double_t y, Double_t C[], Double_t vx, Double_t vy, Double_t Cv[] = nullptr);
   static Double_t AnalyticQP(const Double_t T[],       // track parameters (x,y,tx,ty,Q/p,z)
                              const Double_t V[],       // vertex parameters (x,y,z)
                              FairField* MagneticField  // magnetic field
diff --git a/reco/KF/CbmKFParticleFinder.cxx b/reco/KF/CbmKFParticleFinder.cxx
index 5430ff0b64fc3f90cc208926a617f37a158111b0..4343961162a72def9c7ae1ac3e8b8a06e2366773 100644
--- a/reco/KF/CbmKFParticleFinder.cxx
+++ b/reco/KF/CbmKFParticleFinder.cxx
@@ -41,11 +41,11 @@ using std::vector;
 CbmKFParticleFinder::CbmKFParticleFinder(const char* name, Int_t iVerbose)
   : FairTask(name, iVerbose)
   , fStsTrackBranchName("StsTrack")
-  , fTrackArray(0)
-  , fEvents(0)
-  , fTopoReconstructor(0)
+  , fTrackArray(nullptr)
+  , fEvents(nullptr)
+  , fTopoReconstructor(nullptr)
   , fPVFindMode(2)
-  , fPID(0)
+  , fPID(nullptr)
   , fSuperEventAnalysis(0)
   , fSETracks(0)
   , fSEField(0)
@@ -70,7 +70,7 @@ InitStatus CbmKFParticleFinder::Init()
   //Get ROOT Manager
   FairRootManager* ioman = FairRootManager::Instance();
 
-  if (ioman == 0) {
+  if (ioman == nullptr) {
     Error("CbmKFParticleFinder::Init", "RootManager not instantiated!");
     return kERROR;
   }
@@ -87,12 +87,13 @@ InitStatus CbmKFParticleFinder::Init()
   // Get reconstructed events
   if (fTimeSliceMode) {
     fEvents = (TClonesArray*) ioman->GetObject("CbmEvent");
-    if (fEvents == 0) Fatal("CbmKFParticleFinder::Init", "No events available. Running in the event-by-event mode.");
+    if (fEvents == nullptr)
+      Fatal("CbmKFParticleFinder::Init", "No events available. Running in the event-by-event mode.");
   }
 
   // Get input collection
   fTrackArray = (TClonesArray*) ioman->GetObject(fStsTrackBranchName);
-  if (fTrackArray == 0) {
+  if (fTrackArray == nullptr) {
     Error("CbmKFParticleFinder::Init", "track-array not found!");
     return kERROR;
   }
@@ -101,24 +102,24 @@ InitStatus CbmKFParticleFinder::Init()
   if (fPVFindMode == 0) {
     if (fTimeSliceMode) {
       CbmMCDataManager* mcManager = (CbmMCDataManager*) ioman->GetObject("MCDataManager");
-      if (mcManager == 0) Error("CbmKFParticleFinder::Init", "MC Data Manager not found!");
+      if (mcManager == nullptr) Error("CbmKFParticleFinder::Init", "MC Data Manager not found!");
 
       fMCTrackArray = mcManager->InitBranch("MCTrack");
 
-      if (fMCTrackArray == 0) {
+      if (fMCTrackArray == nullptr) {
         Error("CbmKFParticleFinder::Init", "MC track array not found!");
         return kERROR;
       }
 
       fEventList = (CbmMCEventList*) ioman->GetObject("MCEventList.");
-      if (fEventList == 0) {
+      if (fEventList == nullptr) {
         Error("CbmKFParticleFinder::Init", "MC Event List not found!");
         return kERROR;
       }
     }
     else {
       fMCTrackArrayEvent = (TClonesArray*) ioman->GetObject("MCTrack");
-      if (fMCTrackArrayEvent == 0) {
+      if (fMCTrackArrayEvent == nullptr) {
         Error("CbmKFParticleFinder::Init", "MC track array not found!");
         return kERROR;
       }
@@ -145,7 +146,7 @@ void CbmKFParticleFinder::Exec(Option_t* /*opt*/)
   eventTopoReconstructor.resize(nEvents);
 
   for (int iEvent = 0; iEvent < nEvents; iEvent++) {
-    CbmEvent* event = 0;
+    CbmEvent* event = nullptr;
     if (fTimeSliceMode) event = (CbmEvent*) fEvents->At(iEvent);
     eventTopoReconstructor[iEvent].SetTarget(fTopoReconstructor->GetTargetPosition());
     eventTopoReconstructor[iEvent].SetChi2PrimaryCut(InversedChi2Prob(0.0001, 2));
diff --git a/reco/KF/CbmKFParticleFinderPID.cxx b/reco/KF/CbmKFParticleFinderPID.cxx
index d312da202786560d163f943845d39f1b5e9f79b8..4bab8f7c2effd729668a464fba7d567a9ef0c865 100644
--- a/reco/KF/CbmKFParticleFinderPID.cxx
+++ b/reco/KF/CbmKFParticleFinderPID.cxx
@@ -60,19 +60,19 @@ CbmKFParticleFinderPID::CbmKFParticleFinderPID(const char* name, Int_t iVerbose)
   , fTrdHitBranchName("TrdHit")
   , fRichBranchName("RichRing")
   , fMuchTrackBranchName("MuchTrack")
-  , fTrackArray(0)
-  , fGlobalTrackArray(0)
-  , fStsHitArray(0)
-  , fStsClusterArray(0)
+  , fTrackArray(nullptr)
+  , fGlobalTrackArray(nullptr)
+  , fStsHitArray(nullptr)
+  , fStsClusterArray(nullptr)
   , fDigiManager(nullptr)
-  , fTofHitArray(0)
-  , fMCTrackArray(0)
-  , fTrackMatchArray(0)
-  , fTrdTrackArray(0)
-  , fTrdHitArray(0)
-  , fRichRingArray(0)
-  , fMuchTrackArray(0)
-  , fMCTracks(0)
+  , fTofHitArray(nullptr)
+  , fMCTrackArray(nullptr)
+  , fTrackMatchArray(nullptr)
+  , fTrdTrackArray(nullptr)
+  , fTrdHitArray(nullptr)
+  , fRichRingArray(nullptr)
+  , fMuchTrackArray(nullptr)
+  , fMCTracks(nullptr)
   , fPIDMode(0)
   , fTrdPIDMode(0)
   , fRichPIDMode(0)
@@ -98,7 +98,7 @@ InitStatus CbmKFParticleFinderPID::Init()
   //Get ROOT Manager
   FairRootManager* ioman = FairRootManager::Instance();
 
-  if (ioman == 0) {
+  if (ioman == nullptr) {
     Error("CbmKFParticleFinderPID::Init", "RootManager not instantiated!");
     return kERROR;
   }
@@ -115,28 +115,28 @@ InitStatus CbmKFParticleFinderPID::Init()
 
   if (fPIDMode == 1) {
     FairRootManager* fManger = FairRootManager::Instance();
-    if (fManger == 0) {
+    if (fManger == nullptr) {
       Fatal("CbmKFParticleFinder::Init", "fManger is not found!");
       return kERROR;
     }
 
-    CbmMCDataManager* mcManager = 0;
+    CbmMCDataManager* mcManager = nullptr;
 
     if (!fLegacyEventMode) {
       mcManager = (CbmMCDataManager*) fManger->GetObject("MCDataManager");
-      if (mcManager == 0) {
+      if (mcManager == nullptr) {
         Fatal("CbmKFParticleFinderPID::Init", "MC Data Manager is not found!");
         return kERROR;
       }
       fMCTracks = mcManager->InitBranch("MCTrack");
-      if (fMCTracks == 0) {
+      if (fMCTracks == nullptr) {
         Fatal("CbmKFParticleFinderPID::Init", "MC track array not found!");
         return kERROR;
       }
     }
     else {
       fMCTrackArray = (TClonesArray*) ioman->GetObject("MCTrack");
-      if (fMCTrackArray == 0) {
+      if (fMCTrackArray == nullptr) {
         Fatal("CbmKFParticleFinderPID::Init", "MC track array not found!");
         return kERROR;
       }
@@ -152,7 +152,7 @@ InitStatus CbmKFParticleFinderPID::Init()
 
   // Get sts tracks
   fTrackArray = (TClonesArray*) ioman->GetObject(fStsTrackBranchName);
-  if (fTrackArray == 0) {
+  if (fTrackArray == nullptr) {
     Error("CbmKFParticleFinderPID::Init", "track-array not found!");
     return kERROR;
   }
@@ -169,21 +169,21 @@ InitStatus CbmKFParticleFinderPID::Init()
 
     // Get global tracks
     fGlobalTrackArray = (TClonesArray*) ioman->GetObject(fGlobalTrackBranchName);
-    if (fGlobalTrackArray == 0) {
+    if (fGlobalTrackArray == nullptr) {
       Error("CbmKFParticleFinderPID::Init", "global track array not found!");
       return kERROR;
     }
 
     // Get STS hit
     fStsHitArray = (TClonesArray*) ioman->GetObject(fStsHitBranchName);
-    if (fStsHitArray == 0) {
+    if (fStsHitArray == nullptr) {
       Error("CbmKFParticleFinderPID::Init", "STS hit array not found!");
       return kERROR;
     }
 
     // Get sts clusters
     fStsClusterArray = (TClonesArray*) ioman->GetObject(fStsClusterBranchName);
-    if (fStsClusterArray == 0) {
+    if (fStsClusterArray == nullptr) {
       Error("CbmKFParticleFinderPID::Init", "STS cluster array not found!");
       return kERROR;
     }
@@ -198,25 +198,25 @@ InitStatus CbmKFParticleFinderPID::Init()
 
     // Get ToF hits
     fTofHitArray = (TClonesArray*) ioman->GetObject(fTofBranchName);
-    if (fTofHitArray == 0) {
+    if (fTofHitArray == nullptr) {
       Error("CbmKFParticleFinderPID::Init", "TOF track-array not found!");
       //return kERROR;
     }
 
     if (fTrdPIDMode > 0) {
       fTrdTrackArray = (TClonesArray*) ioman->GetObject(fTrdBranchName);
-      if (fTrdTrackArray == 0) {
+      if (fTrdTrackArray == nullptr) {
         Error("CbmKFParticleFinderPID::Init", "TRD track-array not found!");
         //return kERROR;
       }
     }
 
     fTrdHitArray = (TClonesArray*) ioman->GetObject(fTrdHitBranchName);
-    if (fTrdHitArray == 0) { Error("CbmKFParticleFinderPID::Init", "TRD hit array not found!"); }
+    if (fTrdHitArray == nullptr) { Error("CbmKFParticleFinderPID::Init", "TRD hit array not found!"); }
 
     if (fRichPIDMode > 0) {
       fRichRingArray = (TClonesArray*) ioman->GetObject(fRichBranchName);
-      if (fRichRingArray == 0) {
+      if (fRichRingArray == nullptr) {
         Error("CbmKFParticleFinderPID::Init", "Rich ring array not found!");
         //return kERROR;
       }
@@ -224,7 +224,7 @@ InitStatus CbmKFParticleFinderPID::Init()
 
     if (fMuchMode > 0) {
       fMuchTrackArray = (TClonesArray*) ioman->GetObject(fMuchTrackBranchName);
-      if (fMuchTrackArray == 0) {
+      if (fMuchTrackArray == nullptr) {
         Error("CbmKFParticleFinderPID::Init", "Much track-array not found!");
         return kERROR;
       }
@@ -287,7 +287,7 @@ void CbmKFParticleFinderPID::SetMCPID()
 
     //     LOG(info) <<mcTrackId<<" mcTrackId "<<fMCTrackArray->GetEntriesFast();
 
-    CbmMCTrack* cbmMCTrack = 0;
+    CbmMCTrack* cbmMCTrack = nullptr;
 
     if (!fLegacyEventMode) { cbmMCTrack = dynamic_cast<CbmMCTrack*>(fMCTracks->Get(iFile, iEvent, mcTrackId)); }
     else {
diff --git a/reco/KF/CbmKFParticleFinderQa.cxx b/reco/KF/CbmKFParticleFinderQa.cxx
index 851c894d3e3e34f623b170f62a25b53e768cc498..e09d7dd2f70457bb0ec7017d4bf820892e637029 100644
--- a/reco/KF/CbmKFParticleFinderQa.cxx
+++ b/reco/KF/CbmKFParticleFinderQa.cxx
@@ -82,7 +82,7 @@ InitStatus CbmKFParticleFinderQa::Init()
   //Get ROOT Manager
   FairRootManager* ioman = FairRootManager::Instance();
 
-  if (ioman == 0) {
+  if (ioman == nullptr) {
     Error("CbmKFParticleFinderQa::Init", "RootManager not instantiated!");
     return kERROR;
   }
@@ -95,17 +95,17 @@ InitStatus CbmKFParticleFinderQa::Init()
   if (!fLegacyEventMode) {
     FairRootManager* fManger    = FairRootManager::Instance();
     CbmMCDataManager* mcManager = (CbmMCDataManager*) fManger->GetObject("MCDataManager");
-    if (mcManager == 0) Error("CbmKFParticleFinderQa::Init", "MC Data Manager not found!");
+    if (mcManager == nullptr) Error("CbmKFParticleFinderQa::Init", "MC Data Manager not found!");
 
     fMCTrackArray = mcManager->InitBranch("MCTrack");
 
-    if (fMCTrackArray == 0) {
+    if (fMCTrackArray == nullptr) {
       Error("CbmKFParticleFinderQa::Init", "mc track array not found!");
       return kERROR;
     }
 
     fMcEventList = (CbmMCEventList*) ioman->GetObject("MCEventList.");
-    if (fMcEventList == 0) {
+    if (fMcEventList == nullptr) {
       Error("CbmKFParticleFinderQa::Init", "MC Event List not found!");
       return kERROR;
     }
@@ -119,7 +119,7 @@ InitStatus CbmKFParticleFinderQa::Init()
 
   // Track match
   fTrackMatchArray = (TClonesArray*) ioman->GetObject("StsTrackMatch");
-  if (fTrackMatchArray == 0) {
+  if (fTrackMatchArray == nullptr) {
     Error("CbmKFParticleFinderQa::Init", "track match array not found!");
     return kERROR;
   }
diff --git a/reco/KF/CbmKFParticleFinderQa.h b/reco/KF/CbmKFParticleFinderQa.h
index 10cd4e95023cd6aeab8e6a05be3e0685e53de108..cd95997356f74af21dce99860dbc7cd0b853ceaa 100644
--- a/reco/KF/CbmKFParticleFinderQa.h
+++ b/reco/KF/CbmKFParticleFinderQa.h
@@ -26,7 +26,8 @@ class CbmKFParticleFinderQa : public FairTask {
 public:
   // Constructors/Destructors ---------
   CbmKFParticleFinderQa(const char* name = "CbmKFParticleFinderQa", Int_t iVerbose = 0,
-                        const KFParticleTopoReconstructor* tr = 0, TString outFileName = "CbmKFParticleFinderQa.root");
+                        const KFParticleTopoReconstructor* tr = nullptr,
+                        TString outFileName                   = "CbmKFParticleFinderQa.root");
   ~CbmKFParticleFinderQa();
 
   void SetEffFileName(const TString& name) { fEfffileName = name; }
diff --git a/reco/KF/CbmKFSecondaryVertexFinder.cxx b/reco/KF/CbmKFSecondaryVertexFinder.cxx
index 4c3a3a6de06669697c1305227af8ecad2b3f75db..ec26432d9c04a70dbcc72efec364451388e8f505 100644
--- a/reco/KF/CbmKFSecondaryVertexFinder.cxx
+++ b/reco/KF/CbmKFSecondaryVertexFinder.cxx
@@ -25,8 +25,8 @@ ClassImp(CbmKFSecondaryVertexFinder)
   void CbmKFSecondaryVertexFinder::Clear(Option_t* /*opt*/)
 {
   vTracks.clear();
-  VGuess         = 0;
-  VParent        = 0;
+  VGuess         = nullptr;
+  VParent        = nullptr;
   MassConstraint = -1;
 }
 
diff --git a/reco/KF/CbmKFSecondaryVertexFinder.h b/reco/KF/CbmKFSecondaryVertexFinder.h
index 693994e188b944a01d4940f65daf9d38ce62f802..e1c976b32954231ef4667d97b7764d9e27951b1e 100644
--- a/reco/KF/CbmKFSecondaryVertexFinder.h
+++ b/reco/KF/CbmKFSecondaryVertexFinder.h
@@ -32,16 +32,19 @@ class CbmKFSecondaryVertexFinder : public TObject {
   Double_t& Cij(Int_t i, Int_t j) { return C[(j <= i) ? i * (i + 1) / 2 + j : j * (j + 1) / 2 + i]; }
 
 public:
-  CbmKFSecondaryVertexFinder() : vTracks(), NDF(0), Chi2(0), MassConstraint(0), VParent(0), VGuess(0) { Clear(); };
+  CbmKFSecondaryVertexFinder() : vTracks(), NDF(0), Chi2(0), MassConstraint(0), VParent(nullptr), VGuess(nullptr)
+  {
+    Clear();
+  };
   ~CbmKFSecondaryVertexFinder() {};
 
   virtual void Clear(Option_t* opt = "");
   void ClearTracks();
   void AddTrack(CbmKFTrackInterface* Track);
   void SetTracks(std::vector<CbmKFTrackInterface*>& vTracks);
-  void SetApproximation(CbmKFVertexInterface* Guess = 0);
+  void SetApproximation(CbmKFVertexInterface* Guess = nullptr);
   void SetMassConstraint(Double_t MotherMass = -1);
-  void SetTopoConstraint(CbmKFVertexInterface* Parent = 0);
+  void SetTopoConstraint(CbmKFVertexInterface* Parent = nullptr);
   void Fit();
   void GetVertex(CbmKFVertexInterface& vtx);
   void GetVertex(CbmVertex& vtx);
diff --git a/reco/KF/CbmKFTrackInterface.h b/reco/KF/CbmKFTrackInterface.h
index 2e5c4956d22af2175bfffc6aff990f562af59889..c7e28cadb2dd2edee0e2d8d88b85b4e834068810 100644
--- a/reco/KF/CbmKFTrackInterface.h
+++ b/reco/KF/CbmKFTrackInterface.h
@@ -54,11 +54,11 @@ public:
    */
 
   virtual Int_t GetNOfHits() { return 0; }       /// Number of hits
-  virtual CbmKFHit* GetHit(Int_t) { return 0; }  /// Access to i-th hit
+  virtual CbmKFHit* GetHit(Int_t) { return nullptr; }  /// Access to i-th hit
 
   /** Methods
    */
-  Int_t Extrapolate(Double_t z, Double_t* QP0 = 0);
+  Int_t Extrapolate(Double_t z, Double_t* QP0 = nullptr);
   Int_t Fit(Bool_t downstream = 1);
   void Smooth(Double_t Z);
   void Fit2Vertex(CbmKFVertexInterface& vtx);
diff --git a/reco/KF/Interface/CbmGlobalTrackFitterKF.cxx b/reco/KF/Interface/CbmGlobalTrackFitterKF.cxx
index 59f78260626e2d9ae328743d3385b94d37a8128e..0c17ea7c0677af57fe58e9c04be4167a0d9ffbdf 100644
--- a/reco/KF/Interface/CbmGlobalTrackFitterKF.cxx
+++ b/reco/KF/Interface/CbmGlobalTrackFitterKF.cxx
@@ -41,13 +41,13 @@ using std::vector;
 
 // ------------------------------------------------------------------
 CbmGlobalTrackFitterKF::CbmGlobalTrackFitterKF()
-  : fArrayStsHit(NULL)
-  , fArrayTrdHit(NULL)
-  , fArrayTofHit(NULL)
-  , fArrayStsTrack(NULL)
-  , fArrayTrdTrack(NULL)
-  , fPrimVertex(NULL)
-  , fKfTrack(NULL)
+  : fArrayStsHit(nullptr)
+  , fArrayTrdHit(nullptr)
+  , fArrayTofHit(nullptr)
+  , fArrayStsTrack(nullptr)
+  , fArrayTrdTrack(nullptr)
+  , fPrimVertex(nullptr)
+  , fKfTrack(nullptr)
 {
   // Default constructor
 
@@ -75,35 +75,35 @@ void CbmGlobalTrackFitterKF::Init()
 
   // Get pointer to the ROOT I/O manager
   FairRootManager* rootMgr = FairRootManager::Instance();
-  if (NULL == rootMgr) {
+  if (nullptr == rootMgr) {
     cout << "-E- CbmGlobalTrackFitterKF::Init :"
          << " ROOT manager is not instantiated" << endl;
     return;
   }
   // Get hit arrays
   fArrayStsHit = (TClonesArray*) rootMgr->GetObject("StsHit");
-  if (NULL == fArrayStsHit) {
+  if (nullptr == fArrayStsHit) {
     cout << "-W- CbmGlobalTrackFitterKF::Init :"
          << " no Sts hit array" << endl;
   }
   fArrayTrdHit = (TClonesArray*) rootMgr->GetObject("TrdHit");
-  if (NULL == fArrayTrdHit) {
+  if (nullptr == fArrayTrdHit) {
     cout << "-W- CbmGlobalTrackFitterKF::Init :"
          << " no TRD hit array" << endl;
   }
   fArrayTofHit = (TClonesArray*) rootMgr->GetObject("TofHit");
-  if (NULL == fArrayTofHit) {
+  if (nullptr == fArrayTofHit) {
     cout << "-W- CbmGlobalTrackFitterKF::Init :"
          << " no TOF hit array" << endl;
   }
   // Get track arrays
   fArrayStsTrack = (TClonesArray*) rootMgr->GetObject("StsTrack");
-  if (NULL == fArrayStsTrack) {
+  if (nullptr == fArrayStsTrack) {
     cout << "-W- CbmGlobalTrackFitterKF::Init : "
          << "no STS track array!" << endl;
   }
   fArrayTrdTrack = (TClonesArray*) rootMgr->GetObject("TrdTrack");
-  if (NULL == fArrayTrdTrack) {
+  if (nullptr == fArrayTrdTrack) {
     cout << "-W- CbmGlobalTrackFitterKF::Init : "
          << "no TRD track array!" << endl;
   }
@@ -125,8 +125,8 @@ void CbmGlobalTrackFitterKF::Init()
 void CbmGlobalTrackFitterKF::DoFit(CbmGlobalTrack* glbTrack)
 {
   // Implementation of the fitting algorithm
-  if (NULL == glbTrack || NULL == fArrayStsTrack || NULL == fArrayTrdTrack || NULL == fArrayStsHit
-      || NULL == fArrayTrdHit || NULL == fPrimVertex)
+  if (nullptr == glbTrack || nullptr == fArrayStsTrack || nullptr == fArrayTrdTrack || nullptr == fArrayStsHit
+      || nullptr == fArrayTrdHit || nullptr == fPrimVertex)
     return;
 
 
@@ -145,7 +145,7 @@ void CbmGlobalTrackFitterKF::DoFit(CbmGlobalTrack* glbTrack)
   if (-1 == stsTrackIndex) { return; }
   // Get STS track
   CbmStsTrack* stsTrack = (CbmStsTrack*) fArrayStsTrack->At(stsTrackIndex);
-  if (NULL == stsTrack) { return; }
+  if (nullptr == stsTrack) { return; }
   const FairTrackParam* paramFirst;
   paramFirst = stsTrack->GetParamFirst();
   fKfTrack->SetTrackParam(*paramFirst);
@@ -182,7 +182,7 @@ void CbmGlobalTrackFitterKF::DoFit(CbmGlobalTrack* glbTrack)
   if (-1 == trdTrackIndex) { return; }
   // Get TRD track
   CbmTrdTrack* trdTrack = (CbmTrdTrack*) fArrayTrdTrack->At(trdTrackIndex);
-  if (NULL == trdTrack) { return; }
+  if (nullptr == trdTrack) { return; }
   if (trdTrack->GetNofHits() < 2) { return; }
   Int_t trdHitIndex = trdTrack->GetHitIndex(0);
   CbmTrdHit* trdHit = (CbmTrdHit*) fArrayTrdHit->At(trdHitIndex);
diff --git a/reco/KF/Interface/CbmKFStsHit.h b/reco/KF/Interface/CbmKFStsHit.h
index a5d4dc7c0873ef315682317a7a78bc0bcb5854d7..a8fdf8aa2b94d946a2a93dd96cbeee83e99bfe14 100644
--- a/reco/KF/Interface/CbmKFStsHit.h
+++ b/reco/KF/Interface/CbmKFStsHit.h
@@ -15,7 +15,7 @@ class CbmMvdHit;
 class CbmKFStsHit : public CbmKFHit {
 
 public:
-  CbmKFStsHit() : FitPoint(), tube(0) {};
+  CbmKFStsHit() : FitPoint(), tube(nullptr) {};
   ~CbmKFStsHit() {};
 
   CbmKFPixelMeasurement FitPoint;
diff --git a/reco/KF/Interface/CbmKFTofHit.cxx b/reco/KF/Interface/CbmKFTofHit.cxx
index b7d06519e0a01d76944518486cdc13d05d61be72..555e095f6d9807a490bdb3ad6384acdc1924d1df 100644
--- a/reco/KF/Interface/CbmKFTofHit.cxx
+++ b/reco/KF/Interface/CbmKFTofHit.cxx
@@ -27,7 +27,7 @@ void CbmKFTofHit::Create(CbmTofHit* hit)
 {
   // Get pointer to the Kalman filter
   CbmKF* KF = CbmKF::Instance();
-  if (NULL == KF) {
+  if (nullptr == KF) {
     cout << "-E- CbmKFTofHit::Create : "
          << "Kalman filter is not instantiated." << endl;
     return;
@@ -35,7 +35,7 @@ void CbmKFTofHit::Create(CbmTofHit* hit)
   // Get index of material
   MaterialIndex = KF->GetMaterialIndex(hit->GetPlaneId());
   // Store pointer to the material
-  wall = (MaterialIndex >= 0) ? (CbmKFWall*) KF->vMaterial[MaterialIndex] : 0;
+  wall = (MaterialIndex >= 0) ? (CbmKFWall*) KF->vMaterial[MaterialIndex] : nullptr;
 
   // Get position and position error
   TVector3 pos, err;
diff --git a/reco/KF/Interface/CbmKFTofHit.h b/reco/KF/Interface/CbmKFTofHit.h
index 073505b012d3c8c44316681b15510b3fdf43fce6..8f8a1a20a5c670ee292422efd6415ffb40358937 100644
--- a/reco/KF/Interface/CbmKFTofHit.h
+++ b/reco/KF/Interface/CbmKFTofHit.h
@@ -27,7 +27,7 @@ class CbmKFTofHit : public CbmKFHit {
 
 public:
   /** Default constructor **/
-  CbmKFTofHit() : FitPoint(), wall(0) {};
+  CbmKFTofHit() : FitPoint(), wall(nullptr) {};
 
   /** Destructor **/
   ~CbmKFTofHit() {};
diff --git a/reco/KF/Interface/CbmKFTrdHit.cxx b/reco/KF/Interface/CbmKFTrdHit.cxx
index 79ac92e0be7653c883df18d1b639ef2467792ae4..cbda9dff9329809945f91f682e28870605cc669c 100644
--- a/reco/KF/Interface/CbmKFTrdHit.cxx
+++ b/reco/KF/Interface/CbmKFTrdHit.cxx
@@ -27,7 +27,7 @@ void CbmKFTrdHit::Create(CbmTrdHit* hit)
 {
   // Get pointer to the Kalman filter
   CbmKF* KF = CbmKF::Instance();
-  if (NULL == KF) {
+  if (nullptr == KF) {
     cout << "-E- CbmKFTrdHit::Create : "
          << "Kalman filter is not instantiated." << endl;
     return;
@@ -35,7 +35,7 @@ void CbmKFTrdHit::Create(CbmTrdHit* hit)
   // Get index of material
   MaterialIndex = KF->GetMaterialIndex(hit->GetPlaneId());
   // Store pointer to the material
-  wall = (MaterialIndex >= 0) ? (CbmKFWall*) KF->vMaterial[MaterialIndex] : 0;
+  wall = (MaterialIndex >= 0) ? (CbmKFWall*) KF->vMaterial[MaterialIndex] : nullptr;
 
   // Get position and position error
   TVector3 pos, err;
diff --git a/reco/KF/Interface/CbmKFTrdHit.h b/reco/KF/Interface/CbmKFTrdHit.h
index 99815e90fafc825f399a847c1c23ba80a9af24a4..f3a6b4b3d4bfa2fd7ebb4ecea99445056cfc7aad 100644
--- a/reco/KF/Interface/CbmKFTrdHit.h
+++ b/reco/KF/Interface/CbmKFTrdHit.h
@@ -27,7 +27,7 @@ class CbmKFTrdHit : public CbmKFHit {
 
 public:
   /** Default constructor **/
-  CbmKFTrdHit() : FitPoint(), wall(0) {};
+  CbmKFTrdHit() : FitPoint(), wall(nullptr) {};
 
   /** Destructor **/
   ~CbmKFTrdHit() {};
diff --git a/reco/KF/Interface/CbmPVFinderKF.cxx b/reco/KF/Interface/CbmPVFinderKF.cxx
index f98d4ecdacbc1d3a3c5f5186076dfa4c56d6fb6a..2bd7d649142df60dea65c92ed5d61b3023a8101c 100644
--- a/reco/KF/Interface/CbmPVFinderKF.cxx
+++ b/reco/KF/Interface/CbmPVFinderKF.cxx
@@ -12,7 +12,7 @@
 
 #include "TClonesArray.h"
 
-#include "math.h"
+#include <cmath>
 
 ClassImp(CbmPVFinderKF)
 
diff --git a/reco/KF/Interface/CbmStsFitPerformanceTask.cxx b/reco/KF/Interface/CbmStsFitPerformanceTask.cxx
index 9206a881abdc0d149864e6c8cf1aaa8d4af1e256..1df22de59505c08461e565120b6c8c3c9d227a22 100644
--- a/reco/KF/Interface/CbmStsFitPerformanceTask.cxx
+++ b/reco/KF/Interface/CbmStsFitPerformanceTask.cxx
@@ -156,44 +156,44 @@ CbmStsFitPerformanceTask::CbmStsFitPerformanceTask(const char* name, Int_t iVerb
   , fTrackAnalysis(1)
   ,
 
-  fMCTrackArray(0)
+  fMCTrackArray(nullptr)
   ,  ///< MCTracks
-  fStsPointArray(0)
+  fStsPointArray(nullptr)
   ,  ///< StsPoints
-  fMvdPointArray(0)
+  fMvdPointArray(nullptr)
   ,  ///< StsPoints
-  fRecStsTrackArray(0)
+  fRecStsTrackArray(nullptr)
   ,  ///< Reconstructed StsTracks
-  fStsHitArray(0)
+  fStsHitArray(nullptr)
   ,  ///< Sts hits
-  fMvdHitArray(0)
+  fMvdHitArray(nullptr)
   ,  ///< Sts hits
-  fPrimaryVertex(0)
+  fPrimaryVertex(nullptr)
   ,  ///< Primary vertex
-  fSTSTrackMatch(0)
+  fSTSTrackMatch(nullptr)
   ,  ///< Related MC tracks
 
-  fhChi2(0)
+  fhChi2(nullptr)
   ,  // x=chi2(), y=entries for all
-  fhProb(0)
+  fhProb(nullptr)
   ,  // x=Prob function(), y=entries for all
-  fhDP(0)
-  , fhDP2(0)
-  , fhDsP(0)
-  , fhDsP2(0)
+  fhDP(nullptr)
+  , fhDP2(nullptr)
+  , fhDsP(nullptr)
+  , fhDsP2(nullptr)
   ,
 
-  fhZMCf(0)
-  , fhZMCl(0)
+  fhZMCf(nullptr)
+  , fhZMCl(nullptr)
   ,  // z first/last of MC track
-  fhZRecof(0)
-  , fhZRecol(0)
+  fhZRecof(nullptr)
+  , fhZRecol(nullptr)
   ,  // z first/last of Reco track
 
-  fhRes_vs_Mom_f(0)
-  , fhRes_vs_Mom_l(0)
+  fhRes_vs_Mom_f(nullptr)
+  , fhRes_vs_Mom_l(nullptr)
   ,  // resolution vs momentum
-  fhExtraTracks2ndMVD(0)
+  fhExtraTracks2ndMVD(nullptr)
   ,  // extra tracks not detected in the second mvd chamber
 
   // TH1D* fhFrst[10](),
@@ -210,10 +210,10 @@ CbmStsFitPerformanceTask::CbmStsFitPerformanceTask(const char* name, Int_t iVerb
 
   // fhHitDensity[10](),
   // fhTrackDensity[8](),
-  fhTrackDensity0L(0)
+  fhTrackDensity0L(nullptr)
   ,
 
-  histodir(0)
+  histodir(nullptr)
   , fFitter()
 {
 }
diff --git a/reco/KF/Interface/CbmStsKFSecondaryVertexFinder.h b/reco/KF/Interface/CbmStsKFSecondaryVertexFinder.h
index 4a0b279155162761b355f488b56776d0217a05cc..038285ac92235ebf38a8b05b6157b5468b087d6e 100644
--- a/reco/KF/Interface/CbmStsKFSecondaryVertexFinder.h
+++ b/reco/KF/Interface/CbmStsKFSecondaryVertexFinder.h
@@ -34,9 +34,9 @@ public:
 
   virtual void Clear(Option_t* opt = "");
   void AddTrack(CbmStsTrack* Track);
-  void SetApproximation(CbmVertex* Guess = 0);
+  void SetApproximation(CbmVertex* Guess = nullptr);
   void SetMassConstraint(Double_t MotherMass = -1);
-  void SetTopoConstraint(CbmVertex* Parent = 0);
+  void SetTopoConstraint(CbmVertex* Parent = nullptr);
   void Fit();
   void GetVertex(CbmVertex& vtx);
   //void GetFittedTrack( Int_t itrack, CbmStsTrack *Track );
diff --git a/reco/KF/Interface/CbmStsKFTrackFitter.cxx b/reco/KF/Interface/CbmStsKFTrackFitter.cxx
index b50a9bc484a05d583ed39348f96a3d7e374d3c34..18ae40134aecacb64a494219ff04b7f5873a3d64 100644
--- a/reco/KF/Interface/CbmStsKFTrackFitter.cxx
+++ b/reco/KF/Interface/CbmStsKFTrackFitter.cxx
@@ -20,7 +20,7 @@
 
 #include <iostream>
 
-#include "math.h"
+#include <cmath>
 
 using std::cout;
 using std::endl;
@@ -28,13 +28,15 @@ using std::endl;
 
 ClassImp(CbmStsKFTrackFitter);
 
-CbmStsKFTrackFitter::CbmStsKFTrackFitter() : fHits(), fMvdHitsArray(0), fStsHitsArray(0), fIsInitialised(0) {}
+CbmStsKFTrackFitter::CbmStsKFTrackFitter() : fHits(), fMvdHitsArray(nullptr), fStsHitsArray(nullptr), fIsInitialised(0)
+{
+}
 
 void CbmStsKFTrackFitter::Init()
 {
   // Initialisation
   FairRootManager* rootMgr = FairRootManager::Instance();
-  if (NULL == rootMgr) {
+  if (nullptr == rootMgr) {
     cout << "-E- CbmStsKFTrackFitter::Init(): "
          << "ROOT manager is not instantiated!" << endl;
     return;
diff --git a/reco/KF/Interface/CbmStsKFTrackFitter.h b/reco/KF/Interface/CbmStsKFTrackFitter.h
index 4b255fdafbd84fcf29e3c28947140d01dd5a5458..17e3522819083165da42f5a582da3410db089fef 100644
--- a/reco/KF/Interface/CbmStsKFTrackFitter.h
+++ b/reco/KF/Interface/CbmStsKFTrackFitter.h
@@ -53,7 +53,7 @@ public:
   /** Get normalized (in sigma's) impact parameter form vertex vtx
    *  if no vtx given, return deviation from primary vertex
    */
-  Double_t GetChiToVertex(CbmStsTrack* track, CbmVertex* vtx = 0);
+  Double_t GetChiToVertex(CbmStsTrack* track, CbmVertex* vtx = nullptr);
 
   /** Fit track to a vertex
    *
diff --git a/reco/KF/Interface/CbmTofTrackFitterKF.cxx b/reco/KF/Interface/CbmTofTrackFitterKF.cxx
index f82622ac9e56b57f3d0ceb0c41b4eb36d31105d2..83a280d4e8384520cf2d9ec3e139f196ea2f5aa1 100644
--- a/reco/KF/Interface/CbmTofTrackFitterKF.cxx
+++ b/reco/KF/Interface/CbmTofTrackFitterKF.cxx
@@ -33,7 +33,7 @@ using std::vector;
 //
 
 // -----------------------------------------------------------------------
-CbmTofTrackFitterKF::CbmTofTrackFitterKF() : fArrayTofHit(0), fVerbose(1), fPid(211), fKfTrack(0)
+CbmTofTrackFitterKF::CbmTofTrackFitterKF() : fArrayTofHit(nullptr), fVerbose(1), fPid(211), fKfTrack(nullptr)
 {
   fKfTrack = new CbmKFTrack();
 }
@@ -41,13 +41,13 @@ CbmTofTrackFitterKF::CbmTofTrackFitterKF() : fArrayTofHit(0), fVerbose(1), fPid(
 
 // -----------------------------------------------------------------------
 CbmTofTrackFitterKF::CbmTofTrackFitterKF(Int_t verbose, Int_t pid)
-  : fArrayTofHit(0)
+  : fArrayTofHit(nullptr)
   , fVerbose(verbose)
   , fPid(pid)
-  , fKfTrack(0)
+  , fKfTrack(nullptr)
 {
   // Standard constructor
-  fArrayTofHit = NULL;
+  fArrayTofHit = nullptr;
   fVerbose     = verbose;
   fPid         = pid;
   fKfTrack     = new CbmKFTrack();
@@ -71,7 +71,7 @@ void CbmTofTrackFitterKF::Init()
 
   // Get the pointer to FairRootManager
   FairRootManager* rootMgr = FairRootManager::Instance();
-  if (NULL == rootMgr) {
+  if (nullptr == rootMgr) {
     cout << "-E- CbmTofTrackFitterKF::Init : "
          << " ROOT manager is not instantiated!" << endl;
     return;
@@ -79,7 +79,7 @@ void CbmTofTrackFitterKF::Init()
 
   // Activate data branches
   fArrayTofHit = (TClonesArray*) rootMgr->GetObject("TofHit");
-  if (NULL == fArrayTofHit) {
+  if (nullptr == fArrayTofHit) {
     cout << "-E- CbmTofTrackFitterKF::Init : "
          << " no TOF hit array!" << endl;
     return;
@@ -94,15 +94,15 @@ Int_t CbmTofTrackFitterKF::DoFit(CbmTofTracklet* pTrack)
 {
   LOG(debug1) << "CbmTofTrackFitterKF::DoFit starting ";
   // Implementation of the fitting algorithm
-  if (NULL == fArrayTofHit) this->Init();
+  if (nullptr == fArrayTofHit) this->Init();
 
-  if (NULL == fArrayTofHit) {
+  if (nullptr == fArrayTofHit) {
     LOG(error) << "CbmTofTrackFitterKF::DoFit No fArrayTofHit ";
     return 1;
   }
   // Declare variables outside the loop
-  CbmTofHit* pHit     = NULL;
-  CbmKFTofHit* pKFHit = NULL;
+  CbmTofHit* pHit     = nullptr;
+  CbmKFTofHit* pKFHit = nullptr;
   Int_t hitIndex      = 0;
   Int_t materialIndex = 0;
 
@@ -112,7 +112,7 @@ Int_t CbmTofTrackFitterKF::DoFit(CbmTofTracklet* pTrack)
     hitIndex = pTrack->GetHitIndex(iHit);
     //Get the pointer to the CbmTofHit
     pHit = (CbmTofHit*) fArrayTofHit->At(hitIndex);
-    if (NULL == pHit) {
+    if (nullptr == pHit) {
       cout << "-E- CbmTofTrackFitterKF::DoFit : "
            << " empty TOF hit : " << hitIndex << ", " << pHit << endl;
       return 1;
diff --git a/reco/KF/Interface/CbmTrdTrackFitterKF.cxx b/reco/KF/Interface/CbmTrdTrackFitterKF.cxx
index c1df0ebcbea8e4f3eb71207dccda0f7471d86e30..51064125a437d3815dd3a55491c29d5552a46009 100644
--- a/reco/KF/Interface/CbmTrdTrackFitterKF.cxx
+++ b/reco/KF/Interface/CbmTrdTrackFitterKF.cxx
@@ -33,7 +33,7 @@ using std::vector;
 
 
 // -----------------------------------------------------------------------
-CbmTrdTrackFitterKF::CbmTrdTrackFitterKF() : fArrayTrdHit(0), fVerbose(1), fPid(211), fKfTrack(0)
+CbmTrdTrackFitterKF::CbmTrdTrackFitterKF() : fArrayTrdHit(nullptr), fVerbose(1), fPid(211), fKfTrack(nullptr)
 {
   fKfTrack = new CbmKFTrack();
 }
@@ -42,13 +42,13 @@ CbmTrdTrackFitterKF::CbmTrdTrackFitterKF() : fArrayTrdHit(0), fVerbose(1), fPid(
 
 // -----------------------------------------------------------------------
 CbmTrdTrackFitterKF::CbmTrdTrackFitterKF(Int_t verbose, Int_t pid)
-  : fArrayTrdHit(0)
+  : fArrayTrdHit(nullptr)
   , fVerbose(verbose)
   , fPid(pid)
-  , fKfTrack(0)
+  , fKfTrack(nullptr)
 {
   // Standard constructor
-  fArrayTrdHit = NULL;
+  fArrayTrdHit = nullptr;
   fVerbose     = verbose;
   fPid         = pid;
   fKfTrack     = new CbmKFTrack();
@@ -72,7 +72,7 @@ void CbmTrdTrackFitterKF::Init()
 
   // Get the pointer to FairRootManager
   FairRootManager* rootMgr = FairRootManager::Instance();
-  if (NULL == rootMgr) {
+  if (nullptr == rootMgr) {
     cout << "-E- CbmTrdTrackFitterKF::Init : "
          << " ROOT manager is not instantiated!" << endl;
     return;
@@ -80,7 +80,7 @@ void CbmTrdTrackFitterKF::Init()
 
   // Activate data branches
   fArrayTrdHit = (TClonesArray*) rootMgr->GetObject("TrdHit");
-  if (NULL == fArrayTrdHit) {
+  if (nullptr == fArrayTrdHit) {
     cout << "-E- CbmTrdTrackFitterKF::Init : "
          << " no TRD hit array!" << endl;
     return;
@@ -93,11 +93,11 @@ void CbmTrdTrackFitterKF::Init()
 Int_t CbmTrdTrackFitterKF::DoFit(CbmTrdTrack* pTrack)
 {
   // Implementation of the fitting algorithm
-  if (NULL == fArrayTrdHit) return 1;
+  if (nullptr == fArrayTrdHit) return 1;
 
   // Declare variables outside the loop
-  CbmTrdHit* pHit     = NULL;
-  CbmKFTrdHit* pKFHit = NULL;
+  CbmTrdHit* pHit     = nullptr;
+  CbmKFTrdHit* pKFHit = nullptr;
   Int_t hitIndex      = 0;
   Int_t materialIndex = 0;
   Double_t eLoss      = 0.;
@@ -108,7 +108,7 @@ Int_t CbmTrdTrackFitterKF::DoFit(CbmTrdTrack* pTrack)
     hitIndex = pTrack->GetHitIndex(iHit);
     //Get the pointer to the CbmTrdHit
     pHit = (CbmTrdHit*) fArrayTrdHit->At(hitIndex);
-    if (NULL == pHit) {
+    if (nullptr == pHit) {
       cout << "-E- CbmTrdTrackFitterKF::DoFit : "
            << " empty TRD hit : " << hitIndex << ", " << pHit << endl;
       return 1;
diff --git a/reco/KF/KFQA/CbmKFTrackFitQa.cxx b/reco/KF/KFQA/CbmKFTrackFitQa.cxx
index cc748627765fe81be5712b5d80ec4a0e7ab5cbd9..0e14b8e866890cd2a59d4b96a7e6f411681b8ddf 100644
--- a/reco/KF/KFQA/CbmKFTrackFitQa.cxx
+++ b/reco/KF/KFQA/CbmKFTrackFitQa.cxx
@@ -37,17 +37,17 @@ using std::vector;
 ClassImp(CbmKFTrackFitQa)
 
   CbmKFTrackFitQa::CbmKFTrackFitQa()
-  : listStsPts(0)
-  , listMvdPts(0)
-  , listMCTracks(0)
-  , listStsTracksMatch(0)
-  , listStsTracks(0)
-  , listStsHits(0)
-  , listMvdHits(0)
-  , listMvdHitMatches(0)
-  , listStsClusters(0)
-  , listStsDigi(0)
-  , listStsDigiMatch(0)
+  : listStsPts(nullptr)
+  , listMvdPts(nullptr)
+  , listMCTracks(nullptr)
+  , listStsTracksMatch(nullptr)
+  , listStsTracks(nullptr)
+  , listStsHits(nullptr)
+  , listMvdHits(nullptr)
+  , listMvdHitMatches(nullptr)
+  , listStsClusters(nullptr)
+  , listStsDigi(nullptr)
+  , listStsDigiMatch(nullptr)
   ,
 
 
@@ -58,52 +58,52 @@ ClassImp(CbmKFTrackFitQa)
   vStsHitMatch()
   ,
 
-  res_STShit_x(0)
-  , res_STShit_y(0)
-  , pull_STShit_x(0)
-  , pull_STShit_y(0)
+  res_STShit_x(nullptr)
+  , res_STShit_y(nullptr)
+  , pull_STShit_x(nullptr)
+  , pull_STShit_y(nullptr)
   ,
 
-  res_MVDhit_x(0)
-  , res_MVDhit_y(0)
-  , pull_MVDhit_x(0)
-  , pull_MVDhit_y(0)
+  res_MVDhit_x(nullptr)
+  , res_MVDhit_y(nullptr)
+  , pull_MVDhit_x(nullptr)
+  , pull_MVDhit_y(nullptr)
   ,
 
-  res_AtPV_x(0)
-  , res_AtPV_y(0)
-  , res_AtPV_tx(0)
-  , res_AtPV_ty(0)
-  , res_AtPV_qp(0)
+  res_AtPV_x(nullptr)
+  , res_AtPV_y(nullptr)
+  , res_AtPV_tx(nullptr)
+  , res_AtPV_ty(nullptr)
+  , res_AtPV_qp(nullptr)
   ,
 
-  pull_AtPV_x(0)
-  , pull_AtPV_y(0)
-  , pull_AtPV_tx(0)
-  , pull_AtPV_ty(0)
-  , pull_AtPV_qp(0)
+  pull_AtPV_x(nullptr)
+  , pull_AtPV_y(nullptr)
+  , pull_AtPV_tx(nullptr)
+  , pull_AtPV_ty(nullptr)
+  , pull_AtPV_qp(nullptr)
   ,
 
 
-  res_AtFP_x(0)
-  , res_AtFP_y(0)
-  , res_AtFP_tx(0)
-  , res_AtFP_ty(0)
-  , res_AtFP_qp(0)
+  res_AtFP_x(nullptr)
+  , res_AtFP_y(nullptr)
+  , res_AtFP_tx(nullptr)
+  , res_AtFP_ty(nullptr)
+  , res_AtFP_qp(nullptr)
   ,
 
-  pull_AtFP_x(0)
-  , pull_AtFP_y(0)
-  , pull_AtFP_tx(0)
-  , pull_AtFP_ty(0)
-  , pull_AtFP_qp(0)
+  pull_AtFP_x(nullptr)
+  , pull_AtFP_y(nullptr)
+  , pull_AtFP_tx(nullptr)
+  , pull_AtFP_ty(nullptr)
+  , pull_AtFP_qp(nullptr)
   ,
 
-  q_QA(0)
-  , dp_p(0)
+  q_QA(nullptr)
+  , dp_p(nullptr)
   ,
 
-  ggg(0)
+  ggg(nullptr)
   ,
 
   Nback(0)
@@ -225,9 +225,9 @@ InitStatus CbmKFTrackFitQa::Init()
   listStsDigiMatch   = dynamic_cast<TClonesArray*>(fManger->GetObject("StsDigiMatch"));
 
   if (CbmKF::Instance()->vMvdMaterial.size() == 0) {
-    listMvdPts        = 0;
-    listMvdHits       = 0;
-    listMvdHitMatches = 0;
+    listMvdPts        = nullptr;
+    listMvdHits       = nullptr;
+    listMvdHitMatches = nullptr;
   }
   else {
     listMvdPts        = dynamic_cast<TClonesArray*>(fManger->GetObject("MvdPoint"));
diff --git a/reco/KF/KFQA/CbmKFTrackQa.cxx b/reco/KF/KFQA/CbmKFTrackQa.cxx
index 61d655ed4763b6293bf1bc14de5ec1ad6051fee8..5a3b4e2da416cc5bfa7392591eabe512ea2bb033 100644
--- a/reco/KF/KFQA/CbmKFTrackQa.cxx
+++ b/reco/KF/KFQA/CbmKFTrackQa.cxx
@@ -73,22 +73,22 @@ CbmKFTrackQa::CbmKFTrackQa(const char* name, Int_t iVerbose, TString outFileName
   , fTrdTrackMatchBranchName("TrdTrackMatch")
   , fTofHitMatchBranchName("TofHitMatch")
   , fMuchTrackMatchBranchName("MuchTrackMatch")
-  , fStsTrackArray(0)
-  , fGlobalTrackArray(0)
-  , fRichRingArray(0)
-  , fTrdTrackArray(0)
-  , fTrdHitArray(0)
-  , fTofHitArray(0)
-  , fMuchTrackArray(0)
-  , fMCTrackArray(0)
-  , fStsTrackMatchArray(0)
-  , fRichRingMatchArray(0)
-  , fTrdTrackMatchArray(0)
-  , fTofHitMatchArray(0)
-  , fMuchTrackMatchArray(0)
+  , fStsTrackArray(nullptr)
+  , fGlobalTrackArray(nullptr)
+  , fRichRingArray(nullptr)
+  , fTrdTrackArray(nullptr)
+  , fTrdHitArray(nullptr)
+  , fTofHitArray(nullptr)
+  , fMuchTrackArray(nullptr)
+  , fMCTrackArray(nullptr)
+  , fStsTrackMatchArray(nullptr)
+  , fRichRingMatchArray(nullptr)
+  , fTrdTrackMatchArray(nullptr)
+  , fTofHitMatchArray(nullptr)
+  , fMuchTrackMatchArray(nullptr)
   , fOutFileName(outFileName)
-  , fOutFile(0)
-  , fHistoDir(0)
+  , fOutFile(nullptr)
+  , fHistoDir(nullptr)
   , fNEvents(0)
   , fPDGtoIndexMap()
 {
@@ -278,7 +278,7 @@ InitStatus CbmKFTrackQa::Init()
   //Get ROOT Manager
   FairRootManager* ioman = FairRootManager::Instance();
 
-  if (ioman == 0) {
+  if (ioman == nullptr) {
     Warning("CbmKFTrackQa::Init", "RootManager not instantiated!");
     return kERROR;
   }
@@ -292,68 +292,68 @@ InitStatus CbmKFTrackQa::Init()
 
   // Get sts tracks
   fStsTrackArray = (TClonesArray*) ioman->GetObject(fStsTrackBranchName);
-  if (fStsTrackArray == 0) {
+  if (fStsTrackArray == nullptr) {
     Warning("CbmKFTrackQa::Init", "track-array not found!");
     return kERROR;
   }
 
   // Get global tracks
   fGlobalTrackArray = (TClonesArray*) ioman->GetObject(fGlobalTrackBranchName);
-  if (fGlobalTrackArray == 0) Warning("CbmKFTrackQa::Init", "global track array not found!");
+  if (fGlobalTrackArray == nullptr) Warning("CbmKFTrackQa::Init", "global track array not found!");
 
   // Get ToF hits
   fTofHitArray = (TClonesArray*) ioman->GetObject(fTofBranchName);
-  if (fTofHitArray == 0) Warning("CbmKFTrackQa::Init", "TOF hit-array not found!");
+  if (fTofHitArray == nullptr) Warning("CbmKFTrackQa::Init", "TOF hit-array not found!");
 
   // TRD
   fTrdTrackArray = (TClonesArray*) ioman->GetObject(fTrdBranchName);
-  if (fTrdTrackArray == 0) Warning("CbmKFTrackQa::Init", "TRD track-array not found!");
+  if (fTrdTrackArray == nullptr) Warning("CbmKFTrackQa::Init", "TRD track-array not found!");
 
   fTrdHitArray = (TClonesArray*) ioman->GetObject(fTrdHitBranchName);
-  if (fTrdHitArray == 0) Warning("CbmKFTrackQa::Init", "TRD hit-array not found!");
+  if (fTrdHitArray == nullptr) Warning("CbmKFTrackQa::Init", "TRD hit-array not found!");
 
   fRichRingArray = (TClonesArray*) ioman->GetObject(fRichBranchName);
-  if (fRichRingArray == 0) Warning("CbmKFTrackQa::Init", "Rich ring array not found!");
+  if (fRichRingArray == nullptr) Warning("CbmKFTrackQa::Init", "Rich ring array not found!");
 
   fMCTrackArray = (TClonesArray*) ioman->GetObject(fMCTracksBranchName);
-  if (fMCTrackArray == 0) {
+  if (fMCTrackArray == nullptr) {
     Warning("CbmKFTrackQa::Init", "mc track array not found!");
     return kERROR;
   }
 
   //Track match
   fStsTrackMatchArray = (TClonesArray*) ioman->GetObject(fStsTrackMatchBranchName);
-  if (fStsTrackMatchArray == 0) {
+  if (fStsTrackMatchArray == nullptr) {
     Warning("CbmKFTrackQa::Init", "track match array not found!");
     return kERROR;
   }
 
   //Ring match
   fRichRingMatchArray = (TClonesArray*) ioman->GetObject(fRichRingMatchBranchName);
-  if (fRichRingMatchArray == 0) Warning("CbmKFTrackQa::Init", "RichRing match array not found!");
+  if (fRichRingMatchArray == nullptr) Warning("CbmKFTrackQa::Init", "RichRing match array not found!");
 
   //Tof match
   fTofHitMatchArray = (TClonesArray*) ioman->GetObject(fTofHitMatchBranchName);
-  if (fTofHitMatchArray == 0) Warning("CbmKFTrackQa::Init", "TofHit match array not found!");
+  if (fTofHitMatchArray == nullptr) Warning("CbmKFTrackQa::Init", "TofHit match array not found!");
 
   //TRD match
   fTrdTrackMatchArray = (TClonesArray*) ioman->GetObject(fTrdTrackMatchBranchName);
-  if (fTrdTrackMatchArray == 0) Warning("CbmKFTrackQa::Init", "TrdTrack match array not found!");
+  if (fTrdTrackMatchArray == nullptr) Warning("CbmKFTrackQa::Init", "TrdTrack match array not found!");
 
   //Much track match
   fMuchTrackMatchArray = (TClonesArray*) ioman->GetObject(fMuchTrackMatchBranchName);
-  if (fMuchTrackMatchArray == 0) { Warning("CbmKFTrackQa::Init", "Much track match array not found!"); }
+  if (fMuchTrackMatchArray == nullptr) { Warning("CbmKFTrackQa::Init", "Much track match array not found!"); }
   //Much
   fMuchTrackArray = (TClonesArray*) ioman->GetObject(fMuchTrackBranchName);
-  if (fMuchTrackArray == 0) { Warning("CbmKFTrackQa::Init", "Much track-array not found!"); }
+  if (fMuchTrackArray == nullptr) { Warning("CbmKFTrackQa::Init", "Much track-array not found!"); }
 
   // mc data manager
   CbmMCDataManager* mcManager = (CbmMCDataManager*) ioman->GetObject("MCDataManager");
-  if (mcManager == 0) { Warning("CbmKFTrackQa::Init", "mc manager not found!"); }
+  if (mcManager == nullptr) { Warning("CbmKFTrackQa::Init", "mc manager not found!"); }
 
   // Tof points
   fTofPoints = (CbmMCDataArray*) mcManager->InitBranch("TofPoint");
-  if (fTofPoints == 0) { Warning("CbmKFTrackQa::Init", "tof points not found!"); }
+  if (fTofPoints == nullptr) { Warning("CbmKFTrackQa::Init", "tof points not found!"); }
 
   return kSUCCESS;
 }
@@ -495,7 +495,7 @@ void CbmKFTrackQa::Exec(Option_t* /*opt*/)
   //Check quality of global tracks
 
   vector<int> trackMuchMatch;
-  if (fMuchTrackMatchArray != NULL) {
+  if (fMuchTrackMatchArray != nullptr) {
     Int_t nMuchTrackMatches = fMuchTrackMatchArray->GetEntriesFast();
     trackMuchMatch.resize(nMuchTrackMatches, -1);
 
@@ -523,7 +523,7 @@ void CbmKFTrackQa::Exec(Option_t* /*opt*/)
     }
   }
 
-  if (fGlobalTrackArray == NULL) Warning("KF Track QA", "No GlobalTrack array!");
+  if (fGlobalTrackArray == nullptr) Warning("KF Track QA", "No GlobalTrack array!");
   else {
     for (Int_t igt = 0; igt < fGlobalTrackArray->GetEntriesFast(); igt++) {
       const CbmGlobalTrack* globalTrack = static_cast<const CbmGlobalTrack*>(fGlobalTrackArray->At(igt));
diff --git a/reco/KF/obsolete/CbmL1TofMerger.cxx b/reco/KF/obsolete/CbmL1TofMerger.cxx
index a3cf09a6644d56f87ff7ad10b3d2e5cad3565d43..efe8bc86282e890c19202cee1e7bd55ccd9c1ad1 100644
--- a/reco/KF/obsolete/CbmL1TofMerger.cxx
+++ b/reco/KF/obsolete/CbmL1TofMerger.cxx
@@ -38,7 +38,7 @@ using std::pair;
 
 
 // ------------------------------------------------------------------
-CbmL1TofMerger::CbmL1TofMerger() : fArrayTrdTrack(0)
+CbmL1TofMerger::CbmL1TofMerger() : fArrayTrdTrack(nullptr)
 {
   // Default constructor
 }
@@ -46,7 +46,7 @@ CbmL1TofMerger::CbmL1TofMerger() : fArrayTrdTrack(0)
 
 
 // ------------------------------------------------------------------
-CbmL1TofMerger::CbmL1TofMerger(Int_t) : fArrayTrdTrack(0)
+CbmL1TofMerger::CbmL1TofMerger(Int_t) : fArrayTrdTrack(nullptr)
 {
   // Standard constructor
   fVerbose = 1;
@@ -67,13 +67,13 @@ void CbmL1TofMerger::Init()
 {
   // Initialisation
   FairRootManager* rootMgr = FairRootManager::Instance();
-  if (NULL == rootMgr) {
+  if (nullptr == rootMgr) {
     cout << "-E- CbmL1TofMerger::Init(): "
          << "ROOT manager is not instantiated!" << endl;
     return;
   }
   fArrayTrdTrack = dynamic_cast<TClonesArray*>(rootMgr->GetObject("TrdTrack"));
-  if (NULL == fArrayTrdTrack) {
+  if (nullptr == fArrayTrdTrack) {
     cout << "-W- CbmL1TofMerger::Init: "
          << "no TRD track array" << endl;
   }
@@ -130,7 +130,7 @@ Int_t CbmL1TofMerger::DoMerge(TClonesArray* glbTracks, TClonesArray* tofHits)
 
       // Get pointer to the global track
       track = dynamic_cast<CbmGlobalTrack*>(glbTracks->At(iTrack));
-      if (NULL == track) {
+      if (nullptr == track) {
         mapTrack.erase(iTrack);
         continue;
       }
@@ -144,7 +144,7 @@ Int_t CbmL1TofMerger::DoMerge(TClonesArray* glbTracks, TClonesArray* tofHits)
       // Get TRD track
       trdTrackIndex = track->GetTrdTrackIndex();
       trdTrack      = dynamic_cast<CbmTrdTrack*>(fArrayTrdTrack->At(trdTrackIndex));
-      if (NULL == trdTrack) {
+      if (nullptr == trdTrack) {
         mapTrack.erase(iTrack);
         continue;
       }
@@ -160,7 +160,7 @@ Int_t CbmL1TofMerger::DoMerge(TClonesArray* glbTracks, TClonesArray* tofHits)
         if (mapForbidden[make_pair(iTrack, iTof)]) continue;
         // Get TOF hit
         tofHit = dynamic_cast<CbmTofHit*>(tofHits->At(iTof));
-        if (NULL == tofHit) continue;
+        if (nullptr == tofHit) continue;
         // Get z position of hit
         zposTof = tofHit->GetZ();
         // Extrapolate to current z-plane
diff --git a/reco/KF/obsolete/CbmL1TrackMerger.cxx b/reco/KF/obsolete/CbmL1TrackMerger.cxx
index f4c93462fb17cbc27ea6c0c83795cb8b2c440401..69d3bccdef930bc26aa3c73111f95425205d3f96 100644
--- a/reco/KF/obsolete/CbmL1TrackMerger.cxx
+++ b/reco/KF/obsolete/CbmL1TrackMerger.cxx
@@ -45,25 +45,25 @@ using std::map;
 CbmL1TrackMerger::CbmL1TrackMerger()
   : fMethod(1)
   ,  // Merging method: 1 - based on StsTrackIndex from TRD track
-  fArrayStsTrackM(NULL)
+  fArrayStsTrackM(nullptr)
   ,  // Array of STS track matches
-  fArrayTrdTrackM(NULL)
+  fArrayTrdTrackM(nullptr)
   ,  // Array of TRD track matches
-  fh_dx_true(0)
+  fh_dx_true(nullptr)
   ,  // Control histogramm
-  fh_dx_false(0)
+  fh_dx_false(nullptr)
   ,  // Control histogramm
-  fh_dy_true(0)
+  fh_dy_true(nullptr)
   ,  // Control histogramm
-  fh_dy_false(0)
+  fh_dy_false(nullptr)
   ,  // Control histogramm
-  fh_dtx_true(0)
+  fh_dtx_true(nullptr)
   ,  // Control histogramm
-  fh_dtx_false(0)
+  fh_dtx_false(nullptr)
   ,  // Control histogramm
-  fh_dty_true(0)
-  ,                // Control histogramm
-  fh_dty_false(0)  // Control histogramm
+  fh_dty_true(nullptr)
+  ,                      // Control histogramm
+  fh_dty_false(nullptr)  // Control histogramm
 {
   // Default constructor
   fVerbose = 1;
@@ -76,25 +76,25 @@ CbmL1TrackMerger::CbmL1TrackMerger()
 CbmL1TrackMerger::CbmL1TrackMerger(Int_t verbose)
   : fMethod(1)
   ,  // Merging method: 1 - based on StsTrackIndex from TRD track
-  fArrayStsTrackM(NULL)
+  fArrayStsTrackM(nullptr)
   ,  // Array of STS track matches
-  fArrayTrdTrackM(NULL)
+  fArrayTrdTrackM(nullptr)
   ,  // Array of TRD track matches
-  fh_dx_true(0)
+  fh_dx_true(nullptr)
   ,  // Control histogramm
-  fh_dx_false(0)
+  fh_dx_false(nullptr)
   ,  // Control histogramm
-  fh_dy_true(0)
+  fh_dy_true(nullptr)
   ,  // Control histogramm
-  fh_dy_false(0)
+  fh_dy_false(nullptr)
   ,  // Control histogramm
-  fh_dtx_true(0)
+  fh_dtx_true(nullptr)
   ,  // Control histogramm
-  fh_dtx_false(0)
+  fh_dtx_false(nullptr)
   ,  // Control histogramm
-  fh_dty_true(0)
-  ,                // Control histogramm
-  fh_dty_false(0)  // Control histogramm
+  fh_dty_true(nullptr)
+  ,                      // Control histogramm
+  fh_dty_false(nullptr)  // Control histogramm
 {
   // Standard constructor
   fVerbose = verbose;
@@ -116,18 +116,18 @@ void CbmL1TrackMerger::Init()
 {
   // Initialisation
   FairRootManager* rootMgr = FairRootManager::Instance();
-  if (NULL == rootMgr) {
+  if (nullptr == rootMgr) {
     cout << "-E- CbmL1TrackMerger::Init : "
          << "FairRootManager is not instantiated!" << endl;
     return;
   }
   fArrayStsTrackM = dynamic_cast<TClonesArray*>(rootMgr->GetObject("StsTrackMatch"));
-  if (NULL == fArrayStsTrackM) {
+  if (nullptr == fArrayStsTrackM) {
     cout << "-W- CbmL1TrackMerger::Init : "
          << "no STS track match array" << endl;
   }
   fArrayTrdTrackM = dynamic_cast<TClonesArray*>(rootMgr->GetObject("TrdTrackMatch"));
-  if (NULL == fArrayTrdTrackM) {
+  if (nullptr == fArrayTrdTrackM) {
     cout << "-W- CbmL1TrackMerger::Init : "
          << "no TRD track match array" << endl;
   }
@@ -159,8 +159,8 @@ Int_t CbmL1TrackMerger::MergeSimple(TClonesArray* stsTracks, TClonesArray* trdTr
   // finding
   Int_t nGlb = 0;
 
-  CbmTrdTrack* trdTrack    = NULL;
-  CbmGlobalTrack* glbTrack = NULL;
+  CbmTrdTrack* trdTrack    = nullptr;
+  CbmGlobalTrack* glbTrack = nullptr;
 
   map<Int_t, Int_t> mapStsTrackUsed;
 
@@ -169,7 +169,7 @@ Int_t CbmL1TrackMerger::MergeSimple(TClonesArray* stsTracks, TClonesArray* trdTr
   for (Int_t iTrdTrack = 0; iTrdTrack < trdTracks->GetEntriesFast(); iTrdTrack++) {
     // Get pointer to the TRD track
     trdTrack = dynamic_cast<CbmTrdTrack*>(trdTracks->At(iTrdTrack));
-    if (NULL == trdTrack) continue;
+    if (nullptr == trdTrack) continue;
     // Create global track
     glbTrack = new ((*glbTracks)[nGlb]) CbmGlobalTrack();
     nGlb += 1;
@@ -239,14 +239,14 @@ Int_t CbmL1TrackMerger::MergeImPlane(TClonesArray* stsTracks, TClonesArray* trdT
   for (Int_t iStsTrack = 0; iStsTrack < stsTracks->GetEntriesFast(); iStsTrack++) {
     // Get pointer to the STS track and track match
     stsTrack = dynamic_cast<CbmStsTrack*>(stsTracks->At(iStsTrack));
-    if (NULL == stsTrack) continue;
+    if (nullptr == stsTrack) continue;
     stsTrackM = dynamic_cast<CbmTrackMatch*>(fArrayStsTrackM->At(iStsTrack));
-    if (NULL == stsTrackM) continue;
+    if (nullptr == stsTrackM) continue;
 
     // Create global track
     new ((*glbTracks)[nGlb]) CbmGlobalTrack();
     glbTrack = dynamic_cast<CbmGlobalTrack*>(glbTracks->At(nGlb));
-    if (NULL == glbTrack) continue;
+    if (nullptr == glbTrack) continue;
     nGlb += 1;
     // Set STS track index
     glbTrack->SetStsTrackIndex(iStsTrack);
@@ -260,9 +260,9 @@ Int_t CbmL1TrackMerger::MergeImPlane(TClonesArray* stsTracks, TClonesArray* trdT
       if (mapTrdTrackUsed[iTrdTrack]) continue;
       // Get pointer to the TRD track and track match
       trdTrack = dynamic_cast<CbmTrdTrack*>(trdTracks->At(iTrdTrack));
-      if (NULL == trdTrack) continue;
+      if (nullptr == trdTrack) continue;
       trdTrackM = dynamic_cast<CbmTrackMatch*>(fArrayTrdTrackM->At(iTrdTrack));
-      if (NULL == trdTrackM) continue;
+      if (nullptr == trdTrackM) continue;
       // Extrapolate STS track to the first plane of TRD track
       kfTrack.Extrapolate(trdTrack->GetParamFirst()->GetZ());
 
@@ -394,7 +394,7 @@ Int_t CbmL1TrackMerger::MergeImPlane(TClonesArray* stsTracks, TClonesArray* trdT
     // Create global track
     new ((*glbTracks)[nGlb]) CbmGlobalTrack();
     glbTrack = dynamic_cast<CbmGlobalTrack*>(glbTracks->At(nGlb));
-    if (NULL == glbTrack) continue;
+    if (nullptr == glbTrack) continue;
     nGlb += 1;
     // Set TRD track index
     glbTrack->SetTrdTrackIndex(iTrdTrack);
diff --git a/reco/L1/CbmL1.cxx b/reco/L1/CbmL1.cxx
index bf232132fa50860f480413f7a6b27412389f26a7..d55ddcd9ae4677955e0ef92baeb937149ba994a8 100644
--- a/reco/L1/CbmL1.cxx
+++ b/reco/L1/CbmL1.cxx
@@ -82,7 +82,7 @@ ClassImp(CbmL1);
 
 static ca::Framework gAlgo _fvecalignment;  // TODO: Change coupling logic between ca::Framework and CbmL1
 
-CbmL1* CbmL1::fpInstance = 0;
+CbmL1* CbmL1::fpInstance = nullptr;
 
 
 // ---------------------------------------------------------------------------------------------------------------------
@@ -239,19 +239,19 @@ InitStatus CbmL1::Init()
 
   CheckDetectorPresence();
 
-  fpStsPoints  = 0;
-  fpMvdPoints  = 0;
-  fpMuchPoints = 0;
-  fpTrdPoints  = 0;
-  fpTofPoints  = 0;
-  fpMcTracks   = 0;
+  fpStsPoints  = nullptr;
+  fpMvdPoints  = nullptr;
+  fpMuchPoints = nullptr;
+  fpTrdPoints  = nullptr;
+  fpTofPoints  = nullptr;
+  fpMcTracks   = nullptr;
 
-  fpMvdHitMatches  = 0;
-  fpTrdHitMatches  = 0;
-  fpMuchHitMatches = 0;
-  fpTofHitMatches  = 0;
+  fpMvdHitMatches  = nullptr;
+  fpTrdHitMatches  = nullptr;
+  fpMuchHitMatches = nullptr;
+  fpTofHitMatches  = nullptr;
 
-  fpStsClusters = 0;
+  fpStsClusters = nullptr;
 
   fvSelectedMcEvents.clear();
 
@@ -323,14 +323,14 @@ InitStatus CbmL1::Init()
 
     fpTrdPoints = mcManager->InitBranch("TrdPoint");
 
-    if (!fUseTRD) { fpTrdHitMatches = 0; }
+    if (!fUseTRD) { fpTrdHitMatches = nullptr; }
     else {
       fpTrdHitMatches = (TClonesArray*) fairManager->GetObject("TrdHitMatch");
     }
 
     if (!fUseMUCH) {
-      fpMuchPoints     = 0;
-      fpMuchHitMatches = 0;
+      fpMuchPoints     = nullptr;
+      fpMuchHitMatches = nullptr;
     }
     else {
       fpMuchDigis       = (TClonesArray*) fairManager->GetObject("MuchDigi");
@@ -342,7 +342,7 @@ InitStatus CbmL1::Init()
 
     fpTofPoints = mcManager->InitBranch("TofPoint");
 
-    if (!fUseTOF) { fpTofHitMatches = 0; }
+    if (!fUseTOF) { fpTofHitMatches = nullptr; }
     else {
       fpTofHitMatches = static_cast<TClonesArray*>(fairManager->GetObject("TofHitMatch"));
     }
@@ -377,7 +377,7 @@ InitStatus CbmL1::Init()
     }
   }
 
-  if (!fUseMVD) { fpMvdHits = 0; }
+  if (!fUseMVD) { fpMvdHits = nullptr; }
   else {
     fpMvdHits = dynamic_cast<TClonesArray*>(fairManager->GetObject("MvdHit"));
   }
diff --git a/reco/L1/CbmL1.h b/reco/L1/CbmL1.h
index 44a5660a0b33ecb7af8cf7dca4ee4221bc62b7f7..d9e4f18d308d6dcc8cbc9a248117c0014c557314 100644
--- a/reco/L1/CbmL1.h
+++ b/reco/L1/CbmL1.h
@@ -337,7 +337,7 @@ private:
   ///
   /// Reads information about hits, mcPoints and mcTracks into L1 classes. Repacks data from the external data branches
   /// to the internal data arrays.
-  void ReadEvent(CbmEvent* event = NULL);
+  void ReadEvent(CbmEvent* event = nullptr);
 
   /// Converts data from generic FairMCPoint based class to the CbmL1MCPoint
   /// \param   iDet     Index of the detector subsystem
diff --git a/reco/L1/CbmL1Performance.cxx b/reco/L1/CbmL1Performance.cxx
index adbf2638a6e74f53e51b290cf4c2e5c833038dc9..19e1c8703aacd1e3b109a57cc2c3b3bde50ac9fa 100644
--- a/reco/L1/CbmL1Performance.cxx
+++ b/reco/L1/CbmL1Performance.cxx
@@ -1980,7 +1980,7 @@ void CbmL1::InputPerformance()
 
       //    int iMCPoint = -1;
       CbmLink link;
-      CbmStsPoint* pt = 0;
+      CbmStsPoint* pt = nullptr;
 
       if (fpStsClusterMatches) {
         const CbmMatch* frontClusterMatch =
@@ -2015,7 +2015,7 @@ void CbmL1::InputPerformance()
           }
         }
 
-        if (pt == 0) continue;
+        if (pt == nullptr) continue;
 
         double mcTime = pt->GetTime();
 
diff --git a/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.cxx b/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.cxx
index 57fbf011511574cc84f08efef90e7f66d103d0a7..7cfc8282a3209f810021d03862ca9be0b5708316 100644
--- a/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.cxx
+++ b/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.cxx
@@ -50,14 +50,14 @@ CbmL1GlobalFindTracksEvents::CbmL1GlobalFindTracksEvents(CbmL1GlobalTrackFinder*
   : FairTask("GlobalFindTracksEvents")
   , fUseMvd(useMvd)
   , fFinder(finder)
-  , fEvents(NULL)
-  , fMvdHits(NULL)
-  , fStsHits(NULL)
-  , fGlobalTracks(NULL)
-  , fStsTrackArray(NULL)
-  , fMuchTrackArray(NULL)
-  , fTrdTrackArray(NULL)
-  , fTofTrackArray(NULL)
+  , fEvents(nullptr)
+  , fMvdHits(nullptr)
+  , fStsHits(nullptr)
+  , fGlobalTracks(nullptr)
+  , fStsTrackArray(nullptr)
+  , fMuchTrackArray(nullptr)
+  , fTrdTrackArray(nullptr)
+  , fTofTrackArray(nullptr)
   , fTimer()
   , fNofEvents(0)
   , fNofHits(0.)
diff --git a/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.h b/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.h
index 6a6849530ed5deeb8066f94616827e887dbf4d18..4f28a8c0cad2b5a69eeaeb3d83b28bc5222e59c4 100644
--- a/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.h
+++ b/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.h
@@ -44,7 +44,7 @@ public:
    ** @param finder  Track finder engine. Default: Ideal track finder.
    ** @param useMvd  Include MVD hits in track finding. Default kFALSE.
    **/
-  CbmL1GlobalFindTracksEvents(CbmL1GlobalTrackFinder* finder = NULL, Bool_t useMvd = kFALSE);
+  CbmL1GlobalFindTracksEvents(CbmL1GlobalTrackFinder* finder = nullptr, Bool_t useMvd = kFALSE);
 
 
   /** Destructor **/
diff --git a/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.h b/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.h
index a5a899094dabae0d7c747f69daf223a558b89d94..dfbbcea3e4c33d9dad4ca9c91754f8ca8e423d6c 100644
--- a/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.h
+++ b/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.h
@@ -83,7 +83,7 @@ private:
    ** to the output TClonesArray.
    ** @value  Number of created tracks
    **/
-  Int_t CopyL1Tracks(CbmEvent* event = NULL);
+  Int_t CopyL1Tracks(CbmEvent* event = nullptr);
 
   /** Convert detector specific track info to a detector track
    **/
diff --git a/reco/L1/OffLineInterface/CbmL1StsTrackFinder.h b/reco/L1/OffLineInterface/CbmL1StsTrackFinder.h
index 06b9292860d29a38fef502232006c2edef01b94f..61627cb7647018736a58ee560032287f5d4a1c15 100644
--- a/reco/L1/OffLineInterface/CbmL1StsTrackFinder.h
+++ b/reco/L1/OffLineInterface/CbmL1StsTrackFinder.h
@@ -65,7 +65,7 @@ private:
    ** to the output TClonesArray.
    ** @value  Number of created tracks
    **/
-  Int_t CopyL1Tracks(CbmEvent* event = NULL);
+  Int_t CopyL1Tracks(CbmEvent* event = nullptr);
 
 
   ClassDef(CbmL1StsTrackFinder, 1);
diff --git a/reco/L1/catools/CaToolsDebugger.cxx b/reco/L1/catools/CaToolsDebugger.cxx
index 5783a6c29e7c12176d9a2e390243574a70d249c8..f1fe2a19359063316e886141d274edf1740e428c 100644
--- a/reco/L1/catools/CaToolsDebugger.cxx
+++ b/reco/L1/catools/CaToolsDebugger.cxx
@@ -19,12 +19,11 @@ n->Draw("chi2")
 #include "TFile.h"
 #include "TNtuple.h"
 
+#include <cstdarg>
 #include <iostream>
 #include <memory>
 #include <string>
 
-#include <stdarg.h>
-
 using cbm::ca::tools::Debugger;
 
 Debugger& Debugger::Instance()
diff --git a/reco/L1/qa/CbmCaTrackFitQa.cxx b/reco/L1/qa/CbmCaTrackFitQa.cxx
index fd8cbbe0ea093a58e5dc68e9b219475dd2789d0e..715a95fe81d2a9d552def874bfc241394751087e 100644
--- a/reco/L1/qa/CbmCaTrackFitQa.cxx
+++ b/reco/L1/qa/CbmCaTrackFitQa.cxx
@@ -134,7 +134,7 @@ void TrackFitQa::Init()
 
 // ---------------------------------------------------------------------------------------------------------------------
 //
-void TrackFitQa::Fill(const TrackParamV& trPar, const tools::MCPoint& mcPoint, bool bTimeMeasured, double weight)
+void TrackFitQa::Fill(const TrackParamV& trPar, const tools::MCPoint& mcPoint, bool bTimeMeasured, double /*weight*/)
 {
   // Probably, a bottleneck
   ca::TrackFit fitter;
diff --git a/reco/L1/qa/CbmTrackerInputQaTof.cxx b/reco/L1/qa/CbmTrackerInputQaTof.cxx
index 88b71474421b58edb389aa2d4a2a4acb871b6f90..efcf197744f25f7d77667ad1602b623852054a1d 100644
--- a/reco/L1/qa/CbmTrackerInputQaTof.cxx
+++ b/reco/L1/qa/CbmTrackerInputQaTof.cxx
@@ -50,12 +50,11 @@
 #include <TStyle.h>
 
 #include <algorithm>
+#include <cstdio>
 #include <iostream>
 #include <map>
 #include <vector>
 
-#include <stdio.h>
-
 ClassImp(CbmTrackerInputQaTof);
 
 // -------------------------------------------------------------------------
@@ -79,7 +78,7 @@ CbmTrackerInputQaTof::CbmTrackerInputQaTof(const char* name, Int_t verbose) : Fa
 
   // Keep the ownership on the histograms to avoid double deletion
   for (unsigned int i = 0; i < fHistList.size(); i++) {
-    fHistList[i]->SetDirectory(0);
+    fHistList[i]->SetDirectory(nullptr);
   }
 }
 
@@ -286,7 +285,7 @@ InitStatus CbmTrackerInputQaTof::ReInit()
   for (Int_t i = 0; i < fNtrackingStations; i++) {
     fhPointsPerHit.emplace_back(Form("hMcPointsPerHit%i", i),
                                 Form("MC Points per Hit: Station %i;N mc points / hit", i), 10, -0.5, 9.5);
-    fhPointsPerHit[i].SetDirectory(0);
+    fhPointsPerHit[i].SetDirectory(nullptr);
     fhPointsPerHit[i].SetLineWidth(2);
     fhPointsPerHit[i].SetOptStat(110);
     fHistFolder->Add(&fhPointsPerHit[i]);
@@ -295,7 +294,7 @@ InitStatus CbmTrackerInputQaTof::ReInit()
   for (Int_t i = 0; i < fNtrackingStations; i++) {
     fhHitsPerPoint.emplace_back(Form("hHitsPerMcPoint%i", i),
                                 Form("Hits per MC Point: Station %i; N hits / mc point", i), 10, -0.5, 9.5);
-    fhHitsPerPoint[i].SetDirectory(0);
+    fhHitsPerPoint[i].SetDirectory(nullptr);
     fhHitsPerPoint[i].SetLineWidth(2);
     fhHitsPerPoint[i].SetOptStat(110);
     fHistFolder->Add(&fhHitsPerPoint[i]);
@@ -308,13 +307,13 @@ InitStatus CbmTrackerInputQaTof::ReInit()
     double dr = sqrt(dx * dx + dy * dy);
 
     fhEfficiencyR.emplace_back(Form("hEfficiencyR%i", i), Form("Efficiency R: Station %i;R [cm]", i), 100, 0, dr);
-    fhEfficiencyR[i].SetDirectory(0);
+    fhEfficiencyR[i].SetDirectory(nullptr);
     fhEfficiencyR[i].SetOptStat(1110);
     fHistFolder->Add(&fhEfficiencyR[i]);
 
     fhEfficiencyXY.emplace_back(Form("hEfficiencyXY%i", i), Form("Efficiency XY: Station %i;X [cm];Y [cm]", i), 50, -dx,
                                 dx, 50, -dy, dy);
-    fhEfficiencyXY[i].SetDirectory(0);
+    fhEfficiencyXY[i].SetDirectory(nullptr);
     fhEfficiencyXY[i].SetOptStat(10);
     fhEfficiencyXY[i].GetYaxis()->SetTitleOffset(1.4);
     fHistFolder->Add(&fhEfficiencyXY[i]);
diff --git a/reco/L1/qa/CbmTrackerInputQaTrd.cxx b/reco/L1/qa/CbmTrackerInputQaTrd.cxx
index 04f61b51120fb70bf2c9676a1b76aeb6132e2494..166b7999458754f7d476eaf4065c008be0f781f5 100644
--- a/reco/L1/qa/CbmTrackerInputQaTrd.cxx
+++ b/reco/L1/qa/CbmTrackerInputQaTrd.cxx
@@ -48,12 +48,11 @@
 #include <TStyle.h>
 
 #include <algorithm>
+#include <cstdio>
 #include <iostream>
 #include <map>
 #include <vector>
 
-#include <stdio.h>
-
 ClassImp(CbmTrackerInputQaTrd);
 
 // -------------------------------------------------------------------------
@@ -81,7 +80,7 @@ CbmTrackerInputQaTrd::CbmTrackerInputQaTrd(const char* name, Int_t verbose) : Fa
 
   // Keep the ownership on the histograms to avoid double deletion
   for (unsigned int i = 0; i < fHistList.size(); i++) {
-    fHistList[i]->SetDirectory(0);
+    fHistList[i]->SetDirectory(nullptr);
   }
 }
 
@@ -298,7 +297,7 @@ InitStatus CbmTrackerInputQaTrd::ReInit()
   for (Int_t i = 0; i < fNtrackingStations; i++) {
     fhPointsPerHit.emplace_back(Form("hMcPointsPerHit%i", i),
                                 Form("MC Points per Hit: Station %i;N mc points / hit", i), 10, -0.5, 9.5);
-    fhPointsPerHit[i].SetDirectory(0);
+    fhPointsPerHit[i].SetDirectory(nullptr);
     fhPointsPerHit[i].SetLineWidth(2);
     fhPointsPerHit[i].SetOptStat(110);
     fHistFolder->Add(&fhPointsPerHit[i]);
@@ -307,7 +306,7 @@ InitStatus CbmTrackerInputQaTrd::ReInit()
   for (Int_t i = 0; i < fNtrackingStations; i++) {
     fhHitsPerPoint.emplace_back(Form("hHitsPerMcPoint%i", i),
                                 Form("Hits per MC Point: Station %i; N hits / mc point", i), 10, -0.5, 9.5);
-    fhHitsPerPoint[i].SetDirectory(0);
+    fhHitsPerPoint[i].SetDirectory(nullptr);
     fhHitsPerPoint[i].SetLineWidth(2);
     fhHitsPerPoint[i].SetOptStat(110);
     fHistFolder->Add(&fhHitsPerPoint[i]);
@@ -320,13 +319,13 @@ InitStatus CbmTrackerInputQaTrd::ReInit()
     double dr = sqrt(dx * dx + dy * dy);
 
     fhEfficiencyR.emplace_back(Form("hEfficiencyR%i", i), Form("Efficiency R: Station %i;R [cm]", i), 100, 0, dr);
-    fhEfficiencyR[i].SetDirectory(0);
+    fhEfficiencyR[i].SetDirectory(nullptr);
     fhEfficiencyR[i].SetOptStat(1110);
     fHistFolder->Add(&fhEfficiencyR[i]);
 
     fhEfficiencyXY.emplace_back(Form("hEfficiencyXY%i", i), Form("Efficiency XY: Station %i;X [cm];Y [cm]", i), 50, -dx,
                                 dx, 50, -dy, dy);
-    fhEfficiencyXY[i].SetDirectory(0);
+    fhEfficiencyXY[i].SetDirectory(nullptr);
     fhEfficiencyXY[i].SetOptStat(10);
     fhEfficiencyXY[i].GetYaxis()->SetTitleOffset(1.4);
     fHistFolder->Add(&fhEfficiencyXY[i]);