40 inline double a(
int p,
int l,
int m) {
43 return p%2==0 ?
r : -
r ;
50 _l1(1),_m1(1),_l2(0),_m2(0)
60 ,
_ctheta(
"ctheta",
"ctheta", this, ctheta)
71 ,
_ctheta(
"ctheta",
"ctheta", this, ctheta)
92 #ifdef R__HAS_MATHMORE 94 double ctheta = std::max(-1., std::min((
double)
_ctheta, +1.));
100 throw std::string(
"RooLegendre: ERROR: This class require installation of the MathMore library") ;
110 return range == 0 || strlen(range) == 0
144 double a1 =
a(
p1,
_l1,_m1);
146 double a2 =
a(
p2,
_l2,_m2);
152 if ((_m1+
_m2)%2==1) r = -
r;
159 if (
_m1==0&&
_m2==0)
return 1;
161 if (
_l1<3&&
_l2<3)
return 1;
166 inline double maxSingle(
int i,
int j) {
174 static const double m2[3] = { 3,3 };
Bool_t matchArgs(const RooArgSet &allDeps, RooArgSet &numDeps, const RooArgProxy &a) const
Utility function for use in getAnalyticalIntegral().
virtual Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
Interface function getAnalyticalIntergral advertises the analytical integrals that are supported...
Double_t Gamma(Double_t z)
Computation of gamma(z) for all z.
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]
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 constexpr double m2
static double p1(double t, double a, double b)
Double_t min(const char *rname=0) const
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Double_t max(const char *rname=0) const
virtual Int_t getMaxVal(const RooArgSet &vars) const
Advertise capability to determine maximum value of function for given set of observables.
Double_t Factorial(Int_t i)
Compute factorial(n).
RooRealProxy is the concrete proxy for RooAbsReal objects A RooRealProxy is the general mechanism to ...
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...
virtual Double_t maxVal(Int_t code) const
Return maximum value for set of observables identified by code assigned in getMaxVal.