diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagRun3Config.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagRun3Config.py
index e521529a86bcfd13671436d79f0d51b0be6f6f82..d57793cabf3d2ca3ce1577b54e21f8f5f9c048f8 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagRun3Config.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagRun3Config.py
@@ -149,17 +149,49 @@ def PrepareStandAloneBTagCfg(inputFlags):
 
     return result
 
+def BTagRecoSplitCfg(inputFlags, JetCollection = ['AntiKt4EMTopo'], **kwargs):  
+
+    result=ComponentAccumulator()
+
+    taggerList = inputFlags.BTagging.run2TaggersList
+    result.merge(JetTagCalibCfg(inputFlags, TaggerList = taggerList, **kwargs))
+
+    secVertexingAndAssociators = {'JetFitter':'BTagTrackToJetAssociator','SV1':'BTagTrackToJetAssociator'}
+    result.merge(JetBTaggerSplitAlgsCfg(inputFlags, JetCollection = JetCollection[0], TaggerList = taggerList, SecVertexingAndAssociators = secVertexingAndAssociators, **kwargs))
+
+    from AthenaCommon.ConcurrencyFlags import jobproperties
+    if jobproperties.ConcurrencyFlags.NumThreads() == 0 :
+        for el in result._allSequences:
+            el.name = "TopAlg"
+
+    return result
+
+def BTagRecoCfg(inputFlags, JetCollection = ['AntiKt4EMTopo'], **kwargs):  
+
+    result=ComponentAccumulator()
+
+    taggerList = inputFlags.BTagging.run2TaggersList
+    result.merge(JetTagCalibCfg(inputFlags, TaggerList = taggerList, **kwargs))
+
+    result.merge(JetBTaggerAlgCfg(inputFlags, JetCollection = JetCollection[0], PrimaryVertexCollectionName="PrimaryVertices", TaggerList = taggerList, **kwargs))
+
+    from AthenaCommon.ConcurrencyFlags import jobproperties
+    if jobproperties.ConcurrencyFlags.NumThreads() == 0 :
+        for el in result._allSequences:
+            el.name = "TopAlg"
+
+    return result
+
 def BTagCfg(inputFlags, JetCollection = [], **kwargs):
 
     #This is monolithic for now. 
     #Once a first complete example runs, this will be split into small modular chunks.
-    #Some such items may be best placed elsewehere (e.g. put magnetic field setup in magnetic field git folder etc)
     result=ComponentAccumulator()
+
     timestamp = kwargs.get('TimeStamp', None)
     if timestamp: del kwargs['TimeStamp']
     splitAlg = kwargs.get('SplitAlg', None)
-    del kwargs['SplitAlg']
-
+    if splitAlg: del kwargs['SplitAlg']
 
     TrainedTaggers = inputFlags.BTagging.run2TaggersList + ['MultiSVbb1','MultiSVbb2']
     result.merge(JetTagCalibCfg(inputFlags, TaggerList = TrainedTaggers, **kwargs))
@@ -203,6 +235,8 @@ def BTagCfg(inputFlags, JetCollection = [], **kwargs):
 
             result.merge(JetBTaggerSplitAlgsCfg(inputFlags, JetCollection = jet, TaggerList = taggerList, SecVertexingAndAssociators = secVertexingAndAssociators, **kwargs))
         else:
+            if kwargs.get('Release', None):
+              del kwargs['Release']
             result.merge(JetBTaggerAlgCfg(inputFlags, JetCollection = jet, PrimaryVertexCollectionName="PrimaryVertices", TaggerList = taggerList, **kwargs))
 
     return result
@@ -225,6 +259,13 @@ def JetBTaggerSplitAlgsCfg(inputFlags, JetCollection="", TaggerList=[], SecVerte
         'BTagging/201903/dl1r/antikt4empflow/network.json',
         'BTagging/201903/dl1/antikt4empflow/network.json',
         #'BTagging/201903/dl1rmu/antikt4empflow/network.json',
+        ],
+        'AntiKt4EMTopo': [
+        #'BTagging/201903/smt/antikt4empflow/network.json',
+        'BTagging/201903/rnnip/antikt4empflow/network.json',
+        'BTagging/201903/dl1r/antikt4empflow/network.json',
+        'BTagging/201903/dl1/antikt4empflow/network.json',
+        #'BTagging/201903/dl1rmu/antikt4empflow/network.json',
         ]
     }
 
