64 inline double N(
int l,
int m=0) {
83 , _phi(
"phi",
"phi", this, phi)
84 , _n( 2*sqrt(
TMath::Pi()))
85 , _sgn1(
m==0 ? 0 :
m<0 ? -1 : +1 )
94 , _phi(
"phi",
"phi", this, phi)
96 , _sgn1( m1==0 ? 0 : m1<0 ? -1 : +1 )
97 , _sgn2( m2==0 ? 0 : m2<0 ? -1 : +1 )
105 , _phi(
"phi", this,other._phi)
107 , _sgn1( other._sgn1 )
108 , _sgn2( other._sgn2 )
128 return range == 0 || strlen(range) == 0
130 : std::fabs(
x.max(range) -
x.min(range) -
TMath::TwoPi()) < 1.e-8;
133 return range == 0 || strlen(range) == 0
134 ? std::fabs(
x.min() + 1.) < 1.e-8 && std::fabs(
x.max() - 1.) < 1.e-8
135 : std::fabs(
x.min(range) + 1.) < 1.e-8 && std::fabs(
x.max(range) - 1.) < 1.e-8;
159 }
else if (code == 2) {
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Bool_t matchArgs(const RooArgSet &allDeps, RooArgSet &numDeps, const RooArgProxy &a) const
Utility function for use in getAnalyticalIntegral().
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Compute the associated Legendre polynomials using ROOT::Math::assoc_legendre().
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 evaluate() const
Note: P_0^0 = 1, so P_l^m = P_l^m P_0^0.
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],...
virtual Double_t maxVal(Int_t code) const
Return maximum value for set of observables identified by code assigned in getMaxVal.
virtual Int_t getMaxVal(const RooArgSet &vars) const
Advertise capability to determine maximum value of function for given set of observables.
Implementation of the so-called real spherical harmonics, using the orthonormal normalization,...
virtual Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
TODO: check that phi.max - phi.min = 2 pi... ctheta.max = +1, and ctheta.min = -1 we don't support in...
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],...
virtual Double_t maxVal(Int_t code) const
Return maximum value for set of observables identified by code assigned in getMaxVal.
Double_t evaluate() const
Note: P_0^0 = 1, so P_l^m = P_l^m P_0^0.
virtual Int_t getMaxVal(const RooArgSet &vars) const
Advertise capability to determine maximum value of function for given set of observables.
VecExpr< UnaryOp< Sqrt< T >, VecExpr< A, T, D >, T >, T, D > sqrt(const VecExpr< A, T, D > &rhs)
Double_t Factorial(Int_t i)
Compute factorial(n).
constexpr Double_t Sqrt2()
constexpr Double_t TwoPi()