diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/CMakeLists.txt b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/CMakeLists.txt
index d56baf5538c9fc5fb8322b147cd1b72969676572..6886eb20050b85fea13affea1efb93de3bf01491 100644
--- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/CMakeLists.txt
+++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/CMakeLists.txt
@@ -12,6 +12,7 @@ atlas_depends_on_subdirs( PUBLIC
                           GaudiKernel
                           InnerDetector/InDetRecTools/InDetRecToolInterfaces
                           PRIVATE
+			  Control/AthenaKernel
                           Tools/PathResolver
                           DetectorDescription/GeoPrimitives
                           PhysicsAnalysis/AnalysisCommon/AnalysisUtils
@@ -47,7 +48,7 @@ atlas_add_component( InDetVKalVxInJetTool
                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}
                      LINK_LIBRARIES ${ROOT_LIBRARIES} ${Boost_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps xAODTracking PathResolver GaudiKernel 
 		        InDetRecToolInterfaces Particle TrkVKalVrtFitterLib GeoPrimitives AnalysisUtilsLib TrkNeutralParameters MVAUtils
-		        TrkParticleBase TrkTrackSummary VxSecVertex VxVertex TrkToolInterfaces TrkVertexFitterInterfaces PathResolver )
+		        TrkParticleBase TrkTrackSummary VxSecVertex VxVertex TrkToolInterfaces TrkVertexFitterInterfaces PathResolver  )
  
 # Install files from the package:
 atlas_install_headers( InDetVKalVxInJetTool )
