diff --git a/Reconstruction/Jet/JetMomentTools/python/JetMomentToolsConfig.py b/Reconstruction/Jet/JetMomentTools/python/JetMomentToolsConfig.py
index 67c2fab050e14b682af57643b13e308b0f50d624..58348c5602d26d32e64e5b0963fe10766abf0442 100644
--- a/Reconstruction/Jet/JetMomentTools/python/JetMomentToolsConfig.py
+++ b/Reconstruction/Jet/JetMomentTools/python/JetMomentToolsConfig.py
@@ -14,6 +14,30 @@ jetmomentlog = Logging.logging.getLogger('JetMomentToolsConfig')
 from JetRecTools import JetRecToolsConfig
 from JetMomentTools import JetMomentToolsConf
 
+# May need to specify non-standard tracking collections, e.g. for trigger
+# Testing code -- move to another module and perhaps allow extensions
+# e.g. in a dedicated trigger collections module to keep online/offline
+# code more factorised
+trackcolls = {
+    "":"InDetTrackParticles",
+    "ftf":"HLT_xAODTracks_FS",
+}
+
+vertexcolls = {
+    "":"PrimaryVertices",
+    "ftf":"HLT_EFHistoPrmVtx"
+}
+
+tvacolls = {
+    "":"JetTrackVtxAssoc",
+    "ftf":"JetTrackVtxAssoc_ftf"
+}
+
+assoctracks = {
+    "":"GhostTrack",
+    "ftf":"GhostTrack_ftf"
+}
+
 def getCaloQualityTool():
     caloqual = JetMomentToolsConf.JetCaloQualityTool(
       "caloqual",
@@ -66,41 +90,51 @@ def getConstitFourMomTool(jetdef):
     return cfourmom
 
 # Jet vertex fraction with selection.
-def getJVFTool():
+def getJVFTool(modspec=""):
     jettrackselloose = JetRecToolsConfig.getTrackSelTool()
 
     jvf = JetMomentToolsConf.JetVertexFractionTool(
         "jvf",
-        VertexContainer = "PrimaryVertices",
-        AssociatedTracks = "GhostTrack",
-        TrackVertexAssociation = "JetTrackVtxAssoc",
-        TrackParticleContainer  = "JetSelectedTracks",
+        VertexContainer = vertexcolls[modspec],
+        AssociatedTracks = assoctracks[modspec],
+        TrackVertexAssociation = tvacolls[modspec],
+        TrackParticleContainer  = trackcolls[modspec],
         TrackSelector = jettrackselloose,
     )
     return jvf
 
 
-def getTrackMomentsTool():
+# Jet vertex fraction with selection.
+def getJVTTool(modspec=""):
+
+    jvt = JetMomentToolsConf.JetVertexTaggerTool(
+        "jvt",
+        VertexContainer = vertexcolls[modspec],
+    )
+    return jvt
+
+
+def getTrackMomentsTool(modspec=""):
     jettrackselloose = JetRecToolsConfig.getTrackSelTool()
 
     trackmoments = JetMomentToolsConf.JetTrackMomentsTool(
         "trkmoms",
-        VertexContainer = "PrimaryVertices",
-        AssociatedTracks = "GhostTrack",
-        TrackVertexAssociation = "JetTrackVtxAssoc",
+        VertexContainer = vertexcolls[modspec],
+        AssociatedTracks = assoctracks[modspec],
+        TrackVertexAssociation = tvacolls[modspec],
         TrackMinPtCuts = [500, 1000],
         TrackSelector = jettrackselloose
     )
     return trackmoments
 
-def getTrackSumMomentsTool():
+def getTrackSumMomentsTool(modspec=""):
     jettrackselloose = JetRecToolsConfig.getTrackSelTool()
 
     tracksummoments = JetMomentToolsConf.JetTrackSumMomentsTool(
         "trksummoms",
-        VertexContainer = "PrimaryVertices",
-        AssociatedTracks = "GhostTrack",
-        TrackVertexAssociation = "JetTrackVtxAssoc",
+        VertexContainer = vertexcolls[modspec],
+        AssociatedTracks = assoctracks[modspec],
+        TrackVertexAssociation = tvacolls[modspec],
         RequireTrackPV = True,
         TrackSelector = jettrackselloose
     )
diff --git a/Reconstruction/Jet/JetRecConfig/python/StandardJetMods.py b/Reconstruction/Jet/JetRecConfig/python/StandardJetMods.py
index 8ece35d42051b4929b1eb2db602783fbc85d4408..28718aeda7a8649ac16d92ea4e3f4e6357571ae8 100644
--- a/Reconstruction/Jet/JetRecConfig/python/StandardJetMods.py
+++ b/Reconstruction/Jet/JetRecConfig/python/StandardJetMods.py
@@ -69,6 +69,7 @@ jetmomentmods = {
                                    helperfn=JetMomentToolsConfig.getJVFTool,
                                    prereqs = ["mod:TrackMoments"] ),
     "JVT":             JetModifier("JetVertexTaggerTool", "jvt",
+                                   helperfn=JetMomentToolsConfig.getJVTTool,
                                    prereqs = [ "mod:JVF" ]),
     "OriginSetPV":     JetModifier("JetOriginCorrectionTool", "origin_setpv",
                                    prereqs = [ "mod:JVF" ]),
diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/q221_RDOtoRDOTrig_mt1_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/q221_RDOtoRDOTrig_mt1_build.ref
index d6ba14a434fff6a1be10bd6394590ba570726eaa..757683d74d9ae684e5494b682782e6859e28aaec 100644
--- a/Trigger/TrigValidation/TrigAnalysisTest/share/q221_RDOtoRDOTrig_mt1_build.ref
+++ b/Trigger/TrigValidation/TrigAnalysisTest/share/q221_RDOtoRDOTrig_mt1_build.ref
@@ -50,28 +50,30 @@ TrigSignatureMoniMT                                INFO HLT_g5_etcut_LArPEB_L1EM
 TrigSignatureMoniMT                                INFO HLT_g5_etcut_LArPEB_L1EM3 decisions                    140       140       185       185       0         0
 TrigSignatureMoniMT                                INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J2019        19        15        0         0         0         0         0         15
 TrigSignatureMoniMT                                INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20 decisions                    39        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j175_gsc225_bmv2c1040_split_L1J1004         4         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j175_gsc225_bmv2c1040_split_L1J100 decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j225_gsc275_bmv2c1060_split_L1J1004         4         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j225_gsc275_bmv2c1060_split_L1J100 decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j225_gsc300_bmv2c1070_split_L1J1004         4         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j225_gsc300_bmv2c1070_split_L1J100 decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j225_gsc360_bmv2c1077_split_L1J1004         4         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j225_gsc360_bmv2c1077_split_L1J100 decisions                    0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j175_ftf_gsc225_bmv2c1040_split_L1J1004         4         0         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j175_ftf_gsc225_bmv2c1040_split_L1J100 decisions                    0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j225_ftf_gsc275_bmv2c1060_split_L1J1004         4         0         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j225_ftf_gsc275_bmv2c1060_split_L1J100 decisions                    0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j225_ftf_gsc300_bmv2c1070_split_L1J1004         4         0         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j225_ftf_gsc300_bmv2c1070_split_L1J100 decisions                    0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j225_ftf_gsc360_bmv2c1077_split_L1J1004         4         0         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j225_ftf_gsc360_bmv2c1077_split_L1J100 decisions                    0         0         0         0         0         0
 TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J20      19        19        0         0         0         0         0         0         0
 TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J20 decisions                    0         0         0         0         0         0
 TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J75_31ETA493         3         0         0         0         0         0         0         0
 TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J75_31ETA49 decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j35_gsc45_bmv2c1070_split_L1J2019        19        19        18        18        0         0         0         18
-TrigSignatureMoniMT                                INFO HLT_j35_gsc45_bmv2c1070_split_L1J20 decisions                    69        48        48        0         0         0
-TrigSignatureMoniMT                                INFO HLT_j35_gsc45_boffperf_split_L1J2019        19        19        18        18        0         0         0         18
-TrigSignatureMoniMT                                INFO HLT_j35_gsc45_boffperf_split_L1J20 decisions                    69        48        48        0         0         0
+TrigSignatureMoniMT                                INFO HLT_j35_ftf_gsc45_bmv2c1070_split_L1J2019        19        19        19        18        18        0         0         18
+TrigSignatureMoniMT                                INFO HLT_j35_ftf_gsc45_bmv2c1070_split_L1J20 decisions                    19        68        46        46        0         0
+TrigSignatureMoniMT                                INFO HLT_j35_ftf_gsc45_boffperf_split_L1J2019        19        19        19        18        18        0         0         18
+TrigSignatureMoniMT                                INFO HLT_j35_ftf_gsc45_boffperf_split_L1J20 decisions                    19        68        46        46        0         0
 TrigSignatureMoniMT                                INFO HLT_j420_L1J100               4         4         0         0         0         0         0         0         0
 TrigSignatureMoniMT                                INFO HLT_j420_L1J100 decisions                         0         0         0         0         0         0
 TrigSignatureMoniMT                                INFO HLT_j420_L1J20                19        19        0         0         0         0         0         0         0
 TrigSignatureMoniMT                                INFO HLT_j420_L1J20 decisions                          0         0         0         0         0         0
 TrigSignatureMoniMT                                INFO HLT_j45_L1J15                 20        20        18        0         0         0         0         0         18
 TrigSignatureMoniMT                                INFO HLT_j45_L1J15 decisions                           18        0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j45_ftf_L1J15             20        20        18        0         0         0         0         0         18
+TrigSignatureMoniMT                                INFO HLT_j45_ftf_L1J15 decisions                       18        0         0         0         0         0
 TrigSignatureMoniMT                                INFO HLT_j460_a10_lcw_subjes_L1J1004         4         0         0         0         0         0         0         0
 TrigSignatureMoniMT                                INFO HLT_j460_a10_lcw_subjes_L1J100 decisions                    0         0         0         0         0         0
 TrigSignatureMoniMT                                INFO HLT_j460_a10_lcw_subjes_L1J20 19        19        0         0         0         0         0         0         0
@@ -90,6 +92,8 @@ TrigSignatureMoniMT                                INFO HLT_j80_j60_L1J15
 TrigSignatureMoniMT                                INFO HLT_j80_j60_L1J15 decisions                       13        0         0         0         0         0
 TrigSignatureMoniMT                                INFO HLT_j85_L1J20                 19        19        13        0         0         0         0         0         13
 TrigSignatureMoniMT                                INFO HLT_j85_L1J20 decisions                           13        0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j85_ftf_L1J20             19        19        13        0         0         0         0         0         13
+TrigSignatureMoniMT                                INFO HLT_j85_ftf_L1J20 decisions                       13        0         0         0         0         0
 TrigSignatureMoniMT                                INFO HLT_mu10_lateMu_L1MU10        10        10        0         0         0         0         0         0         0
 TrigSignatureMoniMT                                INFO HLT_mu10_lateMu_L1MU10 decisions                    0         0         0         0         0         0
 TrigSignatureMoniMT                                INFO HLT_mu20_ivar_L1MU6           10        10        10        5         3         0         0         0         3
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/jetMenuHelper.py b/Trigger/TrigValidation/TrigUpgradeTest/python/jetMenuHelper.py
index 40319961748e129a11f4d88ebb525f384d657113..f3811e6315e987591b6b87215a1b2c48750b97e6 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/python/jetMenuHelper.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/python/jetMenuHelper.py
@@ -18,7 +18,13 @@ def jetDictFromString(jet_def_string):
         "recoAlg":  jetalg,
         "dataType": inputtype,
         "calib":    clusterscale,
-        "jetCalib": jetcalib
+        "jetCalib": jetcalib,
+        # Default to this for now pending further development.
+        # Ideally it'd be better to deprecate this and instead
+        # take the defaults from SignatureDicts for most
+        # purposes, but this can wait until the needs of clients
+        # are more clear.
+        "trkopt" :  "notrk"
     }
     return jetRecoDict
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_build.ref b/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_build.ref
index ac84916f157977890a20c4b6642df810dc1d1061..61a2aad296585835d1755524fd860c9203551062 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_build.ref
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_build.ref
@@ -54,28 +54,30 @@ TrigSignatureMoniMT                                 INFO HLT_g5_etcut_LArPEB_L1E
 TrigSignatureMoniMT                                 INFO HLT_g5_etcut_LArPEB_L1EM3 decisions                    51        51        55        55        0         0         
 TrigSignatureMoniMT                                 INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J2020        20        1         0         0         0         0         0         1         
 TrigSignatureMoniMT                                 INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20 decisions                    2         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j175_gsc225_bmv2c1040_split_L1J10020        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j175_gsc225_bmv2c1040_split_L1J100 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j225_gsc275_bmv2c1060_split_L1J10020        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j225_gsc275_bmv2c1060_split_L1J100 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j225_gsc300_bmv2c1070_split_L1J10020        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j225_gsc300_bmv2c1070_split_L1J100 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j225_gsc360_bmv2c1077_split_L1J10020        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j225_gsc360_bmv2c1077_split_L1J100 decisions                    0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j175_ftf_gsc225_bmv2c1040_split_L1J10020        20        0         0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j175_ftf_gsc225_bmv2c1040_split_L1J100 decisions                    0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j225_ftf_gsc275_bmv2c1060_split_L1J10020        20        0         0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j225_ftf_gsc275_bmv2c1060_split_L1J100 decisions                    0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j225_ftf_gsc300_bmv2c1070_split_L1J10020        20        0         0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j225_ftf_gsc300_bmv2c1070_split_L1J100 decisions                    0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j225_ftf_gsc360_bmv2c1077_split_L1J10020        20        0         0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j225_ftf_gsc360_bmv2c1077_split_L1J100 decisions                    0         0         0         0         0         0         
 TrigSignatureMoniMT                                 INFO HLT_j260_320eta490_L1J20      20        20        0         0         0         0         0         0         0         
 TrigSignatureMoniMT                                 INFO HLT_j260_320eta490_L1J20 decisions                    0         0         0         0         0         0         
 TrigSignatureMoniMT                                 INFO HLT_j260_320eta490_L1J75_31ETA4920        20        0         0         0         0         0         0         0         
 TrigSignatureMoniMT                                 INFO HLT_j260_320eta490_L1J75_31ETA49 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j35_gsc45_bmv2c1070_split_L1J2020        20        6         5         5         0         0         0         5         
