CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
RooSpline1D Class Reference

#include <RooSpline1D.h>

Inheritance diagram for RooSpline1D:

Public Member Functions

TObject * clone (const char *newname) const
 
 RooSpline1D ()
 
 RooSpline1D (const char *name, const char *title, RooAbsReal &xvar, unsigned int npoints, const double *xvals, const double *yvals, const char *algo="CSPLINE")
 
 RooSpline1D (const char *name, const char *title, RooAbsReal &xar, unsigned int npoints, const float *xvals, const float *yvals, const char *algo="CSPLINE")
 
 ~RooSpline1D ()
 

Protected Member Functions

Double_t evaluate () const
 

Private Member Functions

void init () const
 not to be serialized More...
 

Private Attributes

ROOT::Math::Interpolator * interp_
 
std::string type_
 
std::vector< double > x_
 
RooRealProxy xvar_
 
std::vector< double > y_
 

Detailed Description

Definition at line 18 of file RooSpline1D.h.

Constructor & Destructor Documentation

RooSpline1D::RooSpline1D ( )
inline

Definition at line 21 of file RooSpline1D.h.

Referenced by clone().

21 {}
RooSpline1D::RooSpline1D ( const char *  name,
const char *  title,
RooAbsReal &  xvar,
unsigned int  npoints,
const double *  xvals,
const double *  yvals,
const char *  algo = "CSPLINE" 
)

Definition at line 5 of file RooSpline1D.cc.

References i, x_, and y_.

5  :
6  RooAbsReal(name,title),
7  xvar_("xvar","Variable", this, xvar),
8  x_(npoints), y_(npoints), type_(algo),
9  interp_(0)
10 {
11  for (unsigned int i = 0; i < npoints; ++i) {
12  x_[i] = xvals[i];
13  y_[i] = yvals[i];
14  }
15 }
int i
Definition: DBlmapReader.cc:9
RooRealProxy xvar_
Definition: RooSpline1D.h:32
std::vector< double > y_
Definition: RooSpline1D.h:33
std::string type_
Definition: RooSpline1D.h:34
ROOT::Math::Interpolator * interp_
Definition: RooSpline1D.h:36
std::vector< double > x_
Definition: RooSpline1D.h:33
LimitAlgo * algo
Definition: Combine.cc:60
RooSpline1D::RooSpline1D ( const char *  name,
const char *  title,
RooAbsReal &  xar,
unsigned int  npoints,
const float *  xvals,
const float *  yvals,
const char *  algo = "CSPLINE" 
)

Definition at line 17 of file RooSpline1D.cc.

References i, x_, and y_.

17  :
18  RooAbsReal(name,title),
19  xvar_("xvar","Variable", this, xvar),
20  x_(npoints), y_(npoints), type_(algo),
21  interp_(0)
22 {
23  for (unsigned int i = 0; i < npoints; ++i) {
24  x_[i] = xvals[i];
25  y_[i] = yvals[i];
26  }
27 }
int i
Definition: DBlmapReader.cc:9
RooRealProxy xvar_
Definition: RooSpline1D.h:32
std::vector< double > y_
Definition: RooSpline1D.h:33
std::string type_
Definition: RooSpline1D.h:34
ROOT::Math::Interpolator * interp_
Definition: RooSpline1D.h:36
std::vector< double > x_
Definition: RooSpline1D.h:33
LimitAlgo * algo
Definition: Combine.cc:60
RooSpline1D::~RooSpline1D ( )

Definition at line 30 of file RooSpline1D.cc.

References interp_.

31 {
32  delete interp_;
33 }
ROOT::Math::Interpolator * interp_
Definition: RooSpline1D.h:36

Member Function Documentation

TObject * RooSpline1D::clone ( const char *  newname) const

Definition at line 36 of file RooSpline1D.cc.

References RooSpline1D(), type_, x_, xvar_, and y_.

37 {
38  return new RooSpline1D(newname, this->GetTitle(), const_cast<RooAbsReal &>(xvar_.arg()), x_.size(), &x_[0], &y_[0], type_.c_str());
39 }
RooRealProxy xvar_
Definition: RooSpline1D.h:32
std::vector< double > y_
Definition: RooSpline1D.h:33
std::string type_
Definition: RooSpline1D.h:34
std::vector< double > x_
Definition: RooSpline1D.h:33
Double_t RooSpline1D::evaluate ( ) const
protected

Definition at line 52 of file RooSpline1D.cc.

References init(), interp_, and xvar_.

52  {
53  if (interp_ == 0) init();
54  return interp_->Eval(xvar_);
55 }
RooRealProxy xvar_
Definition: RooSpline1D.h:32
ROOT::Math::Interpolator * interp_
Definition: RooSpline1D.h:36
void init() const
not to be serialized
Definition: RooSpline1D.cc:41
void RooSpline1D::init ( void  ) const
private

not to be serialized

Definition at line 41 of file RooSpline1D.cc.

References interp_, type_, x_, and y_.

Referenced by evaluate().

41  {
42  delete interp_;
43  if (type_ == "CSPLINE") interp_ = new ROOT::Math::Interpolator(x_, y_, ROOT::Math::Interpolation::kCSPLINE);
44  else if (type_ == "LINEAR") interp_ = new ROOT::Math::Interpolator(x_, y_, ROOT::Math::Interpolation::kLINEAR);
45  else if (type_ == "POLYNOMIAL") interp_ = new ROOT::Math::Interpolator(x_, y_, ROOT::Math::Interpolation::kPOLYNOMIAL);
46  else if (type_ == "CSPLINE_PERIODIC") interp_ = new ROOT::Math::Interpolator(x_, y_, ROOT::Math::Interpolation::kCSPLINE_PERIODIC);
47  else if (type_ == "AKIMA") interp_ = new ROOT::Math::Interpolator(x_, y_, ROOT::Math::Interpolation::kAKIMA);
48  else if (type_ == "AKIMA_PERIODIC") interp_ = new ROOT::Math::Interpolator(x_, y_, ROOT::Math::Interpolation::kAKIMA_PERIODIC);
49  else throw std::invalid_argument("Unknown interpolation type '"+type_+"'");
50 }
std::vector< double > y_
Definition: RooSpline1D.h:33
std::string type_
Definition: RooSpline1D.h:34
ROOT::Math::Interpolator * interp_
Definition: RooSpline1D.h:36
std::vector< double > x_
Definition: RooSpline1D.h:33

Member Data Documentation

ROOT::Math::Interpolator* RooSpline1D::interp_
mutableprivate

Definition at line 36 of file RooSpline1D.h.

Referenced by evaluate(), init(), and ~RooSpline1D().

std::string RooSpline1D::type_
private
std::vector<double> RooSpline1D::x_
private

Definition at line 33 of file RooSpline1D.h.

Referenced by clone(), init(), and RooSpline1D().

RooRealProxy RooSpline1D::xvar_
private

Definition at line 32 of file RooSpline1D.h.

Referenced by clone(), and evaluate().

std::vector<double> RooSpline1D::y_
private

Definition at line 33 of file RooSpline1D.h.

Referenced by clone(), init(), and RooSpline1D().