Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Internal::RDF Namespace Reference

Namespaces

namespace  GraphDrawing
 

Classes

class  ArrayPtrVisitor
 
struct  CallGuaranteedOrder
 Struct to wrap the call to a function with a guaranteed order of execution of its arguments. More...
 
struct  ColumnType
 
struct  ColumnType< ROOT::RVec< ROOT::RVec< T > >, false >
 
struct  ColumnType< ROOT::RVec< T >, true >
 
struct  Disjunction
 
struct  Disjunction< B1 >
 
struct  Disjunction< B1, Bn... >
 
class  DisplayHelper
 
struct  IsDataContainer
 Check for container traits. More...
 
struct  IsDataContainer< ROOT::VecOps::RVec< bool > >
 
struct  IsDataContainer< std::span< T > >
 
struct  IsDataContainer< std::vector< bool > >
 
struct  IsVector_t
 Detect whether a type is an instantiation of vector<T,A> More...
 
struct  IsVector_t< std::vector< T, A > >
 
class  PassAsVecHelper
 
class  PassAsVecHelper< std::index_sequence< N... >, T, F >
 
class  RAction
 A RDataFrame node that produces a result. More...
 
class  RActionBase
 
class  RCallback
 
struct  RColumnReadersInfo
 This type aggregates some of the arguments passed to GetColumnReaders. More...
 
class  RColumnRegister
 A binder for user-defined columns, variations and aliases. More...
 
class  RDefineReader
 Column reader for defined columns. More...
 
class  RDefinesWithReaders
 A helper type that keeps track of RDefine objects and their corresponding RDefineReaders. More...
 
class  RDisplayElement
 Helper class to let Display print compact tabular representations of the events. More...
 
class  RDSColumnReader
 Column reader type that deals with values read from RDataSources. More...
 
struct  RemoveFirstParameterIf
 type is TypeList if MustRemove is false, otherwise it is a TypeList with the first type removed More...
 
struct  RemoveFirstParameterIf< true, TypeList >
 
struct  RemoveFirstTwoParametersIf
 
struct  RemoveFirstTwoParametersIf< true, TypeList >
 
class  RJittedAction
 
class  RJittedVariation
 A wrapper around a concrete RVariation, which forwards all calls to it RJittedVariation is a placeholder that is inserted in the computation graph in place of a RVariation that will be just-in-time compiled. More...
 
struct  RMetaDataJson
 
struct  RNewSampleFlag
 
class  RNewSampleNotifier
 
class  ROneTimeCallback
 
struct  RootConversionTraits
 
struct  RootConversionTraits< bool >
 
struct  RootConversionTraits< double >
 
struct  RootConversionTraits< float >
 
struct  RootConversionTraits< int16_t >
 
struct  RootConversionTraits< int32_t >
 
struct  RootConversionTraits< int8_t >
 
struct  RootConversionTraits< Long64_t >
 
struct  RootConversionTraits< std::string >
 
struct  RootConversionTraits< uint16_t >
 
struct  RootConversionTraits< uint32_t >
 
struct  RootConversionTraits< uint8_t >
 
struct  RootConversionTraits< ULong64_t >
 
class  RRootDS
 This class is unused and it has only been implemented as a proof of concept. More...
 
class  RStringCache
 A Thread-safe cache for strings. More...
 
class  RTreeColumnReader
 RTreeColumnReader specialization for TTree values read via TTreeReaderValues. More...
 
class  RTreeColumnReader< RVec< bool > >
 RTreeColumnReader specialization for arrays of boolean values read via TTreeReaderArrays. More...
 
class  RTreeColumnReader< RVec< T > >
 RTreeColumnReader specialization for TTree values read via TTreeReaderArrays. More...
 
class  RVariation
 
class  RVariationBase
 This type includes all parts of RVariation that do not depend on the callable signature. More...
 
class  RVariationReader
 Column reader that reads the value for a specific column, variation and slot. More...
 
class  RVariationsWithReaders
 
class  RVariedAction
 Just like an RAction, but it has N action helpers and N previous nodes (N is the number of variations). More...
 
class  RVecDS
 A RDataSource implementation which takes a collection of RVecs, which are able to adopt data from Numpy arrays. More...
 
class  TValueGetter
 Helper class which keeps track for each slot where to get the entry. More...
 
struct  ValueType
 
struct  ValueType< ROOT::VecOps::RVec< T >, false >
 
struct  ValueType< T, false >
 

Typedefs

using Callback_t = std::function< void(unsigned int)>
 
template<bool IsSingleColumn, typename Ret_t >
using ColumnType_t = typename ColumnType< Ret_t, IsSingleColumn >::type
 When varying a single column, Ret_t is RVec<T> and ColumnType_t is T.
 
template<bool MustRemove, typename TypeList >
using RemoveFirstParameterIf_t = typename RemoveFirstParameterIf< MustRemove, TypeList >::type
 
template<bool MustRemove, typename TypeList >
using RemoveFirstTwoParametersIf_t = typename RemoveFirstTwoParametersIf< MustRemove, TypeList >::type
 
using SnapshotPtr_t = ROOT::RDF::RResultPtr< ROOT::RDF::RInterface< ROOT::Detail::RDF::RLoopManager, void > >
 

Functions

