70 template<
typename It_t>
76 for (
auto it =
first; it != last; ++it) {
144 _allRRV(other._allRRV),
145 _sizeThresholdForMapSearch(100)
164 _list(std::move(other._list)),
165 _ownCont(other._ownCont),
166 _name(std::move(other._name)),
167 _allRRV(other._allRRV),
168 _sizeThresholdForMapSearch(other._sizeThresholdForMapSearch)
196 for (
auto item :
_list) {
225 snapName.
Append(
"Snapshot of ") ;
279 if (&other==
this) return ;
281 for (
auto elem :
_list) {
282 auto theirs = other.
find(*elem);
283 if(!theirs)
continue;
285 elem->copyCache(theirs) ;
286 elem->setAttribute(
"Constant",theirs->isConstant()) ;
301 if (&other==
this)
return *
this;
304 if (
size()==1 &&
size() == other.
size() && forceIfSizeOne) {
310 for (
auto elem :
_list) {
311 auto theirs = other.
find(*elem);
312 if(!theirs)
continue;
314 elem->copyCache(theirs,
true) ;
327 if (&other==
this) return ;
330 auto iter2 = other.
_list.begin();
331 for (
auto iter1 =
_list.begin();
332 iter1 !=
_list.end() && iter2 != other.
_list.end();
339 auto theirs =
static_cast<RooRealVar*
>(*iter2);
342 (*iter2)->syncCache() ;
343 (*iter1)->copyCache(*iter2,
true,setValDirty) ;
367 coutE(ObjectHandling) <<
ClassName() <<
"::" <<
GetName() <<
"::addOwned: can only add to an owned list" << std::endl;
393 throw std::runtime_error(std::string(
"RooAbsCollection::addOwned could not add the argument to the")
394 +
" collection! The ownership would not be well defined if we ignore this.");
414 coutE(ObjectHandling) <<
ClassName() <<
"::" <<
GetName() <<
"::addClone: can only add to an owned list" << std::endl;
441 coutE(ObjectHandling) <<
ClassName() <<
"::" <<
GetName() <<
"::add: cannot add to an owned list" << std::endl;
468 throw std::invalid_argument(
"Passing an owning RooAbsCollection by const& to"
469 " RooAbsCollection::addOwned is forbidden because the ownership"
470 " would be ambiguous! Please std::move() the RooAbsCollection in this case."
471 " Note that the passed RooAbsCollection is invalid afterwards.");
478 for (
auto item : list.
_list) {
495 if(list.isOwning()) {
496 list.releaseOwnership();
498 if(list.empty())
return false;
503 throw std::runtime_error(std::string(
"RooAbsCollection::addOwned could not add the argument to the")
504 +
" collection! The ownership would not be well defined if we ignore this.");
525 for (
auto item : list.
_list) {
540 coutE(ObjectHandling) <<
"RooAbsCollection: cannot replace variables in a copied list" << std::endl;
545 for (
const auto * arg : other.
_list) {
547 auto found =
find(*arg);
548 if (found)
replace(*found,*arg);
565 coutE(ObjectHandling) <<
"RooAbsCollection: cannot replace variables in a copied list" << std::endl;
571 auto var1It = std::find(
_list.begin(),
_list.end(), &var1);
573 if (var1It ==
_list.end()) {
574 coutE(ObjectHandling) <<
"RooAbsCollection: variable \"" <<
name <<
"\" is not in the list"
575 <<
" and cannot be replaced" << std::endl;
583 if(other !=
nullptr && other != &var1) {
584 coutE(ObjectHandling) <<
"RooAbsCollection: cannot replace \"" <<
name
585 <<
"\" with already existing \"" << var2.
GetName() <<
"\"" << std::endl;
614 const auto sizeBefore =
_list.size();
616 if (matchByNameOnly) {
619 return elm->GetName() ==
name;
621 std::set<RooAbsArg*> toBeDeleted;
625 if (nameMatch(elm)) {
626 toBeDeleted.insert(elm);
633 for (
auto arg : toBeDeleted)
636 _list.erase(std::remove(_list.begin(), _list.end(), &var), _list.end());
639 if (_hashAssistedFind && sizeBefore != _list.size()) {
640 _hashAssistedFind->erase(&var);
643 return sizeBefore != _list.size();
658 auto oldSize =
_list.size();
659 std::vector<const RooAbsArg*> markedItems;
661 if (matchByNameOnly) {
665 auto nameMatchAndMark = [&list, &markedItems](
const RooAbsArg* elm) {
667 markedItems.push_back(elm);
677 auto argMatchAndMark = [&list, &markedItems](
const RooAbsArg* elm) {
679 markedItems.push_back(elm);
689 for(
auto& var : markedItems ) {
695 std::set<const RooAbsArg*> toBeDeleted(markedItems.begin(), markedItems.end());
696 for (
auto arg : toBeDeleted) {
701 return oldSize !=
_list.size();
732 for (
auto arg :
_list) {
748 selName.
Append(
"_selection") ;
752 for (
auto arg :
_list) {
775 for (
auto arg :
_list) {
776 if (refColl.
find(*arg))
806 selName.
Append(
"_selection") ;
809 const size_t bufSize = strlen(nameList) + 1;
810 std::vector<char> buf(bufSize);
811 strlcpy(buf.data(),nameList,bufSize) ;
812 char* wcExpr = strtok(buf.data(),
",") ;
816 cxcoutD(ObjectHandling) <<
"RooAbsCollection::selectByName(" <<
GetName() <<
") processing expression '" << wcExpr <<
"'" << std::endl;
819 for (
auto const* arg : *
this) {
822 cxcoutD(ObjectHandling) <<
"RooAbsCollection::selectByName(" <<
GetName() <<
") selected element " << arg->GetName() << std::endl;
827 wcExpr = strtok(
nullptr,
",") ;
842 if (
size() != otherColl.
size())
return false ;
846 return left->
namePtr() == right->namePtr();
849 return std::is_permutation(
_list.begin(),
_list.end(),
850 otherColl.
_list.begin(),
858template<
class Collection_t>
859RooAbsArg* findUsingNamePointer(
const Collection_t& coll,
const TNamed* ptr) {
860 auto findByNamePtr = [ptr](
const RooAbsArg* elm) {
861 return ptr == elm->namePtr();
864 auto item = std::find_if(coll.begin(), coll.end(), findByNamePtr);
866 return item != coll.end() ? *item :
nullptr;
881 if (!nptr)
return nullptr;
891 return findUsingNamePointer(
_list, nptr);
901 const auto nptr = arg.
namePtr();
911 return findUsingNamePointer(
_list, nptr);
918 const std::string theName(
name);
920 return elm->GetName() == theName;
922 return item !=
_list.end() ? item -
_list.begin() : -1;
934 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getRealValue(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << std::endl;
939 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getRealValue(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooAbsReal" << std::endl;
955 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setRealValue(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << std::endl;
960 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setRealValue(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooAbsRealLValue" << std::endl;
977 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getCatLabel(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << std::endl;
982 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getCatLabel(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooAbsCategory" << std::endl;
998 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setCatLabel(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << std::endl;
1003 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setCatLabel(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooAbsCategory" << std::endl;
1020 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getCatLabel(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << std::endl;
1025 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getCatLabel(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooAbsCategory" << std::endl;
1028 return rac->getCurrentIndex() ;
1041 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setCatLabel(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << std::endl;
1046 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setCatLabel(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooAbsCategory" << std::endl;
1063 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getStringValue(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << std::endl;
1068 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::getStringValue(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooStringVar" << std::endl;
1085 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setStringValue(" <<
GetName() <<
") ERROR no object with name '" <<
name <<
"' found" << std::endl;
1090 if (verbose)
coutE(InputArguments) <<
"RooAbsCollection::setStringValue(" <<
GetName() <<
") ERROR object '" <<
name <<
"' is not of type RooStringVar" << std::endl;
1102 std::string retVal ;
1103 for (
auto arg :
_list) {
1104 retVal += arg->GetName();
1108 retVal.erase(retVal.end()-1);
1153 if (opt &&
TString(opt)==
"I") {
1156 if (opt &&
TString(opt).Contains(
"v")) {
1174 for (
auto arg :
_list) {
1183 os << arg->GetName();
1205 Int_t maxNameLen(1) ;
1207 if (nameFieldLengthSaved==0) {
1208 for (
auto next :
_list) {
1209 Int_t len = strlen(next->GetName()) ;
1210 if (
len>maxNameLen) maxNameLen =
len ;
1215 unsigned int idx = 0;
1216 for (
auto next :
_list) {
1217 os <<
indent << std::setw(3) << ++idx <<
") ";
1232 for (
auto arg :
_list) {
1233 std::cout << arg <<
" " << arg->ClassName() <<
"::" << arg->GetName() <<
" (" << arg->GetTitle() <<
")" << std::endl ;
1286 pc.
defineInt(
"dummy",
"FormatArgs",0,0) ;
1297 pc.
process(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) ;
1302 const char* outFile = pc.
getString(
"outputFile") ;
1303 if (outFile && strlen(outFile)) {
1304 std::ofstream ofs(outFile) ;
1343 sibFormatCmd = *formatCmd ;
1347 static char buf[100] ;
1348 strlcpy(buf,tmp.
Data(),100) ;
1356 for(
auto * col : static_range_cast<RooAbsCollection*>(siblingList)) {
1364 for(
auto * col : static_range_cast<RooAbsCollection*>(listList)) {
1366 for (
auto* arg : *col) {
1371 coutW(InputArguments) <<
"RooAbsCollection::printLatex: can only print RooRealVar in LateX, skipping non-RooRealVar object named "
1372 << arg->GetName() << std::endl;
1375 coutW(InputArguments) <<
"RooAbsCollection::printLatex: WARNING: naming and/or ordering of sibling list is different" << std::endl;
1378 listListRRV.
Add(list) ;
1379 if (prevList && list->
size() != prevList->
size()) {
1380 coutW(InputArguments) <<
"RooAbsCollection::printLatex: ERROR: sibling list(s) must have same length as self" << std::endl;
1391 for (k=0 ; k<nlist ; k++) subheader +=
"c" ;
1393 TString header =
"\\begin{tabular}{" ;
1394 for (j=0 ; j<ncol ; j++) {
1395 if (j>0) header +=
"|" ;
1396 header += subheader ;
1399 ofs << header << std::endl;
1403 for (i=0 ; i<nrow ; i++) {
1404 for (j=0 ; j<ncol ; j++) {
1405 for (k=0 ; k<nlist ; k++) {
1409 ofs << *std::unique_ptr<TString>{par->
format(sigDigit,(k==0)?
option:sibOption.
Data())};
1411 ofs << *std::unique_ptr<TString>{par->
format((k==0)?*formatCmd:sibFormatCmd)};
1414 if (!(j==ncol-1 && k==nlist-1)) {
1419 ofs <<
"\\\\" << std::endl;
1422 ofs <<
"\\end{tabular}" << std::endl;
1435 if (!rangeSpec)
return true ;
1438 std::vector<std::string> cutVec ;
1439 if (rangeSpec && strlen(rangeSpec)>0) {
1440 if (strchr(rangeSpec,
',')==
nullptr) {
1441 cutVec.push_back(rangeSpec) ;
1443 const size_t bufSize = strlen(rangeSpec)+1;
1444 std::vector<char> buf(bufSize);
1445 strlcpy(buf.data(),rangeSpec,bufSize) ;
1446 const char* oneRange = strtok(buf.data(),
",") ;
1448 cutVec.push_back(oneRange) ;
1449 oneRange = strtok(
nullptr,
",") ;
1455 bool selectByRange = true ;
1456 for (
auto arg :
_list) {
1457 bool selectThisArg = false ;
1459 for (icut=0 ; icut<cutVec.size() ; icut++) {
1460 if (arg->inRange(cutVec[icut].c_str())) {
1461 selectThisArg = true ;
1465 if (!selectThisArg) {
1466 selectByRange = false ;
1471 return selectByRange ;
1492 return strcmp(
l->
GetName(),
r->GetName()) > 0;
1495 std::sort(
_list.begin(),
_list.end(), cmpReverse);
1499 return strcmp(
l->
GetName(),
r->GetName()) < 0;
1511 std::unordered_set<TNamed const *> seenArgs;
1512 for (std::size_t iArg = 0; iArg <
_list.size(); ++iArg) {
1514 bool movedArg =
false;
1516 if (seenArgs.find(server->namePtr()) == seenArgs.end()) {
1517 auto found = std::find_if(
_list.begin(),
_list.end(),
1518 [server](
RooAbsArg *elem) { return elem->namePtr() == server->namePtr(); });
1519 if (found !=
_list.end()) {
1531 seenArgs.insert(arg->
namePtr());
1540 ccoutE(DataHandling) <<
"The legacy RooFit collection iterators don't support reverse iterations, any more. "
1541 <<
"Use begin() and end()" << std::endl;
1542 return std::make_unique<LegacyIterator_t>(
_list);
1549 _list.push_back(item);
1572 for (
unsigned int i=0; i < std::min(
_list.size(), other.
size()); ++i) {
1573 if (
_list[i]->namePtr() != other.
_list[i]->namePtr())
static Roo_reg_AGKInteg1D instance
static void indent(ostringstream &buf, int indent_level)
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t sel
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
Common abstract base class for objects that represent a value and a "shape" in RooFit.
virtual void copyCache(const RooAbsArg *source, bool valueOnly=false, bool setValDirty=true)=0
const TNamed * namePtr() const
De-duplicated pointer to this object's name.
virtual void syncCache(const RooArgSet *nset=nullptr)=0
const RefCountList_t & servers() const
List of all servers of this object.
TObject * Clone(const char *newname=nullptr) const override
Make a clone of an object using the Streamer facility.
Abstract base class for objects that represent a discrete value that can be set from the outside,...
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 printError=true)=0
Change category state by specifying a state name.
A space to attach TBranches.
virtual const char * getCurrentLabel() const
Return label string of current state.
Abstract container object that can hold multiple RooAbsArg objects.
RooAbsCollection * selectByAttrib(const char *name, bool value) const
Create a subset of the current collection, consisting only of those elements with the specified attri...
bool equals(const RooAbsCollection &otherColl) const
Check if this and other collection have identically-named contents.
std::unique_ptr< HashAssistedFind > _hashAssistedFind
!
double getRealValue(const char *name, double defVal=0.0, bool verbose=false) const
Get value of a RooAbsReal stored in set with given name.
virtual void removeAll()
Remove all arguments from our set, deleting them if we own them.
void deleteList()
Delete contents of the list.
Int_t getCatIndex(const char *name, Int_t defVal=0, bool verbose=false) const
Get index value of a RooAbsCategory stored in set with given name.
virtual bool remove(const RooAbsArg &var, bool silent=false, bool matchByNameOnly=false)
Remove the specified argument from our list.
RooAbsCollection & assignValueOnly(const RooAbsCollection &other, bool forceIfSizeOne=false)
Sets the value of any argument in our set that also appears in the other set.
virtual TObject * create(const char *newname) const =0
Int_t defaultPrintContents(Option_t *opt) const override
Define default RooPrinable print options for given Print() flag string For inline printing only show ...
bool allInRange(const char *rangeSpec) const
Return true if all contained object report to have their value inside the specified range.
void assignFast(const RooAbsCollection &other, bool setValDirty=true) const
Functional equivalent of assign() but assumes this and other collection have same layout.
void sortTopologically()
Sort collection topologically: the servers of any RooAbsArg will be before that RooAbsArg in the coll...
const char * getStringValue(const char *name, const char *defVal="", bool verbose=false) const
Get string value of a RooStringVar stored in set with given name.
bool contains(const RooAbsArg &var) const
Check if collection contains an argument with the same name as var.
virtual bool canBeAdded(const RooAbsArg &arg, bool silent) const =0
Determine whether it's possible to add a given RooAbsArg to the collection or not.
RooAbsCollection * snapshot(bool deepCopy=true) const
Take a snap shot of current collection contents.
RooAbsCollection()
Default constructor.
void printValue(std::ostream &os) const override
Print value of collection, i.e.
void printLatex(const RooCmdArg &arg1={}, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={}, const RooCmdArg &arg7={}, const RooCmdArg &arg8={}) const
Output content of collection as LaTex table.
Int_t getSize() const
Return the number of elements in the collection.
~RooAbsCollection() override
Destructor.
bool setStringValue(const char *name, const char *newVal="", bool verbose=false)
Set string value of a RooStringVar stored in set with given name to newVal.
const char * GetName() const override
Returns name of object.
virtual bool add(const RooAbsArg &var, bool silent=false)
Add the specified argument to list.
void setAttribAll(const Text_t *name, bool value=true)
Set given attribute in each element of the collection by calling each elements setAttribute() functio...
void printTitle(std::ostream &os) const override
Return collection title.
Int_t index(const RooAbsArg *arg) const
Returns index of given arg, or -1 if arg is not in the collection.
bool _allRRV
All contents are RRV.
bool hasSameLayout(const RooAbsCollection &other) const
Check that all entries where the collections overlap have the same name.
void RecursiveRemove(TObject *obj) override
If one of the TObject we have a referenced to is deleted, remove the reference.
void assign(const RooAbsCollection &other) const
Sets the value, cache and constant attribute of any argument in our set that also appears in the othe...
Storage_t::size_type size() const
RooAbsArg * first() const
virtual bool replace(const RooAbsArg &var1, const RooAbsArg &var2)
Replace var1 with var2 and return true for success.
bool setCatIndex(const char *name, Int_t newVal=0, bool verbose=false)
Set index value of a RooAbsCategoryLValue stored in set with given name to newVal.
void clear()
Clear contents. If the collection is owning, it will also delete the contents.
void printMultiline(std::ostream &os, Int_t contents, bool verbose=false, TString indent="") const override
Implement multiline printing of collection, one line for each contained object showing the requested ...
bool setCatLabel(const char *name, const char *newVal="", bool verbose=false)
Set state name of a RooAbsCategoryLValue stored in set with given name to newVal.
virtual bool addOwned(RooAbsArg &var, bool silent=false)
Add an argument and transfer the ownership to the collection.
Storage_t _list
Actual object storage.
RooAbsCollection * selectByName(const char *nameList, bool verbose=false) const
Create a subset of the current collection, consisting only of those elements with names matching the ...
bool setRealValue(const char *name, double newVal=0.0, bool verbose=false)
Set value of a RooAbsRealLValue stored in set with given name to newVal No error messages are printed...
bool _ownCont
Flag to identify a list that owns its contents.
virtual RooAbsArg * addClone(const RooAbsArg &var, bool silent=false)
Add a clone of the specified argument to list.
void printName(std::ostream &os) const override
Return collection name.
void sort(bool reverse=false)
Sort collection using std::sort and name comparison.
std::unique_ptr< LegacyIterator_t > makeLegacyIterator(bool forward=true) const
Factory for legacy iterators.
std::size_t _sizeThresholdForMapSearch
!
void dump() const
Base contents dumper for debugging purposes.
bool selectCommon(const RooAbsCollection &refColl, RooAbsCollection &outColl) const
Create a subset of the current collection, consisting only of those elements that are contained as we...
const char * getCatLabel(const char *name, const char *defVal="", bool verbose=false) const
Get state name of a RooAbsCategory stored in set with given name.
virtual bool containsInstance(const RooAbsArg &var) const
Check if this exact instance is in this collection.
void useHashMapForFind(bool flag) const
std::string contentsString() const
Return comma separated list of contained object names as STL string.
void printClassName(std::ostream &os) const override
Return collection class name.
void setName(const char *name)
RooAbsCollection & operator=(const RooAbsCollection &other)
Assign values from the elements in other to our elements.
void insert(RooAbsArg *)
Insert an element into the owned collections.
RooAbsArg * find(const char *name) const
Find object with given name in list.
RooAbsRealLValue is the common abstract base class for objects that represent a real value that may a...
virtual void setVal(double value)=0
Set the current value of the object. Needs to be overridden by implementations.
Abstract base class for objects that represent a real value and implements functionality common to al...
double 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.
Named container for two doubles, two integers two object points and three string pointers that can be...
void addArg(const RooCmdArg &arg)
Utility function to add nested RooCmdArg to payload of this RooCmdArg.
const char * getString(Int_t idx) const
Return string stored in slot idx.
void setString(Int_t idx, const char *value)
Class RooCmdConfig is a configurable parser for RooCmdArg named arguments.
void defineMutex(const char *head, Args_t &&... tail)
Define arguments where any pair is mutually exclusive.
bool process(const RooCmdArg &arg)
Process given RooCmdArg.
bool hasProcessed(const char *cmdName) const
Return true if RooCmdArg with name 'cmdName' has been processed.
bool ok(bool verbose) const
Return true of parsing was successful.
bool defineObject(const char *name, const char *argName, int setNum, const TObject *obj=nullptr, bool isArray=false)
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 convEmptyToNull=false) const
Return string property registered with name 'name'.
bool defineString(const char *name, const char *argName, int stringNum, const char *defValue="", bool appendMode=false)
Define double property name 'name' mapped to double in slot 'stringNum' in RooCmdArg with name argNam...
const RooLinkedList & getObjectList(const char *name) const
Return list of objects registered with name 'name'.
bool defineInt(const char *name, const char *argName, int intNum, int defValue=0)
Define integer property name 'name' mapped to integer in slot 'intNum' in RooCmdArg with name argName...
int getInt(const char *name, int defaultValue=0) const
Return integer property registered with name 'name'.
RooLinkedList is an collection class for internal use, storing a collection of RooAbsArg pointers in ...
TObject * At(int index) const
Return object stored in sequential position given by index.
void Delete(Option_t *o=nullptr) override
Remove all elements in collection and delete all elements NB: Collection does not own elements,...
virtual void Add(TObject *arg)
TObject * FindObject(const char *name) const override
Return pointer to object with given name.
RooNameReg is a registry for const char* names.
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 setValDirty=true)
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.
const char * GetName() const override
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 flag=true)
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
bool snapshotImpl(RooAbsCollection const &input, RooAbsCollection &output, bool deepCopy, RooArgSet const *observables)
Helper for hash-map-assisted finding of elements by name.
RooAbsArg * find(const TNamed *nptr) const
std::unordered_map< const TNamed *, const RooAbsArg *const > nameToItemMap
const std::size_t & currentRooNameRegCounter
void erase(const RooAbsArg *elm)
std::size_t rooNameRegCounterWhereMapWasValid
void replace(const RooAbsArg *out, const RooAbsArg *in)
void insert(const RooAbsArg *elm)
HashAssistedFind(It_t first, It_t last)
Initialise empty hash map for fast finding by name.