Logo ROOT  
Reference Guide
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 (std::string_view name, std::string_view type, 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 (std::string_view name, std::string_view type, unsigned int nSlots, 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...
 
std::string GetName () const
 
virtual const std::type_info & GetTypeId () const =0
 
std::string GetTypeName () const
 
virtual voidGetValuePtr (unsigned int slot)=0
 
virtual void InitSlot (TTreeReader *r, unsigned int slot)=0
 
bool IsDataSourceColumn () const
 
RCustomColumnBaseoperator= (const RCustomColumnBase &)=delete
 
RCustomColumnBaseoperator= (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>
void UpdateHelper (unsigned int slot, Long64_t entry, std::index_sequence< S... >, NoneTag)
 
template<std::size_t... S>
void UpdateHelper (unsigned int slot, Long64_t entry, std::index_sequence< S... >, SlotAndEntryTag)
 
template<std::size_t... S>
void UpdateHelper (unsigned int slot, Long64_t entry, std::index_sequence< S... >, 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< boolfIsInitialized
 
std::vector< Long64_tfLastCheckedEntry
 
const std::string fName
 The name of the custom column. More...
 
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...
 
const std::string fType
 The type of the custom column as a text string. 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 ( std::string_view  name,
std::string_view  type,
F  expression,
const ColumnNames_t &  columns,
unsigned int  nSlots,
const RDFInternal::RBookedCustomColumns customColumns,
bool  isDSColumn = false 
)
inline

Definition at line 98 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 111 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>
void ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::UpdateHelper ( unsigned int  slot,
Long64_t  entry,
std::index_sequence< S... >  ,
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>
void ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::UpdateHelper ( unsigned int  slot,
Long64_t  entry,
std::index_sequence< S... >  ,
SlotAndEntryTag   
)
inlineprivate

Definition at line 89 of file RCustomColumn.hxx.

◆ UpdateHelper() [3/3]

template<typename F , typename ExtraArgsTag = CustomColExtraArgs::None>
template<std::size_t... S>
void ROOT::Detail::RDF::RCustomColumn< F, ExtraArgsTag >::UpdateHelper ( unsigned int  slot,
Long64_t  entry,
std::index_sequence< S... >  ,
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.


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