Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RNTupleAttrUtils.hxx
Go to the documentation of this file.
1/// \file ROOT/RNTupleAttrUtils.hxx
2/// \ingroup NTuple
3/// \author Giacomo Parolini <giacomo.parolini@cern.ch>
4/// \date 2026-03-10
5/// \warning This is part of the ROOT 7 prototype! It will change without notice. It might trigger earthquakes. Feedback
6/// is welcome!
7
8#ifndef ROOT7_RNTuple_Attr_Utils
9#define ROOT7_RNTuple_Attr_Utils
10
11#include <cstddef>
12#include <cstdint>
13
15
16/*
17Attribute RNTuples have a fixed Model schema that looks like this:
18
19 +-----------+
20 | MetaModel |
21 +-----+-----+
22 |
23 +--------------+---------------+
24 | | |
25+------+------+ +-----+------+ +------+------+
26| _rangeStart | | _rangeLen | | _userModel |
27+-------------+ +------------+ +------+------+
28 |
29 +-----+-----+
30 | UserModel |
31 +-----------+
32
33Where "_userModel" is an untyped record field containing all the user-defined Model's fields
34as its children.
35
36The order and name of the meta Model's fields is defined by the schema version.
37*/
38
39inline const std::uint16_t kSchemaVersionMajor = 1;
40inline const std::uint16_t kSchemaVersionMinor = 0;
41
42inline const char *const kRangeStartName = "_rangeStart";
43inline const char *const kRangeLenName = "_rangeLen";
44inline const char *const kUserModelName = "_userModel";
45
46inline constexpr std::size_t kRangeStartIndex = 0;
47inline constexpr std::size_t kRangeLenIndex = 1;
48inline constexpr std::size_t kUserModelIndex = 2;
49
50} // namespace ROOT::Experimental::Internal::RNTupleAttributes
51
52#endif