diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/ChainLabelParser.py b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/ChainLabelParser.py
index 94504552e8862f4e05cf6cb60ed5adf572026ceb..1f107aa34c88b77807a563b9727e4205c467808d 100644
--- a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/ChainLabelParser.py
+++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/ChainLabelParser.py
@@ -331,8 +331,11 @@ class ChainLabelParser(object):
 def _test(s):
     from TrigHLTJetHypo.ChainLabelParser import ChainLabelParser
     parser = ChainLabelParser(s, debug=True)
-    tree = parser.parse()
-    print(tree.dump())
+    trees = parser.parse()
+
+    print ('No of trees produced: ', len(trees))
+    for t in trees:
+        print(t.dump())
 
 
 def test():
diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/NodeSplitterVisitor.py b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/NodeSplitterVisitor.py
index 21f3ebb23e71077cbbc4dcbfedee76f3353f4d97..cae60ac9bbe46ca070557736c7bfab3ec4483aff 100644
--- a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/NodeSplitterVisitor.py
+++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/NodeSplitterVisitor.py
@@ -74,10 +74,6 @@ if __name__ == '__main__':
                       l1SeedThresholds=['FSNOSEED']*3,
                       groups=MultiJetGroup),
             
-            ChainProp(name='HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20',
-                      l1SeedThresholds=['FSNOSEED'],
-                      groups=MultiJetGroup),
-            
             ChainProp(name='HLT_10j40_L1J15',
                       l1SeedThresholds=['FSNOSEED'], groups=MultiJetGroup),
             
diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/TrigJetHypoToolConfig.py b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/TrigJetHypoToolConfig.py
index 3baf21b31c73367fd37987b7191bd797d9c3596a..d46791a7c4df7d787d370d5cbaab763d730f600a 100644
--- a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/TrigJetHypoToolConfig.py
+++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/TrigJetHypoToolConfig.py
@@ -151,7 +151,10 @@ class TestStringMethods(unittest.TestCase):
     def testValidConfigs(self):
         from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import (
             dictFromChainName,)
-        chain_names = ('HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20',)
+
+        chain_names = (
+            'HLT_j0_fbdjnosharedSEP10etSEP20etSEP34massSEP50fbet_L1J20',)
+        
         wid = max(len(c) for c in chain_names)
         for chain_name in chain_names:
             chain_dict = dictFromChainName(chain_name)
diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/chainDict2jetLabel.py b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/chainDict2jetLabel.py
index f4e4451bbe9384ed8d24cf39c8658a31606a971c..d06990e10133342deff7bbfb5c37477b4326b2b6 100644
--- a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/chainDict2jetLabel.py
+++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/chainDict2jetLabel.py
@@ -95,45 +95,44 @@ def _cuts_from_momCuts(momCuts):
     return ''
 
 
-def _make_vbenf_label(chain_parts, leg_label):
+def _make_fbdjnoshared_label(chain_parts, leg_label):
     """Marshal information from the selected chainParts to create a
-    vbenf label. Use a Reducer for elimination of unusable jets
+    fbdjnoshared (forward-backward and dijet, no jet sharing) label. 
     """
 
-    # toy label for development: run simple and dijet independently.
-    # simple makes Et cuts on two jets. Independently (sharing possible)
-    # of jets choosean by simple,  the dijet
-    # scenario requires a dijet of mass > 900, and opening angle in phi > 2.6
-
     assert len(chain_parts) == 1
     
     scenario = chain_parts[0]['hypoScenario']
-    assert scenario.startswith('vbenf')
+    assert scenario.startswith('f')
     args = _args_from_scenario(scenario)
