27 _clonedArgsSet.emplace(arg.
namePtr(), &arg);
32 auto existingServerClone = _clonedArgsSet.find(arg.
namePtr());
33 if (existingServerClone != _clonedArgsSet.end()) {
34 return existingServerClone->second;
42 this->compile(*server, arg, normSet);
49 this->compile(server, arg, normSet);
55 if (
auto existingServerClone = this->find(arg)) {
56 return existingServerClone;
61 if (isMarkedAsCompiled(arg)) {
66 markAsCompiled(*newArg);
67 _replacements[&arg] = newArg.get();
Common abstract base class for objects that represent a value and a "shape" in RooFit.
TIterator Use servers() and begin()
const TNamed * namePtr() const
De-duplicated pointer to this object's name.
bool addOwnedComponents(const RooAbsCollection &comps)
Take ownership of the contents of 'comps'.
bool redirectServers(const RooAbsCollection &newServerList, bool mustReplaceAll=false, bool nameChange=false, bool isRecursionStep=false)
Replace all direct servers of this object with the new servers in newServerList.
virtual std::unique_ptr< RooAbsArg > compileForNormSet(RooArgSet const &normSet, RooFit::Detail::CompileContext &ctx) const
bool getAttribute(const Text_t *name) const
Check if a named attribute is set. By default, all attributes are unset.
void setAttribute(const Text_t *name, bool value=true)
Set (default) or clear a named boolean attribute of this object.
virtual bool isFundamental() const
Is this object a fundamental type that can be added to a dataset? Fundamental-type subclasses overrid...
RooArgSet is a container object that can hold multiple RooAbsArg objects.
void markAsCompiled(RooAbsArg &arg) const
void compileServers(RooAbsArg &arg, RooArgSet const &normSet)
RooAbsArg * find(RooAbsArg &arg) const
RooAbsArg * compileImpl(RooAbsArg &arg, RooAbsArg &owner, RooArgSet const &normSet)
bool isMarkedAsCompiled(RooAbsArg const &arg) const
CompileContext(RooArgSet const &topLevelNormSet)
void compileServer(RooAbsArg &server, RooAbsArg &arg, RooArgSet const &normSet)