38 #if defined(__my_func__)
42 #define __my_func__ __FUNCTION__
44 #define __my_func__ __func__
63 _x(
"x",
"Dependent", this, x),
64 _coefList(
"coefficients",
"List of coefficients",this),
70 if (!dynamic_cast<RooAbsReal*>(coef)) {
71 std::cerr <<
"RooChebychev::ctor(" <<
GetName() <<
72 ") ERROR: coefficient " << coef->
GetName() <<
73 " is not of type RooAbsReal" << std::endl ;
88 _x(
"x", this, other._x),
89 _coefList(
"coefList",this,other._coefList),
90 _refRangeName(other._refRangeName)
95 inline static double p1(
double t,
double a,
double b) {
return a*t+b; }
96 inline static double p2(
double t,
double a,
double b,
double c) {
return p1(t,
p1(t,a,b),c); }
97 inline static double p3(
double t,
double a,
double b,
double c,
double d) {
return p2(t,
p1(t,a,b),c,d); }
130 case 0: sum+=1;
break;
131 default: std::cerr <<
"In " <<
__my_func__ <<
" (" << __FILE__ <<
", line " <<
132 __LINE__ <<
"): Higher order Chebychev polynomials currently "
133 "unimplemented." << std::endl;
160 const Double_t fullRange = xmaxfull - xminfull;
163 Double_t minScaled = -1., maxScaled = +1.;
165 minScaled = -1. + 2. * (
_x.
min(rangeName) - xminfull) / fullRange;
166 maxScaled = +1. - 2. * (xmaxfull -
_x.
max(rangeName)) / fullRange;
187 case 0: sum+=
x;
break;
189 default: std::cerr <<
"In " <<
__my_func__ <<
" (" << __FILE__ <<
", line " <<
190 __LINE__ <<
"): Higher order Chebychev polynomials currently "
191 "unimplemented." << std::endl;
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
Interface function getAnalyticalIntergral advertises the analytical integrals that are supported...
static double p3(double t, double a, double b, double c, double d)
Double_t evalAnaInt(const Double_t x) const
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)
TIterator * createIterator(Bool_t dir=kIterForward) const
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Reimplementation of standard RooArgList::add()
static RooNameReg & instance()
Return reference to singleton instance.
virtual const char * GetName() const
Returns name of object.
static double p1(double t, double a, double b)
Double_t evaluate() const
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
RooAbsPdf is the abstract interface for all probability density functions The class provides hybrid a...
Double_t min(const char *rname=0) const
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.
Bool_t matchArgs(const RooArgSet &allDeps, RooArgSet &numDeps, const RooArgProxy &a) const
Utility function for use in getAnalyticalIntegral().
RooAbsArg is the common abstract base class for objects that represent a value (of arbitrary type) an...
Double_t analyticalIntegral(Int_t code, const char *rangeName=0) const
Implements the actual analytical integral(s) advertised by getAnalyticalIntegral. ...
Double_t max(const char *rname=0) const