49 ATH_MSG_ERROR(
"NavigationFormat property must be one of 'TriggerElement' for Run 1, 2 triggered input or 'TrigComposite' for Run 3+ triggered input");
50 return StatusCode::FAILURE;
66 "This is not efficent from performance perspective. "
67 "Access of the same EDM objects will give warnings." );
70 "Set 'AcceptMultipleInstance' to overwrite this behavior.");
71 return StatusCode::FAILURE;
75 ATH_MSG_INFO(
"Initializing Trig::TrigDecisionTool (standalone version even for athena)");
77#ifndef XAOD_STANDALONE
83 ATH_MSG_DEBUG(
"No TrigConfigSvc provided. Using ConfigTool instead...");
111#ifndef XAOD_STANDALONE
113 if (incSvc.retrieve().isFailure()) {
115 return StatusCode::FAILURE;
119 incSvc->removeListener(
this,
"BeginEvent");
120 incSvc->addListener(
this,
"BeginEvent", pri );
122 incSvc->removeListener(
this, IncidentType::BeginInputFile );
123 incSvc->addListener(
this, IncidentType::BeginInputFile, pri,
true);
128 std::map<std::string, std::string>::const_iterator pIt;
133 ATH_MSG_INFO(
"created Public Chain Group " << pIt->first <<
" with pattern: " << pIt->second );
136 return StatusCode::SUCCESS;
145 if (forceForAllSlots) {
171#ifndef XAOD_STANDALONE
173 slot = Gaudi::Hive::currentContext().slot();
185#ifndef XAOD_STANDALONE
198 ATH_MSG_DEBUG(
"beginEvent: check if config update is necessary");
199 std::vector<uint32_t> newKeys = {
208 <<
" with SMK: " << newKeys[0]
209 <<
" and L1PSK: " << newKeys[1]
210 <<
" and HLTPSK: " << newKeys[2]
211 <<
" and BGSK: " << newKeys[3]
213 <<
" HLT Chains: " << iHLTConfig->
chains().size());
219 ATH_MSG_DEBUG(
"Cached trigger configuration keys match for this event in slot " << slot);
221 return StatusCode::SUCCESS;
228 ATH_MSG_VERBOSE(
"Trig::TrigDecisionTool::beginInputFile: setForceConfigUpdate(true, forceForAllSlots=true)");
230 return StatusCode::SUCCESS;
241 return StatusCode::SUCCESS;
248 ATH_MSG_DEBUG(
"got incident type:" << inc.type() <<
" source: " << inc.source() );
250 if (inc.type() == IncidentType::BeginEvent) {
251 ATH_MSG_VERBOSE(
"Obtained IncidentType::BeginEvent via Trig::TrigDecisionTool::handle");
253 throw std::runtime_error(
"In Trig::TrigDecisionTool::handle beginEvent() returned StatusCode::FAILURE");
256 else if (inc.type() == IncidentType::BeginInputFile) {
257 ATH_MSG_VERBOSE(
"Obtained IncidentType::BeginInputFile via Trig::TrigDecisionTool::handle");
259 throw std::runtime_error(
"In Trig::TrigDecisionTool::handle beginInputFile() returned StatusCode::FAILURE");
264 AsgMetadataTool::handle(inc);
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
#define CHECK(...)
Evaluate an expression and check for errors.
ServiceHandle< StoreGateSvc > & evtStore()
Interface for all services/tools that provide HLT menu configuration information.
virtual const HLTChainList & chains() const =0
accessor to HLT chains
virtual uint32_t masterKey() const =0
accessor to the configuration super masterkey
virtual uint32_t hltPrescaleKey() const =0
accessor to the configuration hlt prescale key
Interface for all services/tools that provide LVL1 menu configuration information.
virtual uint32_t lvl1PrescaleKey() const =0
accessor to the configuration lvl1 prescale key
virtual uint32_t bunchGroupSetKey() const =0
accessor to the LVL1 bunch group set key
virtual const CTPConfig * ctpConfig() const =0
Provides the LVL1 trigger menu.
void setRun2NavigationKeyPtr(SG::ReadHandleKey< xAOD::TrigNavigation > *k)
void setDecisionKeyPtr(SG::ReadHandleKey< xAOD::TrigDecision > *k)
void setStore(asg::EventStoreType *store)
Set the event store to be used by the object.
void setRun3NavigationKeyPtr(SG::ReadHandleKey< TrigCompositeUtils::DecisionContainer > *k)
void setOldDecisionKeyPtr(SG::ReadHandleKey< TrigDec::TrigDecision > *k)
void setOldEventInfoKeyPtr(SG::ReadHandleKey< EventInfo > *k)
void reset_decision()
invalidate previously unpacked decision Needs to be called at the start of a new event.
void configurationUpdate(const TrigConf::HLTChainList *confChains, const TrigConf::CTPConfig *confItems)
Logging adaptor to provide interfaces required for ATH_MSG macros.
std::vector< std::string > patterns