-    if not args:
-        return 'all([]simple([(50et)(70et)])dijet([(900djmass, 26djdphi)] all[], all[])))'        
+
+    # arg res tuples constain a regex, and a counter
+    # to count the number of matches.
     arg_res = [
-        re.compile(r'(?P<lo>\d*)(?P<key>fbet)(?P<hi>\d*)'),
-        re.compile(r'(?P<lo>\d*)(?P<key>mass)(?P<hi>\d*)'),
-        re.compile(r'(?P<lo>\d*)(?P<key>et)(?P<hi>\d*)'),
+        [re.compile(r'(?P<lo>\d*)(?P<key>fbet)(?P<hi>\d*)'), 0],
+        [re.compile(r'(?P<lo>\d*)(?P<key>mass)(?P<hi>\d*)'), 0],
+        [re.compile(r'(?P<lo>\d*)(?P<key>et)(?P<hi>\d*)'), 0],
     ]
 
     defaults = {
-        'et': ('101', 'inf'),
-        'mass': ('800', 'inf'),
-        'fbet': ('501', 'inf'),
+        'et0': ('101', 'inf'),
+        'et1': ('103', 'inf'),
+        'mass0': ('800', 'inf'),
+        'fbet0': ('501', 'inf'),
     }
 
     argvals = {}
+    assert len(args) == len(arg_res) + 1  # +1 because et occurs twice.
     while args:
-        assert len(args) == len(arg_res)
         arg = args.pop()
-        for r in arg_res:
-            m = r.match(arg)
+        for ar  in arg_res:
+            regx = ar[0]
+            occurence=ar[1]  # no iof time this argument is used eg et used 2x
+            m = regx.match(arg)
             if m is not None:
-                arg_res.remove(r)
                 gd = m.groupdict()
-                key = gd['key']
+                key = gd['key'] + str(occurence)
+                ar[1] += 1  # bump the occurrence cout
                 try:
                     lo = float(gd['lo'])
                 except ValueError:
@@ -145,24 +144,24 @@ def _make_vbenf_label(chain_parts, leg_label):
                     hi = defaults[key][1]
                 argvals[key+'hi'] =  hi
 
-    assert len(args) == len(arg_res)
     assert len(args) == 0
 
     argvals['leg_label'] = leg_label
+
     return """
     all
     (
       []
       simple
       (
-        [(%(fbetlo).0fet, 500neta, leg000)(%(fbetlo).0fet, peta500, %(leg_label)s)]
+        [(%(fbet0lo).0fet, 500neta, leg000)(%(fbet0lo).0fet, peta500, %(leg_label)s)]
       )
       dijet
       (
-        [(%(masslo).0fdjmass, 26djdphi)]
+        [(%(mass0lo).0fdjmass, 26djdphi)]
         simple
         (
-          [(10et, 0eta320, leg000)(20et, 0eta320, %(leg_label)s)]
+          [(%(et0lo).0fet, 0eta320, leg000)(%(et1lo).0fet, 0eta320, %(leg_label)s)]
         )
       )
     )""" % argvals
@@ -340,9 +339,9 @@ def chainDict2jetLabel(chain_dict):
     router = {
         'simple': _make_simple_label,
         'agg':   _make_agg_label,
-        'vbenf': _make_vbenf_label,
         'dijet': _make_dijet_label,
         'fbdjshared': _make_fbdjshared_label,
+        'fbdjnoshared': _make_fbdjnoshared_label,
     }
 
     # chain_part - scenario association
diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/testChainDictMaker.py b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/testChainDictMaker.py
index ac2837ade4f77a1f58474c5f5127216df2df723a..9e37cfaa47b5ce3ffc9226f899391b5c4043a94a 100644
--- a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/testChainDictMaker.py
+++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/testChainDictMaker.py
@@ -44,10 +44,6 @@ def testChainDictMaker():
                   l1SeedThresholds=['FSNOSEED']*3,
                   groups=MultiJetGroup),
 
-        ChainProp(name='HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20',
-                  l1SeedThresholds=['FSNOSEED'],
-                  groups=MultiJetGroup),
-
         ChainProp(name='HLT_10j40_L1J15',
                   l1SeedThresholds=['FSNOSEED'], groups=MultiJetGroup),
 
@@ -55,8 +51,9 @@ def testChainDictMaker():
                   groups=SingleJetGroup),
 
          ChainProp(name='HLT_j0_fbdjshared_L1J20', groups=SingleJetGroup),
