From 0fb6d62ff7a8510b7f4eb9f7658e84049efbeafa Mon Sep 17 00:00:00 2001
From: Tomasz Bold <tomasz.bold@gmail.com>
Date: Tue, 11 Dec 2018 21:40:44 +0100
Subject: [PATCH] Enable L1 menu info decoding for MET

---
 .../TrigSteer/L1Decoder/src/METRoIsUnpackingTool.cxx  | 11 +++++++++--
 .../TrigSteer/L1Decoder/src/RoIsUnpackingToolBase.cxx |  3 +++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/Trigger/TrigSteer/L1Decoder/src/METRoIsUnpackingTool.cxx b/Trigger/TrigSteer/L1Decoder/src/METRoIsUnpackingTool.cxx
index 774c055df2e..27152f7cf24 100644
--- a/Trigger/TrigSteer/L1Decoder/src/METRoIsUnpackingTool.cxx
+++ b/Trigger/TrigSteer/L1Decoder/src/METRoIsUnpackingTool.cxx
@@ -4,6 +4,7 @@
 #include "TrigConfL1Data/ThresholdConfig.h"
 #include "TrigT1Result/JetEnergyResult.h"
 #include "TrigT1Result/RoIBResult.h"
+#include "TrigConfL1Data/CTPConfig.h"
 #include "METRoIsUnpackingTool.h"
 
 METRoIsUnpackingTool::METRoIsUnpackingTool( const std::string& type, 
@@ -26,8 +27,14 @@ StatusCode METRoIsUnpackingTool::initialize()
   return StatusCode::SUCCESS;
 }
 
-StatusCode METRoIsUnpackingTool::updateConfiguration( const IRoIsUnpackingTool::SeedingMap& ) {
-  using namespace TrigConf;
+StatusCode METRoIsUnpackingTool::updateConfiguration( const IRoIsUnpackingTool::SeedingMap& seeding ) {
+  using namespace TrigConf;  
+  ATH_CHECK( decodeMapping( [](const TriggerThreshold* th){ return L1DataDef::TE == th->ttype() or L1DataDef::XE == th->ttype() or  L1DataDef::XS == th->ttype(); }, 
+			    m_configSvc->ctpConfig()->menu().itemVector(),
+			    seeding ) );
+
+
+
   const ThresholdConfig* thresholdConfig = m_configSvc->thresholdConfig();
   std::vector<const TriggerThreshold*> filtered;
   {
diff --git a/Trigger/TrigSteer/L1Decoder/src/RoIsUnpackingToolBase.cxx b/Trigger/TrigSteer/L1Decoder/src/RoIsUnpackingToolBase.cxx
index 41706f9b89e..befa8363890 100644
--- a/Trigger/TrigSteer/L1Decoder/src/RoIsUnpackingToolBase.cxx
+++ b/Trigger/TrigSteer/L1Decoder/src/RoIsUnpackingToolBase.cxx
@@ -30,13 +30,16 @@ StatusCode RoIsUnpackingToolBase::decodeMapping( std::function< bool(const TrigC
     auto itemsIterator = l1Items.get<TrigConf::tag_name_hash>().find(itemName);
     
     if ( itemsIterator != l1Items.get<TrigConf::tag_name_hash>().end() ) {
+
       const TrigConf::TriggerItem* item = *itemsIterator;
       const TrigConf::TriggerItemNode* node = item->topNode();
       std::vector<TrigConf::TriggerThreshold*> itemThresholds;
       node->getAllThresholds(itemThresholds);
+      ATH_MSG_DEBUG( "Item " << item->name() << " with thresholds " << itemThresholds.size() );
       for ( const TrigConf::TriggerThreshold* th: itemThresholds ) {
 	if ( filter(th) ) {
 	  m_thresholdToChainMapping[HLT::Identifier(th->name())].push_back( HLT::Identifier(chainName) );
+	  ATH_MSG_DEBUG( "Associating " << chainName << " with threshold " << th->name() );
 	}
       }
     } else {
-- 
GitLab