![]() |
Belle II Software
light-2303-iriomote
|
provides the core event processing loop. More...
#include <EventProcessor.h>


Classes | |
| class | StoppedBySignalException |
| Exception thrown when execution is stopped by a signal. More... | |
Public Member Functions | |
| EventProcessor () | |
| Constructor. | |
| virtual | ~EventProcessor () |
| Destructor. | |
| void | process (const PathPtr &startPath, long maxEvent=0) |
| Processes the full module chain, starting with the first module in the given path. More... | |
| void | setProfileModuleName (const std::string &name) |
| Set the name of the module we want to profile. More... | |
Static Public Member Functions | |
| static void | writeToStdErr (const char msg[]) |
| async-safe method to write something to STDERR. | |
| static void | installSignalHandler (int sig, void(*fn)(int)) |
| Install a signal handler 'fn' for given signal. | |
| static void | installMainSignalHandlers (void(*fn)(int)=nullptr) |
| Install signal handler for INT, TERM and QUIT signals. More... | |
Protected Member Functions | |
| void | processInitialize (const ModulePtrList &modulePathList, bool setEventInfo=true) |
| Initializes the modules. More... | |
| void | processCore (const PathPtr &startPath, const ModulePtrList &modulePathList, long maxEvent=0, bool isInputProcess=true) |
| Processes the full module chain consisting of an arbitrary number of connected paths, starting with the first module in the specified path. More... | |
| bool | processEvent (PathIterator moduleIter, bool skipMasterModule) |
| Calls event() functions on all modules for the current event. More... | |
| void | callEvent (Module *module) |
| Calls event() on one single module, setting up logging and statistics as needed. More... | |
| void | processTerminate (const ModulePtrList &modulePathList) |
| Terminates the modules. More... | |
| void | processBeginRun (bool skipDB=false) |
| Calls the begin run methods of all modules. More... | |
| void | processEndRun () |
| Calls the end run methods of all modules. More... | |
| long | getMaximumEventNumber (long maxEvent) const |
| Calculate the maximum event number out of the argument from command line and the environment. | |
Protected Attributes | |
| const Module * | m_master |
| The master module that determines the experiment/run/event number. | |
| ModulePtrList | m_moduleList |
| List of all modules in order initialized. | |
| std::string | m_profileModuleName |
| Name of the module which should be profiled, empty if no profiling is requested. | |
| Module * | m_profileModule = nullptr |
| Adress of the module which we want to profile, nullptr if no profiling is requested. | |
| StoreObjPtr< EventMetaData > | m_eventMetaDataPtr |
| EventMetaData is used by processEvent()/processCore(). | |
| EventMetaData | m_previousEventMetaData |
| Stores state of EventMetaData before it was last changed. More... | |
| StoreObjPtr< ProcessStatistics > | m_processStatisticsPtr |
| Also used in a number of places. | |
| bool | m_inRun |
| Are we currently in a run? If yes, processEndRun() needs to do something. | |
| double | m_lastMetadataUpdate |
| Time in seconds of last call for metadata update in event loop. | |
| double | m_metadataUpdateInterval |
| Minimal time difference in seconds for metadata updates in event loop. | |
| bool | m_steerRootInputModuleOn = false |
| True if the SteerRootInputModule is in charge for event processing. | |
provides the core event processing loop.
Definition at line 29 of file EventProcessor.h.
|
protected |
Calls event() on one single module, setting up logging and statistics as needed.
| module | Module to call the event() function |
Definition at line 226 of file EventProcessor.cc.
|
static |
Install signal handler for INT, TERM and QUIT signals.
If argument is NULL, EventProcessor's own signal handler will be installed.
Definition at line 312 of file EventProcessor.cc.
| void process | ( | const PathPtr & | startPath, |
| long | maxEvent = 0 |
||
| ) |
Processes the full module chain, starting with the first module in the given path.
Processes all events for the given run number and for events from 0 to maxEvent. If maxEvent is smaller or equal 0 the maximum number check is disabled and all events are processed. If runNumber is smaller than 0, the run number has to be set externally by a module and not the given number is used.
| startPath | The processing starts with the first module of this path. |
| maxEvent | Optional: The maximum number of events that will be processed. If the number is smaller or equal 0, all events will be processed. |
Definition at line 123 of file EventProcessor.cc.
|
protected |
Calls the begin run methods of all modules.
Loops over all module instances specified in a list and calls their beginRun() method. Please note: the beginRun() method of the module which triggered the beginRun() loop will also be called.
Definition at line 467 of file EventProcessor.cc.
|
protected |
Processes the full module chain consisting of an arbitrary number of connected paths, starting with the first module in the specified path.
| startPath | The processing starts with the first module of this path. |
| modulePathList | A list of all modules which could be executed during the data processing (used for calling the beginRun() and endRun() method). |
| maxEvent | The maximum number of events that will be processed. If the number is smaller or equal 0, all events are processed. |
| isInputProcess | true when this is either the only or the input process |
Definition at line 406 of file EventProcessor.cc.
|
protected |
Calls the end run methods of all modules.
Loops over all module instances specified in a list and calls their endRun() method. Please note: the endRun() method of the module which triggered the endRun() loop will also be called.
Definition at line 501 of file EventProcessor.cc.
|
protected |
Calls event() functions on all modules for the current event.
Used by processCore.
| moduleIter | iterator of the path containing all the modules |
| skipMasterModule | skip the execution of the master module, presumably because this is the first event and it's already been done in initialize() |
Definition at line 321 of file EventProcessor.cc.
|
protected |
Initializes the modules.
Loops over all module instances specified in a list and calls their initialize() method.
| modulePathList | A list of all modules which could be executed during the data processing. |
| setEventInfo | if true the first event call of the master module will be called immidiately to load the event info right away so that it's available for subsequent modules |
Definition at line 242 of file EventProcessor.cc.
|
protected |
Terminates the modules.
Loops over all module instances in reverse order specified in a list and calls their terminate() method.
| modulePathList | A list of all modules which could be executed during the data processing. |
Definition at line 440 of file EventProcessor.cc.
|
inline |
Set the name of the module we want to profile.
| name | Name of the module as returned by getName() |
Definition at line 57 of file EventProcessor.h.
|
protected |
Stores state of EventMetaData before it was last changed.
Useful since processEndRun() needs info about which run it needs to end.
Definition at line 166 of file EventProcessor.h.