diff --git a/InnerDetector/InDetDigitization/BCM_Digitization/test/BCM_DigitizationConfigNew_test.py b/InnerDetector/InDetDigitization/BCM_Digitization/test/BCM_DigitizationConfigNew_test.py
deleted file mode 100755
index 17b3469e2e681b9cf29b9114c6cb5be07ab71030..0000000000000000000000000000000000000000
--- a/InnerDetector/InDetDigitization/BCM_Digitization/test/BCM_DigitizationConfigNew_test.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-"""Run tests on BCM_DigitizationConfigNew.py
-
-Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
-"""
-import os
-from AthenaCommon.Logging import log
-from AthenaCommon.Constants import DEBUG
-from AthenaCommon.Configurable import Configurable
-from AthenaConfiguration.AllConfigFlags import ConfigFlags
-from AthenaConfiguration.MainServicesConfig import MainServicesSerialCfg
-from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
-from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
-from BCM_Digitization.BCM_DigitizationConfigFlags import createBCMCfgFlags
-from BCM_Digitization.BCM_DigitizationConfigNew import BCM_DigitizationCfg
-from TrigUpgradeTest.InDetConfig import InDetGMConfig # FIXME This module would ideally be located somewhere else
-# Set up logging and new style config
-log.setLevel(DEBUG)
-Configurable.configurableRun3Behavior = True
-# Provide input
-dataDir = "/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art"
-inputDir = os.environ.get("ATLAS_REFERENCE_DATA", dataDir)
-fileDir = "/Tier0ChainTests/valid1.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.simul.HITS.e4993_s3091/HITS.10504490._000425.pool.root.1"
-ConfigFlags.Input.Files = [inputDir + fileDir]
-# Specify output
-ConfigFlags.Output.RDOFileName = "myRDO.pool.root"
-ConfigFlags.lock()
-# Construct ComponentAccumulator
-cfg = MainServicesSerialCfg()
-cfg.merge(PoolReadCfg(ConfigFlags))
-cfg.merge(InDetGMConfig(ConfigFlags)) # FIXME This sets up the whole ID geometry would be nicer just to set up min required for BCM
-# Use BCM tools
-BCMflags = createBCMCfgFlags()
-acc = BCM_DigitizationCfg(BCMflags)
-cfg.merge(acc)
-# Add configuration to write HITS pool file
-outConfig = OutputStreamCfg(ConfigFlags, "RDO",
-    ItemList=["InDetSimDataCollection#*", "BCM_RDO_Container#*"])
-cfg.merge(outConfig)
-cfg.getService("StoreGateSvc").Dump=True
-cfg.printConfig(withDetails=True)
-ConfigFlags.dump()
-# Execute and finish
-cfg.run(maxEvents=3)
-
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/HLTSignatureConfig.py b/Trigger/TrigValidation/TrigUpgradeTest/python/HLTSignatureConfig.py
index d291d5c2cde2c7a250eab123222df175ac8a22f6..e3306f1bb7805a1f64cfa538d716793983cc82ba 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/python/HLTSignatureConfig.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/python/HLTSignatureConfig.py
@@ -4,8 +4,8 @@ from TrigUpgradeTest.TrigUpgradeTestConf import HLTTest__TestHypoTool
 from TrigUpgradeTest.TrigUpgradeTestConf import HLTTest__TestComboHypoAlg
 from AthenaCommon.Constants import VERBOSE,DEBUG
 from TrigUpgradeTest.HLTSignatureHypoTools import *
-
-
+from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import RecoFragmentsPool, MenuSequence
+from AthenaCommon.CFElements import parOR, seqAND, stepSeq
 
 
 UseThisLinkName="initialRoI"
@@ -24,9 +24,7 @@ def InputMakerForFeatureAlg(name):
 # - declare all the RecoAlg and the HypoAlg -> create the Sequence
 # - creates the InputMaker, without the inputs
 
-from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import MenuSequence
-from AthenaCommon.CFElements import parOR, seqAND, stepSeq
-
+flags = ""
 
 #### muon signatures
 #####################
