37#if defined(__my_func__)
41#define __my_func__ __FUNCTION__
43#define __my_func__ __func__
60 _x(
"x",
"Dependent", this,
x),
61 _coefList(
"coefficients",
"List of coefficients",this),
68 std::cerr <<
"RooChebychev::ctor(" <<
GetName() <<
69 ") ERROR: coefficient " << coef->
GetName() <<
70 " is not of type RooAbsReal" << std::endl ;
83 _x(
"x", this, other._x),
84 _coefList(
"coefList",this,other._coefList),
85 _refRangeName(other._refRangeName)
90inline static double p1(
double t,
double a,
double b) {
return a*t+
b; }
91inline static double p2(
double t,
double a,
double b,
double c) {
return p1(t,
p1(t,
a,
b),
c); }
92inline static double p3(
double t,
double a,
double b,
double c,
double d) {
return p2(t,
p1(t,
a,
b),
c,
d); }
123 case 0:
sum+=1;
break;
124 default: std::cerr <<
"In " <<
__my_func__ <<
" (" << __FILE__ <<
", line " <<
125 __LINE__ <<
"): Higher order Chebychev polynomials currently "
126 "unimplemented." << std::endl;
151 const Double_t fullRange = xmaxfull - xminfull;
154 Double_t minScaled = -1., maxScaled = +1.;
156 minScaled = -1. + 2. * (
_x.
min(rangeName) - xminfull) / fullRange;
157 maxScaled = +1. - 2. * (xmaxfull -
_x.
max(rangeName)) / fullRange;
180 case 0:
sum+=
x;
break;
182 default: std::cerr <<
"In " <<
__my_func__ <<
" (" << __FILE__ <<
", line " <<
183 __LINE__ <<
"): Higher order Chebychev polynomials currently "
184 "unimplemented." << std::endl;
static double p3(double t, double a, double b, double c, double d)
static double p1(double t, double a, double b)
static double p2(double t, double a, double b, double c)
static const double x2[5]
RooAbsArg is the common abstract base class for objects that represent a value (of arbitrary type) an...
TIterator * createIterator(Bool_t dir=kIterForward) const
RooAbsPdf is the abstract interface for all probability density functions The class provides hybrid a...
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.
Chebychev polynomial p.d.f.
Double_t evalAnaInt(const Double_t x) const
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.
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
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
Double_t analyticalIntegral(Int_t code, const char *rangeName=0) const
Implements the actual analytical integral(s) advertised by getAnalyticalIntegral.
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Reimplementation of standard RooArgList::add()
const TNamed * constPtr(const char *stringPtr)
Return a unique TNamed pointer for given C++ string.
static RooNameReg & instance()
Return reference to singleton instance.
Double_t min(const char *rname=0) const
Double_t max(const char *rname=0) const
Iterator abstract base class.
virtual TObject * Next()=0
The TNamed class is the base class for all named ROOT classes.
virtual const char * GetName() const
Returns name of object.
static long int sum(long int i)