Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
ROOT::RNTupleViewBase< T > Class Template Reference

template<typename T>
class ROOT::RNTupleViewBase< T >

An RNTupleView provides read-only access to a single field of an RNTuple.

Template Parameters
TThe type of the object that will be read by the view; can be void if unknown at compile time.

The view owns a field and its underlying columns in order to fill an RField::RValue object with data. Data can be accessed by index. For top-level fields, the index refers to the entry number. Fields that are part of nested collections have global index numbers that are derived from their parent indexes (

See also
GetFieldRange()).

View can only be created by a reader or by a collection view.

Example: read an RNTuple's field with a view**

auto reader = RNTupleReader::Open("myNtuple", "myntuple.root");
auto viewFoo = reader->GetView<float>("foo");
for (auto idx : reader->GetEntryRange()) {
float foo = viewFoo(idx); // read field "foo" of the `idx`-th entry
std::cout << foo << "\n";
}
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
static std::unique_ptr< RNTupleReader > Open(std::string_view ntupleName, std::string_view storage, const ROOT::RNTupleReadOptions &options=ROOT::RNTupleReadOptions())
Open an RNTuple for reading.

Example: read an RNTuple's collection subfield with a view**

auto reader = RNTupleReader::Open("myNtuple", "myntuple.root");
// Assuming "v" is a std::vector<int>:
auto view = reader->GetView<int>("v._0");
// Effectively flattens all fields "v" in all entries and reads their elements.
for (auto idx : view.GetFieldRange()) {
int x = view(idx);
std::cout << x << "\n";
}
ROOT::RNTupleGlobalRange GetFieldRange() const
Returns the global field range of this view.
Double_t x[n]
Definition legend1.C:17

Definition at line 85 of file RNTupleView.hxx.

Public Member Functions

 RNTupleViewBase (const RNTupleViewBase &other)=delete
 
 RNTupleViewBase (RNTupleViewBase &&other)=default
 
 ~RNTupleViewBase ()=default
 
void Bind (std::shared_ptr< T > objPtr)
 
void BindRawPtr (T *rawPtr)
 
ROOT::RFieldBase::RBulk CreateBulk ()
 
void EmplaceNew ()
 
const ROOT::RFieldBaseGetField () const
 
ROOT::RNTupleGlobalRange GetFieldRange () const
 Returns the global field range of this view.
 
const ROOT::RFieldBase::RValueGetValue () const
 
RNTupleViewBaseoperator= (const RNTupleViewBase &other)=delete
 
RNTupleViewBaseoperator= (RNTupleViewBase &&other)=default
 

Protected Member Functions

 RNTupleViewBase (std::unique_ptr< ROOT::RFieldBase > field, ROOT::RNTupleGlobalRange range)
 
 RNTupleViewBase (std::unique_ptr< ROOT::RFieldBase > field, ROOT::RNTupleGlobalRange range, std::shared_ptr< T > objPtr)
 
 RNTupleViewBase (std::unique_ptr< ROOT::RFieldBase > field, ROOT::RNTupleGlobalRange range, T *rawPtr)
 

Static Protected Member Functions

static std::unique_ptr< ROOT::RFieldBaseCreateField (ROOT::DescriptorId_t fieldId, ROOT::Experimental::Internal::RPageSource &pageSource)
 

Protected Attributes

std::unique_ptr< ROOT::RFieldBasefField
 
ROOT::RNTupleGlobalRange fFieldRange
 
ROOT::RFieldBase::RValue fValue
 

#include <ROOT/RNTupleView.hxx>

Inheritance diagram for ROOT::RNTupleViewBase< T >:
[legend]

Constructor & Destructor Documentation

◆ RNTupleViewBase() [1/5]

template<typename T >
ROOT::RNTupleViewBase< T >::RNTupleViewBase ( std::unique_ptr< ROOT::RFieldBase > field,
ROOT::RNTupleGlobalRange range )
inlineprotected

Definition at line 109 of file RNTupleView.hxx.

◆ RNTupleViewBase() [2/5]

template<typename T >
ROOT::RNTupleViewBase< T >::RNTupleViewBase ( std::unique_ptr< ROOT::RFieldBase > field,
ROOT::RNTupleGlobalRange range,
std::shared_ptr< T > objPtr )
inlineprotected