@@ -41,40 +39,43 @@ def MuHypo(name):
     return HLTTest__TestHypoAlg(name=name, LinkName=UseThisLinkName, OutputLevel = DEBUG)
 
 
+#class EmuStepTestNaming():
+    
 
-muIM= InputMakerForInitialRoIAlg(name="Step1MuInputMaker")
-muIM.Output='muIM_out'
-
-#print muIM
-muAlg = muMSRecAlg(name="muMSRecAlg", FileName="msmu.dat")
-muAlg.Output='muAlg_out'
-
-muHypo = MuHypo(name="Step1MuHypo")
-muAlg.Input  = muIM.Output
-muHypo.Input = muAlg.Output
-
-mustep1_sequence = seqAND("muSeqStep1", [muIM, muAlg])
-
-
-
     
-def muStep1Sequence():
+def muStep1Sequence(flags):
+    muIM= InputMakerForInitialRoIAlg(name="Step1MuInputMaker")
+    muIM.Output='muIM_out'
+
+    #print muIM
+    muAlg = muMSRecAlg(name="muMSRecAlg", FileName="msmu.dat")
+    muAlg.Output='muAlg_out'
+    muAlg.Input  = muIM.Output
+    mustep1_sequence = seqAND("muSeqStep1", [muIM, muAlg])
+    return (mustep1_sequence, muIM, muAlg.Output)
+    
+def muStep1MenuSequence():
+    (mustep1_sequence, muIM, seqOut) = RecoFragmentsPool.retrieve(muStep1Sequence, flags)
+    muHypo = MuHypo(name="Step1MuHypo")
+    muHypo.Input = seqOut
     return MenuSequence(Sequence=mustep1_sequence, Maker=muIM, Hypo=muHypo, HypoToolGen=MuTestHypoTool)
 
 # mu step2
-muIM2= InputMakerForFeatureAlg(name="Step2MuInputMaker")
-muIM2.Output='muIM2_out'
-
-muAlg2 = muMSRecAlg(name="muMSRecAlg2", FileName="msmu.dat")
-muAlg2.Output='muAlg2_out'
+def muStep2Sequence(flags):
+    muIM2= InputMakerForFeatureAlg(name="Step2MuInputMaker")
+    muIM2.Output='muIM2_out'
 
-muHypo2 = MuHypo(name="Step2MuHypo")
-muAlg2.Input  = muIM2.Output
-muHypo2.Input = muAlg2.Output
+    muAlg2 = muMSRecAlg(name="muMSRecAlg2", FileName="msmu.dat")
+    muAlg2.Output='muAlg2_out'
 
-mustep2_sequence = seqAND("muSeqStep2", [muIM2, muAlg2])
-
-def muStep2Sequence():
+    muAlg2.Input  = muIM2.Output
+    mustep2_sequence = seqAND("muSeqStep2", [muIM2, muAlg2])
+    return (mustep2_sequence, muIM2, muAlg2.Output)
+    
+def muStep2MenuSequence():
+    (mustep2_sequence, muIM2, seqOut) = RecoFragmentsPool.retrieve(muStep2Sequence, flags)
+    muHypo2 = MuHypo(name="Step2MuHypo")
+    muHypo2.Input =seqOut
     return MenuSequence( Sequence=mustep2_sequence, Maker=muIM2, Hypo=muHypo2, HypoToolGen=MuTest2HypoTool)
 
 
@@ -84,6 +85,7 @@ def muStep2Sequence():
 
 
 
+
 def CaloClustering(name,  FileName="noreco.dat"):
     return HLTTest__TestRecoAlg(name=name, FileName=FileName, OutputLevel = DEBUG)
 
@@ -92,44 +94,46 @@ def ElGamHypo(name):
 
 
 
+def elStep1Sequence(flags):
+    elIM= InputMakerForInitialRoIAlg(name="Step1ElInputMaker")
+    elIM.Output='elIM_out'
 