@@ -56,10 +57,10 @@ atlas_install_joboptions( share/*.txt )
 
 #This test is temporarily commented in order not to slow down magnetic field migration to condition data.
 #Will be restored later
-#atlas_add_test( InDetTrkInJetType_test
-#                SOURCES test/InDetTrkInJetType_test.cxx
-#                INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}
-#                LINK_LIBRARIES ${ROOT_LIBRARIES} ${Boost_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps xAODTracking PathResolver GaudiKernel 
-#		InDetRecToolInterfaces Particle TrkVKalVrtFitterLib GeoPrimitives AnalysisUtilsLib TrkNeutralParameters MVAUtils
-#		TrkParticleBase TrkTrackSummary VxSecVertex VxVertex TrkToolInterfaces TrkVertexFitterInterfaces PathResolver
-#                LOG_IGNORE_PATTERN "Booking|AtlasFieldSvc|weight file|create data set info" )
+atlas_add_test( InDetTrkInJetType_test
+               SOURCES test/InDetTrkInJetType_test.cxx
+               INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}
+               LINK_LIBRARIES ${ROOT_LIBRARIES} ${Boost_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps xAODTracking PathResolver GaudiKernel 
+		InDetRecToolInterfaces Particle TrkVKalVrtFitterLib GeoPrimitives AnalysisUtilsLib TrkNeutralParameters MVAUtils
+		TrkParticleBase TrkTrackSummary VxSecVertex VxVertex TrkToolInterfaces TrkVertexFitterInterfaces PathResolver AthenaKernel
+               LOG_IGNORE_PATTERN "Booking|ClassIDSvc|weight file|create data set info" )
diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/share/InDetTrkInJetType_test.ref b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/share/InDetTrkInJetType_test.ref
index 024f5fe341b7ba3ba3d0d0526b54f81524e4198b..1a1168732ccb2551d5cc58581f578293dd904bcb 100644
--- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/share/InDetTrkInJetType_test.ref
+++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/share/InDetTrkInJetType_test.ref
@@ -13,28 +13,22 @@ ApplicationMgr    SUCCESS
                                           running on karma on Fri Jul 26 11:39:59 2019
 ====================================================================================================================================
 ApplicationMgr       INFO Application Manager Configured successfully
-AtlasFieldSvc        INFO initialize() ...
-AtlasFieldSvc        INFO Currents are set-up by jobOptions - delaying map initialization until BeginRun incident happens
-AtlasFieldSvc        INFO Added listener to BeginRun incident
-AtlasFieldSvc        INFO initialize() successful
+ClassIDSvc           INFO  getRegistryEntries: read 1912 CLIDRegistry entries for module ALL
 EventLoopMgr      WARNING Unable to locate service "EventSelector" 
 EventLoopMgr      WARNING No events will be processed from external input.
-HistogramPersis...WARNING Histograms saving not required.
 ApplicationMgr       INFO Application Manager Initialized successfully
 ApplicationMgr Ready
-AtlasFieldSvc        INFO handling incidents ...
-AtlasFieldSvc        INFO importCurrents() ...
-AtlasFieldSvc        INFO Initializing the field map (solenoidCurrent=7730 toroidCurrent=20400)
-AtlasFieldSvc        INFO reading the map from /home/sss/nobackup/atlas/ReleaseData/v20/MagneticFieldMaps/bfieldmap_7730_20400_14m.root
-AtlasFieldSvc        INFO Initialized the field map from /home/sss/nobackup/atlas/ReleaseData/v20/MagneticFieldMaps/bfieldmap_7730_20400_14m.root
-AtlasFieldSvc        INFO Currents imported and map initialized
-AtlasFieldSvc        INFO BeginRun incident handled
-AtlasFieldSvc        INFO incidents handled successfully
-                         : Booking "BDTG" of type "BDT" from /home/sss/nobackup/atlas/GroupData/InDetVKalVxInJetTool/TrackClassif_3cl.v02.xml.
-                         : Reading weight file: /home/sss/nobackup/atlas/GroupData/InDetVKalVxInJetTool/TrackClassif_3cl.v02.xml
+InDetVKalVxInJetTool/InDetTrkInJetType_test initGaudi 
+InDetVKalVxInJetTool/InDetTrkInJetType_test record 
+create data set info Default
+                         : Booking "BDTG" of type "BDT" from /cvmfs/atlas.cern.ch/repo/sw/database/GroupData/InDetVKalVxInJetTool/TrackClassif_3cl.v02.xml.
+                         : Reading weight file: /cvmfs/atlas.cern.ch/repo/sw/database/GroupData/InDetVKalVxInJetTool/TrackClassif_3cl.v02.xml
 <HEADER> DataSetInfo              : [Default] : Added class "Signal"
 <HEADER> DataSetInfo              : [Default] : Added class "Fragment"
 <HEADER> DataSetInfo              : [Default] : Added class "Garbage"
                          : Booked classifier "BDTG" of type: "BDT"
+ClassIDSvc           INFO  getRegistryEntries: read 4267 CLIDRegistry entries for module ALL
 ToolSvc.InDet::...   INFO TrkVKalVrtFitter initialize() successful
+InDetVKalVxInJetTool/InDetTrkInJetType_test retrieve tool 
 test1
+test1 is OK
diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/share/InDetVKalVxInJetTool_tests.txt b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/share/InDetVKalVxInJetTool_tests.txt
index ce532aaa3b830d9f4a755d386296875e63b20929..5abb41f84bf467f0fe8fa374fde3d4b12126e28c 100644
--- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/share/InDetVKalVxInJetTool_tests.txt
+++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/share/InDetVKalVxInJetTool_tests.txt
@@ -1,3 +1 @@
-ApplicationMgr.ExtSvc={"MagField::AtlasFieldSvc/AtlasFieldSvc"};
-AtlasFieldSvc.UseDCS=false;
-AtlasFieldSvc.UseMapsFromCool=false;
+ApplicationMgr.ExtSvc += { "StoreGateSvc/ConditionStore", "CondSvc" };
diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/test/InDetTrkInJetType_test.cxx b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/test/InDetTrkInJetType_test.cxx
index 3ce5a83cf99e13a03bf53abae91c6d2c5fadf537..fec643bcd22eae65fe8cdb1484087b89e3183987 100644
--- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/test/InDetTrkInJetType_test.cxx
+++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/test/InDetTrkInJetType_test.cxx
@@ -13,7 +13,7 @@
 #include "InDetVKalVxInJetTool/InDetTrkInJetType.h"
 #include "xAODTracking/Vertex.h"
 #include "xAODTracking/TrackParticle.h"
-#include "MagFieldInterfaces/IMagFieldSvc.h"
+#include "MagFieldConditions/AtlasFieldCacheCondObj.h"
 #include "EventPrimitives/EventPrimitivesHelpers.h"
 #include "TestTools/initGaudi.h"
 #include "TestTools/FLOATassert.h"
@@ -22,6 +22,7 @@
 #include "GaudiKernel/Incident.h"
 #include "GaudiKernel/IIncidentListener.h"
 #include "GaudiKernel/SystemOfUnits.h"
+#include "AthenaKernel/DummyRCUSvc.h"
 #include "TInterpreter.h"
 #include <iostream>
 #include <cassert>
@@ -102,6 +103,26 @@ void test1 (InDet::IInDetTrkInJetType& tool)
   assert( Athena_test::isEqual (out[0], 0.0946472, 1e-5) );
   assert( Athena_test::isEqual (out[1], 0.479743, 1e-5) );
   assert( Athena_test::isEqual (out[2], 0.42561, 1e-5) );
+
+  std::cout << "test1 is OK\n";
+}
+
+EventIDBase timestamp (int t)
+{
+  return EventIDBase (EventIDBase::UNDEFNUM,  // run
+                      EventIDBase::UNDEFEVT,  // event
+                      t);
+}
+
+
+EventIDBase runlbn (int run,
+                    int lbn)
+{
+  return EventIDBase (run,  // run
+                      EventIDBase::UNDEFEVT,  // event
+                      EventIDBase::UNDEFNUM,  // timestamp
+                      0,                      // ns offset
+                      lbn);
 }
 
 
@@ -110,14 +131,40 @@ int main()
   std::cout << "InDetVKalVxInJetTool/InDetTrkInJetType_test\n";
   CxxUtils::ubsan_suppress ([]() { TInterpreter::Instance(); });
   ISvcLocator* svcloc = nullptr;
-  Athena_test::initGaudi ("InDetVKalVxInJetTool/InDetVKalVxInJetTool_tests.txt", svcloc);
+  if (!Athena_test::initGaudi("InDetVKalVxInJetTool/InDetVKalVxInJetTool_tests.txt", svcloc)) {
+    return 1;
+  }
+
+  
+  std::cout << "InDetVKalVxInJetTool/InDetTrkInJetType_test initGaudi \n";
+
+  
+  EventContext ctx;
+  ctx.setExtension (Atlas::ExtendedEventContext());
+  EventIDBase eid (1, 0, 0, 0, 20);
+  ctx.setEventID (eid);
+
+  Gaudi::Hive::setCurrentContext(ctx);
+  
+  Athena_test::DummyRCUSvc rcu;
+  DataObjID id ("fieldCondObj");
+  auto cc = std::make_unique<CondCont<AtlasFieldCacheCondObj> > (rcu, id);
+  const EventIDRange range (runlbn (1, 10), runlbn (1, 100));
+  assert( cc->insert (range, std::make_unique<AtlasFieldCacheCondObj>(), ctx).isSuccess() );
+
+  ServiceHandle<StoreGateSvc> conditionStore ("ConditionStore", "test");
+  assert( conditionStore->record (std::move (cc), "fieldCondObj") );
+
+    
+  std::cout << "InDetVKalVxInJetTool/InDetTrkInJetType_test record \n";
 
-  ServiceHandle<MagField::IMagFieldSvc> field ("MagField::AtlasFieldSvc/AtlasFieldSvc", "test");
-  Incident inc_br ("test", IncidentType::BeginRun);
-  dynamic_cast<IIncidentListener*>(&*field)->handle (inc_br);
 
   ToolHandle<InDet::IInDetTrkInJetType> tool ("InDet::InDetTrkInJetType");
   assert( tool.retrieve().isSuccess() );
+  
+  
+  std::cout << "InDetVKalVxInJetTool/InDetTrkInJetType_test retrieve tool \n";
+
 
   test1 (*tool);
 
diff --git a/MagneticField/MagFieldConditions/MagFieldConditions/AtlasFieldCacheCondObj.h b/MagneticField/MagFieldConditions/MagFieldConditions/AtlasFieldCacheCondObj.h
index 0c9238116fadda7693ec4e4c1dea2a6ef8d34c05..74bb2636e4f066175c9fa8cefa2f00cb895524d6 100644
--- a/MagneticField/MagFieldConditions/MagFieldConditions/AtlasFieldCacheCondObj.h
+++ b/MagneticField/MagFieldConditions/MagFieldConditions/AtlasFieldCacheCondObj.h
@@ -23,9 +23,6 @@ public:
 
     ~AtlasFieldCacheCondObj();
 
-    /// Temporary flag for switching between 'old' and 'new' magField usage
-    bool useNewBfieldCache() { return m_useNewBfieldCache; }
-
     /** get B field cache for evaluation as a function of 2-d (solenoid) or 3-d (toroid) position. 
         Resets cache to an initialized state */
     inline void getInitializedCache (MagField::AtlasFieldCache& cache) const;
@@ -38,12 +35,9 @@ public:
 
     /** set values for field scale and service to be able to build the cache **/
     bool initialize(double solFieldScale, double torFieldScale, 
-                    const MagField::AtlasFieldMap* fieldMap,
-                    bool useNewBfieldCache);
+                    const MagField::AtlasFieldMap* fieldMap);
 
 private:
