20 : fDefine(std::move(define)), fReadersPerVariation(nSlots), fCachedColNames(cachedColNames)
28 auto nameIt = fCachedColNames.Insert(std::string(variationName));
29 auto &defineReaders = fReadersPerVariation[slot];
31 auto it = defineReaders.find(*nameIt);
32 if (it != defineReaders.end())
35 auto *define = fDefine.get();
36 if (*nameIt !=
"nominal")
37 define = &define->GetVariedDefine(std::string(variationName));
39#if !defined(__clang__) && __GNUC__ >= 7 && __GNUC_MINOR__ >= 3
40 const auto insertion =
41 defineReaders.insert({*nameIt, std::make_unique<ROOT::Internal::RDF::RDefineReader>(slot, *define)});
42 return *insertion.first->second;
45 auto reader = std::make_unique<ROOT::Internal::RDF::RDefineReader>(slot, *define);
47 defineReaders[*nameIt] = std::move(reader);
Column reader for defined columns.
std::shared_ptr< ROOT::Detail::RDF::RDefineBase > fDefine
RDefinesWithReaders(std::shared_ptr< ROOT::Detail::RDF::RDefineBase > define, unsigned int nSlots, ROOT::Internal::RDF::RStringCache &cachedColNames)
ROOT::Internal::RDF::RDefineReader & GetReader(unsigned int slot, std::string_view variationName)
A Thread-safe cache for strings.