60#if (__GNUC__==3&&__GNUC_MINOR__==2&&__GNUC_PATCHLEVEL__==3)
75 _sizeThresholdForMapSearch(100)
90 _sizeThresholdForMapSearch(100)
108 _allRRV(other._allRRV),
109 _sizeThresholdForMapSearch(100)
116 for (
auto item : other.
_list) {
145 if (
_list.size() > 1) {
146 std::vector<RooAbsArg*> tmp;
147 tmp.reserve(
_list.size());
150 for (
auto arg :
_list) {
152 if (!arg->dependsOn(*
this, arg)) tmp.push_back(arg);
156 std::sort(tmp.begin(), tmp.end());
158 tmp.erase(std::unique(tmp.begin(), tmp.end()), tmp.end());
160 auto newEnd =
_list.end();
161 for (
auto item : tmp) {
162 newEnd = std::remove(
_list.begin(), newEnd, item);
166 }
while (!tmp.empty() &&
_list.size() > 1);
169 if (
_list.size() > 1) {
170 coutW(ObjectHandling) <<
"RooAbsCollection::safeDeleteList(" <<
GetName()
171 <<
") WARNING: unable to delete following elements in client-server order " ;
177 for (
auto item :
_list) {
206 snapName.
Append(
"Snapshot of ") ;
240 for (
auto orig :
_list) {
250 for (Storage_t::size_type i = 0; i <
output._list.size(); ++i) {
251 const auto var =
output._list[i];
252 error |=
output.addServerClonesToList(*var);
258 coutE(ObjectHandling) <<
"RooAbsCollection::snapshot(): Errors occurred in deep clone process, snapshot not created" << endl ;
267 var->redirectServers(
output,deepCopy);
290 for (
const auto server : var.
servers()) {
312 if (&other==
this)
return *this ;
314 for (
auto elem :
_list) {
315 auto theirs = other.
find(*elem);
316 if(!theirs)
continue;
318 elem->copyCache(theirs) ;
319 elem->setAttribute(
"Constant",theirs->isConstant()) ;
332 if (&other==
this)
return *this ;
341 for (
auto elem :
_list) {
342 auto theirs = other.
find(*elem);
343 if(!theirs)
continue;
345 elem->copyCache(theirs,
kTRUE) ;
358 if (&other==
this) return ;
361 auto iter2 = other.
_list.begin();
362 for (
auto iter1 =
_list.begin();
363 iter1 !=
_list.end() && iter2 != other.
_list.end();
370 auto theirs =
static_cast<RooRealVar*
>(*iter2);
373 (*iter2)->syncCache() ;
374 (*iter1)->copyCache(*iter2,
kTRUE,setValDirty) ;
393 coutE(ObjectHandling) <<
ClassName() <<
"::" <<
GetName() <<
"::addOwned: can only add to an owned list" << endl;
416 coutE(ObjectHandling) <<
ClassName() <<
"::" <<
GetName() <<
"::addClone: can only add to an owned list" << endl;
441 coutE(ObjectHandling) <<
ClassName() <<
"::" <<
GetName() <<
"::add: cannot add to an owned list" << endl;
462 for (
auto item : list.
_list) {
463 result |=
add(*item,silent);
480 for (
auto item : list.
_list) {
497 for (
auto item : list.
_list) {
512 coutE(ObjectHandling) <<
"RooAbsCollection: cannot replace variables in a copied list" << endl;
517 for (
const auto * arg : other.
_list) {
519 auto found =
find(*arg);
520 if (found)
replace(*found,*arg);
537 coutE(ObjectHandling) <<
"RooAbsCollection: cannot replace variables in a copied list" << endl;
543 auto var1It = std::find(
_list.begin(),
_list.end(), &var1);
545 if (var1It ==
_list.end()) {
546 coutE(ObjectHandling) <<
"RooAbsCollection: variable \"" <<
name <<
"\" is not in the list"
547 <<
" and cannot be replaced" << endl;
555 if(other != 0 && other != &var1) {
556 coutE(ObjectHandling) <<
"RooAbsCollection: cannot replace \"" <<
name
557 <<
"\" with already existing \"" << var2.
GetName() <<
"\"" << endl;
587 const auto sizeBefore =
_list.size();
589 if (matchByNameOnly) {
592 return elm->GetName() ==
name;
594 std::set<RooAbsArg*> toBeDeleted;
598 if (nameMatch(elm)) {
599 toBeDeleted.insert(elm);
606 for (
auto arg : toBeDeleted)
609 _list.erase(std::remove(_list.begin(), _list.end(), &var), _list.end());
612 if (_nameToItemMap && sizeBefore != _list.size()) {
613 _nameToItemMap->erase(var.namePtr());
616 return sizeBefore != _list.size();
628 auto oldSize =
_list.size();
629 for (
auto item : list.
_list) {
630 remove(*item, silent, matchByNameOnly);
633 return oldSize !=
_list.size();
664 for (
auto arg :
_list) {
665 arg->setAttribute(
name, value);
680 selName.
Append(
"_selection") ;
684 for (
auto arg :
_list) {
685 if (arg->getAttribute(
name)==value)
704 selName.
Append(
"_selection") ;
708 for (
auto arg :
_list) {
709 if (refColl.
find(*arg))
727 selName.
Append(
"_selection") ;
730 const size_t bufSize = strlen(nameList) + 1;
731 char* buf =
new char[bufSize] ;
732 strlcpy(buf,nameList,bufSize) ;
733 char* wcExpr = strtok(buf,
",") ;
737 cxcoutD(ObjectHandling) <<
"RooAbsCollection::selectByName(" <<
GetName() <<
") processing expression '" << wcExpr <<
"'" << endl ;
742 while((arg=iter.
next())) {
745 cxcoutD(ObjectHandling) <<
"RooAbsCollection::selectByName(" <<
GetName() <<
") selected element " << arg->
GetName() << endl ;
750 wcExpr = strtok(0,
",") ;
770 return left->
namePtr() == right->namePtr();
773 return std::is_permutation(
_list.begin(),
_list.end(),
774 otherColl.
_list.begin(),
786 for (
auto arg :
_list) {
787 if (otherColl.
find(*arg)) {
797template<
class Collection_t>
798RooAbsArg* findUsingNamePointer(
const Collection_t& coll,
const TNamed* ptr) {
799 auto findByNamePtr = [ptr](
const RooAbsArg* elm) {
800 return ptr == elm->namePtr();
803 auto item = std::find_if(coll.begin(), coll.end(), findByNamePtr);
805 return item != coll.end() ? *item :
nullptr;
820 if (!nptr)
return nullptr;
824 return item ? item : findUsingNamePointer(
_list, nptr);
834 const auto nptr = arg.
namePtr();
837 return item ? item : findUsingNamePointer(
_list, nptr);
844 const std::string theName(
name);
846 return elm->GetName() == theName;
848 return item !=
_list.end() ? item -
_list.begin() : -1;
860 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getRealValue(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << endl ;
865 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getRealValue(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooAbsReal" << endl ;
881 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setRealValue(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << endl ;
886 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setRealValue(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooAbsRealLValue" << endl ;
903 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getCatLabel(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << endl ;
908 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getCatLabel(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooAbsCategory" << endl ;
924 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setCatLabel(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << endl ;
929 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setCatLabel(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooAbsCategory" << endl ;
946 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getCatLabel(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << endl ;
951 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getCatLabel(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooAbsCategory" << endl ;
967 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setCatLabel(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << endl ;
972 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setCatLabel(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooAbsCategory" << endl ;
989 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getStringValue(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << endl ;
994 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getStringValue(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooStringVar" << endl ;
1011 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setStringValue(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << endl ;
1016 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setStringValue(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooStringVar" << endl ;
1029 for (
auto arg :
_list) {
1030 retVal += arg->GetName();
1034 retVal.erase(retVal.end()-1);
1066 os << IsA()->GetName() ;
1079 if (opt &&
TString(opt)==
"I") {
1082 if (opt &&
TString(opt).Contains(
"v")) {
1100 for (
auto arg :
_list) {
1106 if (arg->IsA()->InheritsFrom(RooStringVar::Class())) {
1109 os << arg->GetName();
1131 Int_t maxNameLen(1) ;
1133 if (nameFieldLengthSaved==0) {
1134 for (
auto next :
_list) {
1135 Int_t len = strlen(next->GetName()) ;
1136 if (len>maxNameLen) maxNameLen = len ;
1141 unsigned int idx = 0;
1142 for (
auto next :
_list) {
1143 os <<
indent << std::setw(3) << ++idx <<
") ";
1158 for (
auto arg :
_list) {
1159 cout << arg <<
" " << arg->IsA()->GetName() <<
"::" << arg->GetName() <<
" (" << arg->GetTitle() <<
")" << endl ;
1212 pc.
defineInt(
"dummy",
"FormatArgs",0,0) ;
1223 pc.
process(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) ;
1228 const char* outFile = pc.
getString(
"outputFile") ;
1229 if (outFile && strlen(outFile)) {
1230 std::ofstream ofs(outFile) ;
1265 sibOption = option ;
1269 sibFormatCmd = *formatCmd ;
1273 static char buf[100] ;
1274 strlcpy(buf,tmp.
Data(),100) ;
1275 sibFormatCmd.
_s[0] = buf ;
1297 while((arg=iter.
next())) {
1303 coutW(InputArguments) <<
"RooAbsCollection::printLatex: can only print RooRealVar in LateX, skipping non-RooRealVar object named "
1307 coutW(InputArguments) <<
"RooAbsCollection::printLatex: WARNING: naming and/or ordering of sibling list is different" << endl ;
1310 listListRRV.
Add(list) ;
1312 coutW(InputArguments) <<
"RooAbsCollection::printLatex: ERROR: sibling list(s) must have same length as self" << endl ;
1323 for (k=0 ; k<nlist ; k++) subheader +=
"c" ;
1325 TString header =
"\\begin{tabular}{" ;
1326 for (j=0 ; j<ncol ; j++) {
1327 if (j>0) header +=
"|" ;
1328 header += subheader ;
1331 ofs << header << endl ;
1335 for (i=0 ; i<nrow ; i++) {
1336 for (j=0 ; j<ncol ; j++) {
1337 for (k=0 ; k<nlist ; k++) {
1345 TString* tmp = par->
format((k==0)?*formatCmd:sibFormatCmd) ;
1350 if (!(j==ncol-1 && k==nlist-1)) {
1355 ofs <<
"\\\\" << endl ;
1358 ofs <<
"\\end{tabular}" << endl ;
1371 if (!rangeSpec)
return kTRUE ;
1374 vector<string> cutVec ;
1375 if (rangeSpec && strlen(rangeSpec)>0) {
1376 if (strchr(rangeSpec,
',')==0) {
1377 cutVec.push_back(rangeSpec) ;
1379 const size_t bufSize = strlen(rangeSpec)+1;
1380 char* buf =
new char[bufSize] ;
1381 strlcpy(buf,rangeSpec,bufSize) ;
1382 const char* oneRange = strtok(buf,
",") ;
1384 cutVec.push_back(oneRange) ;
1385 oneRange = strtok(0,
",") ;
1393 for (
auto arg :
_list) {
1396 for (icut=0 ; icut<cutVec.size() ; icut++) {
1397 if (arg->inRange(cutVec[icut].c_str())) {
1398 selectThisArg =
kTRUE ;
1402 if (!selectThisArg) {
1408 return selectByRange ;
1444 return strcmp(
l->GetName(),
r->
GetName()) > 0;
1447 std::sort(
_list.begin(),
_list.end(), cmpReverse);
1451 return strcmp(
l->GetName(),
r->
GetName()) < 0;
1463 ccoutE(DataHandling) <<
"The legacy RooFit collection iterators don't support reverse iterations, any more. "
1464 <<
"Use begin() and end()" << endl;
1465 return std::make_unique<LegacyIterator_t>(
_list);
1472 _list.push_back(item);
1479 (*_nameToItemMap)[item->
namePtr()] = item;
1492 _nameToItemMap.reset(
new std::unordered_map<const TNamed*, Storage_t::value_type>());
1493 for (
const auto item :
_list) {
1494 (*_nameToItemMap)[item->namePtr()] = item;
1519 if (item->second->namePtr() == item->first) {
1520 return item->second;
1524 if (
auto arg = findUsingNamePointer(
_list, namePtr)) {
1525 (*_nameToItemMap)[arg->namePtr()] = arg;
static void indent(ostringstream &buf, int indent_level)
TString operator+(const TString &s1, const TString &s2)
Use the special concatenation constructor.
RooAbsArg is the common abstract base class for objects that represent a value and a "shape" in RooFi...
const TNamed * namePtr() const
virtual TObject * Clone(const char *newname=0) const
Make a clone of an object using the Streamer facility.
virtual void copyCache(const RooAbsArg *source, Bool_t valueOnly=kFALSE, Bool_t setValDirty=kTRUE)=0
void setAttribute(const Text_t *name, Bool_t value=kTRUE)
Set (default) or clear a named boolean attribute of this object.
const RefCountList_t & servers() const
List of all servers of this object.
virtual void syncCache(const RooArgSet *nset=0)=0
RooAbsCategoryLValue is the common abstract base class for objects that represent a discrete value th...
virtual bool setIndex(value_type index, bool printError=true)=0
Change category state by specifying the index code of the desired state.
virtual bool setLabel(const char *label, Bool_t printError=kTRUE)=0
Change category state by specifying a state name.
RooAbsCategory is the base class for objects that represent a discrete value with a finite number of ...
virtual value_type getCurrentIndex() const
Return index number of current state.
virtual const char * getCurrentLabel() const
Return label string of current state.
RooAbsCollection is an abstract container object that can hold multiple RooAbsArg objects.
virtual void removeAll()
Remove all arguments from our set, deleting them if we own them.
RooAbsCollection * selectCommon(const RooAbsCollection &refColl) const
Create a subset of the current collection, consisting only of those elements that are contained as we...
Bool_t setCatLabel(const char *name, const char *newVal="", Bool_t verbose=kFALSE)
Set state name of a RooAbsCategoryLValue stored in set with given name to newVal.
virtual TObject * create(const char *newname) const =0
Bool_t setCatIndex(const char *name, Int_t newVal=0, Bool_t verbose=kFALSE)
Set index value of a RooAbsCategoryLValue stored in set with given name to newVal.
Int_t getCatIndex(const char *name, Int_t defVal=0, Bool_t verbose=kFALSE) const
Get index value of a RooAbsCategory stored in set with given name.
RooAbsCollection()
Default constructor.
RooAbsCollection & assignValueOnly(const RooAbsCollection &other, Bool_t oneSafe=kFALSE)
The assignment operator sets the value of any argument in our set that also appears in the other set.
virtual Bool_t replace(const RooAbsArg &var1, const RooAbsArg &var2)
Replace var1 with var2 and return kTRUE for success.
const char * getCatLabel(const char *name, const char *defVal="", Bool_t verbose=kFALSE) const
Get state name of a RooAbsCategory stored in set with given name.
RooAbsArg * tryFastFind(const TNamed *namePtr) const
Perform a search in a hash map.
void printLatex(const RooCmdArg &arg1=RooCmdArg(), const RooCmdArg &arg2=RooCmdArg(), const RooCmdArg &arg3=RooCmdArg(), const RooCmdArg &arg4=RooCmdArg(), const RooCmdArg &arg5=RooCmdArg(), const RooCmdArg &arg6=RooCmdArg(), const RooCmdArg &arg7=RooCmdArg(), const RooCmdArg &arg8=RooCmdArg()) const
Output content of collection as LaTex table.
void sort(Bool_t reverse=false)
Sort collection using std::sort and name comparison.
Bool_t addServerClonesToList(const RooAbsArg &var)
Add clones of servers of given argument to end of list.
virtual void printName(std::ostream &os) const
Return collection name.
RooAbsCollection * snapshot(Bool_t deepCopy=kTRUE) const
Take a snap shot of current collection contents.
virtual Bool_t addOwned(RooAbsArg &var, Bool_t silent=kFALSE)
Add the specified argument to list.
virtual RooAbsArg * addClone(const RooAbsArg &var, Bool_t silent=kFALSE)
Add a clone of the specified argument to list.
Int_t index(const RooAbsArg *arg) const
Returns index of given arg, or -1 if arg is not in the collection.
RooFIter fwdIterator() const
One-time forward iterator.
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Add the specified argument to list.
Bool_t setStringValue(const char *name, const char *newVal="", Bool_t verbose=kFALSE)
Set string value of a RooStringVar stored in set with given name to newVal.
Double_t getRealValue(const char *name, Double_t defVal=0, Bool_t verbose=kFALSE) const
Get value of a RooAbsReal stored in set with given name.
virtual ~RooAbsCollection()
Destructor.
Bool_t setRealValue(const char *name, Double_t newVal=0, Bool_t verbose=kFALSE)
Set value of a RooAbsRealLValye stored in set with given name to newVal No error messages are printed...
RooAbsArg * first() const
void assignFast(const RooAbsCollection &other, Bool_t setValDirty=kTRUE)
Functional equivalent of operator=() but assumes this and other collection have same layout.
void reserve(Storage_t::size_type count)
RooAbsCollection * selectByName(const char *nameList, Bool_t verbose=kFALSE) const
Create a subset of the current collection, consisting only of those elements with names matching the ...
Bool_t overlaps(const RooAbsCollection &otherColl) const
Check if this and other collection have common entries.
Bool_t allInRange(const char *rangeSpec) const
Return true if all contained object report to have their value inside the specified range.
virtual void printMultiline(std::ostream &os, Int_t contents, Bool_t verbose=kFALSE, TString indent="") const
Implement multiline printing of collection, one line for each contained object showing the requested ...
virtual void Print(Option_t *options=0) const
This method must be overridden when a class wants to print itself.
std::unique_ptr< LegacyIterator_t > makeLegacyIterator(bool forward=true) const
Factory for legacy iterators.
std::size_t _sizeThresholdForMapSearch
void setAttribAll(const Text_t *name, Bool_t value=kTRUE)
Set given attribute in each element of the collection by calling each elements setAttribute() functio...
std::unique_ptr< std::unordered_map< const TNamed *, Storage_t::value_type > > _nameToItemMap
void dump() const
Base contents dumper for debugging purposes.
virtual void printTitle(std::ostream &os) const
Return collection title.
Bool_t equals(const RooAbsCollection &otherColl) const
Check if this and other collection have identically-named contents.
RooAbsCollection * selectByAttrib(const char *name, Bool_t value) const
Create a subset of the current collection, consisting only of those elements with the specified attri...
void useHashMapForFind(bool flag) const
Install an internal hash map for fast finding of elements by name.
const char * getStringValue(const char *name, const char *defVal="", Bool_t verbose=kFALSE) const
Get string value of a RooStringVar stored in set with given name.
const char * GetName() const
Returns name of object.
virtual void printClassName(std::ostream &os) const
Return collection class name.
std::string contentsString() const
Return comma separated list of contained object names as STL string.
void setName(const char *name)
RooAbsCollection & operator=(const RooAbsCollection &other)
The assignment operator sets the value of any argument in our set that also appears in the other set.
void safeDeleteList()
Examine client server dependencies in list and delete contents in safe order: any client is deleted b...
virtual void RecursiveRemove(TObject *obj)
If one of the TObject we have a referenced to is deleted, remove the reference.
virtual Bool_t remove(const RooAbsArg &var, Bool_t silent=kFALSE, Bool_t matchByNameOnly=kFALSE)
Remove the specified argument from our list.
void makeTypedStructureTag()
void insert(RooAbsArg *)
Insert an element into the owned collections.
RooAbsArg * find(const char *name) const
Find object with given name in list.
virtual void printValue(std::ostream &os) const
Print value of collection, i.e.
virtual Int_t defaultPrintContents(Option_t *opt) const
Define default RooPrinable print options for given Print() flag string For inline printing only show ...
RooAbsRealLValue is the common abstract base class for objects that represent a real value that may a...
virtual void setVal(Double_t value)=0
Set the current value of the object. Needs to be overridden by implementations.
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Double_t getVal(const RooArgSet *normalisationSet=nullptr) const
Evaluate object.
RooArgList is a container object that can hold multiple RooAbsArg objects.
RooAbsArg * at(Int_t idx) const
Return object at given index, or nullptr if index is out of range.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
RooCmdArg is a named container for two doubles, two integers two object points and three string point...
void addArg(const RooCmdArg &arg)
Utility function to add nested RooCmdArg to payload of this RooCmdArg.
Class RooCmdConfig is a configurable parser for RooCmdArg named arguments.
Bool_t defineInt(const char *name, const char *argName, Int_t intNum, Int_t defValue=0)
Define integer property name 'name' mapped to integer in slot 'intNum' in RooCmdArg with name argName...
void defineMutex(const char *argName1, const char *argName2)
Define arguments named argName1 and argName2 mutually exclusive.
Bool_t defineObject(const char *name, const char *argName, Int_t setNum, const TObject *obj=0, Bool_t isArray=kFALSE)
Define TObject property name 'name' mapped to object in slot 'setNum' in RooCmdArg with name argName ...
const char * getString(const char *name, const char *defaultValue="", Bool_t convEmptyToNull=kFALSE)
Return string property registered with name 'name'.
Int_t getInt(const char *name, Int_t defaultValue=0)
Return integer property registered with name 'name'.
const RooLinkedList & getObjectList(const char *name)
Return list of objects registered with name 'name'.
Bool_t defineString(const char *name, const char *argName, Int_t stringNum, const char *defValue="", Bool_t appendMode=kFALSE)
Define Double_t property name 'name' mapped to Double_t in slot 'stringNum' in RooCmdArg with name ar...
Bool_t ok(Bool_t verbose) const
Return true of parsing was successful.
Bool_t process(const RooCmdArg &arg)
Process given RooCmdArg.
Bool_t hasProcessed(const char *cmdName) const
Return true if RooCmdArg with name 'cmdName' has been processed.
A one-time forward iterator working on RooLinkedList or RooAbsCollection.
RooAbsArg * next()
Return next element or nullptr if at end.
RooLinkedList is an collection class for internal use, storing a collection of RooAbsArg pointers in ...
TObject * FindObject(const char *name) const
Return pointer to obejct with given name.
RooFIter fwdIterator() const
Create a one-time-use forward iterator for this list.
TObject * At(Int_t index) const
Return object stored in sequential position given by index.
void Delete(Option_t *o=0)
Remove all elements in collection and delete all elements NB: Collection does not own elements,...
virtual void Add(TObject *arg)
static const TNamed * known(const char *stringPtr)
If the name is already known, return its TNamed pointer. Otherwise return 0 (don't register the name)...
RooPlotable is a 'mix-in' base class that define the standard RooFit plotting and printing methods.
static void nameFieldLength(Int_t newLen)
Set length of field reserved from printing name of RooAbsArgs in multi-line collection printing to gi...
RooRealVar represents a variable that can be changed from the outside.
TString * format(const RooCmdArg &formatArg) const
Format contents of RooRealVar for pretty printing on RooPlot parameter boxes.
void copyCacheFast(const RooRealVar &other, Bool_t setValDirty=kTRUE)
std::size_t size() const
Number of contained objects (neglecting the ref count).
RooStringVar is a RooAbsArg implementing string values.
void setVal(const char *newVal)
const char * getVal() const
static void create(const TObject *obj)
Register creation of object 'obj'.
The TNamed class is the base class for all named ROOT classes.
virtual const char * GetName() const
Returns name of object.
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual const char * GetTitle() const
Returns title of object.
Regular expression class.
int CompareTo(const char *cs, ECaseCompare cmp=kExact) const
Compare a string to char *cs2.
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
TString & Append(const char *cs)
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
RooCmdArg LatexTableStyle(Bool_t flag=kTRUE)
static void output(int code)