5 #ifndef XAOD_ANALYSIS // Full Athena only
25 std::map<unsigned, LVL1CTP::Lvl1Item>& itemsCache,
26 std::unordered_map<std::string, const LVL1CTP::Lvl1Item*>& itemsByName)
const {
27 itemsByName.reserve( itemsByName.size() + itemsCache.size() );
28 for (
auto& [ctpid,
item] : itemsCache ) {
30 const bool passBP =
result.isPassedBeforePrescale(ctpid);
31 const bool passAP =
result.isPassedAfterPrescale(ctpid);
32 const bool passAV =
result.isPassedAfterVeto(ctpid);
34 passBP, passAP, passAV,
35 item.prescaleFactor());
36 item = std::move (itemNew);
39 return StatusCode::SUCCESS;
44 std::map<unsigned, HLT::Chain>& cache,
45 std::unordered_map<std::string, const HLT::Chain*>&
output)
const {
47 if( serialized_chains.empty() ) {
49 return StatusCode::FAILURE;
54 std::vector<uint32_t>::const_iterator rawIt = serialized_chains.begin();
56 for ( ; rawIt != serialized_chains.end(); ++rawIt ) {
61 auto cacheIt = cache.find(cntr);
62 if ( cacheIt == cache.end() ) {
63 ATH_MSG_WARNING(
"Missing chain of counter in the configuration: " << cntr);
64 return StatusCode::FAILURE;
66 cacheIt->second.reset();
67 cacheIt->second.deserialize(*rawIt);
68 output[cacheIt->second.getChainName()] = &cacheIt->second;
72 return StatusCode::SUCCESS;
76 std::unordered_map<std::string, const LVL1CTP::Lvl1Item*>& itemsByName,
77 std::map<CTPID, LVL1CTP::Lvl1Item>& itemsCache,
78 std::unordered_map<std::string, const HLT::Chain*>& l2chainsByName,
79 std::map<CHAIN_COUNTER, HLT::Chain>& l2chainsCache,
80 std::unordered_map<std::string, const HLT::Chain*>& efchainsByName,
81 std::map<CHAIN_COUNTER, HLT::Chain>& efchainsCache,
100 if (!unpackHLT)
return StatusCode::SUCCESS;
104 l2chainsByName.clear();
110 if (
unpackChains(l2_serialized_chains, l2chainsCache, l2chainsByName).isFailure() ) {
117 efchainsByName.clear();
119 ATH_MSG_DEBUG(ef_serialized_chains.size() <<
" EF/HLT chains");
121 if ( ! ef_serialized_chains.empty()) {
122 if (
unpackChains(ef_serialized_chains, efchainsCache, efchainsByName).isFailure() ) {
129 return StatusCode::SUCCESS;
142 return StatusCode::FAILURE;
153 if ( ! unpacking_status ) {
158 msg() <<
", falling back to L2 Navigation of size: "
165 if ( ! unpacking_status ) {
172 return StatusCode::SUCCESS;
177 #endif // full Athena env