library: libRooFit #include "RooAbsArg.h"

# 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()
                        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

### 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()

     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 *