Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t > Class Template Referencefinalabstract

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
class ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >

Just like an RAction, but it has N action helpers and N previous nodes (N is the number of variations).

Definition at line 40 of file RVariedAction.hxx.

Public Member Functions

 RVariedAction (const RVariedAction &)=delete
 RVariedAction (std::vector< Helper > &&helpers, const ColumnNames_t &columns, std::shared_ptr< PrevNode > prevNode, const RColumnRegister &colRegister)
 ~RVariedAction ()
template<typename... ColTypes, std::size_t... ReaderIdxs>
void CallExec (unsigned int slot, unsigned int varIdx, Long64_t entry, TypeList< ColTypes... >, std::index_sequence< ReaderIdxs... >)
std::unique_ptr< RActionBaseCloneAction (void *typeErasedResults) final
void Finalize () final
 Clean-up and finalize the action result (e.g.
void FinalizeSlot (unsigned int slot) final
 Clean-up operations to be performed at the end of a task.
RColumnRegisterGetColRegister ()
const ColumnNames_tGetColumnNames () const
virtual std::shared_ptr< ROOT::Internal::RDF::GraphDrawing::GraphNodeGetGraph (std::unordered_map< void *, std::shared_ptr< ROOT::Internal::RDF::GraphDrawing::GraphNode > > &visitedMap)=0
std::shared_ptr< RDFGraphDrawing::GraphNode > GetGraph (std::unordered_map< void *, std::shared_ptr< RDFGraphDrawing::GraphNode > > &visitedMap) final
RLoopManagerGetLoopManager ()
std::unique_ptr< RMergeableValueBaseGetMergeableValue () const final
 Retrieve a container holding the names and values of the variations.
unsigned int GetNSlots () const
ROOT::RDF::SampleCallback_t GetSampleCallback () final
 Return a callback that in turn runs the callbacks of each variation's helper.
template<typename ColType>
auto GetValueChecked (unsigned int slot, unsigned int varIdx, std::size_t readerIdx, Long64_t entry) -> ColType &
const std::vector< std::string > & GetVariations () const
virtual bool HasRun () const
void Initialize () final
void InitSlot (TTreeReader *r, unsigned int slot) final
std::unique_ptr< RActionBaseMakeVariedAction (std::vector< void * > &&) final
RVariedActionoperator= (const RVariedAction &)=delete
void * PartialUpdate (unsigned int slot) final
 Return the partially-updated value connected to the first variation.
void Run (unsigned int slot, Long64_t entry) final
virtual void SetHasRun ()
void TriggerChildrenCount () final

Protected Attributes

const ColumnNames_t fColumnNames
RLoopManagerfLoopManager
 A raw pointer to the RLoopManager at the root of this functional graph.

Private Types

using PrevNodeType = std::conditional_t<std::is_same<PrevNode, RJittedFilter>::value, RFilterBase, PrevNode>
using TypeInd_t = std::make_index_sequence<ColumnTypes_t::list_size>

Private Member Functions

 RVariedAction (std::vector< Helper > &&helpers, const ColumnNames_t &columns, const std::vector< std::shared_ptr< PrevNodeType > > &prevNodes, const RColumnRegister &colRegister)
 This constructor takes in input a vector of previous nodes, motivated by the CloneAction logic.
std::vector< std::shared_ptr< PrevNodeType > > MakePrevFilters (std::shared_ptr< PrevNode > nominal) const
 Creates new filter nodes, one per variation, from the upstream nominal one.
void * PartialUpdateImpl (...)
template<typename H = Helper>
auto PartialUpdateImpl (unsigned int slot) -> decltype(std::declval< H >().PartialUpdate(slot),(void *)(nullptr))
void SetupClass ()

Private Attributes

RColumnRegister fColRegister
bool fHasRun = false
std::vector< Helper > fHelpers
 Action helpers per variation.
std::vector< std::vector< std::array< RColumnReaderBase *, ColumnTypes_t::list_size > > > fInputValues
 Column readers per slot (outer dimension), per variation and per input column (inner dimension, std::array).
std::array< bool, ColumnTypes_t::list_size > fIsDefine
 The nth flag signals whether the nth input column is a custom column or not.
const unsigned int fNSlots
 Number of thread slots used by this node.
std::vector< std::shared_ptr< PrevNodeType > > fPrevNodes
 Owning pointers to upstream nodes for each systematic variation.
std::vector< std::string > fVariations
 List of systematic variations that affect the result of this action ("nominal" excluded).

#include <ROOT/RDF/RVariedAction.hxx>

Inheritance diagram for ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >:
ROOT::Internal::RDF::RActionBase

Member Typedef Documentation

◆ PrevNodeType

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
using ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::PrevNodeType = std::conditional_t<std::is_same<PrevNode, RJittedFilter>::value, RFilterBase, PrevNode>
private

Definition at line 44 of file RVariedAction.hxx.

◆ TypeInd_t

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
using ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::TypeInd_t = std::make_index_sequence<ColumnTypes_t::list_size>
private

Definition at line 41 of file RVariedAction.hxx.

Constructor & Destructor Documentation

◆ RVariedAction() [1/3]

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::RVariedAction ( std::vector< Helper > && helpers,
const ColumnNames_t & columns,
const std::vector< std::shared_ptr< PrevNodeType > > & prevNodes,
const RColumnRegister & colRegister )
inlineprivate

This constructor takes in input a vector of previous nodes, motivated by the CloneAction logic.

Definition at line 101 of file RVariedAction.hxx.

◆ RVariedAction() [2/3]

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::RVariedAction ( std::vector< Helper > && helpers,
const ColumnNames_t & columns,
std::shared_ptr< PrevNode > prevNode,
const RColumnRegister & colRegister )
inline

Definition at line 112 of file RVariedAction.hxx.

◆ RVariedAction() [3/3]

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::RVariedAction ( const RVariedAction< Helper, PrevNode, ColumnTypes_t > & )
delete

◆ ~RVariedAction()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::~RVariedAction ( )
inline

Definition at line 125 of file RVariedAction.hxx.

Member Function Documentation

◆ CallExec()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
template<typename... ColTypes, std::size_t... ReaderIdxs>
void ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::CallExec ( unsigned int slot,
unsigned int varIdx,
Long64_t entry,
TypeList< ColTypes... > ,
std::index_sequence< ReaderIdxs... >  )
inline

Definition at line 157 of file RVariedAction.hxx.

◆ CloneAction()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
std::unique_ptr< RActionBase > ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::CloneAction ( void * typeErasedResults)
inlinefinalvirtual

Implements ROOT::Internal::RDF::RActionBase.

Definition at line 254 of file RVariedAction.hxx.

◆ Finalize()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
void ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::Finalize ( )
inlinefinalvirtual

Clean-up and finalize the action result (e.g.

merging slot-local results). It invokes the helper's Finalize method.

Implements ROOT::Internal::RDF::RActionBase.

Definition at line 186 of file RVariedAction.hxx.

◆ FinalizeSlot()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
void ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::FinalizeSlot ( unsigned int slot)
inlinefinalvirtual

Clean-up operations to be performed at the end of a task.

Implements ROOT::Internal::RDF::RActionBase.

Definition at line 178 of file RVariedAction.hxx.

◆ GetColRegister()

RColumnRegister & ROOT::Internal::RDF::RActionBase::GetColRegister ( )
inlineinherited

Definition at line 63 of file RActionBase.hxx.

◆ GetColumnNames()

const ColumnNames_t & ROOT::Internal::RDF::RActionBase::GetColumnNames ( ) const
inlineinherited

Definition at line 62 of file RActionBase.hxx.

◆ GetGraph() [1/2]

virtual std::shared_ptr< ROOT::Internal::RDF::GraphDrawing::GraphNode > ROOT::Internal::RDF::RActionBase::GetGraph ( std::unordered_map< void *, std::shared_ptr< ROOT::Internal::RDF::GraphDrawing::GraphNode > > & visitedMap)
pure virtualinherited

◆ GetGraph() [2/2]

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
std::shared_ptr< RDFGraphDrawing::GraphNode > ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::GetGraph ( std::unordered_map< void *, std::shared_ptr< RDFGraphDrawing::GraphNode > > & visitedMap)
inlinefinal

Definition at line 215 of file RVariedAction.hxx.

◆ GetLoopManager()

RLoopManager * ROOT::Internal::RDF::RActionBase::GetLoopManager ( )
inlineinherited

Definition at line 64 of file RActionBase.hxx.

◆ GetMergeableValue()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
std::unique_ptr< RMergeableValueBase > ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::GetMergeableValue ( ) const
inlinefinalvirtual

Retrieve a container holding the names and values of the variations.

It knows how to merge with others of the same type.

Implements ROOT::Internal::RDF::RActionBase.

Definition at line 237 of file RVariedAction.hxx.

◆ GetNSlots()

unsigned int ROOT::Internal::RDF::RActionBase::GetNSlots ( ) const
inlineinherited

Definition at line 65 of file RActionBase.hxx.

◆ GetSampleCallback()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
ROOT::RDF::SampleCallback_t ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::GetSampleCallback ( )
inlinefinalvirtual

Return a callback that in turn runs the callbacks of each variation's helper.

Implements ROOT::Internal::RDF::RActionBase.

Definition at line 196 of file RVariedAction.hxx.

◆ GetValueChecked()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
template<typename ColType>
auto ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::GetValueChecked ( unsigned int slot,
unsigned int varIdx,
std::size_t readerIdx,
Long64_t entry ) -> ColType &
inline

Definition at line 144 of file RVariedAction.hxx.

◆ GetVariations()

const std::vector< std::string > & ROOT::Internal::RDF::RActionBase::GetVariations ( ) const
inlineinherited

Definition at line 91 of file RActionBase.hxx.

◆ HasRun()

virtual bool ROOT::Internal::RDF::RActionBase::HasRun ( ) const
inlinevirtualinherited

Reimplemented in RJittedAction, and ROOT::Internal::RDF::RJittedAction.

Definition at line 77 of file RActionBase.hxx.

◆ Initialize()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
void ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::Initialize ( )
inlinefinalvirtual

Implements ROOT::Internal::RDF::RActionBase.

Definition at line 127 of file RVariedAction.hxx.

◆ InitSlot()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
void ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::InitSlot ( TTreeReader * r,
unsigned int slot )
inlinefinalvirtual

Implements ROOT::Internal::RDF::RActionBase.

Definition at line 132 of file RVariedAction.hxx.

◆ MakePrevFilters()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
std::vector< std::shared_ptr< PrevNodeType > > ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::MakePrevFilters ( std::shared_ptr< PrevNode > nominal) const
inlineprivate

Creates new filter nodes, one per variation, from the upstream nominal one.

Parameters
nominalThe nominal filter
Returns
The varied filters

The nominal filter is not included in the return value.

Definition at line 61 of file RVariedAction.hxx.

◆ MakeVariedAction()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
std::unique_ptr< RActionBase > ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::MakeVariedAction ( std::vector< void * > && )
inlinefinalvirtual

Implements ROOT::Internal::RDF::RActionBase.

Definition at line 249 of file RVariedAction.hxx.

◆ operator=()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
RVariedAction & ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::operator= ( const RVariedAction< Helper, PrevNode, ColumnTypes_t > & )
delete

◆ PartialUpdate()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
void * ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::PartialUpdate ( unsigned int slot)
inlinefinalvirtual

Return the partially-updated value connected to the first variation.

Implements ROOT::Internal::RDF::RActionBase.

Definition at line 193 of file RVariedAction.hxx.

◆ PartialUpdateImpl() [1/2]

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
void * ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::PartialUpdateImpl ( ...)
inlineprivate

Definition at line 280 of file RVariedAction.hxx.

◆ PartialUpdateImpl() [2/2]

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
template<typename H = Helper>
auto ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::PartialUpdateImpl ( unsigned int slot) -> decltype(std::declval< H >().PartialUpdate(slot),(void *)(nullptr))
inlineprivate

Definition at line 274 of file RVariedAction.hxx.

◆ Run()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
void ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::Run ( unsigned int slot,
Long64_t entry )
inlinefinalvirtual

Implements ROOT::Internal::RDF::RActionBase.

Definition at line 164 of file RVariedAction.hxx.

◆ SetHasRun()

virtual void ROOT::Internal::RDF::RActionBase::SetHasRun ( )
inlinevirtualinherited

Reimplemented in RJittedAction, and ROOT::Internal::RDF::RJittedAction.

Definition at line 78 of file RActionBase.hxx.

◆ SetupClass()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
void ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::SetupClass ( )
inlineprivate

Definition at line 84 of file RVariedAction.hxx.

◆ TriggerChildrenCount()

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
void ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::TriggerChildrenCount ( )
inlinefinalvirtual

Implements ROOT::Internal::RDF::RActionBase.

Definition at line 172 of file RVariedAction.hxx.

Member Data Documentation

◆ fColRegister

RColumnRegister ROOT::Internal::RDF::RActionBase::fColRegister
privateinherited

Definition at line 53 of file RActionBase.hxx.

◆ fColumnNames

const ColumnNames_t ROOT::Internal::RDF::RActionBase::fColumnNames
protectedinherited

Definition at line 45 of file RActionBase.hxx.

◆ fHasRun

bool ROOT::Internal::RDF::RActionBase::fHasRun = false
privateinherited

Definition at line 49 of file RActionBase.hxx.

◆ fHelpers

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
std::vector<Helper> ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::fHelpers
private

Action helpers per variation.

Definition at line 46 of file RVariedAction.hxx.

◆ fInputValues

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
std::vector<std::vector<std::array<RColumnReaderBase *, ColumnTypes_t::list_size> > > ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::fInputValues
private

Column readers per slot (outer dimension), per variation and per input column (inner dimension, std::array).

Definition at line 51 of file RVariedAction.hxx.

◆ fIsDefine

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
std::array<bool, ColumnTypes_t::list_size> ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::fIsDefine
private

The nth flag signals whether the nth input column is a custom column or not.

Definition at line 54 of file RVariedAction.hxx.

◆ fLoopManager

RLoopManager* ROOT::Internal::RDF::RActionBase::fLoopManager
protectedinherited

A raw pointer to the RLoopManager at the root of this functional graph.

Never null: children nodes have shared ownership of parent nodes in the graph.

Definition at line 44 of file RActionBase.hxx.

◆ fNSlots

const unsigned int ROOT::Internal::RDF::RActionBase::fNSlots
privateinherited

Number of thread slots used by this node.

Definition at line 48 of file RActionBase.hxx.

◆ fPrevNodes

template<typename Helper, typename PrevNode, typename ColumnTypes_t>
std::vector<std::shared_ptr<PrevNodeType> > ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >::fPrevNodes
private

Owning pointers to upstream nodes for each systematic variation.

Definition at line 48 of file RVariedAction.hxx.

◆ fVariations

std::vector<std::string> ROOT::Internal::RDF::RActionBase::fVariations
privateinherited

List of systematic variations that affect the result of this action ("nominal" excluded).

Definition at line 51 of file RActionBase.hxx.


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