#ifndef ROO_LEGENDRE
#define ROO_LEGENDRE
#include "RooAbsReal.h"
#include "RooRealProxy.h"
class RooLegendre : public RooAbsReal {
public:
RooLegendre() ;
RooLegendre(const char *name, const char *title, RooAbsReal& ctheta, int l, int m=0);
RooLegendre(const char *name, const char *title, RooAbsReal& ctheta, int l1, int m1, int l2, int m2);
RooLegendre(const RooLegendre& other, const char* name = 0);
virtual TObject* clone(const char* newname) const { return new RooLegendre(*this, newname); }
inline virtual ~RooLegendre() { }
virtual Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
virtual Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ;
virtual Int_t getMaxVal( const RooArgSet& vars) const;
virtual Double_t maxVal( Int_t code) const;
protected:
RooRealProxy _ctheta;
int _l1,_m1;
int _l2,_m2;
Double_t evaluate() const;
ClassDef(RooLegendre,1)
};
#endif