43 ClassImp(RooArgProxy);
50 RooArgProxy::RooArgProxy(
const char* inName,
const char* desc, RooAbsArg* owner,
51 Bool_t valueServer, Bool_t shapeServer, Bool_t proxyOwnsArg) :
52 TNamed(inName,desc), _owner(owner), _arg(0),
53 _valueServer(valueServer), _shapeServer(shapeServer), _ownArg(proxyOwnsArg)
55 _owner->registerProxy(*
this) ;
65 RooArgProxy::RooArgProxy(
const char* inName,
const char* desc, RooAbsArg* owner, RooAbsArg& arg,
66 Bool_t valueServer, Bool_t shapeServer, Bool_t proxyOwnsArg) :
67 TNamed(inName,desc), _owner(owner), _arg(&arg),
68 _valueServer(valueServer), _shapeServer(shapeServer), _ownArg(proxyOwnsArg)
70 _owner->registerProxy(*
this) ;
71 _isFund = _arg->isFundamental() ;
79 RooArgProxy::RooArgProxy(
const char* inName, RooAbsArg* owner,
const RooArgProxy& other) :
80 TNamed(inName,inName), RooAbsProxy(other), _owner(owner), _arg(other._arg),
81 _valueServer(other._valueServer), _shapeServer(other._shapeServer),
82 _isFund(other._isFund), _ownArg(other._ownArg)
85 _arg = _arg ? (RooAbsArg*) _arg->Clone() : 0 ;
88 _owner->registerProxy(*
this) ;
96 RooArgProxy::~RooArgProxy()
98 if (_owner) _owner->unRegisterProxy(*
this) ;
99 if (_ownArg)
delete _arg ;
109 Bool_t RooArgProxy::changePointer(
const RooAbsCollection& newServerList, Bool_t nameChange, Bool_t factoryInitMode)
112 Bool_t initEmpty = _arg ? kFALSE : kTRUE ;
114 newArg= _arg->findNewServer(newServerList, nameChange);
115 if (newArg==_owner) newArg = 0 ;
116 }
else if (factoryInitMode) {
117 newArg = newServerList.first() ;
118 _owner->addServer(*newArg,_valueServer,_shapeServer) ;
124 _isFund = _arg->isFundamental() ;
126 if (initEmpty && !factoryInitMode)
return kTRUE ;
127 return newArg?kTRUE:kFALSE ;
136 void RooArgProxy::changeDataSet(
const RooArgSet* newNormSet)
138 RooAbsProxy::changeNormSet(newNormSet) ;
139 _arg->setProxyNormSet(newNormSet) ;
148 void RooArgProxy::print(ostream& os, Bool_t addContents)
const
150 os << name() <<
"=" << (_arg?_arg->GetName():
"NULL") ;
151 if (_arg && addContents) {
153 _arg->printStream(os,RooPrintable::kValue,RooPrintable::kInline) ;