ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
CommonTools
ExpressionEvaluation
ExpressionEvaluation
ExpressionParserUserWithTrigSupport.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
/* Dear emacs, this is -*-c++-*- */
5
#ifndef _ExpressionParserUserWithTrigSupport_H_
6
#define _ExpressionParserUserWithTrigSupport_H_
7
8
#include "
ExpressionParserUser.h
"
9
#include "
TrigDecisionTool/TrigDecisionTool.h
"
10
#include "
ExpressionEvaluation/TriggerDecisionProxyLoader.h
"
11
#include "
ExpressionEvaluation/SGNTUPProxyLoader.h
"
12
#include "
ExpressionEvaluation/MultipleProxyLoader.h
"
13
14
template
<
class
T_Base,
unsigned
short
const NUM_PARSER=1>
15
class
ExpressionParserUserWithTrigSupport
:
public
ExpressionParserUserBase
<T_Base,NUM_PARSER>
16
{
17
public
:
18
template
<
typename
...Args>
19
ExpressionParserUserWithTrigSupport
(
Args
...args)
20
:
ExpressionParserUserBase
<T_Base,NUM_PARSER>(args...),
21
m_trigDecisionTool
(
"Trig::TrigDecisionTool/TrigDecisionTool"
)
22
{
23
this->declareProperty(
"TrigDecisionTool"
,
m_trigDecisionTool
,
""
);
24
}
25
StatusCode
initializeParser
(
ExpressionParsing::SelectionArg<NUM_PARSER>
selection_string) {
26
return
this->
_initializeParser
(selection_string,
27
[
this
](
ExpressionParsing::MultipleProxyLoader
&proxy_loaders) -> StatusCode {
28
// initialise TDT explicitly, needed for the tool to properly work with trigger decisions in AthAnalysisBase (until fixed)
29
if
( !this->
m_trigDecisionTool
.empty() ) {
30
StatusCode
sc
= this->
m_trigDecisionTool
.retrieve();
31
if
(
sc
.isFailure())
return
sc
;
32
proxy_loaders.
push_back
(std::make_unique<ExpressionParsing::TriggerDecisionProxyLoader>(this->
m_trigDecisionTool
));
33
}
34
else
{
35
this->
m_trigDecisionTool
.disable();
36
}
37
return
StatusCode::SUCCESS;
38
},
39
[
this
](
ExpressionParsing::MultipleProxyLoader
&proxy_loaders) -> StatusCode {
40
proxy_loaders.
push_back
(std::make_unique<ExpressionParsing::SGNTUPProxyLoader>(this->evtStore()));
41
return
StatusCode::SUCCESS;
42
});
43
}
44
protected
:
46
ToolHandle<Trig::TrigDecisionTool>
m_trigDecisionTool
;
47
};
48
#endif
ExpressionParserUser.h
sc
static Double_t sc
Definition
LArPhysWaveHECTool.cxx:37
MultipleProxyLoader.h
SGNTUPProxyLoader.h
TrigDecisionTool.h
TriggerDecisionProxyLoader.h
ExpressionParserUserBase< T_Base, 1 >::ExpressionParserUserBase
ExpressionParserUserBase(Args...args)
Definition
ExpressionParserUser.h:77
ExpressionParserUserBase< T_Base, 1 >::_initializeParser
StatusCode _initializeParser(const ExpressionParsing::SelectionArg< NUM_PARSER > &selection_string, ExpressionParsing::AppendLoaderFunc pre_xaod_loader=ExpressionParsing::NoLoaderFunc, ExpressionParsing::AppendLoaderFunc post_xaod_loader=ExpressionParsing::NoLoaderFunc)
ExpressionParserUserWithTrigSupport::m_trigDecisionTool
ToolHandle< Trig::TrigDecisionTool > m_trigDecisionTool
The trigger decision tool.
Definition
ExpressionParserUserWithTrigSupport.h:46
ExpressionParserUserWithTrigSupport::ExpressionParserUserWithTrigSupport
ExpressionParserUserWithTrigSupport(Args...args)
Definition
ExpressionParserUserWithTrigSupport.h:19
ExpressionParserUserWithTrigSupport::initializeParser
StatusCode initializeParser(ExpressionParsing::SelectionArg< NUM_PARSER > selection_string)
Definition
ExpressionParserUserWithTrigSupport.h:25
ExpressionParsing::MultipleProxyLoader
Definition
MultipleProxyLoader.h:25
ExpressionParsing::MultipleProxyLoader::push_back
IProxyLoader * push_back(std::unique_ptr< IProxyLoader > proxyLoader)
Definition
MultipleProxyLoader.cxx:31
ExpressionParsing::SelectionArg
typename std::conditional< NUM_PARSER==1, std::string, std::vector< std::string > >::type SelectionArg
type to be used for expression string(s) for a single or multiple expression parsers
Definition
ExpressionParserUser.h:66
Args
Definition
test_lwtnn_fastgraph.cxx:12
Generated on
for ATLAS Offline Software by
1.17.0