diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagHighLevelAugmenterAlg.h b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagHighLevelAugmenterAlg.h
index d8cf5562a438311deed3c0f0c66a98f91879ceda..ed7eacd49dd40d90ad74dbcb7bae29e346a0b7d7 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagHighLevelAugmenterAlg.h
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagHighLevelAugmenterAlg.h
@@ -7,7 +7,7 @@
 
 // ATLAS things
 #include "AthenaBaseComps/AthAlgorithm.h"
-#include "xAODJet/Jet.h"
+#include "xAODJet/JetContainer.h"
 #include "xAODBTagging/BTagging.h"
 #include "xAODEventInfo/EventInfo.h"
 #include "StoreGate/ReadDecorHandle.h"
@@ -29,6 +29,7 @@ namespace Analysis {
    
   private:
     // Input Containers
+    SG::ReadHandleKey<xAOD::JetContainer > m_JetCollectionName {this, "JetCollectionName", "", "Input jet container"};
     SG::ReadHandleKey<xAOD::BTaggingContainer > m_BTagCollectionName {this, "BTaggingCollectionName", "", "Input BTagging container"};
     SG::ReadDecorHandleKey<xAOD::BTaggingContainer> m_bTagJetDecorLinkName {this, "JetLinkName", "", "Element Link from BTagging to Jet container"};
     std::string m_flipTagConfig;
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/JetBTaggerAlg.h b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/JetBTaggerAlg.h
index 61ee38e22928796ebfb13d4a38d38424c0873660..ef1a6f2417212de8b62fbc3ce8c9909756485325 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/JetBTaggerAlg.h
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/JetBTaggerAlg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef BTAGGING_JETBTAGGERALG_HH
@@ -45,8 +45,9 @@ class  JetBTaggerAlg:
   private:
   
     SG::ReadHandleKey<xAOD::JetContainer > m_JetCollectionName {this, "JetCollectionName", "", "Input jet container"};
-    Gaudi::Property<SG::WriteDecorHandleKey<xAOD::JetContainer> >m_jetBTaggingLinkName{this,"JetContainerName","","Element link form jet to BTagging container"};
+    SG::WriteDecorHandleKey<xAOD::JetContainer> m_jetBTaggingLinkName{this, "BTaggingLinkName","","Element link form jet to BTagging container"};
     SG::WriteHandleKey<xAOD::BTaggingContainer> m_BTaggingCollectionName {this, "BTaggingCollectionName", "", "Output BTagging container"};
+    SG::WriteDecorHandleKey<xAOD::BTaggingContainer> m_bTagJetDecorLinkName {this, "JetLinkName", "", "Element Link from BTagging to Jet container"};
 
     std::string m_JetName;
     std::string m_BTagLink;
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagHighLevelAugmenterAlgConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagHighLevelAugmenterAlgConfig.py
index 4dfca4ee3f4f7eedd8cbc6422a3fd8684bea2375..4a10f594b8ba36dd9bd831a0e561b1acf6b03028 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagHighLevelAugmenterAlgConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagHighLevelAugmenterAlgConfig.py
@@ -5,7 +5,7 @@ from AthenaConfiguration.ComponentFactory import CompFactory
 
 Analysis__BTagHighLevelAugmenterAlg=CompFactory.Analysis.BTagHighLevelAugmenterAlg
 
-def BTagHighLevelAugmenterAlgCfg(ConfigFlags, sequenceName, BTagCollection, Associator, doFlipTagger=False, **options):
+def BTagHighLevelAugmenterAlgCfg(ConfigFlags, sequenceName, JetCollection, BTagCollection, Associator, doFlipTagger=False, **options):
     """Adds a SecVtxTool instance and registers it.
 
     input: name:               The algorithm's name.
@@ -16,6 +16,7 @@ def BTagHighLevelAugmenterAlgCfg(ConfigFlags, sequenceName, BTagCollection, Asso
     acc = ComponentAccumulator(sequenceName)
 
     options = {}
+    options['JetCollectionName'] = JetCollection.replace('Track', 'PV0Track') + 'Jets'
     options['BTaggingCollectionName'] = BTagCollection
     options['JetLinkName'] = options['BTaggingCollectionName'] + '.jetLink'
     options['BTagTrackToJetAssociatorName'] = Associator
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagLightSecVertexingConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagLightSecVertexingConfig.py
index e87c04895a862dda1df484b580b3335de65358ac..c9b3f11742d936b36957563c71b84921d237985d 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagLightSecVertexingConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagLightSecVertexingConfig.py
@@ -2,7 +2,6 @@
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
-from BTagging.BTaggingFlags import BTaggingFlags
 from JetTagTools.JetFitterVariablesFactoryConfig import JetFitterVariablesFactoryCfg
 #from BTagging.MSVVariablesFactoryConfig import MSVVariablesFactoryCfg
 
@@ -46,8 +45,8 @@ def BTagLightSecVtxToolCfg(flags, Name, JetCollection, SVandAssoc = {""}, TimeSt
     options.setdefault('SecVtxFinderTrackNameList', secVtxFinderTrackNameList)
     options.setdefault('SecVtxFinderxAODBaseNameList', secVtxFinderxAODBaseNameList)
     options['BTagVxSecVertexInfoNames'] = VxSecVertexInfoNameList
-    options.setdefault('PrimaryVertexName', BTaggingFlags.PrimaryVertexCollectionName)
-    options.setdefault('vxPrimaryCollectionName', BTaggingFlags.PrimaryVertexCollectionName)
+    options.setdefault('PrimaryVertexName', flags.BTagging.PrimaryVertexCollectionName)
+    options.setdefault('vxPrimaryCollectionName', flags.BTagging.PrimaryVertexCollectionName)
     options.setdefault('JetFitterVariableFactory', jetFitterVF)
     options['JetSecVtxLinkName'] = jetcol + '.' + OutputFilesSVname
     options['JetJFVtxLinkName'] = jetcol + '.' + OutputFilesJFVxname
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagRun3Config.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagRun3Config.py
index 3d31adb660c47af3344a673e714768616e160c3b..fe5c1fcfe6f00919a8f10d8cf01dec3b52ac2da3 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagRun3Config.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagRun3Config.py
@@ -3,7 +3,6 @@
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
 from IOVDbSvc.IOVDbSvcConfig import addFolders
-from BTagging.BTaggingFlags import BTaggingFlags
 from BTagging.JetBTaggerAlgConfig import JetBTaggerAlgCfg
 from BTagging.JetParticleAssociationAlgConfig import JetParticleAssociationAlgCfg
 from BTagging.JetBTaggingAlgConfig import JetBTaggingAlgCfg
@@ -13,22 +12,49 @@ from BTagging.BTagTrackAugmenterAlgConfig import BTagTrackAugmenterAlgCfg
 from BTagging.BTagHighLevelAugmenterAlgConfig import BTagHighLevelAugmenterAlgCfg
 from BTagging.HighLevelBTagAlgConfig import HighLevelBTagAlgCfg
 
-def JetTagCalibCfg(ConfigFlags, scheme="", TaggerList = []):
+def JetTagCalibCfg(ConfigFlags, scheme="", TaggerList = [], useBTagFlagsDefaults = True, **kwargs):
     result=ComponentAccumulator()
 
-    #if ConfInstance.checkFlagsUsingBTaggingFlags():
-    if True:
+    CalibrationChannelAliases = [ "myOwnCollection->AntiKt4TopoEM,AntiKt4EMTopo",
+                              "AntiKt4Tower->AntiKt4Tower,AntiKt4H1Tower,AntiKt4TopoEM,AntiKt4EMTopo",
+                              "AntiKt4Topo->AntiKt4Topo,AntiKt4TopoEM,AntiKt4EMTopo,AntiKt4H1Topo",
+                              "AntiKt4LCTopo->AntiKt4LCTopo,AntiKt4TopoEM,AntiKt4EMTopo,AntiKt4Topo,AntiKt4H1Topo",
+                              "AntiKt6Tower->AntiKt6Tower,AntiKt6H1Tower,AntiKt4TopoEM,AntiKt4EMTopo",
+                              "AntiKt6Topo->AntiKt6Topo,AntiKt6TopoEM,AntiKt6H1Topo,AntiKt6H1Tower,AntiKt4TopoEM,AntiKt4EMTopo",
+                              "AntiKt6LCTopo->AntiKt6LCTopo,AntiKt6TopoEM,AntiKt6Topo,AntiKt6H1Topo,AntiKt6H1Tower,AntiKt4TopoEM,AntiKt4EMTopo",
+                              "AntiKt4TopoEM->AntiKt4TopoEM,AntiKt4EMTopo,AntiKt4H1Topo,AntiKt4LCTopo",
+                              "AntiKt6TopoEM->AntiKt6TopoEM,AntiKt6H1Topo,AntiKt6H1Tower,AntiKt4TopoEM,AntiKt4EMTopo",
+                              #WOUTER: I added some more aliases here that were previously set up at ./python/BTagging_jobOptions.py. But it cannot
+                              #stay there if we want support for JetRec to setup b-tagging from their end.
+                              "AntiKt4EMTopo->AntiKt4EMTopo,AntiKt4TopoEM,AntiKt4LCTopo",
+                              "AntiKt4LCTopo->AntiKt4LCTopo,AntiKt4TopoEM,AntiKt4EMTopo",
+                              "AntiKt4EMTopoOrigin->AntiKt4EMTopoOrigin,AntiKt4EMTopo,AntiKt4TopoEM,AntiKt4LCTopo",
+                              "AntiKt4LCTopoOrigin->AntiKt4LCTopoOrigin,AntiKt4LCTopo,AntiKt4TopoEM,AntiKt4EMTopo",
+                              "AntiKt10LCTopo->AntiKt10LCTopo,AntiKt6LCTopo,AntiKt6TopoEM,AntiKt4LCTopo,AntiKt4TopoEM,AntiKt4EMTopo",
+                              "AntiKt10Truth->AntiKt6TopoEM,AntiKt4TopoEM,AntiKt4EMTopo,AntiKt4LCTopo",
+                              "AntiKt10TruthWZ->AntiKt10TruthWZ,AntiKt6TopoEM,AntiKt4TopoEM,AntiKt4EMTopo,AntiKt4LCTopo",
+                              "AntiKt4Truth->AntiKt4TopoEM,AntiKt4EMTopo,AntiKt4LCTopo",
+                              "AntiKt4TruthWZ->AntiKt4TruthWZ,AntiKt4TopoEM,AntiKt4EMTopo,AntiKt4LCTopo",
+                              "AntiKt4Track->AntiKt4Track,AntiKt4TopoEM,AntiKt4EMTopo,AntiKt4LCTopo",
+                              "AntiKt3Track->AntiKt3Track,AntiKt4Track,AntiKt4TopoEM,AntiKt4EMTopo,AntiKt4LCTopo",
+                              "AntiKt2Track->AntiKt2Track,AntiKt4Track,AntiKt4TopoEM,AntiKt4EMTopo,AntiKt4LCTopo",
+                              "AntiKt4EMPFlow->AntiKt4EMPFlow,AntiKt4EMTopo,AntiKt4TopoEM,AntiKt4LCTopo",
+                              "AntiKt4HI->AntiKt4HI,AntiKt4EMTopo,AntiKt4TopoEM,AntiKt4LCTopo"]
+
+    newChannel = kwargs.get("NewChannel")
+    if newChannel:
+        CalibrationChannelAliases.append(newChannel)
+       
+    if useBTagFlagsDefaults:
       #IP2D
-      grades= [ "0HitIn0HitNInExp2","0HitIn0HitNInExpIn","0HitIn0HitNInExpNIn","0HitIn0HitNIn",
-                  "0HitInExp", "0HitIn",
-                  "0HitNInExp", "0HitNIn",
-                  "InANDNInShared", "PixShared", "SctShared",
-                  "InANDNInSplit", "PixSplit",
-                  "Good"]
+      grades= ConfigFlags.BTagging.Grades
 
       #IP3D
       #Same as IP2D. Revisit JetTagCalibCondAlg.cxx if not.
 
+      #RNNIP
+      RNNIPConfig = {'rnnip':''}
+
       JetTagCalibCondAlg=CompFactory.Analysis.JetTagCalibCondAlg
       jettagcalibcondalg = "JetTagCalibCondAlg"
       readkeycalibpath = "/GLOBAL/BTagCalib/RUN12"
@@ -38,7 +64,7 @@ def JetTagCalibCfg(ConfigFlags, scheme="", TaggerList = []):
           connSchema = "GLOBAL"
       histoskey = "JetTagCalibHistosKey"
       result.merge(addFolders(ConfigFlags,[readkeycalibpath], connSchema, className='CondAttrListCollection'))
-      JetTagCalib = JetTagCalibCondAlg(jettagcalibcondalg, ReadKeyCalibPath=readkeycalibpath, HistosKey = histoskey, taggers = TaggerList, channelAliases = BTaggingFlags.CalibrationChannelAliases, IP2D_TrackGradePartitions = grades, RNNIP_NetworkConfig = BTaggingFlags.RNNIPConfig)
+      JetTagCalib = JetTagCalibCondAlg(jettagcalibcondalg, ReadKeyCalibPath=readkeycalibpath, HistosKey = histoskey, taggers = TaggerList, channelAliases = CalibrationChannelAliases, IP2D_TrackGradePartitions = grades, RNNIP_NetworkConfig = RNNIPConfig)
   # Maybe needed for trigger use
   #from IOVDbSvc.CondDB import conddb
   #if conddb.dbdata == 'COMP200':
@@ -57,7 +83,7 @@ def registerJetCollectionEL(flags, JetCollection, TimeStamp):
     ItemList = []
     # btaggingLink
     suffix = ".".join(['btaggingLink'+ ts for ts in TimeStamp])
-    ItemList.append('xAOD::JetContainer#'+JetCollection+'Jets.' + suffix)
+    ItemList.append('xAOD::JetContainer#'+JetCollection+'Jets')
     ItemList.append('xAOD::JetAuxContainer#'+JetCollection+'JetsAux.'+ suffix)
 
     return ItemList
@@ -91,12 +117,8 @@ def registerOutputBTaggingContainers(flags, JetCollection, suffix = ''):
           author += '_' + suffix
 
       ItemList.append(OutputFilesBaseName + author)
-      # jetLink
-      jetLink = '.jetLink'
-      ItemList.append(OutputFilesBaseName+author+jetLink)
-      ItemList.append(OutputFilesBaseAuxName+author+jetLink)
-
-      ItemList.append(OutputFilesBaseAuxName + author + 'Aux.-BTagTrackToJetAssociatorBB')
+      ItemList.append(OutputFilesBaseAuxName + author + 'Aux.*')
+      #ItemList.append(OutputFilesBaseAuxName + author + 'Aux.-BTagTrackToJetAssociatorBB')
 
       return ItemList
 
@@ -107,6 +129,8 @@ def BTagRedoESDCfg(flags, jet, extraContainers=[]):
 
     #Register input ESD container in output
     ESDItemList = registerOutputBTaggingContainers(flags, jet)
+    ESDItemList += registerJetCollectionEL(flags, jet, [''])
+    print(ESDItemList)
     from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
     acc.merge(OutputStreamCfg(flags,"ESD", ItemList=ESDItemList+extraContainers))
 
@@ -145,18 +169,23 @@ def RenameInputContainerCfg(suffix):
 
     return acc
 
-def BTagCfg(inputFlags,**kwargs):
+def RenameHLTaggerCfg(JetCollection, Tagger, suffix):
+    acc=ComponentAccumulator()
+    AddressRemappingSvc, ProxyProviderSvc=CompFactory.getComps("AddressRemappingSvc","ProxyProviderSvc",)
+    AddressRemappingSvc = AddressRemappingSvc("AddressRemappingSvc")
+    AddressRemappingSvc.TypeKeyRenameMaps += ['xAOD::BTaggingAuxContainer#BTagging_' + JetCollection + '.' + Tagger + '_pu->BTagging_' + JetCollection + '.'+ Tagger + '_pu' + suffix]
+    AddressRemappingSvc.TypeKeyRenameMaps += ['xAOD::BTaggingAuxContainer#BTagging_' + JetCollection + '.' + Tagger + '_pc->BTagging_' + JetCollection + '.'+ Tagger + '_pc' + suffix]
+    AddressRemappingSvc.TypeKeyRenameMaps += ['xAOD::BTaggingAuxContainer#BTagging_' + JetCollection + '.' + Tagger + '_pb->BTagging_' + JetCollection + '.'+ Tagger + '_pb' + suffix]
+    AddressRemappingSvc.TypeKeyRenameMaps += ['xAOD::BTaggingAuxContainer#BTagging_' + JetCollection + '.' + Tagger + '_ptau->BTagging_' + JetCollection + '.'+ Tagger + '_ptau' + suffix]
+    acc.addService(AddressRemappingSvc)
+    acc.addService(ProxyProviderSvc(ProviderNames = [ "AddressRemappingSvc" ]))
 
-    #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)
+    return acc
+def PrepareStandAloneBTagCfg(inputFlags):
     result=ComponentAccumulator()
-    timestamp = kwargs.get('TimeStamp', None)
-    if timestamp: del kwargs['TimeStamp']
-    splitAlg = kwargs.get('SplitAlg', None)
-    del kwargs['SplitAlg']
-    release = kwargs.get('Release', None)
-    if release: del kwargs['Release']
+
+    from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
+    result.merge(PoolReadCfg(inputFlags))
 
     from TrkConfig.AtlasTrackingGeometrySvcConfig import TrackingGeometrySvcCfg
     acc = TrackingGeometrySvcCfg(inputFlags)
@@ -184,11 +213,22 @@ def BTagCfg(inputFlags,**kwargs):
     #load folders needed for IBL
     result.merge(addFolders(inputFlags,['/Indet/IBLDist'],'INDET_OFL'))
 
-    #Should be parameters
-    JetCollection = ['AntiKt4EMTopo','AntiKt4EMPFlow']
+    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']
+
 
     TrainedTaggers = inputFlags.BTagging.run2TaggersList + ['MultiSVbb1','MultiSVbb2']
-    result.merge(JetTagCalibCfg(inputFlags, TaggerList = TrainedTaggers))
+    result.merge(JetTagCalibCfg(inputFlags, TaggerList = TrainedTaggers, **kwargs))
 
     for jet in JetCollection:
         taggerList = inputFlags.BTagging.run2TaggersList
@@ -200,6 +240,10 @@ def BTagCfg(inputFlags,**kwargs):
             result.merge(RenameInputContainerCfg("old"))
         else:
             extraCont = []
+            extraCont.append("xAOD::VertexContainer#PrimaryVertices")
+            extraCont.append("xAOD::VertexAuxContainer#PrimaryVerticesAux.")
+            extraCont.append("xAOD::TrackParticleContainer#InDetTrackParticles")
+            extraCont.append("xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux.")
             if splitAlg:
                 JFSecVtx = "xAOD::BTagVertexContainer#"
                 AuxJFSecVtx= "xAOD::BTagVertexAuxContainer#"
@@ -217,64 +261,74 @@ def BTagCfg(inputFlags,**kwargs):
             result.merge(BTagRedoESDCfg(inputFlags, jet, extraCont))
 
         if splitAlg:
-            timestamp = kwargs.get('TimeStamp', None)
-            if not timestamp:
-                timestamp = ['']
-            else:
-                del kwargs['TimeStamp']
-
-            postTagDL2JetToTrainingMap={
-                'AntiKt4EMPFlow': [
-                #'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',
-                ]
-            }
-
-            if jet in postTagDL2JetToTrainingMap:
-                #Remove DL1 and RNNIP from taggers list, those taggers are run with HighLevelBTagAlg
-                taggerList.remove('RNNIP')
-                taggerList.remove('DL1')
-
-            #Track Association
-            TrackToJetAssociators = ['BTagTrackToJetAssociator', 'BTagTrackToJetAssociatorBB']
-
-            kwargs['Release'] = '22'
-            result.merge(JetParticleAssociationAlgCfg(inputFlags, jet, "InDetTrackParticles", 'BTagTrackToJetAssociator', **kwargs))
-            kwargs['Release'] = '21'
-            #result.merge(JetParticleAssociationAlgCfg(inputFlags, jet, "InDetTrackParticles", 'BTagTrackToJetAssociator', **kwargs))
-            result.merge(JetParticleAssociationAlgCfg(inputFlags, jet, "InDetTrackParticles", 'BTagTrackToJetAssociatorBB', **kwargs))
-            del kwargs['Release']
+            secVertexingAndAssociators = {'JetFitter':'BTagTrackToJetAssociator','SV1':'BTagTrackToJetAssociator', 'MSV':'BTagTrackToJetAssociatorBB'}
+            result.merge(JetBTaggerSplitAlgsCfg(inputFlags, JetCollection = jet, TaggerList = taggerList, SecVertexingAndAssociators = secVertexingAndAssociators, **kwargs))
+        else:
+            result.merge(JetBTaggerAlgCfg(inputFlags, JetCollection = jet, TaggerList = taggerList, **kwargs))
 
-            #Sec vertex finding
-            SecVertexingAndAssociators = {'JetFitter':'BTagTrackToJetAssociator','SV1':'BTagTrackToJetAssociator'}
-            for k, v in SecVertexingAndAssociators.items():
-                if v not in TrackToJetAssociators:
-                    raise RuntimeError( v + ' is not configured')
-                result.merge(JetSecVtxFindingAlgCfg(inputFlags, jet, "InDetTrackParticles", k, v))
+    return result
 
-                #Sec vertexing
-                result.merge(JetSecVertexingAlgCfg(inputFlags, jet, "InDetTrackParticles", k, v))
+def JetBTaggerSplitAlgsCfg(inputFlags, JetCollection="", TaggerList=[], SecVertexingAndAssociators = {}, SetupScheme="", **kwargs):
 
-            #result.merge(JetSecVertexingAlgCfg(inputFlags, jet, "InDetTrackParticles", 'MSV', 'BTagTrackToJetAssociatorBB'))
+    result=ComponentAccumulator()
+    jet = JetCollection
 
-            #BTagging
-            for ts in timestamp:
-                result.merge(JetBTaggingAlgCfg(inputFlags, JetCollection = jet, TaggerList = taggerList, SVandAssoc = SecVertexingAndAssociators, TimeStamp = ts, **kwargs))
+    timestamp = kwargs.get('TimeStamp', None)
+    if not timestamp:
+        timestamp = ['']
+    else:
+        del kwargs['TimeStamp']
+
+    postTagDL2JetToTrainingMap={
+        'AntiKt4EMPFlow': [
+        #'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',
+        ]
+    }
+
+    if jet in postTagDL2JetToTrainingMap:
+        #Remove DL1 and RNNIP from taggers list, those taggers are run with HighLevelBTagAlg
+        TaggerList.remove('RNNIP')
+        TaggerList.remove('DL1')
+
+    #Track Association
+    TrackToJetAssociators = list(set(SecVertexingAndAssociators.values()))
+    if kwargs.get('Release', None) == '22':
+        #JetParticleAssociationAlg not implemented for BTagTrackToJetAssociatorBB in rel 22
+        TrackToJetAssociators.remove('BTagTrackToJetAssociatorBB')
+
+    for assoc in TrackToJetAssociators:
+        result.merge(JetParticleAssociationAlgCfg(inputFlags, jet, "InDetTrackParticles", assoc, **kwargs))
+        
+    del kwargs['Release']
+
+    #Sec vertex finding
+    for k, v in SecVertexingAndAssociators.items():
+        if v not in TrackToJetAssociators:
+            print( v + ' is not configured, Sec vertex finding skipped')
+            del SecVertexingAndAssociators[k]
+        else:
+            result.merge(JetSecVtxFindingAlgCfg(inputFlags, jet, "InDetTrackParticles", k, v))
+            #Sec vertexing
+            result.merge(JetSecVertexingAlgCfg(inputFlags, jet, "InDetTrackParticles", k, v))
 
-            if jet in postTagDL2JetToTrainingMap:
-                #Track Augmenter
-                result.merge(BTagTrackAugmenterAlgCfg(inputFlags))
+    #result.merge(JetSecVertexingAlgCfg(inputFlags, jet, "InDetTrackParticles", 'MSV', 'BTagTrackToJetAssociatorBB'))
 
-                for ts in timestamp:
-                    #HighLevel taggers can not be run with time stamped containers
-                    if ts == "":
-                        result.merge(RunHighLevelTaggersCfg(inputFlags, jet, 'BTagTrackToJetAssociator', postTagDL2JetToTrainingMap[jet], ts))
+    #BTagging
+    for ts in timestamp:
+        result.merge(JetBTaggingAlgCfg(inputFlags, JetCollection = jet, TaggerList = TaggerList, SVandAssoc = SecVertexingAndAssociators, TimeStamp = ts, **kwargs))
 
-        else:
-            result.merge(JetBTaggerAlgCfg(inputFlags, JetCollection = jet, TaggerList = taggerList, **kwargs))
+    if jet in postTagDL2JetToTrainingMap:
+        #Track Augmenter
+        result.merge(BTagTrackAugmenterAlgCfg(inputFlags))
+
+        for ts in timestamp:
+            #HighLevel taggers can not be run with time stamped containers
+            if ts == "":
+                result.merge(RunHighLevelTaggersCfg(inputFlags, jet, 'BTagTrackToJetAssociator', postTagDL2JetToTrainingMap[jet], ts))
 
     return result
 
@@ -292,12 +346,41 @@ def RunHighLevelTaggersCfg(inputFlags, JetCollection, Associator, TrainingMaps,
     HLBTagSeq = AthSequencer(sequenceName, Sequential = True)
     result.addSequence(HLBTagSeq)
 
-    result.merge(BTagHighLevelAugmenterAlgCfg(inputFlags, sequenceName, BTagCollection = BTagCollection, Associator = Associator, **kwargs) )
+    result.merge(BTagHighLevelAugmenterAlgCfg(inputFlags, sequenceName, JetCollection = JetCollection, BTagCollection = BTagCollection, Associator = Associator) )
     for dl2 in TrainingMaps:
         result.merge(HighLevelBTagAlgCfg(inputFlags, sequenceName, BTagCollection, dl2) )
 
     return result
 
+def BTagHLTaggersCfg(inputFlags, JetCollection = []):
+    acc = ComponentAccumulator()
+
+    # Nothing written out
+    from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
+    acc.merge(OutputStreamCfg(cfgFlags,"ESD", ItemList=[]))
+
+    DeprecatedHLTaggers = ['rnnip', 'DL1']
+    postTagDL2JetToTrainingMap={
+        'AntiKt4EMPFlow': [
+        #'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',
+        ]
+    }
+    for jet in JetCollection:
+        if jet in postTagDL2JetToTrainingMap:
+            for tagger in DeprecatedHLTaggers:
+                acc.merge(RenameHLTaggerCfg(jet, tagger, '_old'))
+            #Track Augmenter
+            acc.merge(BTagTrackAugmenterAlgCfg(cfgFlags))
+
+            #HighLevel taggers can not be run with time stamped containers
+            acc.merge(RunHighLevelTaggersCfg(cfgFlags, jet, 'BTagTrackToJetAssociator', postTagDL2JetToTrainingMap[jet], ""))
+
+    return acc
+
 def str2bool(v):
     if v.lower() in ('yes', 'true', 't', 'y', '1'):
         return True
@@ -315,6 +398,7 @@ if __name__=="__main__":
     parser.add_argument("-f", "--filesIn", default = inputESD, type=str, help="Comma-separated list of input files")
     parser.add_argument("-t", "--nThreads", default=1, type=int, help="The number of concurrent threads to run. 0 uses serial Athena.")
     parser.add_argument("-r", "--release", default="22", type=str, help="Release number to test different scenarii.")
+    parser.add_argument("-l", "--highlevel", type=str2bool, default=False, help="Run only high level taggers.")
     parser.add_argument('-s', '--splitAlg', type=str2bool, default=False, help="Split JetBTaggerAlg.")
 
     args = parser.parse_args()
@@ -346,15 +430,21 @@ if __name__=="__main__":
     # Prevent the flags from being modified
     cfgFlags.lock()
 
-    from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
-    acc.merge(PoolReadCfg(cfgFlags))
+    acc.merge(PrepareStandAloneBTagCfg(cfgFlags))
 
-    kwargs = {}
-    if args.release == "21.2":
-        kwargs["TimeStamp"] = ['201810','201903']
-    kwargs["SplitAlg"] = args.splitAlg
+    JetCollection = ['AntiKt4EMTopo', 'AntiKt4EMPFlow']
+
+    if args.highlevel:
+        acc.merge(BTagHLTaggersCfg(cfgFlags, JetCollection = JetCollection))
+    else:
+        kwargs = {}
+        kwargs['Release'] = args.release
+        if args.release == "21.2":
+            kwargs["TimeStamp"] = ['201810','201903']
+            kwargs['Release'] = '21'
+        kwargs["SplitAlg"] = args.splitAlg
 
-    acc.merge(BTagCfg(cfgFlags, **kwargs))
+        acc.merge(BTagCfg(cfgFlags, JetCollection = JetCollection, **kwargs))
 
     acc.setAppProperty("EvtMax",-1)
 
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagSecVertexingConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagSecVertexingConfig.py
index 55f5e6d4e707285347795d384061c91e17e18066..d5a24bec5980b51ee95dad940462d48666296814 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagSecVertexingConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagSecVertexingConfig.py
@@ -1,8 +1,7 @@
-# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
-from BTagging.BTaggingFlags import BTaggingFlags
 from BTagging.NewJetFitterVxFinderConfig import NewJetFitterVxFinderCfg
 from BTagging.InDetVKalVxInJetToolConfig import InDetVKalVxInJetToolCfg
 from JetTagTools.JetFitterVariablesFactoryConfig import JetFitterVariablesFactoryCfg
@@ -56,8 +55,8 @@ def BTagSecVtxToolCfg(flags, Name, JetCollection, TimeStamp = "", **options):
     options.setdefault('SecVtxFinderList', secVtxFinderList)
     options.setdefault('SecVtxFinderTrackNameList', secVtxFinderTrackNameList)
     options.setdefault('SecVtxFinderxAODBaseNameList', secVtxFinderxAODBaseNameList)
-    options.setdefault('PrimaryVertexName', BTaggingFlags.PrimaryVertexCollectionName)
-    options.setdefault('vxPrimaryCollectionName', BTaggingFlags.PrimaryVertexCollectionName)
+    options.setdefault('PrimaryVertexName', flags.BTagging.PrimaryVertexCollectionName)
+    options.setdefault('vxPrimaryCollectionName', flags.BTagging.PrimaryVertexCollectionName)
     options['BTagJFVtxCollectionName'] = btagname + OutputFilesJFVxname
     options['BTagSVCollectionName'] = btagname + OutputFilesSVname
     options.setdefault('JetFitterVariableFactory', jetFitterVF)
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagToolConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagToolConfig.py
index dcdc51780c0b6cbcf2c89af6666cbd20457e1cc9..91c0011f6cac26dae266288e5a6c7ec2b8607589 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagToolConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagToolConfig.py
@@ -3,7 +3,6 @@
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
 Analysis__BTagTool=CompFactory.Analysis.BTagTool
-from BTagging.BTaggingFlags import BTaggingFlags
 
 def BTagToolCfg(ConfigFlags, TaggerList, useBTagFlagsDefaults = True):
       """Adds a new myBTagTool instance and registers it.
@@ -84,10 +83,9 @@ def BTagToolCfg(ConfigFlags, TaggerList, useBTagFlagsDefaults = True):
 
       options = {}
       if useBTagFlagsDefaults:
-        defaults = { 'Runmodus'                     : BTaggingFlags.Runmodus,
-                     'PrimaryVertexName'            : BTaggingFlags.PrimaryVertexCollectionName,
-                     'BaselineTagger'               : BTaggingFlags.BaselineTagger,
-                     'vxPrimaryCollectionName'      : BTaggingFlags.PrimaryVertexCollectionName,
+        defaults = { 'Runmodus'                     : ConfigFlags.BTagging.RunModus,
+                     'PrimaryVertexName'            : ConfigFlags.BTagging.PrimaryVertexCollectionName,
+                     'vxPrimaryCollectionName'      : ConfigFlags.BTagging.PrimaryVertexCollectionName,
                      'TagToolList'                  : tagToolList,
                    }
         for option in defaults:
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagTrackAssociationConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagTrackAssociationConfig.py
index 365be08f78b6f88b30abf93c7c3a86eeec85af1c..01be1345c61ee259028cc44dacaae702300ac76e 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagTrackAssociationConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagTrackAssociationConfig.py
@@ -1,10 +1,9 @@
-# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
 from BTagging.BTagTrackToJetAssociatorConfig import BTagTrackToJetAssociatorCfg
 from BTagging.BTagMuonToJetAssociatorConfig import BTagMuonToJetAssociatorCfg
-from BTagging.BTaggingFlags import BTaggingFlags
 
 Analysis__BTagTrackAssociation=CompFactory.Analysis.BTagTrackAssociation
 
@@ -13,6 +12,7 @@ def BTagTrackAssociationCfg(flags, name, JetCollection, TaggerList, options={}):
     acc=ComponentAccumulator()
 
     # Setup associators
+    doStandardAssoc = True
     BTagTrackToJetAssociatorList = []
     BTagTrackToJetAssocNameList = []
     if 'IP2D' in TaggerList or 'IP3D' in TaggerList:
@@ -49,7 +49,7 @@ def BTagTrackAssociationCfg(flags, name, JetCollection, TaggerList, options={}):
     options.setdefault('MuonToJetAssociatorList', MuonToJetAssociatorList)
     options.setdefault('MuonToJetAssocNameList', MuonToJetAssocNameList)
     options.setdefault('MuonContainerNameList', MuonContainerNameList)
-    options.setdefault('BTagAssociation', BTaggingFlags.doStandardAssoc)
+    options.setdefault('BTagAssociation', doStandardAssoc)
     options['name'] = name
     tool = Analysis__BTagTrackAssociation(**options)
 
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTaggingConfigFlags.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTaggingConfigFlags.py
index d7ccc2101d3a2a4aa4685d6f9d60fb63fd50de8c..ffec4236d933177b27dff634b3b156979fc13e9a 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTaggingConfigFlags.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTaggingConfigFlags.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 
 from AthenaConfiguration.AthConfigFlags import AthConfigFlags
 
@@ -8,7 +8,15 @@ def createBTaggingConfigFlags():
     btagcf.addFlag("BTagging.run2TaggersList", ['IP2D','IP3D','SV1','SoftMu','JetFitterNN','MV2c10','MV2c10mu','MV2c10rnn','MV2c100','MV2cl100','RNNIP','DL1','DL1mu','DL1rnn'])
     # Disable JetVertexCharge ATLASRECTS-4506
     btagcf.addFlag("BTagging.RunModus", "analysis") # reference mode used in FlavourTagPerformanceFramework (RetagFragment.py)
+    btagcf.addFlag("BTagging.ReferenceType", "ALL") # reference type for IP and SV taggers (B, UDSG, ALL)
     btagcf.addFlag("BTagging.JetPtMinRef", 15e3) # in MeV for uncalibrated pt
+    btagcf.addFlag("BTagging.PrimaryVertexCollectionName", "PrimaryVertices")
+    btagcf.addFlag("BTagging.Grades", [ "0HitIn0HitNInExp2","0HitIn0HitNInExpIn","0HitIn0HitNInExpNIn","0HitIn0HitNIn",
+                                        "0HitInExp", "0HitIn",
+                                        "0HitNInExp", "0HitNIn",
+                                        "InANDNInShared", "PixShared", "SctShared",
+                                        "InANDNInSplit", "PixSplit",
+                                        "Good"])
     #Do we really need this in AthConfigFlags?
     #Comments in BTaggingConfiguration.py
     btagcf.addFlag("BTagging.OutputFiles.Prefix", "BTagging_")
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggerAlgConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggerAlgConfig.py
index 7149c93345f8e321586f9c81a18794cfd8187cf6..11aa16f2a8d7ff0b771ef055ff107604cc4c4cd1 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggerAlgConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggerAlgConfig.py
@@ -14,6 +14,8 @@ def JetBTaggerAlgCfg(ConfigFlags, JetCollection="", TaggerList=[], SetupScheme="
     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 )))
     
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVertexingAlgConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVertexingAlgConfig.py
index f53a0f5a2b1371ff626dd3568ff475c9980b152c..0b4f8e68aba47fd47038f4c2490321102e2c165f 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVertexingAlgConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVertexingAlgConfig.py
@@ -2,7 +2,6 @@
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
-from BTagging.BTaggingFlags import BTaggingFlags
 from BTagging.MSVVariablesFactoryConfig import MSVVariablesFactoryCfg
 
 Analysis__JetSecVertexingAlg=CompFactory.Analysis.JetSecVertexingAlg
