ATLAS Offline Software
Loading...
Searching...
No Matches
Trig::DecisionAccess Class Referenceabstract

#include <DecisionAccess.h>

Inheritance diagram for Trig::DecisionAccess:
Collaboration diagram for Trig::DecisionAccess:

Public Member Functions

 DecisionAccess ()
virtual ~DecisionAccess ()
bool isPassed (const Trig::ChainGroup *chaingroup, unsigned int condition=TrigDefs::Physics) const
 true if given group of chains passed
bool isPassed (const std::string &chain, unsigned int condition) const
 true if given chain passed
bool isPassed (const std::string &chain) const
std::vector< bool > isPassedForEach (const Trig::ChainGroup *chainGroup, unsigned int condition=TrigDefs::Physics) const
 return decision for each chain in group
std::vector< bool > isPassedForEach (const std::string &chain, unsigned int condition=TrigDefs::Physics) const
 return decision for each chain defined by given pattern
unsigned int isPassedBits (const Trig::ChainGroup *chaingroup) const
 Return expert-level information about the various trigger flags as a bit mask.
unsigned int isPassedBits (const std::string &chain) const
std::vector< unsigned int > isPassedBitsForEach (const Trig::ChainGroup *chaingroup) const
 Return the result of isPassedBits for each chain in the group.
std::vector< unsigned int > isPassedBitsForEach (const std::string &chain) const
char getBGCode () const
 get the bunch group code bit X=1: BG X fired (X=0..7) use: bool BGXfired = BGCode & (0x1<<X)
FeatureContainer features (const Trig::ChainGroup *group, unsigned int condition=TrigDefs::Physics) const
 Runs 1, 2.
FeatureContainer features (const std::string &chainName="EF_.*", unsigned int condition=TrigDefs::Physics) const
 Runs 1, 2.
template<class T>
Feature< T > ancestor (const HLT::TriggerElement *te, std::string label="") const
 gives back feature matching (by seeding relation)
template<class T>
std::vector< Trig::Feature< T > > ancestors (const HLT::TriggerElement *te, std::string label="", unsigned int condition=TrigDefs::Physics, const std::string &teName="") const
 gives back features matching (by seeding relation) - will also flatten containers if necessary
MsgStream & msg () const
MsgStream & msg (const MSG::Level lvl) const
bool msgLvl (const MSG::Level lvl) const
Run 3 functions
template<class CONTAINER>
std::vector< TrigCompositeUtils::LinkInfo< CONTAINER > > features (const Trig::FeatureRequestDescriptor &featureRequest) const
 Runs 3+.
template<class CONTAINER>
std::vector< TrigCompositeUtils::LinkInfo< CONTAINER > > features (const Trig::ChainGroup *group, 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) const
 Runs 3+.
template<class CONTAINER>
std::vector< TrigCompositeUtils::LinkInfo< CONTAINER > > features (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) const
 Runs 3+.
template<class CONTAINER, class FEATURE_CONTAINER>
std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator > associateToEventView (typename SG::ReadHandle< CONTAINER > &inViewContainer, const TrigCompositeUtils::LinkInfo< FEATURE_CONTAINER > linkInfo, const std::string &roiName=TrigCompositeUtils::roiString()) const
 Runs 3+.
template<class CONTAINER>
std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator > associateToEventView (typename SG::ReadHandle< CONTAINER > &inViewContainer, const TrigCompositeUtils::Decision *decisionObject, const std::string &roiName=TrigCompositeUtils::roiString()) const
 Runs 3+.
template<class CONTAINER>
std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator > associateToEventView (typename SG::ReadHandle< CONTAINER > &inViewContainer, const ElementLink< TrigRoiDescriptorCollection > &matchROI) const
 Runs 3+.
template<class CONTAINER>
std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator > associateToEventView (typename SG::ReadHandle< CONTAINER > &inViewContainer, const uint32_t matchIndex, const uint32_t matchKey=0, const bool isFullscan=false) const
 Runs 3+.

Private Member Functions

virtual Trig::CacheGlobalMemorycgm ()=0
virtual const Trig::CacheGlobalMemorycgm () const =0

Static Private Attributes

static asg::AsgTool *s_logger ATLAS_THREAD_SAFE {nullptr}

Friends

class Combination

Detailed Description

Definition at line 54 of file DecisionAccess.h.

Constructor & Destructor Documentation

◆ DecisionAccess()

Trig::DecisionAccess::DecisionAccess ( )

Definition at line 29 of file DecisionAccess.cxx.

29{}

◆ ~DecisionAccess()

Trig::DecisionAccess::~DecisionAccess ( )
virtual

Definition at line 31 of file DecisionAccess.cxx.

31{}

Member Function Documentation

◆ ancestor()

template<class T>
Feature< T > Trig::DecisionAccess::ancestor ( const HLT::TriggerElement * te,
std::string label = "" ) const

