00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ROO_SET_PROXY
00017 #define ROO_SET_PROXY
00018
00019 #include "TObject.h"
00020 #include "Riosfwd.h"
00021 #include "RooAbsProxy.h"
00022 #include "RooAbsArg.h"
00023 #include "RooArgSet.h"
00024
00025 class RooSetProxy : public RooArgSet, public RooAbsProxy {
00026 public:
00027
00028 #ifdef USEMEMPOOL
00029 void* operator new (size_t bytes);
00030 void operator delete (void *ptr);
00031 #endif
00032
00033
00034 RooSetProxy() {
00035
00036 _iter = createIterator() ; _owner = 0 ;
00037 } ;
00038 RooSetProxy(const char* name, const char* desc, RooAbsArg* owner,
00039 Bool_t defValueServer=kTRUE, Bool_t defShapeServer=kFALSE) ;
00040 RooSetProxy(const char* name, RooAbsArg* owner, const RooSetProxy& other) ;
00041 virtual ~RooSetProxy() ;
00042
00043 virtual const char* name() const { return GetName() ; }
00044
00045
00046 virtual Bool_t add(const RooAbsArg& var, Bool_t silent=kFALSE) ;
00047 virtual Bool_t add(const RooAbsCollection& list, Bool_t silent=kFALSE) { return RooAbsCollection::add(list,silent) ; }
00048 virtual Bool_t add(const RooAbsArg& var, Bool_t valueServer, Bool_t shapeServer, Bool_t silent) ;
00049 virtual Bool_t addOwned(RooAbsArg& var, Bool_t silent=kFALSE);
00050 virtual Bool_t addOwned(const RooAbsCollection& list, Bool_t silent=kFALSE) { return RooAbsCollection::addOwned(list,silent) ; }
00051 virtual RooAbsArg *addClone(const RooAbsArg& var, Bool_t silent=kFALSE) ;
00052 virtual void addClone(const RooAbsCollection& list, Bool_t silent=kFALSE) { RooAbsCollection::addClone(list,silent) ; }
00053 virtual Bool_t replace(const RooAbsArg& var1, const RooAbsArg& var2) ;
00054 virtual Bool_t remove(const RooAbsArg& var, Bool_t silent=kFALSE, Bool_t matchByNameOnly=kFALSE) ;
00055 Bool_t remove(const RooAbsCollection& list, Bool_t silent=kFALSE, Bool_t matchByNameOnly=kFALSE) ;
00056 virtual void removeAll() ;
00057
00058 virtual void print(ostream& os, Bool_t addContents=kFALSE) const ;
00059
00060 RooSetProxy& operator=(const RooArgSet& other) ;
00061
00062 protected:
00063
00064 RooAbsArg* _owner ;
00065 Bool_t _defValueServer ;
00066 Bool_t _defShapeServer ;
00067 TIterator* _iter ;
00068
00069 virtual Bool_t changePointer(const RooAbsCollection& newServerSet, Bool_t nameChange=kFALSE, Bool_t factoryInitMode=kFALSE) ;
00070
00071 ClassDef(RooSetProxy,1)
00072 };
00073
00074 #endif
00075