44 inline double a(
int p,
int l,
int m) {
47 return p%2==0 ? r : -
r ;
54 _l1(1),_m1(1),_l2(0),_m2(0)
64 ,
_ctheta(
"ctheta",
"ctheta", this, ctheta)
75 ,
_ctheta(
"ctheta",
"ctheta", this, ctheta)
96 #ifdef R__HAS_MATHMORE 98 double ctheta = std::max(-1., std::min((
double)
_ctheta, +1.));
104 throw std::string(
"RooLegendre: ERROR: This class require installation of the MathMore library") ;
114 return range == 0 || strlen(range) == 0
147 double a1 =
a(
p1,
_l1,_m1);
149 double a2 =
a(
p2,
_l2,_m2);
155 if ((_m1+
_m2)%2==1) r = -
r;
160 if (
_m1==0&&
_m2==0)
return 1;
162 if (
_l1<3&&
_l2<3)
return 1;
167 inline double maxSingle(
int i,
int j) {
175 static const double m2[3] = { 3,3 };
virtual Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
Interface function getAnalyticalIntergral advertises the analytical integrals that are supported...
virtual Int_t getMaxVal(const RooArgSet &vars) const
Advertise capability to determine maximum value of function for given set of observables.
virtual Double_t analyticalIntegral(Int_t code, const char *rangeName=0) const
this was verified to match mathematica for l1 in [0,2], m1 in [0,l1], l2 in [l1,4], m2 in [0,l2]
Double_t Gamma(Double_t z)
Computation of gamma(z) for all z.
virtual Double_t maxVal(Int_t code) const
Return maximum value for set of observables identified by code assigned in getMaxVal.
static double p2(double t, double a, double b, double c)
double pow(double, double)
VecExpr< UnaryOp< Fabs< T >, VecExpr< A, T, D >, T >, T, D > fabs(const VecExpr< A, T, D > &rhs)
double assoc_legendre(unsigned l, unsigned m, double x)
Computes the associated Legendre polynomials.
static double p1(double t, double a, double b)
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Double_t min(const char *rname=0) const
Double_t evaluate() const
TODO: check that 0<=m_i<=l_i; on the other hand, assoc_legendre already does that ;-) Note: P_0^0 = 1...
Double_t Factorial(Int_t i)
Compute factorial(n).
RooRealProxy is the concrete proxy for RooAbsReal objects A RooRealProxy is the general mechanism to ...
Bool_t matchArgs(const RooArgSet &allDeps, RooArgSet &numDeps, const RooArgProxy &a) const
Utility function for use in getAnalyticalIntegral().
Double_t max(const char *rname=0) const