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)
65 , _l1(l),_m1(m),_l2(0),_m2(0)
75 , _ctheta(
"ctheta",
"ctheta", this, ctheta)
76 , _l1(l1),_m1(m1),_l2(l2),_m2(m2)
84 , _ctheta(
"ctheta", this, other._ctheta)
85 , _l1(other._l1), _m1(other._m1)
86 , _l2(other._l2), _m2(other._m2)
96 #ifdef R__HAS_MATHMORE
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...
static Vc_ALWAYS_INLINE int_v min(const int_v &x, const int_v &y)
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.
TLine l1(2.5, 4.5, 15.5, 4.5)
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)
TPaveLabel title(3, 27.1, 15, 28.7,"ROOT Environment and Tools")
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...
static Vc_ALWAYS_INLINE int_v max(const int_v &x, const int_v &y)
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