Logo ROOT   6.18/05
Reference Guide
List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag > Class Template Referencefinal

template<typename F, typename ExtraArgsTag = CustomColExtraArgs::None>
class ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >

Definition at line 44 of file RCustomColumn.hxx.

Public Member Functions

 RCustomColumn (const RCustomColumn &)=delete
 
 RCustomColumn (RLoopManager *lm, std::string_view name, F &&expression, const ColumnNames_t &columns, unsigned int nSlots, const RDFInternal::RBookedCustomColumns &customColumns, bool isDSColumn=false)
 
void ClearValueReaders (unsigned int slot) final
 
const std::type_info & GetTypeId () const
 
voidGetValuePtr (unsigned int slot) final
 
void InitSlot (TTreeReader *r, unsigned int slot) final
 
RCustomColumnoperator= (const RCustomColumn &)=delete
 
void Update (unsigned int slot, Long64_t entry) final
 
- Public Member Functions inherited from ROOT::Detail::RDF::RCustomColumnBase
 RCustomColumnBase (RLoopManager *lm, std::string_view name, const unsigned int nSlots, const bool isDSColumn, const RDFInternal::RBookedCustomColumns &customColumns)
 
virtual ~RCustomColumnBase ()
 
virtual void ClearValueReaders (unsigned int slot)=0
 
unsigned int GetID () const
 Return the unique identifier of this RCustomColumnBase. More...
 
RLoopManagerGetLoopManagerUnchecked () const
 
std::string GetName () const
 
virtual const std::type_info & GetTypeId () const =0
 
virtual voidGetValuePtr (unsigned int slot)=0
 
virtual void InitNode ()
 
virtual void InitSlot (TTreeReader *r, unsigned int slot)=0
 
bool IsDataSourceColumn () const
 
RCustomColumnBaseoperator= (const RCustomColumnBase &)=delete
 
virtual void Update (unsigned int slot, Long64_t entry)=0
 

Private Types

using ColumnTypes_t = RDFInternal::RemoveFirstTwoParametersIf_t< std::is_same< ExtraArgsTag, SlotAndEntryTag >::value, ColumnTypesTmp_t >
 
using ColumnTypesTmp_t = RDFInternal::RemoveFirstParameterIf_t< std::is_same< ExtraArgsTag, SlotTag >::value, FunParamTypes_t >
 
using FunParamTypes_t = typename CallableTraits< F >::arg_types
 
using NoneTag = CustomColExtraArgs::None
 
using ret_type = typename CallableTraits< F >::ret_type
 
using SlotAndEntryTag = CustomColExtraArgs::SlotAndEntry
 
using SlotTag = CustomColExtraArgs::Slot
 
using TypeInd_t = std::make_index_sequence< ColumnTypes_t::list_size >
 
using ValuesPerSlot_t = typename std::conditional< std::is_same< ret_type, bool >::value, std::deque< ret_type >, std::vector< ret_type > >::type
 

Private Member Functions

template<std::size_t... S, typename... BranchTypes>
void UpdateHelper (unsigned int slot, Long64_t entry, std::index_sequence< S... >, TypeList< BranchTypes... >, NoneTag)
 
template<std::size_t... S, typename... BranchTypes>
void UpdateHelper (unsigned int slot, Long64_t entry, std::index_sequence< S... >, TypeList< BranchTypes... >, SlotAndEntryTag)
 
template<std::size_t... S, typename... BranchTypes>
void UpdateHelper (unsigned int slot, Long64_t entry, std::index_sequence< S... >, TypeList< BranchTypes... >, SlotTag)
 

Private Attributes

const ColumnNames_t fColumnNames
 
F fExpression
 
std::array< bool, ColumnTypes_t::list_size > fIsCustomColumn
 The nth flag signals whether the nth input column is a custom column or not. More...
 
ValuesPerSlot_t fLastResults
 
std::vector< RDFInternal::RDFValueTuple_t< ColumnTypes_t > > fValues
 

Additional Inherited Members

- Static Protected Member Functions inherited from ROOT::Detail::RDF::RCustomColumnBase
static unsigned int GetNextID ()
 
- Protected Attributes inherited from ROOT::Detail::RDF::RCustomColumnBase
RDFInternal::RBookedCustomColumns fCustomColumns
 
const unsigned int fID = GetNextID()
 A unique ID that identifies this custom column. More...
 
const bool fIsDataSourceColumn
 does the custom column refer to a data-source column? (or a user-define column?) More...
 
std::deque< bool > fIsInitialized
 
std::vector< Long64_tfLastCheckedEntry
 
RLoopManagerfLoopManager
 A raw pointer to the RLoopManager at the root of this functional graph. More...
 
const std::string fName
 
unsigned int fNChildren {0}
 number of nodes of the functional graph hanging from this object More...
 
const unsigned int fNSlots
 number of thread slots used by this node, inherited from parent node. More...
 
unsigned int fNStopsReceived {0}
 number of times that a children node signaled to stop processing entries. More...
 

#include <ROOT/RDF/RCustomColumn.hxx>

Inheritance diagram for ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >:
[legend]

Member Typedef Documentation

◆ ColumnTypes_t

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
using ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::ColumnTypes_t = RDFInternal::RemoveFirstTwoParametersIf_t<std::is_same<ExtraArgsTag, SlotAndEntryTag>::value, ColumnTypesTmp_t>
private

Definition at line 53 of file RCustomColumn.hxx.

