diff --git a/Event/xAOD/xAODJet/Root/JetContainerInfo.cxx b/Event/xAOD/xAODJet/Root/JetContainerInfo.cxx
index df47bd4e41c80b496ed0ca7e66345bf39265b66b..d514df4210878dc1b855112d335f09ba90287dc4 100644
--- a/Event/xAOD/xAODJet/Root/JetContainerInfo.cxx
+++ b/Event/xAOD/xAODJet/Root/JetContainerInfo.cxx
@@ -89,6 +89,7 @@ namespace xAOD {
       nameToTypemap["PFlow"] =                 PFlow;
       nameToTypemap["LCPFlow"] =               LCPFlow;
       nameToTypemap["EMPFlow"] =               EMPFlow;
+      nameToTypemap["Jet"] =                   Jet;
       nameToTypemap["EMCPFlow"] =              EMCPFlow;
       nameToTypemap["TrackCaloCluster"] =      TrackCaloCluster;
       nameToTypemap["EMTopoOriginSK"] =        EMTopoOriginSK;
diff --git a/Reconstruction/Jet/JetRecConfig/python/JetDefinition.py b/Reconstruction/Jet/JetRecConfig/python/JetDefinition.py
index 774605cbf98fded1ea1d2357fe3a8bb1fff69933..9f60833da7d42b3de0621ea76cf78b8144da5e24 100644
--- a/Reconstruction/Jet/JetRecConfig/python/JetDefinition.py
+++ b/Reconstruction/Jet/JetRecConfig/python/JetDefinition.py
@@ -44,12 +44,18 @@ def buildJetAlgName(finder, mainParam, variableRMassScale=None, variableRMinRadi
     return finder + formatRvalue(mainParam)
 
 # A class that defines the type of object used to build a jet
+# Normally defaults to standard offline input containers, but
+# can be overridden.
 class JetConstit(object):
-    def __init__(self, type, modifiers=[]):
-        self.__basetype = type
+    def __init__(self, objtype, modifiers=[], rawname=None, inputname=None):
+        self.__basetype = objtype
         self.__modifiers = modifiers
+        # Override for unmodified container name
+        self.__rawname = rawname
+        # Override for final container name
+        self.__inputname = inputname
 
-        self.defineLabelAndContainerName()
+        self.defineLabelAndContainerNames()
         pass
 
     def __hash__(self):
@@ -70,7 +76,7 @@ class JetConstit(object):
     @basetype.setter
     def basetype(self,basetype):
         self.__basetype = basetype
-        self.defineLabelAndContainerName()
+        self.defineLabelAndContainerNames()
 
     @property
     def modifiers(self):
@@ -78,19 +84,21 @@ class JetConstit(object):
     @modifiers.setter
     def modifiers(self,modifiers):
         self.__modifiers = modifiers
-        self.defineLabelAndContainerName()
+        self.defineLabelAndContainerNames()
 
-    def defineLabelAndContainerName(self):
+    def defineLabelAndContainerNames(self):
         labelnames = {
             xAODType.CaloCluster:      "Topo",
             xAODType.ParticleFlow:     "EMPFlow",
             xAODType.TrackParticle:    "Track",
             xAODType.TruthParticle:    "Truth",
             xAODType.TrackCaloCluster: "TrackCaloCluster",
-            xAODType.Jet:              "Jets",
+            xAODType.Jet:              "Jet",
             }
 
+        # Need capability to override label?
         self.label = ""
+        self.rawname = ""
         self.inputname = ""
 
         # Truth "modifiers" specify the selection tool config
@@ -99,24 +107,21 @@ class JetConstit(object):
         # Other "modifiers" determine the constit mods e.g.
         # origin correction, PU suppression etc
         # Topoclusters should also specify EM or LC
-        # Jets just specify the jet definition
+        # Jets could specify a filter e.g. pt cut or JVT??
         modstring = ""
         if self.__modifiers:
             for mod in self.__modifiers:
                 # Handle special case of topocluster state
                 if mod in ["EM","LC"]:
                     self.label += mod
-                    self.inputname += mod
                 else:
                     modstring += mod
 
-        if self.__basetype==xAODType.Jet:
-            self.label += labelnames[self.__basetype]
-        else:
-            self.label += labelnames[self.__basetype]
+        self.label += labelnames[self.basetype]
+        if self.basetype!=xAODType.Jet:
             self.label += modstring
-            if self.__basetype==xAODType.TruthParticle:
-                self.label = self.label.replace("NoWZ","WZ")
+        if self.basetype==xAODType.TruthParticle:
+            self.label = self.label.replace("NoWZ","WZ")
 
         containernames = {
             xAODType.CaloCluster:      "TopoClusters",
@@ -126,22 +131,36 @@ class JetConstit(object):
             xAODType.TrackCaloCluster: "TrackCaloClusters",
             xAODType.Jet:              "Jets",
             }
-        defaultaffixes = {
+        # Sometimes the unmodified container name is longer
+        defaultaffixesraw = {
             xAODType.CaloCluster:      "CaloCal",
-            xAODType.ParticleFlow:     "CHS",
-            xAODType.TrackParticle:    "",
-            xAODType.TruthParticle:    "",
+            xAODType.ParticleFlow:     "JetETMiss",
             xAODType.TrackCaloCluster: "CombinedAndNeutral",
-            xAODType.Jet:              "",
+            }
+        # Sometimes the standard contstit container has default mods not in modlist
+        defaultaffixesinput = {
+            xAODType.ParticleFlow:     "CHS",
             }
 
-        if not modstring:
-            modstring = defaultaffixes[self.__basetype]
-        modsfirst = [xAODType.TruthParticle, xAODType.TrackCaloCluster]
-        if self.__basetype in modsfirst:
-            self.inputname += containernames[self.basetype]+modstring
-        else:
-            self.inputname += modstring+containernames[self.basetype]
+        # User-specified override
+        if self.__rawname:
+            self.rawname = self.__rawname
+        else: # Default to standard container
+            if self.basetype in defaultaffixesraw.keys():
+                self.rawname = defaultaffixesraw[self.basetype]
+            self.rawname += containernames[self.basetype]
+
+        # User-specified override
+        if self.__inputname:
+            self.inputname = self.__inputname
+        else: # Default to naming with modifiers if requested, else default container
+            if not modstring and self.basetype in defaultaffixesinput.keys():
+                modstring = defaultaffixesinput[self.basetype]
+            modslast = [xAODType.TruthParticle, xAODType.TrackCaloCluster]
+            if self.basetype in modslast:
+                self.inputname = containernames[self.basetype]+modstring
+            else:
+                self.inputname = modstring+containernames[self.basetype]
 
     pass
 
@@ -179,7 +198,7 @@ class JetDefinition(object):
     def __init__(self, algorithm, radius, inputdef,
                  ptmin=5000., ptminfilter=5000.,
                  ghostdefs=[], modifiers=[],
-                 extrainputs=[], istrigger=False):
+                 extrainputs=[]):
 
         # Should add some type checking here
         # Could use JetContainerInfo conversion
@@ -200,7 +219,6 @@ class JetDefinition(object):
         self.ghostdefs = ghostdefs     # Objects to ghost-associate
         self.modifiers = modifiers     # Tools to modify the jet
         self.extrainputs = extrainputs # Any extra input dependencies
-        self.isTrigger = istrigger
 
         # Should this be a derived class?
         self.grooming = None
diff --git a/Reconstruction/Jet/JetRecConfig/python/JetRecConfig.py b/Reconstruction/Jet/JetRecConfig/python/JetRecConfig.py
index 1d7904371b4a0e661c13f1fb33a2f3c15b30204e..7e9832da72a59adc0360c12d378adfabd570b522 100644
--- a/Reconstruction/Jet/JetRecConfig/python/JetRecConfig.py
+++ b/Reconstruction/Jet/JetRecConfig/python/JetRecConfig.py
@@ -58,13 +58,16 @@ def JetRecCfg(jetdef, configFlags, jetnameprefix="",jetnamesuffix=""):
     # 
     # To facilitate running in serial mode, we also prepare
     # the constituent PseudoJetGetter here (needed for rho)
-    inputcomps, constitpjkey = JetInputCfgAndConstitPJName(deps["inputs"], configFlags, sequenceName=jetsfullname)
+    inputcomps = JetInputCfg(deps["inputs"], configFlags, sequenceName=jetsfullname)
+    constitpjalg = inputcomps.getPrimary()
+    constitpjkey = constitpjalg.PJGetter.OutputContainer
+
     components.merge(inputcomps)
     pjs = [constitpjkey]
 
     # Schedule the ghost PseudoJetGetterAlgs
     for ghostdef in deps["ghosts"]:
-        ghostpjalg = GhostPJGAlg( ghostdef )
+        ghostpjalg = getGhostPJGAlg( ghostdef )
         components.addEventAlgo( ghostpjalg, sequencename )
         ghostpjkey = ghostpjalg.PJGetter.OutputContainer
         pjs.append( ghostpjkey )
@@ -206,7 +209,7 @@ def expandPrereqs(reqtype,prereqs):
 #
 # This includes constituent modifications, track selection, copying of
 # input truth particles and event density calculations
-def JetInputCfgAndConstitPJName(inputdeps, configFlags, sequenceName):
+def JetInputCfg(inputdeps, configFlags, sequenceName):
     jetlog.info("Setting up jet inputs.")
     components = ComponentAccumulator(sequenceName)
 
@@ -230,13 +233,16 @@ def JetInputCfgAndConstitPJName(inputdeps, configFlags, sequenceName):
             # May need to generate constituent modifier sequences to
             # produce the input collection
             import ConstModHelpers
-            constitalg = ConstModHelpers.ConstitModAlg(constit.basetype,constit.modifiers)
-            components.addEventAlgo(constitalg)
+            constitalg = ConstModHelpers.getConstitModAlg(constit)
+            if constitalg:
+                components.addEventAlgo(constitalg)
 
     # Schedule the constituent PseudoJetGetterAlg
-    constitpjalg = ConstitPJGAlg( constit )
+    constitpjalg = getConstitPJGAlg( constit )
     constitpjkey = constitpjalg.PJGetter.OutputContainer
-    components.addEventAlgo( constitpjalg )
+    # Mark the constit PJGAlg as the primary so that the caller
+    # can access the output container name
+    components.addEventAlgo( constitpjalg, primary=True )
 
     # Track selection and vertex association kind of go hand in hand, though it's not
     # completely impossible that one might want one and not the other
@@ -308,7 +314,7 @@ def JetInputCfgAndConstitPJName(inputdeps, configFlags, sequenceName):
                 eventshapealg.EventDensityTool = rhotool
                 components.addEventAlgo(eventshapealg)
 
-    return components, constitpjkey
+    return components
 
 ########################################################################
 # Functions for generating PseudoJetGetters, including determining
@@ -335,7 +341,7 @@ def getGhostPrereqs(ghostdef):
         prereqs = ["input:JetInputTruthParticles"]
     return prereqs
 
-def ConstitPJGAlg(basedef):
+def getConstitPJGAlg(basedef):
     jetlog.debug("Getting PseudoJetAlg for label {0} from {1}".format(basedef.label,basedef.inputname))
     # 
     getter = JetRecConf.PseudoJetGetter("pjg_"+basedef.label,
@@ -352,7 +358,7 @@ def ConstitPJGAlg(basedef):
         )
     return pjgalg
 
-def GhostPJGAlg(ghostdef):
+def getGhostPJGAlg(ghostdef):
     label = "Ghost"+ghostdef.inputtype
     kwargs = {
         "OutputContainer":    "PseudoJet"+label,
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/jetDefs.py b/Trigger/TrigValidation/TrigUpgradeTest/python/jetDefs.py
index 955a91493c2fcbc23b53cedc27732187360680ac..ce5400a81b27ebacf8d667559a659c724fc76fe9 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/python/jetDefs.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/python/jetDefs.py
@@ -18,41 +18,41 @@ def jetAthSequence(ConfigFlags):
     #    dataOrMC = "mc"
     # want to make this automatic.
 
-    jetDefinition = ConfigFlags.jetdefinition
-
-    if jetDefinition=="EMTopoSubJESIS":
-    	(recoSequence, sequenceOut) = jetRecoSequence("Calib:TrigSubJESIS:"+dataOrMC)
-    elif jetDefinition=="EMTopoSubJES":
-    	(recoSequence, sequenceOut) = jetRecoSequence("Calib:TrigSubJES:"+dataOrMC)
-    elif jetDefinition=="EMTopoNoCalib":
-    	(recoSequence, sequenceOut) = jetRecoSequence("")
-    elif jetDefinition=="LCWSubJESIS": # call for LC sequence
-    	(recoSequence, sequenceOut) = jetRecoSequence("Calib:TrigSubJESIS:"+dataOrMC, jetConstitName = "LC")
-    elif jetDefinition=="a10LCWSubJESJMS":
-    	#(recoSequence, sequenceOut) = jetRecoSequence("Calib:TrigSubJESJMS:"+dataOrMC, jetAlgoName = 'a10', jetConstitName = "LC")
-    	(recoSequence, sequenceOut) = jetRecoSequence("", jetAlgoName = 'a10', jetConstitName = "LC")
-    elif jetDefinition=="a10rSubJESIS":
-    	(recoSequence, sequenceOut) = jetRecoSequence("Calib:TrigSubJESIS:"+dataOrMC, jetAlgoName = 'a10r')
-
-    JetAthSequence =  seqAND("jetAthSequence_"+jetDefinition,[InputMakerAlg, recoSequence ])
+    jetDefString = ConfigFlags.jetdefinition
+    jetDefString += "_"+dataOrMC
+
+   
+    (recoSequence, sequenceOut) = jetRecoSequence( jetDefString )
+
+    JetAthSequence =  seqAND("jetAthSequence_"+jetDefString,[InputMakerAlg, recoSequence ])
     return (JetAthSequence, InputMakerAlg, sequenceOut)
 
     
-def jetRecoSequence( calibString, jetConstitName = 'EM', jetAlgoName = 'a4', RoIs = 'FSJETRoI'):
+def jetRecoSequence(  jetDefString , RoIs = 'FSJETRoI'):
 
+    dataType = "data"
+    if jetDefString.endswith("mc"):
+        dataType = "mc"
+
+    # construct calibration key word.
     calibSeq = ""
-    dataType = "data" # FIXME
-    if calibString:
-        calibSeq = calibString.split(":")[1]
-        dataType = calibString.split(":")[2]
+    if "subjesis" in jetDefString:
+        calibSeq += "SubJESIS"
+    elif "subjes" in jetDefString:
+        calibSeq += "SubJES"
+    if calibSeq: calibSeq = "Trig"+calibSeq
 
     radius = 0.4
-    if jetAlgoName == 'a10':
+    if 'a10_' in jetDefString:
         radius = 1.0
+        if calibSeq:
+            calibSeq += "JMS"
 
     doLC=False
-    if jetConstitName=="LC": 
+    jetConstitName = "EM"
+    if "lcw" in jetDefString: 
         doLC=True
+        jetConstitName = "LC"
 
     cellMakerAlgo = _getHLTCellMakerAlgoForJets("cellMaker"+jetConstitName, RoIs, outputEDM='CaloCells'+jetConstitName, OutputLevel=ERROR) 
     topoClusterMakerAlgo = _getHLTTopoClusterMakerAlgoForJets( "topoClusterMaker"+jetConstitName, inputEDM=cellMakerAlgo.CellsName, doLC=doLC, OutputLevel=ERROR)
@@ -62,19 +62,18 @@ def jetRecoSequence( calibString, jetConstitName = 'EM', jetAlgoName = 'a4', RoI
 
     from JetRecConfig.JetDefinition import JetConstit, JetDefinition, xAODType, JetModifier
   
-    #hardcoded jet collection for now 
     # chosen jet collection
     jetsFullName = "TrigAntiKt"+jetConstitName+calibSeq
-    trigMinPt = 7e3 # FIXME : two different values for ptminfilter?
     trigJetConstit = JetConstit( xAODType.CaloCluster, [jetConstitName]) # 'EM' or 'LC' for trigger jets
+    trigJetConstit.istrigger = False
     trigJetConstit.ptmin = 2e3
     #trigJetConstit.ptminfilter = 15e3
-    trigJetConstit.ptminfilter = trigMinPt
-    trigJetDef = JetDefinition( "AntiKt", radius, trigJetConstit, ptmin=trigMinPt,ptminfilter=trigMinPt)
+    trigJetConstit.ptminfilter = 7e3
+    trigJetDef = JetDefinition( "AntiKt", radius, trigJetConstit)#, ptmin=trigMinPt,ptminfilter=trigMinPt)
     #trigJetDef.modifiers = ["Sort"] + clustermods 
     #if calibString:
     #    trigJetDef.modifiers= [calibString] + trigJetDef.modifiers
-    trigJetDef.isTrigger = True #FIXME : no longer needed since configure CalibTool here?
+    #trigJetDef.isTrigger = True #FIXME : no longer needed since configure CalibTool here?
 
     from JetRecConfig import JetRecConfig
     #deps = JetRecConfig.resolveDependencies( trigJetDef )
@@ -83,7 +82,7 @@ def jetRecoSequence( calibString, jetConstitName = 'EM', jetAlgoName = 'a4', RoI
     modList += [ (JetModifier("JetSorter","jetsort"), '') ]
     #deps_mod_tmp = [ modpair for modpair in deps["mods"] if not calibSeq in modpair[1] ]
     #deps["mods"] = deps_mod_tmp
-    if calibString:
+    if calibSeq:
    	 from JetCalibTools import JetCalibToolsConfig
    	 jetCalibTool = JetCalibToolsConfig.getJetCalibTool( trigJetDef.basename, calibSeq, dataType )
    	 modList += [(JetModifier("JetCalibrationTool", jetCalibTool.name()), calibSeq+':'+dataType)]
@@ -93,8 +92,10 @@ def jetRecoSequence( calibString, jetConstitName = 'EM', jetAlgoName = 'a4', RoI
     print("modList: ", modList)
 
     trigJetConstit.rawname = caloclusters
+    trigJetConstit.inputname = jetConstitName+trigJetConstit.inputname
     print("trigJetConstit.rawname = ", trigJetConstit.rawname )
     print("trigJetConstit.inputname = ", trigJetConstit.inputname )
+    print("trigJetConstit.label = ", trigJetConstit.label )
     constitAlg = _getConstitAlg( trigJetConstit )
     jetRecoSequence = parOR( "JetRecSeq_"+jetsFullName, [constitAlg])
 
@@ -123,18 +124,22 @@ def jetRecoSequence( calibString, jetConstitName = 'EM', jetAlgoName = 'a4', RoI
 
     jetRecoSequence += jetRecAlg
 
-    if jetAlgoName == 'a10r':
+    # check if asked for reclustering
+    if 'a10r' in jetDefString:
 
         a10rJetsFullName = "a10rJets"
         a10rJetConstit = JetConstit( xAODType.Jet, [])
         trigAntiKt10rJetDef = JetDefinition( "AntiKt", 1.0, a10rJetConstit)
 
         a10rmodList= []
-        a10rJetConstit.rawname = jetsFullName 
+        a10rJetConstit.inputname = jetsFullName 
         print("a10rJetConstit.rawname = ", a10rJetConstit.rawname )
-        print("a10rconstitPJAlg.inputname = ", a10rJetConstit.inputname )
+        print("a10rconstit.inputname = ", a10rJetConstit.inputname )
+        print("a10rconstit.label = ", a10rJetConstit.label )
+
         a10rconstitPJAlg = _getConstitPJGAlg( a10rJetConstit )
         a10rconstitPJKey = a10rconstitPJAlg.PJGetter.OutputContainer
+        jetRecoSequence += a10rconstitPJAlg
 
         print "INFO: output psj container for reclustered jets = ", a10rconstitPJKey
 
@@ -142,16 +147,13 @@ def jetRecoSequence( calibString, jetConstitName = 'EM', jetAlgoName = 'a4', RoI
         a10rjetRecAlg = JetRecConfig.getJetAlgorithm(a10rJetsFullName, trigAntiKt10rJetDef, a10rpjs, a10rmodList)
 
         jetRecoSequence += a10rjetRecAlg
-        #jetsFullName = reclusteredJetsFullName
+        jetsFullName = a10rJetsFullName
 
     sequenceOut = jetsFullName
 
     caloMakerSequence += jetRecoSequence
-    #jetRecoSequence += caloMakerSequence
 
-    #jetRecoFullSequence = seqAND("fullJetSeq_"+jetsFullName, [caloMakerSequence, jetRecoSequence]) 
     jetRecoFullSequence = caloMakerSequence
-    #jetRecoFullSequence = jetRecoSequence
 
     return (jetRecoFullSequence,sequenceOut)
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/jetMenuDefs.py b/Trigger/TrigValidation/TrigUpgradeTest/python/jetMenuDefs.py
index d40992fbe0fa142a4a7e8f8730eaf4094433bf4f..f1ca1e23391aa4c30b602b91d306e444b452155f 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/python/jetMenuDefs.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/python/jetMenuDefs.py
@@ -4,10 +4,10 @@
 from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import RecoFragmentsPool, MenuSequence
 from AthenaConfiguration.AllConfigFlags import ConfigFlags
     
-def jetMenuSequence(jetdef, hypoName):
+def jetMenuSequence(jet_def_string, hypoName):
     """ Function to create the jet Menu Sequence"""
    
-    ConfigFlags.jetdefinition=jetdef
+    ConfigFlags.jetdefinition=jet_def_string
     ## RoIs = 'FSJETRoI'
     #reco sequence
     from TrigUpgradeTest.jetDefs import jetAthSequence
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu.py b/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu.py
index 9bfde6515faa34b4f71911aa123f81aa0c453d96..7bfd1e7394c5318db0fa97fc8235b1ac0c4764a3 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu.py
@@ -125,30 +125,34 @@ if opt.doMuonSlice == True:
 if opt.doJetSlice == True:
     from TrigUpgradeTest.jetMenuDefs import jetMenuSequence
 
-    jetSeq1 = jetMenuSequence("EMTopoSubJES", "TrigJetHypoAlgMT1")
-    step1=ChainStep("Step1_jet", [jetSeq1])
-    jetSeq2 = jetMenuSequence("EMTopoSubJESIS", "TrigJetHypoAlgMT2")
-    step2=ChainStep("Step2_jet", [jetSeq2])
-    jetSeq3 = jetMenuSequence("EMTopoNoCalib", "TrigJetHypoAlgMT3")
-    step3=ChainStep("Step3_jet", [jetSeq3])
-    jetSeq4 = jetMenuSequence("LCWSubJESIS", "TrigJetHypoAlgMT4")
-    step4=ChainStep("Step4_jet", [jetSeq4])
-    jetSeq5 = jetMenuSequence("a10LCWSubJESJMS", "TrigJetHypoAlgMT5")
-    step5=ChainStep("Step5_jet", [jetSeq5])
-    
+    jetSeq_a4_emtopo = jetMenuSequence("a4_emtopo_subjesis", "TrigJetHypoAlgMT_a4_emtopo")
+    step_a4_emtopo =ChainStep("Step_jet_a4_emtopo", [jetSeq_a4_emtopo])
+
+    jetSeq_a4_emtopo_subjes = jetMenuSequence("a4_emtopo_subjes", "TrigJetHypoAlgMT_a4_emtopo_subjes")
+    step_a4_emtopo_subjes = ChainStep("Step_jet_a4_emtopo_subjes", [jetSeq_a4_emtopo_subjes])
+
+    jetSeq_a4_emtopo_nocalib = jetMenuSequence("a4_emtopo_nocalib", "TrigJetHypoAlgMT_a4_emtopo_nocalib")
+    step_a4_emtopo_nocalib=ChainStep("Step_jet_a4_emtopo_nocalib", [jetSeq_a4_emtopo_nocalib])
 
-    # don't forget the commas -.-
-	# damn commas
-	   # raaaargh
+    jetSeq_a4_lcw = jetMenuSequence("a4_lcw_subjesis", "TrigJetHypoAlgMT_a4_lcw")
+    step_a4_lcw=ChainStep("Step_jet_a4_lcw", [jetSeq_a4_lcw])
+
+    #jetSeq_a10_lcw_subjes = jetMenuSequence("a10_lcw_subjesjms", "TrigJetHypoAlgMT_a10_lcw_subjes")
+    #step_a10_lcw_subjes=ChainStep("Step_jet_a10_lcw_subjes", [jetSeq_a10_lcw_subjes])
+
+    jetSeq_a10r = jetMenuSequence("a10r_emtopo_subjesis", "TrigJetHypoAlgMT_a10r")
+    step_a10r=ChainStep("Step_jet_a10r", [jetSeq_a10r])
+    
     jetChains  = [
-        #Chain(name='HLT_j85',  Seed="L1_J20",  ChainSteps=[step1]  ),
-        Chain(name='HLT_j45', Seed="L1_J20",  ChainSteps=[step1]  ),
-        #Chain(name='HLT_j45_0eta240',  Seed="L1_J20",  ChainSteps=[step1]  ),
-        Chain(name='HLT_j45_subjes', Seed="L1_J20",  ChainSteps=[step2]  ),
-        Chain(name='HLT_j45_nojcalib', Seed="L1_J20",  ChainSteps=[step3]  ),
-        Chain(name='HLT_j45_lcw', Seed="L1_J20",  ChainSteps=[step4]  ),
-        Chain(name='HLT_5j70_0eta240',  Seed="L1_J20",  ChainSteps=[step1]  ), # 5j70_0eta240_L14J15
-        Chain(name='HLT_j100_a10_lcw_subjes', Seed="L1_J20",  ChainSteps=[step5]  ),
+        Chain(name='HLT_j85',  Seed="L1_J20",  ChainSteps=[step_a4_emtopo]  ),
+        Chain(name='HLT_j45', Seed="L1_J20",  ChainSteps=[step_a4_emtopo]  ),
+        #Chain(name='HLT_j45_0eta240',  Seed="L1_J20",  ChainSteps=[step_a4_default]  ),
+        Chain(name='HLT_j45_subjes', Seed="L1_J20",  ChainSteps=[step_a4_emtopo_subjes]  ),
+        Chain(name='HLT_j45_nojcalib', Seed="L1_J20",  ChainSteps=[step_a4_emtopo_nocalib]  ),
+        Chain(name='HLT_j45_lcw', Seed="L1_J20",  ChainSteps=[step_a4_lcw]  ),
+        #Chain(name='HLT_5j70_0eta240',  Seed="L1_J20",  ChainSteps=[step_a4_emtopo]  ), # 5j70_0eta240_L14J15
+        #Chain(name='HLT_j100_a10_lcw_subjes', Seed="L1_J20",  ChainSteps=[step_a10_lcw]  ),
+        Chain(name='HLT_j100_a10r', Seed="L1_J20",  ChainSteps=[step_a10r]  ),
         ]
 
     testChains += jetChains
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
index 375eaf9a72821a96812d591f11e92a6415586203..7de3d1034187f37088aaeec40a78080bc3ae09a0 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py
@@ -107,7 +107,7 @@ JetChainParts = {
     'trigType'     : ['j'],
     'extra'        : [],
     'cleaning'     : ['noCleaning',],
-    'recoAlg'      : ['a4', 'a10'],
+    'recoAlg'      : ['a4', 'a10', 'a10r'],
     'dataType'     : ['tc'],
     'calib'        : ['em', 'lcw'],
     'jetCalib'     : ['subjes', 'subjesIS', 'nojcalib'],