-
+        
         ChainProp(name='HLT_j40_j0_aggSEP50htSEP10etSEP0eta320_L1J20',l1SeedThresholds=['FSNOSEED']*2, groups=MultiJetGroup),
+        ChainProp(name='HLT_j0_fbdjnosharedSEP10etSEP20etSEP34massSEP50fbet_L1J20', groups=SingleJetGroup),
     ]
 
     result = []
diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/test_cases.py b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/test_cases.py
index 65ac32fc280af6f27d4170903559dd467554dde6..20946219824c9a31f36d3352998e4cda66e95100 100644
--- a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/test_cases.py
+++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/test_cases.py
@@ -2,133 +2,24 @@
 
 from __future__ import print_function
 
+# condition names are names of leaf node, or combining nodes
+# existing condition names 6/1/2021:
+# simple
+# dijet
+# agg
+# all
+
 test_strings = [
     'simple([(38et, 0eta320)])',
     'simple([(38et, 0eta320)(40et, 0eta320)])',
     'simple([(38et, 0eta320, 011jvt)])',
-    'or([] simple([(10et)]) simple([(20et)(40et)]))',
-    'and([] simple([(10et)]) simple([(20et)]))',
-    'not([] simple([(10et)]))',
-    'not([] and([] simple([(40et, 0eta320)]) simple([(100et, 0eta320)])))',
-    'or([] not([] simple([(40et, 0eta320)])) not([] simple([(100et, 0eta320)])))',
-    'or([] and([] simple([(40et, 0eta320)]) simple([(40et, 0eta320)])) not([] simple([(100et, 0eta320)])))',
-
-    'and([] simple([(50et)(70et)]) dijet([(900djmass, 26djdphi)]))',
-    'and([]simple([(50et)(70et)])combgen([]dijet([(900djmass,26djdphi)]) simple([(10et)(20et)])))',
-    'and([]simple([(81et)(81et)])combgen([(50et, eta100)]dijet([(26djdphi)])))',
     'simple([(70et,0eta240)(70et,0eta240)(70et,0eta240)(70et,0eta240)(70et,0eta240)])',
-    'partgen([(20et,0eta320)]simple([(40et,0eta320)(50et,0eta320)])simple([(35et,0eta240)(55et,0eta240)]))',
     'simple([(10et, neta0)(20et, peta)])', # missing low value for eta - take default
     'simple([(100momwidth200)])', # jet moment condition
     
-    # from HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20:
-    'and([]simple([(30et,500neta)(30et,peta500)])combgen([(10et)]dijet([(34djmass,26djdphi)])simple([(10et)(20et)])))',
     'qjet([(34qjmass)])',
-    """partgen([]simple([(neta)(peta)])
-                 combgen([]
-                         qjet([(qjmass)])
-                         partgen([]
-                                 combgen([] 
-                                         dijet([(djmass)])
-                                         simple([(10et)(11et)]))
-                                 combgen([] 
-                                         dijet([(djmass)])
-                                         simple([(12et)(13et)])))))""",
-
-    'and([]simple([(30et,500neta)(30et,peta500)])combgen([(10et)]dijet([(34djmass,26djdphi)])simple([(10et)(20et)])))',
-    'qjet([(34qjmass)])',
-    """partgen([]simple([(neta)(peta)])
-                 combgen([]
-                         qjet([(qjmass)])
-                         partgen([]
-                                 combgen([] 
-                                         dijet([(80djmass90)])
-                                         simple([(84et)(84et)]))
-                                 combgen([] 
-                                         dijet([(81djmass91)])
-                                         simple([(84et)(84et)])))))""",
-
-        """partgen([]
-                 partgen([]
-                         simple([(neta)(peta)])
-                        )             
-                 combgen([]
-                         qjet([(175qjmass177)])
-                         partgen([]
-                                 combgen([] 
-                                         dijet([(79djmass90)])
-                                         simple([(82et)(83et)]))
-                                 combgen([] 
-                                         dijet([(79djmass91)])
-                                         simple([(82et)(83et)])))))""",
-    
-        """partgen([]
-                 partgen([]
-                         simple([(neta, 84et)(peta, 84et)])
-                        )             
-                 combgen([]
-                         qjet([(170qjmass190)])
-                         partgen([]
-                                 combgen([] 
-                                         dijet([(70djmass90)])
-                                         simple([(10et)(11et)]))
-                                 combgen([] 
-                                         dijet([(71djmass91)])
-                                         simple([(12et)(13et)])))))""",
-
-        
-        """partgen([]
-                   combgen([] 
-                           dijet([(djmass90)])
-                           simple([(10et)(11et)]))
-                   combgen([] 
-                           dijet([(79djmass91)])
-                           simple([(12et)(13et)])))""",
-
-            
-        """partgen([]
-                   combgen([] 
-                           dijet([(djmass50)])
-                           simple([(10et)(11et)]))
-                   combgen([] 
-                           dijet([(79djmass101)])
-                           simple([(12et)(13et)])))""",
-
-        
-        """partgen([]
-                 partgen([]
-                         simple([(neta, 50et)(peta, 51et)])
-                        )             
-                 combgen([]
-                         qjet([(300qjmass400)])
-                         partgen([]
-                                 combgen([] 
-                                         dijet([(50djmass200)])
-                                         simple([(10et)(11et)]))
-                                 
-
-                                 combgen([] 
-                                         dijet([(50djmass200)])
-                                         simple([(12et)(13et)]))
-                          )
-                      )
-            )""",
-
-    # use an "And" node for VBENFQ with FB sharing
-        """partgen([]
-                 partgen([]
-                         simple([(neta, 84et)(peta, 84et)])
-                        )             
-                 combgen([]
-                         qjet([(170qjmass190)])
-                         and([]
-                                 combgen([] 
-                                         dijet([(70djmass90)])
-                                         simple([(10et)(11et)]))
-                                 combgen([] 
-                                         dijet([(71djmass91)])
-                                         simple([(12et)(13et)])))))""",
-    # forest
+ 
+    # forest: forward backward jets + dijet sharing
     """simple
     (
         [(50et, 500neta, leg000)(50et, peta500, leg000)]
@@ -140,8 +31,24 @@ test_strings = [
         (
             [(10et, 0eta320, leg000)(20et, 0eta320, leg000)]
         )
-    )"""
-    
+    )""",
+
+    # single tree forward backward jets + dijet no sharing
+    """ all([]
+        simple
+        (
+           [(50et, 500neta, leg000)(50et, peta500, leg000)]
+        )
+        dijet
+        (
+            [(34mass, 26djdphi, leg000)]
+            simple
+            (
+                [(10et, 0eta320, leg000)(20et, 0eta320, leg000)]
+            )
+        )
+    )""",
+
 ]
 
 
diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
index 32bad6f32fc2865cf5fdeac9f0338af5dfdead7c..c05cb494aedbeb696ed4a5a63a9de3c76408ad26 100644
--- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
@@ -1614,20 +1614,20 @@ HLT_j0_aggSEP500htSEP30etSEP0eta320_L1J20:
     0: 1
   stepFeatures:
     0: 5
-HLT_j0_fbdjshared_L1J20:
+HLT_j0_fbdjnosharedSEP10etSEP20etSEP34massSEP50fbet_L1J20:
   eventCount: 7
   stepCounts:
     0: 7
   stepFeatures:
-    0: 179
-HLT_j0_perf_L1J12_EMPTY:
-  eventCount: 0
-HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20:
+    0: 176
+HLT_j0_fbdjshared_L1J20:
   eventCount: 7
   stepCounts:
     0: 7
   stepFeatures:
-    0: 176
+    0: 179
+HLT_j0_perf_L1J12_EMPTY:
+  eventCount: 0
 HLT_j225_subjesgscIS_ftf_bmv2c1040_split_L1J100:
   eventCount: 0
   stepCounts:
diff --git a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
index cb1ca037c665a94377ae1c82c3fe46eedcb92e5a..7ac426fee1f5de2c5881ab2f8da8d99227e3c24f 100644
--- a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref
@@ -754,6 +754,12 @@ HLT_j0_aggSEP1000htSEP30etSEP0eta320_L1J20:
   eventCount: 0
 HLT_j0_aggSEP500htSEP30etSEP0eta320_L1J20:
   eventCount: 0
+HLT_j0_fbdjnosharedSEP10etSEP20etSEP34massSEP50fbet_L1J20:
+  eventCount: 1
+  stepCounts:
+    0: 1
+  stepFeatures:
+    0: 9
 HLT_j0_fbdjshared_L1J20:
   eventCount: 1
   stepCounts:
@@ -766,12 +772,6 @@ HLT_j0_perf_L1J12_EMPTY:
     0: 8
   stepFeatures:
     0: 127
-HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20:
-  eventCount: 1
-  stepCounts:
-    0: 1
-  stepFeatures:
-    0: 9
 HLT_j225_subjesgscIS_ftf_bmv2c1040_split_L1J100:
   eventCount: 0
 HLT_j260_320eta490_L1J20:
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
index e25904294e75834f762a474b64c896149dd2f95b..9a959c437311cab9169f1879e3ab7a2e5b4fa8ea 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
@@ -272,6 +272,7 @@ def setupMenu():
         ChainProp(name='HLT_2j330_a10t_lcw_nojcalib_35smcINF_L1J100', groups=SingleJetGroup),
         ChainProp(name='HLT_j460_a10sd_lcw_nojcalib_L1J100', groups=SingleJetGroup),
         ChainProp(name='HLT_j460_a10sd_pf_nojcalib_ftf_L1J100', groups=SingleJetGroup),
+
         ChainProp(name='HLT_j460_a10sd_cssk_pf_nojcalib_ftf_L1J100', groups=SingleJetGroup),
         ChainProp(name='HLT_j460_a10sd_cssk_pf_nojcalib_ftf_35smcINF_L1J100', groups=SingleJetGroup),
         ChainProp(name='HLT_2j330_a10sd_cssk_pf_nojcalib_ftf_35smcINF_L1J100', groups=SingleJetGroup),
@@ -279,7 +280,7 @@ def setupMenu():
         ChainProp(name='HLT_j460_a10sd_cssk_pf_jes_ftf_35smcINF_L1J100', groups=SingleJetGroup),
         ChainProp(name='HLT_2j330_a10sd_cssk_pf_jes_ftf_35smcINF_L1J100', groups=SingleJetGroup),
 
-        ChainProp(name='HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20', groups=SingleJetGroup),
+        ChainProp(name='HLT_j0_fbdjnosharedSEP10etSEP20etSEP34massSEP50fbet_L1J20', groups=SingleJetGroup),
         ChainProp(name='HLT_j0_fbdjshared_L1J20', groups=SingleJetGroup),
 
         ChainProp(name='HLT_j0_aggSEP1000htSEP30etSEP0eta320_L1J20', groups=SingleJetGroup),
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
index dd4c659eb0e953a7c3ce98a03f97ff599dbd906e..7bef34580843048e9cf09fcaca0f1c50ff903417 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
@@ -134,9 +134,8 @@ JetChainParts = {
     #   other dict contents. If it is not 'simple', then the configuration is 100%
     #   from the hypoScenario specification, and all other hypo entries are ignored.
     'hypoScenario' : ['simple', # Independent selections on individual jets, multiplicity+threshold cuts
-                      'vbenf',  # Test VBF-like chain
-                      'fbdjshared',  # Test VBF-like chain with dijet-fworward/backward sharing
-                      'vbenfSEP30etSEP34mass35SEP50fbet', # Test VBF-like chain with more info
+                      'fbdjshared',  # Forward backward jets + dijet, default parameters, fb and dj can share
+                      'fbdjnosharedSEP10etSEP20etSEP34massSEP50fbet', # f/b jets + dijet, expl. parameters, fb and dj do not share
                       'dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass', # Test dijet mass sel
                       # 'agg' category is for single variable computed by aggregation over single jets
                       'aggSEP1000htSEP30etSEP0eta320', # HT selection with explicit jet et/eta cuts