41 std::vector<std::string_view> names;
44 names.push_back(
kv.first);
54 [&
colName](
const DefinesMap_t::value_type &
kv) { return kv.first == colName; });
55 return it ==
fDefines->end() ? nullptr : &it->second->GetDefine();
85 [&
colAndDefIt](
const DefinesMap_t::value_type &
kv) { return kv.first == colAndDefIt->first; });
116 std::vector<std::string> variations;
118 for (
auto it =
range.first; it !=
range.second; ++it)
119 for (
const auto &
variationName : it->second->GetVariation().GetVariationNames())
145 for (
const auto &col :
columns) {
147 for (
const auto &var : variations)
152 [&col](
const DefinesMap_t::value_type &
kv) { return kv.first == col; });
154 for (
const auto &
v :
defineIt->second->GetDefine().GetVariations())
171 for (
auto it =
range.first; it !=
range.second; ++it) {
206 [&
aliasIt](
const AliasesMap_t::value_type &
kv) { return kv.first == *aliasIt; });
221 [&
name](
const AliasesMap_t::value_type &
kv) { return kv.first == name; }) !=
fAliases->end();
229 [&
name](
const DefinesMap_t::value_type &
kv) { return kv.first == name; }) !=
fDefines->end();
249 [&
alias](
const AliasesMap_t::value_type &
kv) { return kv.first == alias; });
274 [&
colName](
const DefinesMap_t::value_type &
kv) { return kv.first == colName; });
276 const auto &
actualType = it->second->GetDefine().GetTypeId();
312 std::vector<std::string_view>
ret;
315 ret.push_back(
kv.first);
317 ret.push_back(
kv.first);
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
The head node of a RDF computation graph.
std::set< std::pair< std::string_view, std::unique_ptr< ROOT::Internal::RDF::RVariationsWithReaders > > > & GetUniqueVariationsWithReaders()
std::set< std::pair< std::string_view, std::unique_ptr< ROOT::Internal::RDF::RDefinesWithReaders > > > & GetUniqueDefinesWithReaders()
unsigned int GetNSlots() const
ROOT::Internal::RDF::RStringCache & GetColumnNamesCache()
std::vector< std::string_view > GenerateColumnNames() const
Return the list of the names of the defined columns (Defines + Aliases).
bool IsDefineOrAlias(std::string_view name) const
Check if the provided name is tracked in the names list.
bool IsAlias(std::string_view name) const
Return true if the given column name is an existing alias.
std::vector< std::string_view > BuildDefineNames() const
Return the list of the names of defined columns (no aliases).
std::vector< std::pair< std::string_view, ROOT::Internal::RDF::RDefinesWithReaders * > > DefinesMap_t
std::vector< std::string > GetVariationsFor(const std::string &column) const
Get the names of the variations that directly provide alternative values for this column.
std::string_view ResolveAlias(std::string_view alias) const
Return the actual column name that the alias resolves to.
RDFDetail::RColumnReaderBase * GetReaderUnchecked(unsigned int slot, const std::string &colName, const std::string &variationName)
Return a RDefineReader or a RVariationReader, or nullptr if not available.
std::shared_ptr< const VariationsMap_t > fVariations
Immutable multimap of Variations, can be shared among several nodes.
RDFDetail::RColumnReaderBase * GetReader(unsigned int slot, const std::string &colName, const std::string &variationName, const std::type_info &tid)
Return a RDefineReader or a RVariationReader, or nullptr if not available.
std::shared_ptr< const DefinesMap_t > fDefines
Immutable collection of Defines, can be shared among several nodes.
bool IsDefine(std::string_view name) const
Return true if the given column name is an existing defined column.
void AddVariation(std::shared_ptr< RVariationBase > variation)
Register a new systematic variation.
std::vector< std::pair< std::string_view, std::string_view > > AliasesMap_t
std::shared_ptr< const AliasesMap_t > fAliases
Immutable map of Aliases, can be shared among several nodes.
void AddDefine(std::shared_ptr< RDFDetail::RDefineBase > column)
Add a new defined column.
RColumnRegister(ROOT::Detail::RDF::RLoopManager *lm)
std::vector< std::string > GetVariationDeps(const std::string &column) const
Get the names of all variations that directly or indirectly affect a given column.
ROOT::RDF::RVariationsDescription BuildVariationsDescription() const
ROOT::Detail::RDF::RLoopManager * fLoopManager
The head node of the computation graph this register belongs to. Never null.
std::unordered_multimap< std::string_view, ROOT::Internal::RDF::RVariationsWithReaders * > VariationsMap_t
void AddAlias(std::string_view alias, std::string_view colName)
Add a new alias to the ledger.
RDFDetail::RDefineBase * GetDefine(std::string_view colName) const
Return the RDefine for the requested column name, or nullptr.
RVariationsWithReaders * FindVariationAndReaders(const std::string &colName, const std::string &variationName)
Return the RVariationsWithReaders object that handles the specified variation of the specified column...
auto Insert(const std::string &string) -> decltype(fStrings)::const_iterator
Inserts the input string in the cache and returns an iterator to the cached string.
A descriptor for the systematic variations known to a given RDataFrame node.
const_iterator begin() const
const_iterator end() const
bool IsStrInVec(const std::string &str, const std::vector< std::string > &vec)
void CheckReaderTypeMatches(const std::type_info &colType, const std::type_info &requestedType, const std::string &colName)
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...