16#ifndef ROOT7_RNTupleModel
17#define ROOT7_RNTupleModel
31namespace Experimental {
33class RCollectionNTuple;
60 static std::unique_ptr<RNTupleModel>
Create() {
return std::make_unique<RNTupleModel>(); }
63 template <
typename T,
typename... ArgsT>
65 auto field = std::make_unique<RField<T>>(fieldName);
66 auto ptr =
fDefaultEntry->AddValue<
T>(field.get(), std::forward<ArgsT>(args)...);
72 void AddField(std::unique_ptr<Detail::RFieldBase> field);
76 auto field = std::make_unique<RField<T>>(fieldName);
89 std::unique_ptr<RNTupleModel> collectionModel);
The REntry is a collection of values in an ntuple corresponding to a complete row in the data set.
The container field for an ntuple model, which itself has no physical representation.
The RNTupleModel encapulates the schema of an ntuple.
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.
T * Get(std::string_view fieldName)
RNTupleModel(const RNTupleModel &)=delete
std::string GetDescription() const
REntry * GetDefaultEntry()
std::unique_ptr< RFieldRoot > fRootField
Hierarchy of fields consisting of simple types and collections (sub trees)
RFieldRoot * GetRootField() const
void AddField(std::string_view fieldName, T *fromWhere)
std::unique_ptr< REntry > CreateEntry()
std::unique_ptr< REntry > fDefaultEntry
Contains field values corresponding to the created top-level fields.
RNTupleUuid GetUuid() const
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.
RNTupleVersion GetVersion() const
static std::unique_ptr< RNTupleModel > Create()
RNTupleModel & operator=(const RNTupleModel &)=delete
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.
For forward and backward compatibility, attach version information to the consitituents of the file f...
basic_string_view< char > string_view
std::string RNTupleUuid
Every NTuple is identified by a UUID. TODO(jblomer): should this be a TUUID?