46 TObjOptLink *RooList::findLink(
const char *name,
const char *caller)
const
48 if(0 == strlen(name))
return 0;
49 TObjLink *link = FirstLink();
51 TObject *obj= link->GetObject();
52 if (obj->GetName() && !strcmp(name, obj->GetName()))
break;
57 coutE(InputArguments) << caller <<
": cannot find object named \"" << name <<
"\"" << endl;
61 return dynamic_cast<TObjOptLink*
>(link);
69 Bool_t RooList::moveBefore(
const char *before,
const char *target,
const char *caller)
72 TObjOptLink *targetLink= findLink(target,caller);
73 if(0 == targetLink)
return kFALSE;
76 TObjOptLink *beforeLink= findLink(before,caller);
77 if(0 == beforeLink)
return kFALSE;
80 TObject *obj= targetLink->GetObject();
81 TString opt= targetLink->GetOption();
87 if(beforeLink == fFirst) {
88 RooList::AddFirst(obj, opt.Data());
92 NewOptLink(obj, opt.Data(), beforeLink->Prev());
104 Bool_t RooList::moveAfter(
const char *after,
const char *target,
const char *caller)
107 TObjOptLink *targetLink= findLink(target,caller);
108 if(0 == targetLink)
return kFALSE;
111 TObjOptLink *afterLink= findLink(after,caller);
112 if(0 == afterLink)
return kFALSE;
115 TObject *obj= targetLink->GetObject();
116 TString opt= targetLink->GetOption();
122 if(afterLink == fLast) {
123 RooList::AddLast(obj, opt.Data());
126 NewOptLink(obj, opt.Data(), afterLink);