-TrigSignatureMoniMT                                 INFO HLT_j35_gsc45_bmv2c1070_split_L1J20 decisions                    9         5         5         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j35_gsc45_boffperf_split_L1J2020        20        6         5         5         0         0         0         5         
-TrigSignatureMoniMT                                 INFO HLT_j35_gsc45_boffperf_split_L1J20 decisions                    9         5         5         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j35_ftf_gsc45_bmv2c1070_split_L1J2020        20        6         6         5         5         0         0         5         
+TrigSignatureMoniMT                                 INFO HLT_j35_ftf_gsc45_bmv2c1070_split_L1J20 decisions                    6         9         5         5         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j35_ftf_gsc45_boffperf_split_L1J2020        20        6         6         5         5         0         0         5         
+TrigSignatureMoniMT                                 INFO HLT_j35_ftf_gsc45_boffperf_split_L1J20 decisions                    6         9         5         5         0         0         
 TrigSignatureMoniMT                                 INFO HLT_j420_L1J100               20        20        0         0         0         0         0         0         0         
 TrigSignatureMoniMT                                 INFO HLT_j420_L1J100 decisions                         0         0         0         0         0         0         
 TrigSignatureMoniMT                                 INFO HLT_j420_L1J20                20        20        0         0         0         0         0         0         0         
 TrigSignatureMoniMT                                 INFO HLT_j420_L1J20 decisions                          0         0         0         0         0         0         
 TrigSignatureMoniMT                                 INFO HLT_j45_L1J15                 20        20        5         0         0         0         0         0         5         
 TrigSignatureMoniMT                                 INFO HLT_j45_L1J15 decisions                           5         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j45_ftf_L1J15             20        20        5         0         0         0         0         0         5         
