diff --git a/Detector/DetCRD/scripts/TDR_o1_v01/tracking.py b/Detector/DetCRD/scripts/TDR_o1_v01/tracking.py
index cf78fb4edde4d46a8c19d888cbc26a442d24550d..dfb462041c0b3d6797eb140dc576fc638050e543 100644
--- a/Detector/DetCRD/scripts/TDR_o1_v01/tracking.py
+++ b/Detector/DetCRD/scripts/TDR_o1_v01/tracking.py
@@ -81,8 +81,8 @@ digiSIT.IsStrip = False
 digiSIT.SimTrackHitCollection = "SITCollection"
 digiSIT.TrackerHitCollection = sithitname
 digiSIT.TrackerHitAssociationCollection = "SITTrackerHitAssociation"
-digiSIT.ResolutionU = [0.0072]
-digiSIT.ResolutionV = [0.086]
+digiSIT.ResolutionU = [0.0098]
+digiSIT.ResolutionV = [0.0433]
 digiSIT.UsePlanarTag = True
 digiSIT.ParameterizeResolution = False
 digiSIT.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452]
@@ -94,8 +94,8 @@ digiSET.IsStrip = False
 digiSET.SimTrackHitCollection = "SETCollection"
 digiSET.TrackerHitCollection = sethitname
 digiSET.TrackerHitAssociationCollection = "SETTrackerHitAssociation"
-digiSET.ResolutionU = [0.0072]
-digiSET.ResolutionV = [0.086]
+digiSET.ResolutionU = [0.005]
+digiSET.ResolutionV = [0.021]
 digiSET.UsePlanarTag = True
 digiSET.ParameterizeResolution = False
 digiSET.ParametersU = [2.29655e-03, 0.965899e-03, 0.584699e-03, 17.0856, 84.566, 12.4695e-03, -0.0643059, 0.168662, 1.87998e-03, 0.514452]
@@ -162,8 +162,10 @@ tracking.NDivisionsInTheta = 10
 tracking.NDivisionsInPhi = 60
 tracking.NDivisionsInPhiFTD = 16
 tracking.MinDistCutAttach = 50
+# for p=1GeV, theta=10degree, Chi2FitCut = 1500, HelixMaxChi2 = 1000000, Chi2WZ = 0.02
 tracking.Chi2FitCut = 200
 tracking.MaxChi2PerHit = 200
+tracking.HelixMaxChi2  = 50000
 tracking.Chi2WZTriplet = 0.1
 tracking.Chi2WZQuartet = 0.1
 tracking.Chi2WZSeptet  = 0.1
@@ -217,6 +219,7 @@ full.FTDHitToTrackDistance = 5.
 full.SITHitToTrackDistance = 3.
 full.SETHitToTrackDistance = 5.
 full.MinChi2ProbForSiliconTracks = 0
+full.MaxChi2PerHit = 500
 #full.OutputLevel = DEBUG
 
 from Configurables import TPCDndxAlg
diff --git a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp
index df203553f486e813a95b88c99feb094154a8cd31..9515f3f3274a9097439db791871c5b102294c145 100644
--- a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp
+++ b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp
@@ -1239,7 +1239,7 @@ TrackExtended * SiliconTrackingAlg::TestTriplet(TrackerHitExtended * outerHit,
   
   debug() << " TestTriplet: Use fastHelixFit " << endmsg ;  
   
-  _fastfitter->fastHelixFit(NPT, xh, yh, rh, ph, wrh, zh, wzh,iopt, par, epar, chi2RPhi, chi2Z);
+  _fastfitter->fastHelixFit(NPT, xh, yh, rh, ph, wrh, zh, wzh,iopt, par, epar, chi2RPhi, chi2Z, _helix_max_chi2);
   par[3] = par[3]*par[0]/fabs(par[0]);
 
   // get helix parameters
@@ -1606,7 +1606,7 @@ int SiliconTrackingAlg::BuildTrack(TrackerHitExtended * outerHit,
       
       //debug() << "######## number of hits to fit with _fastfitter = " << NPT << endmsg;
       
-      _fastfitter->fastHelixFit(NPT, xh, yh, rh, ph, wrh, zh, wzh,iopt, par, epar, chi2RPhi, chi2Z);
+      _fastfitter->fastHelixFit(NPT, xh, yh, rh, ph, wrh, zh, wzh,iopt, par, epar, chi2RPhi, chi2Z, _helix_max_chi2);
       par[3] = par[3]*par[0]/fabs(par[0]);
       
       
@@ -1770,7 +1770,7 @@ void SiliconTrackingAlg::CreateTrack(TrackExtended * trackAR ) {
       float chi2Z;
       int ndf = 2*NPT - 5;
       
-      _fastfitter->fastHelixFit(NPT, xh, yh, rh, ph, wrh, zh, wzh,iopt, par, epar, chi2RPhi, chi2Z);
+      _fastfitter->fastHelixFit(NPT, xh, yh, rh, ph, wrh, zh, wzh,iopt, par, epar, chi2RPhi, chi2Z, _helix_max_chi2);
       par[3] = par[3]*par[0]/fabs(par[0]);
       
       float omega = par[0];
@@ -1816,7 +1816,7 @@ void SiliconTrackingAlg::CreateTrack(TrackExtended * trackAR ) {
             }
           }
           
-          _fastfitter->fastHelixFit(NPT, xh, yh, rh, ph, wrh, zh, wzh,iopt, par, epar, chi2RPhi, chi2Z);
+          _fastfitter->fastHelixFit(NPT, xh, yh, rh, ph, wrh, zh, wzh,iopt, par, epar, chi2RPhi, chi2Z, _helix_max_chi2);
           par[3] = par[3]*par[0]/fabs(par[0]);
           
           float chi2Cur = chi2RPhi*_chi2WRPhiSeptet+chi2Z*_chi2WZSeptet;
@@ -2570,7 +2570,7 @@ int SiliconTrackingAlg::AttachHitToTrack(TrackExtended * trackAR, TrackerHitExte
   float chi2Z = 0 ;
   
   
-  int error = _fastfitter->fastHelixFit(NPT, xh, yh, rh, ph, wrh, zh, wzh,iopt, par, epar, chi2RPhi, chi2Z);
+  int error = _fastfitter->fastHelixFit(NPT, xh, yh, rh, ph, wrh, zh, wzh,iopt, par, epar, chi2RPhi, chi2Z, _helix_max_chi2);
   par[3] = par[3]*par[0]/fabs(par[0]);
   
   
diff --git a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.h b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.h
index 9579ed8ee7542c82c2f1c6de1887dfcf489cf759..2d0bbd2d2bd42c2bae0b63568ea86ee07347e374 100644
--- a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.h
+++ b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.h
@@ -255,6 +255,7 @@ class SiliconTrackingAlg : public GaudiAlgorithm {
   Gaudi::Property<bool> _ElossOn{this, "EnergyLossOn", true};
   Gaudi::Property<bool> _SmoothOn{this, "SmoothOn", true};
   Gaudi::Property<float> _helix_max_r{this, "HelixMaxR", 2000.};
+  Gaudi::Property<float> _helix_max_chi2{this, "HelixMaxChi2", 5000.};
   Gaudi::Property<bool> m_dumpTime{this, "DumpTime", false};
   Gaudi::Property<bool> m_debug{this, "Debug", false};