-elIM= InputMakerForInitialRoIAlg(name="Step1ElInputMaker")
-elIM.Output='elIM_out'
-
-elAlg = CaloClustering(name="CaloClustering", FileName="emclusters.dat")
-elAlg.Output='elAlg_out'
-
-elHypo = ElGamHypo(name="Step1ElHypo")
-elAlg.Input  = elIM.Output
-elHypo.Input = elAlg.Output
-
-elstep1_sequence = seqAND("elSeqStep1", [elIM, elAlg])
-
+    elAlg = CaloClustering(name="CaloClustering", FileName="emclusters.dat")
+    elAlg.Output='elAlg_out'
+    elAlg.Input  = elIM.Output
+    elstep1_sequence = seqAND("elSeqStep1", [elIM, elAlg])    
+    return (elstep1_sequence, elIM, elAlg.Output)
 
-def elStep1Sequence():
+def elStep1MenuSequence():
+#    l2CaloReco = RecoFragmentsPool.retrieve(l2CaloRecoCfg, flags)
+    (elstep1_sequence, elIM, seqOut) = RecoFragmentsPool.retrieve(elStep1Sequence, flags)
+    elHypo = ElGamHypo(name="Step1ElHypo")
+    elHypo.Input = seqOut
     return MenuSequence( Maker=elIM, Sequence=elstep1_sequence,  Hypo=elHypo, HypoToolGen=ElTestHypoTool)
 
 
-gammHypo = ElGamHypo(name="Step1GamHypo")
-gammHypo.Input = elAlg.Output
-
-def gammStep1Sequence():
+def gammStep1MenuSequence():
+    (elstep1_sequence, elIM, seqOut) = RecoFragmentsPool.retrieve(elStep1Sequence, flags)
+    #(recoSeq, seqOut) = elStep1Sequence()
+    gammHypo = ElGamHypo(name="Step1GamHypo")
+    gammHypo.Input = seqOut
     return MenuSequence( Maker=elIM, Sequence=elstep1_sequence,  Hypo=gammHypo, HypoToolGen=GammTestHypoTool)
 
 
 #step2
-elIM2= InputMakerForFeatureAlg(name="Step2ElInputMaker")
-elIM2.Output='elIM2_out'
-
-elAlg2 = CaloClustering(name="CaloClustering2", FileName="emclusters.dat")
-elAlg2.Output='elAlg2_out'
-
-elHypo2 = ElGamHypo(name="Step2ElHypo")
-elAlg2.Input  = elIM2.Output
-elHypo2.Input = elAlg2.Output
-
-elstep2_sequence = seqAND("elSeqStep2", [elIM2, elAlg2])
-
-def elStep2Sequence():
+def elStep2Sequence(flags):
+    elIM2= InputMakerForFeatureAlg(name="Step2ElInputMaker")
+    elIM2.Output='elIM2_out'
+
+    elAlg2 = CaloClustering(name="CaloClustering2", FileName="emclusters.dat")
+    elAlg2.Output='elAlg2_out'
+    elAlg2.Input  = elIM2.Output
+    elstep2_sequence = seqAND("elSeqStep2", [elIM2, elAlg2])
+    return (elstep2_sequence, elIM2,elAlg2.Output)
+    
+def elStep2MenuSequence():
+    (elstep2_sequence, elIM2, seqOut) = RecoFragmentsPool.retrieve(elStep2Sequence,flags)
+    elHypo2 = ElGamHypo(name="Step2ElHypo")
+    elHypo2.Input = seqOut    
     return MenuSequence( Maker=elIM2, Sequence=elstep2_sequence, Hypo=elHypo2, HypoToolGen=ElTestHypoTool)
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/EmuStepProcessingTest.py b/Trigger/TrigValidation/TrigUpgradeTest/share/EmuStepProcessingTest.py
index ba648d860f1ae9c45264f5426866cbbb94dd24b7..d5fc886a21f09167f7db1537259ace61a1005bcb 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/EmuStepProcessingTest.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/EmuStepProcessingTest.py
@@ -93,15 +93,15 @@ EnabledElComboChains = []
 
 # muon chains
 if doMuon:
