library: libRooFit #include "RooAbsArg.h" |
RooAbsArg
class description - source file - inheritance tree (.pdf)
This is an abstract class, constructors will not be documented.
Look at the header to check for available constructors.
private:
void setShapeDirty(const RooAbsArg* source) const
void setValueDirty(const RooAbsArg* source) const
protected:
void addServer(RooAbsArg& server, Bool_t valueProp = kTRUE, Bool_t shapeProp = kFALSE)
void addServerList(RooAbsCollection& serverList, Bool_t valueProp = kTRUE, Bool_t shapeProp = kFALSE)
virtual void attachToTree(TTree& t, Int_t bufSize = 32000)
void changeServer(RooAbsArg& server, Bool_t valueProp, Bool_t shapeProp)
TString cleanBranchName() const
void clearShapeDirty() const
void clearValueDirty() const
virtual void copyCache(const RooAbsArg* source)
UInt_t crc32(const char* data) const
virtual void fillTreeBranch(TTree& t)
RooAbsArg* findNewServer(const RooAbsCollection& newSet, Bool_t nameChange) const
virtual void getObservablesHook(const RooArgSet*, RooArgSet*) const
virtual void getParametersHook(const RooArgSet*, RooArgSet*) const
RooAbsProxy* getProxy(Int_t index) const
Bool_t isShapeDirty() const
virtual Bool_t isValid() const
Bool_t isValueDirty() const
Int_t numProxies() const
RooAbsArg::OperMode operMode() const
virtual void operModeHook()
void printAttribList(ostream& os) const
Bool_t recursiveRedirectServers(const RooAbsCollection& newServerList, Bool_t mustReplaceAll = kFALSE, Bool_t nameChange = kFALSE)
Bool_t redirectServers(const RooAbsCollection& newServerList, Bool_t mustReplaceAll = kFALSE, Bool_t nameChange = kFALSE, Bool_t isRecursionStep = kFALSE)
virtual Bool_t redirectServersHook(const RooAbsCollection&, Bool_t, Bool_t, Bool_t)
void registerProxy(RooArgProxy& proxy)
void registerProxy(RooSetProxy& proxy)
void registerProxy(RooListProxy& proxy)
void removeServer(RooAbsArg& server, Bool_t force = kFALSE)
void replaceServer(RooAbsArg& oldServer, RooAbsArg& newServer, Bool_t valueProp, Bool_t shapeProp)
virtual void serverNameChangeHook(const RooAbsArg*, const RooAbsArg*)
void setOperMode(RooAbsArg::OperMode mode, Bool_t recurseADirty = kTRUE)
void setProxyNormSet(const RooArgSet* nset)
void setShapeDirty() const
virtual void setTreeBranchStatus(TTree& t, Bool_t active)
void setValueDirty() const
virtual void syncCache(const RooArgSet* nset = 0)
void unRegisterProxy(RooArgProxy& proxy)
void unRegisterProxy(RooSetProxy& proxy)
void unRegisterProxy(RooListProxy& proxy)
public:
virtual ~RooAbsArg()
void attachDataSet(const RooAbsData& set)
TIterator* attribIterator()
void branchNodeServerList(RooAbsCollection* list, const RooAbsArg* arg = 0) const
Bool_t checkDependents(const RooArgSet* nset) const
virtual Bool_t checkObservables(const RooArgSet* nset) const
static TClass* Class()
TIterator* clientIterator() const
virtual TObject* clone(const char* newname) const
virtual TObject* Clone(const char* newname = "0") const
virtual Int_t Compare(const TObject* other) const
virtual void constOptimize(RooAbsArg::ConstOpCode opcode)
static void copyList(TList& dest, const TList& source)
virtual RooAbsArg* createFundamental(const char* newname = "0") const
Bool_t deleteWatch() const
Bool_t dependentOverlaps(const RooAbsData* dset, const RooAbsArg& testArg) const
Bool_t dependentOverlaps(const RooArgSet* depList, const RooAbsArg& testArg) const
Bool_t dependsOn(const RooAbsCollection& serverList, const RooAbsArg* ignoreArg = 0) const
Bool_t dependsOn(const RooAbsArg& server, const RooAbsArg* ignoreArg = 0) const
RooAbsArg* findServer(const char* name) const
RooAbsArg* findServer(const RooAbsArg& arg) const
RooAbsArg* findServer(Int_t index) const
Bool_t getAttribute(const Text_t* name) const
RooArgSet* getComponents() const
RooArgSet* getDependents(const RooArgSet& set) const
RooArgSet* getDependents(const RooAbsData* set) const
RooArgSet* getDependents(const RooArgSet* depList) const
RooArgSet* getObservables(const RooArgSet& set) const
RooArgSet* getObservables(const RooAbsData* data) const
RooArgSet* getObservables(const RooAbsData& data) const
virtual RooArgSet* getObservables(const RooArgSet* depList) const
RooArgSet* getParameters(const RooAbsData* data) const
RooArgSet* getParameters(const RooAbsData& data) const
RooArgSet* getParameters(const RooArgSet& set) const
virtual RooArgSet* getParameters(const RooArgSet* depList) const
virtual Bool_t hasRange(const char*) const
virtual Bool_t inRange(const char*) const
virtual TClass* IsA() const
Bool_t isCloneOf(const RooAbsArg& other) const
Bool_t isConstant() const
virtual Bool_t isDerived() const
virtual Bool_t isFundamental() const
virtual Bool_t isLValue() const
Bool_t isShapeServer(const RooAbsArg& arg) const
Bool_t isShapeServer(const char* name) const
virtual Bool_t IsSortable() const
Bool_t isValueServer(const RooAbsArg& arg) const
Bool_t isValueServer(const char* name) const
void leafNodeServerList(RooAbsCollection* list, const RooAbsArg* arg = 0) const
static void nameFieldLength(Int_t newLen)
Bool_t observableOverlaps(const RooAbsData* dset, const RooAbsArg& testArg) const
Bool_t observableOverlaps(const RooArgSet* depList, const RooAbsArg& testArg) const
virtual Bool_t operator==(const RooAbsArg& other)
Bool_t overlaps(const RooAbsArg& testArg) const
virtual void Print(Option_t* options = "0") const
void printCompactTree(const char* indent = "", const char* fileName = "0")
void printCompactTree(ostream& os, const char* indent = "")
virtual void printCompactTreeHook(ostream& os, const char* ind = "")
void printDirty(Bool_t depth = kTRUE) const
virtual void printToStream(ostream& os, RooPrintable::PrintOption opt = Standard, TString indent = ) const
virtual Bool_t readFromStream(istream& is, Bool_t compact, Bool_t verbose = kFALSE)
Bool_t recursiveCheckDependents(const RooArgSet* nset) const
Bool_t recursiveCheckObservables(const RooArgSet* nset) const
TIterator* serverIterator() const
void setAttribute(const Text_t* name, Bool_t value = kTRUE)
void setDeleteWatch(Bool_t flag = kTRUE)
static void setDirtyInhibit(Bool_t flag)
TIterator* shapeClientIterator() const
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
void treeNodeServerList(RooAbsCollection* list, const RooAbsArg* arg = 0, Bool_t doBranch = kTRUE, Bool_t doLeaf = kTRUE, Bool_t valueOnly = kFALSE) const
TIterator* valueClientIterator() const
static void verboseDirty(Bool_t flag)
virtual void writeToStream(ostream& os, Bool_t compact) const
private:
Bool_t _valueDirty Flag set if value needs recalculating because input values modified
Bool_t _shapeDirty Flag set if value needs recalculating because input shapes modified
RooAbsArg::OperMode _operMode Dirty state propagation mode
protected:
RooRefCountList _serverList ! list of server objects
RooRefCountList _clientList ! list of client objects
RooRefCountList _clientListShape ! subset of clients that requested shape dirty flag propagation
RooRefCountList _clientListValue ! subset of clients that requested value dirty flag propagation
TList _proxyList ! list of proxies
TIterator* _clientShapeIter ! Iterator over _clientListShape
TIterator* _clientValueIter ! Iterator over _clientListValue
THashList _attribList List of string attributes
static Bool_t _verboseDirty Static flag controlling verbose messaging for dirty state changes
static Bool_t _inhibitDirty Static flag controlling global inhibit of dirty state propagation
Bool_t _deleteWatch ! Delete watch flag
static Int_t _nameLength
public:
static const RooAbsArg::ConstOpCode Activate
static const RooAbsArg::ConstOpCode DeActivate
static const RooAbsArg::ConstOpCode ConfigChange
static const RooAbsArg::ConstOpCode ValueChange
static const RooAbsArg::OperMode Auto
static const RooAbsArg::OperMode AClean
static const RooAbsArg::OperMode ADirty
~RooAbsArg()
Destructor notifies its servers that they no longer need to serve us and
notifies its clients that they are now in limbo (!)
Bool_t isCloneOf(const RooAbsArg& other) const
Check if this object was created as a clone of 'other'
void setAttribute(const Text_t* name, Bool_t value)
Set (default) or clear a named boolean attribute of this object.
Bool_t getAttribute(const Text_t* name) const
Check if a named attribute is set. By default, all attributes
are unset.
void addServer(RooAbsArg& server, Bool_t valueProp, Bool_t shapeProp)
Register another RooAbsArg as a server to us, ie, declare that
we depend on it. In addition to the basic client-server relationship,
we can declare dependence on the server's value and/or shape.
void addServerList(RooAbsCollection& serverList, Bool_t valueProp, Bool_t shapeProp)
Register a list of RooAbsArg as servers to us by calls addServer() for each
arg in the list
void removeServer(RooAbsArg& server, Bool_t force)
Unregister another RooAbsArg as a server to us, ie, declare that
we no longer depend on its value and shape.
void replaceServer(RooAbsArg& oldServer, RooAbsArg& newServer, Bool_t propValue, Bool_t propShape)
void changeServer(RooAbsArg& server, Bool_t valueProp, Bool_t shapeProp)
Change dirty flag propagation mask for specified server
void leafNodeServerList(RooAbsCollection* list, const RooAbsArg* arg) const
Fill supplied list with all leaf nodes of the arg tree, starting with
ourself as top node. A leaf node is node that has no servers declared.
void branchNodeServerList(RooAbsCollection* list, const RooAbsArg* arg) const
Fill supplied list with all branch nodes of the arg tree starting with
ourself as top node. A branch node is node that has one or more servers declared.
void treeNodeServerList(RooAbsCollection* list, const RooAbsArg* arg, Bool_t doBranch, Bool_t doLeaf, Bool_t valueOnly) const
Fill supplied list with nodes of the arg tree, following all server links,
starting with ourself as top node.
RooArgSet* getParameters(const RooAbsData* set) const
Create a list of leaf nodes in the arg tree starting with
ourself as top node that don't match any of the names of the variable list
of the supplied data set (the dependents). The caller of this
function is responsible for deleting the returned argset.
The complement of this function is getObservables()
RooArgSet* getParameters(const RooArgSet* nset) const
Create a list of leaf nodes in the arg tree starting with
ourself as top node that don't match any of the names the args in the
supplied argset. The caller of this function is responsible
for deleting the returned argset. The complement of this function
is getObservables()
RooArgSet* getObservables(const RooAbsData* set) const
Create a list of leaf nodes in the arg tree starting with
ourself as top node that match any of the names of the variable list
of the supplied data set (the dependents). The caller of this
function is responsible for deleting the returned argset.
The complement of this function is getObservables()
RooArgSet* getObservables(const RooArgSet* dataList) const
Create a list of leaf nodes in the arg tree starting with
ourself as top node that match any of the names the args in the
supplied argset. The caller of this function is responsible
for deleting the returned argset. The complement of this function
is getObservables()
RooArgSet* getComponents() const
Bool_t checkObservables(const RooArgSet*) const
Overloadable function in which derived classes can implement
consistency checks of the variables. If this function returns
true, indicating an error, the fitter or generator will abort.
Bool_t recursiveCheckObservables(const RooArgSet* nset) const
Bool_t dependsOn(const RooAbsCollection& serverList, const RooAbsArg* ignoreArg) const
Test whether we depend on (ie, are served by) any object in the
specified collection. Uses the dependsOn(RooAbsArg&) member function.
Bool_t dependsOn(const RooAbsArg& testArg, const RooAbsArg* ignoreArg) const
Test whether we depend on (ie, are served by) the specified object.
Note that RooAbsArg objects are considered equivalent if they have
the same name.
Bool_t overlaps(const RooAbsArg& testArg) const
Test if any of the nodes of tree are shared with that of the given tree
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 of the testArg.
Bool_t observableOverlaps(const RooArgSet* nset, const RooAbsArg& testArg) const
Test if any of the dependents of the arg tree (as determined by getObservables)
overlaps with those of the testArg.
void setValueDirty(const RooAbsArg* source) const
Mark this object as having changed its value, and propagate this status
change to all of our clients. If the object is not in automatic dirty
state propagation mode, this call has no effect
void setShapeDirty(const RooAbsArg* source) const
Mark this object as having changed its shape, and propagate this status
change to all of our clients.
Bool_t redirectServers(const RooAbsCollection& newSet, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t isRecursionStep)
Substitute our servers with those listed in newSet. If nameChange is false, servers and
and substitutes are matched by name. If nameChange is true, servers are matched to args
in newSet that have the 'ORIGNAME:<servername>' attribute set. If mustReplaceAll is set,
a warning is printed and error status is returned if not all servers could be sucessfully
substituted.
RooAbsArg* findNewServer(const RooAbsCollection &newSet, Bool_t nameChange) const
Find the new server in the specified set that matches the old server.
Allow a name change if nameChange is kTRUE, in which case the new
server is selected by searching for a new server with an attribute
of "ORIGNAME:<oldName>". Return zero if there is not a unique match.
Bool_t recursiveRedirectServers(const RooAbsCollection& newSet, Bool_t mustReplaceAll, Bool_t nameChange)
Cyclic recursion protection
void registerProxy(RooArgProxy& proxy)
Register an RooArgProxy in the proxy list. This function is called by owned
proxies upon creation. After registration, this arg wil forward pointer
changes from serverRedirects and updates in cached normalization sets
to the proxies immediately after they occur. The proxied argument is
also added as value and/or shape server
void unRegisterProxy(RooArgProxy& proxy)
Remove proxy from proxy list. This functions is called by owned proxies
upon their destruction.
void registerProxy(RooSetProxy& proxy)
Register an RooSetProxy in the proxy list. This function is called by owned
proxies upon creation. After registration, this arg wil forward pointer
changes from serverRedirects and updates in cached normalization sets
to the proxies immediately after they occur.
void unRegisterProxy(RooSetProxy& proxy)
Remove proxy from proxy list. This functions is called by owned proxies
upon their destruction.
void registerProxy(RooListProxy& proxy)
Register an RooListProxy in the proxy list. This function is called by owned
proxies upon creation. After registration, this arg wil forward pointer
changes from serverRedirects and updates in cached normalization sets
to the proxies immediately after they occur.
void unRegisterProxy(RooListProxy& proxy)
Remove proxy from proxy list. This functions is called by owned proxies
upon their destruction.
RooAbsProxy* getProxy(Int_t index) const
Return the nth proxy from the proxy list.
Int_t numProxies() const
Return the number of registered proxies.
void setProxyNormSet(const RooArgSet* nset)
Forward a change in the cached normalization argset
to all the registered proxies.
void attachToTree(TTree& ,Int_t)
Overloadable function for derived classes to implement
attachment as branch to a TTree
Bool_t isValid() const
WVE (08/21/01) Probably obsolete now
void copyList(TList& dest, const TList& source)
WVE (08/21/01) Probably obsolete now
void printToStream(ostream& os, PrintOption opt, TString indent) const
Print the state of this object to the specified output stream.
OneLine : use RooPrintable::oneLinePrint()
Standard : use virtual writeToStream() method in non-compact mode
Verbose : list dirty flags,attributes, clients, servers, and proxies
Subclasses will normally call this method first in their implementation,
and then add any additional state of their own with the Shape or Verbose
options.
void printAttribList(ostream& os) const
Print the attribute list
void attachDataSet(const RooAbsData &data)
Replace server nodes with names matching the dataset variable names
with those data set variables, making this PDF directly dependent on the dataset
recursiveRedirectServers(*data.get(),kFALSE);
return ;
Int_t Compare(const TObject* other) const
Utility function used by TCollection::Sort to compare contained TObjects
We implement comparison by name, resulting in alphabetical sorting by object name.
void printDirty(Bool_t depth) const
Print information about current value dirty state information.
If depth flag is true, information is recursively printed for
all nodes in this arg tree.
void constOptimize(ConstOpCode opcode)
Default implementation -- forward to all servers
void setOperMode(OperMode mode, Bool_t recurseADirty)
Prevent recursion loops
void printCompactTree(const char* indent, const char* filename)
void printCompactTree(ostream& os, const char* indent)
TString cleanBranchName() const
Construct a mangled name from the actual name that
is free of any math symbols that might be interpreted by TTree
UInt_t crc32(const char* data) const
Calculate and extract length of string
void printCompactTreeHook(ostream&, const char *)
Inline Functions
TObject* clone(const char* newname) const
TObject* Clone(const char* newname = "0") const
Bool_t isDerived() const
TIterator* clientIterator() const
TIterator* valueClientIterator() const
TIterator* shapeClientIterator() const
TIterator* serverIterator() const
RooAbsArg* findServer(const char* name) const
RooAbsArg* findServer(const RooAbsArg& arg) const
RooAbsArg* findServer(Int_t index) const
Bool_t isValueServer(const RooAbsArg& arg) const
Bool_t isValueServer(const char* name) const
Bool_t isShapeServer(const RooAbsArg& arg) const
Bool_t isShapeServer(const char* name) const
Bool_t isFundamental() const
RooAbsArg* createFundamental(const char* newname = "0") const
Bool_t isLValue() const
RooArgSet* getParameters(const RooArgSet& set) const
RooArgSet* getParameters(const RooArgSet* depList) const
RooArgSet* getObservables(const RooAbsData& data) const
RooArgSet* getObservables(const RooArgSet* depList) const
RooArgSet* getDependents(const RooArgSet& set) const
RooArgSet* getDependents(const RooAbsData* set) const
RooArgSet* getDependents(const RooArgSet* depList) const
Bool_t dependentOverlaps(const RooAbsData* dset, const RooAbsArg& testArg) const
Bool_t dependentOverlaps(const RooArgSet* depList, const RooAbsArg& testArg) const
Bool_t checkDependents(const RooArgSet* nset) const
Bool_t recursiveCheckDependents(const RooArgSet* nset) const
Bool_t readFromStream(istream& is, Bool_t compact, Bool_t verbose = kFALSE)
void writeToStream(ostream& os, Bool_t compact) const
void Print(Option_t* options = "0") const
TIterator* attribIterator()
Bool_t isConstant() const
Bool_t IsSortable() const
void verboseDirty(Bool_t flag)
void setDirtyInhibit(Bool_t flag)
Bool_t operator==(const RooAbsArg& other)
void nameFieldLength(Int_t newLen)
Bool_t inRange(const char*) const
Bool_t hasRange(const char*) const
void setDeleteWatch(Bool_t flag = kTRUE)
Bool_t deleteWatch() const
void operModeHook()
RooAbsArg::OperMode operMode() const
void getParametersHook(const RooArgSet*, RooArgSet*) const
void getObservablesHook(const RooArgSet*, RooArgSet*) const
Bool_t isShapeDirty() const
Bool_t isValueDirty() const
void clearValueDirty() const
void clearShapeDirty() const
Bool_t redirectServersHook(const RooAbsCollection&, Bool_t, Bool_t, Bool_t)
void serverNameChangeHook(const RooAbsArg*, const RooAbsArg*)
void syncCache(const RooArgSet* nset = 0)
void copyCache(const RooAbsArg* source)
void setTreeBranchStatus(TTree& t, Bool_t active)
void fillTreeBranch(TTree& t)
void setValueDirty(const RooAbsArg* source) const
void setShapeDirty(const RooAbsArg* source) const
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Last update: Tue Jun 28 18:08:57 2005
Copyright (c) 2000-2005, Regents of the University of California *
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.