Logo ROOT  
Reference Guide
ROOT::Internal::RDF Namespace Reference

Namespaces

 GraphDrawing
 

Classes

class  DisplayHelper
 
class  PassAsVecHelper
 
class  PassAsVecHelper< std::index_sequence< N... >, T, F >
 
class  RAction
 A RDataFrame node that produces a result. More...
 
class  RActionBase
 
class  RBookedDefines
 Encapsulates the columns defined by the user. More...
 
class  RColumnReaderBase
 Pure virtual base class for all column reader types. More...
 
struct  RColumnReadersInfo
 This type aggregates some of the arguments passed to InitColumnReaders. More...
 
class  RDefineReader
 Column reader for defined (aka custom) columns. 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...
 
class  RJittedAction
 
class  RNumpyDS
 A RDataSource implementation which takes a collection of RVecs, which are able to adopt data from Numpy arrays. More...
 
class  RRootDS
 
class  RSlotStack
 This is an helper class to allow to pick a slot resorting to a map indexed by thread ids. 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...
 

Functions

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 RDFInternal::RBookedDefines &customCols, const ColumnNames_t &branches, std::shared_ptr< RNodeBase > *upcastNodeOnHeap)
 
void BookFilterJit (const std::shared_ptr< RJittedFilter > &jittedFilter, std::shared_ptr< RDFDetail::RNodeBase > *prevNodeOnHeap, std::string_view name, std::string_view expression, const std::map< std::string, std::string > &aliasMap, const ColumnNames_t &branches, const RDFInternal::RBookedDefines &customCols, TTree *tree, RDataSource *ds)
 
void CheckDefine (std::string_view definedCol, TTree *treePtr, const ColumnNames_t &customCols, const std::map< std::string, std::string > &aliasMap, const ColumnNames_t &dataSourceColumns)
 
void CheckDefineType (RDFDetail::RDefineBase &define, const std::type_info &tid)
 
void CheckTypesAndPars (unsigned int nTemplateParams, unsigned int nColumnNames)
 
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. More...
 
std::string ComposeRVecTypeName (const std::string &valueType)
 
ColumnNames_t ConvertRegexToColumns (const RDFInternal::RBookedDefines &defines, TTree *tree, ROOT::RDF::RDataSource *dataSource, std::string_view columnNameRegexp, std::string_view callerName)
 
HeadNode_t CreateSnapshotRDF (const ColumnNames_t &validCols, std::string_view treeName, std::string_view fileName, bool isLazy, RLoopManager &loopManager, std::unique_ptr< RDFInternal::RActionBase > actionPtr)
 
std::string DemangleTypeIdName (const std::type_info &typeInfo)
 
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. More...
 
ColumnNames_t FindUnknownColumns (const ColumnNames_t &requiredCols, const ColumnNames_t &datasetColumns, const ColumnNames_t &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. More...
 
std::string GetBranchOrLeafTypeName (TTree &t, const std::string &colName)
 Return the typename of object colName stored in t, if any. More...
 
std::vector< std::string > GetFilterNames (const std::shared_ptr< RLoopManager > &loopManager)
 
std::string GetLeafTypeName (TLeaf *leaf, const std::string &colName)
 
unsigned int GetNSlots ()
 
std::vector< std::string > GetValidatedArgTypes (const ColumnNames_t &colNames, const RBookedDefines &defines, TTree *tree, RDataSource *ds, const std::string &context, bool vector2rvec)
 
ColumnNames_t GetValidatedColumnNames (RLoopManager &lm, const unsigned int nColumns, const ColumnNames_t &columns, const ColumnNames_t &validDefines, RDataSource *ds)
 Given the desired number of columns and the user-provided list of columns: More...
 
template<typename dtype >
ULong64_t GetVectorAddress (std::vector< dtype > &p)
 
Long64_t InterpreterCalc (const std::string &code, const std::string &context)
 
void InterpreterDeclare (const std::string &code)
 
bool IsInternalColumn (std::string_view colName)
 
std::string JitBuildAction (const ColumnNames_t &bl, std::shared_ptr< RDFDetail::RNodeBase > *prevNode, const std::type_info &art, const std::type_info &at, void *rOnHeap, TTree *tree, const unsigned int nSlots, const RDFInternal::RBookedDefines &customCols, RDataSource *ds, std::weak_ptr< RJittedAction > *jittedActionOnHeap)
 
template<typename T >
std::unique_ptr< RColumnReaderBaseMakeColumnReader (unsigned int slot, RDFDetail::RDefineBase *define, TTreeReader *r, const std::vector< void * > *DSValuePtrsPtr, const std::string &colName)
 
template<typename... ColTypes>
std::array< std::unique_ptr< RColumnReaderBase >, sizeof...(ColTypes)> MakeColumnReaders (unsigned int slot, TTreeReader *r, TypeList< ColTypes... >, const RColumnReadersInfo &colInfo)
 Create a group of column readers, one per type in the parameter pack. More...
 
template<typename... ColumnTypes>
RDataFrameMakeNumpyDataFrame (PyObject *pyRVecs, std::pair< std::string, ROOT::RVec< ColumnTypes > * > &&... colNameProxyPairs)
 
template<typename T >
std::unique_ptr< RColumnReaderBaseMakeOneColumnReader (unsigned int slot, RDFDetail::RDefineBase *define, const std::map< std::string, std::vector< void * >> &DSValuePtrsMap, TTreeReader *r, const std::string &colName)
 
RDataFrame MakeRootDataFrame (std::string_view treeName, std::string_view fileNameGlob)
 
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...))
 
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)
 
