00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef ROO_LEGENDRE
00015 #define ROO_LEGENDRE
00016
00017 #include "RooAbsReal.h"
00018 #include "RooRealProxy.h"
00019
00020 class RooLegendre : public RooAbsReal {
00021 public:
00022 RooLegendre() ;
00023
00024
00025 RooLegendre(const char *name, const char *title, RooAbsReal& ctheta, int l, int m=0);
00026
00027 RooLegendre(const char *name, const char *title, RooAbsReal& ctheta, int l1, int m1, int l2, int m2);
00028
00029 RooLegendre(const RooLegendre& other, const char* name = 0);
00030 virtual TObject* clone(const char* newname) const { return new RooLegendre(*this, newname); }
00031 inline virtual ~RooLegendre() { }
00032
00033 virtual Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
00034 virtual Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ;
00035
00036 virtual Int_t getMaxVal( const RooArgSet& vars) const;
00037 virtual Double_t maxVal( Int_t code) const;
00038
00039 protected:
00040 RooRealProxy _ctheta;
00041 int _l1,_m1;
00042 int _l2,_m2;
00043
00044 Double_t evaluate() const;
00045
00046 ClassDef(RooLegendre,1)
00047 };
00048
00049 #endif