ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
EL::Detail::ModuleData Struct Reference

the data the EventLoop core classes are sharing with the Module implementation More...

#include <ModuleData.h>

Inheritance diagram for EL::Detail::ModuleData:
Collaboration diagram for EL::Detail::ModuleData:

Public Member Functions

 ModuleData () noexcept
 explicit constructor for dependency reduction More...
 
 ~ModuleData () noexcept
 explicit destructor for dependency reduction More...
 
void addOutput (std::unique_ptr< TObject > output)
 add the given output object to the histogram output stream More...
 

Public Attributes

std::vector< Detail::AlgorithmDatam_algs
 the list of algorithms More...
 
std::string m_inputFileUrl
 the input file url of the currently opened file More...
 
std::unique_ptr< TFile > m_inputFile
 the input file pointer of the currently opened filed More...
 
TTree * m_inputTree {nullptr}
 the (main) tree in the input file More...
 
uint64_t m_inputTreeEntry {0}
 the entry in the input tree we are currently looking at More...
 
bool m_skipEvent = false
 whether we are skipping the current event More...
 
const SH::MetaObjectm_metaData {nullptr}
 the meta-data we use More...
 
uint64_t m_eventsProcessed {0}
 the number of events that have been processed More...
 
OutputStreamDatam_histOutput {nullptr}
 the histogram output stream More...
 
std::unique_ptr< TTree > m_jobStats
 Tree saving per-job statistics information. More...
 
xAOD::TEventm_tevent {nullptr}
 the TEvent structure, if we use one More...
 
xAOD::TStorem_tstore {nullptr}
 the TStore structure, if we use one More...
 
asg::SgTEventm_evtStore {nullptr}
 the SgTEvent structure, if we use one More...
 
Workerm_worker {nullptr}
 the worker (to pass on to the algorithms) More...
 
std::map< std::string, Detail::OutputStreamDatam_outputs
 the list of output files More...
 

Detailed Description

the data the EventLoop core classes are sharing with the Module implementation

This class serves as a common argument to all Module methods, thereby allowing to share a lot of information with all modules without having to list of it explicitly in the module signature.

This is purposely implemented as a simple struct without any accessor function, let alone a full whiteboard implementation; just because anything else feels like overkill right now. Right now (18 Jan 19) I only anticipate a limited number of module implementations, all written by EventLoop developers, meaning such abstractions and protections buy little, but cost a lot. Should the module infrastructure ever be opened up to the user this would have to be changed.

\warn Just like the Module class this interface may change completely and without warning from one release to the next.

Definition at line 63 of file ModuleData.h.

Constructor & Destructor Documentation

◆ ModuleData()

EL::Detail::ModuleData::ModuleData ( )
defaultnoexcept

explicit constructor for dependency reduction

◆ ~ModuleData()

EL::Detail::ModuleData::~ModuleData ( )
defaultnoexcept

explicit destructor for dependency reduction

Member Function Documentation

◆ addOutput()

void EL::Detail::ModuleData::addOutput ( std::unique_ptr< TObject >  output)

add the given output object to the histogram output stream

Guarantee
basic
Failures
out of memory II

Definition at line 33 of file ModuleData.cxx.

35  {
36  RCU_ASSERT (m_histOutput != nullptr);
37  m_histOutput->addOutput (std::move (output));
38  }

Member Data Documentation

◆ m_algs

std::vector<Detail::AlgorithmData> EL::Detail::ModuleData::m_algs

the list of algorithms

Definition at line 66 of file ModuleData.h.

◆ m_eventsProcessed

uint64_t EL::Detail::ModuleData::m_eventsProcessed {0}

the number of events that have been processed

Definition at line 88 of file ModuleData.h.

◆ m_evtStore

asg::SgTEvent* EL::Detail::ModuleData::m_evtStore {nullptr}

the SgTEvent structure, if we use one

Definition at line 103 of file ModuleData.h.

◆ m_histOutput

OutputStreamData* EL::Detail::ModuleData::m_histOutput {nullptr}

the histogram output stream

Definition at line 91 of file ModuleData.h.

◆ m_inputFile

std::unique_ptr<TFile> EL::Detail::ModuleData::m_inputFile

the input file pointer of the currently opened filed

Definition at line 72 of file ModuleData.h.

◆ m_inputFileUrl

std::string EL::Detail::ModuleData::m_inputFileUrl

the input file url of the currently opened file

Definition at line 69 of file ModuleData.h.

◆ m_inputTree

TTree* EL::Detail::ModuleData::m_inputTree {nullptr}

the (main) tree in the input file

Definition at line 75 of file ModuleData.h.

◆ m_inputTreeEntry

uint64_t EL::Detail::ModuleData::m_inputTreeEntry {0}

the entry in the input tree we are currently looking at

Definition at line 79 of file ModuleData.h.

◆ m_jobStats

std::unique_ptr<TTree> EL::Detail::ModuleData::m_jobStats

Tree saving per-job statistics information.

Definition at line 94 of file ModuleData.h.

◆ m_metaData

const SH::MetaObject* EL::Detail::ModuleData::m_metaData {nullptr}

the meta-data we use

Definition at line 85 of file ModuleData.h.

◆ m_outputs

std::map<std::string,Detail::OutputStreamData> EL::Detail::ModuleData::m_outputs

the list of output files

Definition at line 109 of file ModuleData.h.

◆ m_skipEvent

bool EL::Detail::ModuleData::m_skipEvent = false

whether we are skipping the current event

Definition at line 82 of file ModuleData.h.

◆ m_tevent

xAOD::TEvent* EL::Detail::ModuleData::m_tevent {nullptr}

the TEvent structure, if we use one

Definition at line 97 of file ModuleData.h.

◆ m_tstore

xAOD::TStore* EL::Detail::ModuleData::m_tstore {nullptr}

the TStore structure, if we use one

Definition at line 100 of file ModuleData.h.

◆ m_worker

Worker* EL::Detail::ModuleData::m_worker {nullptr}

the worker (to pass on to the algorithms)

Definition at line 106 of file ModuleData.h.


The documentation for this struct was generated from the following files:
EL::Detail::OutputStreamData::addOutput
void addOutput(std::unique_ptr< TObject > outputObject)
add the given output object to this stream
Definition: OutputStreamData.cxx:204
merge.output
output
Definition: merge.py:17
EL::Detail::ModuleData::m_histOutput
OutputStreamData * m_histOutput
the histogram output stream
Definition: ModuleData.h:91
RCU_ASSERT
#define RCU_ASSERT(x)
Definition: Assert.h:222