Processor specialization for horizontally combined (joined) RNTuples.
Definition at line 495 of file RNTupleProcessor.hxx.
Private Member Functions | |
RNTupleJoinProcessor (const RNTupleOpenSpec &mainNTuple, std::string_view processorName, std::unique_ptr< RNTupleModel > model=nullptr) | |
Construct a new RNTupleJoinProcessor. | |
void | AddAuxiliary (const RNTupleOpenSpec &auxNTuple, const std::vector< std::string > &joinFields, std::unique_ptr< RNTupleModel > model=nullptr) |
Add an auxiliary RNTuple to the processor. | |
void | ConnectFields () |
Connect all fields, once the primary and all auxiliary RNTuples have been added. | |
ROOT::NTupleSize_t | GetNEntries () final |
Get the total number of entries in this processor. | |
bool | HasJoinTable () const |
ROOT::NTupleSize_t | LoadEntry (ROOT::NTupleSize_t entryNumber) final |
Load the entry identified by the provided entry number of the primary RNTuple. | |
void | SetEntryPointers (const REntry &) final |
void | SetJoinFieldTokens (const std::vector< std::string > &joinFields) |
Populate fJoinFieldTokens with tokens for join fields belonging to the main RNTuple in the join model. | |
Private Attributes | |
std::vector< std::unique_ptr< Internal::RPageSource > > | fAuxiliaryPageSources |
std::vector< REntry::RFieldToken > | fJoinFieldTokens |
Tokens representing the join fields present in the main RNTuple. | |
std::vector< std::unique_ptr< Internal::RNTupleJoinTable > > | fJoinTables |
Friends | |
class | RNTupleProcessor |
Additional Inherited Members | |
![]() | |
static std::unique_ptr< RNTupleProcessor > | Create (const RNTupleOpenSpec &ntuple, std::string_view processorName, std::unique_ptr< RNTupleModel > model=nullptr) |
Create an RNTupleProcessor for a single RNTuple. | |
static std::unique_ptr< RNTupleProcessor > | Create (const RNTupleOpenSpec &ntuple, std::unique_ptr< RNTupleModel > model=nullptr) |
Create an RNTupleProcessor for a single RNTuple. | |
static std::unique_ptr< RNTupleProcessor > | CreateChain (const std::vector< RNTupleOpenSpec > &ntuples, std::string_view processorName, std::unique_ptr< RNTupleModel > model=nullptr) |
Create an RNTupleProcessor for a chain (i.e., a vertical combination) of RNTuples. | |
static std::unique_ptr< RNTupleProcessor > | CreateChain (const std::vector< RNTupleOpenSpec > &ntuples, std::unique_ptr< RNTupleModel > model=nullptr) |
Create an RNTupleProcessor for a chain (i.e., a vertical combination) of RNTuples. | |
static std::unique_ptr< RNTupleProcessor > | CreateChain (std::vector< std::unique_ptr< RNTupleProcessor > > innerProcessors, std::string_view processorName, std::unique_ptr< RNTupleModel > model=nullptr) |
Create an RNTupleProcessor for a chain (i.e., a vertical combination) of other RNTupleProcessors. | |
static std::unique_ptr< RNTupleProcessor > | CreateChain (std::vector< std::unique_ptr< RNTupleProcessor > > innerProcessors, std::unique_ptr< RNTupleModel > model=nullptr) |
Create an RNTupleProcessor for a chain (i.e., a vertical combination) of other RNTupleProcessors. | |
static std::unique_ptr< RNTupleProcessor > | CreateJoin (const std::vector< RNTupleOpenSpec > &ntuples, const std::vector< std::string > &joinFields, std::string_view processorName, std::vector< std::unique_ptr< RNTupleModel > > models={}) |
Create an RNTupleProcessor for a join (i.e., a horizontal combination) of RNTuples. | |
static std::unique_ptr< RNTupleProcessor > | CreateJoin (const std::vector< RNTupleOpenSpec > &ntuples, const std::vector< std::string > &joinFields, std::vector< std::unique_ptr< RNTupleModel > > models={}) |
Create an RNTupleProcessor for a join (i.e., a horizontal combination) of RNTuples. | |
![]() | |
RNTupleProcessor (std::string_view processorName, std::unique_ptr< RNTupleModel > model) | |
Create a new base RNTupleProcessor. | |
void | ConnectField (RFieldContext &fieldContext, Internal::RPageSource &pageSource, REntry &entry) |
Create and connect a concrete field to the current page source, based on its proto field. | |
![]() | |
ROOT::NTupleSize_t | fCurrentEntryNumber = 0 |
std::size_t | fCurrentProcessorNumber = 0 |
std::unique_ptr< REntry > | fEntry |
std::unordered_map< std::string, RFieldContext > | fFieldContexts |
Maps the (qualified) field name to its corresponding field context. | |
std::unique_ptr< RNTupleModel > | fModel |
ROOT::NTupleSize_t | fNEntries = kInvalidNTupleIndex |
Total number of entries. | |
ROOT::NTupleSize_t | fNEntriesProcessed = 0 |
std::vector< RNTupleOpenSpec > | fNTuples |
std::unique_ptr< Internal::RPageSource > | fPageSource |
std::string | fProcessorName |
#include <ROOT/RNTupleProcessor.hxx>
|
private |
Construct a new RNTupleJoinProcessor.
[in] | mainNTuple | The source specification (name and storage location) of the primary RNTuple. |
[in] | processorName | Name of the processor. Unless specified otherwise in RNTupleProcessor::CreateJoin, this is the name of the main RNTuple. |
[in] | model | The 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 RNTuple's descriptor. |
Definition at line 347 of file RNTupleProcessor.cxx.
|
delete |
|
delete |
|
inlineoverride |
Definition at line 564 of file RNTupleProcessor.hxx.
|
private |
Add an auxiliary RNTuple to the processor.
[in] | auxNTuple | The source specification (name and storage location) of the auxiliary RNTuple. |
[in] | joinFields | The names of the fields used in the join. |
[in] | model | The 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 RNTuple's descriptor. |
Definition at line 387 of file RNTupleProcessor.cxx.
|
private |
Connect all fields, once the primary and all auxiliary RNTuples have been added.
Definition at line 482 of file RNTupleProcessor.cxx.
|
inlinefinalprivatevirtual |
Get the total number of entries in this processor.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 518 of file RNTupleProcessor.hxx.
|
inlineprivate |
Definition at line 504 of file RNTupleProcessor.hxx.
|
finalprivatevirtual |
Load the entry identified by the provided entry number of the primary RNTuple.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 503 of file RNTupleProcessor.cxx.
|
delete |
|
delete |
|
finalprivatevirtual |
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 491 of file RNTupleProcessor.cxx.
|
inlineprivate |
Populate fJoinFieldTokens with tokens for join fields belonging to the main RNTuple in the join model.
[in] | joinFields | The names of the fields used in the join. |
Definition at line 551 of file RNTupleProcessor.hxx.
|
friend |
Definition at line 496 of file RNTupleProcessor.hxx.
|
private |
Definition at line 499 of file RNTupleProcessor.hxx.
|
private |
Tokens representing the join fields present in the main RNTuple.
Definition at line 501 of file RNTupleProcessor.hxx.
|
private |
Definition at line 502 of file RNTupleProcessor.hxx.