-    /// Temporary flag for switching between 'old' and 'new' magField usage
-    bool                             m_useNewBfieldCache{false};
     double                           m_solFieldScale{1};
     double                           m_torFieldScale{1};
     const MagField::AtlasFieldMap*   m_fieldMap{nullptr};
@@ -56,7 +50,7 @@ AtlasFieldCacheCondObj::getInitializedCache (MagField::AtlasFieldCache& cache) c
 {
 
     // setup with field scale and magnetic field service for first access to field */
-    cache = MagField::AtlasFieldCache(m_solFieldScale, m_torFieldScale, m_fieldMap, m_useNewBfieldCache);
+    cache = MagField::AtlasFieldCache(m_solFieldScale, m_torFieldScale, m_fieldMap);
 }
 
 
diff --git a/MagneticField/MagFieldConditions/src/AtlasFieldCacheCondObj.cxx b/MagneticField/MagFieldConditions/src/AtlasFieldCacheCondObj.cxx
index 4423ac75c0ee2f2ad1a9eb9f06ec3f019727debf..d78140314c8c22c45900b9879d5adb1a5c12d1fd 100644
--- a/MagneticField/MagFieldConditions/src/AtlasFieldCacheCondObj.cxx
+++ b/MagneticField/MagFieldConditions/src/AtlasFieldCacheCondObj.cxx
@@ -12,11 +12,9 @@ AtlasFieldCacheCondObj::~AtlasFieldCacheCondObj() {}
 bool
 AtlasFieldCacheCondObj::initialize(double solFieldScale,
                                    double torFieldScale,
-                                   const MagField::AtlasFieldMap* fieldMap,
-                                   bool useNewBfieldCache)
+                                   const MagField::AtlasFieldMap* fieldMap)
 {
     // temporary flag
-    m_useNewBfieldCache = useNewBfieldCache;
     m_solFieldScale = solFieldScale;
     m_torFieldScale = torFieldScale;
     m_fieldMap      = fieldMap;
diff --git a/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.h b/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.h
index f9b6f414cfa7db58edaa5f2d70960cf426ffa359..9a04eee74f3f9a97682100b2288a88810ac32f87 100644
--- a/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.h
+++ b/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.h
@@ -35,7 +35,6 @@ namespace MagField {
  *  @author R.D.Schaffer -at- cern.ch
  */
 class AtlasFieldCache
-// : public ::AthMessaging
 {
 public:
   AtlasFieldCache();
@@ -43,13 +42,12 @@ public:
   // first access to field */
   AtlasFieldCache(double solFieldScale,
                   double torFieldScale,
-                  const AtlasFieldMap* fieldMap,
-                  bool useNewBfieldCache);
+                  const AtlasFieldMap* fieldMap);
   AtlasFieldCache& operator=(AtlasFieldCache&& other) = default;
   ~AtlasFieldCache() = default;
 
   /// Temporary flag for switching between 'old' and 'new' magField usage
-  bool useNewBfieldCache() { return m_useNewBfieldCache; }
+  bool useNewBfieldCache() { return true; }
 
   /** get B field value at given position */
   /** xyz[3] is in mm, bxyz[3] is in kT */
@@ -62,11 +60,8 @@ public:
                          double* ATH_RESTRICT deriv = nullptr);
 
   /** status of the magnets */
-  bool solenoidOn() const
-  {
-    return m_fieldMap ? m_fieldMap->solenoidOn() : false;
-  }
-  bool toroidOn() const { return m_fieldMap ? m_fieldMap->toroidOn() : false; }
+  bool solenoidOn() const;
+  bool toroidOn() const; 
 
 private:
   AtlasFieldCache(const AtlasFieldCache& other) = delete;
@@ -76,9 +71,6 @@ private:
   bool fillFieldCache(double z, double r, double phi);
   bool fillFieldCacheZR(double z, double r);
 
-  /// Temporary flag for switching between 'old' and 'new' magField usage
-  bool m_useNewBfieldCache{ false };
-
   /// magnetic field scales from currents
   double m_solScale{ 1 };
   double m_torScale{ 1 };
diff --git a/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.icc b/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.icc
index 4cce8882902607861072dcce1e2e6d0469c7db5d..1ee7397d5c8ebd297fda5e7778ca81bc54b0ac71 100644
--- a/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.icc
+++ b/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.icc
@@ -53,6 +53,16 @@ MagField::AtlasFieldCache::getField(const double* ATH_RESTRICT xyz,
                                     double* ATH_RESTRICT bxyz,
                                     double* ATH_RESTRICT deriv)
 {
+    // Allow for the case of no map for testing
+  if ( m_fieldMap == nullptr ) {
+      // constant ATLAS magnetic field if no map has been set - for testing
+      constexpr double TEST_BFIELD = 1.997;      
+      bxyz[0] = bxyz[1] = 0;
+      bxyz[2] = TEST_BFIELD;
+      if (deriv) for (int i = 0; i < 9; i++) deriv[i] = 0.;
+      return;
+  }
+    
   const double& x(xyz[0]);
   const double& y(xyz[1]);
   const double& z(xyz[2]);
@@ -94,6 +104,17 @@ MagField::AtlasFieldCache::getFieldZR(const double* ATH_RESTRICT xyz,
                                       double* ATH_RESTRICT bxyz,
                                       double* ATH_RESTRICT deriv)
 {
+
+  // Allow for the case of no map for testing
+  if ( m_fieldMap == nullptr ) {
+      // constant ATLAS magnetic field if no map has been set - for testing
+      constexpr double TEST_BFIELD = 1.997;      
+      bxyz[0] = bxyz[1] = 0;
+      bxyz[2] = TEST_BFIELD;
+      if (deriv) for (int i = 0; i < 9; i++) deriv[i] = 0.;
+      return;
+  }
+    
   const double& x(xyz[0]);
   const double& y(xyz[1]);
   const double& z(xyz[2]);
@@ -117,3 +138,12 @@ MagField::AtlasFieldCache::getFieldZR(const double* ATH_RESTRICT xyz,
 }
 
 
+inline bool
+MagField::AtlasFieldCache::solenoidOn() const {
+    return m_fieldMap ? m_fieldMap->solenoidOn() : false;
+}
+
+inline bool
+MagField::AtlasFieldCache::toroidOn() const {
+    return m_fieldMap ? m_fieldMap->toroidOn() : false;
+}
diff --git a/MagneticField/MagFieldElements/src/AtlasFieldCache.cxx b/MagneticField/MagFieldElements/src/AtlasFieldCache.cxx
index e8ad866929354a8fa28344e36885437dab393758..d21ffee4b7fe0920c77fb48e4e92d80f979f0d4d 100644
--- a/MagneticField/MagFieldElements/src/AtlasFieldCache.cxx
+++ b/MagneticField/MagFieldElements/src/AtlasFieldCache.cxx
@@ -16,20 +16,18 @@ MagField::AtlasFieldCache::AtlasFieldCache() {}
 
 MagField::AtlasFieldCache::AtlasFieldCache(double solFieldScale,
                                            double torFieldScale,
-                                           const AtlasFieldMap* fieldMap,
-                                           bool useNewBfieldCache)
-  : // temporary flag
-  m_useNewBfieldCache(useNewBfieldCache)
-  , m_solScale(solFieldScale)
-  , m_torScale(torFieldScale)
-  ,
-  // Get solenoid zone id from field service
-  m_solZoneId(fieldMap->solenoidZoneId())
-  ,
-  // set field service
-  m_fieldMap(fieldMap)
+                                           const AtlasFieldMap* fieldMap)
+  :
+    m_solScale(solFieldScale),
+    m_torScale(torFieldScale),
+    // set field service
+    m_fieldMap(fieldMap)
 
 {
-  // save ZR bfield
-  m_meshZR = m_fieldMap->getBFieldMesh();
+    if (m_fieldMap) {
+        // save ZR bfield
+        m_meshZR = m_fieldMap->getBFieldMesh() ;
+        // Get solenoid zone id from field service
+        m_solZoneId = fieldMap->solenoidZoneId();
+    }
 }
diff --git a/MagneticField/MagFieldServices/CMakeLists.txt b/MagneticField/MagFieldServices/CMakeLists.txt
index cbcc972cab216cd83ee575ed1592cc03a2e8db58..150469e9ac3411d89c1bcece54f825d6d1e24b0e 100644
--- a/MagneticField/MagFieldServices/CMakeLists.txt
+++ b/MagneticField/MagFieldServices/CMakeLists.txt
@@ -16,7 +16,9 @@ atlas_depends_on_subdirs( PUBLIC
                           Control/StoreGate
                           Database/AthenaPOOL/AthenaPoolUtilities
                           GaudiKernel
-                          Tools/PathResolver )
+                          Tools/PathResolver
+			  Event/EventInfo
+			  )
 
 # External dependencies:
 find_package( CLHEP )
@@ -28,7 +30,8 @@ atlas_add_component( MagFieldServices
                      src/components/*.cxx
                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
 		     LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} MagFieldElements MagFieldConditions CxxUtils 
-		     AthenaBaseComps MagFieldInterfaces StoreGateLib SGtests AthenaPoolUtilities GaudiKernel PathResolver )
+		     AthenaBaseComps MagFieldInterfaces StoreGateLib SGtests AthenaPoolUtilities GaudiKernel PathResolver
+		     EventInfo )
 
 # Install files from the package:
 atlas_install_headers( MagFieldServices )
diff --git a/MagneticField/MagFieldServices/MagFieldServices/AtlasFieldCacheCondAlg.h b/MagneticField/MagFieldServices/MagFieldServices/AtlasFieldCacheCondAlg.h
index 399c7bacd1c36e7282a8af10a6ed86cf03be106d..c1426976d4076c9abbd189f09d04aad80d99ecf6 100644
--- a/MagneticField/MagFieldServices/MagFieldServices/AtlasFieldCacheCondAlg.h
+++ b/MagneticField/MagFieldServices/MagFieldServices/AtlasFieldCacheCondAlg.h
@@ -52,10 +52,6 @@ namespace MagField {
         StatusCode updateCurrentFromParameters(Cache& cache) const;
         void       scaleField(Cache& cache, const MagField::AtlasFieldMap* fieldMap) const;
 
-        /// Temporary flag for switching between 'old' and 'new' magField usage
-        Gaudi::Property<bool> m_useNewBfieldCache {this, 
-                                                   "UseNewBfieldCache", true, "Temporary flag for switching between 'old' and 'new' magField usage. Default = true"};
-
         // threshold below which currents are considered zero
         Gaudi::Property<double> m_soleMinCurrent {this, 
                                                   "SoleMinCurrent", 1.0, "Minimum solenoid current (A) for which solenoid is considered ON"};
diff --git a/MagneticField/MagFieldServices/MagFieldServices/AtlasFieldMapCondAlg.h b/MagneticField/MagFieldServices/MagFieldServices/AtlasFieldMapCondAlg.h
index 4a43b19701ef4a6730accf31dff773f9871625ba..c87ece15d97f8a0bae48129ca3c5ba2d357459c9 100644
--- a/MagneticField/MagFieldServices/MagFieldServices/AtlasFieldMapCondAlg.h
+++ b/MagneticField/MagFieldServices/MagFieldServices/AtlasFieldMapCondAlg.h
@@ -16,6 +16,7 @@
 #include "StoreGate/WriteCondHandleKey.h"
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
 #include "GaudiKernel/ICondSvc.h"
+#include "EventInfo/TagInfo.h"
 
 // #include "MagFieldInterfaces/IMTMagFieldSvc.h"
 
@@ -93,6 +94,10 @@ namespace MagField {
         ServiceHandle<ICondSvc> m_condSvc { this, 
                                             "CondSvc", "CondSvc", "conditions service" };
 
+        // TagInfo object - used to get currents via TagInfoMgr
+        SG::ReadHandleKey<TagInfo> m_tagInfoKey {this,
+                                                 "TagInfo", "DetectorStore+ProcessingTags", "tag info key"};
+
     };
 }
 
diff --git a/MagneticField/MagFieldServices/python/MagFieldServicesConfig.py b/MagneticField/MagFieldServices/python/MagFieldServicesConfig.py
index 220484c6576bd2ac60d4891673f3cfa66e700932..0544ed4a3f25ee84beb45b51567b9855aa25214b 100644
--- a/MagneticField/MagFieldServices/python/MagFieldServicesConfig.py
+++ b/MagneticField/MagFieldServices/python/MagFieldServicesConfig.py
@@ -60,7 +60,6 @@ def MagneticFieldSvcCfg(flags, **kwargs):
       afcArgs.update( LockMapCurrents = True )
     else:
       afcArgs.update( UseDCS = True )
-      afcArgs.update( UseNewBfieldCache = True )
     if 'UseDCS' in kwargs:
       afcArgs['UseDCS'] = kwargs['UseDCS']
     mag_field_cache_cond_alg = CompFactory.MagField.AtlasFieldCacheCondAlg(**afcArgs) 
diff --git a/MagneticField/MagFieldServices/python/MagFieldServicesSetup.py b/MagneticField/MagFieldServices/python/MagFieldServicesSetup.py
index e327b148f6203a3f876959e634fa414f10cd7789..dc86e0845f832dc0eb2688b22b0c0446d06213ca 100644
--- a/MagneticField/MagFieldServices/python/MagFieldServicesSetup.py
+++ b/MagneticField/MagFieldServices/python/MagFieldServicesSetup.py
@@ -34,8 +34,6 @@ def AtlasFieldCacheCondAlg(name="AtlasFieldCacheCondAlg",**kwargs):
     kwargs.setdefault( "LockMapCurrents", True )
   else:
     kwargs.setdefault( "UseDCS", True )
-    kwargs.setdefault( "UseNewBfieldCache", True )
-    # kwargs.setdefault( "UseNewBfieldCache", False )
     # kwargs.setdefault( "UseDCS", False )
     # kwargs.setdefault( "UseSoleCurrent", 12000 )
     # kwargs.setdefault( "UseToroCurrent", 20400 )
diff --git a/MagneticField/MagFieldServices/src/AtlasFieldCacheCondAlg.cxx b/MagneticField/MagFieldServices/src/AtlasFieldCacheCondAlg.cxx
index 3ce18abed0e1515aaedb9c4fd714d8ffad984549..c14001187c99a9552b5e1fd08e464a4eef97d3b9 100644
--- a/MagneticField/MagFieldServices/src/AtlasFieldCacheCondAlg.cxx
+++ b/MagneticField/MagFieldServices/src/AtlasFieldCacheCondAlg.cxx
@@ -118,8 +118,7 @@ MagField::AtlasFieldCacheCondAlg::execute(const EventContext& ctx) const {
     // initialize cond obj with current scale factors and the field svc (needed to setup cache)
     if (!fieldCondObj->initialize(cache.m_solScaleFactor, 
                                   cache.m_torScaleFactor, 
-                                  fieldMap, 
-                                  m_useNewBfieldCache)) {
+                                  fieldMap)) {
         ATH_MSG_ERROR("execute: Could not initialize conditions field object with solenoid/toroid currents "
                       << cache.m_solScaleFactor << "," << cache.m_torScaleFactor);
         return StatusCode::FAILURE;
@@ -136,7 +135,6 @@ MagField::AtlasFieldCacheCondAlg::execute(const EventContext& ctx) const {
     ATH_MSG_INFO ( "execute: initialized AtlasFieldCacheCondObj and cache with SFs - sol/tor "
                    << cache.m_solScaleFactor << "/" << cache.m_torScaleFactor );
     ATH_MSG_INFO ( "execute: solenoid zone id  " << fieldMap->solenoidZoneId());
-    ATH_MSG_INFO ( "execute: useNewBfieldCache " << m_useNewBfieldCache);
 
     return StatusCode::SUCCESS;
 }
diff --git a/MagneticField/MagFieldServices/src/AtlasFieldMapCondAlg.cxx b/MagneticField/MagFieldServices/src/AtlasFieldMapCondAlg.cxx
index c12cd47f0c88a6299d5d00c554de6dd91d0e64ff..56fc691ae50152e10706f55c765506774594b913 100644
--- a/MagneticField/MagFieldServices/src/AtlasFieldMapCondAlg.cxx
+++ b/MagneticField/MagFieldServices/src/AtlasFieldMapCondAlg.cxx
@@ -21,6 +21,9 @@
 // PathResolver
 #include "PathResolver/PathResolver.h"
 
+// TagInfo for special case of turning off toroid or solenoid
+#include "EventInfo/TagInfo.h"
+
 // ROOT
 #include "TFile.h"
 #include "TTree.h"
@@ -42,6 +45,9 @@ MagField::AtlasFieldMapCondAlg::initialize() {
     // Read Handle for the map
     ATH_CHECK( m_mapsInputKey.initialize() );
 
+    // Read Handle for tagInfo
+    ATH_CHECK( m_tagInfoKey.initialize() );
+
     // Output handle for the field map
     ATH_CHECK( m_mapCondObjOutputKey.initialize() );
 
@@ -192,12 +198,44 @@ MagField::AtlasFieldMapCondAlg::updateFieldMap(const EventContext& ctx, Cache& c
         const EventIDBase::number_type UNDEFNUM = EventIDBase::UNDEFNUM;
         const EventIDBase::event_number_t UNDEFEVT = EventIDBase::UNDEFEVT;
         EventIDRange rangeW (EventIDBase (0, UNDEFEVT, UNDEFNUM, 0, 0),
-                             EventIDBase (UNDEFNUM-1, UNDEFEVT, UNDEFNUM, 0, 0));
+                             EventIDBase (UNDEFNUM-1, UNDEFEVT, UNDEFNUM, UNDEFNUM, 0));
         cache.m_mapCondObjOutputRange = rangeW;
         ATH_MSG_INFO("updateFieldMap: useMapsFromCOOL == false, using default range " << rangeW);
     }
         
-        
+    // We allow to set currents via the TagInfoMgr which adds tags to the TagInfo object - only allowed for offline
+
+    if (m_useMapsFromCOOL) {
+    
+        // TagInfo object - used to get currents via TagInfoMgr
+        SG::ReadHandle<TagInfo> tagInfoH{m_tagInfoKey, ctx}; 
+        if (tagInfoH.isValid()) {
+            ATH_MSG_INFO("updateFieldMap: tagInfoH " << tagInfoH.fullKey() << " is valid. ");
+            int i = 0;
+            bool resetCurrentsFromTagInfo = false;
+            for ( auto tag : tagInfoH->getTags() ) {
+                ATH_MSG_DEBUG("updateFieldMap: i, tags: " << i << " " << tag.first << " " << tag.second);
+                ++i;
+                if (tag.first == "MapSoleCurrent") {
+                    cache.m_mapSoleCurrent = std::stof(tag.second);
+                    resetCurrentsFromTagInfo = true;
+                    ATH_MSG_INFO("updateFieldMap: found MapSoleCurrent in TagInfo, setting the solenoid current " << cache.m_mapSoleCurrent);
+                }
+                else 
+                    if (tag.first == "MapToroCurrent") {
+                        cache.m_mapToroCurrent = std::stof(tag.second);
+                        resetCurrentsFromTagInfo = true;
+                        ATH_MSG_INFO("updateFieldMap: found MapToroCurrent in TagInfo, setting the toroid current " << cache.m_mapToroCurrent);
+                    }
+            }
+            if (resetCurrentsFromTagInfo) ATH_MSG_INFO("updateFieldMap: reset currents from TagInfo");
+            else                          ATH_MSG_INFO("updateFieldMap: DID NOT reset currents from TagInfo");
+        }  
+        else {
+            ATH_MSG_INFO("updateFieldMap: tagInfoH " << tagInfoH.fullKey() << " is NOT valid. ");
+        }
+    }
+    
     // Select map file according to the value of the currents which indicate which map is 'on'
 
     // determine the map to load