allpix::ROOTObjectWriterModule

Module: Modules

Module to write object data to ROOT trees in file for persistent storage. More…

#include <ROOTObjectWriterModule.hpp>

Inherits from allpix::SequentialModule, allpix::Module

Public Functions

Name
ROOTObjectWriterModule(Configuration & config, Messenger * messenger, GeometryManager * geo_mgr)
Constructor for this unique module.
~ROOTObjectWriterModule() override
Destructor deletes the internal objects used to build the ROOT Tree.
bool filter(const std::shared_ptr< BaseMessage > & message, const std::string & name) const
Receive a single message containing objects of arbitrary type.
virtual void initialize() override
Opens the file to write the objects to.
virtual void run(Event * event) override
Writes the objects fetched to their specific tree, constructing trees on the fly for new objects.
virtual void finalize() override
Add the main configuration and the detector setup to the data file and write it, also write statistics information.

Additional inherited members

Public Functions inherited from allpix::SequentialModule

Name
SequentialModule(Configuration & config)
SequentialModule(Configuration & config, std::shared_ptr< Detector > detector)

Protected Functions inherited from allpix::SequentialModule

Name
void waive_sequence_requirement(bool waive =true)
Release strict sequence processing requirement.

Friends inherited from allpix::SequentialModule

Name
class Event
class ModuleManager
class Messenger

Public Functions inherited from allpix::Module

Name
Module(const Module & ) =delete
Copying a module is not allowed.
Module & operator=(const Module & ) =delete
Copying a module is not allowed.
Module(Module && ) =delete
Disallow move behaviour (not possible with references)
Module & operator=(Module && ) =delete
Disallow move behaviour (not possible with references)
Module(Configuration & config)
Base constructor for unique modules.
Module(Configuration & config, std::shared_ptr< Detector > detector)
Base constructor for detector modules.
virtual ~Module()
Essential virtual destructor.
std::shared_ptr< Detector > getDetector() const
Get the detector linked to this module.
std::string getUniqueName() const
Get the unique name of this module.
std::string createOutputFile(const std::string & pathname, const std::string & extension ="", bool global =false, bool delete_file =false)
Create and return an absolute path to be used for output from a relative path.
TDirectory * getROOTDirectory() const
Get ROOT directory which should be used to output histograms et cetera.
ConfigManager * getConfigManager() const
Get the config manager object to allow to read the global and other module configurations.
bool multithreadingEnabled() const
Returns if multithreading of this module is enabled.
virtual void initializeThread()
Initialize the module for each thread after the global initialization.
virtual void finalizeThread()
Finalize the module after the event sequence for each thread.

Protected Functions inherited from allpix::Module

Name
void allow_multithreading()
Enable multithreading for this module.
Configuration & get_configuration()
Get the module configuration for internal use.

Protected Attributes inherited from allpix::Module

Name
Configuration & config_

Friends inherited from allpix::Module

Name
class Event
class ModuleManager
class Messenger
class LocalMessenger

Detailed Description

class allpix::ROOTObjectWriterModule;

Module to write object data to ROOT trees in file for persistent storage.

Listens to all objects dispatched in the framework. Creates a tree as soon as a new type of object is encountered and saves the data in those objects to tree for every event. The tree name is the class name of the object. A separate branch is created for every combination of detector name and message name that outputs this object.

Public Functions Documentation

function ROOTObjectWriterModule

ROOTObjectWriterModule(
    Configuration & config,
    Messenger * messenger,
    GeometryManager * geo_mgr
)

Constructor for this unique module.

Parameters:

  • config Configuration object for this module as retrieved from the steering file
  • messenger Pointer to the messenger object to allow binding to messages on the bus
  • geo_mgr Pointer to the geometry manager, containing the detectors

function ~ROOTObjectWriterModule

~ROOTObjectWriterModule() override

Destructor deletes the internal objects used to build the ROOT Tree.

Note: Objects cannot be stored in smart pointers due to internal ROOT logic

function filter

bool filter(
    const std::shared_ptr< BaseMessage > & message,
    const std::string & name
) const

Receive a single message containing objects of arbitrary type.

Parameters:

  • message Message dispatched in the framework
  • name Name of the message

function initialize

virtual void initialize() override

Opens the file to write the objects to.

Reimplements: allpix::Module::initialize

function run

virtual void run(
    Event * event
) override

Writes the objects fetched to their specific tree, constructing trees on the fly for new objects.

Reimplements: allpix::Module::run

function finalize

virtual void finalize() override

Add the main configuration and the detector setup to the data file and write it, also write statistics information.

Reimplements: allpix::Module::finalize


Updated on 2024-12-13 at 08:31:37 +0000