Definition at line 114 of file RNTupleView.hxx.

◆ RNTupleViewBase() [3/5]

template<typename T >
ROOT::RNTupleViewBase< T >::RNTupleViewBase ( std::unique_ptr< ROOT::RFieldBase > field,
ROOT::RNTupleGlobalRange range,
T * rawPtr )
inlineprotected

Definition at line 119 of file RNTupleView.hxx.

◆ RNTupleViewBase() [4/5]

template<typename T >
ROOT::RNTupleViewBase< T >::RNTupleViewBase ( const RNTupleViewBase< T > & other)
delete

◆ RNTupleViewBase() [5/5]

template<typename T >
ROOT::RNTupleViewBase< T >::RNTupleViewBase ( RNTupleViewBase< T > && other)
default

◆ ~RNTupleViewBase()

template<typename T >
ROOT::RNTupleViewBase< T >::~RNTupleViewBase ( )
default

Member Function Documentation

◆ Bind()

template<typename T >
void ROOT::RNTupleViewBase< T >::Bind ( std::shared_ptr< T > objPtr)
inline

Definition at line 150 of file RNTupleView.hxx.

◆ BindRawPtr()

template<typename T >
void ROOT::RNTupleViewBase< T >::BindRawPtr ( T * rawPtr)
inline

Definition at line 151 of file RNTupleView.hxx.

◆ CreateBulk()

template<typename T >
ROOT::RFieldBase::RBulk ROOT::RNTupleViewBase< T >::CreateBulk ( )
inline

Definition at line 134 of file RNTupleView.hxx.

◆ CreateField()

template<typename T >
static std::unique_ptr< ROOT::RFieldBase > ROOT::RNTupleViewBase< T >::CreateField ( ROOT::DescriptorId_t fieldId,
ROOT::Experimental::Internal::RPageSource & pageSource )
inlinestaticprotected

Definition at line 92 of file RNTupleView.hxx.

◆ EmplaceNew()

template<typename T >
void ROOT::RNTupleViewBase< T >::EmplaceNew ( )
inline

Definition at line 152 of file RNTupleView.hxx.

◆ GetField()

template<typename T >
const ROOT::RFieldBase & ROOT::RNTupleViewBase< T >::GetField ( ) const
inline

Definition at line 133 of file RNTupleView.hxx.

◆ GetFieldRange()

template<typename T >
ROOT::RNTupleGlobalRange ROOT::RNTupleViewBase< T >::GetFieldRange ( ) const
inline

Returns the global field range of this view.

This may differ from the RNTuple's entry range in case of subfields and can be used to iterate over all the concatenated elements of the subfield without caring which entry they belong to. Throws an RException if the underlying field of this view is empty, i.e. if it's a class or record field with no associated columns.

Definition at line 142 of file RNTupleView.hxx.

◆ GetValue()

template<typename T >
const ROOT::RFieldBase::RValue & ROOT::RNTupleViewBase< T >::GetValue ( ) const
inline

Definition at line 136 of file RNTupleView.hxx.

◆ operator=() [1/2]

template<typename T >
RNTupleViewBase & ROOT::RNTupleViewBase< T >::operator= ( const RNTupleViewBase< T > & other)
delete

◆ operator=() [2/2]

template<typename T >
RNTupleViewBase & ROOT::RNTupleViewBase< T >::operator= ( RNTupleViewBase< T > && other)
default

Member Data Documentation

◆ fField

template<typename T >
std::unique_ptr<ROOT::RFieldBase> ROOT::RNTupleViewBase< T >::fField
protected

Definition at line 87 of file RNTupleView.hxx.

◆ fFieldRange

template<typename T >
ROOT::RNTupleGlobalRange ROOT::RNTupleViewBase< T >::fFieldRange
protected

Definition at line 88 of file RNTupleView.hxx.

◆ fValue

template<typename T >
ROOT::RFieldBase::RValue ROOT::RNTupleViewBase< T >::fValue
protected

Definition at line 89 of file RNTupleView.hxx.

  • tree/ntuple/v7/inc/ROOT/RNTupleView.hxx