Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
ROOT::Experimental::RNTupleChainProcessor Class Reference

Processor specialization for vertically combined (chained) RNTupleProcessors.

Definition at line 483 of file RNTupleProcessor.hxx.

Private Member Functions

 RNTupleChainProcessor (std::vector< std::unique_ptr< RNTupleProcessor > > processors, std::string_view processorName, std::unique_ptr< ROOT::RNTupleModel > model)
 Construct a new RNTupleChainProcessor.
 
ROOT::NTupleSize_t GetNEntries () final
 Get the total number of entries in this processor.
 
ROOT::NTupleSize_t LoadEntry (ROOT::NTupleSize_t entryNumber) final
 Load the entry identified by the provided (global) entry number (i.e., considering all RNTuples in this processor).
 
void SetEntryPointers (const ROOT::REntry &) final
 

Private Attributes

std::vector< ROOT::NTupleSize_tfInnerNEntries
 
std::vector< std::unique_ptr< RNTupleProcessor > > fInnerProcessors
 

Friends

class RNTupleProcessor
 

Additional Inherited Members

- Public Member Functions inherited from ROOT::Experimental::RNTupleProcessor
 RNTupleProcessor (const RNTupleProcessor &)=delete
 
 RNTupleProcessor (RNTupleProcessor &&)=delete
 
virtual ~RNTupleProcessor ()=default
 
RIterator begin ()
 
RIterator end ()
 
ROOT::NTupleSize_t GetCurrentEntryNumber () const
 Get the entry number that is currently being processed.
 
std::size_t GetCurrentProcessorNumber () const
 Get the number of the inner processor currently being read.
 
const ROOT::REntryGetEntry () const
 Get a reference to the entry used by the processor.
 
const ROOT::RNTupleModelGetModel () const
 Get the model used by the processor.
 
ROOT::NTupleSize_t GetNEntriesProcessed () const
 Get the total number of entries processed so far.
 
const std::string & GetProcessorName () const
 Get the name of the processor.
 
RNTupleProcessoroperator= (const RNTupleProcessor &)=delete
 
RNTupleProcessoroperator= (RNTupleProcessor &&)=delete
 
- Static Public Member Functions inherited from ROOT::Experimental::RNTupleProcessor
static std::unique_ptr< RNTupleProcessorCreate (RNTupleOpenSpec ntuple, std::string_view processorName, std::unique_ptr< ROOT::RNTupleModel > model=nullptr)
 Create an RNTupleProcessor for a single RNTuple.
 
static std::unique_ptr< RNTupleProcessorCreate (RNTupleOpenSpec ntuple, std::unique_ptr< ROOT::RNTupleModel > model=nullptr)
 Create an RNTupleProcessor for a single RNTuple.
 
static std::unique_ptr< RNTupleProcessorCreateChain (std::vector< RNTupleOpenSpec > ntuples, std::string_view processorName, std::unique_ptr< ROOT::RNTupleModel > model=nullptr)
 Create an RNTupleProcessor for a chain (i.e., a vertical combination) of RNTuples.
 
static std::unique_ptr< RNTupleProcessorCreateChain (std::vector< RNTupleOpenSpec > ntuples, std::unique_ptr< ROOT::RNTupleModel > model=nullptr)
 Create an RNTupleProcessor for a chain (i.e., a vertical combination) of RNTuples.
 
static std::unique_ptr< RNTupleProcessorCreateChain (std::vector< std::unique_ptr< RNTupleProcessor > > innerProcessors, std::string_view processorName, std::unique_ptr< ROOT::RNTupleModel > model=nullptr)
 Create an RNTupleProcessor for a chain (i.e., a vertical combination) of other RNTupleProcessors.
 
static std::unique_ptr< RNTupleProcessorCreateChain (std::vector< std::unique_ptr< RNTupleProcessor > > innerProcessors, std::unique_ptr< ROOT::RNTupleModel > model=nullptr)
 Create an RNTupleProcessor for a chain (i.e., a vertical combination) of other RNTupleProcessors.
 
static std::unique_ptr< RNTupleProcessorCreateJoin (const RNTupleOpenSpec &primaryNTuple, const std::vector< RNTupleOpenSpec > &auxNTuples, const std::vector< std::string > &joinFields, std::string_view processorName, std::unique_ptr< ROOT::RNTupleModel > primaryModel=nullptr, std::vector< std::unique_ptr< ROOT::RNTupleModel > > auxModels={})
 Create an RNTupleProcessor for a join (i.e., a horizontal combination) of RNTuples.
 