@@ -238,8 +279,9 @@ def JetBTaggerSplitAlgsCfg(inputFlags, JetCollection="", TaggerList=[], SecVerte
 
     for assoc in TrackToJetAssociators:
         result.merge(JetParticleAssociationAlgCfg(inputFlags, jet, "InDetTrackParticles", assoc, **kwargs))
-        
-    del kwargs['Release']
+
+    if kwargs.get('Release', None):
+        del kwargs['Release']
 
     #Sec vertex finding
     for k, v in SecVertexingAndAssociators.items():
@@ -266,6 +308,7 @@ def JetBTaggerSplitAlgsCfg(inputFlags, JetCollection="", TaggerList=[], SecVerte
             if ts == "":
                 result.merge(RunHighLevelTaggersCfg(inputFlags, jet, 'BTagTrackToJetAssociator', postTagDL2JetToTrainingMap[jet], ts))
 
+
     return result
 
 def RunHighLevelTaggersCfg(inputFlags, JetCollection, Associator, TrainingMaps, TimeStamp):
@@ -344,7 +387,6 @@ if __name__=="__main__":
 
     from AthenaConfiguration.AllConfigFlags import ConfigFlags as cfgFlags
 
-    cfgFlags.Input.isMC=True
     cfgFlags.Input.Files= args.filesIn.split(",")
     #cfgFlags.Input.isMC=False
     #cfgFlags.Input.Files=["/atlas/guirriec/git-athena/q431_2019-03-02T2147/myESD_2019.pool.root"]
@@ -378,7 +420,8 @@ if __name__=="__main__":
         if args.release == "21.2":
             kwargs["TimeStamp"] = ['201810','201903']
             kwargs['Release'] = '21'
-        kwargs["SplitAlg"] = args.splitAlg
+        if args.splitAlg:
+            kwargs["SplitAlg"] = args.splitAlg
 
         acc.merge(BTagCfg(cfgFlags, JetCollection = JetCollection, **kwargs))
 
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggerAlgConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggerAlgConfig.py
index df5f1f4e7e6e0e15a32c1b52353a8836284c4ebc..c83f80f922493dcec826355f3b098541f673fa57 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggerAlgConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggerAlgConfig.py
@@ -14,11 +14,9 @@ def JetBTaggerAlgCfg(ConfigFlags, JetCollection="", PrimaryVertexCollectionName=
     acc=ComponentAccumulator()
     jetcol = JetCollection
 
-    del options['Release']
-
     # setup the Analysis__BTagTrackAssociation tool
     options.setdefault('BTagTrackAssocTool', acc.popToolsAndMerge(BTagTrackAssociationCfg(ConfigFlags, 'TrackAssociation'+ ConfigFlags.BTagging.GeneralToolSuffix, jetcol, TaggerList )))
-    
+
     options.setdefault('BTagTool', acc.popToolsAndMerge(BTagToolCfg(ConfigFlags, TaggerList, PrimaryVertexCollectionName, SetupScheme)))
 
     timestamp = options.get('TimeStamp', None)
@@ -26,7 +24,7 @@ def JetBTaggerAlgCfg(ConfigFlags, JetCollection="", PrimaryVertexCollectionName=
         timestamp = ['']
     else:
         del options['TimeStamp']
-     
+
     for ts in timestamp:
         # setup the secondary vertexing tool
         options['BTagSecVertexing'] = acc.popToolsAndMerge(BTagSecVtxToolCfg(ConfigFlags, 'SecVx'+ConfigFlags.BTagging.GeneralToolSuffix, jetcol, TimeStamp = ts, **options))
@@ -43,5 +41,5 @@ def JetBTaggerAlgCfg(ConfigFlags, JetCollection="", PrimaryVertexCollectionName=
 
         # -- create main BTagging algorithm
         acc.addEventAlgo(JetBTaggerAlg(**options))
-            
+
     return acc
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetParticleAssociationAlgConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetParticleAssociationAlgConfig.py
index 0b0d35e81730685523ecafd7c3f9d425eecaf4af..c9e7c44ffd9f12ec7e183c9fd838caf9d0819627 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetParticleAssociationAlgConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetParticleAssociationAlgConfig.py
@@ -14,8 +14,7 @@ def JetParticleAssociationAlgCfg(ConfigFlags, JetCollection="", ParticleCollecti
     jetcol = JetCollection
     partcol = ParticleCollection
 
-    
-    release = options.get('Release', None)
+    release = options.get('Release', '21')
 
     optionAssoc = {} 
     if release == '21':
diff --git a/Reconstruction/RecExample/RecExCommon/share/CombinedRec_config.py b/Reconstruction/RecExample/RecExCommon/share/CombinedRec_config.py
index de94e226c5f13d9d9d59b2d46b5147942341ecdf..942de70be185bdd6d03b7f7f67cb08e5dfedc460 100755
--- a/Reconstruction/RecExample/RecExCommon/share/CombinedRec_config.py
+++ b/Reconstruction/RecExample/RecExCommon/share/CombinedRec_config.py
@@ -5,6 +5,7 @@ mlog = logging.getLogger( 'CombinedRec_config' )
 
 
 from AthenaCommon.GlobalFlags  import globalflags
+from AthenaConfiguration.ComponentAccumulator import CAtoGlobalWrapper
 from RecExConfig.RecFlags import rec
 from RecExConfig.RecAlgsFlags import recAlgs
 from RecExConfig.ObjKeyStore import objKeyStore
@@ -125,12 +126,21 @@ pdr.flag_domain('btagging')
 btaggingOK = False
 if jetOK and rec.doBTagging() and  DetFlags.ID_on() and DetFlags.Muon_on():
     try:
-        from BTagging.BTaggingFlags import BTaggingFlags
-        protectedInclude( "BTagging/BTagging_jobOptions.py")
+        from AthenaCommon.Configurable import Configurable
+        Configurable.configurableRun3Behavior=1
+        from AthenaConfiguration.AllConfigFlags import ConfigFlags
+        # Translate all needed flags from old jobProperties to a new AthConfigFlag Container
+        from AthenaCommon.AthenaCommonFlags import jobproperties as jps
+        ConfigFlags.Input.Files = jps.AthenaCommonFlags.FilesInput.get_Value()
+        ConfigFlags.IOVDb.GlobalTag=globalflags.ConditionsTag()
+        # Configure BTagging algorithm
+        from BTagging.BTagRun3Config import BTagRecoSplitCfg
+        CAtoGlobalWrapper(BTagRecoSplitCfg, ConfigFlags)
     except Exception:
         treatException("Could not set up btagging reconstruction")
         btaggingOK=False
-        pass
+    finally:
+        Configurable.configurableRun3Behavior=0
     pass
 
 #
@@ -182,3 +192,6 @@ else:
 pdr.flag_domain('caloringer')
 if rec.doCaloRinger:
   include('CaloRingerAlgs/CaloRinger_jobOptions.py')
+
+
+