From 71d3f147ceef67680f48d8dc2eb7c2d4faef5d50 Mon Sep 17 00:00:00 2001
From: Christian Nass <christian.nass@cern.ch>
Date: Wed, 1 Apr 2020 12:51:12 +0200
Subject: [PATCH] Changes from Develop

---
 .../BTagging/BTagging/BTagTrackAugmenterAlg.h |  1 +
 .../BTagging/python/BTagToolConfig.py         | 22 +++----
 .../BTagging/python/BTaggingConfigFlags.py    |  1 +
 .../BTagging/python/BTaggingFlags.py          |  9 ++-
 .../BTagging/python/JetBTaggingAlgConfig.py   | 10 ++-
 .../BTagging/src/BTagTrackAugmenterAlg.cxx    | 14 +++-
 .../JetTagTools/python/DL1TagConfig.py        |  2 +
 .../JetTagTools/python/IP2DTagConfig.py       |  4 +-
 .../JetTagTools/python/IP3DTagConfig.py       |  4 +-
 .../python/JetFitterNNToolConfig.py           |  5 +-
 .../JetTagTools/python/JetFitterTagConfig.py  |  4 +-
 .../python/JetVertexChargeConfig.py           |  5 +-
 .../JetTagTools/python/MV2TagConfig.py        |  2 +
 .../JetTagTools/python/MultiSVTagConfig.py    |  6 +-
 .../python/MultivariateTagManagerConfig.py    | 21 +++---
 .../python/NewLikelihoodToolConfig.py         |  5 +-
 .../JetTagTools/python/RNNIPTagConfig.py      |  2 +
 .../JetTagTools/python/SV1TagConfig.py        |  3 +-
 .../JetTagTools/python/SoftMuonTagConfig.py   |  7 +-
 .../python/SpecialTrackAssociatorConfig.py    |  2 +
 .../TrigBjetHypo/src/TrigBtagFexMT.cxx        | 41 ++++++++++++
 .../TrigBjetHypo/src/TrigBtagFexMT.h          |  8 +++
 .../TrigOutputHandling/src/HLTEDMCreator.cxx  |  2 +
 .../TrigOutputHandling/src/HLTEDMCreator.h    |  3 +
 .../src/EventViewCreatorAlgorithmWithJets.cxx | 14 ++--
 .../TrigEDMConfig/python/TriggerEDMRun3.py    | 32 ++++++++-
 .../python/JetTagCalibConfig.py               | 53 +++++++++++++++
 .../TriggerJobOpts/share/runHLT_standalone.py |  7 ++
 .../Bjet/BjetFlavourTaggingConfiguration.py   | 65 ++++++++++++++++++-
 .../HLTMenuConfig/Bjet/BjetSequenceSetup.py   | 37 ++++++-----
 30 files changed, 320 insertions(+), 71 deletions(-)
 create mode 100644 Trigger/TriggerCommon/TriggerJobOpts/python/JetTagCalibConfig.py

diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagTrackAugmenterAlg.h b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagTrackAugmenterAlg.h
index fe90d494f178..4418f9d48f7e 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagTrackAugmenterAlg.h
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagTrackAugmenterAlg.h
@@ -56,3 +56,4 @@ namespace Analysis {
 }
 
 #endif
+
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagToolConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagToolConfig.py
index 8a9d4bed5a4c..ba0c1eefe9e1 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagToolConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagToolConfig.py
@@ -5,7 +5,7 @@ from AthenaConfiguration.ComponentFactory import CompFactory
 Analysis__BTagTool=CompFactory.Analysis__BTagTool
 from BTagging.BTaggingFlags import BTaggingFlags
 
