diff --git a/core/eventdisplay/CbmRecoTracks.cxx b/core/eventdisplay/CbmRecoTracks.cxx
index f3b3f169271fc2737d4d561e3835cee3059c3919..23000a3938545e29176be59d68327fed6c455773 100644
--- a/core/eventdisplay/CbmRecoTracks.cxx
+++ b/core/eventdisplay/CbmRecoTracks.cxx
@@ -5,8 +5,8 @@
 /********************************************************************************
  *    Copyright (C) 2016 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH    *
  *                                                                              *
- *              This software is distributed under the terms of the             * 
- *         GNU Lesser General Public Licence version 3 (LGPL) version 3,        *  
+ *              This software is distributed under the terms of the             *
+ *         GNU Lesser General Public Licence version 3 (LGPL) version 3,        *
  *                  copied verbatim in the file "LICENSE"                       *
  ********************************************************************************/
 // -------------------------------------------------------------------------
@@ -36,7 +36,6 @@
 #include <TEveTrackPropagator.h>  // for TEveTrackPropagator
 #include <TEveVector.h>           // for TEveVector, TEveVectorT
 #include <TGenericClassInfo.h>    // for TGenericClassInfo
-#include <TObjArray.h>            // for TObjArray
 #include <TParticle.h>            // for TParticle
 #include <TString.h>              // for TString
 #include <TVector3.h>             // for TVector3
@@ -44,57 +43,6 @@
 #include <stdio.h>   // for sprintf
 #include <string.h>  // for strcmp
 
