70 template<
typename It_t>
76 for (
auto it =
first; it != last; ++it) {
144 _allRRV(other._allRRV),
145 _sizeThresholdForMapSearch(100)
152 for (
auto item : other.
_list) {
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 ") ;
258 for (
auto orig :
_list) {
267 for (Storage_t::size_type i = 0; i <
output._list.size(); ++i) {
268 const auto var =
output._list[i];
269 error |=
output.addServerClonesToList(*var);
275 coutE(
ObjectHandling) <<
"RooAbsCollection::snapshot(): Errors occurred in deep clone process, snapshot not created" << std::endl;
284 var->redirectServers(
output,deepCopy);
307 for (
const auto server : var.
servers()) {
311 auto* serverClone =
static_cast<RooAbsArg*
>(server->Clone());
342 if (&other==
this) return ;
344 for (
auto elem :
_list) {
345 auto theirs = other.
find(*elem);
346 if(!theirs)
continue;
348 elem->copyCache(theirs) ;
349 elem->setAttribute(
"Constant",theirs->isConstant()) ;
364 if (&other==
this)
return *
this;
367 if (
size()==1 &&
size() == other.
size() && forceIfSizeOne) {
373 for (
auto elem :
_list) {
374 auto theirs = other.
find(*elem);
375 if(!theirs)
continue;
377 elem->copyCache(theirs,
true) ;
390 if (&other==
this) return ;
393 auto iter2 = other.
_list.begin();
394 for (
auto iter1 =
_list.begin();
395 iter1 !=
_list.end() && iter2 != other.
_list.end();
402 auto theirs =
static_cast<RooRealVar*
>(*iter2);
405 (*iter2)->syncCache() ;
406 (*iter1)->copyCache(*iter2,
true,setValDirty) ;
456 throw std::runtime_error(std::string(
"RooAbsCollection::addOwned could not add the argument to the")
457 +
" collection! The ownership would not be well defined if we ignore this.");
531 throw std::invalid_argument(
"Passing an owning RooAbsCollection by const& to"
532 " RooAbsCollection::addOwned is forbidden because the ownership"
533 " would be ambiguous! Please std::move() the RooAbsCollection in this case."
534 " Note that the passed RooAbsCollection is invalid afterwards.");
541 for (
auto item : list.
_list) {
558 if(list.isOwning()) {
559 list.releaseOwnership();
561 if(list.empty())
return false;
566 throw std::runtime_error(std::string(
"RooAbsCollection::addOwned could not add the argument to the")
567 +
" collection! The ownership would not be well defined if we ignore this.");
588 for (
auto item : list.
_list) {
603 coutE(
ObjectHandling) <<
"RooAbsCollection: cannot replace variables in a copied list" << std::endl;
608 for (
const auto * arg : other.
_list) {
610 auto found =
find(*arg);
611 if (found)
replace(*found,*arg);
628 coutE(
ObjectHandling) <<
"RooAbsCollection: cannot replace variables in a copied list" << std::endl;
634 auto var1It = std::find(
_list.begin(),
_list.end(), &var1);
636 if (var1It ==
_list.end()) {
638 <<
" and cannot be replaced" << std::endl;
646 if(other != 0 && other != &var1) {
648 <<
"\" with already existing \"" << var2.
GetName() <<
"\"" << std::endl;
677 const auto sizeBefore =
_list.size();
679 if (matchByNameOnly) {
682 return elm->GetName() ==
name;
684 std::set<RooAbsArg*> toBeDeleted;
688 if (nameMatch(elm)) {
689 toBeDeleted.insert(elm);
696 for (
auto arg : toBeDeleted)
699 _list.erase(std::remove(_list.begin(), _list.end(), &var), _list.end());
702 if (_hashAssistedFind && sizeBefore != _list.size()) {
703 _hashAssistedFind->erase(&var);
706 return sizeBefore != _list.size();
721 auto oldSize =
_list.size();
722 std::vector<const RooAbsArg*> markedItems;
724 if (matchByNameOnly) {
728 auto nameMatchAndMark = [&list, &markedItems](
const RooAbsArg* elm) {
730 markedItems.push_back(elm);
738 std::set<const RooAbsArg*> toBeDeleted(markedItems.begin(), markedItems.end());
740 for (
auto arg : toBeDeleted) {
746 auto argMatchAndMark = [&list, &markedItems](
const RooAbsArg* elm) {
748 markedItems.push_back(elm);
758 for(
auto& var : markedItems ) {
763 return oldSize !=
_list.size();
794 for (
auto arg :
_list) {
810 selName.
Append(
"_selection") ;
814 for (
auto arg :
_list) {
837 for (
auto arg :
_list) {
838 if (refColl.
find(*arg))
868 selName.
Append(
"_selection") ;
871 const size_t bufSize = strlen(nameList) + 1;
872 std::vector<char> buf(bufSize);
873 strlcpy(buf.data(),nameList,bufSize) ;
874 char* wcExpr = strtok(buf.data(),
",") ;
881 for (
auto const* arg : *
this) {
889 wcExpr = strtok(0,
",") ;
904 if (
size() != otherColl.
size())
return false ;
908 return left->
namePtr() == right->namePtr();
911 return std::is_permutation(
_list.begin(),
_list.end(),
912 otherColl.
_list.begin(),
920template<
class Collection_t>
921RooAbsArg* findUsingNamePointer(
const Collection_t& coll,
const TNamed* ptr) {
922 auto findByNamePtr = [ptr](
const RooAbsArg* elm) {
923 return ptr == elm->namePtr();
926 auto item = std::find_if(coll.begin(), coll.end(), findByNamePtr);
928 return item != coll.end() ? *item :
nullptr;
943 if (!nptr)
return nullptr;
953 return findUsingNamePointer(
_list, nptr);
963 const auto nptr = arg.
namePtr();
973 return findUsingNamePointer(
_list, nptr);
980 const std::string theName(
name);
982 return elm->GetName() == theName;
984 return item !=
_list.end() ? item -
_list.begin() : -1;
1025 rar->setVal(newVal) ;
1047 return rac->getCurrentLabel() ;
1068 rac->setLabel(newVal) ;
1090 return rac->getCurrentIndex() ;
1111 rac->setIndex(newVal) ;
1134 return ras->getVal() ;
1155 ras->setVal(newVal);
1164 std::string retVal ;
1165 for (
auto arg :
_list) {
1166 retVal += arg->GetName();
1170 retVal.erase(retVal.end()-1);
1215 if (opt &&
TString(opt)==
"I") {
1218 if (opt &&
TString(opt).Contains(
"v")) {
1236 for (
auto arg :
_list) {
1245 os << arg->GetName();
1267 Int_t maxNameLen(1) ;
1269 if (nameFieldLengthSaved==0) {
1270 for (
auto next :
_list) {
1271 Int_t len = strlen(next->GetName()) ;
1272 if (
len>maxNameLen) maxNameLen =
len ;
1277 unsigned int idx = 0;
1278 for (
auto next :
_list) {
1279 os <<
indent << std::setw(3) << ++idx <<
") ";
1294 for (
auto arg :
_list) {
1295 std::cout << arg <<
" " << arg->ClassName() <<
"::" << arg->GetName() <<
" (" << arg->GetTitle() <<
")" << std::endl ;
1343 pc.defineInt(
"ncol",
"Columns",0,1) ;
1344 pc.defineString(
"outputFile",
"OutputFile",0,
"") ;
1345 pc.defineString(
"format",
"Format",0,
"NEYVU") ;
1346 pc.defineInt(
"sigDigit",
"Format",0,1) ;
1347 pc.defineObject(
"siblings",
"Sibling",0,0,
true) ;
1348 pc.defineInt(
"dummy",
"FormatArgs",0,0) ;
1349 pc.defineMutex(
"Format",
"FormatArgs") ;
1359 pc.process(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) ;
1364 const char* outFile =
pc.getString(
"outputFile") ;
1365 if (outFile && strlen(outFile)) {
1366 std::ofstream ofs(outFile) ;
1367 if (
pc.hasProcessed(
"FormatArgs")) {
1370 printLatex(ofs,
pc.getInt(
"ncol"),0,0,
pc.getObjectList(
"siblings"),formatCmd) ;
1372 printLatex(ofs,
pc.getInt(
"ncol"),
pc.getString(
"format"),
pc.getInt(
"sigDigit"),
pc.getObjectList(
"siblings")) ;
1375 if (
pc.hasProcessed(
"FormatArgs")) {
1378 printLatex(std::cout,
pc.getInt(
"ncol"),0,0,
pc.getObjectList(
"siblings"),formatCmd) ;
1380 printLatex(std::cout,
pc.getInt(
"ncol"),
pc.getString(
"format"),
pc.getInt(
"sigDigit"),
pc.getObjectList(
"siblings")) ;
1405 sibFormatCmd = *formatCmd ;
1409 static char buf[100] ;
1410 strlcpy(buf,tmp.
Data(),100) ;
1418 for(
auto * col : static_range_cast<RooAbsCollection*>(siblingList)) {
1426 for(
auto * col : static_range_cast<RooAbsCollection*>(listList)) {
1428 for (
auto* arg : *col) {
1433 coutW(
InputArguments) <<
"RooAbsCollection::printLatex: can only print RooRealVar in LateX, skipping non-RooRealVar object named "
1434 << arg->GetName() << std::endl;
1437 coutW(
InputArguments) <<
"RooAbsCollection::printLatex: WARNING: naming and/or ordering of sibling list is different" << std::endl;
1440 listListRRV.
Add(list) ;
1441 if (prevList && list->
size() != prevList->
size()) {
1442 coutW(
InputArguments) <<
"RooAbsCollection::printLatex: ERROR: sibling list(s) must have same length as self" << std::endl;
1453 for (k=0 ; k<nlist ; k++) subheader +=
"c" ;
1455 TString header =
"\\begin{tabular}{" ;
1456 for (j=0 ; j<ncol ; j++) {
1457 if (j>0) header +=
"|" ;
1458 header += subheader ;
1461 ofs << header << std::endl;
1465 for (i=0 ; i<nrow ; i++) {
1466 for (j=0 ; j<ncol ; j++) {
1467 for (k=0 ; k<nlist ; k++) {
1471 ofs << *std::unique_ptr<TString>{par->
format(sigDigit,(k==0)?
option:sibOption.
Data())};
1473 ofs << *std::unique_ptr<TString>{par->
format((k==0)?*formatCmd:sibFormatCmd)};
1476 if (!(j==ncol-1 && k==nlist-1)) {
1481 ofs <<
"\\\\" << std::endl;
1484 ofs <<
"\\end{tabular}" << std::endl;
1497 if (!rangeSpec)
return true ;
1500 std::vector<std::string> cutVec ;
1501 if (rangeSpec && strlen(rangeSpec)>0) {
1502 if (strchr(rangeSpec,
',')==0) {
1503 cutVec.push_back(rangeSpec) ;
1505 const size_t bufSize = strlen(rangeSpec)+1;
1506 std::vector<char> buf(bufSize);
1507 strlcpy(buf.data(),rangeSpec,bufSize) ;
1508 const char* oneRange = strtok(buf.data(),
",") ;
1510 cutVec.push_back(oneRange) ;
1511 oneRange = strtok(0,
",") ;
1517 bool selectByRange = true ;
1518 for (
auto arg :
_list) {
1519 bool selectThisArg = false ;
1521 for (icut=0 ; icut<cutVec.size() ; icut++) {
1522 if (arg->inRange(cutVec[icut].c_str())) {
1523 selectThisArg = true ;
1527 if (!selectThisArg) {
1528 selectByRange = false ;
1533 return selectByRange ;
1554 return strcmp(
l->
GetName(),
r->GetName()) > 0;
1557 std::sort(
_list.begin(),
_list.end(), cmpReverse);
1561 return strcmp(
l->
GetName(),
r->GetName()) < 0;
1573 std::unordered_set<TNamed const *> seenArgs;
1574 for (std::size_t iArg = 0; iArg <
_list.size(); ++iArg) {
1576 bool movedArg =
false;
1578 if (seenArgs.find(server->namePtr()) == seenArgs.end()) {
1579 auto found = std::find_if(
_list.begin(),
_list.end(),
1580 [server](
RooAbsArg *elem) { return elem->namePtr() == server->namePtr(); });
1581 if (found !=
_list.end()) {
1593 seenArgs.insert(arg->
namePtr());
1602 ccoutE(
DataHandling) <<
"The legacy RooFit collection iterators don't support reverse iterations, any more. "
1603 <<
"Use begin() and end()" << std::endl;
1604 return std::make_unique<LegacyIterator_t>(
_list);
1611 _list.push_back(item);
1634 for (
unsigned int i=0; i < std::min(
_list.size(), other.
size()); ++i) {
1635 if (
_list[i]->namePtr() != other.
_list[i]->namePtr())
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
RooAbsArg is the common abstract base class for objects that represent a value and a "shape" in RooFi...
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.
void setAttribute(const Text_t *name, bool value=true)
Set (default) or clear a named boolean attribute of this object.
TObject * Clone(const char *newname=nullptr) const override
Make a clone of an object using the Streamer facility.
RooAbsCategoryLValue is the common abstract base class for objects that represent a discrete value th...
A space to attach TBranches.
RooAbsCollection is an 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.
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 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 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 addServerClonesToList(const RooAbsArg &var)
Add clones of servers of given argument to end of list.
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 RooAbsRealLValye 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...
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
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.
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.
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.
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 obejct 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)
std::size_t size() const
Number of contained objects (neglecting the ref count).
RooStringVar is a RooAbsArg implementing string values.
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)
static Roo_reg_AGKInteg1D instance
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
static constexpr double pc
void forward(const LAYERDATA &prevLayerData, LAYERDATA &currLayerData)
apply the weights (and functions) in forward direction of the DNN
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)
Inititalise empty hash map for fast finding by name.