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)
61 , _l1(
l),_m1(
m),_l2(0),_m2(0)
71 , _ctheta(
"ctheta",
"ctheta", this, ctheta)
72 , _l1(l1),_m1(m1),_l2(l2),_m2(
m2)
80 , _ctheta(
"ctheta", this, other._ctheta)
81 , _l1(other._l1), _m1(other._m1)
82 , _l2(other._l2), _m2(other._m2)
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
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)
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
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.