diff --git a/core/data/CbmTrack.cxx b/core/data/CbmTrack.cxx
index 2f3385eeb52f9de48d6eddad68ed8327c695de16..e05534bd8de16a1bb373c942b4d31d3204338c3a 100644
--- a/core/data/CbmTrack.cxx
+++ b/core/data/CbmTrack.cxx
@@ -27,8 +27,12 @@ CbmTrack::CbmTrack()
   , fPidHypo(0)
   , fParamFirst()
   , fParamLast()
-  , fTime(0.)
-  , fTimeError(0.)
+  , fStartTime(0.)
+  , fStartTimeError(0.)
+  , fFirstHitTime(0.)
+  , fFirstHitTimeError(0.)
+  , fLastHitTime(0.)
+  , fLastHitTimeError(0.)
   , fFlag(0)
   , fChiSq(0.)
   , fNDF(0)
@@ -45,8 +49,12 @@ CbmTrack::CbmTrack(const CbmTrack& rhs)
   , fPidHypo(rhs.fPidHypo)
   , fParamFirst(rhs.fParamFirst)
   , fParamLast(rhs.fParamLast)
-  , fTime(rhs.fTime)
-  , fTimeError(rhs.fTimeError)
+  , fStartTime(rhs.fStartTime)
+  , fStartTimeError(rhs.fStartTimeError)
+  , fFirstHitTime(rhs.fFirstHitTime)
+  , fFirstHitTimeError(rhs.fFirstHitTimeError)
+  , fLastHitTime(rhs.fLastHitTime)
+  , fLastHitTimeError(rhs.fLastHitTimeError)
   , fFlag(rhs.fFlag)
   , fChiSq(rhs.fChiSq)
   , fNDF(rhs.fNDF)
@@ -60,19 +68,23 @@ CbmTrack& CbmTrack::operator=(const CbmTrack& rhs)
 {
 
   if (this != &rhs) {
-    TObject::operator=(rhs);
-    fHitIndex        = rhs.fHitIndex;
-    fHitType         = rhs.fHitType;
-    fPidHypo         = rhs.fPidHypo;
-    fParamFirst      = rhs.fParamFirst;
-    fParamLast       = rhs.fParamLast;
-    fTime            = rhs.fTime;
-    fTimeError       = rhs.fTimeError;
-    fFlag            = rhs.fFlag;
-    fChiSq           = rhs.fChiSq;
-    fNDF             = rhs.fNDF;
-    fPreviousTrackId = rhs.fPreviousTrackId;
-    fMatch           = nullptr;
+    TObject::operator  =(rhs);
+    fHitIndex          = rhs.fHitIndex;
+    fHitType           = rhs.fHitType;
+    fPidHypo           = rhs.fPidHypo;
+    fParamFirst        = rhs.fParamFirst;
+    fParamLast         = rhs.fParamLast;
+    fStartTime         = rhs.fStartTime;
+    fStartTimeError    = rhs.fStartTimeError;
+    fFirstHitTime      = rhs.fFirstHitTime;
+    fFirstHitTimeError = rhs.fFirstHitTimeError;
+    fLastHitTime       = rhs.fLastHitTime;
+    fLastHitTimeError  = rhs.fLastHitTimeError;
+    fFlag              = rhs.fFlag;
+    fChiSq             = rhs.fChiSq;
+    fNDF               = rhs.fNDF;
+    fPreviousTrackId   = rhs.fPreviousTrackId;
+    fMatch             = nullptr;
   }
   return *this;
 }
diff --git a/core/data/CbmTrack.h b/core/data/CbmTrack.h
index 5419d752c708fa27f31f8b080381eb07cc469c10..a6355625588b8f9573d63083426f9eafa2d75063 100644
--- a/core/data/CbmTrack.h
+++ b/core/data/CbmTrack.h
@@ -66,8 +66,12 @@ public:
   const FairTrackParam* GetParamFirst() const { return &fParamFirst; }
   const FairTrackParam* GetParamLast() const { return &fParamLast; }
   CbmMatch* GetMatch() const { return fMatch; }
