diff --git a/Trigger/TrigSteer/DecisionHandling/DecisionHandling/InputMakerBase.h b/Trigger/TrigSteer/DecisionHandling/DecisionHandling/InputMakerBase.h
index 5e035f2263ab864a2b44a6546068db6cff0e60df..e56db192ed1eddd5bddd9449c52397cc7f67249f 100644
--- a/Trigger/TrigSteer/DecisionHandling/DecisionHandling/InputMakerBase.h
+++ b/Trigger/TrigSteer/DecisionHandling/DecisionHandling/InputMakerBase.h
@@ -49,6 +49,10 @@ This is a base class for HLT InputMakers to reduce boilerplate and enforce the c
 
   /// counts valid input decisions
   size_t countInputHandles( const EventContext& context ) const;
+
+    // setting strategy for output creation: merged means one decision per ROI
+  Gaudi::Property<bool>  m_mergeOutputs { this, "mergeOutputs", true, "true=outputs are merged, false=one output per input" };
+
   
  private:
   
@@ -58,8 +62,6 @@ This is a base class for HLT InputMakers to reduce boilerplate and enforce the c
   /// output decisions
   SG::WriteHandleKeyArray<TrigCompositeUtils::DecisionContainer> m_outputs { this, "InputMakerOutputDecisions", {}, "Ouput Decisions" };
 
-  // setting strategy for output creation: merged means one decision per ROI
-  Gaudi::Property<bool>  m_mergeOutputs { this, "mergeOutputs", true, "true=outputs are merged, false=one output per input" };
   
   
 };
