#ifndef ROO_ARG_PROXY
#define ROO_ARG_PROXY
#include "TNamed.h"
#include "RooAbsProxy.h"
#include "RooAbsArg.h"
class RooArgProxy : public TNamed, public RooAbsProxy {
public:
RooArgProxy() : _owner(0), _arg(0), _ownArg(kFALSE) {
} ;
RooArgProxy(const char* name, const char* desc, RooAbsArg* owner,
Bool_t valueServer, Bool_t shapeServer, Bool_t proxyOwnsArg=kFALSE) ;
RooArgProxy(const char* name, const char* desc, RooAbsArg* owner, RooAbsArg& arg,
Bool_t valueServer, Bool_t shapeServer, Bool_t proxyOwnsArg=kFALSE) ;
RooArgProxy(const char* name, RooAbsArg* owner, const RooArgProxy& other) ;
virtual ~RooArgProxy() ;
inline RooAbsArg* absArg() const {
return _arg ;
}
virtual const char* name() const {
return GetName() ;
}
virtual void print(ostream& os, Bool_t addContents=kFALSE) const ;
protected:
friend class RooSimultaneous ;
RooAbsArg* _owner ;
RooAbsArg* _arg ;
Bool_t _valueServer ;
Bool_t _shapeServer ;
Bool_t _isFund ;
Bool_t _ownArg ;
friend class RooAbsArg ;
inline Bool_t isValueServer() const {
return _valueServer ;
}
inline Bool_t isShapeServer() const {
return _shapeServer ;
}
virtual Bool_t changePointer(const RooAbsCollection& newServerSet, Bool_t nameChange=kFALSE, Bool_t factoryInitMode=kFALSE) ;
virtual void changeDataSet(const RooArgSet* newNormSet) ;
ClassDef(RooArgProxy,1)
};
#endif