Processor specializiation for horizontally concatenated RNTuples (joins).
Definition at line 350 of file RNTupleProcessor.hxx.
Private Member Functions | |
RNTupleJoinProcessor (const RNTupleOpenSpec &mainNTuple, std::unique_ptr< RNTupleModel > model=nullptr) | |
Constructs 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. | |
NTupleSize_t | Advance () final |
Advance the processor to the next available entry. | |
void | ConnectFields () |
bool | IsUsingIndex () const |
void | LoadEntry () final |
Fill the entry with values belonging to the current entry number of the primary RNTuple. | |
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::RNTupleIndex > > | fJoinIndices |
std::unique_ptr< RNTupleModel > | fJoinModel |
Friends | |
class | RNTupleProcessor |
Additional Inherited Members | |
![]() | |
static std::unique_ptr< RNTupleProcessor > | Create (const RNTupleOpenSpec &ntuple) |
static std::unique_ptr< RNTupleProcessor > | Create (const RNTupleOpenSpec &ntuple, RNTupleModel &model) |
static std::unique_ptr< RNTupleProcessor > | CreateChain (const std::vector< RNTupleOpenSpec > &ntuples, std::unique_ptr< RNTupleModel > model=nullptr) |
Create a new RNTuple processor chain for vertical concatenation 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 a new RNTuple processor for horizontallly concatenated RNTuples. | |
![]() | |
RNTupleProcessor (const std::vector< RNTupleOpenSpec > &ntuples) | |
void | ConnectField (RFieldContext &fieldContext, Internal::RPageSource &pageSource, REntry &entry) |
Creates and connects a concrete field to the current page source, based on its proto field. | |
void | SetLocalEntryNumber (NTupleSize_t entryNumber) |
Set the local (i.e. | |
![]() | |
std::size_t | fCurrentNTupleNumber |
std::unique_ptr< REntry > | fEntry |
std::unordered_map< std::string, RFieldContext > | fFieldContexts |
NTupleSize_t | fLocalEntryNumber |
NTupleSize_t | fNEntriesProcessed |
std::vector< RNTupleOpenSpec > | fNTuples |
std::unique_ptr< Internal::RPageSource > | fPageSource |
#include <ROOT/RNTupleProcessor.hxx>
|
private |
Constructs a new RNTupleJoinProcessor.
[in] | mainNTuple | The source specification (name and storage location) of the primary 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 244 of file RNTupleProcessor.cxx.
|
delete |
|
delete |
|
inlineoverride |
Definition at line 406 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 280 of file RNTupleProcessor.cxx.
|
finalprivatevirtual |
Advance the processor to the next available entry.
Checks if the end of the currently connected RNTuple is reached. If this is the case, either the next RNTuple is connected or the iterator has reached the end.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 384 of file RNTupleProcessor.cxx.
|
private |
Definition at line 375 of file RNTupleProcessor.cxx.
|
inlineprivate |
Definition at line 360 of file RNTupleProcessor.hxx.
|
finalprivatevirtual |
Fill the entry with values belonging to the current entry number of the primary RNTuple.
Implements ROOT::Experimental::RNTupleProcessor.
Definition at line 396 of file RNTupleProcessor.cxx.
|
delete |
|
delete |
|
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 393 of file RNTupleProcessor.hxx.
|
friend |
Definition at line 351 of file RNTupleProcessor.hxx.
|
private |
Definition at line 355 of file RNTupleProcessor.hxx.
|
private |
Tokens representing the join fields present in the main RNTuple.
Definition at line 357 of file RNTupleProcessor.hxx.
|
private |
Definition at line 358 of file RNTupleProcessor.hxx.
|
private |
Definition at line 354 of file RNTupleProcessor.hxx.