74 #if (__GNUC__==3&&__GNUC_MINOR__==2&&__GNUC_PATCHLEVEL__==3)
98 _prohibitServerRedirect(
kFALSE),
102 _localNoInhibitDirty(
kFALSE)
124 _prohibitServerRedirect(
kFALSE),
128 _localNoInhibitDirty(
kFALSE)
142 :
TNamed(other.GetName(),other.GetTitle()),
144 _boolAttrib(other._boolAttrib),
145 _stringAttrib(other._stringAttrib),
146 _deleteWatch(other._deleteWatch),
150 _prohibitServerRedirect(
kFALSE),
151 _eocache(other._eocache),
152 _namePtr(other._namePtr),
153 _isConstant(other._isConstant),
154 _localNoInhibitDirty(other._localNoInhibitDirty)
169 Bool_t valueProp, shapeProp ;
170 while ((server = sIter.
next())) {
203 while ((client=clientIter.
next())) {
214 cxcoutD(
Tracing) <<
"RooAbsArg::dtor(" <<
GetName() <<
"," <<
this <<
") DeleteWatch: object is being destroyed" << endl ;
219 << client->
GetName() <<
"\" should have been deleted first" << endl ;
258 other.getAttribute(
Form(
"CloneOf(%lx)",(
ULong_t)
this))) ;
268 if(
string(
"Constant")==name) {
275 set<string>::iterator iter =
_boolAttrib.find(name) ;
314 map<string,string>::const_iterator iter =
_stringAttrib.find(key) ;
316 return iter->second.c_str() ;
365 <<
"): PROHIBITED SERVER ADDITION REQUESTED: adding server " << server.
GetName()
366 <<
"(" << &server <<
") for " << (valueProp?
"value ":
"") << (shapeProp?
"shape":
"") << endl ;
371 <<
"(" << &server <<
") for " << (valueProp?
"value ":
"") << (shapeProp?
"shape":
"") << endl ;
401 while ((arg=iter.
next())) {
415 cxcoutF(
LinkStateMgmt) <<
"RooAbsArg::addServer(" <<
this <<
"," <<
GetName() <<
"): PROHIBITED SERVER REMOVAL REQUESTED: removing server "
416 << server.
GetName() <<
"(" << &server <<
")" << endl ;
422 << server.
GetName() <<
"(" << &server <<
")" << endl ;
450 addServer(newServer, propValue, propShape);
462 << server.
GetName() <<
" not registered" << endl ;
469 << server.
GetName() <<
" doesn't have us registered as client" << endl ;
527 if ((doBranch&&doLeaf) ||
539 while ((server=sIter.
next())) {
543 if (valueOnly && !isValueSrv) {
576 while((server=siter.
next())) {
579 if (!nset || !server->
dependsOn(*nset)) {
580 nodeParamServers.
add(*server) ;
583 nodeBranchServers.
add(*server) ;
592 params.
add(nodeParamServers,
kTRUE) ;
596 while((server=biter.
next())) {
649 if (!dataList)
return depList ;
652 RooArgSet leafList(
"leafNodeServerList") ;
659 while ((arg=sIter.
next())) {
665 while ((arg=sIter.
next())) {
693 name.
Append(
"_components") ;
725 while((arg=iter.
next())) {
728 << arg->
GetName() <<
" no longer exists!" << endl ;
750 while ((server=sIter.
next())) {
751 if (
dependsOn(*server,ignoreArg,valueOnly)) {
766 if (
this==ignoreArg)
return kFALSE ;
785 while ((server=sIter.
next())) {
788 if (server->
dependsOn(testArg,ignoreArg,valueOnly)) {
854 }
else if (source==
this) {
857 <<
"): cyclical dependency detected, source = " << source->
GetName() << endl ;
865 <<
"): dirty flag " << (
_valueDirty?
"already ":
"") <<
"raised" << endl ;
873 while ((client=clientValueIter.
next())) {
889 <<
"): dirty flag " << (
_shapeDirty?
"already ":
"") <<
"raised" << endl ;
900 }
else if (source==
this) {
903 <<
"): cyclical dependency detected" << endl ;
912 while ((client=clientShapeIter.
next())) {
942 while((arg=iter.
next())) {
944 if (
string(
"REMOVAL_DUMMY")==arg->
GetName()) {
968 RooLinkedList origServerList, origServerValue, origServerShape ;
971 while ((oldServer=sIter.
next())) {
972 origServerList.
Add(oldServer) ;
976 origServerValue.
Add(oldServer) ;
979 origServerShape.
Add(oldServer) ;
985 Bool_t propValue, propShape ;
986 while ((oldServer=sIter.
next())) {
992 <<
" redirected from " << oldServer <<
" to " << newServer << endl ;
996 if (mustReplaceAll) {
998 <<
" (" << (
void*)oldServer <<
") not redirected" << (nameChange?
"[nameChange]":
"") << endl ;
1007 if (newServer !=
this) {
1022 allReplaced &= ret2 ;
1025 if (mustReplaceAll && !allReplaced) {
1027 <<
"): ERROR, some proxies could not be adjusted" << endl ;
1054 newServer = newSet.
find(*
this) ;
1059 TString nameAttrib(
"ORIGNAME:") ;
1074 << nameAttrib <<
" attribute" << endl ;
1080 newServer= tmp->
first();
1099 static std::set<const RooAbsArg*> callStack;
1101 std::set<const RooAbsArg*>::iterator it = callStack.lower_bound(
this);
1102 if (it != callStack.end() &&
this == *it) {
1105 callStack.insert(it,
this);
1118 cxcoutD(
LinkStateMgmt) <<
"RooAbsArg::recursiveRedirectServers(" <<
this <<
"," <<
GetName() <<
") newSet = " << newSet <<
" mustReplaceAll = "
1119 << (mustReplaceAll?
"T":
"F") <<
" nameChange = " << (nameChange?
"T":
"F") <<
" recurseInNewSet = " << (recurseInNewSet?
"T":
"F") << endl ;
1127 while((server=sIter.
next())) {
1131 callStack.erase(
this);
1150 <<
" already registered" << endl ;
1191 << proxy.
GetName() <<
" already registered" << endl ;
1224 << proxy.
GetName() <<
" already registered" << endl ;
1232 cout <<
"RooAbsArg::registerProxy(" <<
GetName() <<
") proxy registration failure! nold=" << nProxyOld <<
" nnew=" <<
_proxyList.
GetEntries() << endl ;
1295 <<
"): Cannot be attached to a TTree" << endl ;
1386 os << indent <<
"--- RooAbsArg ---" << endl;
1388 os << indent <<
" Value State: " ;
1390 case ADirty: os <<
"FORCED DIRTY" ; break ;
1391 case AClean: os <<
"FORCED clean" ; break ;
1395 << indent <<
" Shape State: " << (
isShapeDirty() ?
"DIRTY":
"clean") << endl;
1397 os << indent <<
" Attributes: " ;
1401 os << indent <<
" Address: " << (
void*)
this << endl;
1403 os << indent <<
" Clients: " << endl;
1406 while ((client=clientIter.
next())) {
1407 os << indent <<
" (" << (
void*)client <<
","
1415 os << indent <<
" Servers: " << endl;
1418 while ((server=serverIter.
next())) {
1419 os << indent <<
" (" << (
void*)server <<
","
1427 os << indent <<
" Proxies: " << endl ;
1432 os << indent <<
" " << proxy->
name() <<
" -> " ;
1437 os <<
" (empty)" << endl ; ;
1440 os << indent <<
" " << proxy->
name() <<
" -> " ;
1482 set<string>::const_iterator iter =
_boolAttrib.begin() ;
1485 os << (first?
" [":
",") << *iter ;
1489 if (!first) os <<
"] " ;
1504 while((branch=iter.
next())) {
1523 while((branch=iter.
next())) {
1554 while((branch=bIter.
next())) {
1561 case AClean: cout <<
"FORCED clean" ; break ;
1562 case ADirty: cout <<
"FORCED DIRTY" ; break ;
1584 coutI(
Optimization) <<
"RooAbsArg::optimizeCacheMode(" <<
GetName() <<
") nodes " << opt <<
" depend on observables, "
1585 <<
"changing cache operation mode from change tracking to unconditional evaluation" << endl ;
1606 if (processedNodes.
findArg(
this)) {
1609 processedNodes.
Add(
this) ;
1615 if (dynamic_cast<RooRealIntegral*>(
this)) {
1616 cxcoutI(
Integration) <<
"RooAbsArg::optimizeCacheMode(" <<
GetName() <<
") integral depends on value of one or more observables and will be evaluated for every event" << endl ;
1633 while((server=sIter.
next())) {
1650 << cacheList <<
" depend exclusively on constant parameters and will be precalculated and cached" << endl ;
1669 if (processedNodes.
findArg(
this)) {
1672 processedNodes.
Add(
this) ;
1680 while((param = iter.
next())) {
1715 while((server=sIter.
next())) {
1742 while((server=sIter.
next())) {
1766 if (mode==
ADirty && recurseADirty) {
1769 while((client=iter.
next())) {
1785 ofstream ofs(filename) ;
1802 os << indent << this ;
1815 case Auto: os <<
" [Auto," << (
isValueDirty()?
"Dirty":
"Clean") <<
"] " ; break ;
1816 case AClean: os <<
" [ACLEAN] " ; break ;
1817 case ADirty: os <<
" [ADIRTY] " ; break ;
1832 while((arg=iter.
next())) {
1861 while((arg=iter.
next())) {
1879 TString cleanName(rawBranchName) ;
1891 if (cleanName.
Length()<=60)
return cleanName ;
1894 static char buf[1024] ;
1895 strlcpy(buf,cleanName.
Data(),1024) ;
1896 snprintf(buf+46,1024-46,
"_CRC%08x",
crc32(cleanName.
Data())) ;
1908 unsigned long sz = strlen(data);
1909 switch (strlen(data)) {
1915 return (data[0] << 8) | data[1];
1917 return (data[0] << 16) | (data[1] << 8) | data[2];
1919 return (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];
1921 return crc32(data + 4, sz - 4, (data[0] << 24) | (data[1] << 16) |
1922 (data[2] << 8) | data[3]);
1932 static const UInt_t crctab[256] = { 0x00000000,
1933 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b,
1934 0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6,
1935 0x2b4bcb61, 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd,
1936 0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9, 0x5f15adac,
1937 0x5bd4b01b, 0x569796c2, 0x52568b75, 0x6a1936c8, 0x6ed82b7f,
1938 0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3, 0x709f7b7a,
1939 0x745e66cd, 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039,
1940 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58,
1941 0xbaea46ef, 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033,
1942 0xa4ad16ea, 0xa06c0b5d, 0xd4326d90, 0xd0f37027, 0xddb056fe,
1943 0xd9714b49, 0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95,
1944 0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1, 0xe13ef6f4,
1945 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0,
1946 0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5,
1947 0x2ac12072, 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16,
1948 0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca, 0x7897ab07,
1949 0x7c56b6b0, 0x71159069, 0x75d48dde, 0x6b93dddb, 0x6f52c06c,
1950 0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1,
1951 0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
1952 0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b,
1953 0xbb60adfc, 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698,
1954 0x832f1041, 0x87ee0df6, 0x99a95df3, 0x9d684044, 0x902b669d,
1955 0x94ea7b2a, 0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e,
1956 0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2, 0xc6bcf05f,
1957 0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34,
1958 0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59, 0x608edb80,
1959 0x644fc637, 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb,
1960 0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f, 0x5c007b8a,
1961 0x58c1663d, 0x558240e4, 0x51435d53, 0x251d3b9e, 0x21dc2629,
1962 0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5, 0x3f9b762c,
1963 0x3b5a6b9b, 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff,
1964 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e,
1965 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65,
1966 0xeba91bbc, 0xef68060b, 0xd727bbb6, 0xd3e6a601, 0xdea580d8,
1967 0xda649d6f, 0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3,
1968 0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7, 0xae3afba2,
1969 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71,
1970 0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74,
1971 0x857130c3, 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640,
1972 0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c, 0x7b827d21,
1973 0x7f436096, 0x7200464f, 0x76c15bf8, 0x68860bfd, 0x6c47164a,
1974 0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e, 0x18197087,
1975 0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,
1976 0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d,
1977 0x2056cd3a, 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce,
1978 0xcc2b1d17, 0xc8ea00a0, 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb,
1979 0xdbee767c, 0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18,
1980 0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4, 0x89b8fd09,
1981 0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662,
1982 0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf,
1983 0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4
1987 while (sz--) crc = (crc << 8) ^ UInt_t(*data++) ^ crctab[crc >> 24];
1995 return fnv1a32(data, strlen(data));
2001 const UInt_t fnv1a32mult = 16777619u;
2004 hash *= fnv1a32mult;
2012 return fnv1a64(data, strlen(data));
2021 hash *= fnv1a64mult;
2095 set<string>::const_iterator iter=
_boolAttrib.begin() ;
2099 strlcpy(buf,iter->c_str(),128) ;
2101 char* ptrToken = strtok(0,
")") ;
2120 ofstream ofs(fileName) ;
2122 coutE(
InputArguments) <<
"RooAbsArg::graphVizTree() ERROR: Cannot open graphViz output file with name " << fileName << endl ;
2137 coutE(
InputArguments) <<
"RooAbsArg::graphVizTree() ERROR: output stream provided as input argument is in invalid state" << endl ;
2141 os <<
"digraph " <<
GetName() <<
"{" << endl ;
2150 while((node=iter.
next())) {
2151 string nodeName = node->
GetName();
2152 string nodeTitle = node->
GetTitle();
2153 string nodeLabel = (useTitle && !nodeTitle.empty()) ? nodeTitle : nodeName;
2156 string::size_type position = nodeLabel.find(
"#") ;
2157 while(useLatex && position!=nodeLabel.npos){
2158 nodeLabel.replace(position, 1,
"\\");
2161 string typeFormat =
"\\texttt{";
2162 string nodeType = (useLatex) ? typeFormat+node->IsA()->
GetName()+
"}" : node->IsA()->
GetName();
2164 os <<
"\"" << nodeName <<
"\" [ color=" << (node->
isFundamental()?
"blue":
"red")
2165 <<
", label=\"" << nodeType << delimiter << nodeLabel <<
"\"];" << endl ;
2170 set<pair<RooAbsArg*,RooAbsArg*> > links ;
2174 set<pair<RooAbsArg*,RooAbsArg*> >::iterator liter = links.begin() ;
2175 for( ; liter != links.end() ; ++liter ) {
2176 os <<
"\"" << liter->first->GetName() <<
"\" -> \"" << liter->second->GetName() <<
"\";" << endl ;
2193 while((server=sIter.
next())) {
2194 linkSet.insert(make_pair(
this,server)) ;
2305 clonedNodes->
remove(*head) ;
2312 delete clonedNodes ;
2316 head->TNamed::SetName(newname) ;
2330 if (dynamic_cast<RooTreeDataStore*>(&store)) {
2332 }
else if (dynamic_cast<RooVectorDataStore*>(&store)) {
2361 while((arg=iter.
next())) {
2363 if (tmp) suffix += tmp ;
2365 return Form(
"%s",suffix.c_str()) ;
2377 while((arg=iter.
next())) {
2379 for (deque<RooAbsCache*>::iterator iter2 = arg->
_cacheList.begin() ; iter2 != arg->
_cacheList.end() ; ++iter2) {
2380 (*iter2)->wireCache() ;
2420 void RooAbsArg::Streamer(
TBuffer &R__b)
2448 map<RooAbsArg*,TRefArray*>::iterator iter =
_ioEvoList.find(
this) ;
2452 for (
int i=0 ; i < iter->second->GetEntries() ; i++) {
2456 delete iter->second ;
2476 map<RooAbsArg*,TRefArray*>::iterator iter =
_ioEvoList.begin() ;
2480 for (
int i=0 ; i < iter->second->GetEntries() ; i++) {
2481 iter->first->_proxyList.Add(iter->second->At(i)) ;
2485 map<RooAbsArg*,TRefArray*>::iterator iter_tmp =
iter ;
2490 delete iter_tmp->second ;
2501 void RooRefArray::Streamer(
TBuffer &R__b)
2510 refArray->Streamer(R__b) ;
2514 RooAbsArg::_ioEvoList[RooAbsArg::_ioReadStack.top()] = refArray ;
2523 TObject* tmpObj ;
while ((tmpObj = iter->
Next())) {
2524 refArray.
Add(tmpObj) ;
2528 refArray.Streamer(R__b) ;
virtual void printMetaArgs(std::ostream &) const
void setAttribute(const Text_t *name, Bool_t value=kTRUE)
Set (default) or clear a named boolean attribute of this object.
virtual void Add(TObject *arg)
virtual const char * GetTitle() const
Returns title of object.
virtual void findConstantNodes(const RooArgSet &, RooArgSet &, RooLinkedList &)
Interface for constant term node finding calls.
virtual void print(std::ostream &os, Bool_t addContents=kFALSE) const
Print proxy name.
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Add the specified argument to list.
void unRegisterProxy(RooArgProxy &proxy)
Remove proxy from proxy list.
const char * aggregateCacheUniqueSuffix() const
virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer)=0
void setShapeDirty() const
TIterator * _clientShapeIter
virtual Bool_t isDerived() const
virtual Bool_t RemoveAll(TObject *obj)
Remove object from list and delete object itself regardless of reference count.
static std::stack< RooAbsArg * > _ioReadStack
void sort(Bool_t ascend=kTRUE)
virtual void getParametersHook(const RooArgSet *, RooArgSet *, Bool_t) const
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
istream & operator>>(istream &is, RooAbsArg &arg)
Istream operator.
static void ioStreamerPass2Finalize()
Method called by workspace container to finalize schema evolution issues that cannot be handled in a ...
virtual void operModeHook()
Interface for operation mode changes.
virtual void printClassName(std::ostream &os) const
Print object class name.
virtual void optimizeCacheMode(const RooArgSet &observables)
Activate cache mode optimization with given definition of observables.
virtual void printStream(std::ostream &os, Int_t contents, StyleOption style, TString indent="") const
Print description of object on ostream, printing contents set by contents integer, which is interpreted as an OR of 'enum ContentsOptions' values and in the style given by 'enum StyleOption'.
TString cleanBranchName() const
Construct a mangled name from the actual name that is free of any math symbols that might be interpre...
void setHashTableSize(Int_t size)
Change the threshold for hash-table use to given size.
void printAttribList(std::ostream &os) const
Transient boolean attributes (not copied in ctor)
RooFIter fwdIterator() const
TString & ReplaceAll(const TString &s1, const TString &s2)
void registerProxy(RooArgProxy &proxy)
Register an RooArgProxy in the proxy list.
virtual void SetName(const char *name)
Change (i.e.
virtual const char * cacheUniqueSuffix() const
RooArgSet * getObservables(const RooArgSet &set, Bool_t valueOnly=kTRUE) const
void addParameters(RooArgSet ¶ms, const RooArgSet *nset=0, Bool_t stripDisconnected=kTRUE) const
INTERNAL helper function for getParameters()
virtual Bool_t isFundamental() const
ostream & operator<<(ostream &os, RooAbsArg &arg)
Ostream operator.
virtual RooAbsArg * cloneTree(const char *newname=0) const
Clone tree expression of objects.
Bool_t getTransientAttribute(const Text_t *name) const
Check if a named attribute is set.
Buffer base class used for serializing objects.
RooAbsArg * findArg(const RooAbsArg *) const
Return pointer to object with given name in collection.
static const char * filename()
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss)=0
virtual TObject * Remove(TObject *obj)
Remove object from array.
Int_t refCount(TObject *obj)
Return reference count associated with 'obj'.
virtual const RooArgSet * get(Int_t index) const =0
RooAbsArg()
Default constructor.
void leafNodeServerList(RooAbsCollection *list, const RooAbsArg *arg=0, Bool_t recurseNonDerived=kFALSE) const
Fill supplied list with all leaf nodes of the arg tree, starting with ourself as top node...
std::set< std::string > _boolAttrib
virtual void printTree(std::ostream &os, TString indent="") const
Print object tree structure.
An array of references to TObjects.
void setProxyNormSet(const RooArgSet *nset)
Forward a change in the cached normalization argset to all the registered proxies.
Bool_t addOwnedComponents(const RooArgSet &comps)
Take ownership of the contents of 'comps'.
virtual UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt=kFALSE)=0
RooExpensiveObjectCache & expensiveObjectCache() const
void replaceServer(RooAbsArg &oldServer, RooAbsArg &newServer, Bool_t valueProp, Bool_t shapeProp)
Replace 'oldServer' with 'newServer'.
RooAbsProxy * getProxy(Int_t index) const
Return the nth proxy from the proxy list.
Bool_t getAttribute(const Text_t *name) const
Check if a named attribute is set. By default, all attributes are unset.
void SetNameTitle(const char *name, const char *title)
Change (i.e. set) all the TNamed parameters (name and title).
virtual void SetNameTitle(const char *name, const char *title)
Change (i.e. set) all the TNamed parameters (name and title).
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
virtual Bool_t readFromStream(std::istream &is, Bool_t compact, Bool_t verbose=kFALSE)=0
void attachDataSet(const RooAbsData &set)
Replace server nodes with names matching the dataset variable names with those data set variables...
TIterator * MakeIterator(Bool_t dir=kIterForward) const
Returns an array iterator.
Iterator abstract base class.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
void attachToStore(RooAbsDataStore &store)
RooArgSet * _ownedComponents
Bool_t isShapeServer() const
virtual void attachToTree(TTree &t, Int_t bufSize=32000)=0
Overloadable function for derived classes to implement attachment as branch to a TTree.
RooRefCountList _clientListValue
void registerCache(RooAbsCache &cache)
Register RooAbsCache with this object.
virtual void printMultiline(std::ostream &os, Int_t contents, Bool_t verbose=kFALSE, TString indent="") const
Implement multi-line detailed printing.
const Text_t * getStringAttribute(const Text_t *key) const
Get string attribute mapped under key 'key'.
const char * Data() const
virtual TObject * FindObject(const char *name) const
Find an object in this collection using its name.
RooAbsArg * first() const
void setStringAttribute(const Text_t *key, const Text_t *value)
Associate string 'value' to this object under key 'key'.
std::deque< RooAbsCache * > _cacheList
void printCompactTree(const char *indent="", const char *fileName=0, const char *namePat=0, RooAbsArg *client=0)
Print tree structure of expression tree on stdout, or to file if filename is specified.
virtual void Print(Option_t *options=0) const
Print TNamed name and title.
virtual Bool_t changePointer(const RooAbsCollection &newServerSet, Bool_t nameChange=kFALSE, Bool_t factoryInitMode=kFALSE)=0
The TNamed class is the base class for all named ROOT classes.
RooArgSet * getVariables(Bool_t stripDisconnected=kTRUE) const
Return RooArgSet with all variables (tree leaf nodes of expresssion tree)
virtual Bool_t addOwned(RooAbsArg &var, Bool_t silent=kFALSE)
Add element to an owning set.
Bool_t isShapeDirty() const
Int_t getHashTableSize() const
virtual void attachToVStore(RooVectorDataStore &vstore)=0
std::map< std::string, std::string >::const_iterator iter
const TNamed * namePtr() const
if on multiple lines(like in C++).**The" * configuration fragment. * * The "import myobject continue
Parses the configuration file.
static Bool_t _verboseDirty
virtual Bool_t checkObservables(const RooArgSet *nset) const
Overloadable function in which derived classes can implement consistency checks of the variables...
TString & Append(const char *cs)
Int_t numCaches() const
Return number of registered caches.
virtual Bool_t redirectServersHook(const RooAbsCollection &, Bool_t, Bool_t, Bool_t)
Interface for server redirect calls.
virtual Bool_t redirectServersHook(const RooAbsCollection &, Bool_t, Bool_t, Bool_t)
Bool_t dependsOnValue(const RooAbsCollection &serverList, const RooAbsArg *ignoreArg=0) const
TIterator * MakeIterator(Bool_t dir=kTRUE) const
Return an iterator over this list.
static Bool_t _inhibitDirty
void graphVizTree(const char *fileName, const char *delimiter="\n", bool useTitle=false, bool useLatex=false)
Create a GraphViz .dot file visualizing the expression tree headed by this RooAbsArg object...
void printDirty(Bool_t depth=kTRUE) const
Print information about current value dirty state information.
TString operator+(const TString &s1, const TString &s2)
Use the special concatenation constructor.
virtual void operModeHook()
RooArgSet * getParameters(const RooAbsData *data, Bool_t stripDisconnected=kTRUE) const
Create a list of leaf nodes in the arg tree starting with ourself as top node that don't match any of...
virtual void printAddress(std::ostream &os) const
Print class name of object.
static ULong64_t fnv1a64(const char *data)
static void verboseDirty(Bool_t flag)
Activate verbose messaging related to dirty flag propagation.
virtual const RooArgSet * get() const
void addServerList(RooAbsCollection &serverList, Bool_t valueProp=kTRUE, Bool_t shapeProp=kFALSE)
Register a list of RooAbsArg as servers to us by calls addServer() for each arg in the list...
virtual void printCompactTreeHook(std::ostream &, const char *)
Interface for printing of cache guts in tree mode printing.
virtual void printArgs(std::ostream &os) const
Print object arguments, ie its proxies.
static RooNameReg & instance()
Return reference to singleton instance.
virtual void Add(TObject *arg)
void unRegisterCache(RooAbsCache &cache)
Unregister a RooAbsCache. Called from the RooAbsCache destructor.
Int_t numProxies() const
Return the number of registered proxies.
Bool_t isShapeServer(const RooAbsArg &arg) const
void setTransientAttribute(const Text_t *name, Bool_t value=kTRUE)
Set (default) or clear a named boolean attribute of this object.
RooAbsArg * find(const char *name) const
Find object with given name in list.
Bool_t _isConstant
Do not persist. Pointer to global instance of string that matches object named.
virtual ~RooAbsArg()
Destructor.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual void Print(Option_t *options=0) const
This method must be overridden when a class wants to print itself.
void printComponentTree(const char *indent="", const char *namePat=0, Int_t nLevel=999)
Print tree structure of expression tree on given ostream, only branch nodes are printed.
void SetName(const char *name)
Change (i.e.
char * Form(const char *fmt,...)
RooRefCountList _clientList
static UInt_t crc32(const char *data)
virtual void printName(std::ostream &os) const
Print object name.
void attachDataStore(const RooAbsDataStore &set)
Replace server nodes with names matching the dataset variable names with those data set variables...
virtual void changeNormSet(const RooArgSet *newNormSet)
Destructor.
RooAbsArg * absArg() const
virtual const char * GetName() const
Returns name of object.
virtual void SetByteCount(UInt_t cntpos, Bool_t packInVersion=kFALSE)=0
void branchNodeServerList(RooAbsCollection *list, const RooAbsArg *arg=0, Bool_t recurseNonDerived=kFALSE) const
Fill supplied list with all branch nodes of the arg tree starting with ourself as top node...
RooRefCountList _clientListShape
static void indent(ostringstream &buf, int indent_level)
void changeServer(RooAbsArg &server, Bool_t valueProp, Bool_t shapeProp)
Change dirty flag propagation mask for specified server.
virtual const char * name() const
static RooExpensiveObjectCache & instance()
Return reference to singleton instance.
virtual void writeToStream(std::ostream &os, Bool_t compact) const =0
static void setDirtyInhibit(Bool_t flag)
Control global dirty inhibit mode.
Bool_t isConstant() const
Int_t Compare(const TObject *other) const
Utility function used by TCollection::Sort to compare contained TObjects We implement comparison by n...
virtual Bool_t Remove(TObject *obj)
Remove object from list and if reference count reaches zero delete object itself as well...
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class=0)=0
void treeNodeServerList(RooAbsCollection *list, const RooAbsArg *arg=0, Bool_t doBranch=kTRUE, Bool_t doLeaf=kTRUE, Bool_t valueOnly=kFALSE, Bool_t recurseNonDerived=kFALSE) const
Fill supplied list with nodes of the arg tree, following all server links, starting with ourself as t...
Bool_t overlaps(const RooAbsArg &testArg, Bool_t valueOnly=kFALSE) const
Test if any of the nodes of tree are shared with that of the given tree.
virtual const char * GetName() const
Returns name of object.
RooFIter fwdIterator() const
std::map< std::string, std::string > _stringAttrib
unsigned long long ULong64_t
RooRefCountList _serverList
void setValueDirty() const
TIterator * _clientValueIter
Iterator over _clientListShape.
Int_t GetEntries() const
Return the number of objects in array (i.e.
RooFIter serverMIterator() const
Bool_t findConstantNodes(const RooArgSet &observables, RooArgSet &cacheList)
Find branch nodes with all-constant parameters, and add them to the list of nodes that can be cached ...
Bool_t _prohibitServerRedirect
Set of owned component.
RooArgSet * getComponents() const
RooFIter valueClientMIterator() const
Bool_t isValueServer(const RooAbsArg &arg) const
virtual Bool_t isValid() const
WVE (08/21/01) Probably obsolete now.
Mother of all ROOT objects.
virtual Bool_t remove(const RooAbsArg &var, Bool_t silent=kFALSE, Bool_t matchByNameOnly=kFALSE)
Remove the specified argument from our list.
virtual void printTitle(std::ostream &os) const
Print object title.
Bool_t observableOverlaps(const RooAbsData *dset, const RooAbsArg &testArg) const
Test if any of the dependents of the arg tree (as determined by getObservables) overlaps with those o...
RooAbsArg * findNewServer(const RooAbsCollection &newSet, Bool_t nameChange) const
Find the new server in the specified set that matches the old server.
virtual void optimizeCacheMode(const RooArgSet &, RooArgSet &, RooLinkedList &)
Interface for processing of cache mode optimization calls.
virtual void constOptimizeTestStatistic(ConstOpCode opcode, Bool_t doAlsoTrackingOpt=kTRUE)
Interface function signaling a request to perform constant term optimization.
RooLinkedList getCloningAncestors() const
Return ancestors in cloning chain of this RooAbsArg.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
virtual TObject * Next()=0
OperMode operMode() const
const TNamed * constPtr(const char *stringPtr)
Return a unique TNamed pointer for given C++ string.
Bool_t isValueDirty() const
Bool_t dependsOn(const RooAbsCollection &serverList, const RooAbsArg *ignoreArg=0, Bool_t valueOnly=kFALSE) const
Test whether we depend on (ie, are served by) any object in the specified collection.
Bool_t inhibitDirty() const
Delete watch flag.
void setOperMode(OperMode mode, Bool_t recurseADirty=kTRUE)
Change cache operation mode to given mode.
virtual Int_t defaultPrintContents(Option_t *opt) const
Define default contents to print.
Bool_t isCloneOf(const RooAbsArg &other) const
Check if this object was created as a clone of 'other'.
A TTree object has a header with a name and a title.
Bool_t isValueServer() const
Bool_t recursiveCheckObservables(const RooArgSet *nset) const
Recursively call checkObservables on all nodes in the expression tree.
TObject * At(Int_t idx) const
RooAbsArg is the common abstract base class for objects that represent a value (of arbitrary type) an...
static std::map< RooAbsArg *, TRefArray * > _ioEvoList
virtual void Compress()
Remove empty slots from array.
void addServer(RooAbsArg &server, Bool_t valueProp=kTRUE, Bool_t shapeProp=kFALSE)
Register another RooAbsArg as a server to us, ie, declare that we depend on it.
Bool_t recursiveRedirectServers(const RooAbsCollection &newServerList, Bool_t mustReplaceAll=kFALSE, Bool_t nameChange=kFALSE, Bool_t recurseInNewSet=kTRUE)
virtual void printCompactTreeHook(std::ostream &os, const char *ind="")
Hook function interface for object to insert additional information when printed in the context of a ...
virtual void ioStreamerPass2()
Prevent 'AlwaysDirty' mode for this node.
virtual void printValue(std::ostream &os) const
Interface to print value of object.
Bool_t redirectServers(const RooAbsCollection &newServerList, Bool_t mustReplaceAll=kFALSE, Bool_t nameChange=kFALSE, Bool_t isRecursionStep=kFALSE)
Iterator over _clientListValue.
void removeServer(RooAbsArg &server, Bool_t force=kFALSE)
Unregister another RooAbsArg as a server to us, ie, declare that we no longer depend on its value and...
RooAbsCache * getCache(Int_t index) const
Return registered cache object by index.
RooExpensiveObjectCache * _eocache
Prohibit server redirects – Debugging tool.
std::set< std::string > _boolAttribTransient
static UInt_t fnv1a32(const char *data)
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Add element to non-owning set.
virtual Bool_t isLValue() const
const char * GetName() const
Returns name of object.
virtual Version_t ReadVersion(UInt_t *start=0, UInt_t *bcnt=0, const TClass *cl=0)=0
RooAbsArg * findServer(const char *name) const
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 graphVizAddConnections(std::set< std::pair< RooAbsArg *, RooAbsArg * > > &)
Utility function that inserts all point-to-point client-server connections between any two RooAbsArgs...