gives back feature matching (by seeding relation)

Parameters
te- is trigger element to start with, not that thanks to conversion operators Feature object can be given here as well

◆ ancestors()

template<class T>
std::vector< Trig::Feature< T > > Trig::DecisionAccess::ancestors ( const HLT::TriggerElement * te,
std::string label = "",
unsigned int condition = TrigDefs::Physics,
const std::string & teName = "" ) const

gives back features matching (by seeding relation) - will also flatten containers if necessary

Parameters
te- is trigger element to start with, not that thanks to conversion operators Feature object can be given here as well

◆ associateToEventView() [1/4]

template<class CONTAINER>
std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator > Trig::DecisionAccess::associateToEventView ( typename SG::ReadHandle< CONTAINER > & inViewContainer,
const ElementLink< TrigRoiDescriptorCollection > & matchROI ) const

Runs 3+.

Returns a range over a container which are associated with a particular EventView instance from online. Instance mapping done via supplied ElementLink<TrigRoiDescriptorCollection>.

Parameters
[in]inViewContainerThe ReadHandle of the collection which was produced online inside an EventView.
[in]roiTrigRoiDescriptor used to seed the desired EventView.
Returns
Pair of iterators spanning a range of indices over the collection accessed through the ReadHandleKey

◆ associateToEventView() [2/4]

template<class CONTAINER>
std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator > Trig::DecisionAccess::associateToEventView ( typename SG::ReadHandle< CONTAINER > & inViewContainer,
const TrigCompositeUtils::Decision * decisionObject,
const std::string & roiName = TrigCompositeUtils::roiString() ) const

Runs 3+.

Returns a range over a container which are associated with a particular EventView instance from online. Instance mapping done via an ElementLink<TrigRoiDescriptorCollection> obtained from the supplied Decision object pointer

Parameters
[in]inViewContainerThe ReadHandle of the collection which was produced online inside an EventView.
[in]decisionObjectDecision node from which a TrigRoiDescriptor can be located.
[in]roiNameName of the TrigRoiDescriptor inside the Navigation.
Returns
Pair of iterators spanning a range of indices over the collection accessed through the ReadHandleKey

◆ associateToEventView() [3/4]

template<class CONTAINER, class FEATURE_CONTAINER>
std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator > Trig::DecisionAccess::associateToEventView ( typename SG::ReadHandle< CONTAINER > & inViewContainer,
const TrigCompositeUtils::LinkInfo< FEATURE_CONTAINER > linkInfo,
const std::string & roiName = TrigCompositeUtils::roiString() ) const

Runs 3+.

Returns a range over a container which are associated with a particular EventView instance from online. Instance mapping done via an ElementLink<TrigRoiDescriptorCollection> obtained from the supplied LinkInfo

Parameters
[in]inViewContainerThe ReadHandle of the collection which was produced online inside an EventView.
[in]linkInfoLinkInfo from which a TrigRoiDescriptor can be located.
[in]roiNameName of the TrigRoiDescriptor inside the Navigation.
Returns
Pair of iterators spanning a range of indices over the collection accessed through the ReadHandleKey

◆ associateToEventView() [4/4]

template<class CONTAINER>
std::pair< typename CONTAINER::const_iterator, typename CONTAINER::const_iterator > Trig::DecisionAccess::associateToEventView ( typename SG::ReadHandle< CONTAINER > & inViewContainer,
const uint32_t matchIndex,
const uint32_t matchKey = 0,
const bool isFullscan = false ) const

Runs 3+.

Returns a range over a container which are associated with a particular EventView instance from online. Instance mapping done via matchIndex and optional matchKey (leave matchKey = 0 to not cut on this).

Parameters
[in]inViewContainerThe ReadHandle of the collection which was produced online inside an EventView.
[in]matchIndexThe index of the desired EventView.
[in]matchKeyOptional. SGKey of the index of the desired EventView (collection hosting the ROI used to span the Event View)
[in]isFullscanOptional. If true, and inViewContainer has no viewIndex decorations, then return iterators over the full span of the inViewContainer instead of throwing an exception. This allows the associateToEventView interface to be used also for non-EventView containers, with the FS ROI used to indicate that the lack of decorations is expected rather than being indicative of a configuration problem.
Returns
Pair of iterators spanning a range of indices over the collection accessed through the ReadHandleKey

◆ cgm() [1/2]

virtual const Trig::CacheGlobalMemory * Trig::DecisionAccess::cgm ( ) const
privatepure virtual

Implemented in Trig::TrigDecisionToolCore.

◆ cgm() [2/2]

virtual Trig::CacheGlobalMemory * Trig::DecisionAccess::cgm ( )
privatepure virtual

Implemented in Trig::TrigDecisionToolCore.

◆ features() [1/5]