std::vector< std::string > ReplaceDotWithUnderscore (const std::vector< std::string > &columnNames)
 Replace occurrences of '. 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...
 
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. 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< RNodeBaseUpcastNode (std::shared_ptr< RNodeBase > ptr)
 
void ValidateSnapshotOutput (const RSnapshotOptions &opts, const std::string &treeName, const std::string &fileName)
 

Function Documentation

◆ AtLeastOneEmptyString()

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

Definition at line 667 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 RDFInternal::RBookedDefines customCols,
const ColumnNames_t branches,
std::shared_ptr< RNodeBase > *  upcastNodeOnHeap 
)

Definition at line 575 of file RDFInterfaceUtils.cxx.

◆ BookFilterJit()

void ROOT::Internal::RDF::BookFilterJit ( const std::shared_ptr< RJittedFilter > &  jittedFilter,
std::shared_ptr< RDFDetail::RNodeBase > *  prevNodeOnHeap,
std::string_view  name,
std::string_view  expression,
const std::map< std::string, std::string > &  aliasMap,
const ColumnNames_t branches,
const RDFInternal::RBookedDefines customCols,
TTree tree,
RDataSource ds 
)

Definition at line 529 of file RDFInterfaceUtils.cxx.

◆ CheckDefine()

void ROOT::Internal::RDF::CheckDefine ( std::string_view  definedCol,
TTree treePtr,
const ColumnNames_t customCols,
const std::map< std::string, std::string > &  aliasMap,
const ColumnNames_t dataSourceColumns 
)

Definition at line 416 of file RDFInterfaceUtils.cxx.

◆ CheckDefineType()

void ROOT::Internal::RDF::CheckDefineType ( RDFDetail::RDefineBase define,
const std::type_info &  tid 
)

Definition at line 20 of file RDefineReader.cxx.

◆ CheckTypesAndPars()

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

Definition at line 457 of file RDFInterfaceUtils.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 customColID is only used if isDefine is true, and must correspond to the custom column's unique identifier returned by its GetID() method.

Definition at line 212 of file RDFUtils.cxx.

◆ ComposeRVecTypeName()

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

Definition at line 119 of file RDFUtils.cxx.

◆ ConvertRegexToColumns()

ColumnNames_t ROOT::Internal::RDF::ConvertRegexToColumns ( const RDFInternal::RBookedDefines defines,
TTree tree,
ROOT::RDF::RDataSource dataSource,
std::string_view  columnNameRegexp,
std::string_view  callerName 
)

Definition at line 359 of file RDFInterfaceUtils.cxx.

◆ CreateSnapshotRDF()

HeadNode_t ROOT::Internal::RDF::CreateSnapshotRDF ( const ColumnNames_t validCols,
std::string_view  treeName,
std::string_view  fileName,
bool  isLazy,
RLoopManager loopManager,
std::unique_ptr< RDFInternal::RActionBase actionPtr 
)

Definition at line 332 of file RDFInterfaceUtils.cxx.

