11 #ifndef ROOT_RDFNODES_UTILS 12 #define ROOT_RDFNODES_UTILS 44 template <
typename RDFValueTuple, std::size_t...
S>
46 const ColumnNames_t &tmpbn,
47 const std::map<std::string, std::shared_ptr<RCustomColumnBase>> &customCols,
53 std::array<bool,
sizeof...(S)> isTmpColumn;
54 for (
auto i = 0u; i < isTmpColumn.size(); ++i)
55 isTmpColumn[i] = std::find(tmpbn.begin(), tmpbn.end(), bn.at(i)) != tmpbn.end();
60 int expander[] = {(isTmpColumn[
S] ? std::get<S>(valueTuple).SetTmpColumn(slot, customCols.at(bn.at(
S)).
get())
61 : std::get<S>(valueTuple).MakeProxy(r, bn.at(
S)),
TTreeReader is a simple, robust and fast interface to read values from a TTree, TChain or TNtuple...
Namespace for new ROOT classes and functions.
typename TReaderValueOrArray< T >::Proxy_t ReaderValueOrArray_t
Extracts data from a TTree.
A "std::vector"-like collection of values implementing handy operation to analyse them...
RooArgSet S(const RooAbsArg &v1)
Choose between TTreeReader{Array,Value} depending on whether the branch type T is a RVec<T> or any ot...
Extracts array data from a TTree.
typedef void((*Func_t)())
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.