diff --git a/MagneticField/MagFieldElements/CMakeLists.txt b/MagneticField/MagFieldElements/CMakeLists.txt
index 87b3674fda80b5e2f890a444c792ff248380577a..f7929d3a6cda021157f6b392bb73e39e158fa708 100644
--- a/MagneticField/MagFieldElements/CMakeLists.txt
+++ b/MagneticField/MagFieldElements/CMakeLists.txt
@@ -15,7 +15,7 @@ atlas_add_library( MagFieldElements
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} PathResolver )
 
 		 
-atlas_add_test( BFieldExample_test
+atlas_add_test( BFieldExample
                 SOURCES  test/BFieldExample_test.cxx
                 INCLUDE_DIRS ${GTEST_INCLUDE_DIRS} #${GMOCK_INCLUDE_DIRS}
                 LINK_LIBRARIES TestTools  CxxUtils EventPrimitives ${GTEST_LIBRARIES} #${GMOCK_LIBRARIES}
diff --git a/MagneticField/MagFieldElements/MagFieldElements/BFieldCache.h b/MagneticField/MagFieldElements/MagFieldElements/BFieldCache.h
index 67abc8da026c7ced5404fb76d86419f201123a71..8282eb91153ed3a7297593e6b7da13787a262b5d 100644
--- a/MagneticField/MagFieldElements/MagFieldElements/BFieldCache.h
+++ b/MagneticField/MagFieldElements/MagFieldElements/BFieldCache.h
@@ -55,30 +55,34 @@ public:
     m_invr = 1.0 / (rmax - rmin);
     m_invphi = 1.0 / (phimax - phimin);
   }
-  // set the field values at each corner (rescale for current scale factor)
-  void setField(const std::array<BFieldVector<double>, 8>& field,
-                double scaleFactor = 1.0)
-  {
-    // We pass array of 8 elements with 3 entries
-    // Which go to 3x8 matrix
-    for (int i = 0; i < 8; ++i) {
-      for (int j = 0; j < 3; ++j) {
-        m_field[j][i] = scaleFactor * field[i][j];
-      }
-    }
-  }
 
-  void setField(const std::array<BFieldVector<short>, 8>& field,
-                double scaleFactor = 1.0)
-  {
-    // We pass array of 8 elements with 3 entries
-    // Which go to 3x8 matrix
-    for (int i = 0; i < 8; ++i) {
-      for (int j = 0; j < 3; ++j) {
-        m_field[j][i] = scaleFactor * field[i][j];
-      }
-    }
-  }
+    // **
+    // ** The following two methods are commented out, and replaced by the third setField as optimization test
+    // **
+  // // set the field values at each corner (rescale for current scale factor)
+  // void setField(const std::array<BFieldVector<double>, 8>& field,
+  //               double scaleFactor = 1.0)
+  // {
+  //   // We pass array of 8 elements with 3 entries
+  //   // Which go to 3x8 matrix
+  //   for (int i = 0; i < 8; ++i) {
+  //     for (int j = 0; j < 3; ++j) {
+  //       m_field[j][i] = scaleFactor * field[i][j];
+  //     }
+  //   }
+  // }
+
+  // void setField(const std::array<BFieldVector<short>, 8>& field,
+  //               double scaleFactor = 1.0)
+  // {
+  //   // We pass array of 8 elements with 3 entries
+  //   // Which go to 3x8 matrix
+  //   for (int i = 0; i < 8; ++i) {
+  //     for (int j = 0; j < 3; ++j) {
+  //       m_field[j][i] = scaleFactor * field[i][j];
+  //     }
+  //   }
+  // }
 
   // set field array, filled externally
   void setField(double field[][8]) {
diff --git a/MagneticField/MagFieldElements/MagFieldElements/BFieldMesh.h b/MagneticField/MagFieldElements/MagFieldElements/BFieldMesh.h
index 0ba1f8a02f1f8706ac5ee56d86651578e63efa40..7424d87ab3de46217aa4186211d851693c20b545 100644
--- a/MagneticField/MagFieldElements/MagFieldElements/BFieldMesh.h
+++ b/MagneticField/MagFieldElements/MagFieldElements/BFieldMesh.h
@@ -98,9 +98,6 @@ public:
   double bscale() const { return m_scale; }
   int memSize() const;
 
-  bool m_doNew{false};
-
-    
 protected:
   std::array<double, 3> m_min;
   std::array<double, 3> m_max;
diff --git a/MagneticField/MagFieldElements/test/BFieldExample_test.cxx b/MagneticField/MagFieldElements/test/BFieldExample_test.cxx
index 8ae953b5c488b9e0ca297a2db20e38a8f194f982..34ca83c9e083321c520689ea9a72d2aeb8aab821 100644
--- a/MagneticField/MagFieldElements/test/BFieldExample_test.cxx
+++ b/MagneticField/MagFieldElements/test/BFieldExample_test.cxx
@@ -79,21 +79,21 @@ public:
         BFieldCache cache3d;
         double z{0}, r{1250}, phi{1.6};
 
-        if (doDebug) std::cout << "do getCache old " << std::endl;
+        // if (doDebug) std::cout << "do getCache old " << std::endl;
 
-        zone.m_doNew = false;
+        // zone.m_doNew = false;
         
-        zone.getCache(z, r, phi, cache3d, 1);
+        // zone.getCache(z, r, phi, cache3d, 1);
 
-        cache3d.printField();
+        // cache3d.printField();
 
-        if (doDebug) std::cout << "do getCache new " << std::endl;
+        // if (doDebug) std::cout << "do getCache new " << std::endl;
         
-        zone.m_doNew = true;
+        // zone.m_doNew = true;
         
-        zone.getCache(z, r, phi, cache3d, 1);
+        // zone.getCache(z, r, phi, cache3d, 1);
 
-        cache3d.printField();
+        // cache3d.printField();
 
 
         // get field at steps of 10 mm from 1200 to 1300
@@ -135,9 +135,6 @@ public:
 // get field std: i, bxyz_std 9 -2.6281e-07, -8.34762e-08, -0.00165093
 // get field new: i, bxyz_new 9 -2.6281e-07, -8.34762e-08, -0.00165093
 
-        // zone.m_doNew = false;
-        zone.m_doNew = true;
-
         
         for (unsigned int i = 0; i < 10; ++i) {
             double r1 = r0 + 5 + i*10.;
@@ -152,7 +149,12 @@ public:
 
             std::cout << "get field std: i, bxyz " << i << " "
                       << bxyz[0] << ", " << bxyz[1] << ", "
-                      << bxyz[2] << std::endl;
+                      << bxyz[2]
+                      << " fractional diff gt 10^-5: "
+                      << int(fabs(bxyz[0] - bxyz_std[0][i])/bxyz[0] > 0.00001) << ", "
+                      << int(fabs(bxyz[1] - bxyz_std[1][i])/bxyz[1] > 0.00001) << ", "
+                      << int(fabs(bxyz[2] - bxyz_std[2][i])/bxyz[2] > 0.00001) 
+                      << std::endl;
 
             if (fabs(bxyz[0] - bxyz_std[0][i]) > 0.00001) {
                 std::cout << "failed bz comparison - bz, bz std " << bxyz[0] << ", " << bxyz_std[0][i] << std::endl;