ROOT
v6-40
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
14
namespace
ROOT::Experimental::Internal::RNTupleAttributes
{
15
16
/*
17
Attribute RNTuples have a fixed Model schema that looks like this:
18
19
+-----------+
20
| MetaModel |
21
+-----+-----+
22
|
23
+--------------+---------------+
24
| | |
25
+------+------+ +-----+------+ +------+------+
26
| _rangeStart | | _rangeLen | | _userData |
27
+-------------+ +------------+ +------+------+
28
|
29
+-----+-----+
30
| UserModel |
31
+-----------+
32
33
Where "_userData" is an untyped record field containing all the user-defined Model's fields
34
as its children.
35
36
The order and name of the meta Model's fields is defined by the schema version.
37
*/
38
39
inline
const
std::uint16_t
kSchemaVersionMajor
= 1;
40
inline
const
std::uint16_t
kSchemaVersionMinor
= 0;
41
42
enum
: std::size_t {
43
kMetaFieldIndex_RangeStart
,
44
kMetaFieldIndex_RangeLen
,
45
kMetaFieldIndex_UserData
,
46
47
kMetaFieldIndex_Count
48
};
49
inline
constexpr
const
char
*
kMetaFieldNames
[] = {
"_rangeStart"
,
"_rangeLen"
,
"_userData"
};
50
static_assert
(
kMetaFieldIndex_Count
==
sizeof
(
kMetaFieldNames
) /
sizeof
(
kMetaFieldNames
[0]));
51
52
}
// namespace ROOT::Experimental::Internal::RNTupleAttributes
53
54
#endif
TRangeDynCast
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Definition
TCollection.h:360
ROOT::Experimental::Internal::RNTupleAttributes
Definition
RNTupleAttrUtils.hxx:14
ROOT::Experimental::Internal::RNTupleAttributes::kMetaFieldIndex_RangeLen
@ kMetaFieldIndex_RangeLen
Definition
RNTupleAttrUtils.hxx:44
ROOT::Experimental::Internal::RNTupleAttributes::kMetaFieldIndex_Count
@ kMetaFieldIndex_Count
Definition
RNTupleAttrUtils.hxx:47
ROOT::Experimental::Internal::RNTupleAttributes::kMetaFieldIndex_UserData
@ kMetaFieldIndex_UserData
Definition
RNTupleAttrUtils.hxx:45
ROOT::Experimental::Internal::RNTupleAttributes::kMetaFieldIndex_RangeStart
@ kMetaFieldIndex_RangeStart
Definition
RNTupleAttrUtils.hxx:43
ROOT::Experimental::Internal::RNTupleAttributes::kSchemaVersionMajor
const std::uint16_t kSchemaVersionMajor
Definition
RNTupleAttrUtils.hxx:39
ROOT::Experimental::Internal::RNTupleAttributes::kSchemaVersionMinor
const std::uint16_t kSchemaVersionMinor
Definition
RNTupleAttrUtils.hxx:40
ROOT::Experimental::Internal::RNTupleAttributes::kMetaFieldNames
constexpr const char * kMetaFieldNames[]
Definition
RNTupleAttrUtils.hxx:49
tree
ntuple
inc
ROOT
RNTupleAttrUtils.hxx
ROOTv6-40 - Reference Guide Generated on Fri Apr 24 2026 04:23:56 (GVA Time) using Doxygen 1.10.0