-  double GetTime() const { return fTime; }
-  double GetTimeError() const { return fTimeError; }
+  double GetStartTime() const { return fStartTime; }
+  double GetStartTimeError() const { return fStartTimeError; }
+  double GetFirstHitTime() const { return fFirstHitTime; }
+  double GetFirstHitTimeError() const { return fFirstHitTimeError; }
+  double GetLastHitTime() const { return fLastHitTime; }
+  double GetLastHitTimeError() const { return fLastHitTimeError; }
 
   /** Modifiers  **/
   void SetPidHypo(int32_t pid) { fPidHypo = pid; }
@@ -78,8 +82,12 @@ public:
   void SetParamFirst(const FairTrackParam* par) { fParamFirst = *par; }
   void SetParamLast(const FairTrackParam* par) { fParamLast = *par; }
   void SetMatch(CbmMatch* match);
-  void SetTime(double time) { fTime = time; }
-  void SetTimeError(double error) { fTimeError = error; }
+  void SetStartTime(double time) { fStartTime = time; }
+  void SetStartTimeError(double error) { fStartTimeError = error; }
+  void SetFirstHitTime(double time) { fFirstHitTime = time; }
+  void SetFirstHitTimeError(double error) { fFirstHitTimeError = error; }
+  void SetLastHitTime(double time) { fLastHitTime = time; }
+  void SetLastHitTimeError(double error) { fLastHitTimeError = error; }
 
   virtual std::string ToString() const;
 
@@ -98,8 +106,16 @@ protected:
   FairTrackParam fParamLast;
 
   /** Track start time **/
-  double fTime;
-  double fTimeError;
+  double fStartTime;
+  double fStartTimeError;
+
+  /** Track time at the first hit **/
+  double fFirstHitTime;
+  double fFirstHitTimeError;
+
+  /** Track time at the last hit **/
+  double fLastHitTime;
+  double fLastHitTimeError;
 
   /** Quality flag **/
   int32_t fFlag;
@@ -114,7 +130,7 @@ protected:
   /** Monte-Carlo information **/
   CbmMatch* fMatch;
 
-  ClassDef(CbmTrack, 4);
+  ClassDef(CbmTrack, 5);
 };
 
 #endif
