44 ClassImp(RooSetProxy);
48 #ifdef USEMEMPOOLFORARGSET
55 void* RooSetProxy::operator
new (
size_t bytes)
57 auto mem = malloc(bytes) ;
58 memset(mem, TStorage::kObjectAllocMemValue, bytes);
65 void RooSetProxy::operator
delete (
void* ptr)
78 RooSetProxy::RooSetProxy(
const char* inName,
const char* , RooAbsArg* owner,
79 Bool_t defValueServer, Bool_t defShapeServer) :
80 RooArgSet(inName), _owner(owner),
81 _defValueServer(defValueServer),
82 _defShapeServer(defShapeServer)
85 _owner->registerProxy(*
this) ;
93 RooSetProxy::RooSetProxy(
const char* inName, RooAbsArg* owner,
const RooSetProxy& other) :
94 RooArgSet(other,inName), _owner(owner),
95 _defValueServer(other._defValueServer),
96 _defShapeServer(other._defShapeServer)
98 _owner->registerProxy(*
this) ;
106 RooSetProxy::~RooSetProxy()
108 if (_owner) _owner->unRegisterProxy(*
this) ;
118 Bool_t RooSetProxy::add(
const RooAbsArg& var, Bool_t valueServer, Bool_t shapeServer, Bool_t silent)
120 Bool_t ret=RooArgSet::add(var,silent) ;
122 _owner->addServer((RooAbsArg&)var,valueServer,shapeServer) ;
134 Bool_t RooSetProxy::addOwned(RooAbsArg& var, Bool_t silent)
136 Bool_t ret=RooArgSet::addOwned(var,silent) ;
138 _owner->addServer((RooAbsArg&)var,_defValueServer,_defShapeServer) ;
150 RooAbsArg* RooSetProxy::addClone(
const RooAbsArg& var, Bool_t silent)
152 RooAbsArg* ret=RooArgSet::addClone(var,silent) ;
154 _owner->addServer((RooAbsArg&)var,_defValueServer,_defShapeServer) ;
166 Bool_t RooSetProxy::add(
const RooAbsArg& var, Bool_t silent)
168 return add(var,_defValueServer,_defShapeServer,silent) ;
178 Bool_t RooSetProxy::replace(
const RooAbsArg& var1,
const RooAbsArg& var2)
180 Bool_t ret=RooArgSet::replace(var1,var2) ;
182 if (!isOwning()) _owner->removeServer((RooAbsArg&)var1) ;
183 _owner->addServer((RooAbsArg&)var2,_owner->isValueServer(var1),
184 _owner->isShapeServer(var2)) ;
194 Bool_t RooSetProxy::remove(
const RooAbsArg& var, Bool_t silent, Bool_t matchByNameOnly)
196 Bool_t ret=RooArgSet::remove(var,silent,matchByNameOnly) ;
197 if (ret && !isOwning()) {
198 _owner->removeServer((RooAbsArg&)var) ;
209 Bool_t RooSetProxy::remove(
const RooAbsCollection& list, Bool_t silent, Bool_t matchByNameOnly)
211 Bool_t result(
false) ;
213 TIterator* iter = list.createIterator() ;
215 while((arg=(RooAbsArg*)iter->Next())) {
216 result |=
remove(*arg,silent,matchByNameOnly) ;
230 void RooSetProxy::removeAll()
233 TIterator* iter = createIterator() ;
235 while ((arg=(RooAbsArg*)iter->Next())) {
237 _owner->removeServer(*arg) ;
243 RooArgSet::removeAll() ;
252 RooSetProxy& RooSetProxy::operator=(
const RooArgSet& other)
254 RooArgSet::operator=(other) ;
265 Bool_t RooSetProxy::changePointer(
const RooAbsCollection& newServerList, Bool_t nameChange, Bool_t factoryInitMode)
268 if (factoryInitMode) {
269 for (
const auto arg : newServerList) {
279 Bool_t error(kFALSE);
280 for (
const auto arg : _list) {
281 RooAbsArg* newArg= arg->findNewServer(newServerList, nameChange);
282 if (newArg && newArg!=_owner) error |= !RooArgSet::replace(*arg,*newArg) ;
293 void RooSetProxy::print(ostream& os, Bool_t addContents)
const
296 os << name() <<
"=" ; printStream(os,kValue,kInline) ;
298 os << name() <<
"=(" ;
299 TIterator* iter = createIterator() ;
301 Bool_t first2(kTRUE) ;
302 while ((arg=(RooAbsArg*)iter->Next())) {
308 arg->printStream(os,kValue|kName,kInline) ;