-def BTagToolCfg(ConfigFlags, TaggerList, useBTagFlagsDefaults = True):
+def BTagToolCfg(ConfigFlags, TaggerList, scheme = '', useBTagFlagsDefaults = True):
       """Adds a new myBTagTool instance and registers it.
 
       input: jetcol:             The name of the jet collections.
@@ -26,47 +26,47 @@ def BTagToolCfg(ConfigFlags, TaggerList, useBTagFlagsDefaults = True):
 
       if 'IP2D' in TaggerList:
           from JetTagTools.IP2DTagConfig import IP2DTagCfg
-          ip2dtool = acc.popToolsAndMerge(IP2DTagCfg(ConfigFlags, 'IP2DTag'))
+          ip2dtool = acc.popToolsAndMerge(IP2DTagCfg(ConfigFlags, 'IP2DTag', scheme))
           tagToolList.append(ip2dtool)
 
       if 'IP3D' in TaggerList:
           from JetTagTools.IP3DTagConfig import IP3DTagCfg
-          ip3dtool = acc.popToolsAndMerge(IP3DTagCfg(ConfigFlags, 'IP3DTag'))
+          ip3dtool = acc.popToolsAndMerge(IP3DTagCfg(ConfigFlags, 'IP3DTag', scheme))
           tagToolList.append(ip3dtool)
 
       if 'SV1' in TaggerList:
           from JetTagTools.SV1TagConfig import SV1TagCfg
-          sv1tool = acc.popToolsAndMerge(SV1TagCfg(ConfigFlags, 'SV1Tag'))
+          sv1tool = acc.popToolsAndMerge(SV1TagCfg(ConfigFlags, 'SV1Tag', scheme))
           tagToolList.append(sv1tool)
 
       if 'RNNIP' in TaggerList:
           from JetTagTools.RNNIPTagConfig import RNNIPTagCfg
-          rnniptool = acc.popToolsAndMerge(RNNIPTagCfg(ConfigFlags, 'RNNIPTag'))
+          rnniptool = acc.popToolsAndMerge(RNNIPTagCfg(ConfigFlags, 'RNNIPTag', scheme))
           tagToolList.append(rnniptool)
 
       if 'JetFitterNN' in TaggerList:
           from JetTagTools.JetFitterTagConfig import JetFitterTagCfg
-          jetfitterNNtool = acc.popToolsAndMerge(JetFitterTagCfg(ConfigFlags, 'JetFitterTagNN'))
+          jetfitterNNtool = acc.popToolsAndMerge(JetFitterTagCfg(ConfigFlags, 'JetFitterTagNN', scheme))
           tagToolList.append(jetfitterNNtool)
       
       if 'SoftMu' in TaggerList:
           from JetTagTools.SoftMuonTagConfig import SoftMuonTagCfg
-          softmutool = acc.popToolsAndMerge(SoftMuonTagCfg(ConfigFlags, 'SoftMuonTag'))
+          softmutool = acc.popToolsAndMerge(SoftMuonTagCfg(ConfigFlags, 'SoftMuonTag', scheme))
           tagToolList.append(softmutool)
 
       if 'MultiSVbb1' in TaggerList:
           from JetTagTools.MultiSVTagConfig import MultiSVTagCfg
-          multisvbb1tool = acc.popToolsAndMerge(MultiSVTagCfg(ConfigFlags,'MultiSVbb1Tag','MultiSVbb1'))
+          multisvbb1tool = acc.popToolsAndMerge(MultiSVTagCfg(ConfigFlags,'MultiSVbb1Tag','MultiSVbb1', scheme))
           tagToolList.append(multisvbb1tool)
 
       if 'MultiSVbb2' in TaggerList:
           from JetTagTools.MultiSVTagConfig import MultiSVTagCfg
-          multisvbb2tool = acc.popToolsAndMerge(MultiSVTagCfg(ConfigFlags, 'MultiSVbb2Tag','MultiSVbb2'))
+          multisvbb2tool = acc.popToolsAndMerge(MultiSVTagCfg(ConfigFlags, 'MultiSVbb2Tag','MultiSVbb2', scheme))
           tagToolList.append(multisvbb2tool)
 
       if 'JetVertexCharge' in TaggerList:
           from JetTagTools.JetVertexChargeConfig import JetVertexChargeCfg
-          jvc = acc.popToolsAndMerge(JetVertexChargeCfg(ConfigFlags, 'JetVertexCharge'))
+          jvc = acc.popToolsAndMerge(JetVertexChargeCfg(ConfigFlags, 'JetVertexCharge', scheme))
           tagToolList.append(jvc)
 
       # list of taggers that use MultivariateTagManager
@@ -79,7 +79,7 @@ def BTagToolCfg(ConfigFlags, TaggerList, useBTagFlagsDefaults = True):
       mvtm_active_taggers = list(set(mvtm_taggers) & set(TaggerList))
       if len(mvtm_active_taggers) > 0:
           from JetTagTools.MultivariateTagManagerConfig import MultivariateTagManagerCfg
-          mvtm = acc.popToolsAndMerge(MultivariateTagManagerCfg(ConfigFlags, 'mvtm', TaggerList = mvtm_active_taggers))
+          mvtm = acc.popToolsAndMerge(MultivariateTagManagerCfg(ConfigFlags, 'mvtm', TaggerList = mvtm_active_taggers, scheme = scheme))
           tagToolList.append(mvtm)
 
       options = {}
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTaggingConfigFlags.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTaggingConfigFlags.py
index d7ccc2101d3a..bfb03758759d 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTaggingConfigFlags.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTaggingConfigFlags.py
@@ -6,6 +6,7 @@ def createBTaggingConfigFlags():
     btagcf = AthConfigFlags()
 
     btagcf.addFlag("BTagging.run2TaggersList", ['IP2D','IP3D','SV1','SoftMu','JetFitterNN','MV2c10','MV2c10mu','MV2c10rnn','MV2c100','MV2cl100','RNNIP','DL1','DL1mu','DL1rnn'])
+    btagcf.addFlag("BTagging.TrigTaggersList", ['IP2D','IP3D','SV1','JetFitterNN','MV2c10','MV2c100'])
     # Disable JetVertexCharge ATLASRECTS-4506
     btagcf.addFlag("BTagging.RunModus", "analysis") # reference mode used in FlavourTagPerformanceFramework (RetagFragment.py)
     btagcf.addFlag("BTagging.JetPtMinRef", 15e3) # in MeV for uncalibrated pt
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTaggingFlags.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTaggingFlags.py
index 6ce33e8b321b..5767b4e8a5c8 100755
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTaggingFlags.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTaggingFlags.py
@@ -355,13 +355,15 @@ class _BTaggingFlags:
         setattr(self, attr, 'matchQuark')
 
       for attr in self._TrackParticleCollectionName:
-        setattr(self, attr, 'InDetTrackParticles')
+        #setattr(self, attr, 'InDetTrackParticles')
+        setattr(self, attr, 'HLT_IDTrack_bjet_IDTrig')
 
       for attr in self._TrackParticleTruthCollectionName:
         setattr(self, attr, 'TrackParticleTruthCandidate')
 
       for attr in self._PrimaryVertexCollectionName:
-        setattr(self, attr, 'PrimaryVertices')
+        #setattr(self, attr, 'PrimaryVertices')
+        setattr(self, attr, 'HLT_EFHistoPrmVtx')
 
       for attr in self._MuonCollectionName:
         setattr(self, attr, 'Muons')
@@ -396,7 +398,8 @@ class _BTaggingFlags:
 
 
       #defaultJetCollections = ['AntiKt4LCTopo','AntiKt6LCTopo','AntiKt4TopoEM','AntiKt6TopoEM']
-      defaultJetCollections = ['AntiKt4EMTopo']
+      #defaultJetCollections = ['AntiKt4EMTopo']
+      defaultJetCollections = ['InView']
 
       for attr in self._Jets:
         setattr(self, attr, defaultJetCollections[:])
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggingAlgConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggingAlgConfig.py
index bdc8f1d29675..b6adb0b99a96 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggingAlgConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggingAlgConfig.py
@@ -20,7 +20,7 @@ def JetBTaggingAlgCfg(ConfigFlags, JetCollection="", TaggerList=[], SetupScheme=
     for assoc in BTagTrackToJetAssocNameList:
         TrackToJetAssociatorNameList.append(jetcol.replace('Track', 'PV0Track') + 'Jets.' + assoc)
 
-    options.setdefault('BTagTool', acc.popToolsAndMerge(BTagToolCfg(ConfigFlags, TaggerList)))
+    options.setdefault('BTagTool', acc.popToolsAndMerge(BTagToolCfg(ConfigFlags, TaggerList, SetupScheme)))
 
     timestamp = options.get('TimeStamp', None)
     if not timestamp:
@@ -39,8 +39,12 @@ def JetBTaggingAlgCfg(ConfigFlags, JetCollection="", TaggerList=[], SetupScheme=
         options['name'] = (btagname + ConfigFlags.BTagging.GeneralToolSuffix).lower()
         options['JetCollectionName'] = jetcol.replace('Track', 'PV0Track') + 'Jets'
         options['TrackToJetAssociatorNames'] = TrackToJetAssociatorNameList
-        options['BTagSVCollectionName'] = btagname + 'SecVtx'
-        options['BTagJFVtxCollectionName'] = btagname + 'JFVtx'
+        if SetupScheme == "Trig":
+	    options['BTagSVCollectionName'] = 'HLT_SecVtx'
+            options['BTagJFVtxCollectionName'] = 'HLT_JFVtx'
+	else:
+            options['BTagSVCollectionName'] = btagname + 'SecVtx'
+            options['BTagJFVtxCollectionName'] = btagname + 'JFVtx'
         options['JetCalibrationName'] = jetcol.replace('Track', 'PV0Track')
         options['BTaggingCollectionName'] = btagname
         options['BTaggingLinkName'] = '.btaggingLink'+ts
diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagTrackAugmenterAlg.cxx b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagTrackAugmenterAlg.cxx
index b3125b3bab4f..deb29ae2691c 100644
--- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagTrackAugmenterAlg.cxx
+++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagTrackAugmenterAlg.cxx
@@ -94,7 +94,8 @@ namespace Analysis {
     SG::ReadHandle< xAOD::TrackParticleContainer > trackContainerHandle = SG::makeHandle< xAOD::TrackParticleContainer >( m_TrackContainerKey,ctx);
     CHECK( trackContainerHandle.isValid() );
     const xAOD::TrackParticleContainer* tracks = trackContainerHandle.get();
-    ATH_MSG_DEBUG( "Retrieved " << tracks->size() << " input tracks..." );
+    ATH_MSG_INFO( "Retrieved " << tracks->size() << " input tracks..." );
+
 
     // ========================================================================================================================== 
     //    ** Make Decorators (these are outputs)
@@ -122,6 +123,10 @@ namespace Analysis {
 	decor_z0(*track) = ip->IPz0SinTheta;
         decor_d0_sigma(*track) = ip->sigmad0;
         decor_z0_sigma(*track) = ip->sigmaz0SinTheta;
+        ATH_MSG_DEBUG( " d0= " << ip->IPd0 <<
+		       " z0SinTheta= " << ip->IPz0SinTheta <<
+		       " sigmad0= " << ip->sigmad0 <<
+		       " sigmaz0SinTheta= " << ip->sigmaz0SinTheta );
       } else {
         ATH_MSG_WARNING( "failed to estimate track impact parameter, using dummy values" );
         decor_d0(*track) = NAN;
@@ -141,6 +146,12 @@ namespace Analysis {
 	const Amg::Vector3D position = track_pos - vertex_pos;
 	const Amg::Vector3D momentum = extrap_pars->momentum();
 
+	//Test output for cross checking output with stored values
+	ATH_MSG_DEBUG( "vertex_pos (x,y,z)= (" << vertex_pos.x() << ", " << vertex_pos.y() << ", " << vertex_pos.z() << ")");
+	ATH_MSG_DEBUG( "track_pos (x,y,z)= (" << track_pos.x() << ", " << track_pos.y() << ", " << track_pos.z() << ")");
+	ATH_MSG_DEBUG( "track_displacement (x,y,z)= (" << position.x() << ", " << position.y() << ", " << position.z() << ")");
+	ATH_MSG_DEBUG( "track_momentum (x,y,z)= (" << momentum.x() << ", " << momentum.y() << ", " << momentum.z() << ")");
+
 	std::vector< float > out_vec_pos( position.data(), position.data() + position.size() );
 	std::vector< float > out_vec_mom( momentum.data(), momentum.data() + momentum.size() );
 
@@ -178,3 +189,4 @@ namespace Analysis {
 
 }
 
+
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/DL1TagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/DL1TagConfig.py
index 61e3e4917017..fb2773d1925e 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/DL1TagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/DL1TagConfig.py
@@ -28,6 +28,8 @@ def DL1TagCfg(flags, name = 'DL1', scheme = '', useBTagFlagsDefaults = True, **o
     basename = name
     options['xAODBaseName'] = basename
     options['LocalNNConfigurationFile'] = BTaggingFlags.DL1LocalNNConfig
+    if scheme == 'Trig':
+        options['HistosKey'] = 'JetTagTrigCalibHistosKey'
  
     if useBTagFlagsDefaults:
         defaults = { 'Runmodus'                         : flags.BTagging.RunModus,
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/IP2DTagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/IP2DTagConfig.py
index 3023534b7f0d..ff0fc1762e04 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/IP2DTagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/IP2DTagConfig.py
@@ -35,7 +35,7 @@ def IP2DTagCfg( flags, name = 'IP2DTag', scheme = '', useBTagFlagsDefaults = Tru
     options['name'] = name
     options['xAODBaseName'] = 'IP2D'
     options['trackAssociationName'] = 'BTagTrackToJetAssociator'
-    if (scheme == ""): 
+    if True: 
         if useBTagFlagsDefaults:
             grades= [ "0HitIn0HitNInExp2","0HitIn0HitNInExpIn","0HitIn0HitNInExpNIn","0HitIn0HitNIn",
                   "0HitInExp", "0HitIn",
@@ -47,7 +47,7 @@ def IP2DTagCfg( flags, name = 'IP2DTag', scheme = '', useBTagFlagsDefaults = Tru
             svForIPTool = acc.popToolsAndMerge(SVForIPToolCfg('SVForIPTool'))
             trackGradeFactory = acc.popToolsAndMerge(IPDetailedTrackGradeFactoryCfg('IP2DDetailedTrackGradeFactory'))
             trackSelectorTool = acc.popToolsAndMerge(IPTrackSelectorCfg(flags, 'IP2DTrackSelector'))
-            likelihood = acc.popToolsAndMerge(NewLikelihoodToolCfg(flags, 'IP2DNewLikelihoodTool', 'IP2D'))
+            likelihood = acc.popToolsAndMerge(NewLikelihoodToolCfg(flags, 'IP2DNewLikelihoodTool', 'IP2D', scheme))
 
             defaults = { 'Runmodus'                         : flags.BTagging.RunModus,
                      'referenceType'                    : BTaggingFlags.ReferenceType,
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/IP3DTagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/IP3DTagConfig.py
index 7adc949a3559..29265f1e8337 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/IP3DTagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/IP3DTagConfig.py
@@ -38,7 +38,7 @@ def IP3DTagCfg( flags, name = 'IP3DTag', scheme = '', useBTagFlagsDefaults = Tru
     options['xAODBaseName'] = 'IP3D'
     options['trackAssociationName'] = 'BTagTrackToJetAssociator'
 
-    if (scheme == ""): 
+    if True: 
         if useBTagFlagsDefaults:
             grades= [ "0HitIn0HitNInExp2","0HitIn0HitNInExpIn","0HitIn0HitNInExpNIn","0HitIn0HitNIn",
                   "0HitInExp", "0HitIn",
@@ -50,7 +50,7 @@ def IP3DTagCfg( flags, name = 'IP3DTag', scheme = '', useBTagFlagsDefaults = Tru
             svForIPTool = acc.popToolsAndMerge(SVForIPToolCfg('SVForIPTool'))
             trackGradeFactory = acc.popToolsAndMerge(IPDetailedTrackGradeFactoryCfg('IP3DDetailedTrackGradeFactory'))
             trackSelectorTool = acc.popToolsAndMerge(IPTrackSelectorCfg(flags, 'IP3DTrackSelector'))
-            likelihood = acc.popToolsAndMerge(NewLikelihoodToolCfg(flags, 'IP3DNewLikelihoodTool', 'IP3D'))
+            likelihood = acc.popToolsAndMerge(NewLikelihoodToolCfg(flags, 'IP3DNewLikelihoodTool', 'IP3D', scheme))
             inDetTrackSelectionTool = acc.popToolsAndMerge(InDetTrackSelectorCfg('InDetTrackSelector'))
             trackVertexAssociationTool = acc.popToolsAndMerge(SpecialTrackAssociatorCfg('SpecialTrackAssociator'))
 
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterNNToolConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterNNToolConfig.py
index b54459d5b7d9..e2545879de19 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterNNToolConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterNNToolConfig.py
@@ -8,7 +8,7 @@ from JetTagTools.NeuralNetworkToHistoToolConfig import NeuralNetworkToHistoToolC
 # import the JetFitterNNTool configurable
 Analysis__JetFitterNNTool=CompFactory.Analysis__JetFitterNNTool
 
-def JetFitterNNToolCfg( name = 'JetFitterNNTool', CombinedIPNN = False, useBTagFlagsDefaults = True, **options ):
+def JetFitterNNToolCfg( name = 'JetFitterNNTool', scheme='', CombinedIPNN = False, useBTagFlagsDefaults = True, **options ):
     """Sets up a JetFitterNNTool tool and returns it.
 
     The following options have BTaggingFlags defaults:
