Logo ROOT   6.14/05
Reference Guide
Classes | Typedefs | Functions
ROOT::Internal::RDF Namespace Reference

Classes

class  RAction
 
class  RActionBase
 
class  TColumnValue
 Helper class that updates and returns TTree branches as well as RDataFrame temporary columns. More...
 
struct  TRDFValueTuple
 
struct  TRDFValueTuple< TypeList< BranchTypes... > >
 
struct  TReaderValueOrArray
 Choose between TTreeReader{Array,Value} depending on whether the branch type T is a RVec<T> or any other type (respectively). More...
 
struct  TReaderValueOrArray< RVec< T > >
 
class  TSlotStack
 

Typedefs

template<typename BranchType >
using RDFValueTuple_t = typename TRDFValueTuple< BranchType >::type
 
template<typename T >
using ReaderValueOrArray_t = typename TReaderValueOrArray< T >::Proxy_t
 

Functions

bool AtLeastOneEmptyString (const std::vector< std::string_view > strings)
 
void BookDefineJit (std::string_view name, std::string_view expression, RLoopManager &lm, RDataSource *ds)
 
void BookFilterJit (RJittedFilter *jittedFilter, void *prevNode, std::string_view prevNodeTypeName, std::string_view name, std::string_view expression, const std::map< std::string, std::string > &aliasMap, const ColumnNames_t &branches, const ColumnNames_t &customCols, TTree *tree, RDataSource *ds, unsigned int namespaceID)
 
std::string BuildLambdaString (const std::string &expr, const ColumnNames_t &vars, const ColumnNames_t &varTypes, bool hasReturnStmt)
 
void CheckCustomColumn (std::string_view definedCol, TTree *treePtr, const ColumnNames_t &customCols, const ColumnNames_t &dataSourceColumns)
 
void CheckTypesAndPars (unsigned int nTemplateParams, unsigned int nColumnNames)
 
std::string ColumnName2ColumnTypeName (const std::string &colName, unsigned int namespaceID, TTree *tree, RDataSource *ds, bool isCustomColumn, bool vector2tvec)
 Return a string containing the type of the given branch. More...
 
std::vector< std::string > ColumnTypesAsString (ColumnNames_t &colNames, ColumnNames_t &varNames, const std::map< std::string, std::string > &aliasMap, const ColumnNames_t &customColNames, TTree *tree, RDataSource *ds, std::string &expr, unsigned int namespaceID)
 
std::string ComposeRVecTypeName (const std::string &valueType)
 
void ExploreBranch (TTree &t, std::set< std::string > &bNamesReg, ColumnNames_t &bNames, TBranch *b, std::string prefix, std::string &friendName)
 
std::vector< bool > 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. More...
 
ColumnNames_t FindUnknownColumns (const ColumnNames_t &requiredCols, const ColumnNames_t &datasetColumns, const ColumnNames_t &definedCols, const ColumnNames_t &dataSourceColumns)
 
std::vector< std::string > FindUsedColumnNames (std::string_view expression, const ColumnNames_t &branches, const ColumnNames_t &customColumns, const ColumnNames_t &dsColumns, const std::map< std::string, std::string > &aliasMap)
 
ColumnNames_t GetBranchNames (TTree &t)
 Get all the branches names, including the ones of the friend trees. More...
 
void GetBranchNamesImpl (TTree &t, std::set< std::string > &bNamesReg, ColumnNames_t &bNames, std::set< TTree *> &analysedTrees, std::string &friendName)
 
std::string GetBranchOrLeafTypeName (TTree &t, const std::string &colName)
 Return the typename of object colName stored in t, if any. More...
 
std::string GetLeafTypeName (TLeaf *leaf, const std::string &colName)
 
unsigned int GetNSlots ()
 
ColumnNames_t GetTopLevelBranchNames (TTree &t)
 Get all the top-level branches names, including the ones of the friend trees. More...
 
void GetTopLevelBranchNamesImpl (TTree &t, std::set< std::string > &bNamesReg, ColumnNames_t &bNames, std::set< TTree *> &analysedTrees)
 