template<class CONTAINER>
std::vector< TrigCompositeUtils::LinkInfo< CONTAINER > > Trig::DecisionAccess::features ( 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 ) const

Runs 3+.

Returns features related to given chain

Parameters
[in]groupChain group to return features for.
[in]conditionCondition requirement. Only TrigDefs::Physics and TrigDefs::includeFailedDecisions are supported.
[in]containerSGKeyOptional requirement to return only features within the specified container name. Not checked if not specified.
[in]featureCollectionModeFor lastFeatureOfType, stop exploring each route through the navigation once one matching feature has been found.
[in]navElementLinkKeyOptional name of element link as saved online. The "feature" link is enforced, others may have been added.
[in]restrictToLegIndexOptional index of a leg for mult-leg chains. Features will only be returned on the specified leg. Default is all legs.
Returns
Vector of LinkInfo, where each entry wraps an ElementLink to the feature, and the Decision object it came from.

◆ features() [2/5]

Trig::FeatureContainer Trig::DecisionAccess::features ( const std::string & chainName = "EF_.*",
unsigned int condition = TrigDefs::Physics ) const

Runs 1, 2.

Returns features related to given chain

Definition at line 97 of file DecisionAccess.cxx.

97 {
98 const Trig::ChainGroup *g = cgm()->createChainGroup(Trig::convertStringToVector(chain));
99 return features(g,condition);
100}
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
virtual Trig::CacheGlobalMemory * cgm()=0
FeatureContainer features(const Trig::ChainGroup *group, unsigned int condition=TrigDefs::Physics) const
Runs 1, 2.
std::vector< std::string > convertStringToVector(const std::string &triggerNames)
makes a split of list of chains into the vector of chains

◆ features() [3/5]

template<class CONTAINER>
std::vector< TrigCompositeUtils::LinkInfo< CONTAINER > > Trig::DecisionAccess::features ( const Trig::ChainGroup * group,
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 ) const

Runs 3+.

Returns all features related to given chain group

Parameters
[in]groupChain group to return features for.
[in]conditionCondition requirement. Only TrigDefs::Physics and TrigDefs::includeFailedDecisions are supported.
[in]containerSGKeyOptional requirement to return only features within the specified container name. Not checked if not specified.
[in]featureCollectionModeFor lastFeatureOfType, stop exploring each route through the navigation once one matching feature has been found.
[in]navElementLinkKeyOptional name of element link as saved online. The "feature" link is enforced, others may have been added.
[in]restrictToLegIndexOptional index of a leg for mult-leg chains. Features will only be returned on the specified leg. Default is all legs.
Returns
Vector of LinkInfo, where each entry wraps an ElementLink to the feature, and the Decision object it came from.

◆ features() [4/5]

Trig::FeatureContainer Trig::DecisionAccess::features ( const Trig::ChainGroup * group,
unsigned int condition = TrigDefs::Physics ) const

Runs 1, 2.

Returns all features related to given chain group

Definition at line 92 of file DecisionAccess.cxx.

92 {
93 return chain->features(condition);
94}

◆ features() [5/5]

template<class CONTAINER>
std::vector< TrigCompositeUtils::LinkInfo< CONTAINER > > Trig::DecisionAccess::features ( const Trig::FeatureRequestDescriptor & featureRequest) const

Runs 3+.

Returns all features related to given chain group

Parameters
[in]featureRequestHelper object which encapsulates all configurable options of a request for features from the TDT
Returns
Vector of LinkInfo, where each entry wraps an ElementLink to the feature, and the Decision object it came from.

◆ getBGCode()

char Trig::DecisionAccess::getBGCode ( ) const

get the bunch group code bit X=1: BG X fired (X=0..7) use: bool BGXfired = BGCode & (0x1<<X)

Definition at line 103 of file DecisionAccess.cxx.

103 {
104 if( ! cgm()->assert_decision() ) {
105 ATH_MSG_ERROR("Something went wrong in decoding the trigger decision");
106 return 0;
107 }
108 return cgm()->m_bgCode;
109}
#define ATH_MSG_ERROR(x)
char m_bgCode
the encoded bunchgroup information

◆ isPassed() [1/3]

bool Trig::DecisionAccess::isPassed ( const std::string & chain) const

Definition at line 48 of file DecisionAccess.cxx.

48 {
49 return isPassed(chain, TrigDefs::Physics);
50}
bool isPassed(const Trig::ChainGroup *chaingroup, unsigned int condition=TrigDefs::Physics) const
true if given group of chains passed

◆ isPassed() [2/3]

bool Trig::DecisionAccess::isPassed ( const std::string & chain,
unsigned int condition ) const

true if given chain passed

See also
Trig::ChainGroup
TrigDefs::Conditions

Definition at line 40 of file DecisionAccess.cxx.