+TrigSignatureMoniMT                                 INFO HLT_j45_ftf_L1J15 decisions                       5         0         0         0         0         0         
 TrigSignatureMoniMT                                 INFO HLT_j460_a10_lcw_subjes_L1J10020        20        0         0         0         0         0         0         0         
 TrigSignatureMoniMT                                 INFO HLT_j460_a10_lcw_subjes_L1J100 decisions                    0         0         0         0         0         0         
 TrigSignatureMoniMT                                 INFO HLT_j460_a10_lcw_subjes_L1J20 20        20        0         0         0         0         0         0         0         
@@ -94,6 +96,8 @@ TrigSignatureMoniMT                                 INFO HLT_j80_j60_L1J15
 TrigSignatureMoniMT                                 INFO HLT_j80_j60_L1J15 decisions                       1         0         0         0         0         0         
 TrigSignatureMoniMT                                 INFO HLT_j85_L1J20                 20        20        1         0         0         0         0         0         1         
 TrigSignatureMoniMT                                 INFO HLT_j85_L1J20 decisions                           1         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j85_ftf_L1J20             20        20        1         0         0         0         0         0         1         
+TrigSignatureMoniMT                                 INFO HLT_j85_ftf_L1J20 decisions                       1         0         0         0         0         0         
 TrigSignatureMoniMT                                 INFO HLT_mu10_lateMu_L1MU10        20        20        0         0         0         0         0         0         0         
 TrigSignatureMoniMT                                 INFO HLT_mu10_lateMu_L1MU10 decisions                    0         0         0         0         0         0         
 TrigSignatureMoniMT                                 INFO HLT_mu20_ivar_L1MU6           20        20        3         1         1         0         0         0         1         
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/slice_bjet.ref b/Trigger/TrigValidation/TrigUpgradeTest/share/slice_bjet.ref
index 3c1352bf0b7562ceb57b99cfc0e8dc331856c836..733267b3460cd21ea2b5d8c551604438662fe6f8 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/slice_bjet.ref
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/slice_bjet.ref
@@ -1,12 +1,12 @@
-TrigSignatureMoniMT                                INFO HLT_j175_gsc225_bmv2c1040_split_L1J100100       100       0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j175_gsc225_bmv2c1040_split_L1J100 decisions                    0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j225_gsc275_bmv2c1060_split_L1J100100       100       0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j225_gsc275_bmv2c1060_split_L1J100 decisions                    0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j225_gsc300_bmv2c1070_split_L1J100100       100       0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j225_gsc300_bmv2c1070_split_L1J100 decisions                    0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j225_gsc360_bmv2c1077_split_L1J100100       100       0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j225_gsc360_bmv2c1077_split_L1J100 decisions                    0         0         0         
-TrigSignatureMoniMT                                INFO HLT_j35_gsc45_bmv2c1070_split_L1J20100       100       35        31        31        31        
-TrigSignatureMoniMT                                INFO HLT_j35_gsc45_bmv2c1070_split_L1J20 decisions                    89        57        57        
-TrigSignatureMoniMT                                INFO HLT_j35_gsc45_boffperf_split_L1J20100       100       35        31        31        31        
-TrigSignatureMoniMT                                INFO HLT_j35_gsc45_boffperf_split_L1J20 decisions                    89        57        57        
+TrigSignatureMoniMT                                INFO HLT_j175_ftf_gsc225_bmv2c1040_split_L1J100100       100       0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j175_ftf_gsc225_bmv2c1040_split_L1J100 decisions                    0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j225_ftf_gsc275_bmv2c1060_split_L1J100100       100       0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j225_ftf_gsc275_bmv2c1060_split_L1J100 decisions                    0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j225_ftf_gsc300_bmv2c1070_split_L1J100100       100       0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j225_ftf_gsc300_bmv2c1070_split_L1J100 decisions                    0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j225_ftf_gsc360_bmv2c1077_split_L1J100100       100       0         0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j225_ftf_gsc360_bmv2c1077_split_L1J100 decisions                    0         0         0         0         
+TrigSignatureMoniMT                                INFO HLT_j35_ftf_gsc45_bmv2c1070_split_L1J20100       100       35        35        31        31        31        
+TrigSignatureMoniMT                                INFO HLT_j35_ftf_gsc45_bmv2c1070_split_L1J20 decisions                    35        90        57        57        
+TrigSignatureMoniMT                                INFO HLT_j35_ftf_gsc45_boffperf_split_L1J20100       100       35        35        31        31        31        
+TrigSignatureMoniMT                                INFO HLT_j35_ftf_gsc45_boffperf_split_L1J20 decisions                    35        90        57        57        
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/slice_jet.ref b/Trigger/TrigValidation/TrigUpgradeTest/share/slice_jet.ref
index 5a7623a1c11d1b59cc6fbede1ce058b9fc4c5b1e..30f5694c87d6e7497ea27283673478776b2f7908 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/slice_jet.ref
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/slice_jet.ref
@@ -1,22 +1,42 @@
-TrigSignatureMoniMT                                INFO HLT_2j330_a10t_lcw_jes_30smcINF_L1J2020        20        0         0         
-TrigSignatureMoniMT                                INFO HLT_2j330_a10t_lcw_jes_30smcINF_L1J20 decisions                    0         
+TrigSignatureMoniMT                                INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J10020        20        0         0         
+TrigSignatureMoniMT                                INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J100 decisions                    0         
+TrigSignatureMoniMT                                INFO HLT_3j200_L1J100              20        20        0         0         
+TrigSignatureMoniMT                                INFO HLT_3j200_L1J100 decisions                        0         
 TrigSignatureMoniMT                                INFO HLT_3j200_L1J20               20        20        0         0         
 TrigSignatureMoniMT                                INFO HLT_3j200_L1J20 decisions                         0         