@@ -24,6 +24,8 @@ def JetFitterNNToolCfg( name = 'JetFitterNNTool', CombinedIPNN = False, useBTagF
     output: The actual tool."""
     acc = ComponentAccumulator()
     options['name'] = name
+    if scheme == 'Trig':
+        options['HistosKey'] = 'JetTagTrigCalibHistosKey'
     if not BTaggingFlags.RunJetFitterNNTool:
         raise ValueError("This case is not implemented because always True during Run2. Contact BTagging software team.")
     if useBTagFlagsDefaults:
@@ -45,3 +47,4 @@ def JetFitterNNToolCfg( name = 'JetFitterNNTool', CombinedIPNN = False, useBTagF
     acc.setPrivateTools(Analysis__JetFitterNNTool( **options))
  
     return acc
+
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterTagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterTagConfig.py
index e4329e95fd83..ff52a354680e 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterTagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/JetFitterTagConfig.py
@@ -32,11 +32,11 @@ def JetFitterTagCfg(flags, name = 'JetFitterTagNN', scheme = '', CombinedIPNN =
     options['name'] = name
     options['xAODBaseName'] = 'JetFitter'
 
-    if (scheme == ""):
+    if True:
         if useBTagFlagsDefaults:
             if not CombinedIPNN:
                 jetFitterNtupleWriterNN = acc.popToolsAndMerge(JetFitterNtupleWriterNNCfg('JetFitterNtupleWriterNN'))
-                jetfitterClassifier = acc.popToolsAndMerge(JetFitterNNToolCfg('JetFitterNNTool'))
+                jetfitterClassifier = acc.popToolsAndMerge(JetFitterNNToolCfg('JetFitterNNTool', scheme))
                 defaults = { 'Runmodus'                         : flags.BTagging.RunModus,
                      'jetCollectionList'                : BTaggingFlags.Jets,
                      'SecVxFinderName'                  : 'JetFitter',
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/JetVertexChargeConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/JetVertexChargeConfig.py
index 5a7edddcee4f..5f6930d681be 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/JetVertexChargeConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/JetVertexChargeConfig.py
@@ -7,7 +7,7 @@ from JetTagTools.MuonCorrectionsToolConfig import MuonCorrectionsToolCfg
 # import the JetVertexCharger configurable
 from JetTagTools.JetTagToolsConf import Analysis__JetVertexCharge
 
-def JetVertexChargeCfg(flags, name = 'JetVertexCharge', useBTagFlagsDefaults = True, **options ):
+def JetVertexChargeCfg(flags, name = 'JetVertexCharge', scheme = '', useBTagFlagsDefaults = True, **options ):
 
     """Sets up a JetVertexCharge tool and returns it.
 
@@ -63,5 +63,8 @@ def JetVertexChargeCfg(flags, name = 'JetVertexCharge', useBTagFlagsDefaults = T
         for option in defaults:
             options.setdefault(option, defaults[option])
     options['name'] = name
+    if scheme == 'Trig':
+        options['HistosKey'] = 'JetTagTrigCalibHistosKey'
     acc.setPrivateTools(Analysis__JetVertexCharge(**options))
     return acc
+
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/MV2TagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/MV2TagConfig.py
index b407a1e78a2f..14eeb6a02dc4 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/MV2TagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/MV2TagConfig.py
@@ -28,6 +28,8 @@ def MV2TagCfg( flags, name = 'MV2c10', scheme = '', useBTagFlagsDefaults = True,
     options['name'] = name + 'Tag'
     basename = name
     options['xAODBaseName'] = basename
+    if scheme == 'Trig':
+        options['HistosKey'] = 'JetTagTrigCalibHistosKey'
 
     if useBTagFlagsDefaults:
         defaults = { 'Runmodus'                         : flags.BTagging.RunModus,
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/MultiSVTagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/MultiSVTagConfig.py
index d3f2fffa06d5..cb7494fa32a0 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/MultiSVTagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/MultiSVTagConfig.py
@@ -7,7 +7,7 @@ from AthenaConfiguration.ComponentFactory import CompFactory
 
 Analysis__MultiSVTag=CompFactory.Analysis__MultiSVTag
 
-def MultiSVTagCfg(flags, name = 'MultiSVbb1Tag', taggerNameBase = 'MultiSVbb1', useBTagFlagsDefaults = True, **options):
+def MultiSVTagCfg(flags, name = 'MultiSVbb1Tag', taggerNameBase = 'MultiSVbb1', scheme = '', useBTagFlagsDefaults = True, **options):
     """Sets up a MultiSVTag tool and returns it.
 
     The following options have BTaggingFlags defaults:
@@ -23,6 +23,9 @@ def MultiSVTagCfg(flags, name = 'MultiSVbb1Tag', taggerNameBase = 'MultiSVbb1',
     acc = ComponentAccumulator()
     options['name'] = name
     options['xAODBaseName'] = 'MSV'
+    if scheme == 'Trig':
+        options['HistosKey'] = 'JetTagTrigCalibHistosKey'
+
     if useBTagFlagsDefaults:
         defaults = { 'Runmodus'                         : flags.BTagging.RunModus,
                      'taggerNameBase'                   : taggerNameBase,
@@ -32,3 +35,4 @@ def MultiSVTagCfg(flags, name = 'MultiSVbb1Tag', taggerNameBase = 'MultiSVbb1',
     acc.setPrivateTools(Analysis__MultiSVTag( **options))
 
     return acc
+
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/MultivariateTagManagerConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/MultivariateTagManagerConfig.py
index 1b2c372c3686..8bc6a430f311 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/MultivariateTagManagerConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/MultivariateTagManagerConfig.py
@@ -26,42 +26,37 @@ def MultivariateTagManagerCfg(flags, name = 'MultivariateTagManager', TaggerList
     MultivariateTagManagerAuxBranches = []
     MultivariateTagManagerAuxBranches += ['SMT_discriminant'] #ATLASRECTS-5381
 
-    if 'DL1rnn' in TaggerList or 'MV2c10rnn' in TaggerList:
-        #RNNIP output variables are needed
-        rnnip_outputs = ['b','c','u','tau']
-        MultivariateTagManagerAuxBranches += ['rnnip_p' + x for x in rnnip_outputs]
-
     if 'DL1' in TaggerList:
-        dl1 = acc.popToolsAndMerge(DL1TagCfg(flags, 'DL1'))
+        dl1 = acc.popToolsAndMerge(DL1TagCfg(flags, 'DL1', scheme))
         mvtagtoollist.append(dl1)
 
     if 'DL1mu' in TaggerList:
-        dl1 = acc.popToolsAndMerge(DL1TagCfg(flags, 'DL1mu'))
+        dl1 = acc.popToolsAndMerge(DL1TagCfg(flags, 'DL1mu', scheme))
         mvtagtoollist.append(dl1)
 
     if 'DL1rnn' in TaggerList:
-        dl1 = acc.popToolsAndMerge(DL1TagCfg(flags, 'DL1rnn'))
+        dl1 = acc.popToolsAndMerge(DL1TagCfg(flags, 'DL1rnn', scheme))
         mvtagtoollist.append(dl1)
 
     if 'MV2c10' in TaggerList:
-        mv2 = acc.popToolsAndMerge(MV2TagCfg(flags, 'MV2c10'))
+        mv2 = acc.popToolsAndMerge(MV2TagCfg(flags, 'MV2c10', scheme))
         mvtagtoollist.append(mv2)
 
     if 'MV2c10mu' in TaggerList:
-        mv2 = acc.popToolsAndMerge(MV2TagCfg(flags, 'MV2c10mu'))
+        mv2 = acc.popToolsAndMerge(MV2TagCfg(flags, 'MV2c10mu', scheme))
         mvtagtoollist.append(mv2)
 
     if 'MV2c10rnn' in TaggerList:
-        mv2 = acc.popToolsAndMerge(MV2TagCfg(flags, 'MV2c10rnn'))
+        mv2 = acc.popToolsAndMerge(MV2TagCfg(flags, 'MV2c10rnn', scheme))
         mvtagtoollist.append(mv2)
 
     if 'MV2c100' in TaggerList:
-        mv2 = acc.popToolsAndMerge(MV2TagCfg(flags, 'MV2c100'))
+        mv2 = acc.popToolsAndMerge(MV2TagCfg(flags, 'MV2c100', scheme))
         mvtagtoollist.append(mv2)
 
 
     if 'MV2cl100' in TaggerList:
-        mv2 = acc.popToolsAndMerge(MV2TagCfg(flags, 'MV2cl100'))
+        mv2 = acc.popToolsAndMerge(MV2TagCfg(flags, 'MV2cl100', scheme))
         mvtagtoollist.append(mv2)
 
     #Check if input has been scheduled
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/NewLikelihoodToolConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/NewLikelihoodToolConfig.py
index b65d82620175..93910f65860d 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/NewLikelihoodToolConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/NewLikelihoodToolConfig.py
@@ -6,7 +6,7 @@ from AthenaConfiguration.ComponentFactory import CompFactory
 # import the NewLikelihoodTool configurable
 Analysis__NewLikelihoodTool=CompFactory.Analysis__NewLikelihoodTool
 
-def NewLikelihoodToolCfg( flags, name = 'NewLikelihoodTool', taggername = 'IP2D', useBTagFlagsDefaults = True, **options):
+def NewLikelihoodToolCfg( flags, name = 'NewLikelihoodTool', taggername = 'IP2D', scheme = '', useBTagFlagsDefaults = True, **options):
     """Sets up a NewLikelihoodTool tool and returns it.
 
     The following options have BTaggingFlags defaults:
@@ -31,6 +31,9 @@ def NewLikelihoodToolCfg( flags, name = 'NewLikelihoodTool', taggername = 'IP2D'
         for option in defaults:
             options.setdefault(option, defaults[option])
     options['name'] = name
+    if scheme == 'Trig':
+        options['HistosKey'] = 'JetTagTrigCalibHistosKey'
     acc.setPrivateTools(Analysis__NewLikelihoodTool(**options))
 
     return acc
+
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/RNNIPTagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/RNNIPTagConfig.py
index b81b22b344a0..14510668b2cf 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/RNNIPTagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/RNNIPTagConfig.py
@@ -30,6 +30,8 @@ def RNNIPTagCfg( flags, name = 'RNNIP', scheme = '', calibration=None, useBTagFl
     basename = 'RNNIP'
     options['xAODBaseName'] = basename
     options['trackAssociationName'] = 'BTagTrackToJetAssociator'
+    if scheme == 'Trig':
+        options['HistosKey'] = 'JetTagTrigCalibHistosKey'
     cal_dir = calibration or basename
     is_flipped=False
     if (scheme == "Flip"):
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/SV1TagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/SV1TagConfig.py
index 940d9a91e216..80aa021a91bc 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/SV1TagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/SV1TagConfig.py
@@ -29,7 +29,7 @@ def SV1TagCfg( flags, name = 'SV1Tag', scheme = '', useBTagFlagsDefaults = True,
     options['name'] = name
     options['xAODBaseName'] = 'SV1'
     if useBTagFlagsDefaults:
-        likelihood = acc.popToolsAndMerge(NewLikelihoodToolCfg(flags, 'SV1NewLikelihoodTool', 'SV1'))
+        likelihood = acc.popToolsAndMerge(NewLikelihoodToolCfg(flags, 'SV1NewLikelihoodTool', 'SV1', scheme))
         defaults = { 'Runmodus'                         : flags.BTagging.RunModus,
                      'referenceType'                    : BTaggingFlags.ReferenceType,
                      'jetPtMinRef'                      : flags.BTagging.JetPtMinRef,
@@ -43,3 +43,4 @@ def SV1TagCfg( flags, name = 'SV1Tag', scheme = '', useBTagFlagsDefaults = True,
     acc.setPrivateTools(Analysis__SVTag(**options))
 
     return acc
+
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/SoftMuonTagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/SoftMuonTagConfig.py
index 6051780bc599..97cffab28a13 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/SoftMuonTagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/SoftMuonTagConfig.py
@@ -10,7 +10,7 @@ from JetTagTools.MuonSelectorToolConfig import MuonSelectorToolCfg
 # import the SoftMuonTag configurable
 Analysis__SoftMuonTag=CompFactory.Analysis__SoftMuonTag
 
-def SoftMuonTagCfg( flags, name = 'SoftMu', useBTagFlagsDefaults = True, **options ):
+def SoftMuonTagCfg( flags, name = 'SoftMu', scheme = '', useBTagFlagsDefaults = True, **options ):
     """Sets up a SoftMuonTag tool and returns it.
 
     The following options have BTaggingFlags defaults:
@@ -29,7 +29,7 @@ def SoftMuonTagCfg( flags, name = 'SoftMu', useBTagFlagsDefaults = True, **optio
     if useBTagFlagsDefaults:
         trackToVertexIPEstimator = acc.popToolsAndMerge(BTagTrackToVertexIPEstimatorCfg(flags, 'TrkToVxIPEstimator'))
         muonSelectorTool = acc.popToolsAndMerge(MuonSelectorToolCfg('MuonSelectorTool'))
-        likelihood = acc.popToolsAndMerge(NewLikelihoodToolCfg(flags, 'SoftMuonTagNewLikelihoodTool', 'SMT'))
+        likelihood = acc.popToolsAndMerge(NewLikelihoodToolCfg(flags, 'SoftMuonTagNewLikelihoodTool', 'SMT', scheme))
         defaults = {
                      'Runmodus'                         : flags.BTagging.RunModus,
                      'jetCollectionList'                : BTaggingFlags.Jets,
@@ -43,6 +43,9 @@ def SoftMuonTagCfg( flags, name = 'SoftMu', useBTagFlagsDefaults = True, **optio
         for option in defaults:
             options.setdefault(option, defaults[option])
     options['name'] = name
+    if scheme == 'Trig':
+        options['HistosKey'] = 'JetTagTrigCalibHistosKey'
     acc.setPrivateTools(Analysis__SoftMuonTag( **options))
 
     return acc
+
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/SpecialTrackAssociatorConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/SpecialTrackAssociatorConfig.py
index 8bae9502fa8e..359f879007e6 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/SpecialTrackAssociatorConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/SpecialTrackAssociatorConfig.py
@@ -2,6 +2,7 @@
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from AthenaConfiguration.ComponentFactory import CompFactory
+from BTagging.BTaggingFlags import BTaggingFlags
 
 # import the TrackToVertexIPEstimator configurable
 CP__TrackVertexAssociationTool=CompFactory.CP__TrackVertexAssociationTool
@@ -22,6 +23,7 @@ def SpecialTrackAssociatorCfg( name = 'SpecialTrackAssociator', useBTagFlagsDefa
     for option in defaults:
         options.setdefault(option, defaults[option])
     options['name'] = name
+    options['VertexContainer'] = BTaggingFlags.PrimaryVertexCollectionName
     acc.setPrivateTools(CP__TrackVertexAssociationTool( **options))
  
     return acc
diff --git a/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBtagFexMT.cxx b/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBtagFexMT.cxx
index e26748fbb9da..9faf7bbd6321 100755
--- a/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBtagFexMT.cxx
+++ b/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBtagFexMT.cxx
@@ -117,6 +117,47 @@ StatusCode TrigBtagFexMT::execute() {
 		   " eta=" << trk->eta() <<
 		   " phi=" << trk->phi() );
 
+  // Test retrieval of properties decorated in BTagTrackAugmenterAlg
+  ATH_MSG_DEBUG( "Attempting to retrieve TrackParticleContainer with key " << m_d0ContainerKey.key() );
+  SG::ReadDecorHandle< xAOD::TrackParticleContainer, float > trkContainer_d0_Handle ( m_d0ContainerKey,ctx );
+  CHECK( trkContainer_d0_Handle.isValid() );
+  ATH_MSG_DEBUG("trkContainerHandle->size(): " << trkContainerHandle->size() << "   trkContainer_d0_Handle->size(): " << trkContainer_d0_Handle->size() );
+  for ( long unsigned int i=0; i< trkContainer_d0_Handle->size(); i++)
+    ATH_MSG_DEBUG("Track " << i <<": d0 =" << trkContainer_d0_Handle(i));
+
+  SG::ReadDecorHandle< xAOD::TrackParticleContainer, float > trkContainer_z0SinTheta_Handle ( m_z0SinThetaContainerKey,ctx );
+  CHECK( trkContainer_z0SinTheta_Handle.isValid() );
+  for ( long unsigned int i=0; i< trkContainer_z0SinTheta_Handle->size(); i++)
+    ATH_MSG_DEBUG("Track " << i <<": z0SinTheta =" << trkContainer_z0SinTheta_Handle(i));
+
+  SG::ReadDecorHandle< xAOD::TrackParticleContainer, float > trkContainer_d0Uncertainty_Handle ( m_d0UncertaintyContainerKey,ctx );
+  CHECK( trkContainer_d0Uncertainty_Handle.isValid() );
+  for ( long unsigned int i=0; i< trkContainer_d0Uncertainty_Handle->size(); i++)
+    ATH_MSG_DEBUG("Track " << i << ": d0Uncertainty =" << trkContainer_d0Uncertainty_Handle(i));
+
+  SG::ReadDecorHandle< xAOD::TrackParticleContainer, float > trkContainer_z0SinThetaUncertainty_Handle ( m_z0SinThetaUncertaintyContainerKey,ctx );
+  CHECK( trkContainer_z0SinThetaUncertainty_Handle.isValid() );
+  for ( long unsigned int i=0; i< trkContainer_z0SinThetaUncertainty_Handle->size(); i++)
+    ATH_MSG_DEBUG("Track " << i << ": z0SinThetaUncertainty =" << trkContainer_z0SinThetaUncertainty_Handle(i));
+
+  SG::ReadDecorHandle< xAOD::TrackParticleContainer, std::vector< float > > trkContainer_trackpos_Handle ( m_trackposContainerKey,ctx );
+  CHECK( trkContainer_trackpos_Handle.isValid() );
+  for ( long unsigned int i=0; i< trkContainer_trackpos_Handle->size(); i++){
+    ATH_MSG_DEBUG("Track " << i << ": Displacement (x,y,z) = ");
+    for (auto pos:  trkContainer_trackpos_Handle(i)){
+      ATH_MSG_DEBUG( pos << ' ');
+    }
+  }
+    
+  SG::ReadDecorHandle< xAOD::TrackParticleContainer, std::vector< float > > trkContainer_trackmom_Handle ( m_trackmomContainerKey,ctx );
+  CHECK( trkContainer_trackmom_Handle.isValid() );
+  for ( long unsigned int i=0; i< trkContainer_trackmom_Handle->size(); i++){
+    ATH_MSG_DEBUG("Track " << i << ": Momentum = ");
+    for (auto mom:  trkContainer_trackmom_Handle(i)){
+      ATH_MSG_DEBUG( mom << ' ');
+    }
+  }
+
 
   // Test retrieval of VertexContainer
   ATH_MSG_DEBUG( "Attempting to retrieve VertexContainer with key " << m_VertexContainerKey.key() );
diff --git a/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBtagFexMT.h b/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBtagFexMT.h
index 04d5ccced32f..9ef1abd8cf6b 100755
--- a/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBtagFexMT.h
+++ b/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBtagFexMT.h
@@ -95,6 +95,14 @@ class TrigBtagFexMT: public AthAlgorithm {
   SG::ReadHandleKey< xAOD::VertexContainer > m_VertexContainerKey {this,"PriVtxKey","xPrimVx","Key of primary vertexes"};
   //  SG::ReadHandleKey< xAOD::VertexContainer > m_BackUpVertexContainerKey {this,"PriVtxKeyBackup","EFHistoPrmVtx","Back-Up Key of primary vertexes"};
   SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trkContainerKey {this,"TracksKey","tracks__COLL","Key for track particle container"};
+  SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_d0ContainerKey {this,"d0Key","d0Key","Key for Particles d0 value"};
+  SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_z0SinThetaContainerKey {this,"z0SinThetaKey","z0SinThetaKey","Key for Particles z0SinTheta value"};
+  SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_d0UncertaintyContainerKey {this,"d0UncertaintyKey","d0UncertaintyKey","Key for Particles d0Uncertainty value"};
+  SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_z0SinThetaUncertaintyContainerKey {this,"z0SinThetaUncertaintyKey","z0SinThetaUncertaintyKey","Key for Particles z0SinThetaUncertainty value"};
+  SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_trackposContainerKey {this,"trackposKey","trackposKey","Key for Track Displacement"};
+  SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_trackmomContainerKey {this,"trackmomKey","trackmomKey","Key for Track Momentum"};
+
+
 
   SG::WriteHandleKey< xAOD::BTaggingContainer > m_outputBTaggingContainerKey {this,"OutputBTagging","Undefined","Output Btagging Container Key"};
   //  SG::WriteHandleKey< xAOD::VertexContainer > m_outputVertexContainerKey {this,"OutputVtxKey","HLT_BjetVertexFex","Output Vertex Container Key"};
diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx
index 200a07fd586b..5df2c6eb9043 100644
--- a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx
+++ b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx
@@ -94,6 +94,7 @@ StatusCode HLTEDMCreator::initialize()
   INIT_XAOD( VertexContainer );
   INIT_XAOD( TrigBphysContainer );  
   INIT_XAOD( BTaggingContainer );
+  INIT_XAOD( BTagVertexContainer );
 
   INIT_XAOD( CaloClusterContainer );
 
@@ -331,6 +332,7 @@ StatusCode HLTEDMCreator::createOutput(const EventContext& context) const {
   CREATE_XAOD( VertexContainer,VertexAuxContainer );
   CREATE_XAOD( TrigBphysContainer, TrigBphysAuxContainer );
   CREATE_XAOD( BTaggingContainer,BTaggingAuxContainer );
+  CREATE_XAOD( BTagVertexContainer,BTagVertexAuxContainer );
 
   ATH_CHECK( fixLinks() );
   
diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h
index bed802d14a42..0e700a28e6a1 100644
--- a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h
+++ b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h
@@ -61,6 +61,8 @@
 #include "xAODTrigBphys/TrigBphysAuxContainer.h"
 #include "xAODBTagging/BTaggingContainer.h"
 #include "xAODBTagging/BTaggingAuxContainer.h"
+#include "xAODBTagging/BTagVertexContainer.h"
+#include "xAODBTagging/BTagVertexAuxContainer.h"
 
 #include "xAODCaloEvent/CaloClusterContainer.h"
 #include "xAODTrigCalo/CaloClusterTrigAuxContainer.h"
@@ -137,6 +139,7 @@ class HLTEDMCreator: public extends<AthAlgTool, IHLTOutputTool>  {
   DEF_XAOD_KEY( JetContainer );
   DEF_XAOD_KEY( VertexContainer );
   DEF_XAOD_KEY( BTaggingContainer );
+  DEF_XAOD_KEY( BTagVertexContainer );
   DEF_XAOD_KEY( TrigBphysContainer );
 #undef DEF_VIEWS
 #undef DEF_KEY
diff --git a/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithmWithJets.cxx b/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithmWithJets.cxx
index e043757b8e13..059c67e0f85c 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithmWithJets.cxx
+++ b/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithmWithJets.cxx
@@ -124,16 +124,18 @@ StatusCode EventViewCreatorAlgorithmWithJets::execute( const EventContext& conte
 }
 
 StatusCode EventViewCreatorAlgorithmWithJets::placeJetInView( const xAOD::Jet* theObject, SG::View* view, const EventContext& context ) const {
-  // fill the Jet output collection
-  ATH_MSG_DEBUG( "Adding Jet To View : " << m_inViewJets.key() );
-  auto oneObjectCollection = std::make_unique< ConstDataVector< xAOD::JetContainer > >();
-  oneObjectCollection->clear( SG::VIEW_ELEMENTS );
-  oneObjectCollection->push_back( theObject );
+  auto oneObjectCollection = std::make_unique<xAOD::JetContainer>();
+  auto oneObjectCollectionAux = std::make_unique<xAOD::JetAuxContainer>();
+  oneObjectCollection->setStore(oneObjectCollectionAux.get());
+  xAOD::Jet* copiedJet = new xAOD::Jet();
+  oneObjectCollection->push_back(copiedJet);
+  *copiedJet = *theObject;
 
   //store in the view
   auto handle = SG::makeHandle( m_inViewJets,context );
   ATH_CHECK( handle.setProxyDict( view ) );
-  ATH_CHECK( handle.record( std::move( oneObjectCollection ) ) );
+  ATH_CHECK( handle.record( std::move(oneObjectCollection), std::move(oneObjectCollectionAux) ) );
   return StatusCode::SUCCESS;
 }
 
+
diff --git a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
index 3dde971ea819..4b17ed1bf249 100644
--- a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
+++ b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
@@ -61,6 +61,19 @@ JetVarsToKeep = ['ActiveArea', 'ActiveArea4vec_eta', 'ActiveArea4vec_m', 'Active
                  'Jvt', 'JVFCorr', 'NumTrkPt500', 'NumTrkPt1000', 'SizeParameter', 'SumPtTrkPt500', 'SumPtTrkPt1000', 'TrackWidthPt1000',]
 JetVars = '.'.join(JetVarsToKeep)
 
+BTagOutput = ['SV1_TrackParticleLinks','IP2D_TrackParticleLinks','IP3D_TrackParticleLinks','BTagTrackToJetAssociator','Muons',
+              'JetFitter_N2Tpair','JetFitter_JFvertices','JetFitter_fittedPosition','JetFitter_fittedCov','JetFitter_tracksAtPVchi2',
+              'JetFitter_tracksAtPVndf','JetFitter_tracksAtPVlinks','JetFitter_massUncorr','JetFitter_chi2','JetFitter_ndof','JetFitter_dRFlightDir',
+              'JetFitter_nVTX','JetFitter_nSingleTracks','JetFitter_nTracksAtVtx','JetFitter_mass','JetFitter_energyFraction','JetFitter_significance3d',
+              'JetFitter_deltaeta','JetFitter_deltaphi','SV1_vertices','SV1_energyTrkInJet','SV1_dstToMatLay','SV1_masssvx','SV1_efracsvx','SV1_N2Tpair',
+              'SV1_NGTinSvx','SV1_badTracksIP','IP2D_sigD0wrtPVofTracks','IP2D_weightBofTracks','IP2D_weightUofTracks','IP2D_weightCofTracks',
+              'IP2D_flagfromV0ofTracks','IP2D_gradeOfTracks','trkSum_ntrk','trkSum_SPt','trkSum_VPt','trkSum_VEta','IP3D_valD0wrtPVofTracks',
+              'IP3D_valZ0wrtPVofTracks','IP3D_sigD0wrtPVofTracks','IP3D_sigZ0wrtPVofTracks','IP3D_weightBofTracks','IP3D_weightUofTracks',
+              'IP3D_weightCofTracks','IP3D_flagfromV0ofTracks','IP3D_gradeOfTracks','SV1_normdist','SV1_significance3d','SV1_deltaR','SV1_Lxy','SV1_L3d',
+              'MV2c10_discriminant','MV2c100_discriminant',] #komma am ende!
+BTagVars = '.'.join(BTagOutput)
+
+
 TriggerHLTListRun3 = [
 
     #framework/steering
@@ -328,18 +341,35 @@ TriggerHLTListRun3 = [
 #   ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_Bjet_IDTrigAux.', 'BS ESD AODFULL', 'Bjet'),
 
 
-    #bjet jets
+    #bjet jets first step
     ('xAOD::JetContainer#HLT_GSCJet',                             'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet', 'inViews:FullScanBjetView'),
     ('xAOD::JetAuxContainer#HLT_GSCJetAux.',                         'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet'),
 
+    #bjet jets second step
+    ('xAOD::JetContainer#HLT_InViewJets',                             'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet', 'inViews:BTagViews'),
+    ('xAOD::JetAuxContainer#HLT_InViewJetsAux.',                      'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet'),
+
+
     # vertex for b-jets
     ('xAOD::VertexContainer#HLT_EFHistoPrmVtx',                          'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet'),
     ('xAOD::VertexAuxContainer#HLT_EFHistoPrmVtxAux.',                   'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet'),  
 
+    # secvertex for b-jets
+    ('xAOD::VertexContainer#HLT_SecVtx',                          'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet', 'inViews:BTagViews'),
+    ('xAOD::VertexAuxContainer#HLT_SecVtxAux.',                   'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet'),  
+
+    # btagvertex for b-jets
+    ('xAOD::BTagVertexContainer#HLT_JFVtx',                          'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet', 'inViews:BTagViews'),
+    ('xAOD::BTagVertexAuxContainer#HLT_JFVtxAux.',                   'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet'),
+
     # bjet b-tagging
     ('xAOD::BTaggingContainer#HLT_BTagging',                          'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet', 'inViews:BTagViews'),
     ('xAOD::BTaggingAuxContainer#HLT_BTaggingAux.',                          'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet'),
 
+    # bjet b-tagging offline
+    ('xAOD::BTaggingContainer#HLT_OfflineBTagging',                          'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet', 'inViews:BTagViews'),
+    ('xAOD::BTaggingAuxContainer#HLT_OfflineBTaggingAux.'+BTagVars,          'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Bjet'),
+
     # MinBias
     ('xAOD::TrackParticleContainer#HLT_IDTrack_MinBias',                 'BS ESD AODFULL', 'MinBias'),
     ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_MinBiasAux.',          'BS ESD AODFULL', 'MinBias'),
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/JetTagCalibConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/JetTagCalibConfig.py
new file mode 100644
index 000000000000..2fce8bc1d92f
--- /dev/null
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/JetTagCalibConfig.py
@@ -0,0 +1,53 @@
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+from IOVDbSvc.CondDB import conddb
+from AthenaConfiguration.ComponentFactory import CompFactory
+from IOVDbSvc.IOVDbSvcConfig import addFolders
+from BTagging.BTaggingFlags import BTaggingFlags
+
+def JetTagCalibCfg(ConfigFlags, scheme="", TaggerList = [], ChannelAlias = ""):
+
+    grades= [ "0HitIn0HitNInExp2","0HitIn0HitNInExpIn","0HitIn0HitNInExpNIn","0HitIn0HitNIn",
+            "0HitInExp", "0HitIn",
+            "0HitNInExp", "0HitNIn",
+            "InANDNInShared", "PixShared", "SctShared",
+            "InANDNInSplit", "PixSplit",
+            "Good"]
+    JetTagCalibCondAlg,=CompFactory.getComps("Analysis__JetTagCalibCondAlg",)
+    jettagcalibcondalg = "JetTagCalibCondAlg"
+    readkeycalibpath = "/GLOBAL/Onl/TrigBTagCalib/RUN12"
+    connSchema = "GLOBAL"
+    histoskey = "JetTagTrigCalibHistosKey"
+    conddb.addFolder("GLOBAL_ONL", "/GLOBAL/Onl/TrigBTagCalib/RUN12", className='CondAttrListCollection')
+
+    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"]
+
+    CalibrationChannelAliases += ChannelAlias
+
+    JetTagCalib = JetTagCalibCondAlg(jettagcalibcondalg, ReadKeyCalibPath=readkeycalibpath, HistosKey = histoskey, taggers = ConfigFlags.BTagging.TrigTaggersList, channelAliases = CalibrationChannelAliases, IP2D_TrackGradePartitions = grades, RNNIP_NetworkConfig = BTaggingFlags.RNNIPConfig)
+    
+    return JetTagCalib
+
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py
index 9da25d053027..7dd579889440 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py
@@ -557,6 +557,13 @@ ConfigFlags.lock()
 triggerIDCCacheCreatorsCfg(ConfigFlags).appendToGlobals()
 Configurable.configurableRun3Behavior-=1
 
+# B-jet output file
+log.info("opt.enabledSignatures")
+log.info(opt.enabledSignatures)
+from TriggerJobOpts.JetTagCalibConfig import JetTagCalibCfg
+alias = ["HLT_InView->HLT_InView,AntiKt4EMTopo"]
+topSequence+=JetTagCalibCfg(ConfigFlags, ChannelAlias = alias)
+
 # Trigger output
 if opt.doWriteBS or opt.doWriteRDOTrigger:
     from TriggerJobOpts.TriggerConfig import collectHypos, collectFilters, collectDecisionObjects, collectHypoDecisionObjects, triggerOutputCfg
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetFlavourTaggingConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetFlavourTaggingConfiguration.py
index 2d349cb26dfd..878ceb4298af 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetFlavourTaggingConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetFlavourTaggingConfiguration.py
@@ -1,19 +1,80 @@
 
+from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from TrigEDMConfig.TriggerEDMRun3 import recordable
 #from AthenaCommon.Constants import DEBUG
 
 def getFlavourTagging( inputJets, inputVertex, inputTracks ):
+
+    acc = ComponentAccumulator()
     algSequence = []
-    
+
+    nThreads=1
+    filesInput="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data18_13TeV.00360026.physics_EnhancedBias.merge.RAW._lb0151._SFO-1._0001.1"
+    kwargs = {}
+
+    from AthenaConfiguration.AllConfigFlags import ConfigFlags
+    ConfigFlags.Output.ESDFileName="esdOut.pool.root"
+    ConfigFlags.Input.isMC=False
+    ConfigFlags.Input.Files=filesInput.split(",")
+    ConfigFlags.Concurrency.NumThreads = nThreads
+    ConfigFlags.Scheduler.ShowDataDeps = True
+    ConfigFlags.Scheduler.ShowDataFlow = True
+    ConfigFlags.Scheduler.ShowControlFlow = True
+    ConfigFlags.Concurrency.NumConcurrentEvents = nThreads
+
+    from BTagging.BTaggingConf import Analysis__BTagTrackAugmenterAlg
+    bTagTrackAugmenter = Analysis__BTagTrackAugmenterAlg( "Analysis__BTagTrackAugmenterAlg" )
+    bTagTrackAugmenter.TrackContainer = inputTracks
+    bTagTrackAugmenter.PrimaryVertexContainer = inputVertex
+    algSequence.append( bTagTrackAugmenter )
+
     from TrigBjetHypo.TrigBjetHypoConf import TrigBtagFexMT
     bTagFex = TrigBtagFexMT( "TrigBtagFexMT" )
     bTagFex.JetKey = inputJets
     bTagFex.PriVtxKey = inputVertex
     bTagFex.TracksKey = inputTracks
+    bTagFex.d0Key = inputTracks + ".btagIp_d0"
+    bTagFex.z0SinThetaKey = inputTracks + ".btagIp_d0Uncertainty"
+    bTagFex.d0UncertaintyKey = inputTracks + ".btagIp_z0SinTheta"
+    bTagFex.z0SinThetaUncertaintyKey = inputTracks + ".btagIp_z0SinThetaUncertainty"
+    bTagFex.trackposKey = inputTracks + ".btagIp_trackDisplacement"
+    bTagFex.trackmomKey = inputTracks + ".btagIp_trackMomentum"
     bTagFex.OutputBTagging = recordable( "HLT_BTagging" )
     algSequence.append( bTagFex )
 
-    return algSequence
 
+    from BTagging.JetParticleAssociationAlgConfig import JetParticleAssociationAlgCfg
+    from BTagging.JetSecVtxFindingAlgConfig import JetSecVtxFindingAlgCfg
+    from BTagging.JetSecVertexingAlgConfig import JetSecVertexingAlgCfg
+    from BTagging.JetBTaggingAlgConfig import JetBTaggingAlgCfg
+    
+    TrackToJetAssociators = ['BTagTrackToJetAssociator', 'BTagTrackToJetAssociatorBB']
+    kwargs['Release'] = '22'
+    acc.merge(JetParticleAssociationAlgCfg(ConfigFlags, inputJets.replace("Jets",""), inputTracks, 'BTagTrackToJetAssociator', **kwargs))
+    kwargs['Release'] = '21'
+    acc.merge(JetParticleAssociationAlgCfg(ConfigFlags, inputJets.replace("Jets",""), inputTracks, 'BTagTrackToJetAssociatorBB', **kwargs))
+    del kwargs['Release'] 
+
+    SecVertexingAndAssociators = {'JetFitter':'BTagTrackToJetAssociator','SV1':'BTagTrackToJetAssociator'}
+    for k, v in SecVertexingAndAssociators.items():
+        if v not in TrackToJetAssociators:
+            raise RuntimeError( v + ' is not configured')
+        acc.merge(JetSecVtxFindingAlgCfg(ConfigFlags, inputJets, inputTracks, k, v))
+        JetSecVertexingAlg = JetSecVertexingAlgCfg(ConfigFlags, inputJets.replace("Jets",""), inputTracks, k, v)
+        if k == "JetFitter":
+            SecVertexingAlg = JetSecVertexingAlg.getEventAlgo("hlt_inview_jetfitter_secvtx")
+            SecVertexingAlg.BTagJFVtxCollectionName = recordable("HLT_JFVtx")
+        elif k == "SV1":
+            SecVertexingAlg = JetSecVertexingAlg.getEventAlgo("hlt_inview_sv1_secvtx")
+            SecVertexingAlg.BTagSVCollectionName = recordable("HLT_SecVtx")
+        acc.merge(JetSecVertexingAlg)
+    
+    JetBTaggingAlg = JetBTaggingAlgCfg(ConfigFlags, JetCollection = inputJets.replace("Jets",""), TaggerList = ConfigFlags.BTagging.TrigTaggersList, SetupScheme = "Trig", SVandAssoc = SecVertexingAndAssociators, **kwargs)
+    BTaggingAlg = JetBTaggingAlg.getEventAlgo("btagging_hlt_inview")
+    BTaggingAlg.BTaggingCollectionName = recordable("HLT_OfflineBTagging")
+    acc.merge(JetBTaggingAlg)
+
+
+    return [ acc, algSequence]
 
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py
index f5451678be46..bfff81135c89 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py
@@ -81,41 +81,42 @@ def bJetStep2Sequence():
     roisLink = "step1RoI"
     prmVtxKey = "HLT_EFHistoPrmVtx"
 
-    from ViewAlgs.ViewAlgsConf import EventViewCreatorAlgorithmWithJets, ViewCreatorInitialROITool
+    from ViewAlgs.ViewAlgsConf import EventViewCreatorAlgorithmWithJets
     InputMakerAlg = EventViewCreatorAlgorithmWithJets( "IMBJet_step3",RoIsLink=roisLink )
     InputMakerAlg.ViewFallThrough = True
     InputMakerAlg.RequireParentView = True
-    InputMakerAlg.RoITool = ViewCreatorInitialROITool() # NOT USED! TO BE REPLACED WITH NEW TOOL ON CONVERTING EventViewCreatorAlgorithmWithJets -> EventViewCreatorAlgorithm
     InputMakerAlg.Views = "BTagViews"
     InputMakerAlg.InViewRoIs = "InViewRoIs"
-    InputMakerAlg.InViewJets = "InViewJets"
-        
-
+    InputMakerAlg.InViewJets = "HLT_InViewJets"
+    InputMakerAlg.ViewNodeName = "bJetBtagSequenceInView" 
+    
     # Second stage of Fast Tracking and Precision Tracking
     from TriggerMenuMT.HLTMenuConfig.Bjet.BjetTrackingConfiguration import getSecondStageBjetTracking
     secondStageAlgs, PTTracks, PTTrackParticles = getSecondStageBjetTracking( inputRoI=InputMakerAlg.InViewRoIs )
 
+    from AthenaCommon.Configurable import Configurable
+    Configurable.configurableRun3Behavior=1
+    
     # Flavour Tagging
     from TriggerMenuMT.HLTMenuConfig.Bjet.BjetFlavourTaggingConfiguration import getFlavourTagging
-    flavourTaggingAlgs = getFlavourTagging( inputJets=InputMakerAlg.InViewJets, inputVertex=prmVtxKey, inputTracks=PTTrackParticles[0] )
-
-    preAlgs = []
-
-    bJetBtagSequence = seqAND( "bJetBtagSequence", preAlgs + secondStageAlgs + flavourTaggingAlgs )
-    InputMakerAlg.ViewNodeName = "bJetBtagSequence"
-
-    # Sequence
-    BjetAthSequence = seqAND( "BjetAthSequence_step2",[InputMakerAlg,bJetBtagSequence] )
-
+    acc_flavourTaggingAlgs, flavourTaggingAlgs = getFlavourTagging( inputJets=InputMakerAlg.InViewJets, inputVertex=prmVtxKey, inputTracks=PTTrackParticles[0] )
+    
+    inViewReco = InViewReco("bJetBtagSequence", viewMaker= InputMakerAlg)
+    inViewReco.addRecoAlg(secondStageAlgs)
+    inViewReco.addRecoAlg(flavourTaggingAlgs)
+    inViewReco.mergeReco(acc_flavourTaggingAlgs)
+
+    Configurable.configurableRun3Behavior=0
+    
     from TrigBjetHypo.TrigBjetHypoConf import TrigBjetBtagHypoAlgMT
     hypo = TrigBjetBtagHypoAlgMT( "TrigBjetBtagHypoAlg" )
     hypo.Tracks = PTTrackParticles[0]
 
     from TrigBjetHypo.TrigBjetBtagHypoTool import TrigBjetBtagHypoToolFromDict
-    return MenuSequence( Sequence    = BjetAthSequence,
-                         Maker       = InputMakerAlg,
+    return MenuSequence( Sequence    = inViewReco.sequence(),
+                         Maker       = inViewReco.inputMaker(),
                          Hypo        = hypo,
-                         HypoToolGen = TrigBjetBtagHypoToolFromDict )
+                         HypoToolGen = TrigBjetBtagHypoToolFromDict)
 
 
 
-- 
GitLab