11 const std::string& name,
12 const IInterface* parent)
13 : base_class(
type, name, parent) {}
29 return StatusCode::SUCCESS;
34 const std::string& thrType,
35 std::optional<ThrVecRef>& thrVec)
const {
39 catch (
const std::exception& ex) {
40 ATH_MSG_ERROR(
"Failed to retrieve " << thrType <<
" thresholds from L1 menu. Exception:" << ex.what());
41 return StatusCode::FAILURE;
43 return StatusCode::SUCCESS;
48 return "PROBE" + thresholdName;
60 const std::vector<std::string> thresholds{ chain.l1thresholds() };
61 const std::vector<size_t> legMultiplicities{ chain.legMultiplicities() };
62 if (thresholds.size() != legMultiplicities.size()) {
63 ATH_MSG_ERROR(
"Encountered a chain " << chain.name() <<
" with " << legMultiplicities.size()
64 <<
" legs but only " << thresholds.size() <<
" thresholds. These should be the same.");
65 return StatusCode::FAILURE;
68 for (
const std::string& th: thresholds ) {
72 ATH_MSG_DEBUG(
"Associating " << chainIdentifier <<
" with threshold " << th );
73 if ( thresholds.size() > 1 ) {
77 ATH_MSG_DEBUG(
"Associating additional chain leg " << legIdentifier
78 <<
" with threshold " << thresholdIdentifier );
84 return StatusCode::SUCCESS;
98 for (
auto chainId: chains->second ) {
99 if ( activeChains.find(chainId) != activeChains.end() ) {
100 ids.insert( chainId.numeric() );
101 ATH_MSG_DEBUG(
"Added " << chainId <<
" to the RoI/threshold decision " << thresholdId );
106 if ( activeChains.find( legIterator->second ) != activeChains.end() ) {
107 ids.insert( chainId.numeric() );
108 ATH_MSG_DEBUG(
"Added " << chainId <<
" to the RoI/threshold decision " << thresholdId );
114 ATH_MSG_DEBUG(
"Number of decisions in this RoI after adding chains using threshold " << thresholdId
#define ATH_CHECK
Evaluate an expression and check for errors.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
std::set< HLT::Identifier > IDSet
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
HLT::Identifier createLegName(const HLT::Identifier &chainIdentifier, size_t counter)
Generate the HLT::Identifier which corresponds to a specific leg of a given chain.
xAOD::TrigComposite Decision
void insertDecisionIDs(const Decision *src, Decision *dest)
Appends the decision IDs of src to the dest decision object.
std::set< DecisionID > DecisionIDContainer
void decisionIDs(const Decision *d, DecisionIDContainer &destination)
Extracts DecisionIDs stored in the Decision object.