-// -----   Default constructor   -------------------------------------------
-CbmRecoTracks::CbmRecoTracks()
-  : FairTask("FairMCTracks", 0)
-  , fGlobalTracks(nullptr)
-  , fMvdHits(nullptr)
-  , fStsHits(nullptr)
-  , fStsTracks(nullptr)
-  , fRichRings(nullptr)
-  , fRichHits(nullptr)
-  , fMuchPixelHits(nullptr)
-  , fMuchTracks(nullptr)
-  , fTrdHits(nullptr)
-  , fTrdTracks(nullptr)
-  , fTofHits(nullptr)
-  , fTrPr(nullptr)
-  , fEventManager(nullptr)
-  , fEveTrList(nullptr)
-  , fEvent("")
-  , fTrList(nullptr)
-  , MinEnergyLimit(-1.)
-  , MaxEnergyLimit(-1.)
-  , PEnergy(-1.)
-{
-}
-// -------------------------------------------------------------------------
-
-
-// -----   Standard constructor   ------------------------------------------
-CbmRecoTracks::CbmRecoTracks(const char* name, Int_t iVerbose)
-  : FairTask(name, iVerbose)
-  , fGlobalTracks(nullptr)
-  , fMvdHits(nullptr)
-  , fStsHits(nullptr)
-  , fStsTracks(nullptr)
-  , fRichRings(nullptr)
-  , fRichHits(nullptr)
-  , fMuchPixelHits(nullptr)
-  , fMuchTracks(nullptr)
-  , fTrdHits(nullptr)
-  , fTrdTracks(nullptr)
-  , fTofHits(nullptr)
-  , fTrPr(nullptr)
-  , fEventManager(nullptr)
-  , fEveTrList(new TObjArray(16))
-  , fEvent("")
-  , fTrList(nullptr)
-  , MinEnergyLimit(-1.)
-  , MaxEnergyLimit(-1.)
-  , PEnergy(-1.)
-{
-}
 // -------------------------------------------------------------------------
 InitStatus CbmRecoTracks::Init()
 {
@@ -111,6 +59,7 @@ InitStatus CbmRecoTracks::Init()
   fTrdHits                  = (TClonesArray*) fManager->GetObject("TrdHit");
   fTrdTracks                = (TClonesArray*) fManager->GetObject("TrdTrack");
   fTofHits                  = (TClonesArray*) fManager->GetObject("TofHit");
+  fTofTracks                = (TClonesArray*) fManager->GetObject("TofTrack");
 
   if (fGlobalTracks == 0) {
     LOG(error) << "FairMCTracks::Init()  branch " << GetName()
@@ -217,7 +166,8 @@ void CbmRecoTracks::Exec(Option_t* /*option*/)
       Int_t richId                      = globalTrack->GetRichRingIndex();
       Int_t muchId                      = globalTrack->GetMuchTrackIndex();
       Int_t trdId                       = globalTrack->GetTrdTrackIndex();
-      Int_t tofId                       = globalTrack->GetTofHitIndex();
+      Int_t tofId                       = globalTrack->GetTofTrackIndex();
+      Int_t tofHitId                    = globalTrack->GetTofHitIndex();
 
       if (0 > stsId) continue;
 
@@ -248,7 +198,9 @@ void CbmRecoTracks::Exec(Option_t* /*option*/)
 
       if (-1 < trdId) HandleTrack(eveTrack, n, static_cast<const CbmTrack*>(fTrdTracks->At(trdId)));
 
-      if (-1 < tofId) HandlePixelHit(eveTrack, n, static_cast<const CbmPixelHit*>(fTofHits->At(tofId)));
+      if (-1 < tofId) HandleTrack(eveTrack, n, static_cast<const CbmTrack*>(fTofTracks->At(tofId)));
+      else if (-1 < tofHitId)
+        HandlePixelHit(eveTrack, n, static_cast<const CbmPixelHit*>(fTofHits->At(tofHitId)));
 
       fTrList->AddElement(eveTrack);
       LOG(debug3) << "track added " << eveTrack->GetName();
diff --git a/core/eventdisplay/CbmRecoTracks.h b/core/eventdisplay/CbmRecoTracks.h
index b507f85946522f33c45509b94756548fefd8878a..38cc499e3c6a39f49675dbe80ea606d5477ed336 100644
--- a/core/eventdisplay/CbmRecoTracks.h
+++ b/core/eventdisplay/CbmRecoTracks.h
@@ -5,8 +5,8 @@
 /********************************************************************************
  *    Copyright (C) 2016 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH    *
  *                                                                              *
- *              This software is distributed under the terms of the             * 
- *         GNU Lesser General Public Licence version 3 (LGPL) version 3,        *  
+ *              This software is distributed under the terms of the             *
+ *         GNU Lesser General Public Licence version 3 (LGPL) version 3,        *
  *                  copied verbatim in the file "LICENSE"                       *
  ********************************************************************************/
 // -------------------------------------------------------------------------
@@ -32,6 +32,7 @@
 
 #include <TClonesArray.h>  // IWYU pragma: keep needed by cliong
 #include <TEveVector.h>    // for TEveVector
+#include <TObjArray.h>     // for TObjArray, needed for FairRoot > v18.8.0
 #include <TString.h>       // for TString
 
 class CbmPixelHit;
@@ -40,7 +41,6 @@ class CbmTrack;
 class FairEventManager;
 class TEveTrack;
 class TEveTrackList;
-class TObjArray;
 class TParticle;
 class TEveTrackPropagator;
 
@@ -48,14 +48,14 @@ class CbmRecoTracks : public FairTask {
 
 public:
   /** Default constructor **/
-  CbmRecoTracks();
+  CbmRecoTracks() : CbmRecoTracks("FairMCTracks", 0) {}
 
 
   /** Standard constructor
     *@param name        Name of task
     *@param iVerbose    Verbosity level
     **/
-  CbmRecoTracks(const char* name, Int_t iVerbose = 1);
+  CbmRecoTracks(const char* name, Int_t iVerbose = 1) : FairTask(name, iVerbose) {}
 
   /** Destructor **/
   virtual ~CbmRecoTracks();
@@ -77,27 +77,28 @@ protected:
   void HandleTrack(TEveTrack* eveTrack, Int_t& n, const CbmTrack* recoTrack);
   void HandleStsTrack(TEveTrack* eveTrack, Int_t& n, const CbmStsTrack* stsTrack);
 
-  TClonesArray* fGlobalTracks;
-  TClonesArray* fMvdHits;
-  TClonesArray* fStsHits;
-  TClonesArray* fStsTracks;
-  TClonesArray* fRichRings;
-  TClonesArray* fRichHits;
-  TClonesArray* fMuchPixelHits;
-  TClonesArray* fMuchTracks;
-  TClonesArray* fTrdHits;
-  TClonesArray* fTrdTracks;
-  TClonesArray* fTofHits;
-  TEveTrackPropagator* fTrPr;
-  FairEventManager* fEventManager;  //!
-  TObjArray* fEveTrList;
-  TString fEvent;          //!
-  TEveTrackList* fTrList;  //!
+  TClonesArray* fGlobalTracks     = nullptr;
+  TClonesArray* fMvdHits          = nullptr;
+  TClonesArray* fStsHits          = nullptr;
+  TClonesArray* fStsTracks        = nullptr;
+  TClonesArray* fRichRings        = nullptr;
+  TClonesArray* fRichHits         = nullptr;
+  TClonesArray* fMuchPixelHits    = nullptr;
+  TClonesArray* fMuchTracks       = nullptr;
+  TClonesArray* fTrdHits          = nullptr;
+  TClonesArray* fTrdTracks        = nullptr;
+  TClonesArray* fTofHits          = nullptr;
+  TClonesArray* fTofTracks        = nullptr;
+  TEveTrackPropagator* fTrPr      = nullptr;
+  FairEventManager* fEventManager = nullptr;  //!
+  TObjArray* fEveTrList           = new TObjArray(16);
+  TString fEvent                  = "";       //!
+  TEveTrackList* fTrList          = nullptr;  //!
   //TEveElementList *fTrackCont;
 
-  Double_t MinEnergyLimit;
-  Double_t MaxEnergyLimit;
-  Double_t PEnergy;
+  Double_t MinEnergyLimit = -1.;
+  Double_t MaxEnergyLimit = -1.;
+  Double_t PEnergy        = -1.;
 
 private:
   CbmRecoTracks(const CbmRecoTracks&);