00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ROO_POLY_VAR
00017 #define ROO_POLY_VAR
00018
00019 #include "RooAbsPdf.h"
00020 #include "RooRealProxy.h"
00021 #include "RooListProxy.h"
00022
00023 class RooRealVar;
00024 class RooArgList ;
00025
00026 class RooPolyVar : public RooAbsReal {
00027 public:
00028
00029 RooPolyVar() ;
00030 RooPolyVar(const char* name, const char* title, RooAbsReal& x) ;
00031 RooPolyVar(const char *name, const char *title,
00032 RooAbsReal& _x, const RooArgList& _coefList, Int_t lowestOrder=0) ;
00033
00034 RooPolyVar(const RooPolyVar& other, const char* name = 0);
00035 virtual TObject* clone(const char* newname) const { return new RooPolyVar(*this, newname); }
00036 virtual ~RooPolyVar() ;
00037
00038 Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
00039 Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ;
00040
00041 protected:
00042
00043 RooRealProxy _x;
00044 RooListProxy _coefList ;
00045 Int_t _lowestOrder ;
00046 TIterator* _coefIter ;
00047
00048 Double_t evaluate() const;
00049
00050 ClassDef(RooPolyVar,1)
00051 };
00052
00053 #endif