11 #ifndef ROOT_RDF_COLUMNREADERUTILS
12 #define ROOT_RDF_COLUMNREADERUTILS
40 std::unique_ptr<RDFDetail::RColumnReaderBase>
42 const std::vector<void *> *DSValuePtrsPtr,
const std::string &colName)
44 using Ret_t = std::unique_ptr<RDFDetail::RColumnReaderBase>;
46 if (define !=
nullptr)
49 if (DSValuePtrsPtr !=
nullptr) {
51 auto &DSValuePtrs = *DSValuePtrsPtr;
57 return ds->GetColumnReaders(slot, colName,
typeid(
T));
65 std::unique_ptr<RDFDetail::RColumnReaderBase>
67 const std::map<std::string, std::vector<void *>> &DSValuePtrsMap,
TTreeReader *
r,
70 const auto DSValuePtrsIt = DSValuePtrsMap.find(colName);
71 const std::vector<void *> *DSValuePtrsPtr = DSValuePtrsIt != DSValuePtrsMap.end() ? &DSValuePtrsIt->second :
nullptr;
72 R__ASSERT(define !=
nullptr ||
r !=
nullptr || DSValuePtrsPtr !=
nullptr ||
ds !=
nullptr);
73 return MakeColumnReader<T>(slot, define,
r,
ds, DSValuePtrsPtr, colName);
91 template <
typename... ColTypes>
92 std::array<std::unique_ptr<RDFDetail::RColumnReaderBase>,
sizeof...(ColTypes)>
102 const auto &customColMap = customCols.GetColumns();
105 std::array<std::unique_ptr<RDFDetail::RColumnReaderBase>,
sizeof...(ColTypes)> ret{
106 {{(++i, MakeColumnReadersHelper<ColTypes>(slot, isDefine[i] ? customColMap.at(colNames[i]).get() :
nullptr,
107 DSValuePtrsMap,
r,
ds, colNames[i]))}...}};