diff --git a/reco/L1/CbmL1Performance.cxx b/reco/L1/CbmL1Performance.cxx
index f71cb12b6c0dcd0238c83e4e2903aa5318c84811..dee1d9b5a0d8d251c88d865d9a8544299396f800 100644
--- a/reco/L1/CbmL1Performance.cxx
+++ b/reco/L1/CbmL1Performance.cxx
@@ -1033,13 +1033,13 @@ void CbmL1::TrackFitPerformance()
   static TH2F* kaon_res_pt_vtxt;
   static TH2F* pton_res_pt_vtxt;
 
-  static TH2F* pion_res_pz_fstt;
-  static TH2F* kaon_res_pz_fstt;
-  static TH2F* pton_res_pz_fstt;
+  static TH2F* pion_res_p_fstt;
+  static TH2F* kaon_res_p_fstt;
+  static TH2F* pton_res_p_fstt;
 
-  static TH2F* pion_res_pz_vtxt;
-  static TH2F* kaon_res_pz_vtxt;
-  static TH2F* pton_res_pz_vtxt;
+  static TH2F* pion_res_p_vtxt;
+  static TH2F* kaon_res_p_vtxt;
+  static TH2F* pton_res_p_vtxt;
 
   static bool first_call = 1;
 
@@ -1059,21 +1059,21 @@ void CbmL1::TrackFitPerformance()
       PRes2DPrim = new TH2F("PRes2DPrim", "Resolution P vs P", 100, 0., 20., 100, -15., 15.);
       PRes2DSec  = new TH2F("PRes2DSec", "Resolution P vs P", 100, 0., 20., 100, -15., 15.);
 
-      pion_res_pt_fstt = new TH2F("pion_res_pt_fstt", "", 100, 0, 10, 1000, 0, 500);
-      kaon_res_pt_fstt = new TH2F("kaon_res_pt_fstt", "", 100, 0, 10, 1000, 0, 500);
-      pton_res_pt_fstt = new TH2F("pton_res_pt_fstt", "", 100, 0, 10, 1000, 0, 500);
+      pion_res_pt_fstt = new TH2F("pion_res_pt_fstt", "", 100, 0, 10, 1000, -500, 500);
+      kaon_res_pt_fstt = new TH2F("kaon_res_pt_fstt", "", 100, 0, 10, 1000, -500, 500);
+      pton_res_pt_fstt = new TH2F("pton_res_pt_fstt", "", 100, 0, 10, 1000, -500, 500);
 
-      pion_res_pt_vtxt = new TH2F("pion_res_pt_vtxt", "", 100, 0, 10, 1000, 0, 5000);
-      kaon_res_pt_vtxt = new TH2F("kaon_res_pt_vtxt", "", 100, 0, 10, 1000, 0, 5000);
-      pton_res_pt_vtxt = new TH2F("pton_res_pt_vtxt", "", 100, 0, 10, 1000, 0, 5000);
+      pion_res_pt_vtxt = new TH2F("pion_res_pt_vtxt", "", 100, 0, 10, 1000, -5000, 5000);
+      kaon_res_pt_vtxt = new TH2F("kaon_res_pt_vtxt", "", 100, 0, 10, 1000, -5000, 5000);
+      pton_res_pt_vtxt = new TH2F("pton_res_pt_vtxt", "", 100, 0, 10, 1000, -5000, 5000);
 
-      pion_res_pz_fstt = new TH2F("pion_res_pz_fstt", "", 100, 0, 10, 1000, 0, 500);
-      kaon_res_pz_fstt = new TH2F("kaon_res_pz_fstt", "", 100, 0, 10, 1000, 0, 500);
-      pton_res_pz_fstt = new TH2F("pton_res_pz_fstt", "", 100, 0, 10, 1000, 0, 500);
+      pion_res_p_fstt = new TH2F("pion_res_p_fstt", "", 100, 0, 10, 1000, -500, 500);
+      kaon_res_p_fstt = new TH2F("kaon_res_p_fstt", "", 100, 0, 10, 1000, -500, 500);
+      pton_res_p_fstt = new TH2F("pton_res_p_fstt", "", 100, 0, 10, 1000, -500, 500);
 
