diff --git a/reco/L1/qa/CbmCaTrackFitQa.cxx b/reco/L1/qa/CbmCaTrackFitQa.cxx
index f109f0576716d0a514bef804dc526821068b6cbe..f642be83d43949bbb5d22a2453e65b8c4f3fddda 100644
--- a/reco/L1/qa/CbmCaTrackFitQa.cxx
+++ b/reco/L1/qa/CbmCaTrackFitQa.cxx
@@ -86,6 +86,21 @@ CbmQaCanvas* TrackFitQa::CreatePullPlot()
   return pCanv;
 }
 
+// ---------------------------------------------------------------------------------------------------------------------
+void TrackFitQa::FillResAndPull(ETrackParType type, double recoVal, double recoErr, double trueVal)
+{
+  if (fvbParIgnored[type]) {
+    return;
+  }
+  double res  = recoVal - trueVal;
+  double pull = res / recoErr;
+  if (type == ETrackParType::kQP) {  // for the q/p parameter, the residual is calculated for the momentum
+    res = (recoVal / trueVal - 1.);
+  }
+  fvphResiduals[type]->Fill(res);
+  fvphPulls[type]->Fill(pull);
+}
+
 // ---------------------------------------------------------------------------------------------------------------------
 //
 void TrackFitQa::Init()
@@ -115,7 +130,7 @@ void TrackFitQa::Init()
   CreateResidualHisto(ETrackParType::kY, "res_y", "y-coordinate;y^{reco} - y^{MC} [cm]");
   CreateResidualHisto(ETrackParType::kTX, "res_tx", "slope along x-axis;T_{x}^{reco} - T_{x}^{MC}");
   CreateResidualHisto(ETrackParType::kTY, "res_ty", "slope along y-axis;T_{y}^{reco} - T_{y}^{MC}");
-  CreateResidualHisto(ETrackParType::kQP, "res_qp", "charge over mom.;(q/p)^{reco} - (q/p)^{MC} [ec/GeV]");
+  CreateResidualHisto(ETrackParType::kQP, "res_P", "momentum; (p^{reco} - p^{MC})/p^{MC} []");
   CreateResidualHisto(ETrackParType::kTIME, "res_t", "time;t^{reco} - t^{MC} [ns]");
   CreateResidualHisto(ETrackParType::kVI, "res_vi", "inverse speed;v^{-1}_{reco} - v^{-1}_{MC} [c^{-1}]");
 
@@ -151,40 +166,40 @@ void TrackFitQa::Fill(const TrackParamV& trPar, const tools::MCPoint& mcPoint, b
   fitter.SetTrack(trPar);
   cbm::algo::ca::FieldRegion fieldRegion;
   fieldRegion.SetUseOriginalField();  // Precised magnetic field is used
-  fitter.Extrapolate(mcPoint.GetZOut(), fieldRegion);
+  fitter.Extrapolate(mcPoint.GetZ(), fieldRegion);
 
   const TrackParamV& trParExtr = fitter.Tr();  // Track parameters extrapolated to given MC point
 
   // ** Time-independent measurements **
-  FillResAndPull(ETrackParType::kX, trPar.GetX()[0], trParExtr.GetXError()[0], mcPoint.GetXOut());
-  FillResAndPull(ETrackParType::kY, trPar.GetY()[0], trParExtr.GetYError()[0], mcPoint.GetYOut());
-  FillResAndPull(ETrackParType::kTX, trPar.GetTx()[0], trParExtr.GetTxError()[0], mcPoint.GetTxOut());
-  FillResAndPull(ETrackParType::kTY, trPar.GetTy()[0], trParExtr.GetTyError()[0], mcPoint.GetTyOut());
-  FillResAndPull(ETrackParType::kQP, trPar.GetQp()[0], trParExtr.GetQpError()[0], mcPoint.GetQpOut());
+  FillResAndPull(ETrackParType::kX, trParExtr.GetX()[0], trParExtr.GetXError()[0], mcPoint.GetX());
+  FillResAndPull(ETrackParType::kY, trParExtr.GetY()[0], trParExtr.GetYError()[0], mcPoint.GetY());
+  FillResAndPull(ETrackParType::kTX, trParExtr.GetTx()[0], trParExtr.GetTxError()[0], mcPoint.GetTx());
+  FillResAndPull(ETrackParType::kTY, trParExtr.GetTy()[0], trParExtr.GetTyError()[0], mcPoint.GetTy());
+  FillResAndPull(ETrackParType::kQP, trParExtr.GetQp()[0], trParExtr.GetQpError()[0], mcPoint.GetQp());
 
   // Momentum resolution
   double recoP = std::fabs(mcPoint.GetCharge() / trParExtr.GetQp()[0]);  // reco mom. (with MC charge)
-  double resP  = recoP - mcPoint.GetPOut();                              // residual of total momentum
+  double resP  = recoP - mcPoint.GetP();                                 // residual of total momentum
 
   // Phi resolution
-  double mcPhi  = mcPoint.GetPhiOut();
-  double recoTx = trPar.Tx()[0];
-  double recoTy = trPar.Ty()[0];
+  double mcPhi  = mcPoint.GetPhi();
+  double recoTx = trParExtr.Tx()[0];
+  double recoTy = trParExtr.Ty()[0];
   double resPhi = atan2(recoTx * cos(mcPhi) + recoTy * sin(mcPhi), -recoTx * cos(mcPhi) + recoTy * sin(mcPhi));
 
   // Theta resolution
-  double resTheta = trPar.GetTheta()[0] - mcPoint.GetThetaOut();  // residual of polar angle
+  double resTheta = trParExtr.GetTheta()[0] - mcPoint.GetTheta();  // residual of polar angle
 
   resPhi = std::atan2(std::sin(resPhi), std::cos(resPhi));  // overflow over (-pi, pi] protection
 
-  fph_res_p_pMC->Fill(mcPoint.GetPOut(), resP);
-  fph_res_phi_phiMC->Fill(mcPoint.GetPhiOut(), resPhi);
-  fph_res_theta_thetaMC->Fill(mcPoint.GetThetaOut(), resTheta);
+  fph_res_p_pMC->Fill(mcPoint.GetP(), resP);
+  fph_res_phi_phiMC->Fill(mcPoint.GetPhi(), resPhi);
+  fph_res_theta_thetaMC->Fill(mcPoint.GetTheta(), resTheta);
 
   // ** Time-dependent measurements **
   if (bTimeMeasured) {
-    FillResAndPull(ETrackParType::kTIME, trPar.GetTime()[0], trPar.GetTimeError()[0], mcPoint.GetTime());
-    FillResAndPull(ETrackParType::kVI, trPar.GetVi()[0], trPar.GetViError()[0], mcPoint.GetInvSpeedOut());
+    FillResAndPull(ETrackParType::kTIME, trParExtr.GetTime()[0], trParExtr.GetTimeError()[0], mcPoint.GetTime());
+    FillResAndPull(ETrackParType::kVI, trParExtr.GetVi()[0], trParExtr.GetViError()[0], mcPoint.GetInvSpeed());
   }
 }
 