-TrigSignatureMoniMT                                INFO HLT_5j70_0eta240_L1J20        20        20        0         0         
-TrigSignatureMoniMT                                INFO HLT_5j70_0eta240_L1J20 decisions                    0         
+TrigSignatureMoniMT                                INFO HLT_5j70_0eta240_L14J20       20        20        0         0         
+TrigSignatureMoniMT                                INFO HLT_5j70_0eta240_L14J20 decisions                    0         
 TrigSignatureMoniMT                                INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J2020        20        1         1         
 TrigSignatureMoniMT                                INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20 decisions                    2         
 TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J20      20        20        0         0         
 TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J20 decisions                    0         
+TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J75_31ETA4920        20        0         0         
+TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J75_31ETA49 decisions                    0         
+TrigSignatureMoniMT                                INFO HLT_j420_L1J100               20        20        0         0         
+TrigSignatureMoniMT                                INFO HLT_j420_L1J100 decisions                         0         
 TrigSignatureMoniMT                                INFO HLT_j420_L1J20                20        20        0         0         
 TrigSignatureMoniMT                                INFO HLT_j420_L1J20 decisions                          0         
-TrigSignatureMoniMT                                INFO HLT_j420_a10t_lcw_jes_30smcINF_L1J2020        20        0         0         
-TrigSignatureMoniMT                                INFO HLT_j420_a10t_lcw_jes_30smcINF_L1J20 decisions                    0         
-TrigSignatureMoniMT                                INFO HLT_j45_L1J20                 20        20        5         5         
-TrigSignatureMoniMT                                INFO HLT_j45_L1J20 decisions                           5         
+TrigSignatureMoniMT                                INFO HLT_j45_L1J15                 20        20        5         5         
+TrigSignatureMoniMT                                INFO HLT_j45_L1J15 decisions                           5         
+TrigSignatureMoniMT                                INFO HLT_j45_ftf_L1J15             20        20        5         5         
+TrigSignatureMoniMT                                INFO HLT_j45_ftf_L1J15 decisions                       5         
+TrigSignatureMoniMT                                INFO HLT_j460_a10_lcw_subjes_L1J10020        20        0         0         
+TrigSignatureMoniMT                                INFO HLT_j460_a10_lcw_subjes_L1J100 decisions                    0         
 TrigSignatureMoniMT                                INFO HLT_j460_a10_lcw_subjes_L1J20 20        20        0         0         
 TrigSignatureMoniMT                                INFO HLT_j460_a10_lcw_subjes_L1J20 decisions                    0         
+TrigSignatureMoniMT                                INFO HLT_j460_a10r_L1J100          20        20        0         0         
+TrigSignatureMoniMT                                INFO HLT_j460_a10r_L1J100 decisions                    0         
 TrigSignatureMoniMT                                INFO HLT_j460_a10r_L1J20           20        20        0         0         
 TrigSignatureMoniMT                                INFO HLT_j460_a10r_L1J20 decisions                     0         
+TrigSignatureMoniMT                                INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J10020        20        0         0         
+TrigSignatureMoniMT                                INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J100 decisions                    0         
+TrigSignatureMoniMT                                INFO HLT_j460_a10t_lcw_jes_L1J100  20        20        0         0         
+TrigSignatureMoniMT                                INFO HLT_j460_a10t_lcw_jes_L1J100 decisions                    0         
+TrigSignatureMoniMT                                INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J2020        20        1         1         
+TrigSignatureMoniMT                                INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J20 decisions                    1         
+TrigSignatureMoniMT                                INFO HLT_j80_j60_L1J15             20        20        1         1         
+TrigSignatureMoniMT                                INFO HLT_j80_j60_L1J15 decisions                       1         
 TrigSignatureMoniMT                                INFO HLT_j85_L1J20                 20        20        1         1         
 TrigSignatureMoniMT                                INFO HLT_j85_L1J20 decisions                           1         
