ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
CommonTools
ExpressionEvaluation
ExpressionEvaluation
ExpressionParser.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// ExpressionParser.h, (c) ATLAS Detector software
8
// Author: Thomas Gillam (thomas.gillam@cern.ch)
9
// ExpressionParsing library
11
12
#ifndef EXPRESSION_PARSER_H
13
#define EXPRESSION_PARSER_H
14
15
#include "
ExpressionEvaluation/StackElement.h
"
16
#include "
ExpressionEvaluation/IProxyLoader.h
"
17
#include "
ExpressionEvaluation/IUnitInterpreter.h
"
18
#include "
ExpressionEvaluation/MultipleProxyLoader.h
"
19
20
#include "
StoreGate/ReadDecorHandle.h
"
21
#include "
AthContainers/AuxVectorBase.h
"
22
23
#include <sstream>
24
#include <stdexcept>
25
26
namespace
ExpressionParsing
{
27
28
class
ExpressionParser
29
{
30
public
:
31
ExpressionParser
();
32
ExpressionParser
(
IProxyLoader
*proxyLoader);
33
ExpressionParser
(
IUnitInterpreter
*unitInterpreter);
34
ExpressionParser
(
IProxyLoader
*proxyLoader,
IUnitInterpreter
*unitInterpreter);
35
~ExpressionParser
();
36
37
ExpressionParser
(
const
ExpressionParser
&) =
delete
;
38
ExpressionParser
&
operator=
(
const
ExpressionParser
&) =
delete
;
39
40
bool
loadExpression
(
const
std::string &expression);
41
StackElement
evaluate
()
const
;
42
StackElement
evaluate
(
const
EventContext& ctx)
const
;
43
bool
evaluateAsBool
()
const
;
44
double
evaluateAsDouble
()
const
;
45
std::vector<int>
evaluateAsVector
()
const
;
46
std::vector<std::string>
getVariables
()
const
;
47
48
private
:
49
void
setup
();
50
51
private
:
52
IProxyLoader
*
m_proxyLoader
;
53
IUnitInterpreter
*
m_unitInterpreter
;
54
std::vector<StackElement>
m_code
;
55
};
56
}
57
58
#endif
// EXPRESSION_PARSER_H
AuxVectorBase.h
Manage index tracking and synchronization of auxiliary data.
IProxyLoader.h
IUnitInterpreter.h
MultipleProxyLoader.h
StackElement.h
ReadDecorHandle.h
Handle class for reading a decoration on an object.
ExpressionParsing::ExpressionParser::~ExpressionParser
~ExpressionParser()
Definition
ExpressionParser.cxx:48
ExpressionParsing::ExpressionParser::m_code
std::vector< StackElement > m_code
Definition
ExpressionParser.h:54
ExpressionParsing::ExpressionParser::evaluateAsDouble
double evaluateAsDouble() const
Definition
ExpressionParser.cxx:115
ExpressionParsing::ExpressionParser::m_proxyLoader
IProxyLoader * m_proxyLoader
Definition
ExpressionParser.h:52
ExpressionParsing::ExpressionParser::ExpressionParser
ExpressionParser()
Definition
ExpressionParser.cxx:20
ExpressionParsing::ExpressionParser::setup
void setup()
Definition
ExpressionParser.cxx:52
ExpressionParsing::ExpressionParser::evaluateAsBool
bool evaluateAsBool() const
Definition
ExpressionParser.cxx:108
ExpressionParsing::ExpressionParser::operator=
ExpressionParser & operator=(const ExpressionParser &)=delete
ExpressionParsing::ExpressionParser::evaluateAsVector
std::vector< int > evaluateAsVector() const
Definition
ExpressionParser.cxx:122
ExpressionParsing::ExpressionParser::loadExpression
bool loadExpression(const std::string &expression)
Definition
ExpressionParser.cxx:57
ExpressionParsing::ExpressionParser::evaluate
StackElement evaluate() const
Definition
ExpressionParser.cxx:101
ExpressionParsing::ExpressionParser::m_unitInterpreter
IUnitInterpreter * m_unitInterpreter
Definition
ExpressionParser.h:53
ExpressionParsing::ExpressionParser::getVariables
std::vector< std::string > getVariables() const
Definition
ExpressionParser.cxx:85
ExpressionParsing::ExpressionParser::ExpressionParser
ExpressionParser(const ExpressionParser &)=delete
ExpressionParsing::IProxyLoader
Definition
IProxyLoader.h:21
ExpressionParsing::IUnitInterpreter
Definition
IUnitInterpreter.h:19
ExpressionParsing::StackElement
Class describing a single element in a text expression.
Definition
StackElement.h:55
ExpressionParsing
Namespace holding all the expression evaluation code.
Definition
ExpressionParser.h:26
Generated on
for ATLAS Offline Software by
1.17.0