Logo ROOT  
Reference Guide
ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t > Class Template Referencefinal

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 (one per variation + nominal) and N previous nodes.

Definition at line 39 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... S>
void CallExec (unsigned int slot, unsigned int varIdx, Long64_t entry, TypeList< ColTypes... >, std::index_sequence< S... >)
 
void Finalize () final
 Clean-up and finalize the action result (e.g. More...
 
void FinalizeSlot (unsigned int slot) final
 Clean-up operations to be performed at the end of a task. More...
 
std::shared_ptr< RDFGraphDrawing::GraphNodeGetGraph (std::unordered_map< void *, std::shared_ptr< RDFGraphDrawing::GraphNode > > &visitedMap) final
 
std::unique_ptr< RMergeableValueBaseGetMergeableValue () const final
 Retrieve a container holding the names and values of the variations. More...
 
ROOT::RDF::SampleCallback_t GetSampleCallback () final
 Return the per-sample callback connected to the nominal result. More...
 
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 nominal result. More...
 
void Run (unsigned int slot, Long64_t entry) final
 
void TriggerChildrenCount () final
 
- Public Member Functions inherited from ROOT::Internal::RDF::RActionBase
 RActionBase (const RActionBase &)=delete
 
 RActionBase (RLoopManager *lm, const ColumnNames_t &colNames, const RColumnRegister &colRegister, const std::vector< std::string > &prevVariations)
 
virtual ~RActionBase ()
 
virtual void Finalize ()=0
 
virtual void FinalizeSlot (unsigned int)=0
 
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
 
RLoopManagerGetLoopManager ()
 
virtual std::unique_ptr< RMergeableValueBaseGetMergeableValue () const =0
 Retrieve a wrapper to the result of the action that knows how to merge with others of the same type. More...
 
unsigned int GetNSlots () const
 
virtual ROOT::RDF::SampleCallback_t GetSampleCallback ()=0
 
const std::vector< std::string > & GetVariations () const
 
virtual bool HasRun () const
 
virtual void Initialize ()=0
 
virtual void InitSlot (TTreeReader *r, unsigned int slot)=0
 
virtual std::unique_ptr< RActionBaseMakeVariedAction (std::vector< void * > &&results)=0
 
RActionBaseoperator= (const RActionBase &)=delete
 
virtual void * PartialUpdate (unsigned int slot)=0
 This method is invoked to update a partial result during the event loop, right before passing the result to a user-defined callback registered via RResultPtr::RegisterCallback. More...
 
virtual void Run (unsigned int slot, Long64_t entry)=0
 
virtual void SetHasRun ()
 
virtual void TriggerChildrenCount ()=0
 

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

std::vector< std::shared_ptr< PrevNodeType > > MakePrevFilters (std::shared_ptr< PrevNode > nominal) const
 
void * PartialUpdateImpl (...)
 
template<typename H = Helper>
auto PartialUpdateImpl (unsigned int slot) -> decltype(std::declval< H >().PartialUpdate(slot),(void *)(nullptr))
 

Private Attributes

std::vector< Helper > fHelpers
 Action helpers per variation. More...
 
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). More...
 
std::array< bool, ColumnTypes_t::list_size > fIsDefine
 The nth flag signals whether the nth input column is a custom column or not. More...
 
std::vector< std::shared_ptr< PrevNodeType > > fPrevNodes
 Owning pointers to upstream nodes for each systematic variation (with the "nominal" at index 0). More...
 

Additional Inherited Members

- Protected Attributes inherited from ROOT::Internal::RDF::RActionBase
RLoopManagerfLoopManager
 A raw pointer to the RLoopManager at the root of this functional graph. More...
 

#include <ROOT/RDF/RVariedAction.hxx>

Inheritance diagram for ROOT::Internal::RDF::RVariedAction< Helper, PrevNode, ColumnTypes_t >:
[legend]

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 43 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 40 of file RVariedAction.hxx.

Constructor & Destructor Documentation

◆ RVariedAction() [1/2]

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 79 of file RVariedAction.hxx.

◆ RVariedAction() [2/2]

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 97 of file RVariedAction.hxx.

Member Function Documentation

◆ CallExec()

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

Definition at line 117 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 145 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 137 of file RVariedAction.hxx.

◆ GetGraph()

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)
inlinefinalvirtual

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

Definition at line 158 of file RVariedAction.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 180 of file RVariedAction.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 the per-sample callback connected to the nominal result.

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

Definition at line 155 of file RVariedAction.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 99 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 104 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

Definition at line 55 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 192 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 nominal result.

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

Definition at line 152 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 207 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 201 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 123 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 131 of file RVariedAction.hxx.

Member Data Documentation

◆ 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 45 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 50 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 53 of file RVariedAction.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 (with the "nominal" at index 0).

Definition at line 47 of file RVariedAction.hxx.


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