ColumnNames_t GetValidatedColumnNames (RLoopManager &lm, const unsigned int nColumns, const ColumnNames_t &columns, const ColumnNames_t &datasetColumns, const ColumnNames_t &validCustomColumns, RDataSource *ds)
 Given the desired number of columns and the user-provided list of columns: More...
 
template<typename RDFValueTuple , std::size_t... S>
void InitRDFValues (unsigned int slot, RDFValueTuple &valueTuple, TTreeReader *r, const ColumnNames_t &bn, const ColumnNames_t &tmpbn, const std::map< std::string, std::shared_ptr< RCustomColumnBase >> &customCols, std::index_sequence< S... >)
 Initialize a tuple of TColumnValues. More...
 
bool IsInternalColumn (std::string_view colName)
 
bool IsValidCppVarName (const std::string &var)
 
std::string JitBuildAndBook (const ColumnNames_t &bl, const std::string &prevNodeTypename, void *prevNode, const std::type_info &art, const std::type_info &at, const void *rOnHeap, TTree *tree, const unsigned int nSlots, const ColumnNames_t &customColumns, RDataSource *ds, const std::shared_ptr< RActionBase *> *const actionPtrPtr, unsigned int namespaceID)
 
std::string PrettyPrintAddr (void *addr)
 
unsigned int Replace (std::string &s, const std::string what, const std::string withWhat)
 
std::vector< std::string > ReplaceDots (const ColumnNames_t &colNames)
 
std::vector< std::string > ReplaceDotWithUnderscore (const std::vector< std::string > &columnNames)
 Replace occurrences of '. More...
 
template<typename ValueTuple , std::size_t... S>
void ResetRDFValueTuple (ValueTuple &values, std::index_sequence< S... >)
 Clear the proxies of a tuple of TColumnValues. More...
 
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. More...
 
void TryToJitExpression (const std::string &expression, const ColumnNames_t &colNames, const std::vector< std::string > &colTypes, bool hasReturnStmt)
 
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. More...
 