◆ ColumnTypesTmp_t

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
using ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::ColumnTypesTmp_t = RDFInternal::RemoveFirstParameterIf_t<std::is_same<ExtraArgsTag, SlotTag>::value, FunParamTypes_t>
private

Definition at line 51 of file RCustomColumn.hxx.

◆ FunParamTypes_t

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
using ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::FunParamTypes_t = typename CallableTraits<F>::arg_types
private

Definition at line 50 of file RCustomColumn.hxx.

◆ NoneTag

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
using ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::NoneTag = CustomColExtraArgs::None
private

Definition at line 46 of file RCustomColumn.hxx.

◆ ret_type

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
using ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::ret_type = typename CallableTraits<F>::ret_type
private

Definition at line 56 of file RCustomColumn.hxx.

◆ SlotAndEntryTag

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
using ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::SlotAndEntryTag = CustomColExtraArgs::SlotAndEntry
private

Definition at line 48 of file RCustomColumn.hxx.

◆ SlotTag

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
using ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::SlotTag = CustomColExtraArgs::Slot
private

Definition at line 47 of file RCustomColumn.hxx.

◆ TypeInd_t

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
using ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::TypeInd_t = std::make_index_sequence<ColumnTypes_t::list_size>
private

Definition at line 55 of file RCustomColumn.hxx.

◆ ValuesPerSlot_t

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
using ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::ValuesPerSlot_t = typename std::conditional<std::is_same<ret_type, bool>::value, std::deque<ret_type>, std::vector<ret_type> >::type
private

Definition at line 58 of file RCustomColumn.hxx.

Constructor & Destructor Documentation

◆ RCustomColumn() [1/2]

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::RCustomColumn ( RLoopManager lm,
std::string_view  name,
F &&  expression,
const ColumnNames_t columns,
unsigned int  nSlots,
const RDFInternal::RBookedCustomColumns customColumns,
bool  isDSColumn = false 
)
inline

Definition at line 99 of file RCustomColumn.hxx.

◆ RCustomColumn() [2/2]

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::RCustomColumn ( const RCustomColumn< F, ExtraArgsTag > &  )
delete

Member Function Documentation

◆ ClearValueReaders()

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
void ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::ClearValueReaders ( unsigned int  slot)
inlinefinalvirtual

Implements ROOT::Detail::RDF::RCustomColumnBase.

Definition at line 136 of file RCustomColumn.hxx.

◆ GetTypeId()

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
const std::type_info & ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::GetTypeId ( ) const
inlinevirtual

Implements ROOT::Detail::RDF::RCustomColumnBase.

Definition at line 131 of file RCustomColumn.hxx.

◆ GetValuePtr()

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
void * ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::GetValuePtr ( unsigned int  slot)
inlinefinalvirtual

Implements ROOT::Detail::RDF::RCustomColumnBase.

Definition at line 120 of file RCustomColumn.hxx.

◆ InitSlot()

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
void ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::InitSlot ( TTreeReader r,
unsigned int  slot 
)
inlinefinalvirtual

Implements ROOT::Detail::RDF::RCustomColumnBase.

Definition at line 112 of file RCustomColumn.hxx.

◆ operator=()

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
RCustomColumn & ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::operator= ( const RCustomColumn< F, ExtraArgsTag > &  )
delete

◆ Update()

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
void ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::Update ( unsigned int  slot,
Long64_t  entry 
)
inlinefinalvirtual

Implements ROOT::Detail::RDF::RCustomColumnBase.

Definition at line 122 of file RCustomColumn.hxx.

◆ UpdateHelper() [1/3]

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
template<std::size_t... S, typename... BranchTypes>
void ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::UpdateHelper ( unsigned int  slot,
Long64_t  entry,
std::index_sequence< S... >  ,
TypeList< BranchTypes... >  ,
NoneTag   
)
inlineprivate

Definition at line 71 of file RCustomColumn.hxx.

◆ UpdateHelper() [2/3]

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
template<std::size_t... S, typename... BranchTypes>
void ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::UpdateHelper ( unsigned int  slot,
Long64_t  entry,
std::index_sequence< S... >  ,
TypeList< BranchTypes... >  ,
SlotAndEntryTag   
)
inlineprivate

Definition at line 90 of file RCustomColumn.hxx.

◆ UpdateHelper() [3/3]

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
template<std::size_t... S, typename... BranchTypes>
void ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::UpdateHelper ( unsigned int  slot,
Long64_t  entry,
std::index_sequence< S... >  ,
TypeList< BranchTypes... >  ,
SlotTag   
)
inlineprivate

Definition at line 80 of file RCustomColumn.hxx.

Member Data Documentation

◆ fColumnNames

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
const ColumnNames_t ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::fColumnNames
private

Definition at line 62 of file RCustomColumn.hxx.

◆ fExpression

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
F ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::fExpression
private

Definition at line 61 of file RCustomColumn.hxx.

◆ fIsCustomColumn

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
std::array<bool, ColumnTypes_t::list_size> ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::fIsCustomColumn
private

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

Definition at line 68 of file RCustomColumn.hxx.

◆ fLastResults

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
ValuesPerSlot_t ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::fLastResults
private

Definition at line 63 of file RCustomColumn.hxx.

◆ fValues

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
std::vector<RDFInternal::RDFValueTuple_t<ColumnTypes_t> > ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::fValues
private

Definition at line 65 of file RCustomColumn.hxx.

Libraries for ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >:
[legend]

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