39 #if defined(__my_func__) 43 #define __my_func__ __FUNCTION__ 45 #define __my_func__ __func__ 64 _x(
"x",
"Dependent", this, x),
65 _coefList(
"coefficients",
"List of coefficients",this),
71 if (!dynamic_cast<RooAbsReal*>(coef)) {
72 std::cerr <<
"RooChebychev::ctor(" <<
GetName() <<
73 ") ERROR: coefficient " << coef->
GetName() <<
74 " is not of type RooAbsReal" << std::endl ;
89 _x(
"x", this, other.
_x),
96 inline static double p1(
double t,
double a,
double b) {
return a*t+
b; }
97 inline static double p2(
double t,
double a,
double b,
double c) {
return p1(t,
p1(t,a,b),c); }
98 inline static double p3(
double t,
double a,
double b,
double c,
double d) {
return p2(t,
p1(t,a,b),c,d); }
131 case 0: sum+=1;
break;
132 default: std::cerr <<
"In " <<
__my_func__ <<
" (" << __FILE__ <<
", line " <<
133 __LINE__ <<
"): Higher order Chebychev polynomials currently " 134 "unimplemented." << std::endl;
161 const Double_t fullRange = xmaxfull - xminfull;
164 Double_t minScaled = -1., maxScaled = +1.;
166 minScaled = -1. + 2. * (
_x.
min(rangeName) - xminfull) / fullRange;
167 maxScaled = +1. - 2. * (xmaxfull -
_x.
max(rangeName)) / fullRange;
188 case 0: sum+=
x;
break;
190 default: std::cerr <<
"In " <<
__my_func__ <<
" (" << __FILE__ <<
", line " <<
191 __LINE__ <<
"): Higher order Chebychev polynomials currently " 192 "unimplemented." << std::endl;
Double_t evalAnaInt(const Double_t x) const
virtual const char * GetName() const
Returns name of object.
TIterator * createIterator(Bool_t dir=kIterForward) const
static long int sum(long int i)
static double p3(double t, double a, double b, double c, double d)
Bool_t matchArgs(const RooArgSet &allDeps, RooArgSet &numDeps, const RooArgProxy &a) const
Utility function for use in getAnalyticalIntegral().
Double_t analyticalIntegral(Int_t code, const char *rangeName=0) const
Implements the actual analytical integral(s) advertised by getAnalyticalIntegral. ...
Iterator abstract base class.
static const double x2[5]
The TNamed class is the base class for all named ROOT classes.
static double p2(double t, double a, double b, double c)
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Reimplementation of standard RooArgList::add()
static RooNameReg & instance()
Return reference to singleton instance.
Double_t evaluate() const
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
Interface function getAnalyticalIntergral advertises the analytical integrals that are supported...
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
RooAbsPdf is the abstract interface for all probability density functions The class provides hybrid a...
virtual TObject * Next()=0
virtual void selectNormalizationRange(const char *rangeName=0, Bool_t force=kFALSE)
Interface function to force use of a given normalization range to interpret function value...
const TNamed * constPtr(const char *stringPtr)
Return a unique TNamed pointer for given C++ string.
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
Chebychev polynomial p.d.f.
RooAbsArg is the common abstract base class for objects that represent a value (of arbitrary type) an...