|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef TRIGGER_DECISION_TOOL_CACHE_GLOBAL_MEMORY_H
6 #define TRIGGER_DECISION_TOOL_CACHE_GLOBAL_MEMORY_H
22 #include<unordered_map>
48 #ifndef XAOD_ANALYSIS // Full Athena only
49 #include "EventInfo/EventInfo.h"
85 const std::string&
alias=
"",
108 if(cgm->unpackNavigation().isFailure()){
147 #ifndef XAOD_ANALYSIS // Full Athena only
209 std::map<std::string, std::vector<std::string> >
m_groups;
210 std::map<std::string, std::vector<std::string> >
m_streams;
217 #ifndef XAOD_ANALYSIS // Full Athena
225 typedef std::unordered_map<std::string, const TrigConf::HLTChain*>
ChainHashMap_t;
236 virtual const void*
ptr()
const {
return nullptr;}
241 return lhs->
ptr() < rhs->
ptr(); }
SG::ReadHandleKey< xAOD::TrigDecision > * m_decisionKeyPtr
Parent TDT's read handle key.
StatusCode unpackDecision(const EventContext &ctx)
unpacks whole trigger decision for the event
Group
Properties of a chain group.
const asg::EventStoreType * m_store
Pointer to the event store in use.
const Trig::ChainGroup * createChainGroup(const std::vector< std::string > &patterns, const std::string &alias="", TrigDefs::Group props=TrigDefs::Group::Default) const
creates new chain group
void setRun3NavigationKeyPtr(SG::ReadHandleKey< TrigCompositeUtils::DecisionContainer > *k)
const std::map< std::string, std::vector< std::string > > & getStreams() const
std::unique_ptr< IDecisionUnpacker > m_unpacker ATLAS_THREAD_SAFE
Trigger decision unpacker helper.
The common trigger namespace for trigger analysis tools.
const TrigConf::TriggerItem * config_item(const std::string &name) const
CTP config item from given name.
std::vector< std::string > patterns
Logging adaptor to provide interfaces required for ATH_MSG macros.
void deleteAtTheEndOfEvent(T t) const
const LVL1CTP::Lvl1Item * item(const std::string &name) const
CTP item from given name.
~CacheGlobalMemory()=default
std::map< std::string, std::vector< std::string > > m_streams
mapping from stream to list of chains
void setRun2NavigationKeyPtr(SG::ReadHandleKey< xAOD::TrigNavigation > *k)
std::recursive_mutex m_cgmMutex
R3 MT protection only against –threads > 1.
virtual const void * ptr() const
Property holding a SG store/key/clid from which a ReadHandle is made.
HLT chain configuration information.
void setStore(asg::EventStoreType *store)
Set the event store to be used by the object.
AnyTypeDeleter m_deleteAtEndOfEvent ATLAS_THREAD_SAFE
void setOldEventInfoKeyPtr(SG::ReadHandleKey< EventInfo > *k)
const TrigConf::HLTChainList * m_confChains
all chains configuration
ChainHashMap_t m_mConfChains
map of conf chains
float item_prescale(int ctpid) const
Prescale for CPT item.
size_t nChainGroups() const
const HLT::TrigNavStructure * navigation() const
std::map< std::string, std::vector< std::string > > m_groups
mapping from group to list of chains
The Athena Transient Store API.
const asg::EventStoreType * store() const
Get the event store that the object is using.
const SG::ReadHandleKey< TrigCompositeUtils::DecisionContainer > * getRun3NavigationKeyPtr() const
void navigation(HLT::TrigNavStructure *nav)
sets navigation object pointer
SG::ReadHandleKey< TrigCompositeUtils::DecisionContainer > * m_run3NavigationKeyPtr
Parent TDT's read handle key.
HLT::TrigNavStructure * m_navigation
Navigation owned by CGM.
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
bool assert_decision() const
checks if new event arrived with the decision Need to use before any call to CacheGlobalMemory.
list of all HLT chains in a trigger menu
const TrigConf::HLTChain * config_chain(const std::string &name) const
HLT config chain from given name.
void reset_decision()
invalidate previously unpacked decision Needs to be called at the start of a new event.
::StatusCode StatusCode
StatusCode definition for legacy code.
void setOldDecisionKeyPtr(SG::ReadHandleKey< TrigDec::TrigDecision > *k)
const HLT::Chain * chain(const std::string &name) const
HLT chain object from given name (0 pointer returned if no match)
std::unordered_map< std::string, const HLT::Chain * > m_l2chainsByName
L2 chains keyed by chain name (chainging every event)
std::unordered_map< std::string, const TrigConf::HLTChain * > ChainHashMap_t
std::map< std::vector< std::string >, Trig::ChainGroup > m_chainGroups ATLAS_THREAD_SAFE
primary storage for chain groups
StatusCode unpackNavigation()
unpacks HLT navigation structure (object access)
CacheGlobalMemory()=default
SG::ReadHandleKey< EventInfo > * m_oldEventInfoKeyPtr
Parent TDT's read handle key.
std::set< iholder *, holder_comp > m_todel
const TrigConf::ItemContainer * m_confItems
items configuration
std::map< CHAIN_COUNTER, HLT::Chain > m_l2chainsCache
cache of all L2 chains possible (given configuration)
std::unordered_map< std::string, const HLT::Chain * > m_efchainsByName
L2 chains keyed by chain name (chainging every event)
void setDecisionKeyPtr(SG::ReadHandleKey< xAOD::TrigDecision > *k)
ctp
Retrieve trigger EDM objects.
std::unordered_map< std::string, const LVL1CTP::Lvl1Item * > m_itemsByName
items keyed by configuration name (chainging every event)
boost::multi_index::multi_index_container< TriggerItem *, boost::multi_index::indexed_by< boost::multi_index::random_access<>, boost::multi_index::ordered_unique< boost::multi_index::identity< TriggerItem > >, boost::multi_index::ordered_unique< boost::multi_index::tag< tag_ctpid >, boost::multi_index::const_mem_fun< TriggerItem, int, &TriggerItem::ctpId > >, boost::multi_index::hashed_unique< boost::multi_index::tag< tag_name_hash >, boost::multi_index::const_mem_fun< TrigConfData, const std::string &, &TrigConfData::name > > > > ItemContainer
bool m_navigationUnpacked
Was navigation unpacked for this event?
const Trig::ChainGroup * getChainGroup(const std::vector< std::string > &triggerNames, TrigDefs::Group props) const
std::map< std::vector< std::string >, Trig::ChainGroup * > m_chainGroupsRef ATLAS_THREAD_SAFE
this map keeps the chain group more than once i.e.
const SG::ReadHandleKey< xAOD::TrigDecision > * xAODTrigDecisionKey() const
void updateChainGroup(Trig::ChainGroup &chainGroup, TrigDefs::Group props=TrigDefs::Group::Default)
unpacks everything that belongs to a ChainGroup
bool m_decisionUnpacked
Was decision unpacked for this event?
#define ATH_MSG_WARNING(x)
const SG::ReadHandleKey< TrigCompositeUtils::DecisionContainer > & getRun3NavigationKey() const
char m_bgCode
the encoded bunchgroup information
std::map< CHAIN_COUNTER, HLT::Chain > m_efchainsCache
cache of all EF chains possible (given configuration)
void update(const TrigConf::HLTChainList *confChains, const TrigConf::CTPConfig *ctp)
Updates configuration of the chain groups (i.e.
SG::ReadHandleKey< xAOD::TrigNavigation > * m_run2NavigationKeyPtr
Parent TDT's read handle key.
SG::ReadHandleKey< TrigDec::TrigDecision > * m_oldDecisionKeyPtr
Parent TDT's read handle key.
virtual const void * ptr() const
Define macros for attributes used to control the static checker.
bool operator()(iholder *lhs, iholder *rhs) const
std::map< CTPID, LVL1CTP::Lvl1Item > m_itemsCache
cache of all CTP items possible (given configuration)