ATLAS Offline Software
TrigAnalysisHelpers/TrigAnalysisHelpers/FeatureRequestDescriptor.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIGANALYSISHELPERS_FEATUREREQUESTDESCRIPTOR_H
6 #define TRIGANALYSISHELPERS_FEATUREREQUESTDESCRIPTOR_H
7 
8 /**********************************************************************************
9  * @Package: TrigAnalysisHelpers
10  * @class : FeatureRequestDescriptor
11  *
12  * @brief Helper class to encapsulate all possible configuration options when making a
13  * request for trigger chain features using the TrigDecisionTool's run 3 interface.
14  *
15  ***********************************************************************************/
16 #include <string>
17 #include <sstream>
18 
19 #include "AsgMessaging/MsgStream.h"
22 
23 namespace Trig {
24 
25  class FeatureRequestDescriptor {
26 
27  public:
28 
34  FeatureRequestDescriptor(const std::string& chainGroupName = "",
35  const unsigned int condition = TrigDefs::Physics,
36  const std::string& containerSGKey = "",
37  const unsigned int featureCollectionMode = TrigDefs::lastFeatureOfType,
38  const std::string& navElementLinkKey = TrigCompositeUtils::featureString(),
39  const int restrictToLegIndex = -1);
40 
44  ~FeatureRequestDescriptor() = default;
45 
50 
55 
59  void reset();
60 
64  void print(MsgStream& msg, const MSG::Level level = MSG::INFO);
65 
71  FeatureRequestDescriptor& setChainGroup(const std::string& chainGroupName);
72 
81  FeatureRequestDescriptor& setCondition(const unsigned int condition);
82 
89  FeatureRequestDescriptor& setRequireSGKey(const std::string& containerSGKey);
90 
102 
109  FeatureRequestDescriptor& setLinkName(const std::string& navElementLinkKey);
110 
116  FeatureRequestDescriptor& setRestrictRequestToLeg(const int restrictToLegIndex);
117 
121  const std::string& chainGroup() const;
122 
126  unsigned int condition() const;
127 
131  const std::string& SGKey() const;
132 
136  unsigned int featureCollectionMode() const;
137 
141  const std::string& linkName() const;
142 
146  int restrictRequestToLeg() const;
147 
148  private:
149 
150  std::string m_chainGroupName;
151  int m_condition;
152  std::string m_containerSGKey;
154  std::string m_navElementLinkKey;
156 
157  };
158 } // End of namespace
159 
160 #endif // TRIGANALYSISHELPERS_FEATUREREQUESTDESCRIPTOR_H
Trig::FeatureRequestDescriptor::setCondition
FeatureRequestDescriptor & setCondition(const unsigned int condition)
Set the Condition: TrigDefs::Physics - (default), only returns features from paths through the naviga...
Definition: FeatureRequestDescriptor.cxx:79
Trig
The common trigger namespace for trigger analysis tools.
Definition: LArCellMonAlg.h:33
Trig::FeatureRequestDescriptor::featureCollectionMode
unsigned int featureCollectionMode() const
Definition: FeatureRequestDescriptor.cxx:133
Trig::FeatureRequestDescriptor::m_chainGroupName
std::string m_chainGroupName
Definition: TrigAnalysisHelpers/TrigAnalysisHelpers/FeatureRequestDescriptor.h:164
Trig::FeatureRequestDescriptor::setChainGroup
FeatureRequestDescriptor & setChainGroup(const std::string &chainGroupName)
Set the desired Chain or Chain Group.
Definition: FeatureRequestDescriptor.cxx:73
Trig::FeatureRequestDescriptor::print
void print(MsgStream &msg, const MSG::Level level=MSG::INFO)
Print the configuration of the FeatureRequestDescriptor to the supplied message stream.
Definition: FeatureRequestDescriptor.cxx:34
Trig::FeatureRequestDescriptor::linkName
const std::string & linkName() const
Definition: FeatureRequestDescriptor.cxx:138
Conditions.h
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
Trig::FeatureRequestDescriptor::m_featureCollectionMode
int m_featureCollectionMode
Definition: TrigAnalysisHelpers/TrigAnalysisHelpers/FeatureRequestDescriptor.h:167
Trig::FeatureRequestDescriptor::condition
unsigned int condition() const
Definition: FeatureRequestDescriptor.cxx:123
TrigCompositeUtils.h
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
Trig::FeatureRequestDescriptor::m_navElementLinkKey
std::string m_navElementLinkKey
Definition: TrigAnalysisHelpers/TrigAnalysisHelpers/FeatureRequestDescriptor.h:168
Trig::FeatureRequestDescriptor::FeatureRequestDescriptor
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.
Definition: FeatureRequestDescriptor.cxx:10
Trig::FeatureRequestDescriptor::reset
void reset()
Reset the FeatureRequestDescriptor to its default configuration.
Definition: FeatureRequestDescriptor.cxx:24
Trig::FeatureRequestDescriptor::chainGroup
const std::string & chainGroup() const
Definition: FeatureRequestDescriptor.cxx:115
Trig::FeatureRequestDescriptor::setRestrictRequestToLeg
FeatureRequestDescriptor & setRestrictRequestToLeg(const int restrictToLegIndex)
Set to -1 by default, indicating that all legs of multi-leg chains are searched.
Definition: FeatureRequestDescriptor.cxx:109
TrigCompositeUtils::featureString
const std::string & featureString()
Definition: TrigCompositeUtilsRoot.cxx:899
Trig::FeatureRequestDescriptor::m_containerSGKey
std::string m_containerSGKey
Definition: TrigAnalysisHelpers/TrigAnalysisHelpers/FeatureRequestDescriptor.h:166
Trig::FeatureRequestDescriptor::setRequireSGKey
FeatureRequestDescriptor & setRequireSGKey(const std::string &containerSGKey)
Set the StoreGate key filter.
Definition: FeatureRequestDescriptor.cxx:88
Trig::FeatureRequestDescriptor::setLinkName
FeatureRequestDescriptor & setLinkName(const std::string &navElementLinkKey)
Set the Link Name Key.
Definition: FeatureRequestDescriptor.cxx:103
Trig::FeatureRequestDescriptor::SGKey
const std::string & SGKey() const
Definition: FeatureRequestDescriptor.cxx:128
python.Constants.INFO
int INFO
Definition: Control/AthenaCommon/python/Constants.py:15
Trig::FeatureRequestDescriptor::~FeatureRequestDescriptor
~FeatureRequestDescriptor()=default
Default destructor.
Trig::FeatureRequestDescriptor::m_condition
int m_condition
Definition: TrigAnalysisHelpers/TrigAnalysisHelpers/FeatureRequestDescriptor.h:165
Trig::FeatureRequestDescriptor::restrictRequestToLeg
int restrictRequestToLeg() const
Definition: FeatureRequestDescriptor.cxx:143
Trig::FeatureRequestDescriptor::m_restrictToLegIndex
int m_restrictToLegIndex
Definition: TrigAnalysisHelpers/TrigAnalysisHelpers/FeatureRequestDescriptor.h:169
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
Trig::FeatureRequestDescriptor::setFeatureCollectionMode
FeatureRequestDescriptor & setFeatureCollectionMode(const unsigned int featureCollectionMode)
Set the Feature Collection Mode: TrigDefs::lastFeatureOfType - (default) stop exploring up each path ...
Definition: FeatureRequestDescriptor.cxx:94
MsgStream.h