diff --git a/Event/LumiEvent/CMakeLists.txt b/Event/LumiEvent/CMakeLists.txt index d2259cdd377351c0e84a948ffd28b1e50c4bd87f..7d0595f6f5ccf3854ba9151aed54d3c4bc37b38f 100644 --- a/Event/LumiEvent/CMakeLists.txt +++ b/Event/LumiEvent/CMakeLists.txt @@ -25,6 +25,7 @@ gaudi_add_module(LumiEvent LHCb::LHCbAlgsLib LHCb::DAQEventLib LHCb::LumiEventLib + LHCb::HltInterfaces ) gaudi_add_dictionary(LumiEventDict diff --git a/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp b/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp index cf41373e1abb55c42db59a0b31e15dfd8b821608..4453a9fa3666de552c6041aebaf372ada13bf530 100644 --- a/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp +++ b/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp @@ -14,6 +14,7 @@ #include "Event/LumiSummaryOffsets_V2.h" #include "Event/RawBank.h" #include "Event/RawEvent.h" +#include "Kernel/IIndexedLumiSchemaSvc.h" #include "LHCbAlgs/Transformer.h" @@ -106,9 +107,10 @@ namespace LHCb { auto encodingKey = getField( LHCb::LumiSummaryOffsets::V2::encodingKeyOffset, LHCb::LumiSummaryOffsets::V2::encodingKeySize, ibank->data() ); if ( encodingKey != 0 ) { - // TODO add new decoding here - warning() << "TCK-based lumiSummary bank decoding not yet implemented." - << "Unable to decode bank" << endmsg; + auto lumi_schema = m_svc->lumiCounters( encodingKey, 2 ); + for ( auto cntr : lumi_schema.counters ) { + hltLumiSummary.addInfo( cntr.name, getField( cntr.offset, cntr.size, ibank->data() ) ); + } } else { if ( ibank->size() != LHCb::LumiSummaryOffsets::V2::TotalSize ) { warning() << "Bank size incorrect for HltLumiSummary V2: expected " @@ -205,6 +207,8 @@ namespace LHCb { } private: + ServiceHandle<IIndexedLumiSchemaSvc> m_svc{this, "DecoderMapping", "HltANNSvc"}; + // Statistics, mutable to allow statistics to be kept mutable Gaudi::Accumulators::AveragingCounter<> m_totDataSize{this, "Average event size / 32-bit words"}; };