RooArgProxy.h

Go to the documentation of this file.
00001 /*****************************************************************************
00002  * Project: RooFit                                                           *
00003  * Package: RooFitCore                                                       *
00004  *    File: $Id: RooArgProxy.h,v 1.21 2007/07/12 20:30:28 wouter Exp $
00005  * Authors:                                                                  *
00006  *   WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu       *
00007  *   DK, David Kirkby,    UC Irvine,         dkirkby@uci.edu                 *
00008  *                                                                           *
00009  * Copyright (c) 2000-2005, Regents of the University of California          *
00010  *                          and Stanford University. All rights reserved.    *
00011  *                                                                           *
00012  * Redistribution and use in source and binary forms,                        *
00013  * with or without modification, are permitted according to the terms        *
00014  * listed in LICENSE (http://roofit.sourceforge.net/license.txt)             *
00015  *****************************************************************************/
00016 #ifndef ROO_ARG_PROXY
00017 #define ROO_ARG_PROXY
00018 
00019 #include "TNamed.h"
00020 #include "RooAbsProxy.h"
00021 #include "RooAbsArg.h"
00022 
00023 
00024 class RooArgProxy : public TNamed, public RooAbsProxy  {
00025 public:
00026 
00027   // Constructors, assignment etc.
00028   RooArgProxy() : _owner(0), _arg(0), _valueServer(kFALSE), _shapeServer(kFALSE), _isFund(kTRUE), _ownArg(kFALSE) {
00029     // Default constructor
00030   } ;
00031   RooArgProxy(const char* name, const char* desc, RooAbsArg* owner,
00032               Bool_t valueServer, Bool_t shapeServer, Bool_t proxyOwnsArg=kFALSE) ;
00033   RooArgProxy(const char* name, const char* desc, RooAbsArg* owner, RooAbsArg& arg, 
00034               Bool_t valueServer, Bool_t shapeServer, Bool_t proxyOwnsArg=kFALSE) ;
00035   RooArgProxy(const char* name, RooAbsArg* owner, const RooArgProxy& other) ;
00036   virtual ~RooArgProxy() ;
00037   inline RooAbsArg* absArg() const { 
00038     // Return pointer to contained argument
00039     return _arg ; 
00040   }
00041 
00042   virtual const char* name() const { 
00043     // Return name of proxy
00044     return GetName() ; 
00045   }
00046   virtual void print(ostream& os, Bool_t addContents=kFALSE) const ;
00047 
00048 protected:
00049 
00050   friend class RooSimultaneous ;
00051   RooAbsArg* _owner ;       // Pointer to owner of proxy
00052   RooAbsArg* _arg ;         // Pointer to content of proxy
00053 
00054   Bool_t _valueServer ;     // If true contents is value server of owner
00055   Bool_t _shapeServer ;     // If true contents is shape server of owner
00056   Bool_t _isFund ;          // If true proxy contains an lvalue
00057   Bool_t _ownArg ;          // If true proxy owns contents
00058 
00059   friend class RooAbsArg ;
00060 
00061   inline Bool_t isValueServer() const { 
00062     // Returns true of contents is value server of owner
00063     return _valueServer ; 
00064   }
00065   inline Bool_t isShapeServer() const { 
00066     // Returns true if contents is shape server of owner
00067     return _shapeServer ; 
00068   }
00069   virtual Bool_t changePointer(const RooAbsCollection& newServerSet, Bool_t nameChange=kFALSE, Bool_t factoryInitMode=kFALSE) ;
00070 
00071   virtual void changeDataSet(const RooArgSet* newNormSet) ;
00072 
00073   ClassDef(RooArgProxy,1) // Abstract proxy for RooAbsArg objects
00074 };
00075 
00076 #endif
00077 

Generated on Tue Jul 5 14:26:04 2011 for ROOT_528-00b_version by  doxygen 1.5.1