diff --git a/reco/alignment/CbmBbaAlignmentTask.cxx b/reco/alignment/CbmBbaAlignmentTask.cxx
index 807ff71c70566ef3e2469113762ac1390444636d..c8d4f6f4c48dd85fb0bd5ec37ff02f85ee016c76 100644
--- a/reco/alignment/CbmBbaAlignmentTask.cxx
+++ b/reco/alignment/CbmBbaAlignmentTask.cxx
@@ -184,7 +184,7 @@ InitStatus CbmBbaAlignmentTask::Init()
     fHistoDir->mkdir(n1);
     fHistoDir->cd(n1);
 
-    int nBins = 1000;
+    int nBins = 100;
 
     double sizeX  = 0.1;
     double sizeY  = 0.1;
@@ -199,12 +199,12 @@ InitStatus CbmBbaAlignmentTask::Init()
       if (i == -1) {
         sizeX  = 20.;
         sizeY  = 20.;
-        sizePX = 100.;
-        sizePY = 100.;
+        sizePX = 20.;
+        sizePY = 20.;
       }
 
       if (i == 0 || i == 1) {
-        sizeX = 0.1;
+        sizeX = 1.0;
         sizeY = 1.0;
       }
       if (i == 2) {
@@ -212,14 +212,14 @@ InitStatus CbmBbaAlignmentTask::Init()
         sizeY = 5.;
       }
       if (i == 3) {
-        sizeX  = 10.;
+        sizeX  = 5.;
         sizeY  = 20.;
-        sizePX = 100.;
+        sizePX = 10.;
       }
       if (i == 4) {
-        sizeX  = 20.;
+        sizeX  = 5.;
         sizeY  = 10.;
-        sizePY = 100.;
+        sizePY = 10.;
       }
       if (i >= 5) {
         sizeX = 5.;
@@ -600,9 +600,12 @@ void CbmBbaAlignmentTask::Finish()
       if (!t.fIsActive) continue;
       // calculate the residuals for all tracks at each fitNode before alignment
       for (unsigned int in = 0; in < t.fAlignedTrack.fNodes.size(); in++) {
-        CbmKfTrackFitter::FitNode& node = t.fAlignedTrack.fNodes[in];
-
-        if (!node.fIsFitted || !node.fIsXySet) continue;
+        CbmKfTrackFitter::Track tr      = t.fAlignedTrack;
+        CbmKfTrackFitter::FitNode& node = tr.fNodes[in];
+        if (!node.fIsXySet) continue;
+        node.fIsXySet = false;
+        tr.MakeConsistent();
+        fFitter.FitTrack(tr);
 
         Sensor& s = fSensors[node.fReference1];
 
@@ -663,9 +666,12 @@ void CbmBbaAlignmentTask::Finish()
     if (!t.fIsActive) continue;
     // calculate the residuals for all tracks at each fitNode before alignment
     for (unsigned int in = 0; in < t.fAlignedTrack.fNodes.size(); in++) {
-      CbmKfTrackFitter::FitNode& node = t.fAlignedTrack.fNodes[in];
-
-      if (!node.fIsFitted || !node.fIsXySet) continue;
+      CbmKfTrackFitter::Track tr      = t.fAlignedTrack;
+      CbmKfTrackFitter::FitNode& node = tr.fNodes[in];
+      if (!node.fIsXySet) continue;
+      node.fIsXySet = false;
+      tr.MakeConsistent();
+      fFitter.FitTrack(tr);
 
       Sensor& s = fSensors[node.fReference1];