47 bool valueServer,
bool shapeServer,
bool proxyOwnsArg) :
48 TNamed(inName,desc), _owner(owner),
49 _valueServer(valueServer), _shapeServer(shapeServer), _ownArg(proxyOwnsArg)
62 bool shapeServer,
bool proxyOwnsArg)
66 _valueServer(valueServer),
67 _shapeServer(shapeServer),
68 _isFund(_arg->isFundamental()),
81 _valueServer(other._valueServer), _shapeServer(other._shapeServer),
82 _isFund(other._isFund), _ownArg(other._ownArg)
112 const bool initEmpty =
_arg ==
nullptr;
116 if (newArg==
_owner) newArg =
nullptr;
117 }
else if (factoryInitMode) {
118 newArg = newServerList.
first() ;
133 if (initEmpty && !factoryInitMode)
return true;
134 return newArg !=
nullptr;
144 auto newArgFound = replacements.find(
_arg);
145 if (newArgFound != replacements.end()) {
146 newArg = newArgFound->second;
160 return newArg !=
nullptr;
183 if (
_arg && addContents) {
Common abstract base class for objects that represent a value and a "shape" in RooFit.
void registerProxy(RooArgProxy &proxy)
Register an RooArgProxy in the proxy list.
void unRegisterProxy(RooArgProxy &proxy)
Remove proxy from proxy list.
void addServer(RooAbsArg &server, bool valueProp=true, bool shapeProp=false, std::size_t refCount=1)
Register another RooAbsArg as a server to us, ie, declare that we depend on it.
void setProxyNormSet(const RooArgSet *nset)
Forward a change in the cached normalization argset to all the registered proxies.
TObject * Clone(const char *newname=nullptr) const override
Make a clone of an object using the Streamer facility.
virtual bool isFundamental() const
Is this object a fundamental type that can be added to a dataset? Fundamental-type subclasses overrid...
RooAbsArg * findNewServer(const RooAbsCollection &newSet, bool nameChange) const
Find the new server in the specified set that matches the old server.
Abstract container object that can hold multiple RooAbsArg objects.
RooAbsArg * first() const
Abstract interface for proxy classes.
virtual void changeNormSet(const RooArgSet *newNormSet)
Destructor.
Abstract interface for RooAbsArg proxy classes.
void print(std::ostream &os, bool addContents=false) const override
Print the name of the proxy on ostream.
const char * name() const override
Return name of proxy.
RooAbsArg * _owner
Pointer to owner of proxy.
~RooArgProxy() override
Destructor.
bool _ownArg
If true proxy owns contents.
virtual void changeDataSet(const RooArgSet *newNormSet)
Change the normalization set that should be offered to the content objects getVal() when evaluated.
RooArgProxy()=default
Default constructor.
bool _isFund
If true proxy contains an lvalue.
bool _valueServer
If true contents is value server of owner.
RooAbsArg * _arg
Pointer to content of proxy.
bool _shapeServer
If true contents is shape server of owner.
bool changePointer(const RooAbsCollection &newServerSet, bool nameChange=false, bool factoryInitMode=false) override
Change proxied object to object of same name in given list.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
virtual void printStream(std::ostream &os, Int_t contents, StyleOption style, TString indent="") const
Print description of object on ostream, printing contents set by contents integer,...
The TNamed class is the base class for all named ROOT classes.
const char * GetName() const override
Returns name of object.