diff --git a/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_ATLxk.cxx b/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_ATLxk.cxx
index 20e6fe8943d2b5f2460cc4d682f317b71603d4cc..41606fdf81236d7ba267962d2fbc1ddcd3fd1ae7 100644
--- a/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_ATLxk.cxx
+++ b/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_ATLxk.cxx
@@ -1439,7 +1439,11 @@ void InDet::SiSpacePointsSeedMaker_ATLxk::production3Sp
         float B2  = B*B;
         if (B2  > ipt2K*S2 || dT*S2 > B2*CSA) continue;
 
-        float Im  = fabs((A-B*R)*R);
+        float y0=1./(2*B);
+        float x0=-A*y0;
+	float rTrack = sqrt(S2/B2)/2 ;
+        float Im = fabs(-rTrack + sqrt(rTrack*rTrack +2*x0*R +R*R));
+
 
         if (Im <= imax) {
           float dr = data.R[b];