-      pion_res_pz_vtxt = new TH2F("pion_res_pz_vtxt", "", 100, 0, 10, 1000, 0, 5000);
-      kaon_res_pz_vtxt = new TH2F("kaon_res_pz_vtxt", "", 100, 0, 10, 1000, 0, 5000);
-      pton_res_pz_vtxt = new TH2F("pton_res_pz_vtxt", "", 100, 0, 10, 1000, 0, 5000);
+      pion_res_p_vtxt = new TH2F("pion_res_p_vtxt", "", 100, 0, 10, 1000, -5000, 5000);
+      kaon_res_p_vtxt = new TH2F("kaon_res_p_vtxt", "", 100, 0, 10, 1000, -5000, 5000);
+      pton_res_p_vtxt = new TH2F("pton_res_p_vtxt", "", 100, 0, 10, 1000, -5000, 5000);
 
       struct {
         const char* name;
@@ -1186,6 +1186,8 @@ void CbmL1::TrackFitPerformance()
       double dx = trPar.x[0] - mcP.xIn;
       double dy = trPar.y[0] - mcP.yIn;
       double dt = sqrt(dx * dx + dy * dy);
+      // make dt distance negative for the half of the tracks to ease the gaussian fit and the rms calculation
+      if (mc.ID % 2) dt = -dt;
       double pt = sqrt(mcP.px * mcP.px + mcP.py * mcP.py);
       h_fit[0]->Fill(dx * 1.e4);
       h_fit[1]->Fill(dy * 1.e4);
@@ -1201,15 +1203,15 @@ void CbmL1::TrackFitPerformance()
         PRes2DPrim->Fill(mcP.p, (1. / fabs(trPar.qp[0]) - mcP.p) / mcP.p * 100.);
 
         if (abs(mcTrack.pdg == 211)) {
-          pion_res_pz_fstt->Fill(mcP.pz, dt * 1.e4);
+          pion_res_p_fstt->Fill(mcP.p, dt * 1.e4);
           pion_res_pt_fstt->Fill(pt, dt * 1.e4);
         }
         if (abs(mcTrack.pdg == 321)) {
-          kaon_res_pz_fstt->Fill(mcP.pz, dt * 1.e4);
+          kaon_res_p_fstt->Fill(mcP.p, dt * 1.e4);
           kaon_res_pt_fstt->Fill(pt, dt * 1.e4);
         }
         if (abs(mcTrack.pdg == 2212)) {
-          pton_res_pz_fstt->Fill(mcP.pz, dt * 1.e4);
+          pton_res_p_fstt->Fill(mcP.p, dt * 1.e4);
           pton_res_pt_fstt->Fill(pt, dt * 1.e4);
         }
       }
@@ -1459,18 +1461,21 @@ void CbmL1::TrackFitPerformance()
         double dx = trPar.x[0] - mc.x;
         double dy = trPar.y[0] - mc.y;
         double dt = sqrt(dx * dx + dy * dy);
+        // make dt distance negative for the half of the tracks to ease the gaussian fit and the rms calculation
+        if (mc.ID % 2) dt = -dt;
+
         double pt = sqrt(mc.px * mc.px + mc.py * mc.py);
 
         if (abs(mc.pdg == 211)) {
-          pion_res_pz_vtxt->Fill(mc.pz, dt * 1.e4);
+          pion_res_p_vtxt->Fill(mc.p, dt * 1.e4);
           pion_res_pt_vtxt->Fill(pt, dt * 1.e4);
         }
         if (abs(mc.pdg == 321)) {
-          kaon_res_pz_vtxt->Fill(mc.pz, dt * 1.e4);
+          kaon_res_p_vtxt->Fill(mc.p, dt * 1.e4);
           kaon_res_pt_vtxt->Fill(pt, dt * 1.e4);
         }
         if (abs(mc.pdg == 2212)) {
-          pton_res_pz_vtxt->Fill(mc.pz, dt * 1.e4);
+          pton_res_p_vtxt->Fill(mc.p, dt * 1.e4);
           pton_res_pt_vtxt->Fill(pt, dt * 1.e4);
         }