@@ -206,8 +221,8 @@ void TrackFitQa::SetDefaultProperties()
   fvRLo[ETrackParType::kTY]     = -4.e-3;  ///< Lower boundary, residual of slope along y-axis
   fvRUp[ETrackParType::kTY]     = +4.e-3;  ///< Upper boundary, residual of slope along y-axis
   fvRBins[ETrackParType::kQP]   = 200;     ///< Number of bins, residual of q/p
-  fvRLo[ETrackParType::kQP]     = -1.;     ///< Lower boundary, residual of q/p [ec/GeV]
-  fvRUp[ETrackParType::kQP]     = +1.;     ///< Upper boundary, residual of q/p [ec/GeV]
+  fvRLo[ETrackParType::kQP]     = -.3;     ///< Lower boundary, residual of q/p [ec/GeV]
+  fvRUp[ETrackParType::kQP]     = +.3;     ///< Upper boundary, residual of q/p [ec/GeV]
   fvRBins[ETrackParType::kTIME] = 200;     ///< Number of bins, residual of time
   fvRLo[ETrackParType::kTIME]   = -1.;     ///< Lower boundary, residual of time [ns]
   fvRUp[ETrackParType::kTIME]   = +1.;     ///< Upper boundary, residual of time [ns]
diff --git a/reco/L1/qa/CbmCaTrackFitQa.h b/reco/L1/qa/CbmCaTrackFitQa.h
index 0ce34ddd9b01c34033ccf7cf1217d17a8b616419..2e8eee53e94933d7f2c3812e0be6dd7820f642a3 100644
--- a/reco/L1/qa/CbmCaTrackFitQa.h
+++ b/reco/L1/qa/CbmCaTrackFitQa.h
@@ -203,20 +203,4 @@ namespace cbm::ca
     ClassDefNV(TrackFitQa, 0);
   };
 
-  // *****************************
-  // **  Inline implementation  **
-  // *****************************
-
-  // ---------------------------------------------------------------------------------------------------------------------
-  // TODO: Test this function for performance penalties
-  inline void TrackFitQa::FillResAndPull(ETrackParType type, double recoVal, double recoErr, double trueVal)
-  {
-    if (fvbParIgnored[type]) {
-      return;
-    }
-    double res  = recoVal - trueVal;
-    double pull = res / recoErr;
-    fvphResiduals[type]->Fill(res);
-    fvphPulls[type]->Fill(pull);
-  }
 }  // namespace cbm::ca
diff --git a/reco/L1/qa/CbmCaTrackTypeQa.cxx b/reco/L1/qa/CbmCaTrackTypeQa.cxx
index 00407aefc4400e77446e1e4773ba1fe2decb1a90..db6156bfcbb0a73ca04a33e8a1830461766eb208 100644
--- a/reco/L1/qa/CbmCaTrackTypeQa.cxx
+++ b/reco/L1/qa/CbmCaTrackTypeQa.cxx
@@ -226,9 +226,7 @@ void TrackTypeQa::FillRecoTrack(int iTrkReco, double weight)
         if (iPfst > -1) {
           const auto& mcPoint = fpMCData->GetPoint(iPfst);
           TrackParamV trPar(recoTrack);
-          fTrackFit.SetTrack(trPar);
-          fTrackFit.Extrapolate(mcPoint.GetZOut(), fFieldRegion);
-          fpFitQaFirstHit->Fill(fTrackFit.Tr(), mcPoint, isTimeFitted);
+          fpFitQaFirstHit->Fill(trPar, mcPoint, isTimeFitted);
         }
       }
 
@@ -239,8 +237,6 @@ void TrackTypeQa::FillRecoTrack(int iTrkReco, double weight)
         if (iPlst > -1) {
           const auto& mcPoint = fpMCData->GetPoint(iPlst);
           TrackParamV trPar(recoTrack.TLast);
-          fTrackFit.SetTrack(trPar);
-          fTrackFit.Extrapolate(mcPoint.GetZOut(), fFieldRegion);
           fpFitQaLastHit->Fill(trPar, mcPoint, isTimeFitted);
         }
       }