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),
67 if (!dynamic_cast<RooAbsReal*>(coef)) {
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),
90 inline static double p1(
double t,
double a,
double b) {
return a*t+
b; }
91 inline static double p2(
double t,
double a,
double b,
double c) {
return p1(t,
p1(t,a,b),c); }
92 inline 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;
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...