Logo ROOT   master
Reference Guide
ROOT::Experimental::RNTupleModel Class Reference


The RNTupleModel encapulates the schema of an ntuple.

The ntuple model comprises a collection of hierarchically organized fields. From a frozen model, "entries" can be extracted. For convenience, the model provides a default entry. Models have a unique model identifier that faciliates checking whether entries are compatible with it (i.e.: have been extracted from that model). A model needs to be frozen before it can be used to create a live ntuple.

Definition at line 47 of file RNTupleModel.hxx.

Public Member Functions

 RNTupleModel ()
 
 RNTupleModel (const RNTupleModel &)=delete
 
 ~RNTupleModel ()=default
 
void AddField (std::unique_ptr< Detail::RFieldBase > field)
 Adds a field whose type is not known at compile time. Thus there is no shared pointer returned. More...
 
template<typename T >
void AddField (std::string_view fieldName, T *fromWhere)
 
RNTupleModelClone ()
 
std::unique_ptr< REntryCreateEntry ()
 
template<typename T >
T * Get (std::string_view fieldName)
 
REntryGetDefaultEntry ()
 
std::string GetDescription () const
 
RFieldRootGetRootField () const
 
RNTupleUuid GetUuid () const
 
RNTupleVersion GetVersion () const
 
std::shared_ptr< RCollectionNTupleMakeCollection (std::string_view fieldName, std::unique_ptr< RNTupleModel > collectionModel)
 Ingests a model for a sub collection and attaches it to the current model. More...
 
template<typename T , typename... ArgsT>
std::shared_ptr< T > MakeField (std::string_view fieldName, ArgsT &&... args)
 Creates a new field and a corresponding tree value that is managed by a shared pointer. More...
 
RNTupleModeloperator= (const RNTupleModel &)=delete
 

Static Public Member Functions

static std::unique_ptr< RNTupleModelCreate ()
 

Private Attributes

std::unique_ptr< REntryfDefaultEntry
 Contains field values corresponding to the created top-level fields. More...
 
std::unique_ptr< RFieldRootfRootField
 Hierarchy of fields consisting of simple types and collections (sub trees) More...
 

#include <ROOT/RNTupleModel.hxx>

Constructor & Destructor Documentation

◆ RNTupleModel() [1/2]

ROOT::Experimental::RNTupleModel::RNTupleModel ( )

Definition at line 27 of file RNTupleModel.cxx.

◆ RNTupleModel() [2/2]

ROOT::Experimental::RNTupleModel::RNTupleModel ( const RNTupleModel )
delete

◆ ~RNTupleModel()

ROOT::Experimental::RNTupleModel::~RNTupleModel ( )
default

Member Function Documentation

◆ AddField() [1/2]

void ROOT::Experimental::RNTupleModel::AddField ( std::unique_ptr< Detail::RFieldBase field)

Adds a field whose type is not known at compile time. Thus there is no shared pointer returned.

Definition at line 42 of file RNTupleModel.cxx.

◆ AddField() [2/2]

template<typename T >
void ROOT::Experimental::RNTupleModel::AddField ( std::string_view  fieldName,
T *  fromWhere 
)
inline

Definition at line 75 of file RNTupleModel.hxx.

◆ Clone()

ROOT::Experimental::RNTupleModel * ROOT::Experimental::RNTupleModel::Clone ( )

Definition at line 32 of file RNTupleModel.cxx.

◆ Create()

static std::unique_ptr<RNTupleModel> ROOT::Experimental::RNTupleModel::Create ( )
inlinestatic

Definition at line 60 of file RNTupleModel.hxx.

◆ CreateEntry()

std::unique_ptr< ROOT::Experimental::REntry > ROOT::Experimental::RNTupleModel::CreateEntry ( )

Definition at line 59 of file RNTupleModel.cxx.

◆ Get()

template<typename T >
T* ROOT::Experimental::RNTupleModel::Get ( std::string_view  fieldName)
inline

Definition at line 82 of file RNTupleModel.hxx.

◆ GetDefaultEntry()

REntry* ROOT::Experimental::RNTupleModel::GetDefaultEntry ( )
inline

Definition at line 92 of file RNTupleModel.hxx.

◆ GetDescription()

std::string ROOT::Experimental::RNTupleModel::GetDescription ( ) const
inline

Definition at line 95 of file RNTupleModel.hxx.

◆ GetRootField()

RFieldRoot* ROOT::Experimental::RNTupleModel::GetRootField ( ) const
inline

Definition at line 91 of file RNTupleModel.hxx.

◆ GetUuid()

RNTupleUuid ROOT::Experimental::RNTupleModel::GetUuid ( ) const
inline

Definition at line 96 of file RNTupleModel.hxx.

◆ GetVersion()

RNTupleVersion ROOT::Experimental::RNTupleModel::GetVersion ( ) const
inline

Definition at line 94 of file RNTupleModel.hxx.

◆ MakeCollection()

std::shared_ptr< ROOT::Experimental::RCollectionNTuple > ROOT::Experimental::RNTupleModel::MakeCollection ( std::string_view  fieldName,
std::unique_ptr< RNTupleModel collectionModel 
)

Ingests a model for a sub collection and attaches it to the current model.

Definition at line 49 of file RNTupleModel.cxx.

◆ MakeField()

template<typename T , typename... ArgsT>
std::shared_ptr<T> ROOT::Experimental::RNTupleModel::MakeField ( std::string_view  fieldName,
ArgsT &&...  args 
)
inline

Creates a new field and a corresponding tree value that is managed by a shared pointer.

Definition at line 64 of file RNTupleModel.hxx.

◆ operator=()

RNTupleModel& ROOT::Experimental::RNTupleModel::operator= ( const RNTupleModel )
delete

Member Data Documentation

◆ fDefaultEntry

std::unique_ptr<REntry> ROOT::Experimental::RNTupleModel::fDefaultEntry
private

Contains field values corresponding to the created top-level fields.

Definition at line 51 of file RNTupleModel.hxx.

◆ fRootField

std::unique_ptr<RFieldRoot> ROOT::Experimental::RNTupleModel::fRootField
private

Hierarchy of fields consisting of simple types and collections (sub trees)

Definition at line 49 of file RNTupleModel.hxx.


The documentation for this class was generated from the following files: