Docs | All | Real | Category | PDF | DataSet | Plot | Container | Misc | Aux | User

RooFit Toolkit for Data Modeling
#include "RooAbsArg.hh"

RooAbsArg


class description - source file - inheritance tree (.pdf)

class RooAbsArg : public TNamed, public RooPrintable

Inheritance Chart:
TObject
<-
TNamed
RooPrintable
<-
RooAbsArg
<-
RooAbsCategory
<-
RooAbsCategoryLValue
<-
RooCategory
RooSuperCategory
RooGenCategory
RooMappedCategory
RooMultiCategory
RooThresholdCategory
RooAbsReal
<-
RooAbsGoodnessOfFit
 [more...]
 
    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() const 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 RooLinkedList getCloningAncestors() 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 RooArgSet* getVariables() 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", const char* namePat = "0") void printCompactTree(ostream& os, const char* indent = "", const char* namePat = "0") 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

Data Members

    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

Class Description

 RooAbsArg is the common abstract base class for objects that represent a
 value (of arbitrary type) and "shape" that in general depends on (is a client of)
 other RooAbsArg subclasses. The only state information about a value that
 is maintained in this base class consists of named attributes and flags
 that track when either the value or the shape of this object changes. The
 meaning of shape depends on the client implementation but could be, for
 example, the allowed range of a value. The base class is also responsible
 for managing client/server links and propagating value/shape changes
 through an expression tree.

 RooAbsArg implements public interfaces for inspecting client/server
 relationships and setting/clearing/testing named attributes. The class
 also defines a pure virtual public interface for I/O streaming.

~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, const char* namePat)

void printCompactTree(ostream& os, const char* indent, const char* namePat)

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 *)

RooArgSet* getVariables() const

RooLinkedList getCloningAncestors() const
 Return ancestors in cloning chain of this RooAbsArg. NOTE: Returned pointers
 are not guaranteed to be 'live', so do not dereference without proper caution



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() const
                     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 CVS Update: v 1.94 2005/12/01 16:10:18 wverkerke Top
Copyright © 2000-2005 University of California, Stanford University

Page maintained by Wouter Verkerke and David Kirkby

SourceForge.net Logo