+TrigSignatureMoniMT                                INFO HLT_j85_ftf_L1J20             20        20        1         1         
+TrigSignatureMoniMT                                INFO HLT_j85_ftf_L1J20 decisions                       1         
diff --git a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
index 9e54c2b60295dee8ffddf79afb9d524a56281fec..2920d9bfcd99d89954bf1c56018b438df410cb0e 100644
--- a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
+++ b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
@@ -224,7 +224,10 @@ TriggerHLTListRun3 = [
     ('xAOD::JetContainer#HLT_AntiKt4EMTopoJets_subjesIS',                      'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'),
     ('xAOD::JetAuxContainer#HLT_AntiKt4EMTopoJets_subjesISAux.'+JetVars,       'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'),
 
-    ('xAOD::JetContainer#HLT_AntiKt4EMTopoJets_subjes',                        'BS ESD AODFULL', 'Jet'),
+    ('xAOD::JetContainer#HLT_AntiKt4EMTopoJets_subjesIS_ftf',              'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'),
+    ('xAOD::JetAuxContainer#HLT_AntiKt4EMTopoJets_subjesIS_ftfAux.'+JetVars,       'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Jet'),
+
+    ('xAOD::JetContainer#HLT_AntiKt4EMTopoJets_subjes',                'BS ESD AODFULL', 'Jet'),
     ('xAOD::JetAuxContainer#HLT_AntiKt4EMTopoJets_subjesAux.'+JetVars,         'BS ESD AODFULL', 'Jet'),
 
     ('xAOD::JetContainer#HLT_AntiKt4EMTopoJets_nojcalib',                      'BS ESD AODFULL', 'Jet'),
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetDef.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetDef.py
index 71fc80d0b4bbf86a279785d50b24ac1611f69101..bf3233b31f725bfd7ad0f0095ff6b771f981ea05 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetDef.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetDef.py
@@ -14,7 +14,7 @@ from TriggerMenuMT.HLTMenuConfig.Bjet.BjetSequenceSetup import getBJetSequence
 # fragments generating configuration will be functions in New JO, 
 # so let's make them functions already now
 #----------------------------------------------------------------
-def bjetSequenceCfg_j( flags ):    
+def bjetSequenceCfg_j( flags ):
     return getBJetSequence('j')
 
 def bjetSequenceCfg_gsc( flags ):    
@@ -30,7 +30,7 @@ class BjetChainConfiguration(ChainConfigurationBase):
 
     def __init__(self, chainDict):
         ChainConfigurationBase.__init__(self,chainDict)
-        
+
     # ----------------------
     # Assemble the chain depending on information from chainName
     # ----------------------
@@ -62,6 +62,7 @@ class BjetChainConfiguration(ChainConfigurationBase):
     def getBjetSequence_j(self):
         stepName = "Step1_bjet"
         log.debug("Configuring step " + stepName)
+        
         bjetSeq = RecoFragmentsPool.retrieve( bjetSequenceCfg_j, None ) # the None will be used for flags in future
         return ChainStep(stepName, [bjetSeq])
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py
index 7f4841adf597573bb8746ac65de0789827fbd0d5..a5a126f6011887509d396d91c85d5225bbfff7f8 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py
@@ -31,48 +31,23 @@ def getBJetSequence( step ):
 # ==================================================================================================== 
 
 def bJetStep1Sequence():
+    jetsKey = "HLT_AntiKt4EMTopoJets_subjesIS_ftf"
+    prmVtxKey = "HLT_EFHistoPrmVtx"
+    
+    from DecisionHandling.DecisionHandlingConf import InputMakerForRoI
+    InputMakerAlg = InputMakerForRoI("IMstep1bjet", RoIsLink="initialRoI")
+    InputMakerAlg.RoIs = "BjetInputRoI"
 
-    from TrigUpgradeTest.jetMenuHelper import jetCFSequenceFromString
-    (recoSequence, InputMakerAlg, sequenceOut) = jetCFSequenceFromString("a4_tc_em_subjes")
-				 
-    # Start with b-jet-specific algo sequence
-    # Construct RoI. Needed input for Fast Tracking
-    from TrigBjetHypo.TrigBjetHypoConf import TrigRoIFromJetsMT
-    RoIBuilder = TrigRoIFromJetsMT("TrigRoIFromJetsMT")
-    RoIBuilder.JetInputKey = sequenceOut
-    RoIBuilder.RoIOutputKey = "BjetRoIs"
-    RoIs=RoIBuilder.RoIOutputKey
-
-    # Fast Tracking
-    viewAlgs = makeInDetAlgs(whichSignature='FS',separateTrackParticleCreator="_FS", rois=RoIs)
-
-    # Primary Vertex 
-    #from TrigT2HistoPrmVtx.TrigT2HistoPrmVtxAllTEMTConfig import EFHistoPrmVtxAllTEMT_Jet
-    #prmVtx = EFHistoPrmVtxAllTEMT_Jet( "EFHistoPrmVtxAllTEMT_Jet" ) 
-    #prmVtx.InputRoIsKey = RoIs
-    #prmVtx.InputTracksKey = "HLT_xAODTracks_FS"
-    #prmVtx.OutputVertexKey = recordable("HLT_EFHistoPrmVtx")
-
-    from TrigInDetConfig.TrigInDetPriVtxConfig import makeVertices
-
-  
-    #TODO need to change the name of the output vertex collection to something recordable
-    outputVertexKey = "HLT_EFHistoPrmVtx"
-    vtxAlgs = makeVertices( "egamma", "HLT_xAODTracks_FS", outputVertexKey  )
-    prmVtx = vtxAlgs[-1]
-
-    # Shortlis of jets
+    # Shortlist of jets
     from TrigBjetHypo.TrigBjetHypoConf import TrigJetSplitterMT
     jetSplitter = TrigJetSplitterMT("TrigJetSplitterMT")
     jetSplitter.ImposeZconstraint = True
-    jetSplitter.Jets = sequenceOut
+    jetSplitter.Jets = jetsKey
     jetSplitter.OutputJets = recordable("HLT_SplitJet")
     jetSplitter.OutputRoi = "SplitJets"
-    #jetSplitter.InputVertex = prmVtx.OutputVertexKey
-    jetSplitter.InputVertex = outputVertexKey
+    jetSplitter.InputVertex = prmVtxKey
 
-    fastTrackingSequence = parOR("fastTrackingSequence",viewAlgs)
-    bJetEtSequence = seqAND("bJetEtSequence",[ RoIBuilder,fastTrackingSequence,prmVtx,jetSplitter] )
+    bJetEtSequence = seqAND("bJetEtSequence",[ jetSplitter] )
 
     # hypo
     from TrigBjetHypo.TrigBjetHypoConf import TrigBjetEtHypoAlgMT
@@ -82,10 +57,10 @@ def bJetStep1Sequence():
     hypo.PrmVtxLink = "xPrimVx"
     hypo.Jets = jetSplitter.OutputJets
     hypo.RoIs = jetSplitter.OutputRoi
-    hypo.PrmVtx = outputVertexKey
+    hypo.PrmVtx = prmVtxKey
 
-    # Sequence     
-    BjetAthSequence = seqAND("BjetAthSequence_step1", [InputMakerAlg,recoSequence,bJetEtSequence])
+    # Sequence
+    BjetAthSequence = seqAND("BjetAthSequence_step1",[InputMakerAlg,bJetEtSequence])
 
     return MenuSequence( Sequence    = BjetAthSequence,
                          Maker       = InputMakerAlg,
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/GenerateBjetChainDefs.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/GenerateBjetChainDefs.py
index 6fc270386773eadc09cabea32403cb9c39ee1b17..09a8483d741a7db2f3df452dd387a601f9d9f8c9 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/GenerateBjetChainDefs.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/GenerateBjetChainDefs.py
@@ -2,7 +2,7 @@
 
 from TriggerMenuMT.HLTMenuConfig.Menu.ChainDictTools import splitChainDict
 from TriggerMenuMT.HLTMenuConfig.Bjet.BjetDef import BjetChainConfiguration as BjetChainConfiguration
-
+from TriggerMenuMT.HLTMenuConfig.Jet.JetChainConfiguration import JetChainConfiguration
 
 from AthenaCommon.Logging import logging
 log = logging.getLogger( 'TriggerMenuMT.HLTMenuConfig.Bjet.GenerateBjetChainConfigs' )
@@ -19,10 +19,14 @@ def generateChainConfigs( chainDict ):
     listOfChainDefs = []
 
     for subChainDict in listOfChainDicts:
-        
+
+        subChainDict['chainParts']['signature'] = 'Jet'
+
+        jet = JetChainConfiguration(subChainDict).assembleChain()
         Bjet = BjetChainConfiguration(subChainDict).assembleChain() 
+        jet.steps = jet.steps + Bjet.steps
 
-        listOfChainDefs += [Bjet]
+        listOfChainDefs += [jet]
         log.debug('length of chaindefs %s', len(listOfChainDefs) )
         
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetChainConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetChainConfiguration.py
index 0ac3dbaed317e590c052e9738d36000fc1d16301..c208dcaae0c7b32686ee0d77ab0d6b34471a4edb 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetChainConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetChainConfiguration.py
@@ -16,11 +16,9 @@ class JetChainConfiguration(ChainConfigurationBase):
     def __init__(self, chainDict):
         ChainConfigurationBase.__init__(self,chainDict)
 
-        # interpret the reco configuration only
-        # eventually should just be a subdict in the chainDict
-        recoKeys = ['recoAlg','dataType','calib','jetCalib','trkopt','cleaning']
-        self.recoDict = { key:self.dict["chainParts"][key] for key in recoKeys }
-        
+        from TriggerMenuMT.HLTMenuConfig.Jet.JetRecoConfiguration import extractRecoDict
+        self.recoDict = extractRecoDict(self.dict["chainParts"])
+
     # ----------------------
     # Assemble the chain depending on information from chainName
     # ----------------------
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetMenuSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetMenuSequences.py
index d3a0030a6cd5e21e72e8c7d30049929a771eaae1..f33061578354be8073d9aa7937ab067556594515 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetMenuSequences.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetMenuSequences.py
@@ -7,7 +7,6 @@ from TriggerMenuMT.HLTMenuConfig.Jet.JetRecoSequences import jetAthSequence, jet
 def jetCFSequence(dummyFlags,**recoDict):
     """ Function to create the jet Menu Sequence"""
     
-    ## RoIs = 'FSJETRoI'
     #reco sequence
     (JetAthSequence, InputMakerAlg, sequenceOut) = RecoFragmentsPool.retrieve(jetAthSequence,None,**recoDict)
     return (JetAthSequence, InputMakerAlg, sequenceOut) 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoConfiguration.py
index c4858141eaa2583982ec36eaf407cad11f8c6efc..a14aee1de8f51ba0a35fac5ad53a913426f8d6c2 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoConfiguration.py
@@ -9,6 +9,13 @@
 
 from JetRecConfig.JetDefinition import JetConstit, xAODType, JetDefinition
 
+# Extract the jet reco dict from the chainDict
+def extractRecoDict(chainParts):
+    # interpret the reco configuration only
+    # eventually should just be a subdict in the chainDict
+    recoKeys = ['recoAlg','dataType','calib','jetCalib','trkopt','cleaning']
+    return { key:chainParts[key] for key in recoKeys }
+
 # Define the jet constituents to be interpreted by JetRecConfig
 # When actually specifying the reco, clustersKey should be
 # set, but default to None to allow certain checks, in particular
@@ -27,11 +34,13 @@ def defineJetConstit(jetRecoDict,clustersKey=None):
         jetConstit = JetConstit( xAODType.CaloCluster, constitMods )
         if clustersKey is not None:
             jetConstit.rawname = clustersKey
+            if jetRecoDict["dataType"]=="tc":
+                jetConstit.inputname = clustersKey
         # apply constituent pileup suppression
+        if "cs" in jetRecoDict["dataType"]:
+            constitMods.append("CS")
         if "sk" in jetRecoDict["dataType"]:
             constitMods.append("SK")
-        elif clustersKey is not None:
-            jetConstit.inputname = clustersKey
     return jetConstit
 
 # Arbitrary min pt for fastjet, set to be low enough for MHT(?)
@@ -64,6 +73,14 @@ from JetRecConfig.StandardJetMods import jetmoddict
 def getModSpec(modname,modspec=''):
     return (jetmoddict[modname],str(modspec))
 
+def defineTrackMods(trkopt):
+    trkmods = [
+        (jetmoddict["TrackMoments"],trkopt),
+        (jetmoddict["JVF"],trkopt),
+        (jetmoddict["JVT"],trkopt)
+    ]
+    return trkmods
+
 # Translate calib specification into something understood by
 # the calibration config helper
 def defineCalibFilterMods(jetRecoDict,dataSource):
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoSequences.py
index b10e89169f6980be2053d0be94b4c63cf87970ce..bc0dea420db2dfda25bdd9ffd4fbacc93c0dbfc1 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoSequences.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoSequences.py
@@ -10,6 +10,8 @@ import JetRecoConfiguration
 # Translate the reco dict to a string for suffixing etc
 def jetRecoDictToString(jetRecoDict):
     strtemp = "{recoAlg}_{dataType}_{calib}_{jetCalib}"
+    if jetRecoDict["trkopt"] != "notrk":
+        strtemp += "_{trkopt}"
     return strtemp.format(**jetRecoDict)
 
 # Configure reco from a dict of options
@@ -103,6 +105,14 @@ def jetRecoSequence( dummyFlags, dataSource, RoIs = 'FSJETRoI', **jetRecoDict):
         (topoClusterSequence, clustersKey) = RecoFragmentsPool.retrieve(HLTFSTopoRecoSequence,RoIs)
         recoSeq += topoClusterSequence
 
+        # Set up tracking sequence -- may need to reorganise or relocate
+        # depending on how we want to handle HLT preselection
+        trkcolls = None
+        if jetRecoDict["trkopt"] != "notrk":
+            from JetTrackingConfig import JetTrackingSequence
+            (jettrkseq, trkcolls) = RecoFragmentsPool.retrieve( JetTrackingSequence, None, trkopt=jetRecoDict["trkopt"], RoIs=RoIs)
+            recoSeq += jettrkseq
+
         # Potentially add particle flow reconstruction
         # Work in progress
         if jetRecoDict["dataType"] == "pf":
@@ -115,26 +125,35 @@ def jetRecoSequence( dummyFlags, dataSource, RoIs = 'FSJETRoI', **jetRecoDict):
         if doConstitMods:
             from JetRecConfig.ConstModHelpers import getConstitModAlg
             recoSeq += getConstitModAlg(jetDef.inputdef,"HLT")
+
+        # Add the PseudoJetGetter alg to the sequence
+        constitPJAlg = getConstitPJGAlg( jetDef.inputdef )
+        constitPJKey = constitPJAlg.PJGetter.OutputContainer
+        recoSeq += constitPJAlg
+        # Basic list of PseudoJets is just the constituents
+        # Append ghosts (tracks) if desired
+        pjs = [constitPJKey]
+        if trkcolls:
+            pjs.append(trkcolls["GhostTracks"])
         
         # chosen jet collection
         jetsFullName = jetNamePrefix+jetDef.basename+"Jets_"+jetRecoDict["jetCalib"]
+        if jetRecoDict["trkopt"] != "notrk":
+            jetsFullName += "_{}".format(jetRecoDict["trkopt"])
         sequenceOut = recordable(jetsFullName)
 
         from JetRecConfig import JetRecConfig
+        jetModList = []
+        if jetRecoDict["trkopt"] != "notrk":
+            trkMods = JetRecoConfiguration.defineTrackMods(jetRecoDict["trkopt"])
+            jetModList += trkMods
+
         # Import the standard jet modifiers as defined for offline
         # We can add/configure these differently if desired. In particular,
         # we could define a TriggerJetMods module if settings need to
         # diverge substantially e.g. track/vertex collections
         calibMods = JetRecoConfiguration.defineCalibFilterMods(jetRecoDict,dataSource)
-        jetModList = calibMods
-
-        # Add the PseudoJetGetter alg to the sequence
-        constitPJAlg = getConstitPJGAlg( jetDef.inputdef )
-        constitPJKey = constitPJAlg.PJGetter.OutputContainer
-        recoSeq += constitPJAlg
-        # Basic list of PseudoJets is just the constituents
-        # Append ghosts (tracks) if desired
-        pjs = [constitPJKey]
+        jetModList += calibMods
 
         if "sub" in jetRecoDict["jetCalib"]:
             # Add the event shape alg if needed for area subtraction
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetTrackingConfig.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetTrackingConfig.py
new file mode 100644
index 0000000000000000000000000000000000000000..66af99bb6a2bb319bb06fd4fc934f6eff10d379a
--- /dev/null
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetTrackingConfig.py
@@ -0,0 +1,105 @@
+#
+#  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+#
+
+from AthenaCommon.CFElements import parOR
+from TrigEDMConfig.TriggerEDMRun3 import recordable
+
+from JetRecTools import JetRecToolsConf
+
+# From JetRecToolsConfig -- needs more than offline, though could extend that setup with more options
+# For now, leave until this has stabilised
+def getTrackSelTool(trkopt, tracksname):
+    jettracksname = "JetSelectedTracks_{}".format("trkopt")
+
+    # Track selector needs its own hierarchical config getter in JetRecTools?
+    from InDetTrackSelectionTool import InDetTrackSelectionToolConf
+    idtrackselloose = InDetTrackSelectionToolConf.InDet__InDetTrackSelectionTool(
+        "idtrackselloose",
+        CutLevel         = "Loose",
+        minPt            = 500,
+        UseTrkTrackTools = False,
+        Extrapolator     = "",
+        TrackSummaryTool = ""
+    )
+    jettrackselloose = JetRecToolsConf.JetTrackSelectionTool(
+        "jettrackselloose",
+        InputContainer  = tracksname,
+        OutputContainer = jettracksname,
+        Selector        = idtrackselloose
+    )
+    return jettrackselloose, jettracksname
+
+def getTrackVertexAssocTool(trkopt,tracksname,verticesname):
+    tvaname = "JetTrackVtxAssoc_{}".format(trkopt)
+    # Track-vertex association
+    from TrackVertexAssociationTool import TrackVertexAssociationToolConf
+    idtvassoc = TrackVertexAssociationToolConf.CP__TrackVertexAssociationTool("idloosetvassoc")
+
+    jettvassoc = JetRecToolsConf.TrackVertexAssociationTool(
+        "jettvassoc",
+        TrackParticleContainer  = tracksname,
+        TrackVertexAssociation  = tvaname,
+        VertexContainer         = verticesname,
+        TrackVertexAssoTool     = idtvassoc,
+    )
+    return jettvassoc, tvaname
+
+
+def JetTrackingSequence(dummyFlags,trkopt,RoIs):
+    jetTrkSeq = parOR( "JetTrackingSeq_"+trkopt, [])
+    tracksname = ""
+    verticesname = ""
+
+    if trkopt=="ftf":
+        from TriggerMenuMT.HLTMenuConfig.CommonSequences.InDetSetup import makeInDetAlgs
+        # Guess FS rather than making it jet-specific?
+        viewAlgs = makeInDetAlgs( "FS", rois=RoIs )
+
+        for alg in viewAlgs:
+            if "RoIs" in alg.properties():
+                alg.RoIs = RoIs
+            if "roiCollectionName" in alg.properties():
+                alg.roiCollectionName = RoIs
+            jetTrkSeq += alg
+        tracksname = recordable("HLT_xAODTracks_FS")
+        verticesname = recordable("HLT_EFHistoPrmVtx")
+
+    from TrigInDetConfig.TrigInDetPriVtxConfig import makeVertices
+    vtxAlgs = makeVertices( "jet", "HLT_xAODTracks_FS", verticesname )
+    prmVtx = vtxAlgs[-1]
+    jetTrkSeq += prmVtx
+
+    # Jet track selection
+    jettrackselloose, jettracksname = getTrackSelTool(trkopt, tracksname)
+    jettvassoc, tvaname = getTrackVertexAssocTool(trkopt, tracksname, verticesname)
+
+    from JetRec import JetRecConf
+    jettrkprepalg = JetRecConf.JetAlgorithm("jetalg_TrackPrep")
+    jettrkprepalg.Tools = [ jettrackselloose, jettvassoc ]
+    jetTrkSeq += jettrkprepalg
+
+    label = "GhostTrack_{}".format(trkopt)
+    ghosttracksname = "PseudoJet{}".format(label)
+    pjg = JetRecConf.PseudoJetGetter("pjg_{}".format(label),
+                                     InputContainer=tracksname,                                     
+                                     OutputContainer=ghosttracksname,
+                                     Label=label,
+                                     SkipNegativeEnergy=True,
+                                     GhostScale=1e-40)
+
+    pjgalg = JetRecConf.PseudoJetAlgorithm(
+        "pjgalg_"+label,
+        PJGetter=pjg
+        )
+    jetTrkSeq += pjgalg
+
+    trkcolls = {
+        "Tracks":      tracksname,
+        "Vertices":    verticesname,
+        "JetTracks":   jettracksname,
+        "TVA":         tvaname,
+        "GhostTracks": ghosttracksname
+    }
+
+    return jetTrkSeq, trkcolls
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/METRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/METRecoSequences.py
index 2970aa8338b692fd6ffff2ad0163294ebfe29ac5..8b0674859c69b5fc7cb4da69fba366bc46860c00 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/METRecoSequences.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/METRecoSequences.py
@@ -126,7 +126,7 @@ def metJetAthSequence(ConfigFlags):
 def metJetRecoSequence(RoIs = 'FSJETRoI'):
 
     from TriggerMenuMT.HLTMenuConfig.Jet.JetRecoSequences import jetRecoSequence
-    jetRecoDict={"recoAlg":"a4", "dataType": "tc", "calib": "em", "jetCalib": "subjes"}
+    jetRecoDict={"recoAlg":"a4", "dataType": "tc", "calib": "em", "jetCalib": "subjes", "trkopt": "notrk"}
     (jetSeq, sequenceOut) = RecoFragmentsPool.retrieve( jetRecoSequence, None, dataSource="data", **jetRecoDict )
 
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
index 1fc2b067a0fc7f59c09d1f553332122a015d7c2c..f207eafd6cd3036cd66c6c80fe116523fcabdf45 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
@@ -82,6 +82,11 @@ def setupMenu():
         ChainProp(name='HLT_j45_L1J15', groups=SingleJetGroup),
         ChainProp(name='HLT_j420_L1J20', groups=SingleJetGroup),
 
+        ChainProp(name='HLT_j45_ftf_L1J15', groups=SingleJetGroup),
+        ChainProp(name='HLT_j85_ftf_L1J20', groups=SingleJetGroup),
+
+        # Intentionally omitted for now, to be implemented later
+        #ChainProp(name='HLT_j225_gsc420_boffperf_split_L1J20', groups=SingleJetGroup),
         ChainProp(name='HLT_j260_320eta490_L1J20', groups=SingleJetGroup),
 
         ChainProp(name='HLT_j460_a10_lcw_subjes_L1J20', groups=SingleJetGroup),
@@ -93,9 +98,8 @@ def setupMenu():
     ]
 
     TriggerFlags.BjetSlice.signatures = TriggerFlags.BjetSlice.signatures() + [
-        #ATR-20049
-        ChainProp(name="HLT_j35_gsc45_boffperf_split_L1J20", groups=SingleBjetGroup),
-        ChainProp(name="HLT_j35_gsc45_bmv2c1070_split_L1J20", groups=SingleBjetGroup),
+        ChainProp(name="HLT_j35_ftf_gsc45_boffperf_split_L1J20", groups=SingleBjetGroup),
+        ChainProp(name="HLT_j35_ftf_gsc45_bmv2c1070_split_L1J20", groups=SingleBjetGroup),
     ] 
 
     TriggerFlags.TauSlice.signatures = TriggerFlags.TauSlice.signatures() + [
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py
index db34b321bdc10e0c65724899a8b89633a1f0198a..08bdd380a5b3bf4c29bbe2e6c9968aa0a146929d 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py
@@ -84,11 +84,10 @@ def setupMenu():
     ]
 
     TriggerFlags.BjetSlice.signatures = [
-        #ATR-20049
-        ChainProp(name="HLT_j175_gsc225_bmv2c1040_split_L1J100", groups=SingleBjetGroup),
-        ChainProp(name="HLT_j225_gsc275_bmv2c1060_split_L1J100", groups=SingleBjetGroup),
-        ChainProp(name="HLT_j225_gsc300_bmv2c1070_split_L1J100", groups=SingleBjetGroup),
-        ChainProp(name="HLT_j225_gsc360_bmv2c1077_split_L1J100", groups=SingleBjetGroup),
+        ChainProp(name="HLT_j175_ftf_gsc225_bmv2c1040_split_L1J100", groups=SingleBjetGroup),
+        ChainProp(name="HLT_j225_ftf_gsc275_bmv2c1060_split_L1J100", groups=SingleBjetGroup),
+        ChainProp(name="HLT_j225_ftf_gsc300_bmv2c1070_split_L1J100", groups=SingleBjetGroup),
+        ChainProp(name="HLT_j225_ftf_gsc360_bmv2c1077_split_L1J100", groups=SingleBjetGroup),
     ] 
 
     TriggerFlags.TauSlice.signatures = [
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
index 97a8d9e147dcc91fc0e70db887aea351d22180be..41127f45c97a25411ec69ac9c754cef1439f8cd1 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
@@ -115,7 +115,7 @@ JetChainParts = {
     'bTracking'    : [],
     'bConfig'      : ['split',],
     'bMatching'    : ['antimatchdr05mu'],
-    'trkopt'       : [],
+    'trkopt'       : ['notrk','ftk','ftkrefit','ftf'],
     'hypoScenario' : ['simple', 'vbenf',
                       'vbenfSEP30etSEP34mass35SEP50fbet',
                       'dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass'],