static std::unique_ptr< RNTupleProcessorCreateJoin (const RNTupleOpenSpec &primaryNTuple, const std::vector< RNTupleOpenSpec > &auxNTuples, const std::vector< std::string > &joinFields, std::unique_ptr< ROOT::RNTupleModel > primaryModel=nullptr, std::vector< std::unique_ptr< ROOT::RNTupleModel > > auxModels={})
 Create an RNTupleProcessor for a join (i.e., a horizontal combination) of RNTuples.
 
- Protected Member Functions inherited from ROOT::Experimental::RNTupleProcessor
 RNTupleProcessor (std::string_view processorName, std::unique_ptr< ROOT::RNTupleModel > model)
 Create a new base RNTupleProcessor.
 
void ConnectField (RFieldContext &fieldContext, Internal::RPageSource &pageSource, ROOT::REntry &entry)
 Create and connect a concrete field to the current page source, based on its proto field.
 
- Protected Attributes inherited from ROOT::Experimental::RNTupleProcessor
ROOT::NTupleSize_t fCurrentEntryNumber = 0
 
std::size_t fCurrentProcessorNumber = 0
 
std::unique_ptr< ROOT::REntryfEntry
 
std::unordered_map< std::string, RFieldContextfFieldContexts
 Maps the (qualified) field name to its corresponding field context.
 
std::unique_ptr< ROOT::RNTupleModelfModel
 
ROOT::NTupleSize_t fNEntries = kInvalidNTupleIndex
 Total number of entries.
 
ROOT::NTupleSize_t fNEntriesProcessed = 0
 
std::vector< RNTupleOpenSpecfNTuples
 
std::unique_ptr< Internal::RPageSourcefPageSource
 
std::string fProcessorName
 

#include <ROOT/RNTupleProcessor.hxx>

Inheritance diagram for ROOT::Experimental::RNTupleChainProcessor:
[legend]

Constructor & Destructor Documentation

◆ RNTupleChainProcessor()

ROOT::Experimental::RNTupleChainProcessor::RNTupleChainProcessor ( std::vector< std::unique_ptr< RNTupleProcessor > > processors,
std::string_view processorName,
std::unique_ptr< ROOT::RNTupleModel > model )
private

Construct a new RNTupleChainProcessor.

Parameters
[in]ntuplesThe source specification (name and storage location) for each RNTuple to process.
[in]processorNameName of the processor. Unless specified otherwise in RNTupleProcessor::CreateChain, this is the name of the first inner processor.
[in]modelThe model that specifies which fields should be read by the processor. The pointer returned by RNTupleModel::MakeField can be used to access a field's value during the processor iteration. When no model is specified, it is created from the descriptor of the first RNTuple specified in ntuples.

RNTuples are processed in the order in which they are specified.

Definition at line 255 of file RNTupleProcessor.cxx.

Member Function Documentation

◆ GetNEntries()

ROOT::NTupleSize_t ROOT::Experimental::RNTupleChainProcessor::GetNEntries ( )
finalprivatevirtual

Get the total number of entries in this processor.

Note
This requires opening all underlying RNTuples being processed in the chain, and could become costly!

Implements ROOT::Experimental::RNTupleProcessor.

Definition at line 283 of file RNTupleProcessor.cxx.

◆ LoadEntry()

ROOT::NTupleSize_t ROOT::Experimental::RNTupleChainProcessor::LoadEntry ( ROOT::NTupleSize_t entryNumber)
finalprivatevirtual

Load the entry identified by the provided (global) entry number (i.e., considering all RNTuples in this processor).

See also
ROOT::Experimental::RNTupleProcessor::LoadEntry

Implements ROOT::Experimental::RNTupleProcessor.

Definition at line 314 of file RNTupleProcessor.cxx.

◆ SetEntryPointers()

void ROOT::Experimental::RNTupleChainProcessor::SetEntryPointers ( const ROOT::REntry & entry)
finalprivatevirtual

Friends And Related Symbol Documentation

◆ RNTupleProcessor

friend class RNTupleProcessor
friend

Definition at line 484 of file RNTupleProcessor.hxx.

Member Data Documentation

◆ fInnerNEntries

std::vector<ROOT::NTupleSize_t> ROOT::Experimental::RNTupleChainProcessor::fInnerNEntries
private

Definition at line 488 of file RNTupleProcessor.hxx.

◆ fInnerProcessors

std::vector<std::unique_ptr<RNTupleProcessor> > ROOT::Experimental::RNTupleChainProcessor::fInnerProcessors
private

Definition at line 487 of file RNTupleProcessor.hxx.

Libraries for ROOT::Experimental::RNTupleChainProcessor:

The documentation for this class was generated from the following files: