Processor specialization for horizontally combined (joined) RNTupleProcessors.
Definition at line 507 of file RNTupleProcessor.hxx.
Private Member Functions | |
RNTupleJoinProcessor (std::unique_ptr< RNTupleProcessor > primaryProcessor, std::unique_ptr< RNTupleProcessor > auxProcessor, const std::vector< std::string > &joinFields, std::unique_ptr< ROOT::RNTupleModel > primaryModel, std::unique_ptr< ROOT::RNTupleModel > auxModel, std::string_view processorName) | |
Construct a new RNTupleJoinProcessor. | |
void | AddEntriesToJoinTable (Internal::RNTupleJoinTable &joinTable, ROOT::NTupleSize_t entryOffset=0) final |
Add the entry mappings for this processor to the provided join table. | |
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 entry number of the primary processor. | |
void | PrintStructureImpl (std::ostream &output) const final |
Processor-specific implementation for printing its structure, called by PrintStructure(). | |
void | SetEntryPointers (const ROOT::REntry &, std::string_view fieldNamePrefix) final |
void | SetModel (std::unique_ptr< ROOT::RNTupleModel > primaryModel, std::unique_ptr< ROOT::RNTupleModel > auxModel) |
Set fModel by combining the primary and auxiliary models. | |
Private Attributes | |
std::unique_ptr< RNTupleProcessor > | fAuxiliaryProcessor |
std::vector< ROOT::RFieldToken > | fJoinFieldTokens |
Tokens representing the join fields present in the primary processor. | |
std::unique_ptr< Internal::RNTupleJoinTable > | fJoinTable |
bool | fJoinTableIsBuilt = false |
std::unique_ptr< RNTupleProcessor > | fPrimaryProcessor |
Friends | |
class | RNTupleProcessor |
Additional Inherited Members | |
![]() | |
static std::unique_ptr< RNTupleProcessor > | Create (RNTupleOpenSpec ntuple, std::unique_ptr< ROOT::RNTupleModel > model=nullptr, std::string_view processorName="") |
Create an RNTupleProcessor for a single RNTuple. | |
static std::unique_ptr< RNTupleProcessor > | CreateChain (std::vector< RNTupleOpenSpec > ntuples, std::unique_ptr< ROOT::RNTupleModel > model=nullptr, std::string_view processorName="") |
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::unique_ptr< ROOT::RNTupleModel > model=nullptr, std::string_view processorName="") |
Create an RNTupleProcessor for a chain (i.e., a vertical combination) of other RNTupleProcessors. | |
static std::unique_ptr< RNTupleProcessor > | CreateJoin (RNTupleOpenSpec primaryNTuple, RNTupleOpenSpec auxNTuple, const std::vector< std::string > &joinFields, std::unique_ptr< ROOT::RNTupleModel > primaryModel=nullptr, std::unique_ptr< ROOT::RNTupleModel > auxModel=nullptr, std::string_view processorName="") |
Create an RNTupleProcessor for a join (i.e., a horizontal combination) of RNTuples. | |
static std::unique_ptr< RNTupleProcessor > | CreateJoin (std::unique_ptr< RNTupleProcessor > primaryProcessor, std::unique_ptr< RNTupleProcessor > auxProcessor, const std::vector< std::string > &joinFields, std::unique_ptr< ROOT::RNTupleModel > primaryModel=nullptr, std::unique_ptr< ROOT::RNTupleModel > auxModel=nullptr, std::string_view processorName="") |
Create an RNTupleProcessor for a join (i.e., a horizontal combination) of RNTuples. | |
![]() | |
RNTupleProcessor (std::string_view processorName, std::unique_ptr< ROOT::RNTupleModel > model) | |
Create a new base RNTupleProcessor. | |
![]() | |
ROOT::NTupleSize_t | fCurrentEntryNumber = 0 |
std::size_t | fCurrentProcessorNumber = 0 |
std::unique_ptr< ROOT::REntry > | fEntry |
std::unique_ptr< ROOT::RNTupleModel > | fModel |
ROOT::NTupleSize_t | fNEntries = kInvalidNTupleIndex |
Total number of entries. | |
ROOT::NTupleSize_t | fNEntriesProcessed = 0 |
std::string | fProcessorName |
#include <ROOT/RNTupleProcessor.hxx>
|
private |
Construct a new RNTupleJoinProcessor.
[in] | primaryProcessor | The primary processor. Its entries are processed in sequential order. |
[in] | auxProcessor | The processor to join the primary processor with. The order in which its entries are processed is determined by the primary processor and doesn't necessarily have to be sequential. |
[in] | joinFields | The names of the fields on which to join, in case the specified processors are unaligned. The join is made based on the combined join field values, and therefore each field has to be present in each specified processor. If an empty list is provided, it is assumed that the processors are fully aligned. |
[in] | primaryModel | An RNTupleModel specifying which fields from the primary processor can be read by the processor. If no model is provided, one will be created based on the descriptor of the primary processor. |
[in] | auxModel | An RNTupleModel specifying which fields from the auxiliary processor can be read by the processor. If no model is provided, one will be created based on the descriptor of the auxiliary processor. |
[in] | processorName | Name of the processor. Unless specified otherwise in RNTupleProcessor::CreateJoin, this is the name of the primary processor. |
Definition at line 395 of file RNTupleProcessor.cxx.
|
delete |
|
delete |
|
overridedefault |
|
finalprivatevirtual |
Add the entry mappings for this processor to the provided join table.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 573 of file RNTupleProcessor.cxx.
|
finalprivatevirtual |
Get the total number of entries in this processor.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 566 of file RNTupleProcessor.cxx.
|
finalprivatevirtual |
Load the entry identified by the provided entry number of the primary processor.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 521 of file RNTupleProcessor.cxx.
|
delete |
|
delete |
|
finalprivatevirtual |
Processor-specific implementation for printing its structure, called by PrintStructure().
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 579 of file RNTupleProcessor.cxx.
|
finalprivatevirtual |
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 506 of file RNTupleProcessor.cxx.
|
private |
Set fModel by combining the primary and auxiliary models.
[in] | primaryModel | The model of the primary processor. |
[in] | auxModel | Model of the auxiliary processors. |
To prevent field name clashes when one or more models have fields with duplicate names, fields from each auxiliary model are stored as a anonymous record, and subsequently registered as subfields in the join model. This way, they can be accessed from the processor's entry as auxNTupleName.fieldName
.
Definition at line 461 of file RNTupleProcessor.cxx.
|
friend |
Definition at line 508 of file RNTupleProcessor.hxx.
|
private |
Definition at line 512 of file RNTupleProcessor.hxx.
|
private |
Tokens representing the join fields present in the primary processor.
Definition at line 515 of file RNTupleProcessor.hxx.
|
private |
Definition at line 516 of file RNTupleProcessor.hxx.
Definition at line 517 of file RNTupleProcessor.hxx.
|
private |
Definition at line 511 of file RNTupleProcessor.hxx.