-    from TrigUpgradeTest.HLTSignatureConfig import muStep1Sequence, muStep2Sequence
-    muStep1 = muStep1Sequence()
-    muStep2 = muStep2Sequence()
+    from TrigUpgradeTest.HLTSignatureConfig import muStep1MenuSequence, muStep2MenuSequence
+    muStep1 = muStep1MenuSequence()
+    muStep2 = muStep2MenuSequence()
 
 
     MuChains  = [
-        Chain(name='HLT_mu20', Seed="L1_MU10",   ChainSteps=[ChainStep("Step1_mu", [muStep1]) , ChainStep("Step2_mu", [muStep2] )]) ,
+        Chain(name='HLT_mu20', Seed="L1_MU10",      ChainSteps=[ChainStep("Step1_mu", [muStep1]) , ChainStep("Step2_mu", [muStep2] )]) ,
         Chain(name='HLT_mu81step', Seed="L1_MU6",   ChainSteps=[ChainStep("Step1_mu", [muStep1]) ]) ,
-        Chain(name='HLT_mu8',  Seed="L1_MU6",    ChainSteps=[ChainStep("Step1_mu", [muStep1]) , ChainStep("Step2_mu",  [muStep2] ) ] )
+        Chain(name='HLT_mu8',  Seed="L1_MU6",       ChainSteps=[ChainStep("Step1_mu", [muStep1]) , ChainStep("Step2_mu",  [muStep2] ) ] )
         ]
 
     HLTChains += MuChains
@@ -112,11 +112,11 @@ if doMuon:
 
 ## #electron chains
 if doElectron:
-    from TrigUpgradeTest.HLTSignatureConfig import elStep1Sequence, elStep2Sequence, gammStep1Sequence
-    elStep1 = elStep1Sequence()
-    elStep2 = elStep2Sequence()
+    from TrigUpgradeTest.HLTSignatureConfig import elStep1MenuSequence, elStep2MenuSequence, gammStep1MenuSequence
+    elStep1 = elStep1MenuSequence()
+    elStep2 = elStep2MenuSequence()
 
-    gammStep1 = gammStep1Sequence()
+    gammStep1 = gammStep1MenuSequence()
     
     ElChains  = [
         Chain(name='HLT_e5'  , Seed="L1_EM7", ChainSteps=[ ChainStep("Step1_em",  [elStep1]), ChainStep("Step2_em",  [elStep2]) ] ),
@@ -131,11 +131,11 @@ if doElectron:
 
 # combined chain
 if doCombo:
-    from TrigUpgradeTest.HLTSignatureConfig import elStep1Sequence, muStep1Sequence, elStep2Sequence, muStep2Sequence
-    elStep1 = elStep1Sequence()
-    muStep1 = muStep1Sequence()
-    elStep2 = elStep2Sequence()
-    muStep2 = muStep2Sequence()
+    from TrigUpgradeTest.HLTSignatureConfig import elStep1MenuSequence, muStep1MenuSequence, elStep2MenuSequence, muStep2MenuSequence
+    elStep1 = elStep1MenuSequence()
+    muStep1 = muStep1MenuSequence()
+    elStep2 = elStep2MenuSequence()
+    muStep2 = muStep2MenuSequence()
 
     
     CombChains =[
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py
index e08a219c419c020d0c6f78b94a6c38ef59b55a69..4fc953c823abf3be3c3dab9c67a081586a34d13f 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py
@@ -242,13 +242,19 @@ def decisionTree_From_Chains(HLTNode, chains):
             else:
                 prev = chain.steps[nstep-1].sequences
                  # previous filter name
-                pre_filter_name = CFNaming.filterName(chain.steps[nstep-1])
-                for seq in prev:                   
+                pre_filter_name = CFNaming.filterName(chain.steps[nstep-1].name)
+                print "Searching %s in %d sequences: "%(pre_filter_name, len(prev))
+                for seq in prev:
+                    print seq.name
                     for out in seq.outputs:
+                        print out
                         if pre_filter_name in out:
                             newinput = out
-                            filter_input.extend(newinput)
+                            filter_input.append(newinput)
+                            #filter_input.extend(newinput)
                             log.debug("Connect to previous sequence through these filter inputs: %s" %str( filter_input) )
+                if len(filter_input) == 0:
+                    log.error("")
 
             # get the filter:
             filter_name = CFNaming.filterName(chain_step.name)