#ifndef ROO_POLY_VAR
#define ROO_POLY_VAR
#include "RooAbsPdf.h"
#include "RooRealProxy.h"
#include "RooListProxy.h"
class RooRealVar;
class RooArgList ;
class RooPolyVar : public RooAbsReal {
public:
RooPolyVar() ;
RooPolyVar(const char* name, const char* title, RooAbsReal& x) ;
RooPolyVar(const char *name, const char *title,
RooAbsReal& _x, const RooArgList& _coefList, Int_t lowestOrder=0) ;
RooPolyVar(const RooPolyVar& other, const char* name = 0);
virtual TObject* clone(const char* newname) const { return new RooPolyVar(*this, newname); }
virtual ~RooPolyVar() ;
Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ;
protected:
RooRealProxy _x;
RooListProxy _coefList ;
Int_t _lowestOrder ;
TIterator* _coefIter ;
Double_t evaluate() const;
ClassDef(RooPolyVar,1)
};
#endif