ATLAS Offline Software
Loading...
Searching...
No Matches
ExpressionParsing::TriggerDecisionProxyLoader Class Reference

#include <TriggerDecisionProxyLoader.h>

Inheritance diagram for ExpressionParsing::TriggerDecisionProxyLoader:
Collaboration diagram for ExpressionParsing::TriggerDecisionProxyLoader:

Public Types

using VariableType = IAccessor::VariableType

Public Member Functions

 TriggerDecisionProxyLoader (ToolHandle< Trig::TrigDecisionTool > &trigDecTool)
virtual ~TriggerDecisionProxyLoader ()
virtual void reset () override
virtual IAccessor::VariableType variableTypeFromString (const std::string &varname) const override
virtual int loadInt (const EventContext &ctx, const std::string &varname) const override
virtual double loadDouble (const EventContext &ctx, const std::string &varname) const override
virtual std::vector< int > loadVecInt (const EventContext &ctx, const std::string &varname) const override
virtual std::vector< double > loadVec (const EventContext &ctx, const std::string &varname) const override
virtual std::pair< IAccessor::VariableType, const IAccessor & > getAccessorFromString (const EventContext &ctx, const std::string &varname) const override
virtual VariableType variableType (const std::string &var_name) const override

Private Attributes

ToolHandle< Trig::TrigDecisionToolm_trigDec

Detailed Description

Definition at line 22 of file TriggerDecisionProxyLoader.h.

Member Typedef Documentation

◆ VariableType

Constructor & Destructor Documentation

◆ TriggerDecisionProxyLoader()

ExpressionParsing::TriggerDecisionProxyLoader::TriggerDecisionProxyLoader ( ToolHandle< Trig::TrigDecisionTool > & trigDecTool)
inline

Definition at line 25 of file TriggerDecisionProxyLoader.h.

25: m_trigDec(trigDecTool) { }

◆ ~TriggerDecisionProxyLoader()

ExpressionParsing::TriggerDecisionProxyLoader::~TriggerDecisionProxyLoader ( )
virtual

Definition at line 18 of file TriggerDecisionProxyLoader.cxx.

19 {
20 }

Member Function Documentation

◆ getAccessorFromString()

virtual std::pair< IAccessor::VariableType, const IAccessor & > ExpressionParsing::RelayProxyLoader::getAccessorFromString ( const EventContext & ctx,
const std::string & varname ) const
inlineoverridevirtualinherited

Implements ExpressionParsing::IProxyLoader.

Definition at line 12 of file RelayProxyLoader.h.

12 {
13 return {variableTypeFromString(varname), *this};
14 }
virtual IAccessor::VariableType variableTypeFromString(const std::string &varname) const =0

◆ loadDouble()

double ExpressionParsing::TriggerDecisionProxyLoader::loadDouble ( const EventContext & ctx,
const std::string & varname ) const
overridevirtual

Implements ExpressionParsing::IAccessor.

Definition at line 48 of file TriggerDecisionProxyLoader.cxx.

49 {
50 throw std::runtime_error("Trigger decision can't be a double: check " + varname);
51 }

◆ loadInt()

int ExpressionParsing::TriggerDecisionProxyLoader::loadInt ( const EventContext & ctx,
const std::string & varname ) const
overridevirtual

Implements ExpressionParsing::IAccessor.

Definition at line 38 of file TriggerDecisionProxyLoader.cxx.

39 {
40 bool passed(false);
41 if ( varname == "" ) return(0); // no name => ?
42 // trigger decision
43 passed = m_trigDec->isPassed(varname);
44 if (passed) return(1);
45 else return(0);
46 }
bool passed(DecisionID id, const DecisionIDContainer &)
checks if required decision ID is in the set of IDs in the container

◆ loadVec()

std::vector< double > ExpressionParsing::TriggerDecisionProxyLoader::loadVec ( const EventContext & ctx,
const std::string & varname ) const
overridevirtual

Implements ExpressionParsing::IAccessor.

Definition at line 58 of file TriggerDecisionProxyLoader.cxx.

59 {
60 throw std::runtime_error("Trigger decision can't be vector<double>: check " + varname);
61 }

◆ loadVecInt()

std::vector< int > ExpressionParsing::TriggerDecisionProxyLoader::loadVecInt ( const EventContext & ctx,
const std::string & varname ) const
overridevirtual

Implements ExpressionParsing::IAccessor.

Definition at line 53 of file TriggerDecisionProxyLoader.cxx.

54 {
55 throw std::runtime_error("Trigger decision can't be vector<int>: check " + varname);
56 }

◆ reset()

void ExpressionParsing::TriggerDecisionProxyLoader::reset ( )
overridevirtual

Implements ExpressionParsing::IProxyLoader.

Definition at line 22 of file TriggerDecisionProxyLoader.cxx.

23 {
24 }

◆ variableType()

virtual VariableType ExpressionParsing::RelayProxyLoader::variableType ( const std::string & var_name) const
inlineoverridevirtualinherited

Implements ExpressionParsing::IAccessor.

Definition at line 15 of file RelayProxyLoader.h.

◆ variableTypeFromString()

IAccessor::VariableType ExpressionParsing::TriggerDecisionProxyLoader::variableTypeFromString ( const std::string & varname) const
overridevirtual

Implements ExpressionParsing::RelayProxyLoader.

Definition at line 26 of file TriggerDecisionProxyLoader.cxx.

27 {
28 static const std::set<std::string> knownPrefixes{"L1", "L2", "EF", "HLT"};
29
30 std::size_t location = varname.find('_');
31 if (location == std::string::npos) return VT_UNK;
32 std::string prefix(varname.begin(), varname.begin()+location);
33
34 if (std::find(knownPrefixes.begin(), knownPrefixes.end(), prefix) != knownPrefixes.end()) return VT_INT;
35 else return VT_UNK;
36 }

Member Data Documentation

◆ m_trigDec

ToolHandle<Trig::TrigDecisionTool> ExpressionParsing::TriggerDecisionProxyLoader::m_trigDec
private

Definition at line 37 of file TriggerDecisionProxyLoader.h.


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