diff --git a/Trigger/TrigSteer/DecisionHandling/DecisionHandling/TrigCompositeUtils.h b/Trigger/TrigSteer/DecisionHandling/DecisionHandling/TrigCompositeUtils.h
index a9f0d31b0dab6a0e109afe7713660c08bc290a33..e13aed6d8aa174250edebb76f8af27bd97bb09a1 100644
--- a/Trigger/TrigSteer/DecisionHandling/DecisionHandling/TrigCompositeUtils.h
+++ b/Trigger/TrigSteer/DecisionHandling/DecisionHandling/TrigCompositeUtils.h
@@ -184,6 +184,21 @@ namespace TrigCompositeUtils {
    **/
   HLT::Identifier createLegName(const HLT::Identifier& chainIdentifier, size_t counter);
 
+ /**
+   * @brief Generate the HLT::Identifier which corresponds to the chain name from the leg name. This can be queried for its DecisionID.
+   * @param chainIdentifier The HLT::Identifier corresponding to the specifci leg.
+   * @return HLT::Identifier corresponding to the chain. Call .numeric() on this to get the DecisionID.
+   **/
+  HLT::Identifier getIDFromLeg(const HLT::Identifier& legIdentifier);
+ 
+/**
+   * @brief Recognise whether the chain ID is a leg ID
+   * @param chainIdentifier The HLT::Identifier corresponding to the specifci ID.
+   * @return True if leg-ID, else false
+   **/
+  bool isLegId(const HLT::Identifier& legIdentifier);
+
+    
   /**
    * @brief traverses TC links for another TC fufilling the prerequisite specified by the filter
    * @return matching TC or nullptr
@@ -368,6 +383,8 @@ namespace TrigCompositeUtils {
   std::string dump( const xAOD::TrigComposite*  tc, std::function< std::string( const xAOD::TrigComposite* )> printerFnc );
 
 
+  
+
 
 
 }
diff --git a/Trigger/TrigSteer/DecisionHandling/python/TrigCompositeUtils.py b/Trigger/TrigSteer/DecisionHandling/python/TrigCompositeUtils.py
index 5ab28a0ba5ffc2e9bc0bf85e8c05345d18c69900..b8f63918a5cfd65dc462e397c5a4b00fbe801a0a 100644
--- a/Trigger/TrigSteer/DecisionHandling/python/TrigCompositeUtils.py
+++ b/Trigger/TrigSteer/DecisionHandling/python/TrigCompositeUtils.py
@@ -8,3 +8,10 @@ ROI_STRING = "roi"
 VIEW_STRING = "view"
 FEATURE_STRING = "feature"
 SEED_STRING = "seed"
+
+def legName(chainName, legCounter):
+    return ("leg{:03d}_{}".format(legCounter, chainName))
+
+def isLegId(chainName):
+    return chainName.startswith("leg")
+
diff --git a/Trigger/TrigSteer/DecisionHandling/src/ComboHypo.cxx b/Trigger/TrigSteer/DecisionHandling/src/ComboHypo.cxx
index 1c52ba93e2db06f795e5712ebde9c28e4141ed48..3ed647b165c5192e460f5f6bb0875426e4cef976 100644
--- a/Trigger/TrigSteer/DecisionHandling/src/ComboHypo.cxx
+++ b/Trigger/TrigSteer/DecisionHandling/src/ComboHypo.cxx
@@ -7,6 +7,7 @@
 #include "DecisionHandling/HLTIdentifier.h"
 #include "TrigSteeringEvent/TrigRoiDescriptorCollection.h"
 #include "AthViews/View.h"
+#include <sstream>
 
 using namespace TrigCompositeUtils;
 ComboHypo::ComboHypo(const std::string& name, ISvcLocator* pSvcLocator) 
@@ -17,18 +18,12 @@ ComboHypo::~ComboHypo()
 {}
 
 StatusCode ComboHypo::initialize() {
-  //ATH_MSG_DEBUG("Use macros for logging!");
   ATH_CHECK( m_outputs.initialize() );
   ATH_CHECK( m_inputs.initialize() );
   ATH_CHECK( m_inputs.size() == m_outputs.size() );
   ATH_MSG_INFO( "with these inputs: ");
   for (auto inp:m_inputs){
-    ATH_MSG_INFO("-- "<< inp.key());
-  }
-  
-
-  ATH_CHECK( m_multiplicitiesReqMap.size() != 0 );
-
+    ATH_MSG_INFO("-- "<< inp.key());  }
   
 
   // find max inputs size
@@ -38,14 +33,22 @@ StatusCode ComboHypo::initialize() {
   
   const size_t maxMult = maxMultEl->second.size();
 
-  ATH_MSG_INFO( "with this multiplicity map: ");
-  for ( auto m: m_multiplicitiesReqMap ) {
-    ATH_MSG_INFO("-- "<< m.first<<" multiplicities of size "<<m.second.size());
-    for (auto mult: m.second){
-      ATH_MSG_INFO("-- "<< mult<<", ");
+  if (msgLvl(MSG::INFO)){ 
+    ATH_MSG_INFO( "with this multiplicity map: ");
+    for ( auto m: m_multiplicitiesReqMap ) {
+      std::ostringstream msg;
+      std::string mms = "[";
+      msg<<"[";
+      for (auto mult: m.second){
+	msg<< mult<<", ";
+	mms+= mult  + ",";
+      }
+      msg<<"]";
+      ATH_MSG_INFO("-- "<< m.first<<" multiplicities: "<<msg.str() <<"     "<<mms);
     }
   }
 
+  ATH_CHECK( m_multiplicitiesReqMap.size() != 0 );
   bool errorOccured = false;
   for ( auto m: m_multiplicitiesReqMap ) {
     if ( m.second.size() != maxMult )  {
@@ -70,7 +73,7 @@ StatusCode ComboHypo::copyDecisions( const DecisionIDContainer& passing, const E
     // new output decisions
     SG::WriteHandle<DecisionContainer> outputHandle = createAndStore(m_outputs[input_counter], context ); 
     auto outDecisions = outputHandle.ptr();    
-
+    int decCounter = 0;
     auto inputHandle = SG::makeHandle( m_inputs[input_counter], context );
     if ( inputHandle.isValid() ) {
       
@@ -84,12 +87,23 @@ StatusCode ComboHypo::copyDecisions( const DecisionIDContainer& passing, const E
         std::set_intersection( inputDecisionIDs.begin(), inputDecisionIDs.end(), passing.begin(), passing.end(),
           std::inserter( common, common.end() ) );
 
+	// collect only chain name from leg name: do not propagate the legdIds?
+	DecisionIDContainer finalIds;   
+	for (auto c: common){
+	  finalIds.insert(c); // all Ids used by the Filter, including legs
+	  if (TrigCompositeUtils::isLegId ( HLT::Identifier(c) )){
+	    auto mainChain = TrigCompositeUtils::getIDFromLeg ( HLT::Identifier(c) );
+	    finalIds.insert( mainChain.numeric() );
+	  }
+	}
+
         Decision*  newDec = newDecisionIn( outDecisions );
         linkToPrevious( newDec, inputDecision, context );
-        ATH_MSG_DEBUG("New decision has "<< (TrigCompositeUtils::findLink<TrigRoiDescriptorCollection>( newDec, "initialRoI")).isValid()
-          << " valid initialRoI and "<< TrigCompositeUtils::getLinkToPrevious(newDec).size() <<" previous decisions");   
+        ATH_MSG_DEBUG("New decision ("<< input_counter<<", "<<decCounter<<") has "
+		      << (TrigCompositeUtils::findLink<TrigRoiDescriptorCollection>( newDec, "initialRoI")).isValid()
+		      << " valid initialRoI and "<< TrigCompositeUtils::getLinkToPrevious(newDec).size() <<" previous decisions; valid Ids="<<finalIds.size()) ;   
 
-        insertDecisionIDs( common, newDec );
+        insertDecisionIDs( finalIds, newDec );
 
         // add View?
         if ( inputDecision->hasObjectLink( "view" ) ) {
@@ -97,10 +111,11 @@ StatusCode ComboHypo::copyDecisions( const DecisionIDContainer& passing, const E
           CHECK( viewEL.isValid() );
           newDec->setObjectLink( "view",    viewEL );
         }
+	decCounter++;
       }
     }
 
-    // debug printout:
+
     if ( msgLvl(MSG::DEBUG) ) {
       ATH_MSG_DEBUG(outputHandle.key() <<" with "<< outputHandle->size() <<" decisions:");
       for (auto outdecision:  *outputHandle){
@@ -117,27 +132,115 @@ StatusCode ComboHypo::copyDecisions( const DecisionIDContainer& passing, const E
   return StatusCode::SUCCESS;
 }
 
-void ComboHypo::fillDecisionsMap( std::vector< MultiplicityMap >&  dmap, std::map<TrigCompositeUtils::DecisionID,std::map<int,int>>& featureMap, const EventContext& context) const {
+
+StatusCode ComboHypo::execute(const EventContext& context ) const {
+  ATH_MSG_DEBUG( "Executing " << name() << "..." );
+  
+  DecisionIDContainer passing;
+  // this map is filled with the count of positive decisions from each input
+  CombinationMap dmap;
+  std::map<TrigCompositeUtils::DecisionID,std::map<int, int>> dmapFeatures;
+  uint nRequiredUnique;
+  fillDecisionsMap( dmap, dmapFeatures, context );
+
+  int nmaps=0;
+  for ( auto m: m_multiplicitiesReqMap ) {
+    nRequiredUnique=0;
+    const DecisionID requiredDecisionID = HLT::Identifier( m.first ).numeric();
+    DecisionIDContainer allDecisionIds;
+    allDecisionIds.insert(requiredDecisionID);
+
+    bool overallDecision = true;
+
+    std::set< int> uniqueDecisions;
+    for ( size_t legIndex = 0; legIndex <  m.second.size(); ++legIndex ) {
+      const size_t requiredMultiplicity =  m.second[ legIndex ];
+      nRequiredUnique += requiredMultiplicity;
+
+      auto legId = TrigCompositeUtils::createLegName(HLT::Identifier(m.first), legIndex);
+      if (m.second.size()==1) legId = HLT::Identifier(m.first); // if one part in the menu name, do not use leg00 in name
+      const DecisionID requiredDecisionIDLeg = legId.numeric();
+      ATH_MSG_DEBUG("Container "<< legIndex<<" Looking at leg : "<<legId );
+     
+      //check each leg of the chain passes with required multiplicity
+      size_t observedMultiplicity = 0;
+      if ( dmap.count(requiredDecisionIDLeg) != 0 ){
+	observedMultiplicity = dmap[ requiredDecisionIDLeg ].size();
+	ATH_MSG_DEBUG( "Required multiplicity " << requiredMultiplicity  << " for leg " << legId.name() << ": observed multiplicity " << observedMultiplicity << " in leg " << legIndex  );
+      }
+      if ( observedMultiplicity < requiredMultiplicity ) {
+	overallDecision = false;
+	break;
+      }
+	
+      
+      const size_t uniqueDecisionsInLeg = dmapFeatures[requiredDecisionIDLeg].size();
+      
+      //check that the multiplicity of unique features is high enough
+      ATH_MSG_DEBUG("Number of unique decisions per Leg: "<<uniqueDecisionsInLeg<<", number of required decisions: "<<requiredMultiplicity);
+      if(uniqueDecisionsInLeg<requiredMultiplicity) overallDecision=false;
+      else
+	allDecisionIds.insert(requiredDecisionIDLeg);
+      for (auto feat: dmapFeatures[requiredDecisionIDLeg]){
+	uniqueDecisions.insert( feat.first );
+      }
+    }
+
+    //check that the multiplicity of unique features is high enough
+    ATH_MSG_DEBUG("Number of unique decisions: "<<uniqueDecisions.size()<<", number of required unique decisions: "<<nRequiredUnique);
+    if (uniqueDecisions.size()<nRequiredUnique) overallDecision=false;
+
+    //Overall chain decision
+    ATH_MSG_DEBUG( "Chain " << m.first <<  ( overallDecision ? " is accepted" : " is rejected") );
+    if ( overallDecision == true ) {
+      for (auto decID: allDecisionIds)
+	passing.insert( passing.end(), decID );
+    }      
+    nmaps++;
+  }
+
+  if (msgLvl(MSG::DEBUG)){
+    for (auto p: passing)
+      ATH_MSG_DEBUG("Passing "<<HLT::Identifier(p));
+  }
+  ATH_CHECK( copyDecisions( passing, context ) );
+  
+  return StatusCode::SUCCESS;
+}
+
+void ComboHypo::fillDecisionsMap(  CombinationMap &  dmap, std::map<TrigCompositeUtils::DecisionID,std::map<int,int>> & featureMap, const EventContext& context) const {
+  /* pair<index_of_input, index_of_decision>
+     map <decision_id, vector<pairs<>> list of all decisions of that leg-decID
+     vector < map<> > = list of all leg-decID, one element per legID
+     leg0 leg1
+  */
 
   for ( size_t i = 0; i < m_inputs.size(); ++i ) {   
     auto inputHandle = SG::makeHandle( m_inputs.at(i), context );
     if ( inputHandle.isValid() ) {
       ATH_MSG_DEBUG( "Found implicit RH from " << inputHandle.key() <<" with "<< inputHandle->size() << " elements:"  );
-      MultiplicityMap thisInputDmap;
+      std::map<TrigCompositeUtils::DecisionID,std::map<int,int>> thisFeatureMap;
+      int decCounter = 0;
       for ( const Decision* decision : *inputHandle.cptr() ) {
-        ATH_MSG_DEBUG( "Decision with "<< decisionIDs( decision ).size() << " chains passed:" );
+        ATH_MSG_DEBUG( "Input Decision "<<decCounter <<" with "<< decisionIDs( decision ).size() << " active chains IDs" );
         for ( DecisionID id: decisionIDs( decision ) ) {
-          ATH_MSG_DEBUG( " +++ " << HLT::Identifier( id ) );
-          thisInputDmap[id] ++;
+	  for ( auto m: m_multiplicitiesReqMap ) {
+	    // search for the chain name in the list of active ones (including legs)
+	    if (HLT::Identifier(id).name().find(m.first) != std::string::npos){
+	      ATH_MSG_DEBUG( " +++ " << HLT::Identifier( id ) );
+	      std::pair <int,int> combinationIndex = std::make_pair(i, decCounter);
+	      dmap[id].push_back(combinationIndex);
+	      ATH_MSG_DEBUG("Added in map: "<<dmap[id]);
+	  
 	  //Map features to make sure we are considering unique objects. decision->linkColKeys()[idx] 
 	  //is the feature collection's name-hash, which is unique per-RoI. Adding the object index 
 	  //allows to correctly identify different objects within the same RoI (example: EF muons)
 	  //or different objects produced per event (example: MET) as being unique
 	  auto features = decision->linkColNames();
 	  int idx=-1;
-	  for(uint i=0; i<features.size(); i++){
-	    if(features[i]==featureString()){
-	      idx=i;
+	  for(uint f=0; f<features.size(); f++){
+	    if(features[f]==featureString()){
+	      idx=f;
 	      break;
 	    }
 	  }
@@ -145,9 +248,10 @@ void ComboHypo::fillDecisionsMap( std::vector< MultiplicityMap >&  dmap, std::ma
 	    featureMap[id][decision->linkColKeys()[idx]+decision->linkColIndices()[idx]] ++;
 	  }
 	  else ATH_MSG_DEBUG("Did not find "<<featureString());
-        }     
+        }
+	  }}
+	decCounter ++;
       }
-      dmap[i]= thisInputDmap; 
     }
     else {
       ATH_MSG_DEBUG( "No implicit RH from " << inputHandle.key()  );
@@ -155,60 +259,24 @@ void ComboHypo::fillDecisionsMap( std::vector< MultiplicityMap >&  dmap, std::ma
     }
   }
 
-  //debug
-  ATH_MSG_DEBUG( "Decision map filled :" );
-  int i=0;
-  for (auto onemap: dmap){
-    ATH_MSG_DEBUG("map ["<<i<<"]: ");
-    for (auto m: onemap){
-      ATH_MSG_DEBUG(" +++ " << HLT::Identifier( m.first ) <<" mult: "<<m.second);
-    }
-    i++;
-  } 
-}
-
-StatusCode ComboHypo::execute(const EventContext& context ) const {
-  ATH_MSG_DEBUG( "Executing " << name() << "..." );
 
-  
-  DecisionIDContainer passing;
-  // this map is filled with the count of positive decisions from each input
-
-  std::vector< MultiplicityMap > dmap( m_inputs.size() );
-  std::map<TrigCompositeUtils::DecisionID,std::map<int, int>> dmapFeatures;
-  uint nRequiredUnique;
-  fillDecisionsMap( dmap, dmapFeatures, context );
-
-  for ( auto m: m_multiplicitiesReqMap ) {
-    nRequiredUnique=0;
-    const DecisionID requiredDecisionID = HLT::Identifier( m.first ).numeric();
-    bool overallDecision = true;
-    
-    for ( size_t inputContainerIndex = 0; inputContainerIndex <  m.second.size(); ++inputContainerIndex ) {
-      const int requiredMultiplicity =  m.second[ inputContainerIndex ];
-      nRequiredUnique += requiredMultiplicity;
-      //check each leg of the chain passes with required multiplicity
-      const int observedMultiplicity = dmap[ inputContainerIndex ][ requiredDecisionID ];
-      ATH_MSG_DEBUG( "Required multiplicity " << requiredMultiplicity  << " for chain " << m.first<< ": observed multiplicity " << observedMultiplicity << " in container " << inputContainerIndex  );
-      if ( observedMultiplicity < requiredMultiplicity ) {
-        overallDecision = false;
-        break;
+  if (msgLvl(MSG::DEBUG)){
+    ATH_MSG_DEBUG( "Decision map filled :" );
+    int legcount=0;
+    for (auto m: dmap){
+      ATH_MSG_DEBUG("leg ["<<legcount<<"]: ");
+      std::vector<std::pair<int,int>> combinations = m.second;
+      ATH_MSG_DEBUG(" +++ " << HLT::Identifier( m.first ) <<" mult: "<<combinations.size());
+      for (auto comb: combinations){
+      	ATH_MSG_DEBUG("     Comb: ("<<comb.first<<", "<<comb.second<<")");
       }
-    }
-
-    //check that the multiplicity of unique features is high enough
-    ATH_MSG_DEBUG("Number of unique decisions: "<<(dmapFeatures[HLT::Identifier(m.first)]).size()<<", number of required unique decisions: "<<nRequiredUnique);
-    if((dmapFeatures[HLT::Identifier(m.first)]).size()<nRequiredUnique) overallDecision=false;
 
-    //Overall chain decision
-    ATH_MSG_DEBUG( "Chain " << m.first <<  ( overallDecision ? " is accepted" : " is rejected") );
-    if ( overallDecision == true ) {
-      passing.insert( requiredDecisionID );
-    }      
+      ATH_MSG_DEBUG("FeatureMap: found "<<featureMap[m.first].size()<<" entries");
+      for (auto feat:featureMap[m.first])
+	ATH_MSG_DEBUG("    Feature Id "<<feat.first<<", mult "<<feat.second);
+      legcount++;
+    }
   }
+
   
-  ATH_CHECK( copyDecisions( passing, context ) );
-  
-  return StatusCode::SUCCESS;
 }
-
diff --git a/Trigger/TrigSteer/DecisionHandling/src/ComboHypo.h b/Trigger/TrigSteer/DecisionHandling/src/ComboHypo.h
index d1049152811755317baaf7e9f9793da4a9559425..c36140fcbb38b7f4847e358c8ff1a94f412b9341 100644
--- a/Trigger/TrigSteer/DecisionHandling/src/ComboHypo.h
+++ b/Trigger/TrigSteer/DecisionHandling/src/ComboHypo.h
@@ -10,6 +10,7 @@
 
 // STL includes
 #include <string>
+#include <utility>  
 
 /**
  * @class ComboHypo for combined hypotheses required only counting (multiplicity requirements)
@@ -30,9 +31,9 @@ public:
   virtual StatusCode execute(const EventContext& context) const override;
   virtual StatusCode finalize() override;
 
+
 private:
   SG::ReadHandleKeyArray<TrigCompositeUtils::DecisionContainer> m_inputs { this, "HypoInputDecisions", {}, "Input Decisions" };
-  /// output decisions
   SG::WriteHandleKeyArray<TrigCompositeUtils::DecisionContainer> m_outputs { this, "HypoOutputDecisions", {}, "Ouput Decisions" };
 
   typedef std::map<std::string, std::vector<int>> MultiplicityReqMap;
@@ -43,7 +44,8 @@ private:
 
   //!< iterates over all inputs filling the multiplicity map for each input collection
   typedef std::map<TrigCompositeUtils::DecisionID, int> MultiplicityMap;
-  void fillDecisionsMap( std::vector< MultiplicityMap >&  dmap, std::map<TrigCompositeUtils::DecisionID,std::map<int,int>>& featureMap, const EventContext& context) const;
+  typedef std::map<TrigCompositeUtils::DecisionID,  std::vector<std::pair<int,int>>> CombinationMap;
+  void fillDecisionsMap(  CombinationMap &  dmap, std::map<TrigCompositeUtils::DecisionID,std::map<int,int>> & featureMap, const EventContext& context) const;
 
 };
 
diff --git a/Trigger/TrigSteer/DecisionHandling/src/HypoBase.cxx b/Trigger/TrigSteer/DecisionHandling/src/HypoBase.cxx
index e8d72166b15baf343a3b44a2aff21c898efbb68e..89a1f4d476abb9458f87bc37bbac3cbdcc0d23ef 100644
--- a/Trigger/TrigSteer/DecisionHandling/src/HypoBase.cxx
+++ b/Trigger/TrigSteer/DecisionHandling/src/HypoBase.cxx
@@ -145,7 +145,7 @@ StatusCode HypoBase::validateLogicalFlow(const ElementLink<DecisionContainer>& d
   const ElementLinkVector<DecisionContainer> seeds = (*dEL)->objectCollectionLinks<DecisionContainer>(seedString());
   for (const DecisionID id : decisionIDSet) {
     // For each chain that I'm passing, check how many of my parents were also passing the chain
-    size_t parentsWithDecision = 0;
+    size_t parentsWithDecision = 0;  
     for (const ElementLink<DecisionContainer>& seed : seeds) {
       ATH_CHECK( seed.isValid() );
       DecisionIDContainer seedIDSet;
@@ -153,6 +153,14 @@ StatusCode HypoBase::validateLogicalFlow(const ElementLink<DecisionContainer>& d
       if (passed(id, seedIDSet)) {
         ++parentsWithDecision;
       }
+      else{ //adding also Ids from the legs
+	for (auto sid: seedIDSet){
+	  if (TrigCompositeUtils::getIDFromLeg(sid).numeric() == id){
+	    ++parentsWithDecision;
+	    break;
+	  }
+	}
+      }
     }
     if (mode == kRequireOne && parentsWithDecision == 0) {
       // InputMakers may merge multiple of their input collections in order to run reconstruction on a common set of ROI (for example)
diff --git a/Trigger/TrigSteer/DecisionHandling/src/InputMakerBase.cxx b/Trigger/TrigSteer/DecisionHandling/src/InputMakerBase.cxx
index 68564df306e46366792b3459d31fb69d60e3818a..249351a5aee0141f979ccc5f330107ae790ff5d6 100644
--- a/Trigger/TrigSteer/DecisionHandling/src/InputMakerBase.cxx
+++ b/Trigger/TrigSteer/DecisionHandling/src/InputMakerBase.cxx
@@ -50,6 +50,16 @@ StatusCode InputMakerBase::decisionInputToOutput(const EventContext& context, st
   outputHandles = decisionOutputs().makeHandles(context);
   //size_t tot_inputs = countInputHandles( context );
   size_t outputIndex = 0;
+  TrigCompositeUtils::DecisionContainer* outDecisions  = nullptr;
+  if (m_mergeOutputs){
+    TrigCompositeUtils::createAndStore(outputHandles[outputIndex]); // one only
+    outDecisions = outputHandles[outputIndex].ptr();
+  }
+
+  // If using m_mergeOutputs, then collate all RoIs that are stored in this input container
+  ElementLinkVector<TrigRoiDescriptorCollection> RoIsFromDecision;
+
+  
   for ( auto inputKey: decisionInputs() ) {
     auto inputHandle = SG::makeHandle( inputKey, context );
 
@@ -65,20 +75,18 @@ StatusCode InputMakerBase::decisionInputToOutput(const EventContext& context, st
     }
     ATH_MSG_DEBUG( "Running on input "<< inputKey.key()<<" with " << inputHandle->size() << " elements" );
     
-    // We have an input container with >= 1 Decision objects. Create an output container with the same index. 
-    TrigCompositeUtils::createAndStore(outputHandles[outputIndex]);
-
-
-    TrigCompositeUtils::DecisionContainer* outDecisions = outputHandles[outputIndex].ptr();
+    // We have an input container with >= 1 Decision objects. Create an output container with the same index.
+    if (! m_mergeOutputs){
+      TrigCompositeUtils::createAndStore(outputHandles[outputIndex]);
+      outDecisions = outputHandles[outputIndex].ptr();
+    }
 
-    // If using m_mergeOutputs, then collate all RoIs that are stored in this input container
-    ElementLinkVector<TrigRoiDescriptorCollection> RoIsFromDecision;
 
     // loop over decisions retrieved from this input
     size_t input_counter =0;
-    size_t output_counter =0;
+
     for (const TrigCompositeUtils::Decision* inputDecision : *inputHandle){
-      ATH_MSG_DEBUG( "Input Decision "<<input_counter <<" has " <<TrigCompositeUtils::getLinkToPrevious(inputDecision).size()<<" previous links");
+      ATH_MSG_DEBUG( "  - Input Decision "<<input_counter <<": has " <<TrigCompositeUtils::getLinkToPrevious(inputDecision).size()<<" previous links");
       TrigCompositeUtils::Decision* newDec = nullptr;
       bool addDecision = false;
       ElementLink<TrigRoiDescriptorCollection> roiEL = ElementLink<TrigRoiDescriptorCollection>();
@@ -93,8 +101,11 @@ StatusCode InputMakerBase::decisionInputToOutput(const EventContext& context, st
         // addDecision is positive here if we have *not* before encountered this RoI within this input collection.
         if (addDecision) {
           RoIsFromDecision.push_back(roiEL); // To keep track of which we have used
-          ATH_MSG_DEBUG( "Found RoI:" << **roiEL <<" FS="<< (*roiEL)->isFullscan());
+          ATH_MSG_DEBUG( "  -- Found new RoI:" << **roiEL <<": creating new decision");
         }
+	else{
+	  ATH_MSG_DEBUG( "  -- Found old RoI:" << **roiEL <<": merging to this one");
+	}
       } else { // Not merging, keep a 1-to-1 mapping of Decisions in Input & Output containers
         addDecision=true;
       }
@@ -102,7 +113,6 @@ StatusCode InputMakerBase::decisionInputToOutput(const EventContext& context, st
       if ( addDecision ){
         // Create a new Decision in the Output container to mirror one in the Input container
         newDec = TrigCompositeUtils::newDecisionIn( outDecisions );
-        output_counter++;
       } else{
         // addDecision can only be false if m_mergeOutputs was true and roiEL was found within RoIsFromDecision
         // Re-use a Decision already added to the Output container 
@@ -113,15 +123,20 @@ StatusCode InputMakerBase::decisionInputToOutput(const EventContext& context, st
         }
         const size_t roiCounter = std::distance( RoIsFromDecision.begin(), roiIt );
         newDec = outDecisions->at(roiCounter);
+	ATH_MSG_DEBUG("Merging with output decision n. "<< roiCounter);
       }
 
+      // if merged output, there are more than one seed: is it ok?
       TrigCompositeUtils::linkToPrevious( newDec, inputDecision, context ); // Link inputDecision object as the 'seed' of newDec
       TrigCompositeUtils::insertDecisionIDs( inputDecision, newDec ); // Copy decision IDs from inputDecision into newDec
-      ATH_MSG_DEBUG("New decision has "<< (TrigCompositeUtils::findLink<TrigRoiDescriptorCollection>( newDec,  m_roisLink.value())).isValid() <<" valid "<<m_roisLink.value() <<" and "<< TrigCompositeUtils::getLinkToPrevious(newDec).size() <<" previous decisions");     
+      TrigCompositeUtils::DecisionIDContainer objDecisions;      
+      TrigCompositeUtils::decisionIDs( newDec, objDecisions );    
+      ATH_MSG_DEBUG("  -- This output decision has now "<< (TrigCompositeUtils::findLink<TrigRoiDescriptorCollection>( newDec,  m_roisLink.value())).isValid() <<" valid "<<m_roisLink.value() <<", "<< TrigCompositeUtils::getLinkToPrevious(newDec).size() <<" seeds and "<<objDecisions.size()<<" decisionIds");     
       input_counter++;  
     } // loop over input decisions
 
-    ATH_MSG_DEBUG( "Filled output key " <<  decisionOutputs()[ outputIndex ].key() <<" of size "<<outDecisions->size()  <<" at index "<< outputIndex);
+    if (! m_mergeOutputs)
+      ATH_MSG_DEBUG( "Filled output key " <<  decisionOutputs()[ outputIndex ].key() <<" of size "<<outDecisions->size()  <<" at index "<< outputIndex);
     outputIndex++;
   } // end of first loop over input keys
 
@@ -151,8 +166,10 @@ void InputMakerBase::debugPrintOut(const EventContext& context, const std::vecto
     validOutput++;
   }
   ATH_MSG_DEBUG("Produced " << validOutput << " valid/notempty output decisions containers");
-  if(validInput != validOutput) {
-    ATH_MSG_ERROR("Found valid/notempty: " << validInput << " inputs and " << validOutput << " outputs");
+  if (! m_mergeOutputs){
+    if(validInput != validOutput) {
+      ATH_MSG_ERROR("Found valid/notempty: " << validInput << " inputs and " << validOutput << " outputs");
+    }
   }
   
   for ( auto outHandle: outputHandles ) {
diff --git a/Trigger/TrigSteer/DecisionHandling/src/RoRSeqFilter.cxx b/Trigger/TrigSteer/DecisionHandling/src/RoRSeqFilter.cxx
index ad4758466c85e567cc0322d93503c139f033ed03..28d0ebf66dc52f0dfbc59523ab18d596b162a0fe 100644
--- a/Trigger/TrigSteer/DecisionHandling/src/RoRSeqFilter.cxx
+++ b/Trigger/TrigSteer/DecisionHandling/src/RoRSeqFilter.cxx
@@ -38,27 +38,31 @@ StatusCode RoRSeqFilter::initialize()
   CHECK( m_outputKeys.initialize() );
 
   renounceArray(m_inputKeys);
-  // is this needed? renounceArray(m_outputKeys); // TimM - I don't think so
 
-  ATH_MSG_DEBUG("Will consume implicit ReadDH:" );
-  for (auto& input: m_inputKeys){  
-    ATH_MSG_DEBUG(" - "<<input.key());
-  }
-  ATH_MSG_DEBUG("Will produce implicit WriteDH: ");
-  for (auto& output: m_outputKeys){  
-    ATH_MSG_DEBUG(" - "<<output.key());
+  if (msgLvl(MSG::DEBUG)){
+    ATH_MSG_DEBUG("Will consume implicit ReadDH:" );
+    for (auto& input: m_inputKeys){  
+      ATH_MSG_DEBUG(" - "<<input.key());
+    }
+    ATH_MSG_DEBUG("Will produce WriteDH: ");
+    for (auto& output: m_outputKeys){  
+      ATH_MSG_DEBUG(" - "<<output.key());
+    }
   }
-
+  
   CHECK( not m_chainsProperty.empty() );
   
   for ( const std::string& el: m_chainsProperty ) 
     m_chains.insert( HLT::Identifier( el ).numeric() );
 
-  for ( const HLT::Identifier& id: m_chains )
-    ATH_MSG_DEBUG( "Configured to require chain " << id );
+  if (msgLvl(MSG::DEBUG)){
+    ATH_MSG_DEBUG( "Configured to require these chains: ");
+    for ( const HLT::Identifier& id: m_chains )
+      ATH_MSG_DEBUG( " - " << id );
+    
+    ATH_MSG_DEBUG( "mergeInputs is " << m_mergeInputs);
+  }
   
-  ATH_MSG_DEBUG( "mergeInputs is " << m_mergeInputs);
-
   if ( not m_monTool.name().empty() ) {
     ATH_CHECK( m_monTool.retrieve() );
   }
@@ -75,9 +79,6 @@ StatusCode RoRSeqFilter::execute() {
   mon.fill();
   auto inputHandles  = m_inputKeys.makeHandles();
   auto outputHandles = m_outputKeys.makeHandles();
-  //std::vector<SG::ReadHandle<DecisionContainer>> inputHandles;
-  //std::vector<SG::WriteHandle<DecisionContainer>> outputHandles;
-
   bool validInputs=false;
   int counter = 1; // entries from 2 (note ++ below) used for inputs
   for ( auto inputHandle: inputHandles ) {
@@ -128,7 +129,7 @@ StatusCode RoRSeqFilter::execute() {
       } else if ( inputHandle->empty() ) {
         ATH_MSG_DEBUG( "InputHandle "<< inputKey.key() <<" contains all rejected decisions, skipping" );
       } else {
-        ATH_MSG_DEBUG( "Checking inputHandle "<< inputKey.key() <<" with " << inputHandle->size() <<" elements");
+        ATH_MSG_DEBUG( "Checking inputHandle: "<< inputKey.key() <<" has " << inputHandle->size() <<" elements");
         createAndStore(outputHandles[outputIndex]);
         DecisionContainer* output = outputHandles[outputIndex].ptr();
         passCounter += copyPassing( *inputHandle, *output );  
@@ -141,8 +142,10 @@ StatusCode RoRSeqFilter::execute() {
 
   setFilterPassed( passCounter != 0 );
   ATH_MSG_DEBUG( "Filter " << ( filterPassed() ? "passed" : "rejected") <<"; creating "<< outputIndex<<" valid outDecisions DH:");
-  for (auto output: outputHandles){
-    if( output.isValid() ) ATH_MSG_DEBUG(" "<<output.key());
+  if (msgLvl(MSG::DEBUG)){
+    for (auto output: outputHandles){
+      if( output.isValid() ) ATH_MSG_DEBUG(" "<<output.key());
+    }
   }
 
   
@@ -152,18 +155,13 @@ StatusCode RoRSeqFilter::execute() {
 size_t RoRSeqFilter::copyPassing( const DecisionContainer& input, 
                                   DecisionContainer& output ) const {
   size_t passCounter = 0;
-  ATH_MSG_DEBUG( "Input size " << input.size() );
   for (size_t i = 0; i < input.size(); ++i) {
     const Decision* inputDecision = input.at(i);
 
     DecisionIDContainer objDecisions;      
     decisionIDs( inputDecision, objDecisions );
 
-    ATH_MSG_DEBUG("Number of positive decisions for this input: " << objDecisions.size() );
-
-    for ( DecisionID id : objDecisions ) {
-      ATH_MSG_DEBUG( " -- Positive decision " << HLT::Identifier( id ) );
-    }
+    ATH_MSG_DEBUG("Number of positive decisions for this input is " << objDecisions.size() <<". Now Filtering...." );
 
     DecisionIDContainer intersection;
     std::set_intersection( m_chains.begin(), m_chains.end(),
@@ -177,14 +175,18 @@ size_t RoRSeqFilter::copyPassing( const DecisionContainer& input,
       // Copy accross only the DecisionIDs which have passed through this Filter for this Decision object. 
       // WARNING: Still need to 100% confirm if the correct set to propagate forward is objDecisions or intersection.
       // Tim M changing this from objDecisions (all IDs) -> intersection (only passed IDs) Feb 19
-      insertDecisionIDs(intersection, decisionCopy);
-
+      insertDecisionIDs(intersection, decisionCopy);     
       passCounter ++;
-      ATH_MSG_DEBUG("Input satisfied at least one active chain");
+      ATH_MSG_DEBUG("Input satisfied at least one filtering chain. Chain(s) passing:");
+      if (msgLvl(MSG::DEBUG)){
+	for ( DecisionID id : intersection ) {
+	  ATH_MSG_DEBUG( " -- " << HLT::Identifier( id ) );
+	}
+      }
+      
     } else {
-      ATH_MSG_DEBUG("No Input decisions requested by active chains");
+      ATH_MSG_DEBUG("No Input decisions requested by filtering chains");
     }
   }
-  ATH_MSG_DEBUG( "Output size " << output.size() );
   return passCounter;  
 }
diff --git a/Trigger/TrigSteer/DecisionHandling/src/TrigCompositeUtils.cxx b/Trigger/TrigSteer/DecisionHandling/src/TrigCompositeUtils.cxx
index 79a07c596b17663893ecbaa6c4b14583bb9111d4..ae360acca74f8b683a7a6125220edf8b1dcbef26 100644
--- a/Trigger/TrigSteer/DecisionHandling/src/TrigCompositeUtils.cxx
+++ b/Trigger/TrigSteer/DecisionHandling/src/TrigCompositeUtils.cxx
@@ -11,6 +11,7 @@
 #include "DecisionHandling/TrigCompositeUtils.h"
 
 #include <unordered_map>
+#include <regex>
 
 static const SG::AuxElement::Accessor< std::vector<TrigCompositeUtils::DecisionID> > readWriteAccessor("decisions");
 static const SG::AuxElement::ConstAccessor< std::vector<TrigCompositeUtils::DecisionID> > readOnlyAccessor("decisions");
@@ -156,7 +157,24 @@ namespace TrigCompositeUtils {
     legStringStream << "leg" << std::setfill('0') << std::setw(3) << counter << "_" << chainIdentifier.name();
     return HLT::Identifier( legStringStream.str() );
   }
- 
+
+  
+  HLT::Identifier getIDFromLeg(const HLT::Identifier& legIdentifier) {
+    if (legIdentifier.name().find("HLT_",0)==0 ){
+      return legIdentifier;
+    } else if (isLegId(legIdentifier)){
+      return HLT::Identifier(legIdentifier.name().substr(7));
+    } else{
+      throw GaudiException("legIdentifier '"+legIdentifier.name()+"' does not start with 'HLT_' or 'leg' ",
+        "TrigCompositeUtils::getIDFromLeg", StatusCode::FAILURE);
+    }
+  }
+
+  
+  bool isLegId(const HLT::Identifier& legIdentifier) {
+    return (legIdentifier.name().find("leg",0)==0);
+  }
+  
   
   const Decision* find( const Decision* start, const std::function<bool( const Decision* )>& filter ) {
     if ( filter( start ) ) return start;
@@ -356,6 +374,7 @@ namespace TrigCompositeUtils {
     return ret;
   }
 
+  
   const std::string& initialRoIString() {
     return Decision::s_initialRoIString;
   }
diff --git a/Trigger/TrigSteer/L1Decoder/src/METRoIsUnpackingTool.cxx b/Trigger/TrigSteer/L1Decoder/src/METRoIsUnpackingTool.cxx
index b600e5d2c64b86ece7664d3a8471c7c38fde4fba..2f8d3d9cbfff69765f8e971e7531ec8c061f0673 100644
--- a/Trigger/TrigSteer/L1Decoder/src/METRoIsUnpackingTool.cxx
+++ b/Trigger/TrigSteer/L1Decoder/src/METRoIsUnpackingTool.cxx
@@ -82,10 +82,12 @@ StatusCode METRoIsUnpackingTool::unpack( const EventContext& ctx,
   			m_allMETChains.begin(), m_allMETChains.end(),
 			std::inserter(activeMETchains, activeMETchains.end() ) );
 
+  ATH_MSG_DEBUG("Unpacking MET RoI for " << activeMETchains.size() << " chains");
+
   auto decision  = TrigCompositeUtils::newDecisionIn( decisionOutput, "L1" ); // This "L1" denotes an initial node with no parents
-  for ( auto c: activeMETchains ) addDecisionID( c, decision );
+  for ( auto th: m_thresholds ) 
+    addChainsToDecision(  HLT::Identifier( th->name() ), decision, activeChains );
 
-  ATH_MSG_DEBUG("Unpacking MET RoI for " << activeMETchains.size() << " chains");
 
   ATH_MSG_DEBUG("Linking to FS RoI descriptor");
   decision->setObjectLink( "initialRoI", ElementLink<TrigRoiDescriptorCollection>( m_fsRoIKey, 0 ) );
diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/StreamTagMakerTool.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/StreamTagMakerTool.cxx
index d0400ff2c874c3f0a52c16d8236803c39cf4b7e8..9086c0d2533f2602b4ebef7c54edf43254401caa 100644
--- a/Trigger/TrigSteer/TrigOutputHandling/src/StreamTagMakerTool.cxx
+++ b/Trigger/TrigSteer/TrigOutputHandling/src/StreamTagMakerTool.cxx
@@ -119,7 +119,15 @@ StatusCode StreamTagMakerTool::fill( HLT::HLTResultMT& resultToFill, const Event
       }
     }
 
+    if (TrigCompositeUtils::isLegId(HLT::Identifier(chain)) )
+      continue;
+    
     auto mappingIter = m_mapping.find( chain );
+    if( mappingIter == m_mapping.end() ) {
+      ATH_MSG_ERROR("Each chain has to have the StreamTag associated whereas the " << HLT::Identifier( chain ) << " does not" );
+      return StatusCode::FAILURE;
+    }
+    
     const std::vector<StreamTagInfo>& streams = mappingIter->second;
     for (const StreamTagInfo& streamTagInfo : streams) {
       auto [st_name, st_type, obeysLB, forceFullEvent] = streamTagInfo;
diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerBitsMakerTool.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerBitsMakerTool.cxx
index 26ce8f3d9adfa65e2a7228f50dbb674715f5d541..4ced78eba4acf9d5536d21908bd65ba6b26b4be3 100644
--- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerBitsMakerTool.cxx
+++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerBitsMakerTool.cxx
@@ -177,6 +177,10 @@ StatusCode TriggerBitsMakerTool::setBit(const TrigCompositeUtils::DecisionID cha
   const BitCategory category,
   boost::dynamic_bitset<uint32_t>& resultToFill) const
 {
+  // FP TMP chain ID manipulation for leg Identifiers/ to be checked by Tim
+  if (TrigCompositeUtils::isLegId(HLT::Identifier(chain)) )
+    return StatusCode::SUCCESS;
+
   auto mappingIter = m_mapping.find( chain );
   // each chain has to have the counter
   if( mappingIter == m_mapping.end() ) {
diff --git a/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.cxx b/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.cxx
index 84213a934339d9ac5edd78b4782a0724fb3bf7fd..890f938a56f4b67bb5f81ad0b972ec295de5fb5f 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.cxx
+++ b/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.cxx
@@ -27,19 +27,20 @@ StatusCode EventViewCreatorAlgorithm::initialize() {
 
 StatusCode EventViewCreatorAlgorithm::execute( const EventContext& context ) const {
 
+   if (m_mergeOutputs)
+    return executeMerged(context);
+
   // create the output decisions, similar to inputs (copy basic links)
   std::vector< SG::WriteHandle<TrigCompositeUtils::DecisionContainer> > outputHandles;
   ATH_CHECK (decisionInputToOutput(context, outputHandles));
 
+ 
   // make the views
   auto viewsHandle = SG::makeHandle( m_viewsKey, context ); 
   auto viewVector1 = std::make_unique< ViewContainer >();
   ATH_CHECK( viewsHandle.record(  std::move( viewVector1 ) ) );
   auto viewVector = viewsHandle.ptr();
 
-
-
-    // auto viewVector = std::make_unique< ViewContainer >();
   auto contexts = std::vector<EventContext>( );
   unsigned int viewCounter = 0;
   unsigned int conditionsRun = Atlas::getExtendedEventContext(context).conditionsRun();
@@ -75,10 +76,8 @@ StatusCode EventViewCreatorAlgorithm::execute( const EventContext& context ) con
         if ( roiIt == RoIsFromDecision.end() ){
           RoIsFromDecision.push_back(roiEL); // just to keep track of which we have used 
           ATH_MSG_DEBUG("Found RoI:" <<**roiEL<<" FS="<<(*roiEL)->isFullscan());
-          ATH_MSG_DEBUG("Positive decisions on RoI, preparing view" );
-          
-          // make the view
-          ATH_MSG_DEBUG( "Making the View" );
+          ATH_MSG_DEBUG("Positive decisions on RoI, making view" );
+	  // make the view
           auto newView = ViewHelper::makeView( name()+"_view", viewCounter++, m_viewFallThrough ); //pointer to the view
 
           // Use a fall-through filter if one is provided
@@ -99,10 +98,20 @@ StatusCode EventViewCreatorAlgorithm::execute( const EventContext& context ) con
         }
         else {
           int iview = roiIt - RoIsFromDecision.begin();
-          outputDecision->setObjectLink( TrigCompositeUtils::viewString(), ElementLink< ViewContainer >(m_viewsKey.key(), iview ) ); //adding view to TC
-          ATH_MSG_DEBUG( "Adding already mapped view " << iview << " in ViewVector , to new decision");
           auto theview = viewVector->at(iview);
-          ATH_CHECK( linkViewToParent( inputDecision, theview ) );
+	  // check that this view is not already linked to this decision (this is true if the mergerd output is enabled)
+	  const auto existView = TrigCompositeUtils::findLink<ViewContainer> (outputDecision, TrigCompositeUtils::viewString());
+	  const auto existViewLink= existView.link;
+	  if (existViewLink.isValid() && existViewLink == ElementLink< ViewContainer >(m_viewsKey.key(), iview )){
+	    ATH_MSG_DEBUG( "View  already linked, doing nothing");
+	  } else if (existViewLink.isValid()){
+	    ATH_MSG_ERROR( "View already linked, but it is the wrong view! Configuration problem. Got " << existViewLink.index() << ", expected " << iview);
+            return StatusCode::FAILURE;
+          } else {
+	    outputDecision->setObjectLink( TrigCompositeUtils::viewString(), ElementLink< ViewContainer >(m_viewsKey.key(), iview ) ); //adding view to TC
+	    ATH_MSG_DEBUG( "Adding already mapped view " << iview << " in ViewVector , to new decision");
+	    ATH_CHECK( linkViewToParent( inputDecision, theview ) );
+	  }
         }
       }// loop over previous inputs
     } // loop over decisions   
@@ -127,6 +136,87 @@ StatusCode EventViewCreatorAlgorithm::execute( const EventContext& context ) con
 
 
 
+StatusCode EventViewCreatorAlgorithm::executeMerged( const EventContext& context ) const {
+
+   // create the output decisions, similar to inputs (copy basic links)
+  std::vector< SG::WriteHandle<TrigCompositeUtils::DecisionContainer> > outputHandles;
+  ATH_CHECK (decisionInputToOutput(context, outputHandles));
+
+  // make the views
+  auto viewsHandle = SG::makeHandle( m_viewsKey, context ); 
+  auto viewVector1 = std::make_unique< ViewContainer >();
+  ATH_CHECK( viewsHandle.record(  std::move( viewVector1 ) ) );
+  auto viewVector = viewsHandle.ptr();
+
+  
+  auto contexts = std::vector<EventContext>( );
+  unsigned int viewCounter = 0;
+  unsigned int conditionsRun = Atlas::getExtendedEventContext(context).conditionsRun();
+
+  //map all RoIs that are stored
+  ElementLinkVector<TrigRoiDescriptorCollection> RoIsFromDecision;
+
+  // loop over decisions
+  for (auto outputHandle: outputHandles) {
+    if( not outputHandle.isValid() ) {
+      ATH_MSG_DEBUG( "Got no decisions from output "<< outputHandle.key() << " because handle not valid");
+      continue;
+    }
+
+    if( outputHandle->size() == 0){ // input filtered out
+      ATH_MSG_DEBUG( "Got no decisions from output "<< outputHandle.key()<<": handle is valid but container is empty.");
+      continue;
+    }
+    ATH_MSG_DEBUG( "Got output "<< outputHandle.key()<<" with " << outputHandle->size() << " elements" );
+    // loop over output decisions in container of outputHandle, follow link to inputDecision
+    for ( auto outputDecision : *outputHandle){ 
+      const auto roiELInfo = TrigCompositeUtils::findLink<TrigRoiDescriptorCollection>( outputDecision, m_roisLink.value() );
+      const auto roiEL = roiELInfo.link;
+      ATH_CHECK( roiEL.isValid() );
+      // check if already found
+      auto roiIt=find(RoIsFromDecision.begin(), RoIsFromDecision.end(), roiEL);
+      if ( roiIt == RoIsFromDecision.end() ){
+	RoIsFromDecision.push_back(roiEL); // just to keep track of which we have used 
+	ATH_MSG_DEBUG("Found RoI:" <<**roiEL<<" FS="<<(*roiEL)->isFullscan());
+	ATH_MSG_DEBUG("Positive decisions on RoI, making view" );
+	// make the view
+	auto newView = ViewHelper::makeView( name()+"_view", viewCounter++, m_viewFallThrough ); //pointer to the view
+	viewVector->push_back( newView );
+	contexts.emplace_back( context );
+	Atlas::setExtendedEventContext (contexts.back(),
+					Atlas::ExtendedEventContext( viewVector->back(), conditionsRun, *roiEL ) );
+	
+	// link decision to this view
+	outputDecision->setObjectLink( TrigCompositeUtils::viewString(), ElementLink< ViewContainer >(m_viewsKey.key(), viewVector->size()-1 ));//adding view to TC
+	ATH_MSG_DEBUG( "Adding new view to new decision; storing view in viewVector component " << viewVector->size()-1 );
+	ATH_CHECK( placeRoIInView( roiEL, viewVector->back(), contexts.back() ) );
+	ElementLinkVector<DecisionContainer> inputLinks = getLinkToPrevious(outputDecision);
+	ATH_MSG_DEBUG( "Got inputLinks with " << inputLinks.size() << " elements" );
+	for (auto input: inputLinks){
+	  const Decision* inputDecision = *input;
+	  ATH_CHECK( linkViewToParent( inputDecision, viewVector->back() ) );
+	}
+      }
+      else {          
+	ATH_MSG_DEBUG( "View  already linked, doing nothing");	
+      }
+    } // loop over decisions   
+  }// loop over output keys
+
+  // launch view execution
+  ATH_MSG_DEBUG( "Launching execution in " << viewVector->size() << " views" );
+  ATH_CHECK( ViewHelper::ScheduleViews( viewVector,           // Vector containing views
+					m_viewNodeName,             // CF node to attach views to
+					context,                    // Source context
+					getScheduler(), 
+					m_reverseViews ) );
+  
+  if (msgLvl(MSG::DEBUG)) debugPrintOut(context, outputHandles);
+  return StatusCode::SUCCESS;
+}
+
+
+
 StatusCode EventViewCreatorAlgorithm::linkViewToParent( const TrigCompositeUtils::Decision* inputDecision, SG::View* newView ) const {
   if ( m_requireParentView ) {
     // see if there is a view linked to the decision object, if so link it to the view that is just made
diff --git a/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.h b/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.h
index 0706b8dfce56378c2194191e4d66613ad576324c..ef230e5c700238022d9e365205803dd7224baa7e 100644
--- a/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.h
+++ b/Trigger/TrigSteer/ViewAlgs/src/EventViewCreatorAlgorithm.h
@@ -39,6 +39,10 @@ class EventViewCreatorAlgorithm : public ::InputMakerBase
  protected:
 
     EventViewCreatorAlgorithm();
+    
+    // Used instead of execute, when mergeOutputs is true
+    // Note: if we enforce the merging beahviour this will become the default execute()
+    StatusCode executeMerged(const EventContext&) const;
 
     //Output views for merging
     SG::WriteHandleKey< ViewContainer > m_viewsKey{ this, "Views", "Unspecified", "The key of views collection produced" };
diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/q221_RDOtoRDOTrig_mt1_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/q221_RDOtoRDOTrig_mt1_build.ref
index ffbebde66d2070755a0d5cde9a9cd4cab374810a..acce5fb7572624325dd66d61badfb92f1a6ba511 100644
--- a/Trigger/TrigValidation/TrigAnalysisTest/share/q221_RDOtoRDOTrig_mt1_build.ref
+++ b/Trigger/TrigValidation/TrigAnalysisTest/share/q221_RDOtoRDOTrig_mt1_build.ref
@@ -1,176 +1,174 @@
-TrigSignatureMoniMT                                INFO HLT_2e17_etcut_L12EM15VH      2         2         2         2         2         0         0         0         2
-TrigSignatureMoniMT                                INFO HLT_2e17_etcut_L12EM15VH decisions                    6         826       7         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2e3_etcut_L12EM3          20        20        20        20        20        0         0         0         20
-TrigSignatureMoniMT                                INFO HLT_2e3_etcut_L12EM3 decisions                    172       8889      387       0         0         0
-TrigSignatureMoniMT                                INFO HLT_2g20_tight_L12EM20VH      2         2         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2g20_tight_L12EM20VH decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2g35_etcut_L12EM20VH      2         2         1         1         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2g35_etcut_L12EM20VH decisions                    2         2         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2g35_medium_L12EM20VH     2         2         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2g35_medium_L12EM20VH decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J1003         3         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J100 decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2mu10_bJpsimumu_L12MU10   3         3         3         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2mu10_bJpsimumu_L12MU10 decisions                    18        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2mu10_bUpsimumu_L12MU10   3         3         3         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2mu10_bUpsimumu_L12MU10 decisions                    18        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2mu14_L12MU10             3         3         3         1         1         1         0         0         1
-TrigSignatureMoniMT                                INFO HLT_2mu14_L12MU10 decisions                       18        6         4         4         0         0
-TrigSignatureMoniMT                                INFO HLT_2mu4_bJpsimumu_L12MU4     4         4         4         2         1         1         1         0         1
-TrigSignatureMoniMT                                INFO HLT_2mu4_bJpsimumu_L12MU4 decisions                    24        4         6         6         1         0
-TrigSignatureMoniMT                                INFO HLT_2mu4_bUpsimumu_L12MU4     4         4         4         1         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2mu4_bUpsimumu_L12MU4 decisions                    24        1         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2mu6Comb_L12MU6           4         4         4         1         0         0         0         0         1
-TrigSignatureMoniMT                                INFO HLT_2mu6Comb_L12MU6 decisions                     24        6         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_2mu6_10invm70_L1MU6       10        10        4         1         1         1         1         0         1
-TrigSignatureMoniMT                                INFO HLT_2mu6_10invm70_L1MU6 decisions                    24        6         4         4         1         0
-TrigSignatureMoniMT                                INFO HLT_2mu6_L12MU6               4         4         4         1         1         1         0         0         1
-TrigSignatureMoniMT                                INFO HLT_2mu6_L12MU6 decisions                         24        6         4         4         0         0
-TrigSignatureMoniMT                                INFO HLT_3j200_L1J100              3         3         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_3j200_L1J100 decisions                        0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_3j200_L1J20               19        19        0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_3j200_L1J20 decisions                         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_3mu6_L13MU6               0         0         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_3mu6_L13MU6 decisions                         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_3mu6_msonly_L13MU6        0         0         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_3mu6_msonly_L13MU6 decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_4mu4_L14MU4               0         0         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_4mu4_L14MU4 decisions                         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_5j70_0eta240_L14J20       7         7         1         0         0         0         0         0         1
-TrigSignatureMoniMT                                INFO HLT_5j70_0eta240_L14J20 decisions                    5         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_e26_etcut_L1EM22VHI       6         6         6         6         6         0         0         0         6
-TrigSignatureMoniMT                                INFO HLT_e26_etcut_L1EM22VHI decisions                    7         645       7         0         0         0
-TrigSignatureMoniMT                                INFO HLT_e3_etcut1step_mu6fast_L1EM8I_MU105         5         5         0         0         0         0         0         5
-TrigSignatureMoniMT                                INFO HLT_e3_etcut1step_mu6fast_L1EM8I_MU10 decisions                    17        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_e3_etcut_L1EM3            20        20        20        20        20        0         0         0         20
-TrigSignatureMoniMT                                INFO HLT_e3_etcut_L1EM3 decisions                      172       8889      387       0         0         0
-TrigSignatureMoniMT                                INFO HLT_e5_etcut_L1EM3            20        20        20        20        20        0         0         0         20
-TrigSignatureMoniMT                                INFO HLT_e5_etcut_L1EM3 decisions                      140       7892      185       0         0         0
-TrigSignatureMoniMT                                INFO HLT_e7_etcut_L1EM3            20        20        20        20        20        0         0         0         20
-TrigSignatureMoniMT                                INFO HLT_e7_etcut_L1EM3 decisions                      89        5506      108       0         0         0
-TrigSignatureMoniMT                                INFO HLT_g140_etcut_L1EM24VHI      6         6         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_g140_etcut_L1EM24VHI decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_g140_loose_L1EM24VHI      6         6         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_g140_loose_L1EM24VHI decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_g20_etcut_LArPEB_L1EM15   14        14        14        14        11        11        0         0         11
-TrigSignatureMoniMT                                INFO HLT_g20_etcut_LArPEB_L1EM15 decisions                    24        24        21        21        0         0
-TrigSignatureMoniMT                                INFO HLT_g5_etcut_L1EM3            20        20        20        20        20        0         0         0         20
-TrigSignatureMoniMT                                INFO HLT_g5_etcut_L1EM3 decisions                      140       140       185       0         0         0
-TrigSignatureMoniMT                                INFO HLT_g5_etcut_LArPEB_L1EM3     20        20        20        20        20        20        0         0         20
-TrigSignatureMoniMT                                INFO HLT_g5_etcut_LArPEB_L1EM3 decisions                    140       140       185       185       0         0
-TrigSignatureMoniMT                                INFO HLT_g5_loose_L1EM3            20        20        17        17        17        9         0         0         9
-TrigSignatureMoniMT                                INFO HLT_g5_loose_L1EM3 decisions                      57        57        116       14        0         0
-TrigSignatureMoniMT                                INFO HLT_g5_medium_L1EM3           20        20        16        16        16        9         0         0         9
-TrigSignatureMoniMT                                INFO HLT_g5_medium_L1EM3 decisions                     48        48        92        14        0         0
-TrigSignatureMoniMT                                INFO HLT_g5_tight_L1EM3            20        20        16        16        16        9         0         0         9
-TrigSignatureMoniMT                                INFO HLT_g5_tight_L1EM3 decisions                      45        45        84        9         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_j225_ftf_subjesgscIS_bmv2c1040_split_L1J1003         3         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j225_ftf_subjesgscIS_bmv2c1040_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_31ETA492         2         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J75_31ETA49 decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j275_ftf_subjesgscIS_bmv2c1060_split_L1J1003         3         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j275_ftf_subjesgscIS_bmv2c1060_split_L1J100 decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j300_ftf_subjesgscIS_bmv2c1070_split_L1J1003         3         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j300_ftf_subjesgscIS_bmv2c1070_split_L1J100 decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j360_ftf_subjesgscIS_bmv2c1077_split_L1J1003         3         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j360_ftf_subjesgscIS_bmv2c1077_split_L1J100 decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j420_L1J100               3         3         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_j420_ftf_subjesgscIS_L1J2019        19        0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j420_ftf_subjesgscIS_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_j45_ftf_pf_L1J20          19        19        16        0         0         0         0         0         16
-TrigSignatureMoniMT                                INFO HLT_j45_ftf_pf_L1J20 decisions                    16        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j45_ftf_subjesgscIS_L1J15 20        20        18        0         0         0         0         0         18
-TrigSignatureMoniMT                                INFO HLT_j45_ftf_subjesgscIS_L1J15 decisions                    18        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J2019        19        18        18        18        18        0         0         18
-TrigSignatureMoniMT                                INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J20 decisions                    18        49        49        49        0         0
-TrigSignatureMoniMT                                INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J2019        19        18        18        18        18        0         0         18
-TrigSignatureMoniMT                                INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20 decisions                    18        49        49        49        0         0
-TrigSignatureMoniMT                                INFO HLT_j460_a10_lcw_subjes_L1J1003         3         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
-TrigSignatureMoniMT                                INFO HLT_j460_a10_lcw_subjes_L1J20 decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j460_a10r_L1J100          3         3         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j460_a10r_L1J100 decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j460_a10r_L1J20           19        19        0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j460_a10r_L1J20 decisions                     0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J1003         3         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J100 decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j460_a10t_lcw_jes_L1J100  3         3         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j460_a10t_lcw_jes_L1J100 decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J2019        19        11        0         0         0         0         0         11
-TrigSignatureMoniMT                                INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J20 decisions                    11        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_j80_j60_L1J15             20        20        13        0         0         0         0         0         13
-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_j85_ftf_pf_L1J20          19        19        10        0         0         0         0         0         10
-TrigSignatureMoniMT                                INFO HLT_j85_ftf_pf_L1J20 decisions                    10        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
-TrigSignatureMoniMT                                INFO HLT_mu20_ivar_L1MU6 decisions                     14        6         3         0         0         0
-TrigSignatureMoniMT                                INFO HLT_mu24_idperf_L1MU20        8         8         6         6         5         5         0         0         5
-TrigSignatureMoniMT                                INFO HLT_mu24_idperf_L1MU20 decisions                    7         7         6         6         0         0
-TrigSignatureMoniMT                                INFO HLT_mu26_ivarmedium_L1MU20    8         8         8         5         4         3         3         0         3
-TrigSignatureMoniMT                                INFO HLT_mu26_ivarmedium_L1MU20 decisions                    10        6         5         4         4         0
-TrigSignatureMoniMT                                INFO HLT_mu50_L1MU20               8         8         8         5         1         1         0         0         1
-TrigSignatureMoniMT                                INFO HLT_mu50_L1MU20 decisions                         10        6         1         1         0         0
-TrigSignatureMoniMT                                INFO HLT_mu50_RPCPEBSecondaryReadout_L1MU208         8         8         5         1         1         1         0         1
-TrigSignatureMoniMT                                INFO HLT_mu50_RPCPEBSecondaryReadout_L1MU20 decisions                    10        6         1         1         1         0
-TrigSignatureMoniMT                                INFO HLT_mu60_0eta105_msonly_L1MU208         8         1         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_mu60_0eta105_msonly_L1MU20 decisions                    2         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_mu6Comb_L1MU6             10        10        10        5         0         0         0         0         5
-TrigSignatureMoniMT                                INFO HLT_mu6Comb_L1MU6 decisions                       14        6         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_mu6_L1MU6                 10        10        10        5         5         5         0         0         5
-TrigSignatureMoniMT                                INFO HLT_mu6_L1MU6 decisions                           14        6         6         6         0         0
-TrigSignatureMoniMT                                INFO HLT_mu6_idperf_L1MU6          10        10        10        10        10        10        0         0         10
-TrigSignatureMoniMT                                INFO HLT_mu6_idperf_L1MU6 decisions                    14        14        17        20        0         0
-TrigSignatureMoniMT                                INFO HLT_mu6_ivarmedium_L1MU6      10        10        10        5         5         5         5         0         5
-TrigSignatureMoniMT                                INFO HLT_mu6_ivarmedium_L1MU6 decisions                    14        6         6         6         6         0
-TrigSignatureMoniMT                                INFO HLT_mu6_msonly_L1MU6          10        10        10        0         10        0         0         0         10
-TrigSignatureMoniMT                                INFO HLT_mu6_msonly_L1MU6 decisions                    14        0         17        0         0         0
-TrigSignatureMoniMT                                INFO HLT_mu6_mu4_L12MU4            4         4         4         3         1         1         0         0         1
-TrigSignatureMoniMT                                INFO HLT_mu6_mu4_L12MU4 decisions                      40        18        6         6         0         0
-TrigSignatureMoniMT                                INFO HLT_mu6_mu6noL1_L1MU6         10        10        10        5         5         5         3         1         1
-TrigSignatureMoniMT                                INFO HLT_mu6_mu6noL1_L1MU6 decisions                    14        6         6         6         8         2
-TrigSignatureMoniMT                                INFO HLT_mu6fast_L1MU6             10        10        10        0         0         0         0         0         10
-TrigSignatureMoniMT                                INFO HLT_mu6fast_L1MU6 decisions                       14        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_mu80_msonly_3layersEC_L1MU208         8         8         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_mu80_msonly_3layersEC_L1MU20 decisions                    10        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_tau0_perf_ptonly_L1TAU12  18        18        18        18        0         0         0         0         18
-TrigSignatureMoniMT                                INFO HLT_tau0_perf_ptonly_L1TAU12 decisions                    39        29        0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_tau160_mediumRNN_tracktwoMVA_L1TAU1000         0         0         0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_tau160_mediumRNN_tracktwoMVA_L1TAU100 decisions                    0         0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_tau25_idperf_tracktwoMVA_L1TAU12IM14        14        14        0         0         0         0         0         14
-TrigSignatureMoniMT                                INFO HLT_tau25_idperf_tracktwoMVA_L1TAU12IM decisions                    24        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_tau25_idperf_tracktwo_L1TAU12IM14        14        14        12        11        0         0         0         11
-TrigSignatureMoniMT                                INFO HLT_tau25_idperf_tracktwo_L1TAU12IM decisions                    24        19        12        0         0         0
-TrigSignatureMoniMT                                INFO HLT_tau25_medium1_tracktwo_L1TAU12IM14        14        12        10        9         0         0         0         9
-TrigSignatureMoniMT                                INFO HLT_tau25_medium1_tracktwo_L1TAU12IM decisions                    21        16        9         0         0         0
-TrigSignatureMoniMT                                INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM14        14        11        0         0         0         0         0         11
-TrigSignatureMoniMT                                INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM decisions                    19        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_xe30_cell_L1XE10          19        19        17        0         0         0         0         0         17
-TrigSignatureMoniMT                                INFO HLT_xe30_cell_L1XE10 decisions                    17        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_xe30_cell_xe30_tcpufit_L1XE1019        19        18        0         0         0         0         0         14
-TrigSignatureMoniMT                                INFO HLT_xe30_cell_xe30_tcpufit_L1XE10 decisions                    46        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_xe30_mht_L1XE10           19        19        19        0         0         0         0         0         19
-TrigSignatureMoniMT                                INFO HLT_xe30_mht_L1XE10 decisions                     19        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_xe30_tcpufit_L1XE10       19        19        15        0         0         0         0         0         15
-TrigSignatureMoniMT                                INFO HLT_xe30_tcpufit_L1XE10 decisions                    15        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_xe30_trkmht_L1XE10        19        19        17        0         0         0         0         0         17
-TrigSignatureMoniMT                                INFO HLT_xe30_trkmht_L1XE10 decisions                    17        0         0         0         0         0
-TrigSignatureMoniMT                                INFO HLT_xe65_cell_L1XE50          10        10        7         0         0         0         0         0         7
-TrigSignatureMoniMT                                INFO HLT_xe65_cell_L1XE50 decisions                    7         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2e17_etcut_L12EM15VH      2         2         2         2         2         0         0         2
+TrigSignatureMoniMT                                INFO HLT_2e17_etcut_L12EM15VH decisions                    6         826       7         0         0
+TrigSignatureMoniMT                                INFO HLT_2e3_etcut_L12EM3          20        20        20        20        20        0         0         20
+TrigSignatureMoniMT                                INFO HLT_2e3_etcut_L12EM3 decisions                    172       8889      387       0         0
+TrigSignatureMoniMT                                INFO HLT_2g20_tight_L12EM20VH      2         2         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2g20_tight_L12EM20VH decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2g35_etcut_L12EM20VH      2         2         1         1         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2g35_etcut_L12EM20VH decisions                    2         2         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2g35_medium_L12EM20VH     2         2         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2g35_medium_L12EM20VH decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J1003         3         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J100 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2mu10_bJpsimumu_L12MU10   3         3         3         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2mu10_bJpsimumu_L12MU10 decisions                    12        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2mu10_bUpsimumu_L12MU10   3         3         3         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2mu10_bUpsimumu_L12MU10 decisions                    12        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2mu14_L12MU10             3         3         3         1         1         1         0         1
+TrigSignatureMoniMT                                INFO HLT_2mu14_L12MU10 decisions                       12        4         4         4         0
+TrigSignatureMoniMT                                INFO HLT_2mu4_bJpsimumu_L12MU4     4         4         4         2         1         1         1         1
+TrigSignatureMoniMT                                INFO HLT_2mu4_bJpsimumu_L12MU4 decisions                    16        4         6         6         1
+TrigSignatureMoniMT                                INFO HLT_2mu4_bUpsimumu_L12MU4     4         4         4         1         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2mu4_bUpsimumu_L12MU4 decisions                    16        1         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2mu6Comb_L12MU6           4         4         4         1         0         0         0         1
+TrigSignatureMoniMT                                INFO HLT_2mu6Comb_L12MU6 decisions                     16        4         0         0         0
+TrigSignatureMoniMT                                INFO HLT_2mu6_10invm70_L1MU6       10        10        4         1         1         1         1         0
+TrigSignatureMoniMT                                INFO HLT_2mu6_10invm70_L1MU6 decisions                    16        4         4         4         1
+TrigSignatureMoniMT                                INFO HLT_2mu6_L12MU6               4         4         4         1         1         1         0         1
+TrigSignatureMoniMT                                INFO HLT_2mu6_L12MU6 decisions                         16        4         4         4         0
+TrigSignatureMoniMT                                INFO HLT_3j200_L1J100              3         3         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_3j200_L1J100 decisions                        0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_3j200_L1J20               19        19        0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_3j200_L1J20 decisions                         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_3mu6_L13MU6               0         0         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_3mu6_L13MU6 decisions                         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_3mu6_msonly_L13MU6        0         0         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_3mu6_msonly_L13MU6 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_4mu4_L14MU4               0         0         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_4mu4_L14MU4 decisions                         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_5j70_0eta240_L14J20       7         7         1         0         0         0         0         1
+TrigSignatureMoniMT                                INFO HLT_5j70_0eta240_L14J20 decisions                    5         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_e26_etcut_L1EM22VHI       6         6         6         6         6         0         0         6
+TrigSignatureMoniMT                                INFO HLT_e26_etcut_L1EM22VHI decisions                    7         645       7         0         0
+TrigSignatureMoniMT                                INFO HLT_e3_etcut1step_mu6fast_L1EM8I_MU105         5         5         0         0         0         0         5
+TrigSignatureMoniMT                                INFO HLT_e3_etcut1step_mu6fast_L1EM8I_MU10 decisions                    5         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_e3_etcut_L1EM3            20        20        20        20        20        0         0         20
+TrigSignatureMoniMT                                INFO HLT_e3_etcut_L1EM3 decisions                      172       8889      387       0         0
+TrigSignatureMoniMT                                INFO HLT_e5_etcut_L1EM3            20        20        20        20        20        0         0         20
+TrigSignatureMoniMT                                INFO HLT_e5_etcut_L1EM3 decisions                      140       7892      185       0         0
+TrigSignatureMoniMT                                INFO HLT_e7_etcut_L1EM3            20        20        20        20        20        0         0         20
+TrigSignatureMoniMT                                INFO HLT_e7_etcut_L1EM3 decisions                      89        5506      108       0         0
+TrigSignatureMoniMT                                INFO HLT_g140_etcut_L1EM24VHI      6         6         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_g140_etcut_L1EM24VHI decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_g140_loose_L1EM24VHI      6         6         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_g140_loose_L1EM24VHI decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_g20_etcut_LArPEB_L1EM15   14        14        14        14        11        11        0         11
+TrigSignatureMoniMT                                INFO HLT_g20_etcut_LArPEB_L1EM15 decisions                    24        24        21        21        0
+TrigSignatureMoniMT                                INFO HLT_g5_etcut_L1EM3            20        20        20        20        20        0         0         20
+TrigSignatureMoniMT                                INFO HLT_g5_etcut_L1EM3 decisions                      140       140       185       0         0
+TrigSignatureMoniMT                                INFO HLT_g5_etcut_LArPEB_L1EM3     20        20        20        20        20        20        0         20
+TrigSignatureMoniMT                                INFO HLT_g5_etcut_LArPEB_L1EM3 decisions                    140       140       185       185       0
+TrigSignatureMoniMT                                INFO HLT_g5_loose_L1EM3            20        20        17        17        17        9         0         9
+TrigSignatureMoniMT                                INFO HLT_g5_loose_L1EM3 decisions                      57        57        116       14        0
+TrigSignatureMoniMT                                INFO HLT_g5_medium_L1EM3           20        20        16        16        16        9         0         9
+TrigSignatureMoniMT                                INFO HLT_g5_medium_L1EM3 decisions                     48        48        92        14        0
+TrigSignatureMoniMT                                INFO HLT_g5_tight_L1EM3            20        20        16        16        16        9         0         9
+TrigSignatureMoniMT                                INFO HLT_g5_tight_L1EM3 decisions                      45        45        84        9         0
+TrigSignatureMoniMT                                INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J2019        19        15        0         0         0         0         15
+TrigSignatureMoniMT                                INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20 decisions                    39        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j225_ftf_subjesgscIS_bmv2c1040_split_L1J1003         3         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j225_ftf_subjesgscIS_bmv2c1040_split_L1J100 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J20      19        19        0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J20 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J75_31ETA492         2         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j260_320eta490_L1J75_31ETA49 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j275_ftf_subjesgscIS_bmv2c1060_split_L1J1003         3         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j275_ftf_subjesgscIS_bmv2c1060_split_L1J100 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j300_ftf_subjesgscIS_bmv2c1070_split_L1J1003         3         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j300_ftf_subjesgscIS_bmv2c1070_split_L1J100 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j360_ftf_subjesgscIS_bmv2c1077_split_L1J1003         3         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j360_ftf_subjesgscIS_bmv2c1077_split_L1J100 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j420_L1J100               3         3         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j420_L1J100 decisions                         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j420_L1J20                19        19        0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j420_L1J20 decisions                          0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j420_ftf_subjesgscIS_L1J2019        19        0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j420_ftf_subjesgscIS_L1J20 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j45_L1J15                 20        20        18        0         0         0         0         18
+TrigSignatureMoniMT                                INFO HLT_j45_L1J15 decisions                           18        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j45_ftf_L1J15             20        20        18        0         0         0         0         18
+TrigSignatureMoniMT                                INFO HLT_j45_ftf_L1J15 decisions                       18        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j45_ftf_pf_L1J20          19        19        16        0         0         0         0         16
+TrigSignatureMoniMT                                INFO HLT_j45_ftf_pf_L1J20 decisions                    16        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j45_ftf_subjesgscIS_L1J15 20        20        18        0         0         0         0         18
+TrigSignatureMoniMT                                INFO HLT_j45_ftf_subjesgscIS_L1J15 decisions                    18        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J2019        19        18        18        18        18        0         18
+TrigSignatureMoniMT                                INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J20 decisions                    18        49        49        49        0
+TrigSignatureMoniMT                                INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J2019        19        18        18        18        18        0         18
+TrigSignatureMoniMT                                INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20 decisions                    18        49        49        49        0
+TrigSignatureMoniMT                                INFO HLT_j460_a10_lcw_subjes_L1J1003         3         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j460_a10_lcw_subjes_L1J100 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j460_a10_lcw_subjes_L1J20 19        19        0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j460_a10_lcw_subjes_L1J20 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j460_a10r_L1J100          3         3         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j460_a10r_L1J100 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j460_a10r_L1J20           19        19        0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j460_a10r_L1J20 decisions                     0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J1003         3         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J100 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j460_a10t_lcw_jes_L1J100  3         3         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j460_a10t_lcw_jes_L1J100 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J2019        19        0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J20 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j80_j60_L1J15             20        20        0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j80_j60_L1J15 decisions                       0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j85_L1J20                 19        19        13        0         0         0         0         13
+TrigSignatureMoniMT                                INFO HLT_j85_L1J20 decisions                           13        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j85_ftf_L1J20             19        19        13        0         0         0         0         13
+TrigSignatureMoniMT                                INFO HLT_j85_ftf_L1J20 decisions                       13        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_j85_ftf_pf_L1J20          19        19        10        0         0         0         0         10
+TrigSignatureMoniMT                                INFO HLT_j85_ftf_pf_L1J20 decisions                    10        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_mu10_lateMu_L1MU10        10        10        0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_mu10_lateMu_L1MU10 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_mu20_ivar_L1MU6           10        10        10        5         3         0         0         3
+TrigSignatureMoniMT                                INFO HLT_mu20_ivar_L1MU6 decisions                     14        6         3         0         0
+TrigSignatureMoniMT                                INFO HLT_mu24_idperf_L1MU20        8         8         6         6         5         5         0         5
+TrigSignatureMoniMT                                INFO HLT_mu24_idperf_L1MU20 decisions                    7         7         6         6         0
+TrigSignatureMoniMT                                INFO HLT_mu26_ivarmedium_L1MU20    8         8         8         5         4         3         3         3
+TrigSignatureMoniMT                                INFO HLT_mu26_ivarmedium_L1MU20 decisions                    10        6         5         4         4
+TrigSignatureMoniMT                                INFO HLT_mu50_L1MU20               8         8         8         5         1         1         0         1
+TrigSignatureMoniMT                                INFO HLT_mu50_L1MU20 decisions                         10        6         1         1         0
+TrigSignatureMoniMT                                INFO HLT_mu50_RPCPEBSecondaryReadout_L1MU208         8         8         5         1         1         1         1
+TrigSignatureMoniMT                                INFO HLT_mu50_RPCPEBSecondaryReadout_L1MU20 decisions                    10        6         1         1         1
+TrigSignatureMoniMT                                INFO HLT_mu60_0eta105_msonly_L1MU208         8         1         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_mu60_0eta105_msonly_L1MU20 decisions                    2         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_mu6Comb_L1MU6             10        10        10        5         0         0         0         5
+TrigSignatureMoniMT                                INFO HLT_mu6Comb_L1MU6 decisions                       14        6         0         0         0
+TrigSignatureMoniMT                                INFO HLT_mu6_L1MU6                 10        10        10        5         5         5         0         5
+TrigSignatureMoniMT                                INFO HLT_mu6_L1MU6 decisions                           14        6         6         6         0
+TrigSignatureMoniMT                                INFO HLT_mu6_idperf_L1MU6          10        10        10        10        10        10        0         10
+TrigSignatureMoniMT                                INFO HLT_mu6_idperf_L1MU6 decisions                    14        14        17        20        0
+TrigSignatureMoniMT                                INFO HLT_mu6_ivarmedium_L1MU6      10        10        10        5         5         5         5         5
+TrigSignatureMoniMT                                INFO HLT_mu6_ivarmedium_L1MU6 decisions                    14        6         6         6         6
+TrigSignatureMoniMT                                INFO HLT_mu6_msonly_L1MU6          10        10        10        0         10        0         0         10
+TrigSignatureMoniMT                                INFO HLT_mu6_msonly_L1MU6 decisions                    14        0         17        0         0
+TrigSignatureMoniMT                                INFO HLT_mu6_mu4_L12MU4            4         4         4         1         1         1         0         1
+TrigSignatureMoniMT                                INFO HLT_mu6_mu4_L12MU4 decisions                      8         2         2         2         0
+TrigSignatureMoniMT                                INFO HLT_mu6fast_L1MU6             10        10        10        0         0         0         0         10
+TrigSignatureMoniMT                                INFO HLT_mu6fast_L1MU6 decisions                       14        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_mu80_msonly_3layersEC_L1MU208         8         8         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_mu80_msonly_3layersEC_L1MU20 decisions                    10        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_tau0_perf_ptonly_L1TAU12  18        18        18        18        0         0         0         18
+TrigSignatureMoniMT                                INFO HLT_tau0_perf_ptonly_L1TAU12 decisions                    39        29        0         0         0
+TrigSignatureMoniMT                                INFO HLT_tau160_mediumRNN_tracktwoMVA_L1TAU1000         0         0         0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_tau160_mediumRNN_tracktwoMVA_L1TAU100 decisions                    0         0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_tau25_idperf_tracktwoMVA_L1TAU12IM14        14        14        0         0         0         0         14
+TrigSignatureMoniMT                                INFO HLT_tau25_idperf_tracktwoMVA_L1TAU12IM decisions                    24        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_tau25_idperf_tracktwo_L1TAU12IM14        14        14        12        11        0         0         11
+TrigSignatureMoniMT                                INFO HLT_tau25_idperf_tracktwo_L1TAU12IM decisions                    24        19        12        0         0
+TrigSignatureMoniMT                                INFO HLT_tau25_medium1_tracktwo_L1TAU12IM14        14        12        10        9         0         0         9
+TrigSignatureMoniMT                                INFO HLT_tau25_medium1_tracktwo_L1TAU12IM decisions                    21        16        9         0         0
+TrigSignatureMoniMT                                INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM14        14        11        0         0         0         0         11
+TrigSignatureMoniMT                                INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM decisions                    19        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_xe30_cell_L1XE10          19        19        17        0         0         0         0         17
+TrigSignatureMoniMT                                INFO HLT_xe30_cell_L1XE10 decisions                    17        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_xe30_cell_xe30_tcpufit_L1XE1019        19        14        0         0         0         0         14
+TrigSignatureMoniMT                                INFO HLT_xe30_cell_xe30_tcpufit_L1XE10 decisions                    14        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_xe30_mht_L1XE10           19        19        19        0         0         0         0         19
+TrigSignatureMoniMT                                INFO HLT_xe30_mht_L1XE10 decisions                     19        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_xe30_tcpufit_L1XE10       19        19        15        0         0         0         0         15
+TrigSignatureMoniMT                                INFO HLT_xe30_tcpufit_L1XE10 decisions                    15        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_xe30_trkmht_L1XE10        19        19        17        0         0         0         0         17
+TrigSignatureMoniMT                                INFO HLT_xe30_trkmht_L1XE10 decisions                    17        0         0         0         0
+TrigSignatureMoniMT                                INFO HLT_xe65_cell_L1XE50          10        10        7         0         0         0         0         7
+TrigSignatureMoniMT                                INFO HLT_xe65_cell_L1XE50 decisions                    7         0         0         0         0
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/CMakeLists.txt b/Trigger/TrigValidation/TrigUpgradeTest/CMakeLists.txt
index 50d11bca97b6108760177a33e9e5368551390b9f..8c9a1cc48152bb08ade75a2f3a35125717542277 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/CMakeLists.txt
+++ b/Trigger/TrigValidation/TrigUpgradeTest/CMakeLists.txt
@@ -50,7 +50,7 @@ function( _add_test name )
 endfunction( _add_test )
 
 
-_add_test( emu_step_processing EXTRA_PATTERNS "-s TrigSignatureMoniMT.*INFO HLT_.*|TriggerSummaryStep.* chains passed:|TriggerSummaryStep.*+++ HLT_.*") # should be moved to TriggerMenuMT
+_add_test( emu_step_processing EXTRA_PATTERNS "-s TrigSignatureMoniMT.*INFO HLT_.*|TriggerSummaryStep.* chains passed:|TriggerSummaryStep.*+++ HLT_.*|TriggerSummaryStep.*+++ leg.*") # should be moved to TriggerMenuMT
 
 # Unit tests of the test scripts
 atlas_add_test( flake8_test_dir
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/EmuStepProcessingConfig.py b/Trigger/TrigValidation/TrigUpgradeTest/python/EmuStepProcessingConfig.py
index bede0453102a8054a53dafffaf61e9e4de974bcd..412cd97d5ebd7095c7aefc09129384daa5db2a07 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/python/EmuStepProcessingConfig.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/python/EmuStepProcessingConfig.py
@@ -24,34 +24,48 @@ def generateL1DecoderAndChains():
     AlgScheduler.ShowDataFlow( True )
 
     # 4 events
-    data = {'noreco': [';', ';', ';',';']}  # in the lists there are the events
+    data = {
+        'noreco': [';', ';', ';',';'],
+        'emclusters': [';', ';', ';',';'],
+        'msmu': [';', ';', ';',';'],
+        'ctp': [';', ';', ';',';'],
+        'l1emroi': [';', ';', ';',';'],
+        'l1muroi': [';', ';', ';',';']
+        }  # in the lists there are the events
 
-    data['emclusters'] = [ ';',
-                        'eta:1,phi:1,et:180000; eta:1,phi:-1.2,et:35000;',
-                        'eta:0.5,phi:0,et:120000; eta:1,phi:-1.2,et:65000;',
-                        'eta:-0.6,phi:1.7,et:9000;']
 
-    data['msmu']  = [';',
-                     ';',
-                     'eta:-1.2,phi:0.7,pt:6500,pt2:8500; eta:-1.1,phi:0.6,pt:8500,pt2:8500;',
-                     'eta:-1.7,phi:-0.2,pt:29500,pt2:8500;']
-
-    #data['ctp'] = [ 'HLT_e20 HLT_e5_e8 HLT_e5 HLT_e8 HLT_e5v22 HLT_g5',
-    data['ctp'] = [ 'HLT_e20_L1EM10 HLT_e5_e8_L1EM3_EM5 HLT_e5_L1EM7 HLT_e8_L1EM7 HLT_g5_EM7',
-                    'HLT_e20_L1EM10 HLT_e5_e8_L1EM3_EM5 HLT_e5_L1EM7 HLT_e8_L1EM7 HLT_g5_L1EM7 HLT_e5_v3_L1EM7',
-                    'HLT_mu6_L1MU6 HLT_mu8_L1MU10 HLT_mu10_L1MU10 HLT_mu8_1step_L1MU6 HLT_e20_L1EM10 HLT_e8_L1EM7 HLT_mu8_e8_L1MU6_EM7 HLT_e3_e5_L1EM3_EM5 HLT_2mu6_L12MU6 HLT_2mu6Comb_L12MU6 HLT_2mu4_bDimu_L12MU4',
-                    'HLT_mu20_L1MU10 HLT_mu10_L1MU10 HLT_mu8_L1MU10 HLT_mu8_1step_L1MU6 HLT_2mu8 HLT_e8_L1EM7' ]
-
-
-    data['l1emroi'] = [ ';',
-                        '1,1,0,EM3,EM7,EM15,EM20,EM50,EM100; 1,-1.2,0,EM3,EM7',
-                        '-0.6,0.2,0,EM3,EM7,EM15,EM20,EM50,EM100; 1,-1.1,0,EM3,EM7,EM15,EM20,EM50',
-                        '-0.6,1.5,0,EM3,EM7,EM7']
-
-    data['l1muroi'] = [';',
-                       '0,0,0,MU0;',
-                       '-1,0.5,0,MU6,MU8; 1,0.5,0,MU6,MU8,MU10',
-                       '-1.5,-0.1,0,MU6,MU8,MU10']
+    
+    # event 0: empty
+    data['ctp'] [0]      =  'HLT_e20_L1EM10 HLT_e5_e8_L1EM3_EM5 HLT_e5_L1EM7 HLT_e8_L1EM7 HLT_g5_EM7'
+    data['l1emroi'][0]   = ';'
+    data['emclusters'][0]= ';'
+    data['l1muroi'][0]   = ';'
+    data['msmu'][0]      = ';'
+
+
+    #event 1: 3e (1 not passing at L1, 1 not passing at step1) + 2mu (2 not passing) - HLT_e5_e8_L1EM3_EM5 HLT_2mu6_L12MU6
+    data['ctp'] [1]      =  'HLT_e20_L1EM10 HLT_e5_L1EM7 HLT_e8_L1EM7 HLT_g5_L1EM7 HLT_e5_v3_L1EM7 HLT_e5_e8_L1EM3_EM5 HLT_mu8_e8_L1MU6_EM7 HLT_2mu6_L12MU6'
+    data['l1emroi'][1]   =  '1,1,0,EM3,EM5,EM7,EM20,EM50,EM100; 2.,-1.2,0,EM3,EM5; 3.,0.2,0,EM3;'
+    data['emclusters'][1]=  'eta:1,phi:1,et:180000; eta:1,phi:-1.2,et:6000; eta:0.5,phi:-1.2,et:3000;'
+    data['l1muroi'][1]   =  '2,0.5,0,MU6; 3,0.5,0,MU6;'
+    #data['l1muroi'][1]   =  '0,0,0,MU0;'
+    data['msmu'][1]      = 'eta:-1.2,phi:0.7,pt:1500,pt2:1500; eta:-1.1,phi:0.6,pt:1500,pt2:1500;'
+ 
+    # event 2: 2e+ 2mu : HLT_e5_e8_2mu6_L1EM3_EM5_L12MU6, HLT_mu6_e8_L1MU6_EM5
+    data['ctp'] [2]      =  'HLT_mu6_L1MU6 HLT_mu8_L1MU10 HLT_mu10_L1MU10 HLT_mu8_1step_L1MU6 HLT_e20_L1EM10 HLT_e8_L1EM7 HLT_mu6_e8_L1MU6_EM5 HLT_mu6Comb_e8_L1MU6_EM5 HLT_e3_e5_L1EM3_EM5 HLT_2mu6_L12MU6 HLT_2mu6Comb_L12MU6 HLT_2mu4_bDimu_L12MU4 HLT_e5_e8_L1EM3_EM5 HLT_e5_e8_2mu6_L1EM3_EM5_L12MU6 HLT_mu6_mu6noL1_L1MU6'
+    data['l1emroi'][2]   =  '1,0.2,0,EM3,EM5, EM7,EM15,EM20,EM50,EM100; 1,-1.1,0,EM3,EM5,EM7,EM15,EM20,EM50;'
+    data['emclusters'][2]=  'eta:0.5,phi:0,et:120000; eta:1,phi:-1.2,et:65000;'
+    data['l1muroi'][2]   =  '2,0.5,0,MU6,MU8; 3,0.5,0,MU6,MU8,MU10;'
+    data['msmu'][2]      =  'eta:-1.2,phi:0.7,pt:6500,pt2:8500; eta:-1.1,phi:0.6,pt:8500,pt2:8500;'
+
+    #event 3: 1e + 1mu - HLT_mu6_e8_L1MU6_EM5
+    data['ctp'] [3]      =  'HLT_mu20_L1MU10 HLT_mu10_L1MU10 HLT_mu8_L1MU10 HLT_mu8_1step_L1MU6 HLT_2mu8 HLT_e8_L1EM7 HLT_mu6_e8_L1MU6_EM5 HLT_mu6Comb_e8_L1MU6_EM5'
+    data['l1emroi'][3]   =  '1,1.5,0,EM3,EM5,EM7;'
+    data['emclusters'][3]=  'eta:-0.6,phi:1.7,et:9000;'
+    data['l1muroi'][3]   =  '2,-0.1,0,MU6,MU8,MU10;'
+    data['msmu'][3]      =  'eta:-1.7,phi:-0.2,pt:29500,pt2:8500;'
+
+    # otehr vectors
 
     data['tracks'] = ['eta:1,phi:1,pt:120000; eta:1,phi:-1.2,et:32000;',
                       'eta:1,phi:1,pt:120000; eta:1,phi:-1.2,et:32000;',
@@ -80,21 +94,19 @@ def generateL1DecoderAndChains():
     from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import ChainStep
 
 
-    doMuon=True
-    doElectron=True
-    doCombo=True
+    doMuon     = True
+    doElectron = True
+    doCombo    = True
 
     HLTChains = []
-    #EnabledElChains = []
-    #EnabledMuChains = []
-    #EnabledMuComboChains = []
-    #EnabledElComboChains = []
 
     # muon chains
     if doMuon:
         from TrigUpgradeTest.HLTSignatureConfig import  muMenuSequence
         #step1
         mu11 = muMenuSequence(step="1",reconame="v1", hyponame="v1")
+        mu12 = muMenuSequence(step="1",reconame="v2", hyponame="v2")
+                    
         #step2
         mu21 = muMenuSequence(step="2",reconame="v1", hyponame="v1")
         mu22 = muMenuSequence(step="2",reconame="v2", hyponame="v2")
@@ -104,12 +116,12 @@ def generateL1DecoderAndChains():
         #step4
         mu41 = muMenuSequence(step="4",reconame="v1", hyponame="v1")
 
-        step_mu11  = ChainStep("Step_mu11", [mu11])
-        step_mu21  = ChainStep("Step_mu21", [mu21] )
-        step_mu22  = ChainStep("Step_mu22", [mu22] )
-        step_mu31  = ChainStep("Step_mu31", [mu31] )
-        step_mu32  = ChainStep("Step_mu32", [mu32] )
-        step_mu41  = ChainStep("Step_mu41", [mu41] )
+        step_mu11  = ChainStep("Step1_mu11", [mu11])
+        step_mu21  = ChainStep("Step2_mu21", [mu21] )
+        step_mu22  = ChainStep("Step2_mu22", [mu22] )
+        step_mu31  = ChainStep("Step3_mu31", [mu31] )
+        step_mu32  = ChainStep("Step3_mu32", [mu32] )
+        step_mu41  = ChainStep("Step4_mu41", [mu41] )
         
         step_empy= ChainStep("Step_empty")
 
@@ -164,6 +176,7 @@ def generateL1DecoderAndChains():
             from TrigUpgradeTest.HLTSignatureConfig import muMenuSequence
             #step1
             mu11 = muMenuSequence(step="1",reconame="v1", hyponame="v1")
+            mu12 = muMenuSequence(step="1",reconame="v2", hyponame="v2")
             #step2
             mu21 = muMenuSequence(step="2",reconame="v1", hyponame="v1")
             mu22 = muMenuSequence(step="2",reconame="v2", hyponame="v2")
@@ -174,7 +187,7 @@ def generateL1DecoderAndChains():
             mu41 = muMenuSequence(step="4",reconame="v1", hyponame="v1")
 
            
-            step_mu22  = ChainStep("Step_mu22", [mu22] )
+           
            
 
             
@@ -182,19 +195,35 @@ def generateL1DecoderAndChains():
         # multiplicity here indicates the number of objects to be combined:
         # for the chain dictionary, get the sum of the multiplicity in the multiplicy array
         # in symmetric chains, multiplicity=2 but only one sequence is used
-        
+
+
+     
         CombChains =[
-            makeChain(name='HLT_mu8_e8_L1MU6_EM7',  L1Thresholds=["MU6","EM7"], ChainSteps=[ ChainStep("Step1_mu_em", [mu11, el11], multiplicity=[1,1]),
-                                                             ChainStep("Step2_mu_em", [mu21, el21], multiplicity=[1,1])] ),
-            makeChain(name='HLT_e5_e8_L1EM3_EM5',   L1Thresholds=["EM3","EM5"], ChainSteps=[ ChainStep("Step1_2em",   [el11, el11], multiplicity=[1,1]),
-                                                             ChainStep("Step2_2em",   [el21, el21], multiplicity=[1,1]) ]),
+
+            makeChain(name='HLT_mu6_e8_L1MU6_EM5',  L1Thresholds=["MU6","EM5"], ChainSteps=[ ChainStep("Step1_mu_em", [mu11, el11], multiplicity=[1,1]),
+                                                                                             ChainStep("Step2_mu_em", [mu21, el21], multiplicity=[1,1])] ),
+
+            makeChain(name='HLT_mu6Comb_e8_L1MU6_EM5', L1Thresholds=["MU6","EM5"], ChainSteps=[ ChainStep("Step1_mu2_em", [mu12, el11], multiplicity=[1,1]),
+                                                                                                ChainStep("Step2_mu_em", [mu21, el21], multiplicity=[1,1])] ),
+
+            makeChain(name='HLT_e5_e8_L1EM3_EM5',   L1Thresholds=["EM3","EM5"], ChainSteps=[ ChainStep("Step1_2emAs",   [el11, el11], multiplicity=[1,1]),
+                                                                                             ChainStep("Step2_2emAs",   [el21, el21], multiplicity=[1,1]) ]),
+            makeChain(name='HLT_e5_e8_2mu6_L1EM3_EM5_L12MU6',   L1Thresholds=["EM3","EM5","MU6"],
+                                                                                ChainSteps=[ChainStep("Step1_2em_2mu",   [el11,el11,mu11], multiplicity=[1,1,2]),
+                                                                                            ChainStep("Step2_2em_2mu",   [el21,el21,mu21], multiplicity=[1,1,2]) ]),
             makeChain(name='HLT_2mu6_L12MU6',       L1Thresholds=["MU6"], ChainSteps=[ ChainStep("Step1_2mu",   [mu11], multiplicity=[2]),
-                                                             ChainStep("Step2_2mu",   [mu21], multiplicity=[2]) ]),
-            makeChain(name='HLT_2mu6Comb_L12MU6',   L1Thresholds=["MU6"], ChainSteps=[ ChainStep("Step1_2mu_empty",     multiplicity=[2]),
-                                                             ChainStep("Step2_2mu",   [mu21], multiplicity=[2]) ]),
-            makeChain(name='HLT_2mu4_bDimu_L12MU4', L1Thresholds=["MU4"], ChainSteps=[ ChainStep("Step1_2mu",   [mu11], multiplicity=[2]),
-                                                                                  step_mu22,
-                                                                                  ChainStep("Step3_2mu",   [mu31], multiplicity=[2])] )
+                                                                                       ChainStep("Step2_2mu",   [mu21], multiplicity=[2]) ]),
+
+            makeChain(name='HLT_2mu6Comb_L12MU6',   L1Thresholds=["MU6"], ChainSteps=[ ChainStep("Step1_2mu_empty",  multiplicity=[2]),
+                                                                                       ChainStep("Step2_2mu", [mu21], multiplicity=[2]) ]),
+                                                                                       
+            makeChain(name='HLT_2mu4_bDimu_L12MU4', L1Thresholds=["MU6"], ChainSteps=[ ChainStep("Step1_2mu",  [mu11], multiplicity=[2]),
+                                                                                       ChainStep("Step2_2mu22",[mu22], multiplicity=[2]),
+                                                                                       ChainStep("Step3_2mu",  [mu31], multiplicity=[2])] ),
+                                                                                       
+            makeChain(name='HLT_mu6_mu6noL1_L1MU6', L1Thresholds=["MU6", ""], ChainSteps=[ ChainStep("Step1_2muAs",   [mu11, mu11], multiplicity=[1,1]),
+                                                                                           ChainStep("Step2_2muAs",   [mu21, mu21], multiplicity=[1,1]) ])
+                                                                              
             ]
 
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/HLTSignatureHypoTools.py b/Trigger/TrigValidation/TrigUpgradeTest/python/HLTSignatureHypoTools.py
index f4e656d5724a6df3142271be8b27b58d4cb54354..b318d82a30f67b778ed712f41954b60a16024173 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/python/HLTSignatureHypoTools.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/python/HLTSignatureHypoTools.py
@@ -10,31 +10,33 @@ def TestHypoTool(name, prop, threshold_value):
 
 def MuTestHypoTool(chainDict):
     name = chainDict['chainName']
-    threshold = getThreshold(name, 'mu') 
+    threshold = getThreshold(chainDict, 'mu') 
     return TestHypoTool(name,prop="pt", threshold_value=threshold)
 
 def ElTestHypoTool(chainDict):
     name = chainDict['chainName']
-    threshold = getThreshold(name, 'e') 
+    threshold = getThreshold(chainDict, 'e') 
     return TestHypoTool(name,prop="et", threshold_value=threshold)
 
 def GammTestHypoTool(chainDict):
     name = chainDict['chainName']
-    threshold = getThreshold(name, 'g') 
+    threshold = getThreshold(chainDict, 'g') 
     return TestHypoTool(name,prop="et", threshold_value=threshold)
 
 
 def MuTest2HypoTool(chainDict):
     name = chainDict['chainName']
-    threshold = getThreshold(name, 'mu')  
+    threshold = getThreshold(chainDict, 'mu') 
     return TestHypoTool(name,prop="pt2", threshold_value=threshold)
 
 def ElTest2HypoTool(chainDict):
     name = chainDict['chainName']
-    threshold = getThreshold(name, 'e') 
+    threshold = getThreshold(chainDict, 'e') 
     return TestHypoTool(name,prop="et", threshold_value=threshold)
 
 
-def getThreshold(name, signature):
+def getThreshold(chainDict, signature):
+    name = chainDict['chainParts'][0]['chainPartName']
     from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import getChainThresholdFromName
     return getChainThresholdFromName( name.split("_"), signature)
+
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/emu_step_processing.ref b/Trigger/TrigValidation/TrigUpgradeTest/share/emu_step_processing.ref
index 4e4014f7209154a468abe9399d853015ca6b88cd..15ffcbd5937374230d22ceca85e02d610a40d1b9 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/emu_step_processing.ref
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/emu_step_processing.ref
@@ -1,79 +1,130 @@
-TriggerSummaryStep1                     1   0     DEBUG In summary 5 chains passed:
-TriggerSummaryStep1                     1   0     DEBUG  +++ HLT_e5_v3_L1EM7 ID#1502850332
-TriggerSummaryStep1                     1   0     DEBUG  +++ HLT_e5_e8_L1EM3_EM5 ID#1658488232
-TriggerSummaryStep1                     1   0     DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
-TriggerSummaryStep1                     1   0     DEBUG  +++ HLT_e5_L1EM7 ID#3386155124
-TriggerSummaryStep1                     1   0     DEBUG  +++ HLT_g5_L1EM7 ID#3537091008
-TriggerSummaryStep2                     1   0     DEBUG In summary 4 chains passed:
-TriggerSummaryStep2                     1   0     DEBUG  +++ HLT_e5_v3_L1EM7 ID#1502850332
-TriggerSummaryStep2                     1   0     DEBUG  +++ HLT_e5_e8_L1EM3_EM5 ID#1658488232
-TriggerSummaryStep2                     1   0     DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
-TriggerSummaryStep2                     1   0     DEBUG  +++ HLT_e5_L1EM7 ID#3386155124
-TriggerSummaryStep3                     1   0     DEBUG In summary 1 chains passed:
-TriggerSummaryStep3                     1   0     DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
-TriggerSummaryStep1                     2   0     DEBUG In summary 7 chains passed:
-TriggerSummaryStep1                     2   0     DEBUG  +++ HLT_mu8_e8_L1MU6_EM7 ID#813774658
-TriggerSummaryStep1                     2   0     DEBUG  +++ HLT_2mu6_L12MU6 ID#1747073535
-TriggerSummaryStep1                     2   0     DEBUG  +++ HLT_2mu6Comb_L12MU6 ID#2046267508
-TriggerSummaryStep1                     2   0     DEBUG  +++ HLT_mu8_L1MU10 ID#2258266078
-TriggerSummaryStep1                     2   0     DEBUG  +++ HLT_mu6_L1MU6 ID#2560542253
-TriggerSummaryStep1                     2   0     DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
-TriggerSummaryStep1                     2   0     DEBUG  +++ HLT_mu8_1step_L1MU6 ID#3380352717
-TriggerSummaryStep2                     2   0     DEBUG In summary 4 chains passed:
-TriggerSummaryStep2                     2   0     DEBUG  +++ HLT_2mu6_L12MU6 ID#1747073535
-TriggerSummaryStep2                     2   0     DEBUG  +++ HLT_2mu6Comb_L12MU6 ID#2046267508
-TriggerSummaryStep2                     2   0     DEBUG  +++ HLT_mu6_L1MU6 ID#2560542253
-TriggerSummaryStep2                     2   0     DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
-TriggerSummaryStep3                     2   0     DEBUG In summary 2 chains passed:
-TriggerSummaryStep3                     2   0     DEBUG  +++ HLT_mu6_L1MU6 ID#2560542253
-TriggerSummaryStep3                     2   0     DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
-TriggerSummaryStep4                     2   0     DEBUG In summary 1 chains passed:
-TriggerSummaryStep4                     2   0     DEBUG  +++ HLT_mu6_L1MU6 ID#2560542253
-TriggerSummaryStep1                     3   0     DEBUG In summary 5 chains passed:
-TriggerSummaryStep1                     3   0     DEBUG  +++ HLT_mu10_L1MU10 ID#209090273
-TriggerSummaryStep1                     3   0     DEBUG  +++ HLT_mu20_L1MU10 ID#361599135
-TriggerSummaryStep1                     3   0     DEBUG  +++ HLT_mu8_L1MU10 ID#2258266078
-TriggerSummaryStep1                     3   0     DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
-TriggerSummaryStep1                     3   0     DEBUG  +++ HLT_mu8_1step_L1MU6 ID#3380352717
-TriggerSummaryStep2                     3   0     DEBUG In summary 4 chains passed:
-TriggerSummaryStep2                     3   0     DEBUG  +++ HLT_mu10_L1MU10 ID#209090273
-TriggerSummaryStep2                     3   0     DEBUG  +++ HLT_mu20_L1MU10 ID#361599135
-TriggerSummaryStep2                     3   0     DEBUG  +++ HLT_mu8_L1MU10 ID#2258266078
-TriggerSummaryStep2                     3   0     DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
-TriggerSummaryStep3                     3   0     DEBUG In summary 4 chains passed:
-TriggerSummaryStep3                     3   0     DEBUG  +++ HLT_mu10_L1MU10 ID#209090273
-TriggerSummaryStep3                     3   0     DEBUG  +++ HLT_mu20_L1MU10 ID#361599135
-TriggerSummaryStep3                     3   0     DEBUG  +++ HLT_mu8_L1MU10 ID#2258266078
-TriggerSummaryStep3                     3   0     DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
-TriggerSummaryStep4                     3   0     DEBUG In summary 1 chains passed:
-TriggerSummaryStep4                     3   0     DEBUG  +++ HLT_mu8_L1MU10 ID#2258266078
-TrigSignatureMoniMT                                INFO HLT_2mu4_bDimu_L12MU4         1         1         0         0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_2mu4_bDimu_L12MU4 decisions                    0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_2mu6Comb_L12MU6           1         1         0         1         0         0         1         
-TrigSignatureMoniMT                                INFO HLT_2mu6Comb_L12MU6 decisions                     0         4         0         0         
-TrigSignatureMoniMT                                INFO HLT_2mu6_L12MU6               1         1         1         1         0         0         1         
-TrigSignatureMoniMT                                INFO HLT_2mu6_L12MU6 decisions                         4         4         0         0         
-TrigSignatureMoniMT                                INFO HLT_e5_L1EM7                  2         2         1         1         0         0         1         
-TrigSignatureMoniMT                                INFO HLT_e5_L1EM7 decisions                            2         2         0         0         
-TrigSignatureMoniMT                                INFO HLT_e5_e8_L1EM3_EM5           2         2         1         1         0         0         1         
-TrigSignatureMoniMT                                INFO HLT_e5_e8_L1EM3_EM5 decisions                     6         6         0         0         
-TrigSignatureMoniMT                                INFO HLT_e5_v2_L1EM7               0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_e5_v2_L1EM7 decisions                         0         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_e5_v3_L1EM7               1         1         1         1         0         0         1         
-TrigSignatureMoniMT                                INFO HLT_e5_v3_L1EM7 decisions                         2         2         0         0         
-TrigSignatureMoniMT                                INFO HLT_e8_L1EM7                  4         4         3         3         3         0         3         
-TrigSignatureMoniMT                                INFO HLT_e8_L1EM7 decisions                            5         5         5         0         
-TrigSignatureMoniMT                                INFO HLT_g5_L1EM7                  1         1         1         0         0         0         1         
-TrigSignatureMoniMT                                INFO HLT_g5_L1EM7 decisions                            2         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_mu10_L1MU10               2         2         1         1         1         0         1         
-TrigSignatureMoniMT                                INFO HLT_mu10_L1MU10 decisions                         1         1         1         0         
-TrigSignatureMoniMT                                INFO HLT_mu20_L1MU10               1         1         1         1         1         0         1         
-TrigSignatureMoniMT                                INFO HLT_mu20_L1MU10 decisions                         1         1         1         0         
-TrigSignatureMoniMT                                INFO HLT_mu6_L1MU6                 1         1         1         0         1         1         1         
-TrigSignatureMoniMT                                INFO HLT_mu6_L1MU6 decisions                           2         0         2         2         
-TrigSignatureMoniMT                                INFO HLT_mu8_1step_L1MU6           2         2         2         0         0         0         2         
-TrigSignatureMoniMT                                INFO HLT_mu8_1step_L1MU6 decisions                     2         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_mu8_L1MU10                2         2         2         1         1         1         1         
-TrigSignatureMoniMT                                INFO HLT_mu8_L1MU10 decisions                          2         1         1         1         
-TrigSignatureMoniMT                                INFO HLT_mu8_e8_L1MU6_EM7          1         1         1         1         0         0         0         
-TrigSignatureMoniMT                                INFO HLT_mu8_e8_L1MU6_EM7 decisions                    4         2         0         0         
+TriggerSummaryStep1                        1   0   DEBUG In summary 7 chains passed:
+TriggerSummaryStep1                        1   0   DEBUG  +++ leg001_HLT_e5_e8_L1EM3_EM5 ID#959816505
+TriggerSummaryStep1                        1   0   DEBUG  +++ leg000_HLT_e5_e8_L1EM3_EM5 ID#1022379709
+TriggerSummaryStep1                        1   0   DEBUG  +++ HLT_e5_v3_L1EM7 ID#1502850332
+TriggerSummaryStep1                        1   0   DEBUG  +++ HLT_e5_e8_L1EM3_EM5 ID#1658488232
+TriggerSummaryStep1                        1   0   DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
+TriggerSummaryStep1                        1   0   DEBUG  +++ HLT_e5_L1EM7 ID#3386155124
+TriggerSummaryStep1                        1   0   DEBUG  +++ HLT_g5_L1EM7 ID#3537091008
+TriggerSummaryStep2                        1   0   DEBUG In summary 6 chains passed:
+TriggerSummaryStep2                        1   0   DEBUG  +++ leg001_HLT_e5_e8_L1EM3_EM5 ID#959816505
+TriggerSummaryStep2                        1   0   DEBUG  +++ leg000_HLT_e5_e8_L1EM3_EM5 ID#1022379709
+TriggerSummaryStep2                        1   0   DEBUG  +++ HLT_e5_v3_L1EM7 ID#1502850332
+TriggerSummaryStep2                        1   0   DEBUG  +++ HLT_e5_e8_L1EM3_EM5 ID#1658488232
+TriggerSummaryStep2                        1   0   DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
+TriggerSummaryStep2                        1   0   DEBUG  +++ HLT_e5_L1EM7 ID#3386155124
+TriggerSummaryStep3                        1   0   DEBUG In summary 1 chains passed:
+TriggerSummaryStep3                        1   0   DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
+TriggerSummaryStep1                        2   0   DEBUG In summary 21 chains passed:
+TriggerSummaryStep1                        2   0   DEBUG  +++ leg002_HLT_e5_e8_2mu6_L1EM3_EM5_L12MU6 ID#345317877
+TriggerSummaryStep1                        2   0   DEBUG  +++ leg001_HLT_e5_e8_L1EM3_EM5 ID#959816505
+TriggerSummaryStep1                        2   0   DEBUG  +++ leg000_HLT_e5_e8_L1EM3_EM5 ID#1022379709
+TriggerSummaryStep1                        2   0   DEBUG  +++ leg000_HLT_mu6Comb_e8_L1MU6_EM5 ID#1248852240
+TriggerSummaryStep1                        2   0   DEBUG  +++ leg001_HLT_mu6_e8_L1MU6_EM5 ID#1567806656
+TriggerSummaryStep1                        2   0   DEBUG  +++ HLT_e5_e8_L1EM3_EM5 ID#1658488232
+TriggerSummaryStep1                        2   0   DEBUG  +++ HLT_2mu4_bDimu_L12MU4 ID#1730084172
+TriggerSummaryStep1                        2   0   DEBUG  +++ HLT_2mu6_L12MU6 ID#1747073535
+TriggerSummaryStep1                        2   0   DEBUG  +++ HLT_mu6_e8_L1MU6_EM5 ID#2038386564
+TriggerSummaryStep1                        2   0   DEBUG  +++ HLT_2mu6Comb_L12MU6 ID#2046267508
+TriggerSummaryStep1                        2   0   DEBUG  +++ HLT_mu8_L1MU10 ID#2258266078
+TriggerSummaryStep1                        2   0   DEBUG  +++ HLT_mu6Comb_e8_L1MU6_EM5 ID#2371747463
+TriggerSummaryStep1                        2   0   DEBUG  +++ leg001_HLT_e5_e8_2mu6_L1EM3_EM5_L12MU6 ID#2467396139
+TriggerSummaryStep1                        2   0   DEBUG  +++ leg000_HLT_mu6_e8_L1MU6_EM5 ID#2542671571
+TriggerSummaryStep1                        2   0   DEBUG  +++ HLT_mu6_L1MU6 ID#2560542253
+TriggerSummaryStep1                        2   0   DEBUG  +++ leg000_HLT_e5_e8_2mu6_L1EM3_EM5_L12MU6 ID#2627130263
+TriggerSummaryStep1                        2   0   DEBUG  +++ leg000_HLT_mu6_mu6noL1_L1MU6 ID#2893452617
+TriggerSummaryStep1                        2   0   DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
+TriggerSummaryStep1                        2   0   DEBUG  +++ HLT_mu8_1step_L1MU6 ID#3380352717
+TriggerSummaryStep1                        2   0   DEBUG  +++ leg001_HLT_mu6Comb_e8_L1MU6_EM5 ID#3495876895
+TriggerSummaryStep1                        2   0   DEBUG  +++ HLT_e5_e8_2mu6_L1EM3_EM5_L12MU6 ID#4130483534
+TriggerSummaryStep2                        2   0   DEBUG In summary 18 chains passed:
+TriggerSummaryStep2                        2   0   DEBUG  +++ leg002_HLT_e5_e8_2mu6_L1EM3_EM5_L12MU6 ID#345317877
+TriggerSummaryStep2                        2   0   DEBUG  +++ leg001_HLT_e5_e8_L1EM3_EM5 ID#959816505
+TriggerSummaryStep2                        2   0   DEBUG  +++ leg000_HLT_e5_e8_L1EM3_EM5 ID#1022379709
+TriggerSummaryStep2                        2   0   DEBUG  +++ leg000_HLT_mu6Comb_e8_L1MU6_EM5 ID#1248852240
+TriggerSummaryStep2                        2   0   DEBUG  +++ leg001_HLT_mu6_e8_L1MU6_EM5 ID#1567806656
+TriggerSummaryStep2                        2   0   DEBUG  +++ HLT_e5_e8_L1EM3_EM5 ID#1658488232
+TriggerSummaryStep2                        2   0   DEBUG  +++ HLT_2mu4_bDimu_L12MU4 ID#1730084172
+TriggerSummaryStep2                        2   0   DEBUG  +++ HLT_2mu6_L12MU6 ID#1747073535
+TriggerSummaryStep2                        2   0   DEBUG  +++ HLT_mu6_e8_L1MU6_EM5 ID#2038386564
+TriggerSummaryStep2                        2   0   DEBUG  +++ HLT_2mu6Comb_L12MU6 ID#2046267508
+TriggerSummaryStep2                        2   0   DEBUG  +++ HLT_mu6Comb_e8_L1MU6_EM5 ID#2371747463
+TriggerSummaryStep2                        2   0   DEBUG  +++ leg001_HLT_e5_e8_2mu6_L1EM3_EM5_L12MU6 ID#2467396139
+TriggerSummaryStep2                        2   0   DEBUG  +++ leg000_HLT_mu6_e8_L1MU6_EM5 ID#2542671571
+TriggerSummaryStep2                        2   0   DEBUG  +++ HLT_mu6_L1MU6 ID#2560542253
+TriggerSummaryStep2                        2   0   DEBUG  +++ leg000_HLT_e5_e8_2mu6_L1EM3_EM5_L12MU6 ID#2627130263
+TriggerSummaryStep2                        2   0   DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
+TriggerSummaryStep2                        2   0   DEBUG  +++ leg001_HLT_mu6Comb_e8_L1MU6_EM5 ID#3495876895
+TriggerSummaryStep2                        2   0   DEBUG  +++ HLT_e5_e8_2mu6_L1EM3_EM5_L12MU6 ID#4130483534
+TriggerSummaryStep3                        2   0   DEBUG In summary 3 chains passed:
+TriggerSummaryStep3                        2   0   DEBUG  +++ HLT_2mu4_bDimu_L12MU4 ID#1730084172
+TriggerSummaryStep3                        2   0   DEBUG  +++ HLT_mu6_L1MU6 ID#2560542253
+TriggerSummaryStep3                        2   0   DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
+TriggerSummaryStep4                        2   0   DEBUG In summary 1 chains passed:
+TriggerSummaryStep4                        2   0   DEBUG  +++ HLT_mu6_L1MU6 ID#2560542253
+TriggerSummaryStep1                        3   0   DEBUG In summary 11 chains passed:
+TriggerSummaryStep1                        3   0   DEBUG  +++ HLT_mu10_L1MU10 ID#209090273
+TriggerSummaryStep1                        3   0   DEBUG  +++ HLT_mu20_L1MU10 ID#361599135
+TriggerSummaryStep1                        3   0   DEBUG  +++ leg000_HLT_mu6Comb_e8_L1MU6_EM5 ID#1248852240
+TriggerSummaryStep1                        3   0   DEBUG  +++ leg001_HLT_mu6_e8_L1MU6_EM5 ID#1567806656
+TriggerSummaryStep1                        3   0   DEBUG  +++ HLT_mu6_e8_L1MU6_EM5 ID#2038386564
+TriggerSummaryStep1                        3   0   DEBUG  +++ HLT_mu8_L1MU10 ID#2258266078
+TriggerSummaryStep1                        3   0   DEBUG  +++ HLT_mu6Comb_e8_L1MU6_EM5 ID#2371747463
+TriggerSummaryStep1                        3   0   DEBUG  +++ leg000_HLT_mu6_e8_L1MU6_EM5 ID#2542671571
+TriggerSummaryStep1                        3   0   DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
+TriggerSummaryStep1                        3   0   DEBUG  +++ HLT_mu8_1step_L1MU6 ID#3380352717
+TriggerSummaryStep1                        3   0   DEBUG  +++ leg001_HLT_mu6Comb_e8_L1MU6_EM5 ID#3495876895
+TriggerSummaryStep2                        3   0   DEBUG In summary 10 chains passed:
+TriggerSummaryStep2                        3   0   DEBUG  +++ HLT_mu10_L1MU10 ID#209090273
+TriggerSummaryStep2                        3   0   DEBUG  +++ HLT_mu20_L1MU10 ID#361599135
+TriggerSummaryStep2                        3   0   DEBUG  +++ leg000_HLT_mu6Comb_e8_L1MU6_EM5 ID#1248852240
+TriggerSummaryStep2                        3   0   DEBUG  +++ leg001_HLT_mu6_e8_L1MU6_EM5 ID#1567806656
+TriggerSummaryStep2                        3   0   DEBUG  +++ HLT_mu6_e8_L1MU6_EM5 ID#2038386564
+TriggerSummaryStep2                        3   0   DEBUG  +++ HLT_mu8_L1MU10 ID#2258266078
+TriggerSummaryStep2                        3   0   DEBUG  +++ HLT_mu6Comb_e8_L1MU6_EM5 ID#2371747463
+TriggerSummaryStep2                        3   0   DEBUG  +++ leg000_HLT_mu6_e8_L1MU6_EM5 ID#2542671571
+TriggerSummaryStep2                        3   0   DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
+TriggerSummaryStep2                        3   0   DEBUG  +++ leg001_HLT_mu6Comb_e8_L1MU6_EM5 ID#3495876895
+TriggerSummaryStep3                        3   0   DEBUG In summary 4 chains passed:
+TriggerSummaryStep3                        3   0   DEBUG  +++ HLT_mu10_L1MU10 ID#209090273
+TriggerSummaryStep3                        3   0   DEBUG  +++ HLT_mu20_L1MU10 ID#361599135
+TriggerSummaryStep3                        3   0   DEBUG  +++ HLT_mu8_L1MU10 ID#2258266078
+TriggerSummaryStep3                        3   0   DEBUG  +++ HLT_e8_L1EM7 ID#2914644523
+TriggerSummaryStep4                        3   0   DEBUG In summary 1 chains passed:
+TriggerSummaryStep4                        3   0   DEBUG  +++ HLT_mu8_L1MU10 ID#2258266078
+TrigSignatureMoniMT                                 INFO HLT_2mu4_bDimu_L12MU4         1         1         1         1         1         0         1         
+TrigSignatureMoniMT                                 INFO HLT_2mu4_bDimu_L12MU4 decisions                    4         4         4         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu6Comb_L12MU6           1         1         0         1         0         0         1         
+TrigSignatureMoniMT                                 INFO HLT_2mu6Comb_L12MU6 decisions                     0         4         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu6_L12MU6               2         2         1         1         0         0         1         
+TrigSignatureMoniMT                                 INFO HLT_2mu6_L12MU6 decisions                         4         4         0         0         
+TrigSignatureMoniMT                                 INFO HLT_e5_L1EM7                  2         2         1         1         0         0         1         
+TrigSignatureMoniMT                                 INFO HLT_e5_L1EM7 decisions                            1         1         0         0         
+TrigSignatureMoniMT                                 INFO HLT_e5_e8_2mu6_L1EM3_EM5_L12MU61         1         1         1         0         0         1         
+TrigSignatureMoniMT                                 INFO HLT_e5_e8_2mu6_L1EM3_EM5_L12MU6 decisions                    2         2         0         0         
+TrigSignatureMoniMT                                 INFO HLT_e5_e8_L1EM3_EM5           3         3         2         2         0         0         2         
+TrigSignatureMoniMT                                 INFO HLT_e5_e8_L1EM3_EM5 decisions                     4         4         0         0         
+TrigSignatureMoniMT                                 INFO HLT_e5_v2_L1EM7               0         0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_e5_v2_L1EM7 decisions                         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_e5_v3_L1EM7               1         1         1         1         0         0         1         
+TrigSignatureMoniMT                                 INFO HLT_e5_v3_L1EM7 decisions                         1         1         0         0         
+TrigSignatureMoniMT                                 INFO HLT_e8_L1EM7                  4         4         3         3         3         0         3         
+TrigSignatureMoniMT                                 INFO HLT_e8_L1EM7 decisions                            3         3         3         0         
+TrigSignatureMoniMT                                 INFO HLT_g5_L1EM7                  1         1         1         0         0         0         1         
+TrigSignatureMoniMT                                 INFO HLT_g5_L1EM7 decisions                            1         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu10_L1MU10               2         2         1         1         1         0         1         
+TrigSignatureMoniMT                                 INFO HLT_mu10_L1MU10 decisions                         1         1         1         0         
+TrigSignatureMoniMT                                 INFO HLT_mu20_L1MU10               1         1         1         1         1         0         1         
+TrigSignatureMoniMT                                 INFO HLT_mu20_L1MU10 decisions                         1         1         1         0         
+TrigSignatureMoniMT                                 INFO HLT_mu6Comb_e8_L1MU6_EM5      2         2         2         2         0         0         2         
+TrigSignatureMoniMT                                 INFO HLT_mu6Comb_e8_L1MU6_EM5 decisions                    3         3         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu6_L1MU6                 1         1         1         0         1         1         1         
+TrigSignatureMoniMT                                 INFO HLT_mu6_L1MU6 decisions                           2         0         2         2         
+TrigSignatureMoniMT                                 INFO HLT_mu6_e8_L1MU6_EM5          2         2         2         2         0         0         2         
+TrigSignatureMoniMT                                 INFO HLT_mu6_e8_L1MU6_EM5 decisions                    3         3         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu6_mu6noL1_L1MU6         1         1         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu6_mu6noL1_L1MU6 decisions                    0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu8_1step_L1MU6           2         2         2         0         0         0         2         
+TrigSignatureMoniMT                                 INFO HLT_mu8_1step_L1MU6 decisions                     2         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu8_L1MU10                2         2         2         1         1         1         1         
+TrigSignatureMoniMT                                 INFO HLT_mu8_L1MU10 decisions                          2         1         1         1         
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_build.ref b/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_build.ref
index b0b64089f144edc1030021376ca4a5bed8d0b0f5..58df312d945e1d609ce998093a3767c9ad2bb0b9 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_build.ref
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_build.ref
@@ -1,186 +1,184 @@
-TrigSignatureMoniMT                                 INFO HLT_2e17_etcut_L12EM15VH      20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2e17_etcut_L12EM15VH decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2e3_etcut_L12EM3          20        20        13        12        12        0         0         0         12        
-TrigSignatureMoniMT                                 INFO HLT_2e3_etcut_L12EM3 decisions                    49        210       89        0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2g20_tight_L12EM20VH      20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2g20_tight_L12EM20VH decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2g35_etcut_L12EM20VH      20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2g35_etcut_L12EM20VH decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2g35_medium_L12EM20VH     20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2g35_medium_L12EM20VH decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J10020        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J100 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu10_bJpsimumu_L12MU10   20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu10_bJpsimumu_L12MU10 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu10_bUpsimumu_L12MU10   20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu10_bUpsimumu_L12MU10 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu14_L12MU10             20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu14_L12MU10 decisions                       0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu4_bJpsimumu_L12MU4     20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu4_bJpsimumu_L12MU4 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu4_bUpsimumu_L12MU4     20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu4_bUpsimumu_L12MU4 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu6Comb_L12MU6           20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu6Comb_L12MU6 decisions                     0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu6_10invm70_L1MU6       20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu6_10invm70_L1MU6 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu6_L12MU6               20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_2mu6_L12MU6 decisions                         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_3j200_L1J100              20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_3j200_L1J100 decisions                        0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_3j200_L1J20               20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_3j200_L1J20 decisions                         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_3mu6_L13MU6               20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_3mu6_L13MU6 decisions                         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_3mu6_msonly_L13MU6        20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_3mu6_msonly_L13MU6 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_4mu4_L14MU4               20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_4mu4_L14MU4 decisions                         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_5j70_0eta240_L14J20       20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_5j70_0eta240_L14J20 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_beamspot_allTE_trkfast_BeamSpotPEB_L1J1520        20        20        20        0         0         0         0         20        
-TrigSignatureMoniMT                                 INFO HLT_beamspot_allTE_trkfast_BeamSpotPEB_L1J15 decisions                    20        20        0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_costmonitor_CostMonDS_L1All20        20        20        20        0         0         0         0         20        
-TrigSignatureMoniMT                                 INFO HLT_costmonitor_CostMonDS_L1All decisions                    20        20        0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_e26_etcut_L1EM22VHI       20        20        1         1         1         0         0         0         1         
-TrigSignatureMoniMT                                 INFO HLT_e26_etcut_L1EM22VHI decisions                    1         6         1         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_e3_etcut1step_mu6fast_L1EM8I_MU1020        20        10        0         0         0         0         0         1         
-TrigSignatureMoniMT                                 INFO HLT_e3_etcut1step_mu6fast_L1EM8I_MU10 decisions                    17        0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_e3_etcut_L1EM3            20        20        18        18        18        0         0         0         18        
-TrigSignatureMoniMT                                 INFO HLT_e3_etcut_L1EM3 decisions                      54        219       99        0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_e5_etcut_L1EM3            20        20        17        16        16        0         0         0         16        
-TrigSignatureMoniMT                                 INFO HLT_e5_etcut_L1EM3 decisions                      51        212       51        0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_e7_etcut_L1EM3            20        20        14        13        12        0         0         0         12        
-TrigSignatureMoniMT                                 INFO HLT_e7_etcut_L1EM3 decisions                      35        174       28        0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_g140_etcut_L1EM24VHI      20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_g140_etcut_L1EM24VHI decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_g140_loose_L1EM24VHI      20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_g140_loose_L1EM24VHI decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_g20_etcut_LArPEB_L1EM15   20        20        5         5         3         3         0         0         3         
-TrigSignatureMoniMT                                 INFO HLT_g20_etcut_LArPEB_L1EM15 decisions                    5         5         3         3         0         0         
-TrigSignatureMoniMT                                 INFO HLT_g5_etcut_L1EM3            20        20        17        17        17        0         0         0         17        
-TrigSignatureMoniMT                                 INFO HLT_g5_etcut_L1EM3 decisions                      51        51        55        0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_g5_etcut_LArPEB_L1EM3     20        20        17        17        17        17        0         0         17        
-TrigSignatureMoniMT                                 INFO HLT_g5_etcut_LArPEB_L1EM3 decisions                    51        51        55        55        0         0         
-TrigSignatureMoniMT                                 INFO HLT_g5_loose_L1EM3            20        20        12        12        12        8         0         0         8         
-TrigSignatureMoniMT                                 INFO HLT_g5_loose_L1EM3 decisions                      21        21        37        11        0         0         
-TrigSignatureMoniMT                                 INFO HLT_g5_medium_L1EM3           20        20        11        11        11        8         0         0         8         
-TrigSignatureMoniMT                                 INFO HLT_g5_medium_L1EM3 decisions                     20        20        37        11        0         0         
-TrigSignatureMoniMT                                 INFO HLT_g5_tight_L1EM3            20        20        11        11        11        5         0         0         5         
-TrigSignatureMoniMT                                 INFO HLT_g5_tight_L1EM3 decisions                      20        20        37        5         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_j225_ftf_subjesgscIS_bmv2c1040_split_L1J10020        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j225_ftf_subjesgscIS_bmv2c1040_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_j275_ftf_subjesgscIS_bmv2c1060_split_L1J10020        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j275_ftf_subjesgscIS_bmv2c1060_split_L1J100 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j300_ftf_subjesgscIS_bmv2c1070_split_L1J10020        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j300_ftf_subjesgscIS_bmv2c1070_split_L1J100 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j360_ftf_subjesgscIS_bmv2c1077_split_L1J10020        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j360_ftf_subjesgscIS_bmv2c1077_split_L1J100 decisions                    0         0         0         0         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_j420_ftf_subjesgscIS_L1J2020        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j420_ftf_subjesgscIS_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_j45_ftf_pf_L1J20          20        20        4         0         0         0         0         0         4         
-TrigSignatureMoniMT                                 INFO HLT_j45_ftf_pf_L1J20 decisions                    4         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j45_ftf_subjesgscIS_L1J15 20        20        5         0         0         0         0         0         5         
-TrigSignatureMoniMT                                 INFO HLT_j45_ftf_subjesgscIS_L1J15 decisions                    5         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J2020        20        5         5         5         5         0         0         5         
-TrigSignatureMoniMT                                 INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J20 decisions                    5         5         5         5         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J2020        20        5         5         5         5         0         0         5         
-TrigSignatureMoniMT                                 INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20 decisions                    5         5         5         5         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         
-TrigSignatureMoniMT                                 INFO HLT_j460_a10_lcw_subjes_L1J20 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j460_a10r_L1J100          20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j460_a10r_L1J100 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j460_a10r_L1J20           20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j460_a10r_L1J20 decisions                     0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J10020        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J100 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j460_a10t_lcw_jes_L1J100  20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j460_a10t_lcw_jes_L1J100 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J2020        20        1         0         0         0         0         0         1         
-TrigSignatureMoniMT                                 INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J20 decisions                    1         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_j80_j60_L1J15             20        20        1         0         0         0         0         0         1         
-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_j85_ftf_pf_L1J20          20        20        1         0         0         0         0         0         1         
-TrigSignatureMoniMT                                 INFO HLT_j85_ftf_pf_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         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu20_ivar_L1MU6 decisions                     3         1         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu24_idperf_L1MU20        20        20        2         2         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu24_idperf_L1MU20 decisions                    2         2         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu26_ivarmedium_L1MU20    20        20        2         1         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu26_ivarmedium_L1MU20 decisions                    2         1         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu50_L1MU20               20        20        2         1         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu50_L1MU20 decisions                         2         1         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu50_RPCPEBSecondaryReadout_L1MU2020        20        2         1         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu50_RPCPEBSecondaryReadout_L1MU20 decisions                    2         1         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu60_0eta105_msonly_L1MU2020        20        1         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu60_0eta105_msonly_L1MU20 decisions                    1         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu6Comb_L1MU6             20        20        3         1         0         0         0         0         1         
-TrigSignatureMoniMT                                 INFO HLT_mu6Comb_L1MU6 decisions                       3         1         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu6_L1MU6                 20        20        3         1         1         1         0         0         1         
-TrigSignatureMoniMT                                 INFO HLT_mu6_L1MU6 decisions                           3         1         1         1         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu6_idperf_L1MU6          20        20        3         3         2         2         0         0         2         
-TrigSignatureMoniMT                                 INFO HLT_mu6_idperf_L1MU6 decisions                    3         3         2         2         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu6_ivarmedium_L1MU6      20        20        3         1         1         1         1         0         1         
-TrigSignatureMoniMT                                 INFO HLT_mu6_ivarmedium_L1MU6 decisions                    3         1         1         1         1         0         
-TrigSignatureMoniMT                                 INFO HLT_mu6_msonly_L1MU6          20        20        3         0         2         0         0         0         2         
-TrigSignatureMoniMT                                 INFO HLT_mu6_msonly_L1MU6 decisions                    3         0         2         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu6_mu4_L12MU4            20        20        3         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu6_mu4_L12MU4 decisions                      12        0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu6_mu6noL1_L1MU6         20        20        3         1         1         1         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu6_mu6noL1_L1MU6 decisions                    3         1         1         1         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu6fast_L1MU6             20        20        3         0         0         0         0         0         3         
-TrigSignatureMoniMT                                 INFO HLT_mu6fast_L1MU6 decisions                       3         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu80_msonly_3layersEC_L1MU2020        20        2         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_mu80_msonly_3layersEC_L1MU20 decisions                    2         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_noalg_L1EM3               20        20        0         0         0         0         0         0         20        
-TrigSignatureMoniMT                                 INFO HLT_noalg_L1EM3 decisions                         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_noalg_L1RD0_EMPTY         20        20        0         0         0         0         0         0         20        
-TrigSignatureMoniMT                                 INFO HLT_noalg_L1RD0_EMPTY decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_noalg_L1RD0_FILLED        20        20        0         0         0         0         0         0         20        
-TrigSignatureMoniMT                                 INFO HLT_noalg_L1RD0_FILLED decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_tau0_perf_ptonly_L1TAU12  20        20        8         8         0         0         0         0         8         
-TrigSignatureMoniMT                                 INFO HLT_tau0_perf_ptonly_L1TAU12 decisions                    8         8         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_tau160_mediumRNN_tracktwoMVA_L1TAU10020        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_tau160_mediumRNN_tracktwoMVA_L1TAU100 decisions                    0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_tau25_idperf_tracktwoMVA_L1TAU12IM20        20        8         0         0         0         0         0         8         
-TrigSignatureMoniMT                                 INFO HLT_tau25_idperf_tracktwoMVA_L1TAU12IM decisions                    8         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_tau25_idperf_tracktwo_L1TAU12IM20        20        8         8         8         0         0         0         8         
-TrigSignatureMoniMT                                 INFO HLT_tau25_idperf_tracktwo_L1TAU12IM decisions                    8         8         8         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_tau25_medium1_tracktwo_L1TAU12IM20        20        6         6         6         0         0         0         6         
-TrigSignatureMoniMT                                 INFO HLT_tau25_medium1_tracktwo_L1TAU12IM decisions                    6         6         6         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM20        20        5         0         0         0         0         0         5         
-TrigSignatureMoniMT                                 INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM decisions                    5         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_xe30_cell_L1XE10          20        20        5         0         0         0         0         0         5         
-TrigSignatureMoniMT                                 INFO HLT_xe30_cell_L1XE10 decisions                    5         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_xe30_cell_xe30_tcpufit_L1XE1020        20        6         0         0         0         0         0         2         
-TrigSignatureMoniMT                                 INFO HLT_xe30_cell_xe30_tcpufit_L1XE10 decisions                    10        0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_xe30_mht_L1XE10           20        20        17        0         0         0         0         0         17        
-TrigSignatureMoniMT                                 INFO HLT_xe30_mht_L1XE10 decisions                     17        0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_xe30_tcpufit_L1XE10       20        20        3         0         0         0         0         0         3         
-TrigSignatureMoniMT                                 INFO HLT_xe30_tcpufit_L1XE10 decisions                    3         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_xe30_trkmht_L1XE10        20        20        9         0         0         0         0         0         9         
-TrigSignatureMoniMT                                 INFO HLT_xe30_trkmht_L1XE10 decisions                    9         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_xe65_cell_L1XE50          20        20        0         0         0         0         0         0         0         
-TrigSignatureMoniMT                                 INFO HLT_xe65_cell_L1XE50 decisions                    0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2e17_etcut_L12EM15VH      20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2e17_etcut_L12EM15VH decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2e3_etcut_L12EM3          20        20        13        12        12        0         0         12        
+TrigSignatureMoniMT                                 INFO HLT_2e3_etcut_L12EM3 decisions                    49        210       89        0         0         
+TrigSignatureMoniMT                                 INFO HLT_2g20_tight_L12EM20VH      20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2g20_tight_L12EM20VH decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2g35_etcut_L12EM20VH      20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2g35_etcut_L12EM20VH decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2g35_medium_L12EM20VH     20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2g35_medium_L12EM20VH decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J10020        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J100 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu10_bJpsimumu_L12MU10   20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu10_bJpsimumu_L12MU10 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu10_bUpsimumu_L12MU10   20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu10_bUpsimumu_L12MU10 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu14_L12MU10             20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu14_L12MU10 decisions                       0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu4_bJpsimumu_L12MU4     20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu4_bJpsimumu_L12MU4 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu4_bUpsimumu_L12MU4     20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu4_bUpsimumu_L12MU4 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu6Comb_L12MU6           20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu6Comb_L12MU6 decisions                     0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu6_10invm70_L1MU6       20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu6_10invm70_L1MU6 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu6_L12MU6               20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_2mu6_L12MU6 decisions                         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_3j200_L1J100              20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_3j200_L1J100 decisions                        0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_3j200_L1J20               20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_3j200_L1J20 decisions                         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_3mu6_L13MU6               20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_3mu6_L13MU6 decisions                         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_3mu6_msonly_L13MU6        20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_3mu6_msonly_L13MU6 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_4mu4_L14MU4               20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_4mu4_L14MU4 decisions                         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_5j70_0eta240_L14J20       20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_5j70_0eta240_L14J20 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_beamspot_allTE_trkfast_BeamSpotPEB_L1J1520        20        20        20        0         0         0         20        
+TrigSignatureMoniMT                                 INFO HLT_beamspot_allTE_trkfast_BeamSpotPEB_L1J15 decisions                    20        20        0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_costmonitor_CostMonDS_L1All20        20        20        20        0         0         0         20        
+TrigSignatureMoniMT                                 INFO HLT_costmonitor_CostMonDS_L1All decisions                    20        20        0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_e26_etcut_L1EM22VHI       20        20        1         1         1         0         0         1         
+TrigSignatureMoniMT                                 INFO HLT_e26_etcut_L1EM22VHI decisions                    1         6         1         0         0         
+TrigSignatureMoniMT                                 INFO HLT_e3_etcut1step_mu6fast_L1EM8I_MU1020        20        1         0         0         0         0         1         
+TrigSignatureMoniMT                                 INFO HLT_e3_etcut1step_mu6fast_L1EM8I_MU10 decisions                    2         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_e3_etcut_L1EM3            20        20        18        18        18        0         0         18        
+TrigSignatureMoniMT                                 INFO HLT_e3_etcut_L1EM3 decisions                      54        219       99        0         0         
+TrigSignatureMoniMT                                 INFO HLT_e5_etcut_L1EM3            20        20        17        16        16        0         0         16        
+TrigSignatureMoniMT                                 INFO HLT_e5_etcut_L1EM3 decisions                      51        212       51        0         0         
+TrigSignatureMoniMT                                 INFO HLT_e7_etcut_L1EM3            20        20        14        13        12        0         0         12        
+TrigSignatureMoniMT                                 INFO HLT_e7_etcut_L1EM3 decisions                      35        174       28        0         0         
+TrigSignatureMoniMT                                 INFO HLT_g140_etcut_L1EM24VHI      20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_g140_etcut_L1EM24VHI decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_g140_loose_L1EM24VHI      20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_g140_loose_L1EM24VHI decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_g20_etcut_LArPEB_L1EM15   20        20        5         5         3         3         0         3         
+TrigSignatureMoniMT                                 INFO HLT_g20_etcut_LArPEB_L1EM15 decisions                    5         5         3         3         0         
+TrigSignatureMoniMT                                 INFO HLT_g5_etcut_L1EM3            20        20        17        17        17        0         0         17        
+TrigSignatureMoniMT                                 INFO HLT_g5_etcut_L1EM3 decisions                      51        51        55        0         0         
+TrigSignatureMoniMT                                 INFO HLT_g5_etcut_LArPEB_L1EM3     20        20        17        17        17        17        0         17        
+TrigSignatureMoniMT                                 INFO HLT_g5_etcut_LArPEB_L1EM3 decisions                    51        51        55        55        0         
+TrigSignatureMoniMT                                 INFO HLT_g5_loose_L1EM3            20        20        12        12        12        8         0         8         
+TrigSignatureMoniMT                                 INFO HLT_g5_loose_L1EM3 decisions                      21        21        37        11        0         
+TrigSignatureMoniMT                                 INFO HLT_g5_medium_L1EM3           20        20        11        11        11        8         0         8         
+TrigSignatureMoniMT                                 INFO HLT_g5_medium_L1EM3 decisions                     20        20        37        11        0         
+TrigSignatureMoniMT                                 INFO HLT_g5_tight_L1EM3            20        20        11        11        11        5         0         5         
+TrigSignatureMoniMT                                 INFO HLT_g5_tight_L1EM3 decisions                      20        20        37        5         0         
+TrigSignatureMoniMT                                 INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J2020        20        1         0         0         0         0         1         
+TrigSignatureMoniMT                                 INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20 decisions                    2         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j225_ftf_subjesgscIS_bmv2c1040_split_L1J10020        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j225_ftf_subjesgscIS_bmv2c1040_split_L1J100 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j260_320eta490_L1J20      20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j260_320eta490_L1J20 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j260_320eta490_L1J75_31ETA4920        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j260_320eta490_L1J75_31ETA49 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j275_ftf_subjesgscIS_bmv2c1060_split_L1J10020        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j275_ftf_subjesgscIS_bmv2c1060_split_L1J100 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j300_ftf_subjesgscIS_bmv2c1070_split_L1J10020        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j300_ftf_subjesgscIS_bmv2c1070_split_L1J100 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j360_ftf_subjesgscIS_bmv2c1077_split_L1J10020        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j360_ftf_subjesgscIS_bmv2c1077_split_L1J100 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j420_L1J100               20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j420_L1J100 decisions                         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j420_L1J20                20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j420_L1J20 decisions                          0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j420_ftf_subjesgscIS_L1J2020        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j420_ftf_subjesgscIS_L1J20 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j45_L1J15                 20        20        5         0         0         0         0         5         
+TrigSignatureMoniMT                                 INFO HLT_j45_L1J15 decisions                           5         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j45_ftf_L1J15             20        20        5         0         0         0         0         5         
+TrigSignatureMoniMT                                 INFO HLT_j45_ftf_L1J15 decisions                       5         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j45_ftf_pf_L1J20          20        20        4         0         0         0         0         4         
+TrigSignatureMoniMT                                 INFO HLT_j45_ftf_pf_L1J20 decisions                    4         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j45_ftf_subjesgscIS_L1J15 20        20        5         0         0         0         0         5         
+TrigSignatureMoniMT                                 INFO HLT_j45_ftf_subjesgscIS_L1J15 decisions                    5         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J2020        20        5         5         5         5         0         5         
+TrigSignatureMoniMT                                 INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J20 decisions                    5         5         5         5         0         
+TrigSignatureMoniMT                                 INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J2020        20        5         5         5         5         0         5         
+TrigSignatureMoniMT                                 INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20 decisions                    5         5         5         5         0         
+TrigSignatureMoniMT                                 INFO HLT_j460_a10_lcw_subjes_L1J10020        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j460_a10_lcw_subjes_L1J100 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j460_a10_lcw_subjes_L1J20 20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j460_a10_lcw_subjes_L1J20 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j460_a10r_L1J100          20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j460_a10r_L1J100 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j460_a10r_L1J20           20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j460_a10r_L1J20 decisions                     0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J10020        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J100 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j460_a10t_lcw_jes_L1J100  20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j460_a10t_lcw_jes_L1J100 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J2020        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J20 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j80_j60_L1J15             20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j80_j60_L1J15 decisions                       0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j85_L1J20                 20        20        1         0         0         0         0         1         
+TrigSignatureMoniMT                                 INFO HLT_j85_L1J20 decisions                           1         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j85_ftf_L1J20             20        20        1         0         0         0         0         1         
+TrigSignatureMoniMT                                 INFO HLT_j85_ftf_L1J20 decisions                       1         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_j85_ftf_pf_L1J20          20        20        1         0         0         0         0         1         
+TrigSignatureMoniMT                                 INFO HLT_j85_ftf_pf_L1J20 decisions                    1         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu10_lateMu_L1MU10        20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu10_lateMu_L1MU10 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu20_ivar_L1MU6           20        20        3         1         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu20_ivar_L1MU6 decisions                     3         1         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu24_idperf_L1MU20        20        20        2         2         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu24_idperf_L1MU20 decisions                    2         2         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu26_ivarmedium_L1MU20    20        20        2         1         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu26_ivarmedium_L1MU20 decisions                    2         1         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu50_L1MU20               20        20        2         1         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu50_L1MU20 decisions                         2         1         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu50_RPCPEBSecondaryReadout_L1MU2020        20        2         1         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu50_RPCPEBSecondaryReadout_L1MU20 decisions                    2         1         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu60_0eta105_msonly_L1MU2020        20        1         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu60_0eta105_msonly_L1MU20 decisions                    1         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu6Comb_L1MU6             20        20        3         1         0         0         0         1         
+TrigSignatureMoniMT                                 INFO HLT_mu6Comb_L1MU6 decisions                       3         1         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu6_L1MU6                 20        20        3         1         1         1         0         1         
+TrigSignatureMoniMT                                 INFO HLT_mu6_L1MU6 decisions                           3         1         1         1         0         
+TrigSignatureMoniMT                                 INFO HLT_mu6_idperf_L1MU6          20        20        3         3         2         2         0         2         
+TrigSignatureMoniMT                                 INFO HLT_mu6_idperf_L1MU6 decisions                    3         3         2         2         0         
+TrigSignatureMoniMT                                 INFO HLT_mu6_ivarmedium_L1MU6      20        20        3         1         1         1         1         1         
+TrigSignatureMoniMT                                 INFO HLT_mu6_ivarmedium_L1MU6 decisions                    3         1         1         1         1         
+TrigSignatureMoniMT                                 INFO HLT_mu6_msonly_L1MU6          20        20        3         0         2         0         0         2         
+TrigSignatureMoniMT                                 INFO HLT_mu6_msonly_L1MU6 decisions                    3         0         2         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu6_mu4_L12MU4            20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu6_mu4_L12MU4 decisions                      0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu6fast_L1MU6             20        20        3         0         0         0         0         3         
+TrigSignatureMoniMT                                 INFO HLT_mu6fast_L1MU6 decisions                       3         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu80_msonly_3layersEC_L1MU2020        20        2         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_mu80_msonly_3layersEC_L1MU20 decisions                    2         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_noalg_L1EM3               20        20        0         0         0         0         0         20        
+TrigSignatureMoniMT                                 INFO HLT_noalg_L1EM3 decisions                         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_noalg_L1RD0_EMPTY         20        20        0         0         0         0         0         20        
+TrigSignatureMoniMT                                 INFO HLT_noalg_L1RD0_EMPTY decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_noalg_L1RD0_FILLED        20        20        0         0         0         0         0         20        
+TrigSignatureMoniMT                                 INFO HLT_noalg_L1RD0_FILLED decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_tau0_perf_ptonly_L1TAU12  20        20        8         8         0         0         0         8         
+TrigSignatureMoniMT                                 INFO HLT_tau0_perf_ptonly_L1TAU12 decisions                    8         8         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_tau160_mediumRNN_tracktwoMVA_L1TAU10020        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_tau160_mediumRNN_tracktwoMVA_L1TAU100 decisions                    0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_tau25_idperf_tracktwoMVA_L1TAU12IM20        20        8         0         0         0         0         8         
+TrigSignatureMoniMT                                 INFO HLT_tau25_idperf_tracktwoMVA_L1TAU12IM decisions                    8         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_tau25_idperf_tracktwo_L1TAU12IM20        20        8         8         8         0         0         8         
+TrigSignatureMoniMT                                 INFO HLT_tau25_idperf_tracktwo_L1TAU12IM decisions                    8         8         8         0         0         
+TrigSignatureMoniMT                                 INFO HLT_tau25_medium1_tracktwo_L1TAU12IM20        20        6         6         6         0         0         6         
+TrigSignatureMoniMT                                 INFO HLT_tau25_medium1_tracktwo_L1TAU12IM decisions                    6         6         6         0         0         
+TrigSignatureMoniMT                                 INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM20        20        5         0         0         0         0         5         
+TrigSignatureMoniMT                                 INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM decisions                    5         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_xe30_cell_L1XE10          20        20        5         0         0         0         0         5         
+TrigSignatureMoniMT                                 INFO HLT_xe30_cell_L1XE10 decisions                    5         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_xe30_cell_xe30_tcpufit_L1XE1020        20        2         0         0         0         0         2         
+TrigSignatureMoniMT                                 INFO HLT_xe30_cell_xe30_tcpufit_L1XE10 decisions                    2         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_xe30_mht_L1XE10           20        20        17        0         0         0         0         17        
+TrigSignatureMoniMT                                 INFO HLT_xe30_mht_L1XE10 decisions                     17        0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_xe30_tcpufit_L1XE10       20        20        3         0         0         0         0         3         
+TrigSignatureMoniMT                                 INFO HLT_xe30_tcpufit_L1XE10 decisions                    3         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_xe30_trkmht_L1XE10        20        20        9         0         0         0         0         9         
+TrigSignatureMoniMT                                 INFO HLT_xe30_trkmht_L1XE10 decisions                    9         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_xe65_cell_L1XE50          20        20        0         0         0         0         0         0         
+TrigSignatureMoniMT                                 INFO HLT_xe65_cell_L1XE50 decisions                    0         0         0         0         0         
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_cf.py b/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_cf.py
index 4a19b63d291f2b320ff87095e78cefc61cab26f2..1267fc4fe5e88c23ee3229e9ea4d8e9d3aff3c91 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_cf.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_cf.py
@@ -72,15 +72,19 @@ if opt.doMuonSlice == True:
     MuonChains  = []
 
     # step1
-    step1mufast=ChainStep("Step1_muFast", [ muFastSequence() ])
+    mufastS= muFastSequence()
+    step1mufast=ChainStep("Step1_muFast", [ mufastS ])
     # step2
-    step2muComb=ChainStep("Step2_muComb", [ muCombSequence() ])
+    mucombS = muCombSequence()
+    step2muComb=ChainStep("Step2_muComb", [ mucombS ])
 
     # step3
-    step3muEFSA=ChainStep("Step3_muEFSA", [ muEFSASequence() ])
+    muEFSAS = muEFSASequence()
+    step3muEFSA=ChainStep("Step3_muEFSA", [ muEFSAS ])
     step3muIso =ChainStep("Step3_muIso",  [ muIsoSequence() ])
     # step4
-    step4muEFCB=ChainStep("Step4_muEFCB", [ muEFCBSequence() ])
+    muEFCBS = muEFCBSequence()
+    step4muEFCB=ChainStep("Step4_muEFCB", [ muEFCBS ])
 
     emptyStep=ChainStep("Step2_empty")
 
@@ -93,20 +97,20 @@ if opt.doMuonSlice == True:
 
     # multi muon trigger
     # 2muons symmetric
-    step1_2mufast_sym= ChainStep("Step1_2muFast_sym", [ muFastSequence()], multiplicity=[2])
-    step2_2muComb_sym= ChainStep("Step1_2muComb_sym", [ muCombSequence()], multiplicity=[2])
+    step1_2mufast_sym= ChainStep("Step1_2muFast_sym", [ mufastS], multiplicity=[2])
+    step2_2muComb_sym= ChainStep("Step2_2muComb_sym", [ mucombS], multiplicity=[2])
     
-    step3_2muEFSA_sym= ChainStep("Step3_2muEFSA_sym", [ muEFSASequence()], multiplicity=[2])
-    step4_2muEFCB_sym= ChainStep("Step4_2muEFCB_sym", [ muEFCBSequence()], multiplicity=[2])
+    step3_2muEFSA_sym= ChainStep("Step3_2muEFSA_sym", [ muEFSAS], multiplicity=[2])
+    step4_2muEFCB_sym= ChainStep("Step4_2muEFCB_sym", [ muEFCBS], multiplicity=[2])
  
     MuonChains += [ makeChain(name='HLT_2mu6Comb_L12MU6',  L1Thresholds=["MU6"], ChainSteps=[ step1_2mufast_sym, step2_2muComb_sym ])]
 
     # 2muons asymmetric (this will change): 2 sequences, 2 seeds
-    step1_2mufast_asym= ChainStep("Step1_2muFast_asym", [ muFastSequence(), muFastSequence()], multiplicity=[2])
-    step2_2muComb_asym= ChainStep("Step1_2muComb_asym", [ muCombSequence(), muCombSequence()], multiplicity=[2])
+    step1_2mufast_asym= ChainStep("Step1_2muFast_asym", [ mufastS, mufastS], multiplicity=[1,1])
+    step2_2muComb_asym= ChainStep("Step1_2muComb_asym", [ mucombS, mucombS], multiplicity=[1,1])
     
-    step3_2muEFSA_asym= ChainStep("Step3_2muEFSA_asym", [ muEFSASequence(), muEFSASequence()], multiplicity=[2])
-    step4_2muEFCB_asym= ChainStep("Step4_2muEFCB_asym", [ muEFCBSequence(), muEFCBSequence()], multiplicity=[2])
+    step3_2muEFSA_asym= ChainStep("Step3_2muEFSA_asym", [ muEFSAS, muEFSAS], multiplicity=[1,1])
+    step4_2muEFCB_asym= ChainStep("Step4_2muEFCB_asym", [ muEFCBS, muEFCBS], multiplicity=[1,1])
     
     
     MuonChains += [ makeChain(name='HLT_mu6_mu4_L12MU4',
@@ -150,8 +154,8 @@ if opt.doJetSlice == True:
     step_a10r=ChainStep("Step_jet_a10r", [jetSeq_a10r])
     
     jetChains  = [
-        makeChain(name='HLT_j45_L1J20',  L1Thresholds=["J20"],   ChainSteps=[step_a4_tc_em]  ),
-        makeChain(name='HLT_j85_L1J20',  L1Thresholds=["J20"],ChainSteps=[step_a4_tc_em]  ),
+        makeChain(name='HLT_j45_L1J20',  L1Thresholds=["J20"], ChainSteps=[step_a4_tc_em]  ),
+        makeChain(name='HLT_j85_L1J20',  L1Thresholds=["J20"], ChainSteps=[step_a4_tc_em]  ),
         makeChain(name='HLT_j420_L1J20', L1Thresholds=["J20"], ChainSteps=[step_a4_tc_em]  ),
         makeChain(name='HLT_j260_320eta490_L1J20',  L1Thresholds=["J20"], ChainSteps=[step_a4_tc_em]  ),
       # makeChain(name='HLT_j225_gsc420_boffperf_split',   ChainSteps=[step_a4_tc_em]  ),
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/newJO_build.ref b/Trigger/TrigValidation/TrigUpgradeTest/share/newJO_build.ref
index f073351648fd086acd4bf5532a2d0f53e5a32c45..01a3396f7d9d987631f5de172f110dbdf606ed96 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/newJO_build.ref
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/newJO_build.ref
@@ -2,7 +2,7 @@ Storing config in the config newJOtest.pkl
 Py:Athena            INFO now loading newJOtest.pkl  ... 
 TrigSignatureMo...   INFO Chains passing step (1st row events & 2nd row decision counts):
 TrigSignatureMo...   INFO Chain name                   L1,      AfterPS,  step1     step2     Output
-TrigSignatureMo...   INFO All                           20        20        0         0         9         
+TrigSignatureMo...   INFO All                           20        20        0         0         2         
 TrigSignatureMo...   INFO HLT_2j35_L1J20                20        20        0         0         0         
 TrigSignatureMo...   INFO HLT_2j35_L1J20 decisions                          0         0         
 TrigSignatureMo...   INFO HLT_e3_etcut_L1EM3            20        20        15        0         0         
@@ -11,10 +11,10 @@ TrigSignatureMo...   INFO HLT_e5_etcut_L1EM3            20        20        13
 TrigSignatureMo...   INFO HLT_e5_etcut_L1EM3 decisions                      41        0         
 TrigSignatureMo...   INFO HLT_e7_etcut_L1EM7            20        20        8         0         0         
 TrigSignatureMo...   INFO HLT_e7_etcut_L1EM7 decisions                      14        0         
-TrigSignatureMo...   INFO HLT_g10_etcut_L1EM7           20        20        8         8         8         
-TrigSignatureMo...   INFO HLT_g10_etcut_L1EM7 decisions                     12        12        
-TrigSignatureMo...   INFO HLT_g15_etcut_L1EM12          20        20        5         5         5         
-TrigSignatureMo...   INFO HLT_g15_etcut_L1EM12 decisions                    6         6         
+TrigSignatureMo...   INFO HLT_g10_etcut_L1EM7           20        20        8         0         0         
+TrigSignatureMo...   INFO HLT_g10_etcut_L1EM7 decisions                     12        0         
+TrigSignatureMo...   INFO HLT_g15_etcut_L1EM12          20        20        5         0         0         
+TrigSignatureMo...   INFO HLT_g15_etcut_L1EM12 decisions                    6         0         
 TrigSignatureMo...   INFO HLT_j45_L1J20                 20        20        0         0         0         
 TrigSignatureMo...   INFO HLT_j45_L1J20 decisions                           0         0         
 TrigSignatureMo...   INFO HLT_j85_L1J20                 20        20        0         0         0         
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoAlg.cxx b/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoAlg.cxx
index 7846a1a55e0cdc270fcf6c44572c81512d160fb8..59728a21beeea065a9d05b4c7ab290e415f0185b 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoAlg.cxx
+++ b/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoAlg.cxx
@@ -40,10 +40,10 @@ namespace HLTTest {
       return StatusCode::SUCCESS;      
     }
     
-    ATH_MSG_DEBUG( "Running with "<< previousDecisionsHandle->size() <<" implicit ReadHandles for previous decisions");
+    ATH_MSG_DEBUG( "Running with "<< previousDecisionsHandle->size() <<" decisions from the input implicit ReadHandle");
 
     auto recoInput = SG::makeHandle(m_recoInput, context);
-    ATH_MSG_DEBUG( "and with "<< recoInput->size() <<" reco inputs");
+    ATH_MSG_DEBUG( "             and with "<< recoInput->size() <<" reco inputs");
     
     // new output decisions
     SG::WriteHandle<DecisionContainer> outputHandle = createAndStore(decisionOutput(), context ); 
@@ -58,7 +58,7 @@ namespace HLTTest {
       const FeatureOBJ* feature = *featureLink;
       featureFromDecision.push_back( feature);
     }       
-    ATH_MSG_DEBUG("Found "<<featureFromDecision.size()<<" features "<<m_linkName.value() <<" mapped from previous decisions");
+    ATH_MSG_DEBUG("Found "<<featureFromDecision.size()<<" features "<<m_linkName.value() <<" mapped from input decisions");
     
     //map reco object and decision: find in reco obejct the initial RoI and map it to the correct decision
     size_t reco_counter = 0;
@@ -110,10 +110,10 @@ namespace HLTTest {
       TrigCompositeUtils::DecisionIDContainer objDecisions;      
       TrigCompositeUtils::decisionIDs( outh, objDecisions );
 
-      ATH_MSG_DEBUG("Number of positive decisions for this input: " << objDecisions.size() );
+      ATH_MSG_DEBUG("Number of positive decisions for this output: " << objDecisions.size() );
 
       for ( TrigCompositeUtils::DecisionID id : objDecisions ) {
-        ATH_MSG_DEBUG( " --- found new decision " << HLT::Identifier( id ) );
+        ATH_MSG_DEBUG( " --- found decision " << HLT::Identifier( id ) );
       }  
     }
   
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoTool.cxx b/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoTool.cxx
index e3f0bf919a51ab90d2b588afbd5acdf01411bb06..8471ab52fd78d8da961679efea9b64dfff5f6569 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoTool.cxx
+++ b/Trigger/TrigValidation/TrigUpgradeTest/src/TestHypoTool.cxx
@@ -32,44 +32,35 @@ namespace HLTTest {
   }
 
   StatusCode TestHypoTool::decide( DecisionContainer* decisions ) const  {
-    ATH_MSG_DEBUG( "Making new decisions " << name() );
+    ATH_MSG_DEBUG( "Add decisionIDs to " << decisions->size() <<" output decisions" );
     size_t counter = 0;
     for ( const auto d: *decisions )  {
       //get previous decisions
       ElementLinkVector<DecisionContainer> inputLinks = getLinkToPrevious(d);
-      ATH_MSG_DEBUG("Got "<<inputLinks.size()<<" previous decisions");
+      ATH_MSG_DEBUG("Decision "<< counter <<": Got "<<inputLinks.size()<<" input decisions");
       for (const auto previousDecisions: inputLinks){
 
         TrigCompositeUtils::DecisionIDContainer objDecisions;      
         TrigCompositeUtils::decisionIDs( *previousDecisions, objDecisions );
 
-        ATH_MSG_DEBUG("Number of previous decisions ID for input "<< counter <<"= " << objDecisions.size() );
+        ATH_MSG_DEBUG("Number of decision-IDs for input "<< counter <<" is: " << objDecisions.size() );
 
-        for ( TrigCompositeUtils::DecisionID id : objDecisions ) {
-          ATH_MSG_DEBUG( " -- found decision " << HLT::Identifier( id ) );
-        }
-
-        const auto it = find(objDecisions.begin(), objDecisions.end(),  m_decisionId);
-        if (it != objDecisions.end()){      
-          
-          const auto feature = d->objectLink<xAOD::TrigCompositeContainer>( "feature" );
-          // Used to fetch m_linkName.value() but this was refactored to "feature"
+	if ( TrigCompositeUtils::passed( m_decisionId.numeric(), objDecisions ) ) {
+	  const auto feature = d->objectLink<xAOD::TrigCompositeContainer>( "feature" );
           if ( not feature.isValid() )  {
             ATH_MSG_ERROR( " Can not find reference to the object from the decision" );
             return StatusCode::FAILURE;
           }
           const float v = (*feature)->getDetail<float>( m_property );
           if ( v > m_threshold ) { // actual cut will be more complex of course
-            ATH_MSG_DEBUG( "  threshold " << m_threshold << " passed by value: " << v );  
+            ATH_MSG_DEBUG( m_threshold << " passed by value: " << v << ". Adding "<< m_decisionId <<" to output" );  
             addDecisionID(  m_decisionId, d );
           } else {
-            ATH_MSG_DEBUG( "  threshold " << m_threshold << " not passed by value " << v );
+            ATH_MSG_DEBUG( m_threshold << " not passed by value " << v );
           }
         
-        } else { // it == objDecisions.end()
-
-          ATH_MSG_DEBUG("No Input decisions requested by active chain "<< m_decisionId);
-        
+        } else { 
+          ATH_MSG_DEBUG("No Input decisions matched");        
         }       
         counter++;
       }
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/src/TestInputMaker.cxx b/Trigger/TrigValidation/TrigUpgradeTest/src/TestInputMaker.cxx
index 69c0835d28e55737af0b190356146eebcf10a8bc..4644a9421195cc7672f4e489a47c29d12a3ecd38 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/src/TestInputMaker.cxx
+++ b/Trigger/TrigValidation/TrigUpgradeTest/src/TestInputMaker.cxx
@@ -50,20 +50,22 @@ namespace HLTTest {
     // loop over output decisions, navigate to inputs
     for (auto outputHandle: outputHandles) {
       if( not outputHandle.isValid() ) {
-        ATH_MSG_DEBUG( "Got no decisions from output "<< outputHandle.key() << " because handle not valid");
+        ATH_MSG_DEBUG( "TestInputMaker: Got no decisions from output "<< outputHandle.key() << " because handle not valid");
         continue;
       }
       if( outputHandle->size() == 0){ // input filtered out
-        ATH_MSG_ERROR( "Got no decisions from output "<< outputHandle.key()<<": handle is valid but container is empty. Is this expected?");
+        ATH_MSG_ERROR( "TestInputMaker: Got no decisions from output "<< outputHandle.key()<<": handle is valid but container is empty. Is this expected?");
         return StatusCode::FAILURE;
       }
 
-      ATH_MSG_DEBUG( "Got output "<< outputHandle.key()<<" with " << outputHandle->size() << " elements" );
+      ATH_MSG_DEBUG( "TestInputMaker: Got output "<< outputHandle.key()<<" with " << outputHandle->size() << " elements" );
       // loop over output decisions in container of outputHandle, follow link to inputDecision
+      int count =0;
       for (const  auto outputDecision : *outputHandle){ 
         const ElementLinkVector<DecisionContainer> inputLinks = getLinkToPrevious(outputDecision);
+	ATH_MSG_DEBUG("Element "<< count << " has " << inputLinks.size() <<" previous links");
         for (const auto input: inputLinks){
-          ATH_MSG_DEBUG( "followed seed link to input "<< input.key() );
+          ATH_MSG_DEBUG( " -- Got seed link to input  "<<input.dataID() <<" and index "<< input.index() );
           const Decision* inputDecision = *input;
           const auto roiELInfo = TrigCompositeUtils::findLink<TrigRoiDescriptorCollection>( inputDecision,  m_roisLink.value());
           CHECK( roiELInfo.isValid() );
@@ -75,7 +77,7 @@ namespace HLTTest {
           // link input reco object to outputDecision
           const auto featureLink = featureLinkInfo.link;
           const FeatureOBJ* feature = *featureLink;
-          ATH_MSG_DEBUG(" Found feature " <<m_linkName.value() );
+          ATH_MSG_DEBUG(" --  Found feature " <<m_linkName.value() <<":" << **featureLink);
 
           // merge reco outputs that are linked to the same feature (RoI): this avoids processing the same RoI from TC decisions from different chains
 
@@ -86,13 +88,14 @@ namespace HLTTest {
             auto newFeature = new xAOD::TrigComposite;
             reco_output->push_back(newFeature); 
             newFeature->setObjectLink(m_linkName.value(), featureLink);
-            ATH_MSG_DEBUG(" Added " <<m_linkName.value() << " and " << m_roisLink.value() << " to reco object");
+            ATH_MSG_DEBUG(" --  Added " <<m_linkName.value() << " and " << m_roisLink.value() << " to reco object");
           }
         }//loop over previous inputs
         // For early tests, create TC, link to RoiD, push back onto TCC.
         // Later will output RoID collection directly via tool.        
-      } // loop over decisions      
-    } // loop over input keys
+	count++;
+      } // loop over decisions
+    } // loop over output keys
    
     // Finally, record output
     ATH_MSG_DEBUG("Produced "<<reco_output->size() <<" reco objects and stored in "<<m_recoOutput);
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py
index a55d488511249d1a4bcfd3f9357b3a9c1896d480..fe313f6e534ca06ab86dc3892fc80bbf4425b854 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py
@@ -33,14 +33,16 @@ def collectHypos( steps ):
                     hypos[stepSeq.name()].append( alg )
                 else:
                     __log.verbose("Not a hypo" + alg.name())
+
     return hypos
 
 def __decisionsFromHypo( hypo ):
     """ return all chains served by this hypo and the key of produced decision object """
+    from DecisionHandling.TrigCompositeUtils import isLegId
     if hypo.getType() == 'ComboHypo':
-        return hypo.MultiplicitiesMap.keys(), hypo.HypoOutputDecisions[0]
+        return [key for key in hypo.MultiplicitiesMap.keys() if not isLegId(key)], hypo.HypoOutputDecisions[0]
     else: # regular hypos
-        return [ t.name() for t in hypo.HypoTools ], hypo.HypoOutputDecisions
+        return [ t.name() for t in hypo.HypoTools if not isLegId(t.name())], hypo.HypoOutputDecisions
 
 
 def collectViewMakers( steps ):
@@ -65,7 +67,7 @@ def collectFilters( steps ):
     The logic is simpler as all filters are grouped in step filter sequences
     Returns map: step name -> list of all filters of that step
     """
-    __log.info("Collecting hypos")
+    __log.info("Collecting filters")
     from collections import defaultdict
     filters = defaultdict( list )
 
@@ -164,9 +166,9 @@ def triggerSummaryCfg(flags, hypos):
     else:
         for chainName, chainDict in TriggerConfigHLT.dicts().iteritems():
             if chainName not in allChains:
-                __log.debug("The chain %s is not mentiond in any step", chainName)
+                __log.warn("The chain %s is not mentiond in any step", chainName)
                 # TODO once sequences available in the menu we need to crosscheck it here
-                assert len(chainDict['chainParts'])  == 1, "Chains w/o the steps can not have mutiple parts in chainDict, it makes no sense"
+                assert len(chainDict['chainParts'])  == 1, "Chains w/o the steps can not have mutiple parts in chainDict, it makes no sense: %s"%chainName
                 allChains[chainName] = mapThresholdToL1DecisionCollection( chainDict['chainParts'][0]['L1threshold'] )
                 __log.info("The chain %s final decisions will be taken from %s", chainName, allChains[chainName] )
 
@@ -201,7 +203,7 @@ def triggerMonitoringCfg(flags, hypos, filters, l1Decoder):
             stepDecisionKeys.append( hypoOutputKey )
             allChains.update( hypoChains )
 
-        dcTool = DecisionCollectorTool( "DecisionCollector" + stepName, Decisions=stepDecisionKeys )
+        dcTool = DecisionCollectorTool( "DecisionCollector" + stepName, Decisions=list(set(stepDecisionKeys)) )
         __log.info( "The step monitoring decisions in " + dcTool.name() + " " +str( dcTool.Decisions ) )
         mon.CollectorTools += [ dcTool ]
 
@@ -395,8 +397,10 @@ def triggerPOOLOutputCfg(flags, decObj, decObjHypoOut, edmSet):
     # Produce the trigger bits
     from TrigOutputHandling.TrigOutputHandlingConfig import TriggerBitsMakerToolCfg
     from TrigDecisionMaker.TrigDecisionMakerConfig import TrigDecisionMakerMT
+
     bitsmaker = TriggerBitsMakerToolCfg()
     decmaker = TrigDecisionMakerMT('TrigDecMakerMT')
+
     decmaker.BitsMakerTool = bitsmaker
     acc.addEventAlgo( decmaker )
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bphysics/BphysicsDef.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bphysics/BphysicsDef.py
index 906e7049b349eb7c55c8d1baabaff08eb5134f7e..23a25fa3fe65e8ca66711e7d07bc81316962bdcf 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bphysics/BphysicsDef.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bphysics/BphysicsDef.py
@@ -57,7 +57,8 @@ class BphysicsChainConfiguration(MuonChainConfiguration):
 
         for mu_step_level, bphys_step_level in zip(muon_steps, bphys_steps):
             for step in mu_step_level:
-                chainSteps += [step]
+                chainstep = getattr(self, step)()
+                chainSteps += [chainstep]
             for step in bphys_step_level:
                 chainSteps += [step]
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/GenerateJetChainDefs.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/GenerateJetChainDefs.py
index 139dd586537e2a5cbfff5d2ea6159b2a1a888a17..79129bd54c1b60787237fcd7cf0c00764c813ec4 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/GenerateJetChainDefs.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/GenerateJetChainDefs.py
@@ -30,13 +30,11 @@ def generateChainConfigs( chainDict ):
     # FIXME: Check that all jet reco configs are identical
     if len(listOfChainDefs)>1:
         # Add reco consistency checking between all 
-        log.warning("Multiple jet chainParts detected; reco consistency checks not yet implemented")
+        log.warning("Multiple jet chainParts detected; reco consistency checks not yet implemented. Forcing chain to be single-object")
         theChainDef = listOfChainDefs[0] #needs to be implemented properly
     else:
         theChainDef = listOfChainDefs[0]
 
-    log.debug("theChainDef %s" , theChainDef)
-
 
     return theChainDef
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetChainConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetChainConfiguration.py
index c208dcaae0c7b32686ee0d77ab0d6b34471a4edb..ea041a5f4697fcea5bd606996e06e5fd51ffebab 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetChainConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetChainConfiguration.py
@@ -23,7 +23,7 @@ class JetChainConfiguration(ChainConfigurationBase):
     # Assemble the chain depending on information from chainName
     # ----------------------
     def assembleChain(self):                            
-        log.debug("Assembling chain for " + self.chainName)
+        log.debug("Assembling chain " + self.chainName)
 
         # --------------------
         # define here the names of the steps and obtain the chainStep configuration 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainDictTools.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainDictTools.py
index 3db77148645d8f7498a6af25164c56ff157b8969..764d1d5cdab9e163037781b28b286961afcdfa4c 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainDictTools.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainDictTools.py
@@ -98,6 +98,22 @@ def splitChainDict(chainDict):
 
 
 
+def splitChainInDict(chainName):
+      from TriggerMenuMT.HLTMenuConfig.Menu.TriggerConfigHLT import TriggerConfigHLT
+      from DecisionHandling.TrigCompositeUtils import legName
+      chainDict = TriggerConfigHLT.getChainDictFromChainName(chainName)
+      if len(chainDict['chainParts']) ==1:
+        return [chainDict]
+                  
+      listOfChainDicts = []     
+      for count, chainDictPart in enumerate(chainDict['chainParts']):
+            onePartChainDict = deepcopy( chainDict )
+            onePartChainDict['chainParts'] = [ chainDictPart ]
+            onePartChainDict['chainName'] = legName(chainName, count)            
+            listOfChainDicts += [onePartChainDict]
+      return listOfChainDicts
+
+          
 def setupTopoStartFrom(topoThresholds, theChainDef):
     from TrigGenericAlgs.TrigGenericAlgsConf import MergeTopoStarts
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainMerging.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainMerging.py
index 658f7694886e6aa592766da44593772b08bd1b70..c56c15b1824fbda8c072411aa6b7a97eebaa188c 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainMerging.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainMerging.py
@@ -64,8 +64,9 @@ def mergeParallel(chainDefList, offset):
                                   
     combinedChainDef = Chain(chainName, ChainSteps=combChainSteps, L1Thresholds=l1Thresholds)
 
+    log.debug("Merged chain %s with these steps:", chainName)
     for step in combinedChainDef.steps:
-        log.debug('  Step %s', step)
+        log.debug('   %s', step)
 
     return combinedChainDef
 
@@ -83,12 +84,13 @@ def makeChainSteps(steps):
         if step is None:
             continue
         log.debug("  step %s, multiplicity  = %s", step.name, str(step.multiplicity))
-        log.debug("      with sequences = %s", ' '.join(map(str, [seq.name for seq in step.sequences])))
+        if len(step.sequences):
+            log.debug("      with sequences = %s", ' '.join(map(str, [seq.name for seq in step.sequences])))
 
          # this function only works if the input chains are single-object chains (one menu seuqnce)
         if len(step.sequences) > 1:
             log.error("More than one menu sequence found in combined chain!!")
-        seq = step.sequences[0]
+
 
         currentStep = step.name
         stepNameParts = currentStep.split('_')
@@ -96,8 +98,10 @@ def makeChainSteps(steps):
             stepNumber = stepNameParts[0]
 
         # the step naming for combined chains needs to be revisted!!
-        stepName += '_' +step.name 
-        stepSeq.append(seq)
+        stepName += '_' +step.name
+        if len(step.sequences):
+            seq = step.sequences[0]
+            stepSeq.append(seq)
         # set the multiplicity of all the legs 
         stepMult.append(sum(step.multiplicity))
         
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/DictFromChainName.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/DictFromChainName.py
index 74740739e1147c6e747cbb7f390ba8fbba0a72bb..45c566fb4b3dc6e567d91ec5ac896419ba9973cc 100755
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/DictFromChainName.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/DictFromChainName.py
@@ -301,9 +301,6 @@ def analyseChainName(chainName, L1thresholds, L1item):
 
 
         chainpartsNoL1 = chainparts
-
-        log.debug('chainparts %s', chainparts)
-
         parts=chainpartsNoL1.split('_')
         parts=filter(None,parts)
 
@@ -390,8 +387,8 @@ def analyseChainName(chainName, L1thresholds, L1item):
 
         # ---- remove properties that aren't allowed in the chain properties for a given siganture ----
         forbiddenProperties = set(chainProperties.keys()) - set(allowedSignaturePropertiesAndValues.keys())
-        log.debug('%s', set(chainProperties.keys()))
-        log.debug('%s', set(allowedSignaturePropertiesAndValues.keys()))
+        log.debug('chainPropertie:s %s', set(chainProperties.keys()))
+        log.debug('allowedSignaturePropertiesAndValues: %s', set(allowedSignaturePropertiesAndValues.keys()))
         for fb in forbiddenProperties:
             forbiddenValue = chainProperties.pop(fb)
             assert forbiddenValue == '', "Property {} not allowed for signature '{}', but specified '{}'".format (fb, chainProperties['signature'], forbiddenValue)
@@ -410,8 +407,6 @@ def analyseChainName(chainName, L1thresholds, L1item):
 
     #genchainDict['signature'] = allChainProperties[0]['signature']
 
-    log.debug('genchainDict that is passed as Final dict %s', genchainDict)
-
     return genchainDict
 
 
@@ -427,8 +422,6 @@ def dictFromChainName(chainInfo):
     but for nwo plain chain name is also supported
     
     """
-    log.debug("chainInfo %s", chainInfo)
-
 
     # these if/elif/else statements are due to temporary development
     from TrigConfHLTData.HLTUtils import string2hash
@@ -471,14 +464,15 @@ def dictFromChainName(chainInfo):
     chainDict['topoStartFrom']   = topoStartFrom
     chainDict['chainNameHash']   = string2hash(chainDict['chainName'])
 
-    log.debug('Setting chain multiplicities')
+
     allChainMultiplicities = getChainMultFromDict(chainDict)
     chainDict['chainMultiplicities'] = allChainMultiplicities
-
-    if log.isEnabledFor(logging.DEBUG):
-        import pprint
-        pp = pprint.PrettyPrinter(indent=4, depth=8)
-        log.debug('SUPER FINAL dictionary: %s', pp.pformat(chainDict))
+    log.debug('Setting chain multiplicities: %s ', allChainMultiplicities)
+    
+    ## if log.isEnabledFor(logging.DEBUG):
+    ##     import pprint
+    ##     pp = pprint.PrettyPrinter(indent=4, depth=8)
+    ##     log.debug('SUPER FINAL dictionary: %s', pp.pformat(chainDict))
 
     return chainDict
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py
index e43f500f8a082ff69ea8025d846c593a7b8ba0c0..3396996a5886092fc067d76dab902bb97766c15f 100755
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py
@@ -164,16 +164,16 @@ class GenerateMenuMT(object):
         chainCounter = 0
 
         for chain in chainsInMenu:
-            log.debug("Currently processing chain: %s ", chain)
+            log.debug("Now processing chain: %s ", chain) 
             chainDict = dictFromChainName(chain)
 
             chainCounter += 1
             chainDict['chainCounter'] = chainCounter
 
-            log.debug("Next: getting chain configuration for chain %s ", chain)
+            log.debug("Next: getting chain configuration for chain %s ", chain.name) 
             chainConfig= self.__generateChainConfig(chainDict)
 
-            log.debug("Finished with retrieving chain configuration for chain %s", chain)
+            log.debug("Finished with retrieving chain configuration for chain %s", chain.name) 
             TriggerConfigHLT.registerChain( chainDict, chainConfig )
 
 
@@ -200,7 +200,6 @@ class GenerateMenuMT(object):
                 log.debug("Adding %s chains to the list of chains to be configured", sig)
                 chains+= eval('TriggerFlags.' + sig + 'Slice.signatures()')
                 self.signaturesToGenerate.append(sig)
-                log.debug('Signatures to generate %s', sig)
             else:
                 log.debug('Signature %s is not switched on (no chains in menu or disabled by flag)', sig)
 
@@ -209,10 +208,10 @@ class GenerateMenuMT(object):
         if len(chains) == 0:
             log.warning("There seem to be no chains in the menu - please check")
         else:
-            log.debug("The following chains were found in the menu %s", chains)
-
-        return chains
-
+            log.debug("The following chains were found in the menu: \n %s", '\n '.join(map(str,(chains) )))
+            
+        return chains 
+                                
 
     def __generateChainConfig(self, mainChainDict):
         """
@@ -220,7 +219,6 @@ class GenerateMenuMT(object):
         """
         # check if all the signature files can be imported files can be imported
         for sig in self.signaturesToGenerate:
-            log.debug("current sig %s", sig)
             try:
                 if eval('self.do' + sig + 'Chains'):
                     if sig == 'Egamma':
@@ -265,7 +263,7 @@ class GenerateMenuMT(object):
             chainConfigs = None
             currentSig = chainDict['signature']
             chainName = chainDict['chainName']
-            log.debug('Checking chainDict for chain %s' , currentSig)
+            log.debug('Checking chainDict for chain %s in signature %s' , chainName, currentSig)
 
             sigFolder = ''
             if currentSig == 'Electron' or currentSig == 'Photon':
@@ -276,23 +274,21 @@ class GenerateMenuMT(object):
                 sigFolder = currentSig
 
             if currentSig in self.availableSignatures and currentSig != 'Combined':
-                try:
-                    log.debug("Trying to get chain config for %s", currentSig)
-                    functionToCall ='TriggerMenuMT.HLTMenuConfig.' + sigFolder + '.Generate' + currentSig + 'ChainDefs.generateChainConfigs(chainDict)'
+                try:                    
+                    log.debug("Trying to get chain config for %s in folder %s", currentSig, sigFolder)
+                    functionToCall ='TriggerMenuMT.HLTMenuConfig.' + sigFolder + '.Generate' + currentSig + 'ChainDefs.generateChainConfigs(chainDict)' 
                     chainConfigs = eval(functionToCall)
                 except RuntimeError:
                     log.exception( 'Problems creating ChainDef for chain\n %s ', chainName)
                     continue
             else:
                 log.error('Chain %s ignored - Signature not available', chainDict['chainName'])
-
-            log.debug('ChainConfigs  %s ', chainConfigs)
             listOfChainConfigs.append(chainConfigs)
 
-        if log.isEnabledFor(logging.DEBUG):
-            import pprint
-            pp = pprint.PrettyPrinter(indent=4, depth=8)
-            log.debug('mainChainDict dictionary: %s', pp.pformat(mainChainDict))
+        ## if log.isEnabledFor(logging.DEBUG):
+        ##     import pprint
+        ##     pp = pprint.PrettyPrinter(indent=4, depth=8)
+        ##     log.debug('mainChainDict dictionary: %s', pp.pformat(mainChainDict))
 
 
         # This part is to deal with combined chains between different signatures
@@ -319,6 +315,7 @@ class GenerateMenuMT(object):
             from TriggerMenuMT.HLTMenuConfig.CommonSequences.EventBuildingSequenceSetup import addEventBuildingSequence
             addEventBuildingSequence(theChainConfig, eventBuildType)
 
+        log.debug('ChainConfigs  %s ', theChainConfig)
         return theChainConfig
 
     @memoize
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py
index 17200e6cd20342a66f75dcdf30148804ac92196d..bdf7fc4cce891fa85b1672d6ee238f7047dd73cf 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py
@@ -30,21 +30,19 @@ from AthenaCommon.CFElements import parOR, seqAND, seqOR
 from AthenaCommon.AlgSequence import dumpSequence
 from TriggerMenuMT.HLTMenuConfig.Menu.HLTCFDot import  stepCF_DataFlow_to_dot, stepCF_ControlFlow_to_dot, all_DataFlow_to_dot
 from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponentsNaming import CFNaming
-from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import ChainStep
+#from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import ChainStep
+
 
-import copy
 from AthenaCommon.Logging import logging
 log = logging.getLogger( __name__ )
 
-
-
 #### Here functions to create the CF tree from CF configuration objects
 def makeSummary(name, flatDecisions):
     """ Returns a TriggerSummaryAlg connected to given decisions"""
     from DecisionHandling.DecisionHandlingConfig import TriggerSummaryAlg
     summary = TriggerSummaryAlg( name )
     summary.InputDecision = "L1DecoderSummary"
-    summary.FinalDecisions = flatDecisions
+    summary.FinalDecisions = list(set(flatDecisions))
     return summary
 
 
@@ -100,6 +98,7 @@ def createCFTree(CFseq):
         name = ath_sequence.name()
         if name in already_connected:
             log.debug("AthSequencer %s already in the Tree, not added again",name)
+            continue
         else:
             already_connected.append(name)
             stepReco += ath_sequence
@@ -163,7 +162,6 @@ def makeHLTTree(newJO=False, triggerConfigHLT = None):
 
     # TODO - check we are not running things twice. Once here and once in TriggerConfig.py
 
-    # add signature monitor
     from TriggerJobOpts.TriggerConfig import collectHypos, collectFilters, collectViewMakers, collectDecisionObjects,\
         triggerMonitoringCfg, triggerSummaryCfg, triggerMergeViewsAndAddMissingEDMCfg, collectHypoDecisionObjects
     from AthenaConfiguration.AllConfigFlags import ConfigFlags
@@ -337,24 +335,23 @@ def createDataFlow(chains, allDicts):
 
         lastCFseq = None
         for nstep in range(0,len(chain.steps)):
-#            stepCF_name =  CFNaming.stepName(nstep)
             chain_step=chain.steps[nstep]
             log.debug("\n************* Start connecting step %d %s for chain %s", nstep+1, chain_step.name, chain.name)
 
             filter_input =[]
             if nstep == 0: # L1 seeding
-                seeds = chain.group_seed
+                seeds = chain.L1decisions
                 filter_input.extend( seeds )
                 log.debug("Found these seeds from the chain: %s", seeds)
                 log.debug("Seeds added; having in the filter now: %s", filter_input)
             else:
                 for out in lastCFseq.decisions:
                     filter_input.append(out)
-                    log.debug("Connect to previous sequence through these filter inputs: %s", filter_input)
+                log.debug("Connect to previous sequence through these filter inputs: %s", filter_input)
 
 
-            if len(filter_input) == 0 or (len(filter_input) != 1 and not chain_step.isCombo):
-                log.error("ERROR: Filter for step %s has %d inputs! One is expected", chain_step.name, len(filter_input))
+            if len(filter_input) == 0 :
+                log.error("ERROR: Filter for step %s has %d inputs! At least one is expected", chain_step.name, len(filter_input))
 
 
             # make one filter per step:
@@ -365,75 +362,34 @@ def createDataFlow(chains, allDicts):
                 filter_output.append( CFNaming.filterOutName(filter_name, i))
 
             (foundFilter, foundCFSeq) = findCFSequences(filter_name, CFseq_list[nstep])
-            log.debug("Found %d CF sequences with base filter name %s", foundFilter, filter_name)
+            log.debug("Found %d CF sequences with filter name %s", foundFilter, filter_name)
+             # add error if more than one
             if not foundFilter:
                 sfilter = buildFilter(filter_name, filter_input)
-                CF_seq = CFSequence( ChainStep=chain_step, FilterAlg=sfilter, connections=filter_output)
+                CF_seq = CFSequence( ChainStep=chain_step, FilterAlg=sfilter)
+                CF_seq.connect(filter_output)
                 CFseq_list[nstep].append(CF_seq)
                 lastCFseq=CF_seq
             else:
-                count_fil=0
-                # find correspoding CFsequence
-                for cfseq in foundCFSeq: # all the CFseq using the same filter
-                    sfilter=cfseq.filter
-                    #exactly same filter with the same inputs (same gropu of chains);
-                    already_connected = [x for x in filter_output if x in cfseq.connections]
-                    if len(already_connected):
-                        chain.steps[nstep] = cfseq.step # reuse the same step
-                        chain_step=chain.steps[nstep]
-                        lastCFseq=cfseq #reuse the CFseq
-                        count_fil =0
-                        break
-                    else:
-                        count_fil+=1
-
-                # if we have the same filter, with differnt inputs:
-                # add inputs/output to filter
-                # deepcopy all the seqeunces
-                # duplicate the Hypo with differnt name
-                # create new ChainStep and replace in the list
-                # create a new CFsequence with different name
-                if (count_fil):
-                    log.debug("Adding more inputs/outputs to filter %s", filter_name)
-                    for i in filter_input:
+                if len(foundCFSeq) >1:
+                    log.error("Found more than one seuqences containig this filter %s", filter_name)
+
+                sfilter = foundCFSeq[0].filter
+                for i in filter_input:
                         sfilter.addInput(i)
-                    for i in filter_output:
+                for i in filter_output:
                         sfilter.addOutput(i)
-
-                    log.debug("Duplicating the Step %s", chain_step.name)
-                    new_sequences = []
-                    for sequence in chain_step.sequences:
-                        new_sequence=copy.deepcopy(sequence)
-                        new_sequence.resetConnections()
-                        new_sequence.name = "%s_%d"%(sequence.name, count_fil)
-                        if type(sequence.hypo) is list:
-                           new_hypoAlg = []
-                           for hp in sequence.hypo:
-                              oldhypo=hp.Alg
-                              newHypoAlgName = "%s_%d"%(oldhypo.name(),count_fil)
-                              new_hypoAlg.append( oldhypo.clone(newHypoAlgName) )
-                           new_sequence.replaceHypoForDuplication(new_hypoAlg)
-                           new_sequences.append(new_sequence)
-                        else:
-                           oldhypo=sequence.hypo.Alg
-                           newHypoAlgName = "%s_%d"%(oldhypo.name(),count_fil)
-                           new_hypoAlg=oldhypo.clone(newHypoAlgName)
-                           new_sequence.replaceHypoForDuplication(new_hypoAlg)
-                           new_sequences.append(new_sequence)
-
-                    new_chain_step_name="%s_%d"%(chain_step.name, count_fil)
-                    # making new ChainStep
-                    new_chain_step = ChainStep(new_chain_step_name, Sequences=new_sequences,  multiplicity=chain_step.multiplicity)
-                    chain.steps[nstep] = new_chain_step # replace chain step
-                    chain_step = chain.steps[nstep]
-
-                    new_CF_seq = CFSequence( ChainStep=new_chain_step, FilterAlg=sfilter, connections=filter_output)
-                    CFseq_list[nstep].append(new_CF_seq)
-                    lastCFseq=new_CF_seq
-
-
-            sfilter.setChains(chain.name)
-            log.debug("Adding chain %s to %s", chain.name,sfilter.Alg.name())
+                
+                lastCFseq=foundCFSeq[0]
+                lastCFseq.connect(filter_output)
+           
+            
+
+            # add chains to the filter:
+            chainLegs = chain.getChainLegs()
+            for leg in chainLegs:
+                sfilter.setChains(leg)
+                log.debug("Adding chain %s to %s", leg,sfilter.Alg.name())
             log.debug("Now Filter has chains: %s", sfilter.getChains())
 
             if chain_step.isCombo:
@@ -444,21 +400,20 @@ def createDataFlow(chains, allDicts):
 
             if len(chain.steps) == nstep+1:
                 log.debug("Adding finalDecisions for chain %s at step %d:", chain.name, nstep+1)
-                for seq in chain_step.sequences:
-                    finalDecisions[nstep].extend(seq.outputs)
-                    log.debug(seq.outputs)
-
+                for dec in lastCFseq.decisions:
+                    finalDecisions[nstep].append(dec)
+                    log.debug(dec)
+                    
 
         #end of loop over steps
         log.info("\n Built CF for chain %s with %d steps: \n   - %s ", chain.name,len(chain.steps),'\n   - '.join(map(str, [{step.name:step.multiplicity} for step in chain.steps])))
     #end of loop over chains
 
     # decode and attach HypoTools:
-    #must be done after the creation of the CFsequences, since HypoAlgs are duplicated in the previous loop
     for chain in chains:
-        chain.decodeHypoToolConfs(allDicts)
-
+        chain.decodeHypoToolConfs()#allDicts)
 
+    log.debug("End of createDataFlow for %d chains and total %d steps", len(chains), NSTEPS)
     return (finalDecisions, CFseq_list)
 
 
@@ -516,7 +471,7 @@ def generateDecisionTreeOld(HLTNode, chains, allChainDicts):
 
     ## Fill chain steps matrix
     for chain in chains:
-        chain.decodeHypoToolConfs(allChainDicts)
+        chain.decodeHypoToolConfs()#allChainDicts)
         for stepNumber, chainStep in enumerate(chain.steps):
             chainName = chainStep.name.split('_')[0]
             chainStepsMatrix[stepNumber][chainName].append(chain)
@@ -558,7 +513,7 @@ def generateDecisionTreeOld(HLTNode, chains, allChainDicts):
             firstChain = chainsInCell[0]
 
             if nstep == 0:
-                filter_input = firstChain.group_seed
+                filter_input = firstChain.L1decisions
             else:
                 filter_input = []
                 for sequence in firstChain.steps[nstep - 1].sequences:
@@ -615,7 +570,6 @@ def findFilter(filter_name, cfseqList):
       """
       log.debug( "findFilter: filter name %s", filter_name )
       foundFilters = [cfseq for cfseq in cfseqList if filter_name in cfseq.filter.Alg.name()]
-      #foundFilters = [cfseq.filter for cfseq in cfseqList if filter_name in cfseq.filter.Alg.name()]
       if len(foundFilters) > 1:
           log.error("found %d filters  with name %s", len( foundFilters ), filter_name)
 
@@ -630,9 +584,7 @@ def findCFSequences(filter_name, cfseqList):
       searches for a filter, with given name, in the CF sequence list of this step
       """
       log.debug( "findCFSequences: filter base name %s", filter_name )
-      foundFilters = [cfseq for cfseq in cfseqList if filter_name in cfseq.filter.Alg.name()]
-      #foundFilters = [cfseq.filter for cfseq in cfseqList if filter_name in cfseq.filter.Alg.name()]
-
+      foundFilters = [cfseq for cfseq in cfseqList if filter_name == cfseq.filter.Alg.name()]
       log.debug("found %d filters with base name %s", len( foundFilters ), filter_name)
 
       found=len(foundFilters)
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig_newJO.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig_newJO.py
index 600456a2936c00ee1680aa55b1a4174ea4fa45ae..447afb87b97177b977f8c091ae04a703248e7e6b 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig_newJO.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig_newJO.py
@@ -38,6 +38,7 @@ def generateDecisionTree(chains):
     printStepsMatrix(chainStepsMatrix)
 
     allCFSequences = []
+    
 
     ## Matrix with steps lists generated. Creating filters for each cell
     for nstep in sorted(chainStepsMatrix.keys()):
@@ -56,6 +57,7 @@ def generateDecisionTree(chains):
 
         CFSequences = []
 
+        chainCounter=0
         for chainName in chainStepsMatrix[nstep]:
             chainsInCell = chainStepsMatrix[nstep][chainName]
 
@@ -65,9 +67,11 @@ def generateDecisionTree(chains):
 
             firstChain = chainsInCell[0]
             if nstep == 0:
-                filter_input = firstChain.group_seed
+                filter_input = firstChain.L1decisions
             else:
-                filter_input = [output for sequence in firstChain.steps[nstep - 1].sequences for output in sequence.outputs]
+                #tmp FP replacement, but it should not work properly
+                #filter_input = [output for sequence in firstChain.steps[nstep - 1].sequences for output in sequence.outputs]
+                filter_input = [output for output in allCFSequences[nstep - 1][chainCounter].decisions]
 
             chainStep = firstChain.steps[nstep]
 
@@ -90,7 +94,8 @@ def generateDecisionTree(chains):
 
             for chain in chainsInCell:
                 step = chain.steps[nstep]
-                CFSeq = CFSequence(step, sfilter, connections=filter_output)
+                CFSeq = CFSequence(step, sfilter)
+                CFSeq.connect(filter_output)
                 if not CFSequenceAdded:
                     CFSequences.append(CFSeq)
                     CFSequenceAdded = True
@@ -104,9 +109,12 @@ def generateDecisionTree(chains):
                 sfilter.setChains(chain.name)
 
             recoAcc.merge(stepsAcc, sequenceName = viewWithFilter.getName())
+            chainCounter+=1
+            
+        for sequence in CFSequences:
+            stepDecisions += sequence.decisions
+
 
-            for sequence in chainStep.sequences:
-                stepDecisions += sequence.outputs
 
         acc.merge(filterAcc, sequenceName = mainSequenceName)
         acc.merge(recoAcc, sequenceName = mainSequenceName)
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFDot.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFDot.py
index 65ad231353f393c84adad62e8e812337243cb70c..01950d3d3ee67d6f5d5ad6a32805f8e27e00e950 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFDot.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFDot.py
@@ -5,6 +5,15 @@ from AthenaCommon.AlgSequence import AthSequencer
 from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import isHypoBase, isInputMakerBase, isFilterAlg
 import itertools
 
+DrawHypoTools=True
+
+def drawHypoTools(file, all_hypos):
+    all_hypos=list(set(all_hypos))
+    for hp in all_hypos:
+        for hypotool in hp.tools:
+            file.write("    %s[fillcolor=yellow,style=filled,shape= Mdiamond]\n"%(hypotool))
+            file.write("    %s -> %s [style=dashed, color=grey]\n"%(hp.Alg.name(), hypotool))
+
 def algColor(alg):
     """ Set given color to Alg type"""
     if isHypoBase(alg):      
@@ -59,8 +68,8 @@ def stepCF_ControlFlow_to_dot(stepCF):
 
     with open('%s.CF.dot'%stepCF.name(), mode="wt") as file:
     #strict
-        file.write( 'digraph step  {\n'\
-                    +'\n'\
+        file.write( 'digraph step  {  \n'\
+                    +' concentrate=true;\n'\
                     +' rankdir="LR";\n'
                     +'  node [ shape=polygon, fontname=Helvetica ]\n'\
                     +'  edge [ fontname=Helvetica ]\n'
@@ -80,8 +89,8 @@ def stepCF_ControlFlow_to_dot(stepCF):
 
 def all_DataFlow_to_dot(name, step_list):
     with open('%s.dot'%(name), mode="wt") as file:
-        file.write( 'digraph step  {\n'\
-                        +'\n'\
+        file.write( 'digraph step  {  \n'\
+                        +' concentrate=true;\n'\
                         +' rankdir="LR";\n'
                         +'  node [ shape=polygon, fontname=Helvetica ]\n'\
                         +'  edge [ fontname=Helvetica ]\n'
@@ -89,6 +98,7 @@ def all_DataFlow_to_dot(name, step_list):
 
         nstep=1
         last_step_hypoNodes=[]
+        all_hypos=[]
         for cfseq_list in step_list:
             # loop over steps
             step_connections = []
@@ -99,6 +109,7 @@ def all_DataFlow_to_dot(name, step_list):
                 file.write("  %s[fillcolor=%s style=filled]\n"%(cfseq.filter.Alg.name(),algColor(cfseq.filter.Alg)))
                 step_connections.append(cfseq.filter)                      
                 file.write(  '\n  subgraph cluster_%s {\n'%(cfseq.step.name)\
+                            +'     concentrate=true;\n'
                             +'     node [color=white style=filled]\n'\
                             +'     style=filled\n'\
                             +'     color=lightgrey\n'\
@@ -128,10 +139,12 @@ def all_DataFlow_to_dot(name, step_list):
                        for hp in menuseq.hypo:
                           cfseq_algs.append(hp)
                           file.write("    %s[color=%s]\n"%(hp.Alg.name(), algColor(hp.Alg)))
+                          all_hypos.append(hp)
                     else:
                        cfseq_algs.append(menuseq.hypo)
                        file.write("    %s[color=%s]\n"%(menuseq.hypo.Alg.name(), algColor(menuseq.hypo.Alg)))
-                    if not cfseq.step.isCombo:
+                       all_hypos.append(menuseq.hypo)
+                       if not cfseq.step.isCombo:
                         if type(menuseq.hypo) is list:
                            last_step_hypoNodes.append(menuseq.hypo[-1])
                         else:
@@ -146,7 +159,7 @@ def all_DataFlow_to_dot(name, step_list):
                 file.write('  }\n')              
                 file.write(findConnections(cfseq_algs))
                 file.write('\n')
-           
+               
             file.write(findConnections(step_connections))
             nstep+=1
 
@@ -157,20 +170,22 @@ def all_DataFlow_to_dot(name, step_list):
 def stepCF_DataFlow_to_dot(name, cfseq_list):
     with open( '%s.DF.dot'%name, mode="wt" ) as file:
     #strict
-        file.write( 'digraph step  {\n'\
-                    +'\n'\
+        file.write( 'digraph step  {  \n'\
+                    +' concentrate=true; \n'\
                     +' rankdir="LR";\n'
                     +'  node [ shape=polygon, fontname=Helvetica ]\n'\
                     +'  edge [ fontname=Helvetica ]\n'
                     +'  %s   [shape=Mdiamond]\n'%name)
 
 
+        all_hypos = []
         for cfseq in cfseq_list:
             file.write("  %s[fillcolor=%s style=filled]\n"%(cfseq.filter.Alg.name(),algColor(cfseq.filter.Alg)))
             for inp in cfseq.filter.getInputList():
                 file.write(addConnection(name, cfseq.filter.Alg.name(), inp))
 
             file.write(  '\n  subgraph cluster_%s {\n'%(cfseq.step.name)\
+                        +'     concentrate=true;\n'
                         +'     node [color=white style=filled]\n'\
                         +'     style=filled\n'\
                         +'     color=lightgrey\n'\
@@ -180,11 +195,11 @@ def stepCF_DataFlow_to_dot(name, cfseq_list):
             cfseq_algs = []
             cfseq_algs.append(cfseq.filter)
 
-            for menuseq in cfseq.step.sequences:
-                if  cfseq.step.isCombo:
-                    menuseq.reuse=True # do not draw combo reco sequence
-                else:
-                    menuseq.reuse=False
+            ## for menuseq in cfseq.step.sequences:
+                ## if  cfseq.step.isCombo:
+                ##     menuseq.reuse=True # do not draw combo reco sequence
+                ## else:
+                ##     menuseq.reuse=False
                     
             for menuseq in cfseq.step.sequences:
                 cfseq_algs.append(menuseq.maker)
@@ -197,10 +212,11 @@ def stepCF_DataFlow_to_dot(name, cfseq_list):
                    for hp in menuseq.hypo:
                       cfseq_algs.append(hp)
                       file.write("    %s[color=%s]\n"%(hp.Alg.name(), algColor(hp.Alg)))
+                      all_hypos.append(hp)
                 else:
                    cfseq_algs.append(menuseq.hypo)
                    file.write("    %s[color=%s]\n"%(menuseq.hypo.Alg.name(), algColor(menuseq.hypo.Alg)))
-
+                   all_hypos.append(menuseq.hypo)
 
                 #combo
             if cfseq.step.isCombo:
@@ -211,6 +227,9 @@ def stepCF_DataFlow_to_dot(name, cfseq_list):
 
             file.write(findConnections(cfseq_algs))
             file.write('\n')
+
+        if DrawHypoTools:
+            drawHypoTools(file, all_hypos)
             
         file.write( '}')
         file.close()
@@ -277,7 +296,6 @@ def getValuesProperties(node):
                     values.append(cval)
             else:
                 continue
-            #getattr(alg, prop))
     return set(values)
         
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
index 5160e876853568506064e9eb2779e2a50499aa5f..98fb46c6ecfe9947b6e29f7d1121350c423cd8e5 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
@@ -42,7 +42,7 @@ def setupMenu():
 
         ChainProp(name='HLT_mu20_ivar_L1MU6',      groups=SingleMuonGroup),
         ChainProp(name='HLT_mu6_ivarmedium_L1MU6', groups=SingleMuonGroup),
-        ChainProp(name='HLT_mu6_mu6noL1_L1MU6', l1SeedThresholds=['MU6',''], groups=MultiMuonGroup),
+#        ChainProp(name='HLT_mu6_mu6noL1_L1MU6', l1SeedThresholds=['MU6',''], groups=MultiMuonGroup),
         ChainProp(name='HLT_mu6_msonly_L1MU6',     groups=SingleMuonGroup),
 
         ChainProp(name='HLT_2mu6_10invm70_L1MU6', groups=SingleMuonGroup),
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py
index c2f5b5843c669839cac27d0a873bb5f842eeb899..0a539a44eeb412356d5e8e42c2692613e368072a 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py
@@ -1,7 +1,6 @@
 
 # Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 
-import copy
 from AthenaCommon.Logging import logging
 log = logging.getLogger( __name__ )
 
@@ -77,7 +76,7 @@ class AlgNode(Node):
     def addOutput(self, name):
         outputs = self.readOutputList()
         if name in outputs:
-            log.debug("Warning, output %s already set in %s, DH not added",name, self.name)
+            log.debug("Output DH not added in %s: %s already set!", self.name, name)
         else:
             if self.outputProp != '':
                 self.setPar(self.outputProp,name)
@@ -100,7 +99,7 @@ class AlgNode(Node):
     def addInput(self, name):
         inputs = self.readInputList()
         if name in inputs:
-            log.debug("Warning, input %s already set in %s, DH not added",name, self.name)
+            log.debug("Input DH not added in %s: %s already set!", self.name, name)
         else:
             if self.inputProp != '':
                 self.setPar(self.inputProp,name)
@@ -125,22 +124,17 @@ class AlgNode(Node):
 
 
 class HypoToolConf(object):
-    """ Class to group info on hypotools"""
+    """ Class to group info on hypotools for ChainDict"""
     def __init__(self, hypoToolGen):
         self.hypoToolGen = hypoToolGen
         self.name=hypoToolGen.__name__ if hypoToolGen else "None"
-        self.conf=''
+       
 
     def setConf( self, chainDict):
         if type(chainDict) is not dict:
             raise RuntimeError("Configuring hypo with %s, not good anymore, use chainDict" % str(chainDict) )
         self.chainDict = chainDict
 
-    # def setName(self, name):
-    #     self.name=name
-
-    # def setConf(self, conf):
-    #     self.conf=conf
 
     def create(self):
         """creates instance of the hypo tool"""
@@ -149,13 +143,27 @@ class HypoToolConf(object):
 
 class HypoAlgNode(AlgNode):
     """Node for HypoAlgs"""
+    initialOutput= 'StoreGateSvc+UNSPECIFIED_OUTPUT'
     def __init__(self, Alg):
         assert isHypoBase(Alg), "Error in creating HypoAlgNode from Alg "  + Alg.name()
         AlgNode.__init__(self, Alg, 'HypoInputDecisions', 'HypoOutputDecisions')
         self.tools = []
         self.previous=[]
 
+    def addOutput(self, name):
+        outputs = self.readOutputList()        
+        if name in outputs:
+            log.debug("Output DH not added in %s: %s already set!", self.name, name)
+        elif self.initialOutput in outputs:
+            AlgNode.addOutput(self, name)
+        else:
+            log.error("Hypo " + self.name +" has already %s as configured output: you may want to duplicate the Hypo!" + outputs[0])
+
+
+
+
     def addHypoTool (self, hypoToolConf):
+        log.debug("   Adding HypoTool %s to %s", hypoToolConf.chainDict['chainName'], self.Alg.name())
         if hypoToolConf.chainDict['chainName'] not in self.tools:
             ## HypoTools are private, so need to be created when added to the Alg
             ## this incantation may seem strange, however it is the only one which works
@@ -209,18 +217,24 @@ class InputMakerNode(AlgNode):
     def __init__(self, Alg):
         assert isInputMakerBase(Alg), "Error in creating InputMakerNode from Alg "  + Alg.name()
         AlgNode.__init__(self,  Alg, 'InputMakerInputDecisions', 'InputMakerOutputDecisions')
+        input_maker_output = CFNaming.inputMakerOutName(self.Alg.name(),"out")
+        self.addOutput(input_maker_output)
 
 
 from DecisionHandling.DecisionHandlingConf import ComboHypo
 class ComboMaker(AlgNode):
     def __init__(self, name, multiplicity):
+        #Alg = RecoFragmentsPool.retrieve( self.create, name )
+        log.debug("ComboMaker init: Alg %s", name)
         Alg = ComboHypo(name)
-        log.debug("Making combo Alg %s", name)
         AlgNode.__init__(self,  Alg, 'HypoInputDecisions', 'HypoOutputDecisions')
         self.prop="MultiplicitiesMap"
-        self.mult=multiplicity
-
+        self.mult=list(multiplicity)
 
+    def create (self, name):
+        log.debug("ComboMaker.create %s",name)
+        return ComboHypo(name)
+        
     def addChain(self, chainDict):
         chainName = chainDict['chainName']
         log.debug("ComboMaker %s adding chain %s", self.Alg.name(),chainName)
@@ -276,61 +290,17 @@ class MenuSequence(object):
         assert Maker.name().startswith("IM"), "The input maker {} name needs to start with letter: IM".format(Maker.name())
         self.sequence     = Node( Alg=Sequence)
         self._maker       = InputMakerNode( Alg = Maker )
-        self.inputs=[]
-        self.outputs=[]
         self.seed=''
         self.reuse = False # flag to draw dot diagrmas
         self.ca = CA
-
-        if type(Hypo) is list:
-           log.warning("Sequence %s has more than one Hypo; correct your sequence for next develpments")
-           self.name=[]
-           self.hypoToolConf=[]
-           self._hypo=[]
-           for hp, hptool in zip(Hypo, HypoToolGen):
-              self.name.append( CFNaming.menuSequenceName(hp.name()) )
-              self.hypoToolConf.append( HypoToolConf( hptool ) )
-              self._hypo.append( HypoAlgNode( Alg = hp ) )
-        else:
-           self.name = CFNaming.menuSequenceName(Hypo.name())
-           self.hypoToolConf = HypoToolConf( HypoToolGen )
-           self._hypo = HypoAlgNode( Alg = Hypo )
-
-
-
-    def replaceHypoForCombo(self, HypoAlg):
-        if type(HypoAlg) is list and type(self.name) is list:
-           self._hypo=[]
-           for hp, Name in zip(HypoAlg, self.name):
-              log.debug("set new Hypo %s for combo sequence %s ", hp.name(), Name)
-              self._hypo.append( HypoAlgNode( Alg=hp ) )
-        else:
-           log.debug("set new Hypo %s for combo sequence %s ", HypoAlg.name(), self.name)
-           self._hypo = HypoAlgNode( Alg=HypoAlg )
-
-    def replaceHypoForDuplication(self, HypoAlg):
-        if type(HypoAlg) is list:
-           self._hypo = []
-           for hp, Name in zip(HypoAlg, self.name):
-              log.debug("set new Hypo %s for duplicated sequence %s, resetting decisions ", hp.name(), Name)
-              self._hypo.append( HypoAlgNode( Alg=hp ) )
-        else:
-           log.debug("set new Hypo %s for duplicated sequence %s, resetting decisions ", HypoAlg.name(), self.name)
-           self._hypo = HypoAlgNode( Alg=HypoAlg )
-        # do we need this?
-        #       self._hypo.resetInput()
-        #       self._hypo.resetOutput()
-
-    def resetConnections(self):
-        self.inputs=[]
-        self.outputs=[]
+        self.connect(Hypo, HypoToolGen)
+        
 
     @property
     def maker(self):
         if self.ca is not None:
             makerAlg = self.ca.getEventAlgo(self._maker.Alg.name())
             self._maker.Alg = makerAlg
-            # return InputMakerNode(Alg=makerAlg)
         return self._maker
 
     @property
@@ -338,43 +308,51 @@ class MenuSequence(object):
         if self.ca is not None:
             hypoAlg = self.ca.getEventAlgo(self._hypo.Alg.name())
             self._hypo.Alg = hypoAlg
-            # return HypoAlgNode(Alg=hypoAlg)
         return self._hypo
 
     def connectToFilter(self, outfilter):
+        """ Connect filter to the InputMaker"""
+        self.maker.addInput(outfilter)
+      
+
+    def connect(self, Hypo, HypoToolGen):
         """ Sets the input and output of the hypo, and links to the input maker """
+        input_maker_output= self.maker.readOutputList()[0] # only one since it's merged
 
-        #### Connect filter to the InputMaker
-        self.maker.addInput(outfilter)
-        input_maker_output = CFNaming.inputMakerOutName(self.maker.Alg.name(),outfilter)
-        self.maker.addOutput(input_maker_output)
+         #### Add input/output Decision to Hypo
+        if type(Hypo) is list:
+            self.name=[]
+            self.hypoToolConf=[]
+            self._hypo=[]
+            hypo_input_total=[]
+            hypo_output_total=[]
+            hypo_input = input_maker_output
+            for hypo_alg, hptool in zip(Hypo, HypoToolGen):
+              self.name.append( CFNaming.menuSequenceName(hypo_alg.name()) )
+              self.hypoToolConf.append( HypoToolConf( hptool ) )
 
-        #### Add input/output Decision to Hypo
-        if type(self._hypo) is list:
-           hypo_input_total=[]
-           hypo_output_total=[]
-           hypo_input = input_maker_output
-           for hp in self._hypo:
               hypo_input_total.append(hypo_input)
-              hp.setPreviousDecision(hypo_input)
-              hypo_output = CFNaming.hypoAlgOutName(hp.Alg.name(), hypo_input)
-              if len(hp.getOutputList()):
-                  log.error("Hypo " + hp.name() +" has already an output configured: you may want to duplicate the Hypo!")
-              hp.addOutput(hypo_output)
+              hypo_output = CFNaming.hypoAlgOutName(hypo_alg.name())
               hypo_output_total.append(hypo_output)
+
+              hypo_node = HypoAlgNode( Alg = hypo_alg )
+              hypo_node.addOutput(hypo_output)
+              hypo_node.setPreviousDecision(hypo_input)
+              
+              self._hypo.append( hypo_node )
               hypo_input = hypo_output
+            log.warning("Sequence %s has more than one Hypo; correct your sequence for next develpments", self.name)
         else:
-           self.hypo.setPreviousDecision( input_maker_output)
-           hypo_output = CFNaming.hypoAlgOutName(self.hypo.Alg.name(), input_maker_output)
-           if len(self.hypo.getOutputList()):
-               log.error("Hypo " + self.hypo.Alg.name() +" has already an output configured: you may want to duplicate the Hypo!")
-           self.hypo.addOutput(hypo_output)
+           self.name = CFNaming.menuSequenceName(Hypo.name())
+           self.hypoToolConf = HypoToolConf( HypoToolGen )
+           self._hypo = HypoAlgNode( Alg = Hypo )
+           hypo_output = CFNaming.hypoAlgOutName(Hypo.name())
+           self._hypo.addOutput(hypo_output)
+           self._hypo.setPreviousDecision( input_maker_output)
 
-        # needed for drawing
-        self.inputs.append(outfilter)
-        self.outputs.append(hypo_output)
+  
 
-        log.debug("MenuSequence.connectToFilter: connecting InputMaker and HypoAlg and OverlapRemoverAlg, adding: \n\
+        log.debug("MenuSequence.connect: connecting InputMaker and HypoAlg and OverlapRemoverAlg, adding: \n\
         InputMaker::%s.output=%s",\
                         self.maker.Alg.name(), input_maker_output)
         if type(self._hypo) is list:
@@ -385,7 +363,7 @@ class MenuSequence(object):
         else:
            log.debug("HypoAlg::%s.previousDecision=%s, \n\
                       HypoAlg::%s.output=%s",\
-                           self.hypo.Alg.name(), input_maker_output, self.hypo.Alg.name(), hypo_output)
+                           self.hypo.Alg.name(), input_maker_output, self.hypo.Alg.name(), self.hypo.readOutputList()[0])
 
 
     def __repr__(self):
@@ -410,9 +388,10 @@ class MenuSequence(object):
 
 #from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import getAllThresholdsFromItem, getUniqueThresholdsFromItem
 
+       
 class Chain(object):
     """Basic class to define the trigger menu """
-    __slots__='name','steps','vseeds','group_seed'
+    __slots__='name','steps','vseeds','L1decisions'
     def __init__(self, name, ChainSteps, L1Thresholds):
         """
         Construct the Chain from the steps
@@ -422,214 +401,215 @@ class Chain(object):
         self.steps=ChainSteps
         self.vseeds=L1Thresholds
 
-
         from L1Decoder.L1DecoderConfig import mapThresholdToL1DecisionCollection
-        # group_seed is used to set the seed type (EM, MU,JET), removing the actual threshold
+        # L1decisions are used to set the seed type (EM, MU,JET), removing the actual threshold
         # in practice it is the L1Decoder Decision output
-        self.group_seed = [ mapThresholdToL1DecisionCollection(stri) for stri in self.vseeds]
-        self.setSeedsToSequences() # save seed of each menuseq
-
+        self.L1decisions = [ mapThresholdToL1DecisionCollection(stri) for stri in L1Thresholds]
+        log.debug("L1Decisions: %s", ' '.join(self.L1decisions))
+        
+        self.setSeedsToSequences()
         isCombo=False
+        #TO DO: check that all the steps are combo
         for step in self.steps:
             if step.isCombo:
                 isCombo=True
 
-        log.debug("Made %s Chain %s with seeds: %s ", "combo" if isCombo else "", name, self.vseeds)
+        log.debug("Made %s Chain %s with seeds: %s ", "combo" if isCombo else "", name, self.L1decisions)
+
+
+    def checkMultiplicity(self):
+        if len(self.steps) == 0:
+            return 0
+        mult=[sum(step.multiplicity) for step in self.steps] # on mult per step
+        not_empty_mult = [m for m in mult if m!=0]
+        if len(not_empty_mult) == 0: #empty chain?
+            log.error("checkMultiplicity: Chain %s has all steps with multiplicity =0: what to do?", self.name)
+            return 0
+        if not_empty_mult.count(not_empty_mult[0]) != len(not_empty_mult):
+            log.error("checkMultiplicity: Chain %s has steps with differnt multiplicities: %s", self.name, ' '.join(mult))
+            return 0
+
+        if not_empty_mult[0] != len(self.vseeds):
+            log.error("checkMultiplicity: Chain %s has %d multiplicity per step, and %d L1Decisions", self.name, mult, len(self.vseeds))
+            return 0
+        return not_empty_mult[0]
 
-    def setSeedsToSequences(self):
-        """ Set the L1 seeds to the menu sequences """
         
-        # check if the number of seeds is sufficient for all the seuqences, no action of no steps are configured
+       
+    def setSeedsToSequences(self):
+        """ Set the L1 seeds (L1Decisions) to the menu sequences """
         if len(self.steps) == 0:
             return
-        max_seq  = max(len(step.sequences) for step in self.steps)
-        tot_seed = len(self.vseeds)
-        if max_seq==tot_seed:
-            for step in self.steps:
-                if len(step.sequences) == 0:
-                    continue
-                if len(step.sequences) != tot_seed:
-                    log.warning ("setSeedsToSequences: Chain %s, step %s has %d sequences but %d seeds ", self.name, step.name, len(step.sequences), tot_seed)
-                    continue
-                nseq=0
-                for seed in self.vseeds:
-                    seq=step.sequences[nseq]
-                    seq.seed ="L1"+filter(lambda x: x.isalpha(), seed)
-                    log.debug( "setSeedsToSequences: Chain %s adding seed %s to sequence %d in step %s", self.name, seq.seed, nseq, step.name )
-                    nseq+=1
-        else:
-            log.error("setSeedsToSequences: found %d sequences in the chain %s and %d seeds %s. What to do??", max_seq, self.name, tot_seed, str(self.vseeds))
-
-
-
-    def decodeHypoToolConfs(self, allChainDicts):
-        """ This is extrapolating the hypotool configuration from the (combined) chain name"""
-        import copy
-        from TriggerMenuMT.HLTMenuConfig.Menu.TriggerConfigHLT import TriggerConfigHLT
-        chainDict = TriggerConfigHLT.getChainDictFromChainName(self.name)
 
+        # TODO: check if the number of seeds is sufficient for all the seuqences, no action of no steps are configured
+        for step in self.steps:
+            for seed, seq in zip(self.L1decisions, step.sequences):
+                seq.seed= seed
+                log.debug( "setSeedsToSequences: Chain %s adding seed %s to sequence in step %s", self.name, seq.seed, step.name )                                 
+
+    def getChainLegs(self):
+        """ This is extrapolating the chain legs"""
+        from TriggerMenuMT.HLTMenuConfig.Menu.ChainDictTools import splitChainInDict
+        listOfChainDictsLegs = splitChainInDict(self.name)
+        legs = [part['chainName'] for part in listOfChainDictsLegs]
+        return legs
+                
+
+    def decodeHypoToolConfs(self):
+        """ This is extrapolating the hypotool configuration from the chain name"""
+        log.debug("decodeHypoToolConfs for chain %s", self.name)
+        from TriggerMenuMT.HLTMenuConfig.Menu.ChainDictTools import splitChainInDict
+        listOfChainDictsLegs = splitChainInDict(self.name)
         for step in self.steps:
             if len(step.sequences) == 0:
                 continue
 
-            for seq, chainDictPart in zip(step.sequences, chainDict['chainParts']):
+            step_mult = [str(m) for m in step.multiplicity]
+            menu_mult = [part['chainParts'][0]['multiplicity'] for part in listOfChainDictsLegs ] 
+            if step_mult != menu_mult:
+                # need to agree on the procedure: if the jet code changes the chainparts accordingly, this will never happen
+                log.warning("Got multiplicty %s from chain parts, but have %s legs. This is expected now for jets, so this tmp fix is added:", menu_mult, step_mult)
+                chainDict = listOfChainDictsLegs[0]
+                chainDict['chainName']= self.name # rename the chaindict to remove the leg name
+                for seq in step.sequences:
+                    seq.hypoToolConf.setConf( chainDict )
+                    seq.hypo.addHypoTool(seq.hypoToolConf) #this creates the HypoTools                    
+                continue
+
+            # add one hypotool per sequence and chain part
+            for seq, onePartChainDict in zip(step.sequences, listOfChainDictsLegs):
                 if seq.ca is not None: # The CA merging took care of everything
                     continue
-
-                onePartChainDict = copy.deepcopy( chainDict )
-                onePartChainDict['chainParts'] = [ chainDictPart ]
-
                 if type(seq.hypoToolConf) is list:
-                   for hp, hptoolConf in zip( seq.hypo, seq.hypoToolConf ):
-                      hptoolConf.setConf( onePartChainDict )
-                      hp.addHypoTool(hptoolConf) #this creates tge HypoTools
+                    log.warning ("This sequence %s has %d multiple HypoTools ",seq.sequence.name, len(seq.hypoToolConf))
+                    for hp, hptoolConf in zip( seq.hypo, seq.hypoToolConf ):
+                        hptoolConf.setConf( onePartChainDict )
+                        hp.addHypoTool(hptoolConf) #this creates the HypoTools
                 else:
-                   seq.hypoToolConf.setConf( onePartChainDict )
-                   seq.hypo.addHypoTool(seq.hypoToolConf) #this creates the HypoTools
-
+                    seq.hypoToolConf.setConf( onePartChainDict )
+                    seq.hypo.addHypoTool(seq.hypoToolConf) #this creates the HypoTools
+                    
 
     def __repr__(self):
         return "--- Chain %s --- \n + Seeds: %s \n + Steps: \n %s \n"%(\
-                    self.name, ' '.join(map(str, self.vseeds)), '\n '.join(map(str, self.steps)))
+                    self.name, ' '.join(map(str, self.L1decisions)), '\n '.join(map(str, self.steps)))
+
 
 
 
 class CFSequence(object):
-    """Class to describe the ChainStep + filter
-    One Filter can be included in many CF sequences, so the CF sequence is identified by the step name and the connections
+    """Class to describe the flow of decisions through ChainStep + filter with their connections (input, output)
+    A Filter can have more than one input/output if used in different chains, so this class stores and manages all of them (when doing the connect)
     """
-    def __init__(self, ChainStep, FilterAlg, connections):
-
+    def __init__(self, ChainStep, FilterAlg):
         self.filter = FilterAlg
         self.step = ChainStep
-        self.connections=connections
-        log.debug("CFSequence: creating new one with Filter %s, step %s and %d connections: %s",self.filter.Alg.name(), self.step.name, len(self.connections), self.connections)
-        self.connect()
+        if self.step.isCombo:
+            self.connectCombo()
         self.setDecisions()
+        log.debug("CFSequence.__init: created %s ",self)
 
     def setDecisions(self):
+        """ Set the output decision of this CFSequence as the hypo outputdecision; In case of combo, takes the Combo outputs"""
         self.decisions=[]
-        for sequence in self.step.sequences:
-            self.decisions.extend(sequence.outputs)
         if not len(self.step.sequences):
-            self.decisions.extend(self.filter.getOutputList())
+            self.decisions.extend(self.filter.readOutputList())
+        else:
+            if self.step.isCombo:
+                self.decisions.extend(self.step.combo.getOutputList())
+            else:
+                for sequence in self.step.sequences:
+                    hp=sequence.hypo
+                    if type(hp) is list:
+                        for hypo in hp:
+                            self.decisions.append(hypo.readOutputList()[0])
+                    else:
+                        self.decisions.append(hp.readOutputList()[0])
+
+        log.debug("CFSequence: set out decisions: %s", self.decisions)
 
 
-    def connect(self):
-        """Connect filter to ChainStep (all its sequences)
+    def connect(self, connections):
+        """Connect filter to ChainStep (and all its sequences) through these connections (which are sets of filter outputs)
         if a ChainStep contains the same sequence multiple times (for multi-object chains),
         the filter is connected only once (to avoid multiple DH links)
         """
-        log.debug("CFSequence: Connect Filter %s with %d menuSequences of step %s", self.filter.Alg.name(), len(self.step.sequences), self.step.name)
-        if len(self.connections) == 0:
+        log.debug("CFSequence: connect Filter %s with %d menuSequences of step %s, using %d connections", self.filter.Alg.name(), len(self.step.sequences), self.step.name, len(connections))
+        if len(connections) == 0:
             log.error("ERROR, no filter outputs are set!")
             #raise("CFSequence: Invalid Filter Configuration")
 
         if len(self.step.sequences):
             # check whether the number of filter outputs are the same as the number of sequences in the step
-            if len(self.connections) != len(self.step.sequences):
-                log.error("Found %d filter outputs and %d MenuSequences in Step %s", len(self.filter.getOutputList()), len(self.step.sequences), self.step.name)
+            if len(connections) != len(self.step.sequences):
+                log.error("Found %d connections and %d MenuSequences in Step %s", len(connections), len(self.step.sequences), self.step.name)
                 #raise("CFSequence: Invalid Filter Configuration")
             nseq=0
             for seq in self.step.sequences:
-                filter_out = self.connections[nseq]
+                filter_out = connections[nseq]
                 log.debug("CFSequence: Found input %s to sequence::%s from Filter::%s (from seed %s)", filter_out, seq.name, self.filter.Alg.name(), seq.seed)
                 seq.connectToFilter( filter_out )
                 nseq+=1
-
-            if self.step.isCombo:
-                self.connectCombo()
-
         else:
           log.debug("This CFSequence has no sequences: outputs are the Filter outputs")
 
 
 
-
     def connectCombo(self):
-        """ reset sequence outputs, they will be replaced by new combo outputs"""
-
-        for seq in self.step.sequences:
-            seq.outputs=[]
-
+        """ connect Combo to Hypos"""
         for seq in self.step.sequences:
             if type(seq.hypo) is list:
-               combo_input=seq.hypo[1].getOutputList()[0]
+               combo_input=seq.hypo[-1].readOutputList()[0] # last one?
             else:
-               combo_input=seq.hypo.getOutputList()[0]
+               combo_input=seq.hypo.readOutputList()[0]
             self.step.combo.addInput(combo_input)
-            log.debug("Adding inputs %s to combo %s", combo_input, self.step.combo.Alg.name())
+            log.debug("CFSequence.connectCombo: adding input to  %s: %s",  self.step.combo.Alg.name(), combo_input)
             # inputs are the output decisions of the hypos of the sequences
-            # outputs are the modified name of input deciions that need to be connected to the next filter
-            combo_output=CFNaming.comboHypoOutputName (combo_input)
+            combo_output=CFNaming.comboHypoOutputName (self.step.combo.Alg.name(), combo_input)
             self.step.combo.addOutput(combo_output)
-            seq.outputs.append(combo_output)
-            log.debug("CFSequence: connectCombo: Adding outputs %s to combo %s", combo_output, self.step.combo.Alg.name())
+            log.debug("CFSequence.connectCombo: adding output to  %s: %s",  self.step.combo.Alg.name(), combo_output)
+
 
 
     def __repr__(self):
-        return "--- CFSequence ---\n + Filter: %s \n +  %s \n + decisions: %s\n"%(\
-                    self.filter.Alg.name(), self.step, self.decisions)
+        return "--- CFSequence ---\n + Filter: %s \n + decisions: %s\n +  %s \n"%(\
+                    self.filter.Alg.name(), self.decisions, self.step)
 
 
 
+class StepComp(object):
+    """ Class to build hte ChainStep, for including empty sequences"""
+    def __init__(self, sequence, multiplicity,empty):
+        self.sequence=sequence
+        self.multiplicity=multiplicity
+        self.empty=empty
+
 class ChainStep(object):
     """Class to describe one step of a chain; if multiplicity is greater than 1, the step is combo/combined.  Set one multiplicity value per sequence"""
     def __init__(self, name,  Sequences=[], multiplicity=[1]):
        
         self.name = name
-        self.sequences=[]
+        self.sequences=Sequences
         self.multiplicity = multiplicity
         self.isCombo=sum(multiplicity)>1
         self.combo=None
         if self.isCombo:
             self.makeCombo(Sequences )
-        else:
-            self.sequences = Sequences
-
+        self.decisions = []
 
     def makeCombo(self, Sequences):
         if len(Sequences)==0:
             return
+        hashableMult = tuple(self.multiplicity)
+        self.combo =  RecoFragmentsPool.retrieve(createComboAlg, None, name=CFNaming.comboHypoName(self.name), multiplicity=hashableMult)
 
-        # For combo sequences, duplicate the sequence, the Hypo with differnt names and create the ComboHypoAlg
-        self.combo = ComboMaker(CFNaming.comboHypoName(self.name), self.multiplicity)
-        duplicatedHypos = []
-        for sequence in Sequences:
-            if type(sequence.hypo) is list:
-               new_hypoAlg = []
-               NewHypoAlgName = []
-               for hp in sequence.hypo:
-                  oldhypo=hp.Alg
-                  duplicatedHypos.append(oldhypo.name())
-                  ncopy=duplicatedHypos.count(oldhypo.name())
-
-                  new_sequence=copy.deepcopy(sequence)
-                  new_sequence.name = CFNaming.comboSequenceCopyName(sequence.name,ncopy, self.name)
-
-                  newHypoAlgName = CFNaming.comboHypoCopyName(oldhypo.name(),ncopy, self.name)
-                  new_hypoAlg.append( oldhypo.clone(newHypoAlgName) ) # need to reset decisions?
-                  NewHypoAlgName.append( newHypoAlgName )
-               new_sequence.replaceHypoForCombo(new_hypoAlg)
-               self.sequences.append(new_sequence)
-
-            else:
-               oldhypo=sequence.hypo.Alg
-               duplicatedHypos.append(oldhypo.name())
-               ncopy=duplicatedHypos.count(oldhypo.name())
-
-               new_sequence=copy.deepcopy(sequence)
-               new_sequence.name = CFNaming.comboSequenceCopyName(sequence.name,ncopy, self.name)
-
-               newHypoAlgName = CFNaming.comboHypoCopyName(oldhypo.name(),ncopy, self.name)
-               new_hypoAlg=oldhypo.clone(newHypoAlgName) # need to reset decisions?
-               new_sequence.replaceHypoForCombo(new_hypoAlg)
-               self.sequences.append(new_sequence)
 
     def __repr__(self):
-        return "--- ChainStep %s ---\n + isCombo = %d, multiplicity = %d \n + MenuSequences = %s \n "%(self.name, self.isCombo,sum(self.multiplicity), ' '.join(map(str, [seq.name for seq in self.sequences]) ))
+        return "--- ChainStep %s ---\n + isCombo = %d, multiplicity = %d \n + MenuSequences = %s"%(self.name, self.isCombo,sum(self.multiplicity), ' '.join(map(str, [seq.name for seq in self.sequences]) ))
 
 
+def createComboAlg(dummyFlags, name, multiplicity):
+    return ComboMaker(name, multiplicity)
 
 
 # this is fragment for New JO
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponentsNaming.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponentsNaming.py
index 97ef86de8dad585314d02e811010704b6759770a..3c6fa5f46f04d524caa1fe645ac9821bcfc2c377 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponentsNaming.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponentsNaming.py
@@ -35,11 +35,17 @@ class CFNaming(object):
         return CFNaming.simplifyOutName("HLTNav_" + IMname + "__" + filterOut)
 
     @staticmethod
-    def hypoAlgOutName(HypoName, HypoInput):
+    def hypoAlgOutNameOld(HypoName, HypoInput):
         name = CFNaming.simplifyOutName("HLTNav_" + HypoName + "__" + HypoInput)
         # remove the IM parts from hypos output
         return "__".join( filter(lambda frag: not (frag.startswith("IM") or frag.startswith("F")), name.split("__")) )
 
+    @staticmethod
+    def hypoAlgOutName(HypoName):
+        name = CFNaming.simplifyOutName("HLTNav_" + HypoName)
+        return name
+
+    
     @staticmethod
     def comboHypoName(HypoName):
         return "ComboHypo_" + HypoName
@@ -59,8 +65,8 @@ class CFNaming(object):
         return "%s%d_for_%s"%(HypoName,ncopy,StepName)
 
     @staticmethod
-    def comboHypoOutputName(inputName):
-        return CFNaming.simplifyOutName("HLTNav_combo_" + inputName )
+    def comboHypoOutputName(comboName, inputName):
+        return CFNaming.simplifyOutName("HLTNav_" + comboName+"_"+ inputName )
 
     @staticmethod
     def stepRecoNodeName(HLTNodeName, StepCFName):
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 574a3dfdea20a6bc5b0147be02b38b91651d015a..8ff2a4e7430daeddbff7a9c7808441c7d15e0334 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
@@ -78,8 +78,9 @@ def setupMenu():
         ChainProp(name='HLT_2j330_a10t_lcw_jes_35smcINF_L1J100', groups=SingleJetGroup),
         ChainProp(name='HLT_5j70_0eta240_L14J20', groups=MultiJetGroup), # this chain is supposed to be seeded off L1_4J15 in principle, needs CF fix
         ChainProp(name='HLT_3j200_L1J100', groups=MultiJetGroup),
-
+        # FP: workaround tmp for l1SeedThresholds
         ChainProp(name='HLT_j80_j60_L1J15', l1SeedThresholds=['']*2, groups=MultiJetGroup),
+        # FP: workaround tmp for l1SeedThresholds
         ChainProp(name='HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J20', l1SeedThresholds=['']*3, groups=MultiJetGroup),
     ]
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/TriggerConfigHLT.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/TriggerConfigHLT.py
index 4e45bcfe3d99f2e5310247c4dcff396f20705522..64b6a9697c703b73ba904d29e045f007463a32a1 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/TriggerConfigHLT.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/TriggerConfigHLT.py
@@ -110,3 +110,4 @@ if __name__ == "__main__": # selftest
             log.info("ok, unregistered chain handling works")
         else:
             log.error("unhandled missing chain")
+            
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/GenerateMuonChainDefs.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/GenerateMuonChainDefs.py
index b294b4a62119c9b0004d31049b0e9b91596fa71d..5f3cece4fab3d3f800491502b1163d5740888abc 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/GenerateMuonChainDefs.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/GenerateMuonChainDefs.py
@@ -19,23 +19,21 @@ def generateChainConfigs(chainDict):
     listOfChainDefs=[]
 
     for subChainDict in listOfChainDicts:
-        
+        log.debug('Assembling subChainsDict %s for chain %s', len(listOfChainDefs), subChainDict['chainName'] )        
         Muon = MuonChainConfiguration(subChainDict).assembleChain() 
 
         listOfChainDefs += [Muon]
-        log.debug('length of chaindefs %s', len(listOfChainDefs) )
+
         
 
     if len(listOfChainDefs)>1:
-        if 'noL1' in chainDict['chainName']:
-            theChainDef = mergeSerial(listOfChainDefs)
-        else:
+         ## if 'noL1' in chainDict['chainName']:
+         ##    theChainDef = mergeSerial(listOfChainDefs)
+         ## else:
             theChainDef = mergeChainDefs(listOfChainDefs, chainDict)
     else:
         theChainDef = listOfChainDefs[0]
 
-    log.debug("theChainDef %s" , theChainDef)
-
     return theChainDef
 
 def mergeSerial(listOfChainDefs):
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonDef.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonDef.py
index 88e63d6d43fe05ac20f71bced427f50fa24d2c2b..c9ac3784947299a8ed66dc59bda8c8946a5c8565 100755
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonDef.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonDef.py
@@ -9,8 +9,9 @@ from AthenaCommon.Logging import logging
 logging.getLogger().info("Importing %s",__name__)
 log = logging.getLogger("TriggerMenuMT.HLTMenuConfig.Muon.MuonDef")
 
-from TriggerMenuMT.HLTMenuConfig.Menu.ChainConfigurationBase import ChainConfigurationBase, RecoFragmentsPool
-from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import ChainStep
+from TriggerMenuMT.HLTMenuConfig.Menu.ChainConfigurationBase import ChainConfigurationBase
+#, RecoFragmentsPool
+#from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import ChainStep
 
 from TriggerMenuMT.HLTMenuConfig.Muon.MuonSequenceSetup import muFastSequence, muFastOvlpRmSequence, muCombSequence, muCombOvlpRmSequence, muEFMSSequence, muEFSASequence, muIsoSequence, muEFCBSequence, muEFSAFSSequence, muEFCBFSSequence, muEFIsoSequence, muEFCBInvMassSequence, efLateMuRoISequence, efLateMuSequence
 
@@ -76,7 +77,7 @@ class MuonChainConfiguration(ChainConfigurationBase):
     # ----------------------
     def assembleChain(self):                            
         chainSteps = []
-        log.debug("Assembling chain for " + self.chainName)
+        #log.debug("Assembling leg for chain " + self.chainName)
 
         stepDictionary = self.getStepDictionary()
 
@@ -86,13 +87,15 @@ class MuonChainConfiguration(ChainConfigurationBase):
 
         for step_level in steps:
             for step in step_level:
-                chainSteps+=[step]
+                chainstep = getattr(self, step)()
+                chainSteps+=[chainstep]
     
         if 'invm' in self.chainPart['invMassInfo']:
             steps=stepDictionary['invM']
             for step_level in steps:
                 for step in step_level:
-                    chainSteps+=[step]
+                    chainstep = getattr(self, step)()
+                    chainSteps+=[chainstep]
 
         myChain = self.buildChain(chainSteps)
         return myChain
@@ -109,18 +112,19 @@ class MuonChainConfiguration(ChainConfigurationBase):
         # --------------------
 
         stepDictionary = {
-            "":[[self.getmuFast(), self.getmuComb()], [self.getmuEFSA(), self.getmuEFCB()]],
-            "fast":[[self.getmuFast()]],
-            "Comb":[[self.getmuFast(), self.getmuComb()]],
-            "noL2Comb" : [[self.getmuFast()], [self.getmuEFSA(), self.getmuEFCB()]],
-            "ivar":[[self.getmuFast(), self.getmuComb(), self.getmuIso()]],
-            "noL1":[[],[self.getFSmuEFSA(), self.getFSmuEFCB()]],
-            "msonly":[[self.getmuFast(), self.getmuMSEmpty(1)], [self.getmuEFMS()]],
-            "ivarmedium":[[self.getmuFast(), self.getmuComb()], [self.getmuEFSA(), self.getmuEFCB(), self.getmuEFIso()]],
-            "invM":[[],[self.getmuInvM()]],
-            "lateMu":[[],[self.getLateMuRoI(),self.getLateMu()]]
+            "":[['getmuFast', 'getmuComb'], ['getmuEFSA', 'getmuEFCB']],
+            "fast":[['getmuFast']],
+            "Comb":[['getmuFast', 'getmuComb']],
+            "noL2Comb" : [['getmuFast'], ['getmuEFSA', 'getmuEFCB']],
+            "ivar":[['getmuFast', 'getmuComb', 'getmuIso']],
+            #FP: this is tmp config for noL1, waiting for serial merging:
+            "noL1":[['getmuFast', 'getmuComb', 'getmuIso'],['getFSmuEFSA', 'getFSmuEFCB', 'getEFCBEmpty']],
+            "msonly":[['getmuFast', 'getmuMSEmpty'], ['getmuEFMS']],
+            "ivarmedium":[['getmuFast', 'getmuComb'], ['getmuEFSA', 'getmuEFCB', 'getmuEFIso']],
+            "invM":[[],['getmuInvM']],
+            "lateMu":[[],['getLateMuRoI','getLateMu']]
         }
-       
+
         return stepDictionary
   
         
@@ -136,6 +140,12 @@ class MuonChainConfiguration(ChainConfigurationBase):
         else:
            doOvlpRm = False
 
+
+
+        # tmp comment out OverlapRm /FP:
+        doOvlpRm= False
+           
+
         if doOvlpRm:
            return self.getStep(1,"mufast", [muFastOvlpRmSequenceCfg] )
         else:
@@ -153,6 +163,11 @@ class MuonChainConfiguration(ChainConfigurationBase):
         else:
            doOvlpRm = False
 
+
+         # tmp comment out OverlapRm /FP:
+        doOvlpRm= False
+
+
         if doOvlpRm:
            return self.getStep(2, 'muComb', [muCombOvlpRmSequenceCfg] )
         else:
@@ -176,27 +191,35 @@ class MuonChainConfiguration(ChainConfigurationBase):
  
     # --------------------
     def getFSmuEFSA(self):
-        return self.getStep(1,'FSmuEFSA', [FSmuEFSASequenceCfg])
+        return self.getStep(4,'FSmuEFSA', [FSmuEFSASequenceCfg])
 
     # --------------------
     def getFSmuEFCB(self):
-        return self.getStep(2,'FSmuEFCB', [FSmuEFCBSequenceCfg])
+        return self.getStep(5,'FSmuEFCB', [FSmuEFCBSequenceCfg])
 
     #---------------------
     def getmuEFIso(self):
         return self.getStep(5,'muEFIso',[ muEFIsoSequenceCfg])
 
     #--------------------
-    def getmuMSEmpty(self, stepID):
+    def getmuMSEmptyAll(self, stepID):
         return self.getStep(stepID,'muMS_empty',[])
 
+        #--------------------
+    def getmuMSEmpty(self):
+        return self.getmuMSEmptyAll(2)
+
+       #--------------------
+    def getmuFastEmpty(self):
+        return self.getStep(1,'muFast_empty',[])
+
+
+    def getEFCBEmpty(self):
+        return self.getStep(6,'EFCBEmpty',[])
     #--------------------
     def getmuInvM(self):
-        stepName = 'Step5_muInvM'
-        log.debug("Configuring step " + stepName)
-        seq = RecoFragmentsPool.retrieve( muEFCBInvMSequenceCfg, None)
-        return ChainStep(stepName, [seq], multiplicity=[1])
-
+        return self.getStep(5,'muInvM',[muEFCBInvMSequenceCfg])
+        
     #--------------------
     def getLateMuRoI(self):
         return self.getStep(1,'muEFLateRoI',[muEFLateRoISequenceCfg])