ATLAS Offline Software
Public Member Functions | Private Member Functions | Static Private Attributes | Friends | List of all members
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 More...
 
bool isPassed (const std::string &chain, unsigned int condition) const
 true if given chain passed More...
 
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 More...
 
std::vector< bool > isPassedForEach (const std::string &chain, unsigned int condition=TrigDefs::Physics) const
 return decision for each chain defined by given pattern More...
 
unsigned int isPassedBits (const Trig::ChainGroup *chaingroup) const
 Return expert-level information about the various trigger flags as a bit mask. More...
 
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. More...
 
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) More...
 
FeatureContainer features (const Trig::ChainGroup *group, unsigned int condition=TrigDefs::Physics) const
 Runs 1, 2. More...
 
FeatureContainer features (const std::string &chainName="EF_.*", unsigned int condition=TrigDefs::Physics) const
 Runs 1, 2. More...
 
template<class T >
Feature< T > ancestor (const HLT::TriggerElement *te, std::string label="") const
 gives back feature matching (by seeding relation) More...
 
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 More...
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

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 53 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  {
99  return features(g,condition);
100 }

◆ 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 }

◆ 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 }

◆ 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.

◆ 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 {
75  return isPassedBits(g);
76 }

◆ 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 {
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 {
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 }

◆ 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

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

33 { return msg() << lvl; }

◆ 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); }

Friends And Related Function Documentation

◆ Combination

friend class Combination
friend

Definition at line 269 of file DecisionAccess.h.

Member Data Documentation

◆ ATLAS_THREAD_SAFE

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

The documentation for this class was generated from the following files:
Trig::CacheGlobalMemory::createChainGroup
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
Definition: CacheGlobalMemory.cxx:54
runLayerRecalibration.chain
chain
Definition: runLayerRecalibration.py:175
LArG4GenerateShowerLib.condition
condition
Definition: LArG4GenerateShowerLib.py:19
Trig::DecisionAccess::isPassed
bool isPassed(const Trig::ChainGroup *chaingroup, unsigned int condition=TrigDefs::Physics) const
true if given group of chains passed
Definition: DecisionAccess.cxx:34
Trig::convertStringToVector
std::vector< std::string > convertStringToVector(const std::string &triggerNames)
makes a split of list of chains into the vector of chains
Definition: TDTUtilities.cxx:41
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trig::DecisionAccess::features
FeatureContainer features(const Trig::ChainGroup *group, unsigned int condition=TrigDefs::Physics) const
Runs 1, 2.
Definition: DecisionAccess.cxx:92
python.CaloCondTools.g
g
Definition: CaloCondTools.py:15
Trig::Logger::msg
MsgStream & msg() const
Definition: Trigger/TrigAnalysis/TrigDecisionTool/TrigDecisionTool/Logger.h:29
Trig::ChainGroup
Definition: ChainGroup.h:51
Trig::DecisionAccess::cgm
virtual Trig::CacheGlobalMemory * cgm()=0
Trig::DecisionAccess::isPassedBits
unsigned int isPassedBits(const Trig::ChainGroup *chaingroup) const
Return expert-level information about the various trigger flags as a bit mask.
Definition: DecisionAccess.cxx:67
Trig::ChainGroup::isPassedForEach
std::vector< bool > isPassedForEach(unsigned int condition=TrigDefs::Physics) const
return vector with isPassed decision for each chain
Definition: ChainGroup.cxx:193
Trig::CacheGlobalMemory::m_bgCode
char m_bgCode
the encoded bunchgroup information
Definition: CacheGlobalMemory.h:228