12 const std::string& containerSGKey,
14 const std::string& navElementLinkKey,
15 const int restrictToLegIndex) {
36 msg << level <<
"Feature Request Descriptor configuration:" <<
endmsg;
39 msg << MSG::ERROR <<
"Empty chain group name " <<
endmsg;
43 msg << level <<
"-- Condition: TrigDefs::Physics, only paths which accepted chains in the ChainGroup will be explored." <<
endmsg;
45 msg << level <<
"-- Condition: TrigDefs::includeFailedDecisions, passed and failed paths for chains in the ChainGroup will be explored." <<
endmsg;
51 msg << level <<
"-- No filtering on Container StoreGate Key" <<
endmsg;
53 msg << level <<
"-- Container StoreGate Key: ElementLinks must regex match the container name '" <<
SGKey() <<
"'." <<
endmsg;
57 msg << level <<
"-- Feature Collection Mode: TrigDefs::lastFeatureOfType, only one (final) matching ElementLink will be returned on each path through the navigation." <<
endmsg;
59 msg << level <<
"-- Condition: TrigDefs::includeFailedDecisions, all matching ElementLinks will be returned on each path through the navigation." <<
endmsg;
64 msg << level <<
"-- Link Name: ElementLinks referenced by graph edges named '" <<
linkName() <<
"' will be returned." <<
endmsg;
67 msg << level <<
"-- Restrict Request To Leg: ElementLinks will be collected from all legs of any multi-leg chains in the ChainGroup." <<
endmsg;
69 msg << level <<
"-- Restrict Request To Leg: ElementLinks will be collected only from leg #" <<
restrictRequestToLeg() <<
" of all chains in the ChainGroup." <<
endmsg;
82 throw std::runtime_error(
"Invalid option supplied to FeatureRequestDescriptor::setCondition. Must be Physics or includeFailedDecisions.");
98 throw std::runtime_error(
"Invalid option supplied to FeatureRequestDescriptor::featureCollectionMode. Must be lastFeatureOfType or allFeaturesOfType.");
119 throw std::runtime_error(
"FeatureRequestDescriptor::chainGroup() No chain group string was supplied to this FeatureRequestDescriptor.");
static const Attributes_t empty
int restrictRequestToLeg() const
const std::string & chainGroup() const
FeatureRequestDescriptor(const std::string &chainGroupName="", const unsigned int condition=TrigDefs::Physics, const std::string &containerSGKey="", const unsigned int featureCollectionMode=TrigDefs::lastFeatureOfType, const std::string &navElementLinkKey=TrigCompositeUtils::featureString(), const int restrictToLegIndex=-1)
Default Constructor supplying all properties except for the chain group.
int m_featureCollectionMode
FeatureRequestDescriptor & setCondition(const unsigned int condition)
Set the Condition: TrigDefs::Physics - (default), only returns features from paths through the naviga...
void reset()
Reset the FeatureRequestDescriptor to its default configuration.
FeatureRequestDescriptor & setLinkName(const std::string &navElementLinkKey)
Set the Link Name Key.
FeatureRequestDescriptor & setFeatureCollectionMode(const unsigned int featureCollectionMode)
Set the Feature Collection Mode: TrigDefs::lastFeatureOfType - (default) stop exploring up each path ...
FeatureRequestDescriptor & setChainGroup(const std::string &chainGroupName)
Set the desired Chain or Chain Group.
std::string m_chainGroupName
std::regex m_containerSGKeyExpression
const std::string & linkName() const
const std::regex & SGKeyExpression() const
const std::string & SGKey() const
std::string m_containerSGKey
FeatureRequestDescriptor & setRestrictRequestToLeg(const int restrictToLegIndex)
Set to -1 by default, indicating that all legs of multi-leg chains are searched.
FeatureRequestDescriptor & setRequireSGKey(const std::string &containerSGKey)
Set the StoreGate key filter.
unsigned int condition() const
unsigned int featureCollectionMode() const
std::string m_navElementLinkKey
void print(MsgStream &msg, const MSG::Level level=MSG::INFO)
Print the configuration of the FeatureRequestDescriptor to the supplied message stream.
const std::string & featureString()
static const unsigned int includeFailedDecisions
Run3 synonym of alsoDeactivateTEs.
static const unsigned int lastFeatureOfType
Run 3 "enum". Only return the final feature along each route through the navigation.
static const unsigned int allFeaturesOfType
Run 3 "enum". Return all features along legs (still with type and container checks)
static const unsigned int Physics
The common trigger namespace for trigger analysis tools.