◆ DemangleTypeIdName()

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

Definition at line 350 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 745 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 496 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 210 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 150 of file RDFUtils.cxx.

◆ GetFilterNames()

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

Definition at line 516 of file RDFInterfaceUtils.cxx.

◆ GetLeafTypeName()

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

Definition at line 124 of file RDFUtils.cxx.

◆ GetNSlots()

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

Definition at line 271 of file RDFUtils.cxx.

◆ GetValidatedArgTypes()

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

Definition at line 721 of file RDFInterfaceUtils.cxx.

◆ GetValidatedColumnNames()

ColumnNames_t ROOT::Internal::RDF::GetValidatedColumnNames ( RLoopManager lm,
const unsigned int  nColumns,
const ColumnNames_t columns,
const ColumnNames_t validDefines,
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 686 of file RDFInterfaceUtils.cxx.

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

Definition at line 313 of file RDFUtils.cxx.

◆ InterpreterDeclare()

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

Definition at line 303 of file RDFUtils.cxx.

◆ IsInternalColumn()

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

Definition at line 328 of file RDFUtils.cxx.

◆ JitBuildAction()

std::string ROOT::Internal::RDF::JitBuildAction ( const ColumnNames_t bl,
std::shared_ptr< RDFDetail::RNodeBase > *  prevNode,
const std::type_info &  art,
const std::type_info &  at,
void rOnHeap,
TTree tree,
const unsigned int  nSlots,
const RDFInternal::RBookedDefines customCols,
RDataSource ds,
std::weak_ptr< RJittedAction > *  jittedActionOnHeap 
)

Definition at line 619 of file RDFInterfaceUtils.cxx.

◆ MakeColumnReader()

template<typename T >
std::unique_ptr<RColumnReaderBase> ROOT::Internal::RDF::MakeColumnReader ( unsigned int  slot,
RDFDetail::RDefineBase define,
TTreeReader r,
const std::vector< void * > *  DSValuePtrsPtr,
const std::string &  colName 
)

Definition at line 39 of file ColumnReaderUtils.hxx.

◆ MakeColumnReaders()

template<typename... ColTypes>
std::array<std::unique_ptr<RColumnReaderBase>, sizeof...(ColTypes)> ROOT::Internal::RDF::MakeColumnReaders ( unsigned int  slot,
TTreeReader r,
TypeList< ColTypes... >  ,
const RColumnReadersInfo colInfo 
)

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

colInfo.fColNames and colInfo.fIsDefine are expected to have size equal to the parameter pack, and elements ordered accordingly, i.e. fIsDefine[0] refers to fColNames[0] which is of type "ColTypes[0]".

Definition at line 82 of file ColumnReaderUtils.hxx.

◆ MakeNumpyDataFrame()

template<typename... ColumnTypes>
RDataFrame* ROOT::Internal::RDF::MakeNumpyDataFrame ( PyObject pyRVecs,
std::pair< std::string, ROOT::RVec< ColumnTypes > * > &&...  colNameProxyPairs 
)

Definition at line 225 of file RNumpyDS.hxx.

◆ MakeOneColumnReader()

template<typename T >
std::unique_ptr<RColumnReaderBase> ROOT::Internal::RDF::MakeOneColumnReader ( unsigned int  slot,
RDFDetail::RDefineBase define,
const std::map< std::string, std::vector< void * >> &  DSValuePtrsMap,
TTreeReader r,
const std::string &  colName 
)

Definition at line 56 of file ColumnReaderUtils.hxx.

◆ MakeRootDataFrame()

RDataFrame ROOT::Internal::RDF::MakeRootDataFrame ( std::string_view  treeName,
std::string_view  fileNameGlob 
)

Definition at line 164 of file RRootDS.cxx.

◆ 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 33 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 39 of file RDFHelpers.hxx.

◆ 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 59 of file RDFHelpers.hxx.

◆ PrettyPrintAddr()

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

Definition at line 521 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.

◆ 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 284 of file RDFUtils.cxx.

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

Definition at line 85 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 244 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 43 of file RDFUtils.cxx.

◆ UpcastNode()

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

Definition at line 676 of file RDFInterfaceUtils.cxx.

◆ ValidateSnapshotOutput()

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

Definition at line 236 of file RDFActionHelpers.cxx.