The Gaudi Framework  v41r0 (bdbe7744)
Loading...
Searching...
No Matches
Gaudi::NTuple::SimpleWriter< std::tuple< OUTPUTs... >(const INPUTs &...), Traits_ > Struct Template Reference

Specialized Algorithm for NTuple writing. More...

#include </builds/gaudi/Gaudi/GaudiUtils/include/Gaudi/NTuple/Writer.h>

Inheritance diagram for Gaudi::NTuple::SimpleWriter< std::tuple< OUTPUTs... >(const INPUTs &...), Traits_ >:
Collaboration diagram for Gaudi::NTuple::SimpleWriter< std::tuple< OUTPUTs... >(const INPUTs &...), Traits_ >:

Public Types

using Consumer_t = FileHolder<Gaudi::Functional::Consumer<void( const INPUTs&... ), Traits_>>

Public Member Functions

virtual StatusCode initialize () override
void fillTree (const std::tuple< OUTPUTs... > &data) const
virtual StatusCode finalize () override
 SimpleWriter ()=delete
Public Member Functions inherited from Gaudi::NTuple::FileHolder< Gaudi::Functional::Consumer< void(const INPUTs &...), Traits_ > >
TFile * file ()

Public Attributes

Gaudi::Property< std::string > m_ntupleTname { this, "NTupleName", this->name(), "Name of the TTree." }
Gaudi::Property< std::array< std::string, sizeof...(OUTPUTs)> > m_branchNames

Private Attributes

Wrapper< OUTPUTs... > m_ntuple

Detailed Description

template<typename... OUTPUTs, typename... INPUTs, typename Traits_>
struct Gaudi::NTuple::SimpleWriter< std::tuple< OUTPUTs... >(const INPUTs &...), Traits_ >

Specialized Algorithm for NTuple writing.

Provides the functionality for handling a single NTuple in an algorithm If several NTuples are used in parallel, one should use the FileHolder and Wrapper classes directly

An algorithm inheriting from this class needs to implement the operator() and call fillTree as many times as needed per event. Note that fillTree is internally synchronized, so calling it is thread safe. The main Properties are :

  • OutputFile : the entry in the FileSvc saying into which file the NTuple should be written
  • NTupleName : the name of the NTuple
  • BranchNames : list of names of the NTuple Branches/Columns. Must match the number of items in the OUTPUTS parameter pack
Template Parameters
OUTPUTsVariadic template parameters representing output data types.
INPUTsVariadic template parameters representing input data types.

Definition at line 168 of file Writer.h.

Member Typedef Documentation

◆ Consumer_t

template<typename... OUTPUTs, typename... INPUTs, typename Traits_>
using Gaudi::NTuple::SimpleWriter< std::tuple< OUTPUTs... >(const INPUTs &...), Traits_ >::Consumer_t = FileHolder<Gaudi::Functional::Consumer<void( const INPUTs&... ), Traits_>>

Definition at line 170 of file Writer.h.

Constructor & Destructor Documentation

◆ SimpleWriter()

Gaudi::NTuple::SimpleWriter< std::tuple< OUTPUTs... >, Traits_ >::SimpleWriter ( )
delete

Member Function Documentation

◆ fillTree()

template<typename... OUTPUTs, typename... INPUTs, typename Traits_>
void Gaudi::NTuple::SimpleWriter< std::tuple< OUTPUTs... >(const INPUTs &...), Traits_ >::fillTree ( const std::tuple< OUTPUTs... > & data) const
inline

Definition at line 186 of file Writer.h.

186{ m_ntuple.fillTree( data ); }
Base template for NTuple::Writer.
Definition Writer.h:145

◆ finalize()

template<typename... OUTPUTs, typename... INPUTs, typename Traits_>
virtual StatusCode Gaudi::NTuple::SimpleWriter< std::tuple< OUTPUTs... >(const INPUTs &...), Traits_ >::finalize ( )
inlineoverridevirtual

Definition at line 189 of file Writer.h.

◆ initialize()

template<typename... OUTPUTs, typename... INPUTs, typename Traits_>
virtual StatusCode Gaudi::NTuple::SimpleWriter< std::tuple< OUTPUTs... >(const INPUTs &...), Traits_ >::initialize ( )
inlineoverridevirtual

Reimplemented from Gaudi::NTuple::FileHolder< Gaudi::Functional::Consumer< void(const INPUTs &...), Traits_ > >.

Definition at line 178 of file Writer.h.

178 {
179 return Consumer_t::initialize().andThen( [this]() {
180 m_ntuple.initTree( *this->file(), this->name(), m_ntupleTname.value(), m_branchNames.value() );
181 return StatusCode::SUCCESS;
182 } );
183 }
Gaudi::Property< std::array< std::string, sizeof...(OUTPUTs)> > m_branchNames
Definition Writer.h:174

Member Data Documentation

◆ m_branchNames

template<typename... OUTPUTs, typename... INPUTs, typename Traits_>
Gaudi::Property<std::array<std::string, sizeof...( OUTPUTs )> > Gaudi::NTuple::SimpleWriter< std::tuple< OUTPUTs... >(const INPUTs &...), Traits_ >::m_branchNames
Initial value:
{
this, "BranchNames", {}, "Names of the tree branches." }

Definition at line 174 of file Writer.h.

174 {
175 this, "BranchNames", {}, "Names of the tree branches." }; // Names for the tree branches

◆ m_ntuple

template<typename... OUTPUTs, typename... INPUTs, typename Traits_>
Wrapper<OUTPUTs...> Gaudi::NTuple::SimpleWriter< std::tuple< OUTPUTs... >(const INPUTs &...), Traits_ >::m_ntuple
private

Definition at line 195 of file Writer.h.

◆ m_ntupleTname

template<typename... OUTPUTs, typename... INPUTs, typename Traits_>
Gaudi::Property<std::string> Gaudi::NTuple::SimpleWriter< std::tuple< OUTPUTs... >(const INPUTs &...), Traits_ >::m_ntupleTname { this, "NTupleName", this->name(), "Name of the TTree." }

Definition at line 173 of file Writer.h.

173{ this, "NTupleName", this->name(), "Name of the TTree." };

The documentation for this struct was generated from the following file:
  • GaudiUtils/include/Gaudi/NTuple/Writer.h