char TypeName2ROOTTypeName (const std::string &b)
 Convert type name (e.g. More...
 
const std::type_info & TypeName2TypeID (const std::string &name)
 Return the type_info associated to a name. More...
 
std::shared_ptr< RFilterBaseUpcastNode (const std::shared_ptr< RFilterBase > ptr)
 
std::shared_ptr< RCustomColumnBaseUpcastNode (const std::shared_ptr< RCustomColumnBase > ptr)
 
std::shared_ptr< RRangeBaseUpcastNode (const std::shared_ptr< RRangeBase > ptr)
 
std::shared_ptr< RLoopManagerUpcastNode (const std::shared_ptr< RLoopManager > ptr)
 
std::shared_ptr< RJittedFilterUpcastNode (const std::shared_ptr< RJittedFilter > ptr)
 
void UpdateList (std::set< std::string > &bNamesReg, ColumnNames_t &bNames, std::string &branchName, std::string &friendName)
 

Typedef Documentation

◆ RDFValueTuple_t

template<typename BranchType >
using ROOT::Internal::RDF::RDFValueTuple_t = typedef typename TRDFValueTuple<BranchType>::type

Definition at line 327 of file RDFNodes.hxx.

◆ ReaderValueOrArray_t

template<typename T >
using ROOT::Internal::RDF::ReaderValueOrArray_t = typedef typename TReaderValueOrArray<T>::Proxy_t

Definition at line 38 of file RDFNodesUtils.hxx.

Function Documentation

◆ AtLeastOneEmptyString()

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

Definition at line 692 of file RDFInterfaceUtils.cxx.

◆ BookDefineJit()

void ROOT::Internal::RDF::BookDefineJit ( std::string_view  name,
std::string_view  expression,
RLoopManager lm,
RDataSource ds 
)

Definition at line 577 of file RDFInterfaceUtils.cxx.

◆ BookFilterJit()

void ROOT::Internal::RDF::BookFilterJit ( RJittedFilter jittedFilter,
void prevNode,
std::string_view  prevNodeTypeName,
std::string_view  name,
std::string_view  expression,
const std::map< std::string, std::string > &  aliasMap,
const ColumnNames_t &  branches,
const ColumnNames_t &  customCols,
TTree tree,
RDataSource ds,
unsigned int  namespaceID 
)

Definition at line 532 of file RDFInterfaceUtils.cxx.

◆ BuildLambdaString()

std::string ROOT::Internal::RDF::BuildLambdaString ( const std::string &  expr,
const ColumnNames_t &  vars,
const ColumnNames_t &  varTypes,
bool  hasReturnStmt 
)

Definition at line 500 of file RDFInterfaceUtils.cxx.

◆ CheckCustomColumn()

void ROOT::Internal::RDF::CheckCustomColumn ( std::string_view  definedCol,
TTree treePtr,
const ColumnNames_t &  customCols,
const ColumnNames_t &  dataSourceColumns 
)

Definition at line 231 of file RDFInterfaceUtils.cxx.

◆ CheckTypesAndPars()

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

Definition at line 263 of file RDFInterfaceUtils.cxx.

◆ ColumnName2ColumnTypeName()

std::string ROOT::Internal::RDF::ColumnName2ColumnTypeName ( const std::string &  colName,
unsigned int  namespaceID,
TTree tree,
RDataSource ds,
bool  isCustomColumn,
bool  vector2tvec 
)

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>. vector2tvec specifies whether typename 'std::vector<T>' should be converted to 'RVec<T>' or returned as is

Definition at line 184 of file RDFUtils.cxx.

◆ ColumnTypesAsString()

std::vector<std::string> ROOT::Internal::RDF::ColumnTypesAsString ( ColumnNames_t &  colNames,
ColumnNames_t &  varNames,
const std::map< std::string, std::string > &  aliasMap,
const ColumnNames_t &  customColNames,
TTree tree,
RDataSource ds,
std::string &  expr,
unsigned int  namespaceID 
)

Definition at line 415 of file RDFInterfaceUtils.cxx.

◆ ComposeRVecTypeName()

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

Definition at line 116 of file RDFUtils.cxx.

◆ ExploreBranch()

void ROOT::Internal::RDF::ExploreBranch ( TTree t,
std::set< std::string > &  bNamesReg,
ColumnNames_t &  bNames,
TBranch b,
std::string  prefix,
std::string &  friendName 
)

Definition at line 66 of file RDFInterfaceUtils.cxx.

◆ 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 770 of file RDFInterfaceUtils.cxx.

◆ FindUnknownColumns()

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

Definition at line 302 of file RDFInterfaceUtils.cxx.

◆ FindUsedColumnNames()

std::vector<std::string> ROOT::Internal::RDF::FindUsedColumnNames ( std::string_view  expression,
const ColumnNames_t &  branches,
const ColumnNames_t &  customColumns,
const ColumnNames_t &  dsColumns,
const std::map< std::string, std::string > &  aliasMap 
)

Definition at line 342 of file RDFInterfaceUtils.cxx.

◆ GetBranchNames()

ColumnNames_t ROOT::Internal::RDF::GetBranchNames ( TTree t)

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

Definition at line 159 of file RDFInterfaceUtils.cxx.

◆ GetBranchNamesImpl()

void ROOT::Internal::RDF::GetBranchNamesImpl ( TTree t,
std::set< std::string > &  bNamesReg,
ColumnNames_t &  bNames,
std::set< TTree *> &  analysedTrees,
std::string &  friendName 
)

Definition at line 87 of file RDFInterfaceUtils.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 147 of file RDFUtils.cxx.

◆ GetLeafTypeName()

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

Definition at line 121 of file RDFUtils.cxx.

◆ GetNSlots()

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

Definition at line 244 of file RDFUtils.cxx.

◆ GetTopLevelBranchNames()

ColumnNames_t ROOT::Internal::RDF::GetTopLevelBranchNames ( TTree t)

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

Definition at line 200 of file RDFInterfaceUtils.cxx.

◆ GetTopLevelBranchNamesImpl()

void ROOT::Internal::RDF::GetTopLevelBranchNamesImpl ( TTree t,
std::set< std::string > &  bNamesReg,
ColumnNames_t &  bNames,
std::set< TTree *> &  analysedTrees 
)

Definition at line 169 of file RDFInterfaceUtils.cxx.

◆ GetValidatedColumnNames()

ColumnNames_t ROOT::Internal::RDF::GetValidatedColumnNames ( RLoopManager lm,
const unsigned int  nColumns,
const ColumnNames_t &  columns,
const ColumnNames_t &  datasetColumns,
const ColumnNames_t &  validCustomColumns,
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) Return the list of selected column names.

Definition at line 732 of file RDFInterfaceUtils.cxx.

◆ InitRDFValues()

template<typename RDFValueTuple , std::size_t... S>
void ROOT::Internal::RDF::InitRDFValues ( unsigned int  slot,
RDFValueTuple &  valueTuple,
TTreeReader r,
const ColumnNames_t &  bn,
const ColumnNames_t &  tmpbn,
const std::map< std::string, std::shared_ptr< RCustomColumnBase >> &  customCols,
std::index_sequence< S... >   
)

Initialize a tuple of TColumnValues.

For real TTree branches a TTreeReader{Array,Value} is built and passed to the TColumnValue. For temporary columns a pointer to the corresponding variable is passed instead.

Definition at line 45 of file RDFNodesUtils.hxx.

◆ IsInternalColumn()

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

Definition at line 322 of file RDFInterfaceUtils.cxx.

◆ IsValidCppVarName()

bool ROOT::Internal::RDF::IsValidCppVarName ( const std::string &  var)

Definition at line 209 of file RDFInterfaceUtils.cxx.

◆ JitBuildAndBook()

std::string ROOT::Internal::RDF::JitBuildAndBook ( const ColumnNames_t &  bl,
const std::string &  prevNodeTypename,
void prevNode,
const std::type_info &  art,
const std::type_info &  at,
const void rOnHeap,
TTree tree,
const unsigned int  nSlots,
const ColumnNames_t &  customColumns,
RDataSource ds,
const std::shared_ptr< RActionBase *> *const  actionPtrPtr,
unsigned int  namespaceID 
)

Definition at line 630 of file RDFInterfaceUtils.cxx.

◆ PrettyPrintAddr()

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

Definition at line 522 of file RDFInterfaceUtils.cxx.

◆ Replace()

unsigned int ROOT::Internal::RDF::Replace ( std::string &  s,
const std::string  what,
const std::string  withWhat 
)

Definition at line 328 of file RDFInterfaceUtils.cxx.

◆ ReplaceDots()

std::vector<std::string> ROOT::Internal::RDF::ReplaceDots ( const ColumnNames_t &  colNames)

Definition at line 401 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 257 of file RDFUtils.cxx.

◆ ResetRDFValueTuple()

template<typename ValueTuple , std::size_t... S>
void ROOT::Internal::RDF::ResetRDFValueTuple ( ValueTuple &  values,
std::index_sequence< S... >   
)

Clear the proxies of a tuple of TColumnValues.

Definition at line 331 of file RDFNodes.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 277 of file RDFInterfaceUtils.cxx.

◆ TryToJitExpression()

void ROOT::Internal::RDF::TryToJitExpression ( const std::string &  expression,
const ColumnNames_t &  colNames,
const std::vector< std::string > &  colTypes,
bool  hasReturnStmt 
)

Definition at line 471 of file RDFInterfaceUtils.cxx.

◆ 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.

Definition at line 82 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 217 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 40 of file RDFUtils.cxx.

◆ UpcastNode() [1/5]

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

Definition at line 702 of file RDFInterfaceUtils.cxx.

◆ UpcastNode() [2/5]

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

Definition at line 707 of file RDFInterfaceUtils.cxx.

◆ UpcastNode() [3/5]

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

Definition at line 712 of file RDFInterfaceUtils.cxx.

◆ UpcastNode() [4/5]

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

Definition at line 717 of file RDFInterfaceUtils.cxx.

◆ UpcastNode() [5/5]

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

Definition at line 722 of file RDFInterfaceUtils.cxx.

◆ UpdateList()

void ROOT::Internal::RDF::UpdateList ( std::set< std::string > &  bNamesReg,
ColumnNames_t &  bNames,
std::string &  branchName,
std::string &  friendName 
)

Definition at line 52 of file RDFInterfaceUtils.cxx.