std::pair< std::vector< std::string >, std::vector< std::string > > AddSizeBranches (const std::vector< std::string > &branches, TTree *tree, std::vector< std::string > &&colsWithoutAliases, std::vector< std::string > &&colsWithAliases)
 Return copies of colsWithoutAliases and colsWithAliases with size branches for variable-sized array branches added in the right positions (i.e.
 
bool AtLeastOneEmptyString (const std::vector< std::string_view > strings)
 
std::shared_ptr< RJittedDefineBookDefineJit (std::string_view name, std::string_view expression, RLoopManager &lm, RDataSource *ds, const RColumnRegister &colRegister, const ColumnNames_t &branches, std::shared_ptr< RNodeBase > *upcastNodeOnHeap)
 Book the jitting of a Define call.
 
std::shared_ptr< RJittedDefineBookDefinePerSampleJit (std::string_view name, std::string_view expression, RLoopManager &lm, const RColumnRegister &colRegister, std::shared_ptr< RNodeBase > *upcastNodeOnHeap)
 Book the jitting of a DefinePerSample call.
 
std::shared_ptr< RDFDetail::RJittedFilterBookFilterJit (std::shared_ptr< RDFDetail::RNodeBase > *prevNodeOnHeap, std::string_view name, std::string_view expression, const ColumnNames_t &branches, const RColumnRegister &colRegister, TTree *tree, RDataSource *ds)
 Book the jitting of a Filter call.
 
std::shared_ptr< RJittedVariationBookVariationJit (const std::vector< std::string > &colNames, std::string_view variationName, const std::vector< std::string > &variationTags, std::string_view expression, RLoopManager &lm, RDataSource *ds, const RColumnRegister &colRegister, const ColumnNames_t &branches, std::shared_ptr< RNodeBase > *upcastNodeOnHeap, bool isSingleColumn)
 Book the jitting of a Vary call.
 
template<typename T >
constexpr std::size_t CacheLineStep ()
 Stepping through CacheLineStep<T> values in a vector<T> brings you to a new cache line.
 
void ChangeEmptyEntryRange (const ROOT::RDF::RNode &node, std::pair< ULong64_t, ULong64_t > &&newRange)
 
void ChangeSpec (const ROOT::RDF::RNode &node, ROOT::RDF::Experimental::RDatasetSpec &&spec)
 Changes the input dataset specification of an RDataFrame.
 
void CheckForDefinition (const std::string &where, std::string_view definedColView, const RColumnRegister &colRegister, const ColumnNames_t &treeColumns, const ColumnNames_t &dataSourceColumns)
 Throw if column definedColView is not already there.
 
void CheckForDuplicateSnapshotColumns (const ColumnNames_t &cols)
 
void CheckForNoVariations (const std::string &where, std::string_view definedColView, const RColumnRegister &colRegister)
 Throw if the column has systematic variations attached.
 
void CheckForRedefinition (const std::string &where, std::string_view definedColView, const RColumnRegister &colRegister, const ColumnNames_t &treeColumns, const ColumnNames_t &dataSourceColumns)
 Throw if column definedColView is already there.
 
void CheckReaderTypeMatches (const std::type_info &colType, const std::type_info &requestedType, const std::string &colName)
 
void CheckTypesAndPars (unsigned int nTemplateParams, unsigned int nColumnNames)
 
void CheckValidCppVarName (std::string_view var, const std::string &where)
 
template<typename T >
ROOT::RDF::Experimental::RResultMap< T > CloneResultAndAction (const ROOT::RDF::Experimental::RResultMap< T > &inmap)
 Clones an RResultMap and its corresponding RVariedAction.
 
template<typename T >
ROOT::RDF::RResultPtr< T > CloneResultAndAction (const ROOT::RDF::RResultPtr< T > &inptr)
 Creates a new RResultPtr with a cloned action.
 
SnapshotPtr_t CloneResultAndAction (const SnapshotPtr_t &inptr, const std::string &outputFileName)
 Creates a new RResultPtr with a cloned Snapshot action.
 
std::string ColumnName2ColumnTypeName (const std::string &colName, TTree *tree, RDataSource *ds, RDefineBase *define, bool vector2rvec)
 Return a string containing the type of the given branch.
 
std::string ComposeRVecTypeName (const std::string &valueType)
 
ColumnNames_t ConvertRegexToColumns (const ColumnNames_t &colNames, std::string_view columnNameRegexp, std::string_view callerName)
 
std::string DemangleTypeIdName (const std::type_info &typeInfo)
 
template<typename T >
void Erase (const T &that, std::vector< T > &v)
 Erase that element from vector v
 
ColumnNames_t FilterArraySizeColNames (const ColumnNames_t &columnNames, const std::string &action)
 Take a list of column names, return that list with entries starting by '#' filtered out.
 
template<typename T >
constexpr std::size_t FindIdxTrue (const T &arr)
 
std::vector< boolFindUndefinedDSColumns (const ColumnNames_t &requestedCols, const ColumnNames_t &definedCols)
 Return a bitset each element of which indicates whether the corresponding element in selectedColumns is the name of a column that must be defined via datasource.
 
ColumnNames_t FindUnknownColumns (const ColumnNames_t &requiredCols, const ColumnNames_t &datasetColumns, const RColumnRegister &definedCols, const ColumnNames_t &dataSourceColumns)
 
ULong64_t GetAddress (std::vector< std::string > &p)
 
ULong64_t GetAddress (TTree &p)
 
std::vector< std::string > GetBranchNames (TTree &t, bool allowDuplicates=true)
 Get all the branches names, including the ones of the friend trees.
 
std::string GetBranchOrLeafTypeName (TTree &t, const std::string &colName)
 Return the typename of object colName stored in t, if any.
 
template<typename T >
RDFDetail::RColumnReaderBaseGetColumnReader (unsigned int slot, RColumnReaderBase *defineOrVariationReader, RLoopManager &lm, TTreeReader *r, const std::string &colName)
 
template<typename... ColTypes>
std::array< RDFDetail::RColumnReaderBase *, sizeof...(ColTypes)> GetColumnReaders (unsigned int slot, TTreeReader *r, TypeList< ColTypes... >, const RColumnReadersInfo &colInfo, const std::string &variationName="nominal")
 Create a group of column readers, one per type in the parameter pack.
 
std::array< RDFDetail::RColumnReaderBase *, 0 > GetColumnReaders (unsigned int, TTreeReader *, TypeList<>, const RColumnReadersInfo &, const std::string &="nominal")
 
unsigned int GetColumnWidth (const std::vector< std::string > &names, const unsigned int minColumnSpace=8u)
 Get optimal column width for printing a table given the names and the desired minimal space between columns.
 
std::vector< std::string > GetFilterNames (const std::shared_ptr< RLoopManager > &loopManager)
 
std::string GetLeafTypeName (TLeaf *leaf, const std::string &colName)
 
unsigned int GetNSlots ()
 
template<std::size_t N, typename... Ts>
decltype(auto) GetNthElement (Ts &&...args)
 
std::vector< std::string > GetValidatedArgTypes (const ColumnNames_t &colNames, const RColumnRegister &colRegister, TTree *tree, RDataSource *ds, const std::string &context, bool vector2rvec)
 
ColumnNames_t GetValidatedColumnNames (RLoopManager &lm, const unsigned int nColumns, const ColumnNames_t &columns, const RColumnRegister &colRegister, RDataSource *ds)
 Given the desired number of columns and the user-provided list of columns:
 
template<typename dtype >
ULong64_t GetVectorAddress (std::vector< dtype > &p)
 
Long64_t InterpreterCalc (const std::string &code, const std::string &context="")
 Jit code in the interpreter with TInterpreter::Calc, throw in case of errors.
 
void InterpreterDeclare (const std::string &code)
 Declare code in the interpreter via the TInterpreter::Declare method, throw in case of errors.
 
bool IsInternalColumn (std::string_view colName)
 Whether custom column with name colName is an "internal" column such as rdfentry_ or rdfslot_.
 
bool IsStrInVec (const std::string &str, const std::vector< std::string > &vec)
 
std::string JitBuildAction (const ColumnNames_t &cols, std::shared_ptr< RDFDetail::RNodeBase > *prevNode, const std::type_info &helperArgType, const std::type_info &at, void *helperArgOnHeap, TTree *tree, const unsigned int nSlots, const RColumnRegister &colRegister, RDataSource *ds, std::weak_ptr< RJittedAction > *jittedActionOnHeap)
 
template<typename T >
ROOT::RDF::Experimental::RResultMap< T > MakeResultMap (std::shared_ptr< T > nominalResult, std::vector< std::shared_ptr< T > > &&variedResults, std::vector< std::string > &&keys, RLoopManager &lm, std::shared_ptr< ROOT::Internal::RDF::RActionBase > nominalAction, std::shared_ptr< ROOT::Internal::RDF::RActionBase > variedAction)
 
template<typename... ColumnTypes>
std::unique_ptr< RDataFrameMakeRVecDataFrame (std::function< void()> deleteRVecs, std::pair< std::string, ROOT::RVec< ColumnTypes > > const &...colNameProxyPairs)
 
template<typename... ArgTypes, typename F >
std::function< bool(ArgTypes...)> NotHelper (ROOT::TypeTraits::TypeList< ArgTypes... >, F &&f)
 
template<typename... ArgTypes, typename Ret , typename... Args>
std::function< bool(ArgTypes...)> NotHelper (ROOT::TypeTraits::TypeList< ArgTypes... >, Ret(*f)(Args...))
 
ParsedTreePath ParseTreePath (std::string_view fullTreeName)
 
template<std::size_t N, typename T , typename F >
auto PassAsVec (F &&f) -> PassAsVecHelper< std::make_index_sequence< N >, T, F >
 
std::string PrettyPrintAddr (const void *const addr)
 
template<typename T >
ROOT::RDF::RResultPtr< std::vector< T > > RDataFrameTake (ROOT::RDF::RNode df, std::string_view column)
 
void RemoveDuplicates (ColumnNames_t &columnNames)
 
std::vector< std::string > ReplaceDotWithUnderscore (const std::vector< std::string > &columnNames)
 Replace occurrences of '.
 
std::string ResolveAlias (const std::string &col, const std::map< std::string, std::string > &aliasMap)
 
const ColumnNames_t SelectColumns (unsigned int nRequiredNames, const ColumnNames_t &names, const ColumnNames_t &defaultNames)
 Choose between local column names or default column names, throw in case of errors.
 
void TriggerRun (ROOT::RDF::RNode node)
 Trigger the execution of an RDataFrame computation graph.
 
template<typename BufType , typename... ColTypes, std::size_t... Idx>
void TTreeAsFlatMatrix (std::index_sequence< Idx... >, TTree &tree, std::vector< BufType > &matrix, std::vector< std::string > &columns)
 
template<typename BufType , typename... ColTypes>
void TTreeAsFlatMatrixHelper (TTree &tree, std::vector< BufType > &matrix, std::vector< std::string > &columns)
 
std::string TypeID2TypeName (const std::type_info &id)
 Returns the name of a type starting from its type_info An empty string is returned in case of failure References and pointers are not supported since those cannot be stored in columns.
 
char TypeName2ROOTTypeName (const std::string &b)
 Convert type name (e.g.
 
const std::type_info & TypeName2TypeID (const std::string &name)
 Return the type_info associated to a name.
 
template<typename T >
std::vector< T > Union (const std::vector< T > &v1, const std::vector< T > &v2)
 Return a vector with all elements of v1 and v2 and duplicates removed.
 
std::shared_ptr< RNodeBaseUpcastNode (std::shared_ptr< RNodeBase > ptr)
 
void ValidateSnapshotOutput (const RSnapshotOptions &opts, const std::string &treeName, const std::string &fileName)
 
Helper functions for the case of a single column being varied.
template<typename T >
bool ResultsSizeEq (const T &results, std::size_t expected, std::size_t nColumns, std::true_type)
 
template<typename T >
std::size_t GetNVariations (const RVec< T > &results)
 
template<typename T >
void ResizeResults (ROOT::RVec< T > &results, std::size_t, std::size_t nVariations)
 
template<typename T >
void AssignResults (ROOT::RVec< T > &resStorage, ROOT::RVec< T > &&tmpResults)
 Assign into fLastResults[slot] without changing the addresses of its elements (we gave those addresses away in GetValuePtr) The callee is responsible of making sure that resStorage has the correct size.
 
template<typename T >
void * GetValuePtrHelper (ROOT::RVec< T > &v, std::size_t, std::size_t varIdx)
 
Helper functions for the case of multiple columns being varied simultaneously.
template<typename T >
bool ResultsSizeEq (const T &results, std::size_t expected, std::size_t, std::false_type)
 
template<typename T >
std::size_t GetNVariations (const std::vector< RVec< T > > &results)
 
template<typename T >
void ResizeResults (std::vector< ROOT::RVec< T > > &results, std::size_t nCols, std::size_t nVariations)
 
template<typename T >
void AssignResults (std::vector< ROOT::RVec< T > > &resStorage, ROOT::RVec< ROOT::RVec< T > > &&tmpResults)
 
template<typename T >
void * GetValuePtrHelper (std::vector< ROOT::RVec< T > > &v, std::size_t colIdx, std::size_t varIdx)
 

Variables

static constexpr std::size_t kCacheLineSize = 64
 

Typedef Documentation

◆ Callback_t

using ROOT::Internal::RDF::Callback_t = typedef std::function<void(unsigned int)>

Definition at line 58 of file RLoopManager.hxx.

◆ ColumnType_t

template<bool IsSingleColumn, typename Ret_t >
using ROOT::Internal::RDF::ColumnType_t = typedef typename ColumnType<Ret_t, IsSingleColumn>::type

When varying a single column, Ret_t is RVec<T> and ColumnType_t is T.

When varying multiple columns, Ret_t is RVec<RVec<T>> and ColumnType_t is T.

Definition at line 145 of file RVariation.hxx.

◆ RemoveFirstParameterIf_t

template<bool MustRemove, typename TypeList >
using ROOT::Internal::RDF::RemoveFirstParameterIf_t = typedef typename RemoveFirstParameterIf<MustRemove, TypeList>::type

Definition at line 151 of file Utils.hxx.

◆ RemoveFirstTwoParametersIf_t

template<bool MustRemove, typename TypeList >
using ROOT::Internal::RDF::RemoveFirstTwoParametersIf_t = typedef typename RemoveFirstTwoParametersIf<MustRemove, TypeList>::type

Definition at line 165 of file Utils.hxx.

◆ SnapshotPtr_t

Function Documentation

◆ AddSizeBranches()

std::pair< std::vector< std::string >, std::vector< std::string > > ROOT::Internal::RDF::AddSizeBranches ( const std::vector< std::string > &  branches,
TTree tree,
std::vector< std::string > &&  colsWithoutAliases,
std::vector< std::string > &&  colsWithAliases 
)

Return copies of colsWithoutAliases and colsWithAliases with size branches for variable-sized array branches added in the right positions (i.e.

before the array branches that need them).

Definition at line 975 of file RDFInterfaceUtils.cxx.

◆ AssignResults() [1/2]

template<typename T >
void ROOT::Internal::RDF::AssignResults ( ROOT::RVec< T > &  resStorage,
ROOT::RVec< T > &&  tmpResults 
)

Assign into fLastResults[slot] without changing the addresses of its elements (we gave those addresses away in GetValuePtr) The callee is responsible of making sure that resStorage has the correct size.

Definition at line 71 of file RVariation.hxx.

◆ AssignResults() [2/2]

template<typename T >
void ROOT::Internal::RDF::AssignResults ( std::vector< ROOT::RVec< T > > &  resStorage,
ROOT::RVec< ROOT::RVec< T > > &&  tmpResults 
)

Definition at line 112 of file RVariation.hxx.

◆ AtLeastOneEmptyString()

bool ROOT::Internal::RDF::AtLeastOneEmptyString ( const std::vector< std::string_view >  strings)

Definition at line 881 of file RDFInterfaceUtils.cxx.

◆ BookDefineJit()

std::shared_ptr< RJittedDefine > ROOT::Internal::RDF::BookDefineJit ( std::string_view  name,
std::string_view  expression,
RLoopManager lm,
RDataSource ds,
const RColumnRegister colRegister,
const ColumnNames_t branches,
std::shared_ptr< RNodeBase > *  upcastNodeOnHeap 
)

Book the jitting of a Define call.

Definition at line 691 of file RDFInterfaceUtils.cxx.

◆ BookDefinePerSampleJit()

std::shared_ptr< RJittedDefine > ROOT::Internal::RDF::BookDefinePerSampleJit ( std::string_view  name,
std::string_view  expression,
RLoopManager lm,
const RColumnRegister colRegister,
std::shared_ptr< RNodeBase > *  upcastNodeOnHeap 
)

Book the jitting of a DefinePerSample call.

Definition at line 734 of file RDFInterfaceUtils.cxx.

◆ BookFilterJit()

std::shared_ptr< RDFDetail::RJittedFilter > ROOT::Internal::RDF::BookFilterJit ( std::shared_ptr< RDFDetail::RNodeBase > *  prevNodeOnHeap,
std::string_view  name,
std::string_view  expression,
const ColumnNames_t branches,
const RColumnRegister colRegister,
TTree tree,
RDataSource ds 
)

Book the jitting of a Filter call.

Definition at line 642 of file RDFInterfaceUtils.cxx.

◆ BookVariationJit()

std::shared_ptr< RJittedVariation > ROOT::Internal::RDF::BookVariationJit ( const std::vector< std::string > &  colNames,
std::string_view  variationName,
const std::vector< std::string > &  variationTags,
std::string_view  expression,
RLoopManager lm,
RDataSource ds,
const RColumnRegister colRegister,
const ColumnNames_t branches,
std::shared_ptr< RNodeBase > *  upcastNodeOnHeap,
bool  isSingleColumn 
)

Book the jitting of a Vary call.

Definition at line 766 of file RDFInterfaceUtils.cxx.

◆ CacheLineStep()

template<typename T >
constexpr std::size_t ROOT::Internal::RDF::CacheLineStep ( )
constexpr

Stepping through CacheLineStep<T> values in a vector<T> brings you to a new cache line.

Useful to avoid false sharing.

Definition at line 222 of file Utils.hxx.

◆ ChangeEmptyEntryRange()

void ROOT::Internal::RDF::ChangeEmptyEntryRange ( const ROOT::RDF::RNode node,
std::pair< ULong64_t, ULong64_t > &&  newRange 
)

Definition at line 13 of file RInterface.cxx.

◆ ChangeSpec()

void ROOT::Internal::RDF::ChangeSpec ( const ROOT::RDF::RNode node,
ROOT::RDF::Experimental::RDatasetSpec &&  spec 
)

Changes the input dataset specification of an RDataFrame.

Parameters
nodeAny node of the computation graph.
specThe new specification.

Definition at line 26 of file RInterface.cxx.

◆ CheckForDefinition()

void ROOT::Internal::RDF::CheckForDefinition ( const std::string &  where,
std::string_view  definedColView,
const RColumnRegister colRegister,
const ColumnNames_t treeColumns,
const ColumnNames_t dataSourceColumns 
)

Throw if column definedColView is not already there.

Definition at line 513 of file RDFInterfaceUtils.cxx.

◆ CheckForDuplicateSnapshotColumns()

void ROOT::Internal::RDF::CheckForDuplicateSnapshotColumns ( const ColumnNames_t cols)

Definition at line 959 of file RDFInterfaceUtils.cxx.

◆ CheckForNoVariations()

void ROOT::Internal::RDF::CheckForNoVariations ( const std::string &  where,
std::string_view  definedColView,
const RColumnRegister colRegister 
)

Throw if the column has systematic variations attached.

Definition at line 544 of file RDFInterfaceUtils.cxx.

◆ CheckForRedefinition()

void ROOT::Internal::RDF::CheckForRedefinition ( const std::string &  where,
std::string_view  definedColView,
const RColumnRegister colRegister,
const ColumnNames_t treeColumns,
const ColumnNames_t dataSourceColumns 
)

Throw if column definedColView is already there.

Definition at line 486 of file RDFInterfaceUtils.cxx.

◆ CheckReaderTypeMatches()

void ROOT::Internal::RDF::CheckReaderTypeMatches ( const std::type_info &  colType,
const std::type_info &  requestedType,
const std::string &  colName 
)

Definition at line 402 of file RDFUtils.cxx.

◆ CheckTypesAndPars()

void ROOT::Internal::RDF::CheckTypesAndPars ( unsigned int  nTemplateParams,
unsigned int  nColumnNames 
)

Definition at line 556 of file RDFInterfaceUtils.cxx.

◆ CheckValidCppVarName()

void ROOT::Internal::RDF::CheckValidCppVarName ( std::string_view  var,
const std::string &  where 
)

Definition at line 411 of file RDFInterfaceUtils.cxx.

◆ CloneResultAndAction() [1/3]

template<typename T >
ROOT::RDF::Experimental::RResultMap< T > ROOT::Internal::RDF::CloneResultAndAction ( const ROOT::RDF::Experimental::RResultMap< T > &  inmap)

Clones an RResultMap and its corresponding RVariedAction.

Template Parameters
TThe type of the results held by the map.
Parameters
inmapThe map.
Returns
ROOT::RDF::Experimental::RResultMap<T> A new map with the cloned variations.

Definition at line 64 of file RResultMap.hxx.

◆ CloneResultAndAction() [2/3]

template<typename T >
ROOT::RDF::RResultPtr< T > ROOT::Internal::RDF::CloneResultAndAction ( const ROOT::RDF::RResultPtr< T > &  inptr)

Creates a new RResultPtr with a cloned action.

Template Parameters
TThe type of the result held by the RResultPtr.
Parameters
inptrThe pointer.
Returns
A new pointer with a cloned action.

Definition at line 52 of file RResultPtr.hxx.

◆ CloneResultAndAction() [3/3]

ROOT::Internal::RDF::SnapshotPtr_t ROOT::Internal::RDF::CloneResultAndAction ( const SnapshotPtr_t inptr,
const std::string &  outputFileName 
)

Creates a new RResultPtr with a cloned Snapshot action.

Parameters
inptrThe pointer.
outputFileNameA new name for the output file of the cloned action.
Returns
A new pointer with a cloned action.

This overload is needed since cloning a Snapshot node usually also involves changing the name of the output file, otherwise the cloned Snapshot would overwrite the same file.

Definition at line 18 of file RResultPtr.cxx.

◆ ColumnName2ColumnTypeName()

std::string ROOT::Internal::RDF::ColumnName2ColumnTypeName ( const std::string &  colName,
TTree tree,
RDataSource ds,
RDefineBase define,
bool  vector2rvec 
)

Return a string containing the type of the given branch.

Works both with real TTree branches and with temporary column created by Define. Throws if type name deduction fails. Note that for fixed- or variable-sized c-style arrays the returned type name will be RVec<T>. vector2rvec specifies whether typename 'std::vector<T>' should be converted to 'RVec<T>' or returned as is

Definition at line 229 of file RDFUtils.cxx.

◆ ComposeRVecTypeName()

std::string ROOT::Internal::RDF::ComposeRVecTypeName ( const std::string &  valueType)

Definition at line 140 of file RDFUtils.cxx.

◆ ConvertRegexToColumns()

ColumnNames_t ROOT::Internal::RDF::ConvertRegexToColumns ( const ColumnNames_t colNames,
std::string_view  columnNameRegexp,
std::string_view  callerName 
)

Definition at line 450 of file RDFInterfaceUtils.cxx.

◆ DemangleTypeIdName()

std::string ROOT::Internal::RDF::DemangleTypeIdName ( const std::type_info &  typeInfo)

Definition at line 440 of file RDFInterfaceUtils.cxx.

◆ Erase()

template<typename T >
void ROOT::Internal::RDF::Erase ( const T &  that,
std::vector< T > &  v 
)

Erase that element from vector v

Definition at line 189 of file Utils.hxx.

◆ FilterArraySizeColNames()

ColumnNames_t ROOT::Internal::RDF::FilterArraySizeColNames ( const ColumnNames_t columnNames,
const std::string &  action 
)

Take a list of column names, return that list with entries starting by '#' filtered out.

The function throws when filtering out a column this way.

Definition at line 372 of file RDFInterfaceUtils.cxx.

◆ FindIdxTrue()

template<typename T >
constexpr std::size_t ROOT::Internal::RDF::FindIdxTrue ( const T &  arr)
constexpr

Definition at line 231 of file Utils.hxx.

◆ FindUndefinedDSColumns()

std::vector< bool > ROOT::Internal::RDF::FindUndefinedDSColumns ( const ColumnNames_t requestedCols,
const ColumnNames_t definedCols 
)

Return a bitset each element of which indicates whether the corresponding element in selectedColumns is the name of a column that must be defined via datasource.

All elements of the returned vector are false if no data-source is present.

Definition at line 950 of file RDFInterfaceUtils.cxx.

◆ FindUnknownColumns()

ColumnNames_t ROOT::Internal::RDF::FindUnknownColumns ( const ColumnNames_t requiredCols,
const ColumnNames_t datasetColumns,
const RColumnRegister definedCols,
const ColumnNames_t dataSourceColumns 
)

Definition at line 595 of file RDFInterfaceUtils.cxx.

◆ GetAddress() [1/2]

ULong64_t ROOT::Internal::RDF::GetAddress ( std::vector< std::string > &  p)
inline

Definition at line 30 of file PyROOTHelpers.hxx.

◆ GetAddress() [2/2]

ULong64_t ROOT::Internal::RDF::GetAddress ( TTree p)
inline

Definition at line 34 of file PyROOTHelpers.hxx.

◆ GetBranchNames()

ColumnNames_t ROOT::Internal::RDF::GetBranchNames ( TTree t,
bool  allowDuplicates = true 
)

Get all the branches names, including the ones of the friend trees.

Definition at line 342 of file RLoopManager.cxx.

◆ GetBranchOrLeafTypeName()

std::string ROOT::Internal::RDF::GetBranchOrLeafTypeName ( TTree t,
const std::string &  colName 
)

Return the typename of object colName stored in t, if any.

Return an empty string if colName is not in t. Supported cases:

  • leaves corresponding to single values, variable- and fixed-length arrays, with following syntax:
  • TBranchElements, as long as TTree::GetBranch resolves their names

Definition at line 172 of file RDFUtils.cxx.

◆ GetColumnReader()

template<typename T >
RDFDetail::RColumnReaderBase * ROOT::Internal::RDF::GetColumnReader ( unsigned int  slot,
RColumnReaderBase defineOrVariationReader,
RLoopManager lm,
TTreeReader r,
const std::string &  colName 
)

Definition at line 44 of file ColumnReaderUtils.hxx.

◆ GetColumnReaders() [1/2]

template<typename... ColTypes>
std::array< RDFDetail::RColumnReaderBase *, sizeof...(ColTypes)> ROOT::Internal::RDF::GetColumnReaders ( unsigned int  slot,
TTreeReader r,
TypeList< ColTypes... >  ,
const RColumnReadersInfo colInfo,
const std::string &  variationName = "nominal" 
)

Create a group of column readers, one per type in the parameter pack.

Definition at line 77 of file ColumnReaderUtils.hxx.

◆ GetColumnReaders() [2/2]

std::array< RDFDetail::RColumnReaderBase *, 0 > ROOT::Internal::RDF::GetColumnReaders ( unsigned int  ,
TTreeReader ,
TypeList<>  ,
const RColumnReadersInfo ,
const std::string &  = "nominal" 
)
inline

Definition at line 94 of file ColumnReaderUtils.hxx.

◆ GetColumnWidth()

unsigned int ROOT::Internal::RDF::GetColumnWidth ( const std::vector< std::string > &  names,
const unsigned int  minColumnSpace = 8u 
)

Get optimal column width for printing a table given the names and the desired minimal space between columns.

Definition at line 390 of file RDFUtils.cxx.

◆ GetFilterNames()

std::vector< std::string > ROOT::Internal::RDF::GetFilterNames ( const std::shared_ptr< RLoopManager > &  loopManager)

Definition at line 614 of file RDFInterfaceUtils.cxx.

◆ GetLeafTypeName()

std::string ROOT::Internal::RDF::GetLeafTypeName ( TLeaf leaf,
const std::string &  colName 
)

Definition at line 145 of file RDFUtils.cxx.

◆ GetNSlots()

unsigned int ROOT::Internal::RDF::GetNSlots ( )

Definition at line 301 of file RDFUtils.cxx.

◆ GetNthElement()

template<std::size_t N, typename... Ts>
decltype(auto) ROOT::Internal::RDF::GetNthElement ( Ts &&...  args)

Definition at line 242 of file Utils.hxx.

◆ GetNVariations() [1/2]

template<typename T >
std::size_t ROOT::Internal::RDF::GetNVariations ( const RVec< T > &  results)

Definition at line 56 of file RVariation.hxx.

◆ GetNVariations() [2/2]

template<typename T >
std::size_t ROOT::Internal::RDF::GetNVariations ( const std::vector< RVec< T > > &  results)

Definition at line 96 of file RVariation.hxx.

◆ GetValidatedArgTypes()

std::vector< std::string > ROOT::Internal::RDF::GetValidatedArgTypes ( const ColumnNames_t colNames,
const RColumnRegister colRegister,
TTree tree,
RDataSource ds,
const std::string &  context,
bool  vector2rvec 
)

Definition at line 925 of file RDFInterfaceUtils.cxx.

◆ GetValidatedColumnNames()

ColumnNames_t ROOT::Internal::RDF::GetValidatedColumnNames ( RLoopManager lm,
const unsigned int  nColumns,
const ColumnNames_t columns,
const RColumnRegister colRegister,
RDataSource ds 
)

Given the desired number of columns and the user-provided list of columns:

  • fallback to using the first nColumns default columns if needed (or throw if nColumns > nDefaultColumns)
  • check that selected column names refer to valid branches, custom columns or datasource columns (throw if not)
  • replace column names from aliases by the actual column name Return the list of selected column names.

Definition at line 900 of file RDFInterfaceUtils.cxx.

◆ GetValuePtrHelper() [1/2]

template<typename T >
void * ROOT::Internal::RDF::GetValuePtrHelper ( ROOT::RVec< T > &  v,
std::size_t  ,
std::size_t  varIdx 
)

Definition at line 80 of file RVariation.hxx.

◆ GetValuePtrHelper() [2/2]

template<typename T >
void * ROOT::Internal::RDF::GetValuePtrHelper ( std::vector< ROOT::RVec< T > > &  v,
std::size_t  colIdx,
std::size_t  varIdx 
)

Definition at line 122 of file RVariation.hxx.

◆ GetVectorAddress()

template<typename dtype >
ULong64_t ROOT::Internal::RDF::GetVectorAddress ( std::vector< dtype > &  p)

Definition at line 25 of file PyROOTHelpers.hxx.

◆ InterpreterCalc()

Long64_t ROOT::Internal::RDF::InterpreterCalc ( const std::string &  code,
const std::string &  context = "" 
)

Jit code in the interpreter with TInterpreter::Calc, throw in case of errors.

The optional context parameter, if present, is mentioned in the error message. The pointer returned by the call to TInterpreter::Calc is returned in case of success.

Definition at line 345 of file RDFUtils.cxx.

◆ InterpreterDeclare()

void ROOT::Internal::RDF::InterpreterDeclare ( const std::string &  code)

Declare code in the interpreter via the TInterpreter::Declare method, throw in case of errors.

Definition at line 333 of file RDFUtils.cxx.

◆ IsInternalColumn()

bool ROOT::Internal::RDF::IsInternalColumn ( std::string_view  colName)

Whether custom column with name colName is an "internal" column such as rdfentry_ or rdfslot_.

Definition at line 381 of file RDFUtils.cxx.

◆ IsStrInVec()

bool ROOT::Internal::RDF::IsStrInVec ( const std::string &  str,
const std::vector< std::string > &  vec 
)

Definition at line 439 of file RDFUtils.cxx.

◆ JitBuildAction()

std::string ROOT::Internal::RDF::JitBuildAction ( const ColumnNames_t cols,
std::shared_ptr< RDFDetail::RNodeBase > *  prevNode,
const std::type_info &  helperArgType,
const std::type_info &  at,
void *  helperArgOnHeap,
TTree tree,
const unsigned int  nSlots,
const RColumnRegister colRegister,
RDataSource ds,
std::weak_ptr< RJittedAction > *  jittedActionOnHeap 
)

Definition at line 833 of file RDFInterfaceUtils.cxx.

◆ MakeResultMap()

template<typename T >
ROOT::RDF::Experimental::RResultMap< T > ROOT::Internal::RDF::MakeResultMap ( std::shared_ptr< T >  nominalResult,
std::vector< std::shared_ptr< T > > &&  variedResults,
std::vector< std::string > &&  keys,
RLoopManager lm,
std::shared_ptr< ROOT::Internal::RDF::RActionBase nominalAction,
std::shared_ptr< ROOT::Internal::RDF::RActionBase variedAction 
)

Definition at line 47 of file RResultMap.hxx.

◆ MakeRVecDataFrame()

template<typename... ColumnTypes>
std::unique_ptr< RDataFrame > ROOT::Internal::RDF::MakeRVecDataFrame ( std::function< void()>  deleteRVecs,
std::pair< std::string, ROOT::RVec< ColumnTypes > > const &...  colNameProxyPairs 
)

Definition at line 220 of file RVecDS.hxx.

◆ NotHelper() [1/2]

template<typename... ArgTypes, typename F >
std::function< bool(ArgTypes...)> ROOT::Internal::RDF::NotHelper ( ROOT::TypeTraits::TypeList< ArgTypes... >  ,
F &&  f 
)

Definition at line 37 of file RDFHelpers.hxx.

◆ NotHelper() [2/2]

template<typename... ArgTypes, typename Ret , typename... Args>
std::function< bool(ArgTypes...)> ROOT::Internal::RDF::NotHelper ( ROOT::TypeTraits::TypeList< ArgTypes... >  ,
Ret(*)(Args...)  f 
)

Definition at line 43 of file RDFHelpers.hxx.

◆ ParseTreePath()

ParsedTreePath ROOT::Internal::RDF::ParseTreePath ( std::string_view  fullTreeName)

Definition at line 619 of file RDFInterfaceUtils.cxx.

◆ PassAsVec()

template<std::size_t N, typename T , typename F >
auto ROOT::Internal::RDF::PassAsVec ( F &&  f) -> PassAsVecHelper<std::make_index_sequence<N>, T, F>

Definition at line 63 of file RDFHelpers.hxx.

◆ PrettyPrintAddr()

std::string ROOT::Internal::RDF::PrettyPrintAddr ( const void *const  addr)

Definition at line 632 of file RDFInterfaceUtils.cxx.

◆ RDataFrameTake()

template<typename T >
ROOT::RDF::RResultPtr< std::vector< T > > ROOT::Internal::RDF::RDataFrameTake ( ROOT::RDF::RNode  df,
std::string_view  column 
)

Definition at line 67 of file PyROOTHelpers.hxx.

◆ RemoveDuplicates()

void ROOT::Internal::RDF::RemoveDuplicates ( ColumnNames_t columnNames)

Definition at line 1012 of file RDFInterfaceUtils.cxx.

◆ ReplaceDotWithUnderscore()

std::vector< std::string > ROOT::Internal::RDF::ReplaceDotWithUnderscore ( const std::vector< std::string > &  columnNames)

Replace occurrences of '.

' with '_' in each string passed as argument. An Info message is printed when this happens. Dots at the end of the string are not replaced. An exception is thrown in case the resulting set of strings would contain duplicates.

Definition at line 314 of file RDFUtils.cxx.

◆ ResizeResults() [1/2]

template<typename T >
void ROOT::Internal::RDF::ResizeResults ( ROOT::RVec< T > &  results,
std::size_t  ,
std::size_t  nVariations 
)

Definition at line 62 of file RVariation.hxx.

◆ ResizeResults() [2/2]

template<typename T >
void ROOT::Internal::RDF::ResizeResults ( std::vector< ROOT::RVec< T > > &  results,
std::size_t  nCols,
std::size_t  nVariations 
)

Definition at line 103 of file RVariation.hxx.

◆ ResolveAlias()

std::string ROOT::Internal::RDF::ResolveAlias ( const std::string &  col,
const std::map< std::string, std::string > &  aliasMap 
)

Definition at line 398 of file RDFInterfaceUtils.cxx.

◆ ResultsSizeEq() [1/2]

template<typename T >
bool ROOT::Internal::RDF::ResultsSizeEq ( const T &  results,
std::size_t  expected,
std::size_t  nColumns,
std::true_type   
)

Definition at line 47 of file RVariation.hxx.

◆ ResultsSizeEq() [2/2]

template<typename T >
bool ROOT::Internal::RDF::ResultsSizeEq ( const T &  results,
std::size_t  expected,
std::size_t  ,
std::false_type   
)

Definition at line 89 of file RVariation.hxx.

◆ SelectColumns()

const ColumnNames_t ROOT::Internal::RDF::SelectColumns ( unsigned int  nRequiredNames,
const ColumnNames_t names,
const ColumnNames_t defaultNames 
)

Choose between local column names or default column names, throw in case of errors.

Definition at line 570 of file RDFInterfaceUtils.cxx.

◆ TriggerRun()

void ROOT::Internal::RDF::TriggerRun ( ROOT::RDF::RNode  node)

Trigger the execution of an RDataFrame computation graph.

Parameters
[in]nodeA node of the computation graph (not a result).

This function calls the RLoopManager::Run method on the fLoopManager data member of the input argument. It is intended for internal use only.

Definition at line 38 of file RInterface.cxx.

◆ TTreeAsFlatMatrix()

template<typename BufType , typename... ColTypes, std::size_t... Idx>
void ROOT::Internal::RDF::TTreeAsFlatMatrix ( std::index_sequence< Idx... >  ,
TTree tree,
std::vector< BufType > &  matrix,
std::vector< std::string > &  columns 
)

Definition at line 40 of file PyROOTHelpers.hxx.

◆ TTreeAsFlatMatrixHelper()

template<typename BufType , typename... ColTypes>
void ROOT::Internal::RDF::TTreeAsFlatMatrixHelper ( TTree tree,
std::vector< BufType > &  matrix,
std::vector< std::string > &  columns 
)

Definition at line 58 of file PyROOTHelpers.hxx.

◆ TypeID2TypeName()

std::string ROOT::Internal::RDF::TypeID2TypeName ( const std::type_info &  id)

Returns the name of a type starting from its type_info An empty string is returned in case of failure References and pointers are not supported since those cannot be stored in columns.

Note that this function will take a lock and may be a potential source of contention in multithreaded execution.

Definition at line 119 of file RDFUtils.cxx.

◆ TypeName2ROOTTypeName()

char ROOT::Internal::RDF::TypeName2ROOTTypeName ( const std::string &  b)

Convert type name (e.g.

"Float_t") to ROOT type code (e.g. 'F') – see TBranch documentation. Return a space ' ' in case no match was found.

Definition at line 259 of file RDFUtils.cxx.

◆ TypeName2TypeID()

const std::type_info & ROOT::Internal::RDF::TypeName2TypeID ( const std::string &  name)

Return the type_info associated to a name.

If the association fails, an exception is thrown. References and pointers are not supported since those cannot be stored in columns.

Definition at line 62 of file RDFUtils.cxx.

◆ Union()

template<typename T >
std::vector< T > ROOT::Internal::RDF::Union ( const std::vector< T > &  v1,
const std::vector< T > &  v2 
)

Return a vector with all elements of v1 and v2 and duplicates removed.

Precondition: each of v1 and v2 must not have duplicate elements.

Definition at line 268 of file Utils.hxx.

◆ UpcastNode()

std::shared_ptr< RNodeBase > ROOT::Internal::RDF::UpcastNode ( std::shared_ptr< RNodeBase ptr)

Definition at line 890 of file RDFInterfaceUtils.cxx.

◆ ValidateSnapshotOutput()

void ROOT::Internal::RDF::ValidateSnapshotOutput ( const RSnapshotOptions opts,
const std::string &  treeName,
const std::string &  fileName 
)

Definition at line 226 of file RDFActionHelpers.cxx.

Variable Documentation

◆ kCacheLineSize

constexpr std::size_t ROOT::Internal::RDF::kCacheLineSize = 64
staticconstexpr

Definition at line 216 of file Utils.hxx.