Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/RooAbsProxy.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*****************************************************************************
0002  * Project: RooFit                                                           *
0003  * Package: RooFitCore                                                       *
0004  *    File: $Id: RooAbsProxy.h,v 1.15 2007/07/12 20:30:28 wouter Exp $
0005  * Authors:                                                                  *
0006  *   WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu       *
0007  *   DK, David Kirkby,    UC Irvine,         dkirkby@uci.edu                 *
0008  *                                                                           *
0009  * Copyright (c) 2000-2005, Regents of the University of California          *
0010  *                          and Stanford University. All rights reserved.    *
0011  *                                                                           *
0012  * Redistribution and use in source and binary forms,                        *
0013  * with or without modification, are permitted according to the terms        *
0014  * listed in LICENSE (http://roofit.sourceforge.net/license.txt)             *
0015  *****************************************************************************/
0016 #ifndef ROO_ABS_PROXY
0017 #define ROO_ABS_PROXY
0018 
0019 #ifdef _WIN32
0020 // Turn off 'warning C4355: 'this' : used in base member initializer list'
0021 //
0022 // This message will pop up for any class that initializes member proxy objects
0023 // Including the pragma here will automatically disable that warning message
0024 // for all such cases
0025 #pragma warning ( disable:4355 )
0026 #endif
0027 
0028 #include <TClass.h>
0029 
0030 #include <string>
0031 #include <unordered_map>
0032 
0033 class RooAbsArg;
0034 class RooAbsCollection;
0035 class RooArgSet;
0036 
0037 class RooAbsProxy {
0038 public:
0039 
0040   // Constructors, assignment etc.
0041   RooAbsProxy() ;
0042   RooAbsProxy(const char* name, const RooAbsProxy& other) ;
0043   virtual ~RooAbsProxy() {
0044     // Destructor
0045   } ;
0046 
0047   virtual const char* name() const {
0048     // Return name of proxy
0049     return "dummy" ;
0050   } ;
0051 
0052   inline const RooArgSet* nset() const {
0053     // Return normalization set to be used for evaluation of contents
0054     return _nset ;
0055   }
0056   virtual void print(std::ostream& os, bool addContents=false) const ;
0057 
0058 protected:
0059 
0060   RooArgSet* _nset = nullptr ; ///<! Normalization set to be used for evaluation of RooAbsPdf contents
0061 
0062   friend class RooAbsArg ;
0063   virtual bool changePointer(const RooAbsCollection& newServerSet, bool nameChange=false, bool factoryInitMode=false) = 0 ;
0064   virtual bool changePointer(std::unordered_map<RooAbsArg*, RooAbsArg*> const& replacements) = 0 ;
0065 
0066   friend class RooAbsPdf ;
0067   virtual void changeNormSet(const RooArgSet* newNormSet) ;
0068 
0069   ClassDef(RooAbsProxy,1) // Abstract proxy interface
0070 } ;
0071 
0072 #endif
0073