43{
44 const Trig::ChainGroup *g = cgm()->createChainGroup(Trig::convertStringToVector(chain));
45 return isPassed(g,condition);
46}

◆ isPassed() [3/3]

bool Trig::DecisionAccess::isPassed ( const Trig::ChainGroup * chaingroup,
unsigned int condition = TrigDefs::Physics ) const

true if given group of chains passed

See also
Trig::ChainGroup
TrigDefs::Conditions

Definition at line 34 of file DecisionAccess.cxx.

36{
37 return chainGroup->isPassed(condition);
38}

◆ isPassedBits() [1/2]

unsigned int Trig::DecisionAccess::isPassedBits ( const std::string & chain) const

Definition at line 72 of file DecisionAccess.cxx.

73{
74 const Trig::ChainGroup *g = cgm()->createChainGroup(Trig::convertStringToVector(chain));
75 return isPassedBits(g);
76}
unsigned int isPassedBits(const Trig::ChainGroup *chaingroup) const
Return expert-level information about the various trigger flags as a bit mask.

◆ isPassedBits() [2/2]

unsigned int Trig::DecisionAccess::isPassedBits ( const Trig::ChainGroup * chaingroup) const

Return expert-level information about the various trigger flags as a bit mask.

Note: this does not accept a conditions flag – the prescription is always enforceLogicalFlow. The mask can be comprehended using the following constants from TrigDefs:: EF_passedRaw EF_passThrough EF_prescaled EF_resurrected L2_passedRaw L2_passThrough L2_prescaled L2_resurrected L1_isPassedAfterPrescale L1_isPassedBeforePrescale L1_isPassedAfterVeto

Definition at line 67 of file DecisionAccess.cxx.

68{
69 return chainGroup->isPassedBits();
70}

◆ isPassedBitsForEach() [1/2]

std::vector< unsigned int > Trig::DecisionAccess::isPassedBitsForEach ( const std::string & chain) const

Definition at line 85 of file DecisionAccess.cxx.

86{
87 const Trig::ChainGroup *g = cgm()->createChainGroup(Trig::convertStringToVector(chain));
88 return g->isPassedBitsForEach();
89}

◆ isPassedBitsForEach() [2/2]

std::vector< unsigned int > Trig::DecisionAccess::isPassedBitsForEach ( const Trig::ChainGroup * chaingroup) const

Return the result of isPassedBits for each chain in the group.

Definition at line 79 of file DecisionAccess.cxx.

80{
81 return chainGroup->isPassedBitsForEach();
82}

◆ isPassedForEach() [1/2]

std::vector< bool > Trig::DecisionAccess::isPassedForEach ( const std::string & chain,
unsigned int condition = TrigDefs::Physics ) const

return decision for each chain defined by given pattern

See also
Trig::ChainGroup
TrigDefs::Conditions

Definition at line 60 of file DecisionAccess.cxx.

62{
63 const Trig::ChainGroup *g = cgm()->createChainGroup(Trig::convertStringToVector(chain));
64 return g->isPassedForEach(condition);
65}

◆ isPassedForEach() [2/2]

std::vector< bool > Trig::DecisionAccess::isPassedForEach ( const Trig::ChainGroup * chainGroup,
unsigned int condition = TrigDefs::Physics ) const

return decision for each chain in group

See also
Trig::ChainGroup
TrigDefs::Conditions

Definition at line 53 of file DecisionAccess.cxx.

55{
56 return chainGroup->isPassedForEach(condition);
57}
std::vector< bool > isPassedForEach(unsigned int condition=TrigDefs::Physics) const
return vector with isPassed decision for each chain

◆ msg() [1/2]

MsgStream & Trig::Logger::msg ( ) const
inlineinherited

Definition at line 29 of file Trigger/TrigAnalysis/TrigDecisionTool/TrigDecisionTool/Logger.h.

29 {
30 if (s_logger) return s_logger->msg();
31 else throw std::runtime_error("TrigDecisionTool Logger not initialized.");
32 }

◆ msg() [2/2]

MsgStream & Trig::Logger::msg ( const MSG::Level lvl) const
inlineinherited

◆ msgLvl()

bool Trig::Logger::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 34 of file Trigger/TrigAnalysis/TrigDecisionTool/TrigDecisionTool/Logger.h.

34{ return s_logger && s_logger->msgLvl(lvl); }

◆ Combination

friend class Combination
friend

Definition at line 270 of file DecisionAccess.h.

Member Data Documentation

◆ ATLAS_THREAD_SAFE

asg::AsgTool* s_logger Trig::Logger::ATLAS_THREAD_SAFE {nullptr}
inlinestaticprivateinherited

Definition at line 38 of file Trigger/TrigAnalysis/TrigDecisionTool/TrigDecisionTool/Logger.h.

38{nullptr};

The documentation for this class was generated from the following files: