7 #ifndef XAOD_STANDALONE 
   10                         const std::string& 
name,
 
   22     return StatusCode::SUCCESS;
 
   29     m_sequencerToChainMap.clear();
 
   30     m_algToSequencersMap.clear();
 
   34         for ( 
const std::string& sequencer : 
chain.sequencers() ) {
 
   36             if (sequencer.empty()) 
continue;
 
   37             m_sequencerToChainMap[sequencer].push_back(
chain);
 
   41     for ( 
const auto& sequencer : hltMenuHandle->sequencers() ) {
 
   42         for ( 
const std::string& 
algorithm : sequencer.second ) {
 
   44             if (
algorithm.starts_with( 
"PassFilter")) 
continue;
 
   48                 .push_back(sequencer.first);
 
   54     return StatusCode::SUCCESS;
 
   62         chainNames.push_back(
chain);
 
   64     return StatusCode::SUCCESS;
 
   69     std::vector<std::string> 
result;
 
   72         for ( 
const std::string& sequencer : m_algToSequencersMap.at(algorithmName) ) {
 
   78             catch ( 
const std::out_of_range & ex ) {
 
   79                 ATH_MSG_DEBUG ( 
"Sequence " << sequencer << 
" is not part of the menu!" );             
 
   82     } 
catch ( 
const std::out_of_range & ex ) {
 
   83         ATH_MSG_DEBUG ( 
"Algorithm " << algorithmName << 
" is not part of the menu!" );
 
   92     std::set<std::string> allActiveChains;
 
   94         for ( 
const std::string& 
sequenceName : m_algToSequencersMap.at(algorithmName) ) {
 
   96             std::string filterName = createCollectionName(
sequenceName);
 
   97             std::set<TrigCompositeUtils::DecisionID> activeChainsInSequence = retrieveActiveChains(context, filterName);
 
  104     } 
catch ( 
const std::out_of_range & ex ) {
 
  105         ATH_MSG_DEBUG ( 
"Algorithm " << algorithmName << 
" is not part of the menu!" );
 
  108     return allActiveChains;
 
  116     SmartIF<SGImplSvc> eventStore (storeProxy);
 
  117     if (m_cachedEventID != context.eventID().event_number()){
 
  118         ATH_MSG_DEBUG(
"Caching the event store keys for event " << context.eventID().event_number());
 
  120         m_cachedEventID = context.eventID().event_number();
 
  125     for (
const auto& sequence : hltMenuHandle->
sequencers()) {
 
  126         std::string filterName = createCollectionName(sequence.first);
 
  129         auto foundKey = std::find_if(m_cachedEventStoreKeys.begin(), m_cachedEventStoreKeys.end(), [&](
const std::string& 
key) {
 
  130             return key.starts_with( filterName);
 
  133         if (foundKey != m_cachedEventStoreKeys.end() ){
 
  136                 if (!
d->decisions().empty()){
 
  138                     for (
const std::string& 
alg : sequence.second) {
 
  139                         algToSeq[
alg.substr(
alg.find(
'/') + 1, 
alg.size())] = sequence.first;
 
  147     return StatusCode::SUCCESS;
 
  151     if (m_cachedEventID != context.eventID().event_number()){
 
  152         ATH_MSG_DEBUG(
"Caching the event store keys for event " << context.eventID().event_number());
 
  153         m_cachedEventStoreKeys = readSGKeys(context);
 
  154         m_cachedEventID = context.eventID().event_number();
 
  159     std::vector<std::string> 
keys;
 
  161     SmartIF<SGImplSvc> eventStore (storeProxy);
 
  168     if (m_cachedEventID == context.eventID().event_number()) {
 
  169         return retrieveActiveChainsForKeys(context, collectionName, m_cachedEventStoreKeys);
 
  171         const std::vector<std::string> 
keys = readSGKeys(context);
 
  172         return retrieveActiveChainsForKeys(context, collectionName, 
keys);
 
  178     std::set<TrigCompositeUtils::DecisionID> activeChainsID;
 
  182     SmartIF<SGImplSvc> eventStore (storeProxy);
 
  185     for ( 
const std::string& 
key : 
keys ) {
 
  188         if ( !collectionName.empty() && (!
key.starts_with( collectionName)) ){
 
  193         if( collectionName.empty() && (!
key.starts_with( 
"HLTNav") || 
key == 
"HLTNav_Summary") ) {
 
  208     return activeChainsID;
 
  215     std::map<std::string, std::set<TrigCompositeUtils::DecisionID>> seqToActiveChains;
 
  216     for (
const auto& sequence : m_sequencerToChainMap) {
 
  218         std::string filterName = createCollectionName(sequence.first);
 
  219         seqToActiveChains[sequence.first] = retrieveActiveChains(context, filterName);
 
  222     for (
const auto& algSeqPair : m_algToSequencersMap){
 
  223         std::set<std::string> activeChains;
 
  224         for (
const std::string& 
sequenceName : algSeqPair.second){
 
  231         algToChain[algSeqPair.first] = activeChains;
 
  234     return StatusCode::SUCCESS;
 
  253         info.name = 
id.name();
 
  254         return StatusCode::SUCCESS;
 
  257     info.name = (*chain).name();
 
  258     info.groups = (*chain).groups();
 
  262     SmartIF<SGImplSvc> eventStore (storeProxy);
 
  268     info.isPassRaw = 
std::find(chainsID.begin(), chainsID.end(), 
id) != chainsID.end();
 
  270     return StatusCode::SUCCESS;
 
  289     std::string filterName = 
"HLTNav_F" + 
sequenceName + 
"__";
 
  291     if (filterName.find(
"Trig") != std::string::npos){
 
  292         filterName.replace(filterName.find(
"Trig"), 4, 
"");
 
  298 #endif // XAOD_STANDALONE