ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ExpressionParserUserWithTrigSupport< T_Base, NUM_PARSER > Class Template Reference

#include <ExpressionParserUserWithTrigSupport.h>

Inheritance diagram for ExpressionParserUserWithTrigSupport< T_Base, NUM_PARSER >:
Collaboration diagram for ExpressionParserUserWithTrigSupport< T_Base, NUM_PARSER >:

Public Member Functions

template<typename... Args>
 ExpressionParserUserWithTrigSupport (Args...args)
 
StatusCode initializeParser (ExpressionParsing::SelectionArg< NUM_PARSER > selection_string)
 
StatusCode finalizeParser ()
 
virtual bool updateDataNeeds (const std::vector< const DataObjID * > &input_data_in, const std::vector< const DataObjID * > &output_data_in, std::vector< Gaudi::DataHandle * > &new_input_handles, std::vector< Gaudi::DataHandle * > &new_output_handles) override
 Inform a dynamic data consumer about all consumed or produced data. More...
 
virtual bool renounceInput (const DataObjID &output_data_id) override
 

Protected Member Functions

StatusCode _initializeParser (const ExpressionParsing::SelectionArg< NUM_PARSER > &selection_string, ExpressionParsing::AppendLoaderFunc pre_xaod_loader=ExpressionParsing::NoLoaderFunc, ExpressionParsing::AppendLoaderFunc post_xaod_loader=ExpressionParsing::NoLoaderFunc)
 

Protected Attributes

ToolHandle< Trig::TrigDecisionToolm_trigDecisionTool
 The trigger decision tool. More...
 
ExpressionParsing::SGxAODProxyLoaderm_xAODProxyLoader
 The expression parser. More...
 
std::unique_ptr< ExpressionParsing::IProxyLoaderm_proxyLoaders
 
std::conditional< NUM_PARSER==1, std::unique_ptr< ExpressionParsing::ExpressionParser >, std::array< std::unique_ptr< ExpressionParsing::ExpressionParser >, NUM_PARSER > >::type m_parser
 
std::vector< std::string > m_renounce
 

Detailed Description

template<class T_Base, unsigned short const NUM_PARSER = 1>
class ExpressionParserUserWithTrigSupport< T_Base, NUM_PARSER >

Definition at line 15 of file ExpressionParserUserWithTrigSupport.h.

Constructor & Destructor Documentation

◆ ExpressionParserUserWithTrigSupport()

template<class T_Base , unsigned short const NUM_PARSER = 1>
template<typename... Args>
ExpressionParserUserWithTrigSupport< T_Base, NUM_PARSER >::ExpressionParserUserWithTrigSupport ( Args...  args)
inline

Definition at line 19 of file ExpressionParserUserWithTrigSupport.h.

21  m_trigDecisionTool("Trig::TrigDecisionTool/TrigDecisionTool")
22  {
23  this->declareProperty("TrigDecisionTool", m_trigDecisionTool,"");
24  }

Member Function Documentation

◆ _initializeParser()

StatusCode ExpressionParserUserBase< T_Base, NUM_PARSER >::_initializeParser ( const ExpressionParsing::SelectionArg< NUM_PARSER > &  selection_string,
ExpressionParsing::AppendLoaderFunc  pre_xaod_loader = ExpressionParsing::NoLoaderFunc,
ExpressionParsing::AppendLoaderFunc  post_xaod_loader = ExpressionParsing::NoLoaderFunc 
)
protectedinherited

◆ finalizeParser()

StatusCode ExpressionParserUserBase< T_Base, NUM_PARSER >::finalizeParser ( )
inherited

◆ initializeParser()

template<class T_Base , unsigned short const NUM_PARSER = 1>
StatusCode ExpressionParserUserWithTrigSupport< T_Base, NUM_PARSER >::initializeParser ( ExpressionParsing::SelectionArg< NUM_PARSER >  selection_string)
inline

Definition at line 25 of file ExpressionParserUserWithTrigSupport.h.

25  {
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(new 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(new ExpressionParsing::SGNTUPProxyLoader(this->evtStore()));
41  return StatusCode::SUCCESS;
42  });
43  }

◆ renounceInput()

virtual bool ExpressionParserUserBase< T_Base, NUM_PARSER >::renounceInput ( const DataObjID &  output_data_id)
overridevirtualinherited

◆ updateDataNeeds()

virtual bool ExpressionParserUserBase< T_Base, NUM_PARSER >::updateDataNeeds ( const std::vector< const DataObjID * > &  input_data_in,
const std::vector< const DataObjID * > &  output_data_in,
std::vector< Gaudi::DataHandle * > &  new_input_handles,
std::vector< Gaudi::DataHandle * > &  new_output_handles 
)
overridevirtualinherited

Inform a dynamic data consumer about all consumed or produced data.

Parameters
input_data_inthe input data object IDs of all algorithms and tools
output_data_inthe output data object IDs of all algorithms and tools
new_input_handlesthe new input data handles added by this call
new_output_handlesthe new output data handles added by this call
Returns
true if the consumer did update its handles, false otherwise

Implements IDynamicDataConsumer.

Member Data Documentation

◆ m_parser

std::conditional< NUM_PARSER == 1, std::unique_ptr<ExpressionParsing::ExpressionParser>, std::array< std::unique_ptr<ExpressionParsing::ExpressionParser>, NUM_PARSER> >::type ExpressionParserUserBase< T_Base, NUM_PARSER >::m_parser
protectedinherited

Definition at line 100 of file ExpressionParserUser.h.

◆ m_proxyLoaders

std::unique_ptr<ExpressionParsing::IProxyLoader> ExpressionParserUserBase< T_Base, NUM_PARSER >::m_proxyLoaders
protectedinherited

Definition at line 97 of file ExpressionParserUser.h.

◆ m_renounce

std::vector<std::string> ExpressionParserUserBase< T_Base, NUM_PARSER >::m_renounce
protectedinherited

Definition at line 102 of file ExpressionParserUser.h.

◆ m_trigDecisionTool

template<class T_Base , unsigned short const NUM_PARSER = 1>
ToolHandle<Trig::TrigDecisionTool> ExpressionParserUserWithTrigSupport< T_Base, NUM_PARSER >::m_trigDecisionTool
protected

The trigger decision tool.

Definition at line 46 of file ExpressionParserUserWithTrigSupport.h.

◆ m_xAODProxyLoader

ExpressionParsing::SGxAODProxyLoader* ExpressionParserUserBase< T_Base, NUM_PARSER >::m_xAODProxyLoader
protectedinherited

The expression parser.

Definition at line 96 of file ExpressionParserUser.h.


The documentation for this class was generated from the following file:
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)
ExpressionParsing::SGNTUPProxyLoader
Definition: SGNTUPProxyLoader.h:23
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ExpressionParserUserBase
Definition: ExpressionParserUser.h:74
ExpressionParsing::MultipleProxyLoader::push_back
void push_back(IProxyLoader *proxyLoader)
Definition: MultipleProxyLoader.cxx:30
ExpressionParserUserWithTrigSupport::m_trigDecisionTool
ToolHandle< Trig::TrigDecisionTool > m_trigDecisionTool
The trigger decision tool.
Definition: ExpressionParserUserWithTrigSupport.h:46
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.CaloScaleNoiseConfig.args
args
Definition: CaloScaleNoiseConfig.py:80
ExpressionParsing::MultipleProxyLoader
Definition: MultipleProxyLoader.h:24