00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ROO_GEN_PROD_PROJ
00017 #define ROO_GEN_PROD_PROJ
00018
00019 #include "RooAbsReal.h"
00020 #include "RooSetProxy.h"
00021 #include "RooListProxy.h"
00022
00023 class RooRealVar;
00024 class RooArgList ;
00025
00026 class RooGenProdProj : public RooAbsReal {
00027 public:
00028
00029 RooGenProdProj() ;
00030 RooGenProdProj(const char *name, const char *title, const RooArgSet& _prodSet, const RooArgSet& _intSet,
00031 const RooArgSet& _normSet, const char* isetRangeName, const char* normRangeName=0, Bool_t doFactorize=kTRUE) ;
00032
00033 RooGenProdProj(const RooGenProdProj& other, const char* name = 0);
00034 virtual TObject* clone(const char* newname) const { return new RooGenProdProj(*this, newname); }
00035 virtual ~RooGenProdProj() ;
00036
00037 protected:
00038
00039 RooAbsReal* makeIntegral(const char* name, const RooArgSet& compSet, const RooArgSet& intSet,
00040 RooArgSet& saveSet, const char* isetRangeName, Bool_t doFactorize) ;
00041
00042 virtual void operModeHook() ;
00043
00044 Double_t evaluate() const;
00045 RooArgSet* _compSetOwnedN ;
00046 RooArgSet* _compSetOwnedD ;
00047 RooSetProxy _compSetN ;
00048 RooSetProxy _compSetD ;
00049 RooListProxy _intList ;
00050 Bool_t _haveD ;
00051
00052 ClassDef(RooGenProdProj,1)
00053 };
00054
00055 #endif