CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RooSpline1D.h
Go to the documentation of this file.
1 #ifndef HiggsAnalysis_CombinedLimit_RooSpline1D_h
2 #define HiggsAnalysis_CombinedLimit_RooSpline1D_h
3 
4 #include <RooAbsReal.h>
5 #include <RooRealProxy.h>
6 #include <Math/Interpolator.h>
7 
8 //_________________________________________________
9 /*
10 BEGIN_HTML
11 <p>
12 RooSpline1D is helper class for smoothing a list of values using an interpolator provided by the ROOT::Math::Interpolator class.
13 For the interpolation types, see http://project-mathlibs.web.cern.ch/project-mathlibs/sw/html/group__Interpolation.html
14 </p>
15 END_HTML
16 */
17 //
18 class RooSpline1D : public RooAbsReal {
19 
20  public:
22  RooSpline1D(const char *name, const char *title, RooAbsReal &xvar, unsigned int npoints, const double *xvals, const double *yvals, const char *algo="CSPLINE") ;
23  RooSpline1D(const char *name, const char *title, RooAbsReal &xar, unsigned int npoints, const float *xvals, const float *yvals, const char *algo="CSPLINE") ;
24  ~RooSpline1D() ;
25 
26  TObject * clone(const char *newname) const ;
27 
28  protected:
29  Double_t evaluate() const;
30 
31  private:
32  RooRealProxy xvar_;
33  std::vector<double> x_, y_;
34  std::string type_;
35 
36  mutable ROOT::Math::Interpolator *interp_;
37  void init() const ;
38 
39  ClassDef(RooSpline1D,1) // Smooth interpolation
40 };
41 
42 #endif
Double_t evaluate() const
Definition: RooSpline1D.cc:52
RooRealProxy xvar_
Definition: RooSpline1D.h:32
TObject * clone(const char *newname) const
Definition: RooSpline1D.cc:36
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
void init() const
not to be serialized
Definition: RooSpline1D.cc:41
LimitAlgo * algo
Definition: Combine.cc:60