diff --git a/algo/ca/core/pars/CaField.cxx b/algo/ca/core/pars/CaField.cxx
index c5bddcc6c1542aec6c0df77939ac54574d8f6f2f..abd749d612f434afb6b7e5ed14c8ec8597a8960c 100644
--- a/algo/ca/core/pars/CaField.cxx
+++ b/algo/ca/core/pars/CaField.cxx
@@ -17,13 +17,16 @@ using namespace cbm::algo::ca;
 //
 template<typename DataT>
 bool FieldRegion<DataT>::fgForceUseOfOriginalField = false;
+
 template<typename DataT>
 std::function<std::tuple<double, double, double>(double x, double y, double z)>
-  FieldRegion<DataT>::fgOdiginalField([](double, double, double) {
+  FieldRegion<DataT>::fgOriginalField([](double, double, double) {
     assert(false && "ca::FieldRegion: The original field is not set, use cbm::ca::tools::SetCbmField()");
     return std::tuple(kfdefs::Undef<double>, kfdefs::Undef<double>, kfdefs::Undef<double>);
   });
 
+template<typename DataT>
+bool FieldRegion<DataT>::fgIsZeroOriginalField = false;
 
 //----------------------------------------------------------------------------------------------------------------------
 //
diff --git a/algo/ca/core/pars/CaField.h b/algo/ca/core/pars/CaField.h
index dedb95fe0a6d3fe064bf2da67ac3df14308a6082..e518aa0cdd9b579876f75c98947a7f64281ce373 100644
--- a/algo/ca/core/pars/CaField.h
+++ b/algo/ca/core/pars/CaField.h
@@ -220,7 +220,13 @@ namespace cbm::algo::ca
     FieldValue<DataT> Get(const DataT& x, const DataT& y, const DataT& z) const;
 
     /// Is the field region empty?
-    bool IsZeroField() const { return fIsZeroField; }
+    bool IsZeroField() const
+    {
+      if (fgForceUseOfOriginalField || fUseOriginalField) {
+        return fgIsZeroOriginalField;
+      }
+      return fIsZeroField;
+    }
 
     /// Interpolates the magnetic field by three nodal points and sets the result to this FieldRegion object
     /// The result is a quadratic interpolation of the field as a function of z
@@ -278,9 +284,11 @@ namespace cbm::algo::ca
     static void ForceUseOfOriginalField(bool v = true) { fgForceUseOfOriginalField = v; }
 
     /// Set the original field
-    static void SetOriginalField(std::function<std::tuple<double, double, double>(double x, double y, double z)> f)
+    static void SetOriginalField(std::function<std::tuple<double, double, double>(double x, double y, double z)> f,
+                                 bool isZeroField)
     {
-      fgOdiginalField = f;
+      fgOriginalField       = f;
+      fgIsZeroOriginalField = isZeroField;
     }
 
     /// \brief Copies all/one entries from the other class
@@ -295,7 +303,8 @@ namespace cbm::algo::ca
 
    public:
     static bool fgForceUseOfOriginalField;
-    static std::function<std::tuple<double, double, double>(double x, double y, double z)> fgOdiginalField;
+    static std::function<std::tuple<double, double, double>(double x, double y, double z)> fgOriginalField;
+    static bool fgIsZeroOriginalField;
 
     // TODO: Probably it's better to have arrays instead of separate fvec values? (S.Zharko)
     // Bx(z) = cx0 + cx1*(z-z0) + cx2*(z-z0)^2
@@ -368,7 +377,7 @@ namespace cbm::algo::ca
 
   }  // CopyBase
 
-  /// \brief Explicit instantiation declarations for FieldRegion class with specific template types to ensure proper fgOdiginalField definition
+  /// \brief Explicit instantiation declarations for FieldRegion class with specific template types to ensure proper fgOriginalField definition
   extern template class FieldRegion<fvec>;
   extern template class FieldRegion<float>;
   extern template class FieldRegion<double>;
diff --git a/reco/L1/catools/CaToolsField.h b/reco/L1/catools/CaToolsField.h
index 43fd3fda012a12e6b639632c10950726225523c8..e747cc908fbee7f187572f126ca69dc69515769b 100644
--- a/reco/L1/catools/CaToolsField.h
+++ b/reco/L1/catools/CaToolsField.h
@@ -37,7 +37,12 @@ namespace cbm::ca::tools
         return std::tuple(0., 0., 0.);
       }
     };
-    ca::FieldRegion<ca::fvec>::SetOriginalField(fld);
+    if (FairRunAna::Instance()->GetField()) {
+      ca::FieldRegion<ca::fvec>::SetOriginalField(fld, false);
+    }
+    else {
+      ca::FieldRegion<ca::fvec>::SetOriginalField(fld, true);
+    }
   }
 
 }  // namespace cbm::ca::tools