diff --git a/core/data/sts/CbmStsTrack.cxx b/core/data/sts/CbmStsTrack.cxx
index 228e40a4d40b09dae1953129e0ad0f14d652831e..a1033a00a2462a1e2dc8098c13e5858d07172c8f 100644
--- a/core/data/sts/CbmStsTrack.cxx
+++ b/core/data/sts/CbmStsTrack.cxx
@@ -31,8 +31,8 @@ CbmStsTrack::~CbmStsTrack() {}
 std::string CbmStsTrack::ToString() const
 {
   stringstream ss;
-  ss << "CbmStsTrack: time " << fTime << " ns | hits STS " << GetNofStsHits() << " MVD " << GetNofMvdHits() << " | q/p "
-     << GetParamFirst()->GetQp() << " | chisq " << GetChiSq() << " | NDF " << GetNDF() << " | STS hits ";
+  ss << "CbmStsTrack: start time " << fStartTime << " ns | hits STS " << GetNofStsHits() << " MVD " << GetNofMvdHits()
+     << " | q/p " << GetParamFirst()->GetQp() << " | chisq " << GetChiSq() << " | NDF " << GetNDF() << " | STS hits ";
   for (int32_t iHit = 0; iHit < GetNofStsHits(); iHit++) {
     ss << GetStsHitIndex(iHit) << " ";
   }
diff --git a/core/data/tof/CbmTofTrack.cxx b/core/data/tof/CbmTofTrack.cxx
index bf7d3b601c4d93824f9d9069b7b6203febb60d7c..3e515abe0afb774ed390a8cd98a573793151ecef 100644
--- a/core/data/tof/CbmTofTrack.cxx
+++ b/core/data/tof/CbmTofTrack.cxx
@@ -32,8 +32,8 @@ CbmTofTrack::~CbmTofTrack() {}
 std::string CbmTofTrack::ToString() const
 {
   stringstream ss;
-  ss << "CbmTofTrack: time " << fTime << " ns | hits STS " << GetNofTofHits() << " | q/p " << GetParamFirst()->GetQp()
-     << " | chisq " << GetChiSq() << " | NDF " << GetNDF() << " | STS hits ";
+  ss << "CbmTofTrack: start time " << fStartTime << " ns | hits STS " << GetNofTofHits() << " | q/p "
+     << GetParamFirst()->GetQp() << " | chisq " << GetChiSq() << " | NDF " << GetNDF() << " | STS hits ";
   for (int32_t iHit = 0; iHit < GetNofTofHits(); iHit++) {
     ss << GetTofHitIndex(iHit) << " ";
   }
diff --git a/reco/L1/L1Algo/L1TrackFitter.cxx b/reco/L1/L1Algo/L1TrackFitter.cxx
index a876ab4fc062ab0faaf4fa4efe7ddb0c41b61934..e1b4f6bbed530469eef6944626dbe6359c633553 100644
--- a/reco/L1/L1Algo/L1TrackFitter.cxx
+++ b/reco/L1/L1Algo/L1TrackFitter.cxx
@@ -508,7 +508,7 @@ void L1Algo::L1KFTrackFitter()
       int ista = nStations - 1;
 
       time_last = iif(w_time[ista] > fvec::Zero(), time_last, fvec::Zero());
-      dt2_last  = iif(w_time[ista] > fvec::Zero(), dt2_last, fvec(100.));
+      dt2_last  = iif(w_time[ista] > fvec::Zero(), dt2_last, fvec(1.e6));
 
       FilterFirst(fit, x_last, y_last, time_last, dt2_last, d_xx_lst, d_yy_lst, d_xy_lst);
 
@@ -751,7 +751,7 @@ void L1Algo::L1KFTrackFitter()
   }
 }
 void L1Algo::GuessVecNoField(L1TrackParFit& t, fvec& x_last, fvec& x_2last, fvec& y_last, fvec& y_2last, fvec& z_end,
-                             fvec& z_2last, fvec& time_last, fvec* w_time, fvec& dt2_last)
+                             fvec& z_2last, fvec& time_last, fvec* /*w_time*/, fvec& dt2_last)
 {
   fvec dzi = fvec(1.) / (z_end - z_2last);
 
diff --git a/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.cxx b/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.cxx
index 83b66c29f6f3d4de0f872e4398847fc2a0120f21..cf98e78395ff4f8671a1f64ff6405f36bafe8d04 100644
--- a/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.cxx
+++ b/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.cxx
@@ -209,8 +209,12 @@ void CbmL1GlobalTrackFinder::CbmL1TrackToCbmStsTrack(CbmL1Track l1track, CbmStsT
   track->SetChiSq(T->chi2);
   track->SetNDF(T->NDF);
   track->SetPidHypo(T->T[4] >= 0 ? 211 : -211);
-  track->SetTime(T->Tpv[6]);
-  track->SetTimeError(T->Cpv[20]);
+  track->SetStartTime(T->Tpv[6]);
+  track->SetStartTimeError(T->Cpv[20]);
+  track->SetFirstHitTime(T->T[6]);
+  track->SetFirstHitTimeError(T->C[20]);
+  track->SetLastHitTime(T->TLast[6]);
+  track->SetLastHitTimeError(T->CLast[20]);
 
   FairTrackParam fpar(*track->GetParamFirst()), lpar(*track->GetParamLast());
   CbmKFMath::CopyTC2TrackParam(&fpar, T->T, T->C);
diff --git a/reco/L1/OffLineInterface/CbmL1StsTrackFinder.cxx b/reco/L1/OffLineInterface/CbmL1StsTrackFinder.cxx
index 4854d17432b798db03edd44de780e579e9959869..cce5fe7aec9d325778e25a85f4bfe66a77f89a85 100644
--- a/reco/L1/OffLineInterface/CbmL1StsTrackFinder.cxx
+++ b/reco/L1/OffLineInterface/CbmL1StsTrackFinder.cxx
@@ -84,8 +84,12 @@ Int_t CbmL1StsTrackFinder::CopyL1Tracks(CbmEvent* event)
     t->SetChiSq(T.chi2);
     t->SetNDF(T.NDF);
     t->SetPidHypo(T.T[4] >= 0 ? 211 : -211);
-    t->SetTime(T.Tpv[6]);
-    t->SetTimeError(T.Cpv[20]);
+    t->SetStartTime(T.Tpv[6]);
+    t->SetStartTimeError(T.Cpv[20]);
+    t->SetFirstHitTime(T.T[6]);
+    t->SetFirstHitTimeError(T.C[20]);
+    t->SetLastHitTime(T.TLast[6]);
+    t->SetLastHitTimeError(T.CLast[20]);
 
     for (vector<int>::iterator ih = it->Hits.begin(); ih != it->Hits.end(); ++ih) {
       CbmL1HitStore& h = L1->fvHitStore[*ih];
diff --git a/reco/eventbuilder/tracks/CbmBuildEventsFromTracksReal.cxx b/reco/eventbuilder/tracks/CbmBuildEventsFromTracksReal.cxx
index af07d374936f190ea8725c878550b8a4efbc27fc..c7d8ff69d38c6fd9c565f4412cbf9b7edafbd380 100644
--- a/reco/eventbuilder/tracks/CbmBuildEventsFromTracksReal.cxx
+++ b/reco/eventbuilder/tracks/CbmBuildEventsFromTracksReal.cxx
@@ -92,8 +92,8 @@ void CbmBuildEventsFromTracksReal::Exec(Option_t*)
   for (unsigned int iTrack = 0; iTrack < nTracks; iTrack++) {
     CbmStsTrack* track = (CbmStsTrack*) fStsTracks->At(iTrack);
 
-    Double_t time   = track->GetTime();
-    Double_t timeEr = track->GetTimeError();
+    Double_t time   = track->GetStartTime();
+    Double_t timeEr = track->GetStartTimeError();
 
     SortTracks structure;
 
@@ -129,14 +129,14 @@ void CbmBuildEventsFromTracksReal::Exec(Option_t*)
     for (unsigned int iTrack = 0; iTrack < Tracks.size(); iTrack++) {
       if (Tracks[iTrack].used) continue;
 
-      float time1  = Tracks[iTrack].Track.GetTime();
-      float timeC1 = Tracks[iTrack].Track.GetTimeError();
+      float time1  = Tracks[iTrack].Track.GetStartTime();
+      float timeC1 = Tracks[iTrack].Track.GetStartTimeError();
 
       for (unsigned int iClusterTrack = 0; iClusterTrack < cluster.size(); iClusterTrack++) {
         CbmStsTrack* stsTrack = (CbmStsTrack*) fStsTracks->At(cluster[iClusterTrack]);
 
-        float time2  = stsTrack->GetTime();
-        float timeC2 = stsTrack->GetTimeError();
+        float time2  = stsTrack->GetStartTime();
+        float timeC2 = stsTrack->GetStartTimeError();
 
         float dt    = fabs(time1 - time2);
         float error = sqrt(timeC1 + timeC2);  ///&&????????????????
@@ -157,9 +157,9 @@ void CbmBuildEventsFromTracksReal::Exec(Option_t*)
     for (unsigned int iClusterTrack = 0; iClusterTrack < cluster.size(); iClusterTrack++) {
       CbmStsTrack* stsTrack = (CbmStsTrack*) fStsTracks->At(cluster[iClusterTrack]);
 
-      if (time_min > stsTrack->GetTime()) time_min = stsTrack->GetTime();
+      if (time_min > stsTrack->GetStartTime()) time_min = stsTrack->GetStartTime();
 
-      if (time_max < stsTrack->GetTime()) time_max = stsTrack->GetTime();
+      if (time_max < stsTrack->GetStartTime()) time_max = stsTrack->GetStartTime();
     }
 
     if (cluster.size() > 1) clusters.push_back(cluster);
diff --git a/reco/eventbuilder/tracks/CbmBuildEventsFromTracksReal.h b/reco/eventbuilder/tracks/CbmBuildEventsFromTracksReal.h
index 4792863af18c90e061678bbfb0ed25923913eee8..60e4be911d7691e4c073c3d72f09fd8a0282103b 100644
--- a/reco/eventbuilder/tracks/CbmBuildEventsFromTracksReal.h
+++ b/reco/eventbuilder/tracks/CbmBuildEventsFromTracksReal.h
@@ -40,7 +40,7 @@ private:
 
   static bool CompareTrackTime(const SortTracks& a, const SortTracks& b)
   {
-    return (a.Track.GetTime() < b.Track.GetTime());
+    return (a.Track.GetStartTime() < b.Track.GetStartTime());
   }
 
   TClonesArray* fStsTracks;  ///< Input array (class CbmStsDigi)
diff --git a/reco/eventbuilder/tracks/CbmEventBuilderQa.cxx b/reco/eventbuilder/tracks/CbmEventBuilderQa.cxx
index a5af7b979df06bcdc38ac0c1c477369e863bd4b3..4c54d22be79bbefcda62b742d8953078b7c2b09f 100644
--- a/reco/eventbuilder/tracks/CbmEventBuilderQa.cxx
+++ b/reco/eventbuilder/tracks/CbmEventBuilderQa.cxx
@@ -323,7 +323,7 @@ void CbmEventBuilderQa::Exec(Option_t* /*opt*/)
 
     CbmStsTrack* track = (CbmStsTrack*) fStsTracks->At(iTrack);
 
-    fTimeHisto[0]->Fill(track->GetTime());
+    fTimeHisto[0]->Fill(track->GetStartTime());
 
 
     UInt_t NHits = track->GetNofStsHits();
@@ -381,8 +381,8 @@ void CbmEventBuilderQa::Exec(Option_t* /*opt*/)
     CbmMCTrack* mcTrack = (CbmMCTrack*) fMCTracks->Get(0, mcEvent, mcTrackId);
 
     double mcTime   = mcTrack->GetStartT() + fEventList->GetEventTime(mcEvent + 1, link.GetFile());
-    double residual = track->GetTime() - mcTime;
-    double pull     = residual / track->GetTimeError();
+    double residual = track->GetStartTime() - mcTime;
+    double pull     = residual / track->GetStartTimeError();
     fTimeHisto[1]->Fill(residual);
     fTimeHisto[2]->Fill(pull);
   }
@@ -504,12 +504,12 @@ void CbmEventBuilderQa::Exec(Option_t* /*opt*/)
 
       CbmStsTrack* track = (CbmStsTrack*) fStsTracks->At(stsTrackIndex);
 
-      if ((track->GetTime()) > tLastTrack) tLastTrack = (track->GetTime());
-      if ((track->GetTime()) < tFirstTrack) tFirstTrack = (track->GetTime());
+      if ((track->GetStartTime()) > tLastTrack) tLastTrack = (track->GetStartTime());
+      if ((track->GetStartTime()) < tFirstTrack) tFirstTrack = (track->GetStartTime());
 
       double mcTime = mcTrack->GetStartT() + fEventList->GetEventTime(mcEvent + 1, link.GetFile());
 
-      fTimeHisto[24]->Fill(fabs(track->GetTime() - mcTime) / track->GetTimeError());
+      fTimeHisto[24]->Fill(fabs(track->GetStartTime() - mcTime) / track->GetStartTimeError());
 
       if (fMCEvents[mcEvent].IsReconstructable()) EventMatch.AddTrack(mcEvent);
 
@@ -518,8 +518,8 @@ void CbmEventBuilderQa::Exec(Option_t* /*opt*/)
         const int stsTrackIndex1 = event->GetStsTrackIndex(iTr1);
         CbmStsTrack* track1      = (CbmStsTrack*) fStsTracks->At(stsTrackIndex1);
 
-        fTimeHisto[25]->Fill(fabs(track->GetTime() - track1->GetTime())
-                             / sqrt(track->GetTimeError() + track1->GetTimeError()));
+        fTimeHisto[25]->Fill(fabs(track->GetStartTime() - track1->GetStartTime())
+                             / sqrt(track->GetStartTimeError() + track1->GetStartTimeError()));
       }
 
       for (int iEvent1 = 0; iEvent1 < fEvents->GetEntriesFast(); iEvent1++) {
@@ -532,10 +532,10 @@ void CbmEventBuilderQa::Exec(Option_t* /*opt*/)
           const int stsTrackIndex1 = event1->GetStsTrackIndex(iTr1);
           CbmStsTrack* track1      = (CbmStsTrack*) fStsTracks->At(stsTrackIndex1);
 
-          if (fabs(track->GetTime() - track1->GetTime()) > 8.5) continue;
+          if (fabs(track->GetStartTime() - track1->GetStartTime()) > 8.5) continue;
 
-          fTimeHisto[26]->Fill(fabs(track->GetTime() - track1->GetTime())
-                               / sqrt(track->GetTimeError() + track1->GetTimeError()));
+          fTimeHisto[26]->Fill(fabs(track->GetStartTime() - track1->GetStartTime())
+                               / sqrt(track->GetStartTimeError() + track1->GetStartTimeError()));
         }
       }
     }
@@ -589,10 +589,10 @@ void CbmEventBuilderQa::Exec(Option_t* /*opt*/)
       const int stsTrackIndex = event->GetStsTrackIndex(i);
       CbmStsTrack* track      = (CbmStsTrack*) fStsTracks->At(stsTrackIndex);
 
-      fTimeHisto[6]->Fill(track->GetTime());
+      fTimeHisto[6]->Fill(track->GetStartTime());
 
 
-      fTimeHisto[11 + iCol]->Fill(track->GetTime());
+      fTimeHisto[11 + iCol]->Fill(track->GetStartTime());
 
       UInt_t NHits = track->GetNofStsHits();
 
diff --git a/reco/eventbuilder/tracks/CbmEventBuilderQa.h b/reco/eventbuilder/tracks/CbmEventBuilderQa.h
index 1c344a41c650c4d51cd2a32d0f88b1230f881c09..0d6a63b919c2e7a8bc342075acdbec360fa92e66 100644
--- a/reco/eventbuilder/tracks/CbmEventBuilderQa.h
+++ b/reco/eventbuilder/tracks/CbmEventBuilderQa.h
@@ -67,7 +67,7 @@ private:
 
   static bool CompareTrackTime(const SortEvents& a, const SortEvents& b)
   {
-    return (a.track.GetTime() < b.track.GetTime());
+    return (a.track.GetStartTime() < b.track.GetStartTime());
   }
 
   bool CalculateIsReconstructable(const int iMCFile, const int iMCEvent,
diff --git a/reco/littrack/cbm/reco/CbmLitFitTracks.cxx b/reco/littrack/cbm/reco/CbmLitFitTracks.cxx
index fb3508b10b03c2348a2f04706ebe52ae49597dbb..d01135b26f4303522601cabeec6a3305e3b52a63 100644
--- a/reco/littrack/cbm/reco/CbmLitFitTracks.cxx
+++ b/reco/littrack/cbm/reco/CbmLitFitTracks.cxx
@@ -107,7 +107,7 @@ void CbmLitFitTracks::DoFit()
     Int_t stsTrackId      = track->GetPreviousTrackId();
     CbmStsTrack* stsTrack = static_cast<CbmStsTrack*>(fStsTracks->At(stsTrackId));
     CbmTrackParam cbmLPar;
-    cbmLPar.Set(*stsTrack->GetParamLast(), stsTrack->GetTime(), stsTrack->GetTimeError());
+    cbmLPar.Set(*stsTrack->GetParamLast(), stsTrack->GetLastHitTime(), stsTrack->GetLastHitTimeError());
     CbmLitTrackParam lpar;
     CbmLitConverterFairTrackParam::FairTrackParamToCbmLitTrackParam(&cbmLPar, &lpar);
     track->SetParamFirst(&lpar);
diff --git a/reco/littrack/cbm/utils/CbmLitConverter.h b/reco/littrack/cbm/utils/CbmLitConverter.h
index 93d9374bf6056cf267df4da59ff138db9acf1bf9..46757b3c5f0f7d1ad9fce7af9c2f147d5c339e2c 100644
--- a/reco/littrack/cbm/utils/CbmLitConverter.h
+++ b/reco/littrack/cbm/utils/CbmLitConverter.h
@@ -104,10 +104,10 @@ public:
     CbmLitTrackParam paramFirst, paramLast;
     //TODO remove this const typecasting
     CbmTrackParam cbmParamFirst;
-    cbmParamFirst.Set(*stsTrack->GetParamFirst(), stsTrack->GetTime(), stsTrack->GetTimeError());
+    cbmParamFirst.Set(*stsTrack->GetParamFirst(), stsTrack->GetFirstHitTime(), stsTrack->GetFirstHitTimeError());
     CbmLitConverterFairTrackParam::FairTrackParamToCbmLitTrackParam(&cbmParamFirst, &paramFirst);
     CbmTrackParam cbmParamLast;
-    cbmParamLast.Set(*stsTrack->GetParamLast(), stsTrack->GetTime(), stsTrack->GetTimeError());
+    cbmParamLast.Set(*stsTrack->GetParamLast(), stsTrack->GetLastHitTime(), stsTrack->GetLastHitTimeError());
     CbmLitConverterFairTrackParam::FairTrackParamToCbmLitTrackParam(&cbmParamLast, &paramLast);
     Double_t firstTime;
     Double_t lastTime;
@@ -137,10 +137,10 @@ public:
     ltrack->SetPDG(track->GetPidHypo());
     CbmLitTrackParam paramFirst, paramLast;
     CbmTrackParam cbmParamFirst;
-    cbmParamFirst.Set(*track->GetParamFirst(), track->GetTime(), track->GetTimeError());
+    cbmParamFirst.Set(*track->GetParamFirst(), track->GetFirstHitTime(), track->GetFirstHitTimeError());
     CbmLitConverterFairTrackParam::FairTrackParamToCbmLitTrackParam(&cbmParamFirst, &paramFirst);
     CbmTrackParam cbmParamLast;
-    cbmParamLast.Set(*track->GetParamLast(), track->GetTime(), track->GetTimeError());
+    cbmParamLast.Set(*track->GetParamLast(), track->GetLastHitTime(), track->GetLastHitTimeError());
     CbmLitConverterFairTrackParam::FairTrackParamToCbmLitTrackParam(&cbmParamLast, &paramLast);
     ltrack->SetParamFirst(&paramFirst);
     ltrack->SetParamLast(&paramLast);
@@ -330,6 +330,10 @@ public:
 
   static void GetStsTrackTimes(const CbmStsTrack* track, Double_t& firstTime, Double_t& lastTime)
   {
+    firstTime = track->GetFirstHitTime();
+    lastTime  = track->GetLastHitTime();
+    return;
+
     static FairRootManager* ioman = 0;
     static CbmVertex* primVertex  = 0;
     static TClonesArray* stsHits  = 0;
@@ -359,10 +363,10 @@ public:
     CbmLitTrackParam paramFirst;
     CbmLitTrackParam paramLast;
     CbmTrackParam cbmParamFirst;
-    cbmParamFirst.Set(*track->GetParamFirst(), track->GetTime(), track->GetTimeError());
+    cbmParamFirst.Set(*track->GetParamFirst(), track->GetFirstHitTime(), track->GetFirstHitTimeError());
     CbmLitConverterFairTrackParam::FairTrackParamToCbmLitTrackParam(&cbmParamFirst, &paramFirst);
     CbmTrackParam cbmParamLast;
-    cbmParamLast.Set(*track->GetParamLast(), track->GetTime(), track->GetTimeError());
+    cbmParamLast.Set(*track->GetParamLast(), track->GetLastHitTime(), track->GetLastHitTimeError());
     CbmLitConverterFairTrackParam::FairTrackParamToCbmLitTrackParam(&cbmParamLast, &paramLast);
 
     Double_t x = paramFirst.GetX();
diff --git a/reco/tracking/global/CbmGlobalTrackingTask.cxx b/reco/tracking/global/CbmGlobalTrackingTask.cxx
index 76e03e19e59f02e509f2c1bac9d667c75a0bc6b6..7a99c5d044e43b5783809c70c50fa46fb3eaf15b 100644
--- a/reco/tracking/global/CbmGlobalTrackingTask.cxx
+++ b/reco/tracking/global/CbmGlobalTrackingTask.cxx
@@ -143,7 +143,7 @@ void CbmGlobalTrackingTask::Exec(Option_t* /*opt*/)
 #endif  //CBM_GLOBALTB_PRINT_PERF
     //fTofGeometry.Find(param->GetX(), param->GetCovariance(0, 0), param->GetY(), param->GetCovariance(1, 1), param->GetZ(),
     //track->GetTime(), track->GetTimeError(), param->GetTx(), TMath::Sqrt(param->GetCovariance(2, 2)), param->GetTy(), TMath::Sqrt(param->GetCovariance(3, 3)), tofHitInd);
-    fTofGeometry.Find(param, track->GetTime(), track->GetTimeError(), tofHitInd, trackLength);
+    fTofGeometry.Find(param, track->GetLastHitTime(), track->GetLastHitTimeError(), tofHitInd, trackLength);
     globalTrack->SetTofHitIndex(tofHitInd);
     globalTrack->SetLength(stsTrackLength + trackLength);
     globalTrack->SetParamFirst(track->GetParamFirst());