11#ifndef ROOT_RDF_COLUMNREADERUTILS
12#define ROOT_RDF_COLUMNREADERUTILS
47 if (defineOrVariationReader !=
nullptr)
48 return defineOrVariationReader;
53 if (datasetColReader !=
nullptr)
54 return datasetColReader;
56 assert(
r !=
nullptr &&
"We could not find a reader for this column, this should never happen at this point.");
59 auto treeColReader = std::make_unique<RTreeColumnReader<T>>(*
r, colName);
75template <
typename... ColTypes>
78 const std::string &variationName =
"nominal")
87 (++i, GetColumnReader<ColTypes>(slot, colRegister.GetReader(slot, colNames[i], variationName,
typeid(ColTypes)),
88 lm,
r, colNames[i]))...};
93inline std::array<RDFDetail::RColumnReaderBase *, 0>
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
The head node of a RDF computation graph.
RColumnReaderBase * GetDatasetColumnReader(unsigned int slot, const std::string &col, const std::type_info &ti) const
RColumnReaderBase * AddTreeColumnReader(unsigned int slot, const std::string &col, std::unique_ptr< RColumnReaderBase > &&reader, const std::type_info &ti)
Register a new RTreeColumnReader with this RLoopManager.
A binder for user-defined columns, variations and aliases.
A simple, robust and fast interface to read values from ROOT columnar datasets such as TTree,...
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.
RDFDetail::RColumnReaderBase * GetColumnReader(unsigned int slot, RColumnReaderBase *defineOrVariationReader, RLoopManager &lm, TTreeReader *r, const std::string &colName)
ROOT type_traits extensions.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
This type aggregates some of the arguments passed to GetColumnReaders.
RLoopManager & fLoopManager
RColumnRegister & fColRegister
const std::vector< std::string > & fColNames
Lightweight storage for a collection of types.