@@ -24,14 +23,16 @@ def JetSecVertexingAlgCfg(ConfigFlags, JetCollection, ParticleCollection="", SVF
         JetSVLink = 'JFVtx'
     if SVFinder == 'SV1':
         JetSVLink = 'SecVtx'
+    if SVFinder == 'MSV':
+        JetSVLink = 'MSecVtx' # Maybe no used
 
     varFactory = acc.popToolsAndMerge(MSVVariablesFactoryCfg("MSVVarFactory"))
 
     btagname = ConfigFlags.BTagging.OutputFiles.Prefix + jetcol
     options = {}
     options.setdefault('SecVtxFinderxAODBaseName', SVFinder)
-    options.setdefault('PrimaryVertexName', BTaggingFlags.PrimaryVertexCollectionName)
-    options.setdefault('vxPrimaryCollectionName', BTaggingFlags.PrimaryVertexCollectionName)
+    options.setdefault('PrimaryVertexName', ConfigFlags.BTagging.PrimaryVertexCollectionName)
+    options.setdefault('vxPrimaryCollectionName', ConfigFlags.BTagging.PrimaryVertexCollectionName)
     options['JetCollectionName'] = jetcol.replace('Track', 'PV0Track') + 'Jets'
     options['BTagVxSecVertexInfoName'] = SVFinder + 'VxSecVertexInfo_' + JetCollection
     options['TrackToJetAssociatorName'] = options['JetCollectionName'] + '.' + Associator
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVtxFindingAlgConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVtxFindingAlgConfig.py
index e01ff70a90776484864f47a96226fc29162908f0..b6521171463ab3dc527d5be04a59f4d874696dc3 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVtxFindingAlgConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVtxFindingAlgConfig.py
@@ -2,7 +2,6 @@
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
-from BTagging.BTaggingFlags import BTaggingFlags
 from BTagging.NewJetFitterVxFinderConfig import NewJetFitterVxFinderCfg
 from BTagging.InDetVKalVxInJetToolConfig import InDetVKalVxInJetToolCfg
 
@@ -32,8 +31,8 @@ def JetSecVtxFindingAlgCfg(ConfigFlags, JetCollection, ParticleCollection="", SV
 
     options = {}
     options.setdefault('SecVtxFinder', secVtxFinder)
-    options.setdefault('PrimaryVertexName', BTaggingFlags.PrimaryVertexCollectionName)
-    options.setdefault('vxPrimaryCollectionName', BTaggingFlags.PrimaryVertexCollectionName)
+    options.setdefault('PrimaryVertexName', ConfigFlags.BTagging.PrimaryVertexCollectionName)
+    options.setdefault('vxPrimaryCollectionName', ConfigFlags.BTagging.PrimaryVertexCollectionName)
     options['JetCollectionName'] = jetcol.replace('Track', 'PV0Track') + 'Jets'
     options['TrackToJetAssociatorName'] = options['JetCollectionName'] + '.' + Associator
     options['BTagVxSecVertexInfoName'] = SVFinder + 'VxSecVertexInfo_' + JetCollection
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/NewJetFitterVxFinderConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/NewJetFitterVxFinderConfig.py
index 5f07c8bb4e7592d269bd9deac0c06e008831825e..b0c4b4d96d1f962a03de1bbd124922bbb023d2fe 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/NewJetFitterVxFinderConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/NewJetFitterVxFinderConfig.py
@@ -1,8 +1,7 @@
-# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
-from BTagging.BTaggingFlags import BTaggingFlags
 from BTagging.InDetJetFitterUtilsConfig import InDetJetFitterUtilsCfg
 from BTagging.JetFitterSequentialVertexFitterConfig import JetFitterSequentialVertexFitterCfg
 from BTagging.VxInternalEdmFactoryConfig import VxInternalEdmFactoryCfg
@@ -41,7 +40,7 @@ def NewJetFitterVxFinderCfg(flags, name = 'JFVxFinder', suffix = "", useBTagFlag
         jetFitterExtrapolator = acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags, 'JFExtrapolator'+suffix))
         improvedJetFitterInitializationHelper = acc.popToolsAndMerge(ImprovedJetFitterInitializationHelperCfg('ImprovedJFInitHelper'+suffix))
         vertexEdmFactory = acc.popToolsAndMerge(VxInternalEdmFactoryCfg('VxInternalEdmFactory'+suffix))
-        defaults = { 'VxPrimaryContainer'                  : BTaggingFlags.PrimaryVertexCollectionName,
+        defaults = { 'VxPrimaryContainer'                  : flags.BTagging.PrimaryVertexCollectionName,
                      'MaxNumDeleteIterations'              : 30,
                      'VertexProbCut'                       : 0.001,
                      'MaxClusteringIterations'             : 30,
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagHighLevelAugmenterAlg.cxx b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagHighLevelAugmenterAlg.cxx
index 10be070149b4bbd728b5e49897943beec0a889de..bfa4efa4afdb754551bbcddfa9cfd306d359a1b0 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagHighLevelAugmenterAlg.cxx
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagHighLevelAugmenterAlg.cxx
@@ -29,6 +29,7 @@ namespace Analysis {
     ATH_MSG_DEBUG( "Inizializing containers:"        );
     ATH_MSG_DEBUG( "    ** " << m_BTagCollectionName  );
 
+    ATH_CHECK( m_JetCollectionName.initialize() );
     ATH_CHECK( m_BTagCollectionName.initialize() );
     ATH_CHECK( m_bTagJetDecorLinkName.initialize() );
 
@@ -119,7 +120,16 @@ namespace Analysis {
   StatusCode BTagHighLevelAugmenterAlg::execute() {
     ATH_MSG_DEBUG( "Executing " << name() << "... " );
   
-    SG::ReadHandle< xAOD::BTaggingContainer > h_bTagContainer( m_BTagCollectionName);
+    EventContext ctx = Gaudi::Hive::currentContext();
+
+    //retrieve the Jet container
+    SG::ReadHandle<xAOD::JetContainer> h_JetCollectionName (m_JetCollectionName, ctx);
+    if (!h_JetCollectionName.isValid()) {
+      ATH_MSG_ERROR( " cannot retrieve jet container with key " << m_JetCollectionName.key()  );
+      return StatusCode::FAILURE;
+    }
+
+    SG::ReadHandle< xAOD::BTaggingContainer > h_bTagContainer( m_BTagCollectionName, ctx);
     CHECK( h_bTagContainer.isValid() );
     const xAOD::BTaggingContainer* btags = h_bTagContainer.get();
     ATH_MSG_DEBUG( "Retrieved " << btags->size() << " input btagging..." );
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/JetBTaggerAlg.cxx b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/JetBTaggerAlg.cxx
index dbb0b874d6f4d7e17c0fd5004286800c9df4e862..6ac9c34fa9f6f1dca0490eb5884006790c646954 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/JetBTaggerAlg.cxx
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/JetBTaggerAlg.cxx
@@ -51,6 +51,8 @@ namespace Analysis {
     ATH_CHECK( m_BTaggingCollectionName.initialize() );
     m_jetBTaggingLinkName = m_JetCollectionName.key() + m_BTagLink;
     ATH_CHECK( m_jetBTaggingLinkName.initialize() );
+    m_bTagJetDecorLinkName = m_BTaggingCollectionName.key() + ".jetLink";
+    ATH_CHECK( m_bTagJetDecorLinkName.initialize() );
    
     /// retrieve the main BTagTool
     if ( m_bTagTool.retrieve().isFailure() ) {
@@ -108,6 +110,8 @@ namespace Analysis {
 
     //Decor Jet with element link to the BTagging
     SG::WriteDecorHandle<xAOD::JetContainer,ElementLink< xAOD::BTaggingContainer > > h_jetBTaggingLinkName(m_jetBTaggingLinkName, ctx);
+    //Decor BTagging with element link to the Jet
+    SG::WriteDecorHandle<xAOD::BTaggingContainer, ElementLink< xAOD::JetContainer > > h_bTagJetLinkName(m_bTagJetDecorLinkName, ctx);
 
     //Create a xAOD::BTaggingContainer in any case (must be done)
     std::string bTaggingContName = m_BTaggingCollectionName.key();
@@ -171,13 +175,16 @@ namespace Analysis {
       ATH_MSG_WARNING("#BTAG# Failed in taggers call");
     }
 
-    //Create the element link from the jet to the btagging
+    //Create the element link from the jet to the btagging and reverse link
     for (size_t jetIndex=0; jetIndex < h_JetCollectionName->size() ; ++jetIndex) {
       const xAOD::Jet * jetToTag = h_JetCollectionName->at(jetIndex);
       xAOD::BTagging * itBTag = h_BTaggingCollectionName->at(jetIndex);
       ElementLink< xAOD::BTaggingContainer> linkBTagger;
       linkBTagger.toContainedElement(*h_BTaggingCollectionName.ptr(), itBTag);
       h_jetBTaggingLinkName(*jetToTag) = linkBTagger;
+      ElementLink< xAOD::JetContainer> linkJet;
+      linkJet.toContainedElement(*h_JetCollectionName.ptr(), jetToTag);
+      h_bTagJetLinkName(*itBTag) = linkJet;
     }
 
     return StatusCode::SUCCESS;
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/DL1TagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/DL1TagConfig.py
index 0c6159329151e4a3ce4bbc783ce0f34f88d2d809..effd38ac65c64c295fbb0b3bfb9e972313aed717 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/DL1TagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/DL1TagConfig.py
@@ -1,8 +1,7 @@
-# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
-from BTagging.BTaggingFlags import BTaggingFlags
 
 # import the DL1Tag configurable
 Analysis__DL1Tag=CompFactory.Analysis.DL1Tag
@@ -26,13 +25,16 @@ def DL1TagCfg(flags, name = 'DL1', scheme = '', useBTagFlagsDefaults = True, **o
     acc = ComponentAccumulator()
     options['name'] = name + 'Tag'
     basename = name
+    DL1LocalNNConfig = ''
+    ForceDL1CalibrationAlias = True
+    DL1CalibAlias = 'AntiKt4EMTopo'
     options['xAODBaseName'] = basename
-    options['LocalNNConfigurationFile'] = BTaggingFlags.DL1LocalNNConfig
+    options['LocalNNConfigurationFile'] = DL1LocalNNConfig
  
     if useBTagFlagsDefaults:
         defaults = { 'Runmodus'                         : flags.BTagging.RunModus,
-                     'forceDL1CalibrationAlias'         : BTaggingFlags.ForceDL1CalibrationAlias,
-                     'DL1CalibAlias'                    : BTaggingFlags.DL1CalibAlias,
+                     'forceDL1CalibrationAlias'         : ForceDL1CalibrationAlias,
+                     'DL1CalibAlias'                    : DL1CalibAlias,
                      'calibration_directory'            : basename,
                      }
         for option in defaults:
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/IP2DTagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/IP2DTagConfig.py
index 5631d0595fdf4a00829aba48c5bc537e962b15f1..3aca626d04198369598cd64656dbede276facf04 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/IP2DTagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/IP2DTagConfig.py
@@ -2,7 +2,6 @@
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
-from BTagging.BTaggingFlags import BTaggingFlags
 from JetTagTools.BTagTrackToVertexIPEstimatorConfig import BTagTrackToVertexIPEstimatorCfg
 from JetTagTools.SVForIPToolConfig import SVForIPToolCfg
 from JetTagTools.IPDetailedTrackGradeFactoryConfig import IPDetailedTrackGradeFactoryCfg
@@ -18,7 +17,7 @@ def IP2DTagCfg( flags, name = 'IP2DTag', scheme = '', useBTagFlagsDefaults = Tru
     The following options have BTaggingFlags defaults:
 
     Runmodus                            default: BTagging.RunModus
-    referenceType                       default: BTaggingFlags.ReferenceType
+    referenceType                       default: BTagging.ReferenceType
     impactParameterView                 default: "2D"
     trackGradePartitions                default: [ "Good", "BlaShared", "PixShared", "SctShared", "0HitBLayer" ]
     RejectBadTracks                     default: False
@@ -37,12 +36,6 @@ def IP2DTagCfg( flags, name = 'IP2DTag', scheme = '', useBTagFlagsDefaults = Tru
     options['trackAssociationName'] = 'BTagTrackToJetAssociator'
     if (scheme == ""): 
         if useBTagFlagsDefaults:
-            grades= [ "0HitIn0HitNInExp2","0HitIn0HitNInExpIn","0HitIn0HitNInExpNIn","0HitIn0HitNIn",
-                  "0HitInExp", "0HitIn",
-                  "0HitNInExp", "0HitNIn",
-                  "InANDNInShared", "PixShared", "SctShared",
-                  "InANDNInSplit", "PixSplit",
-                  "Good"]
             trackToVertexIPEstimator = acc.popToolsAndMerge(BTagTrackToVertexIPEstimatorCfg(flags, 'TrkToVxIPEstimator'))
             svForIPTool = acc.popToolsAndMerge(SVForIPToolCfg('SVForIPTool'))
             trackGradeFactory = acc.popToolsAndMerge(IPDetailedTrackGradeFactoryCfg('IP2DDetailedTrackGradeFactory'))
@@ -50,10 +43,10 @@ def IP2DTagCfg( flags, name = 'IP2DTag', scheme = '', useBTagFlagsDefaults = Tru
             likelihood = acc.popToolsAndMerge(NewLikelihoodToolCfg(flags, 'IP2DNewLikelihoodTool', 'IP2D'))
 
             defaults = { 'Runmodus'                         : flags.BTagging.RunModus,
-                     'referenceType'                    : BTaggingFlags.ReferenceType,
+                     'referenceType'                    : flags.BTagging.ReferenceType,
                      'jetPtMinRef'                      : flags.BTagging.JetPtMinRef,
                      'impactParameterView'              : '2D',
-                     'trackGradePartitions'             : grades,
+                     'trackGradePartitions'             : flags.BTagging.Grades,
                      'RejectBadTracks'                  : True,
                      'jetCollectionList'                : [], #used only in reference mode
                      'unbiasIPEstimation'               : False,
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/IP3DTagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/IP3DTagConfig.py
index fd7ffa95ef3c1235ead466c468ad58a54aa0e654..a803b72233eb3a04cafdb38c593ec659d15410e6 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/IP3DTagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/IP3DTagConfig.py
@@ -2,7 +2,6 @@
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
-from BTagging.BTaggingFlags import BTaggingFlags
 from JetTagTools.BTagTrackToVertexIPEstimatorConfig import BTagTrackToVertexIPEstimatorCfg
 from JetTagTools.SVForIPToolConfig import SVForIPToolCfg
 from JetTagTools.IPDetailedTrackGradeFactoryConfig import IPDetailedTrackGradeFactoryCfg
@@ -20,7 +19,7 @@ def IP3DTagCfg( flags, name = 'IP3DTag', scheme = '', useBTagFlagsDefaults = Tru
     The following options have BTaggingFlags defaults:
 
     Runmodus                            default: BTagging.RunModus
-    referenceType                       default: BTaggingFlags.ReferenceType
+    referenceType                       default: BTagging.ReferenceType
     impactParameterView                 default: "3D"
     trackGradePartitions                default: [ "Good", "BlaShared", "PixShared", "SctShared", "0HitBLayer" ]
     RejectBadTracks                     default: False
@@ -40,12 +39,6 @@ def IP3DTagCfg( flags, name = 'IP3DTag', scheme = '', useBTagFlagsDefaults = Tru
 
     if (scheme == ""): 
         if useBTagFlagsDefaults:
-            grades= [ "0HitIn0HitNInExp2","0HitIn0HitNInExpIn","0HitIn0HitNInExpNIn","0HitIn0HitNIn",
-                  "0HitInExp", "0HitIn",
-                  "0HitNInExp", "0HitNIn",
-                  "InANDNInShared", "PixShared", "SctShared",
-                  "InANDNInSplit", "PixSplit",
-                  "Good"]
             trackToVertexIPEstimator = acc.popToolsAndMerge(BTagTrackToVertexIPEstimatorCfg(flags, 'TrkToVxIPEstimator'))
             svForIPTool = acc.popToolsAndMerge(SVForIPToolCfg('SVForIPTool'))
             trackGradeFactory = acc.popToolsAndMerge(IPDetailedTrackGradeFactoryCfg('IP3DDetailedTrackGradeFactory'))
@@ -55,10 +48,10 @@ def IP3DTagCfg( flags, name = 'IP3DTag', scheme = '', useBTagFlagsDefaults = Tru
             trackVertexAssociationTool = acc.popToolsAndMerge(SpecialTrackAssociatorCfg('SpecialTrackAssociator'))
 
             defaults = { 'Runmodus'                         : flags.BTagging.RunModus,
-                     'referenceType'                    : BTaggingFlags.ReferenceType,
+                     'referenceType'                    : flags.BTagging.ReferenceType,
                      'jetPtMinRef'                      : flags.BTagging.JetPtMinRef,
                      'impactParameterView'              : '3D',
-                     'trackGradePartitions'             : grades,
+                     'trackGradePartitions'             : flags.BTagging.Grades,
                      'RejectBadTracks'                  : True,
                      'jetCollectionList'                : [], #used only in reference mode
                      'unbiasIPEstimation'               : False,
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterNNToolConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterNNToolConfig.py
index 359d9f46fab626091bd17c3337838445cbc86d86..30c2068e7849a4427415a1191ca1b295bbcd8985 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterNNToolConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterNNToolConfig.py
@@ -1,8 +1,7 @@
-# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
-from BTagging.BTaggingFlags import BTaggingFlags
 from JetTagTools.NeuralNetworkToHistoToolConfig import NeuralNetworkToHistoToolCfg
 
 # import the JetFitterNNTool configurable
@@ -24,7 +23,11 @@ def JetFitterNNToolCfg( name = 'JetFitterNNTool', CombinedIPNN = False, useBTagF
     output: The actual tool."""
     acc = ComponentAccumulator()
     options['name'] = name
-    if not BTaggingFlags.RunJetFitterNNTool:
+    # you can force the NN tool off with this flag (avoids loading
+    # old jetfitter nns which sometimes crash
+    RunJetFitterNNTool = True
+
+    if not RunJetFitterNNTool:
         raise ValueError("This case is not implemented because always True during Run2. Contact BTagging software team.")
     if useBTagFlagsDefaults:
         if not CombinedIPNN:
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterTagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterTagConfig.py
index 07378024828c552db249190c589de27c2e21eeb6..0305c07890064659a68d7a0d2ba569c3420afdcc 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterTagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterTagConfig.py
@@ -1,8 +1,7 @@
-# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
-from BTagging.BTaggingFlags import BTaggingFlags
 from JetTagTools.JetFitterNtupleWriterNNConfig import JetFitterNtupleWriterNNCfg
 from JetTagTools.JetFitterNNToolConfig import JetFitterNNToolCfg
 
@@ -38,7 +37,7 @@ def JetFitterTagCfg(flags, name = 'JetFitterTagNN', scheme = '', CombinedIPNN =
                 jetFitterNtupleWriterNN = acc.popToolsAndMerge(JetFitterNtupleWriterNNCfg('JetFitterNtupleWriterNN'))
                 jetfitterClassifier = acc.popToolsAndMerge(JetFitterNNToolCfg('JetFitterNNTool'))
                 defaults = { 'Runmodus'                         : flags.BTagging.RunModus,
-                     'jetCollectionList'                : BTaggingFlags.Jets,
+                     'jetCollectionList'                : [], #used only in reference mode
                      'SecVxFinderName'                  : 'JetFitter',
                      'useForcedCalibration'             : False,
                      'ipinfoTaggerName'                 : "",
@@ -47,7 +46,7 @@ def JetFitterTagCfg(flags, name = 'JetFitterTagNN', scheme = '', CombinedIPNN =
                      }
             else:
                 defaults = { 'Runmodus'                         : flags.BTagging.RunModus,
-                     'jetCollectionList'                : BTaggingFlags.Jets,
+                     'jetCollectionList'                : [], #used only in reference mode
                      'SecVxFinderName'                  : 'JetFitter',
                      'useForcedCalibration'             : False,
                      'ipinfoTaggerName'                 : 'IP3D',
@@ -56,7 +55,7 @@ def JetFitterTagCfg(flags, name = 'JetFitterTagNN', scheme = '', CombinedIPNN =
             # JetFitterFlip should be a flip version of JetFitter created in setupSecVtxTool
         if useBTagFlagsDefaults:
             defaults = { 'Runmodus'                         : flags.BTagging.RunModus,
-                     'jetCollectionList'                : BTaggingFlags.Jets,
+                     'jetCollectionList'                : [], #used only in reference mode
                      'SecVxFinderName'                  : 'JetFitterFlip',
                      'useForcedCalibration'             : False,
                      'ipinfoTaggerName'                 : 'IP3D',
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/MV2TagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/MV2TagConfig.py
index 1c0adad002318697175a2c6b3bd7f222aae96055..2d6d4c408ae5bc2030ead061c7e89f3e347bd573 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/MV2TagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/MV2TagConfig.py
@@ -1,8 +1,7 @@
-# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
-from BTagging.BTaggingFlags import BTaggingFlags
 from BTagging.MV2defaultValues import default_values
 from BTagging.MV2defaultValues import MVTM_varNames
 
@@ -27,14 +26,16 @@ def MV2TagCfg( flags, name = 'MV2c10', scheme = '', useBTagFlagsDefaults = True,
     acc = ComponentAccumulator()
     options['name'] = name + 'Tag'
     basename = name
+    ForceMV2CalibrationAlias = False
+    MV2CalibAlias = 'AntiKt4EMTopo'
     options['xAODBaseName'] = basename
 
     if useBTagFlagsDefaults:
         defaults = { 'Runmodus'                         : flags.BTagging.RunModus,
                      'taggerName'                       : basename,
                      'taggerNameBase'                   : basename,
-                     'forceMV2CalibrationAlias'         : BTaggingFlags.ForceMV2CalibrationAlias,
-                     'MV2CalibAlias'                    : BTaggingFlags.MV2CalibAlias,
+                     'forceMV2CalibrationAlias'         : ForceMV2CalibrationAlias,
+                     'MV2CalibAlias'                    : MV2CalibAlias,
                      'defaultvals'                      : default_values,
                      'MVTMvariableNames'                : MVTM_varNames,
                      }
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/RNNIPTagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/RNNIPTagConfig.py
index 1c3ed2a381006fbf3931c5538f0e9dcaca76f9be..50d96b45e61783a80277bf7f0880a634d5d0e7f2 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/RNNIPTagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/RNNIPTagConfig.py
@@ -1,8 +1,7 @@
-# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
-from BTagging.BTaggingFlags import BTaggingFlags
 from JetTagTools.BTagTrackToVertexIPEstimatorConfig import BTagTrackToVertexIPEstimatorCfg
 from JetTagTools.SVForIPToolConfig import SVForIPToolCfg
 from JetTagTools.IPDetailedTrackGradeFactoryConfig import IPDetailedTrackGradeFactoryCfg
@@ -28,6 +27,8 @@ def RNNIPTagCfg( flags, name = 'RNNIP', scheme = '', calibration=None, useBTagFl
     acc = ComponentAccumulator()   
     options['name'] = name
     basename = 'RNNIP'
+    RNNIPConfig = {'rnnip':''}
+    WriteRNNInputs = False
     options['xAODBaseName'] = basename
     options['trackAssociationName'] = 'BTagTrackToJetAssociator'
     cal_dir = calibration or basename
@@ -36,25 +37,19 @@ def RNNIPTagCfg( flags, name = 'RNNIP', scheme = '', calibration=None, useBTagFl
         is_flipped=True
 
     if useBTagFlagsDefaults:
-        grades= [ "0HitIn0HitNInExp2","0HitIn0HitNInExpIn","0HitIn0HitNInExpNIn","0HitIn0HitNIn",
-                  "0HitInExp", "0HitIn",
-                  "0HitNInExp", "0HitNIn",
-                  "InANDNInShared", "PixShared", "SctShared",
-                  "InANDNInSplit", "PixSplit",
-                  "Good"]
         trackToVertexIPEstimator = acc.popToolsAndMerge(BTagTrackToVertexIPEstimatorCfg(flags, 'TrkToVxIPEstimator'))
         svForIPTool = acc.popToolsAndMerge(SVForIPToolCfg('SVForIPTool'))
         trackGradeFactory = acc.popToolsAndMerge(IPDetailedTrackGradeFactoryCfg('RNNIPDetailedTrackGradeFactory'))
         trackSelectorTool = acc.popToolsAndMerge(IPTrackSelectorCfg(flags, 'RNNIPTrackSelector'))
 
         defaults = {
-                'trackGradePartitions'      : grades ,
+                'trackGradePartitions'      : flags.BTagging.Grades,
                 'RejectBadTracks'           : True,
-                'NetworkConfig'             : BTaggingFlags.RNNIPConfig,
+                'NetworkConfig'             : RNNIPConfig,
                 'unbiasIPEstimation'        : False,
                 'SecVxFinderName'           : 'SV1',
                 'calibration_directory'     : cal_dir,
-                'writeInputsToBtagObject'   : BTaggingFlags.WriteRNNInputs,
+                'writeInputsToBtagObject'   : WriteRNNInputs,
                 'trackSelectorTool'         : trackSelectorTool,
                 'SVForIPTool'               : svForIPTool,
                 'trackGradeFactory'         : trackGradeFactory,
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/SV1TagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/SV1TagConfig.py
index 7502ad1ccf3866de9fe3c5c68623082438a42775..19c2bad813f5eb66e38c8d9ab5623dc756ecb822 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/SV1TagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/SV1TagConfig.py
@@ -1,8 +1,7 @@
-# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
-from BTagging.BTaggingFlags import BTaggingFlags
 from JetTagTools.NewLikelihoodToolConfig import NewLikelihoodToolCfg
 
 # import the SVTag configurable
@@ -14,7 +13,7 @@ def SV1TagCfg( flags, name = 'SV1Tag', scheme = '', useBTagFlagsDefaults = True,
     The following options have BTaggingFlags defaults:
 
     Runmodus                            default: BTagging.RunModus
-    referenceType                       default: BTaggingFlags.ReferenceType
+    referenceType                       default: BTagging.ReferenceType
     SVAlgType                           default: "SV1"
     jetCollectionList                   default: BTaggingFlags.Jets
     LikelihoodTool                      default: None
@@ -31,10 +30,10 @@ def SV1TagCfg( flags, name = 'SV1Tag', scheme = '', useBTagFlagsDefaults = True,
     if useBTagFlagsDefaults:
         likelihood = acc.popToolsAndMerge(NewLikelihoodToolCfg(flags, 'SV1NewLikelihoodTool', 'SV1'))
         defaults = { 'Runmodus'                         : flags.BTagging.RunModus,
-                     'referenceType'                    : BTaggingFlags.ReferenceType,
+                     'referenceType'                    : flags.BTagging.ReferenceType,
                      'jetPtMinRef'                      : flags.BTagging.JetPtMinRef,
                      'SVAlgType'                        : 'SV1',
-                     'jetCollectionList'                : BTaggingFlags.Jets,
+                     'jetCollectionList'                : [], #used only in reference mode
                      'SecVxFinderName'                  : 'SV1',
                      'UseCHypo'                         : True,
                      'LikelihoodTool'                   : likelihood }
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/SoftMuonTagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/SoftMuonTagConfig.py
index 6c6cd3b9e2371efaa07fa3421a45d82bc01a8c6f..db46da86737beb1f512442def77234011b04918c 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/SoftMuonTagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/SoftMuonTagConfig.py
@@ -1,8 +1,7 @@
-# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
-from BTagging.BTaggingFlags import BTaggingFlags
 from JetTagTools.BTagTrackToVertexIPEstimatorConfig import BTagTrackToVertexIPEstimatorCfg
 from JetTagTools.NewLikelihoodToolConfig import NewLikelihoodToolCfg
 from JetTagTools.MuonSelectorToolConfig import MuonSelectorToolCfg
@@ -17,7 +16,7 @@ def SoftMuonTagCfg( flags, name = 'SoftMu', useBTagFlagsDefaults = True, **optio
 
     Runmodus                            default: BTagging.RunModus
     jetCollectionList                   default: BTaggingFlags.Jets
-    originalMuCollectionName            default: BTaggingFlags.MuonCollectionName
+    originalMuCollectionName            default: BTaggingFlags.MuonCollectionName ('Muons')
     BTagJetEtamin                       default: 2.5 (only if BTagging.RunModus == 'reference')
     MuonQuality                         default: xAOD::Muon::Medium
 
@@ -25,6 +24,7 @@ def SoftMuonTagCfg( flags, name = 'SoftMu', useBTagFlagsDefaults = True, **optio
           useBTagFlagsDefaults : Whether to use BTaggingFlags defaults for options that are not specified.
                   **options: Python dictionary with options for the tool.
     output: The actual tool."""
+    muonCollectionName = 'Muons'
     acc = ComponentAccumulator()
     if useBTagFlagsDefaults:
         trackToVertexIPEstimator = acc.popToolsAndMerge(BTagTrackToVertexIPEstimatorCfg(flags, 'TrkToVxIPEstimator'))
@@ -32,8 +32,8 @@ def SoftMuonTagCfg( flags, name = 'SoftMu', useBTagFlagsDefaults = True, **optio
         likelihood = acc.popToolsAndMerge(NewLikelihoodToolCfg(flags, 'SoftMuonTagNewLikelihoodTool', 'SMT'))
         defaults = {
                      'Runmodus'                         : flags.BTagging.RunModus,
-                     'jetCollectionList'                : BTaggingFlags.Jets,
-                     'originalMuCollectionName'         : BTaggingFlags.MuonCollectionName,
+                     'jetCollectionList'                : [], #used only in reference mode
+                     'originalMuCollectionName'         : muonCollectionName,
                      'MuonQuality'                      : 2,
                      'muonSelectorTool'                 : muonSelectorTool,
                      'LikelihoodTool'                   : likelihood,