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 | |
template<typename T > | |
void | AddField (std::string_view fieldName, T *fromWhere) |
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... | |
RNTupleModel * | Clone () |
std::unique_ptr< REntry > | CreateEntry () |
template<typename T > | |
T * | Get (std::string_view fieldName) |
REntry * | GetDefaultEntry () |
std::string | GetDescription () const |
RFieldRoot * | GetRootField () const |
RNTupleUuid | GetUuid () const |
RNTupleVersion | GetVersion () const |
std::shared_ptr< RCollectionNTuple > | MakeCollection (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... | |
RNTupleModel & | operator= (const RNTupleModel &)=delete |
Static Public Member Functions | |
static std::unique_ptr< RNTupleModel > | Create () |
Private Attributes | |
std::unique_ptr< REntry > | fDefaultEntry |
Contains field values corresponding to the created top-level fields. More... | |
std::unique_ptr< RFieldRoot > | fRootField |
Hierarchy of fields consisting of simple types and collections (sub trees) More... | |
#include <ROOT/RNTupleModel.hxx>
ROOT::Experimental::RNTupleModel::RNTupleModel | ( | ) |
Definition at line 27 of file RNTupleModel.cxx.
|
delete |
|
default |
|
inline |
Definition at line 75 of file RNTupleModel.hxx.
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.
ROOT::Experimental::RNTupleModel * ROOT::Experimental::RNTupleModel::Clone | ( | ) |
Definition at line 32 of file RNTupleModel.cxx.
|
inlinestatic |
Definition at line 60 of file RNTupleModel.hxx.
std::unique_ptr< ROOT::Experimental::REntry > ROOT::Experimental::RNTupleModel::CreateEntry | ( | ) |
Definition at line 59 of file RNTupleModel.cxx.
|
inline |
Definition at line 82 of file RNTupleModel.hxx.
|
inline |
Definition at line 92 of file RNTupleModel.hxx.
|
inline |
Definition at line 95 of file RNTupleModel.hxx.
|
inline |
Definition at line 91 of file RNTupleModel.hxx.
|
inline |
Definition at line 96 of file RNTupleModel.hxx.
|
inline |
Definition at line 94 of file RNTupleModel.hxx.
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.
|
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.
|
delete |
|
private |
Contains field values corresponding to the created top-level fields.
Definition at line 51 of file RNTupleModel.hxx.
|
private |
Hierarchy of fields consisting of simple types and collections (sub trees)
Definition at line 49 of file RNTupleModel.hxx.