Logo ROOT   master
Reference Guide
RooChebychev.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Project: RooFit *
3  * Package: RooFitModels *
4  * File: $Id: RooChebychev.h,v 1.6 2007/05/11 09:13:07 verkerke Exp $
5  * Authors: *
6  * GR, Gerhard Raven, UC San Diego, Gerhard.Raven@slac.stanford.edu
7  * *
8  * Copyright (c) 2000-2005, Regents of the University of California *
9  * and Stanford University. All rights reserved. *
10  * *
11  * Redistribution and use in source and binary forms, *
12  * with or without modification, are permitted according to the terms *
13  * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
14  *****************************************************************************/
15 #ifndef ROO_CHEBYCHEV
16 #define ROO_CHEBYCHEV
17 
18 #include "RooAbsPdf.h"
19 #include "RooRealProxy.h"
20 #include "RooListProxy.h"
21 
22 class RooRealVar;
23 class RooArgList ;
24 
25 class RooChebychev : public RooAbsPdf {
26 public:
27 
28  RooChebychev() ;
29  RooChebychev(const char *name, const char *title,
30  RooAbsReal& _x, const RooArgList& _coefList) ;
31 
32  RooChebychev(const RooChebychev& other, const char* name = 0);
33  virtual TObject* clone(const char* newname) const { return new RooChebychev(*this, newname); }
34  inline virtual ~RooChebychev() { }
35 
36  Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
37  Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ;
38  RooSpan<double> evaluateBatch(std::size_t begin, std::size_t batchSize) const;
39 
40  virtual void selectNormalizationRange(const char* rangeName=0, Bool_t force=kFALSE) ;
41 
42 private:
43 
46  mutable TNamed* _refRangeName ;
47 
48  Double_t evaluate() const;
49  Double_t evalAnaInt(const Double_t a, const Double_t b) const;
50 
51  ClassDef(RooChebychev,2) // Chebychev polynomial PDF
52 };
53 
54 #endif
A simple container to hold a batch of data values.
Definition: RooSpan.h:32
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:28
RooRealProxy _x
Definition: RooChebychev.h:44
Double_t analyticalIntegral(Int_t code, const char *rangeName=0) const
Implements the actual analytical integral(s) advertised by getAnalyticalIntegral. ...
Double_t evalAnaInt(const Double_t a, const Double_t b) const
#define ClassDef(name, id)
Definition: Rtypes.h:322
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
RooSpan< double > evaluateBatch(std::size_t begin, std::size_t batchSize) const
Evaluate function for a batch of input data points.
TNamed * _refRangeName
Definition: RooChebychev.h:46
RooRealVar represents a variable that can be changed from the outside.
Definition: RooRealVar.h:35
RooListProxy _coefList
Definition: RooChebychev.h:45
Double_t evaluate() const
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
virtual TObject * clone(const char *newname) const
Definition: RooChebychev.h:33
auto * a
Definition: textangle.C:12
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
Interface function getAnalyticalIntergral advertises the analytical integrals that are supported...
RooListProxy is the concrete proxy for RooArgList objects.
Definition: RooListProxy.h:25
const Bool_t kFALSE
Definition: RtypesCore.h:90
double Double_t
Definition: RtypesCore.h:57
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition: RooAbsReal.h:60
virtual ~RooChebychev()
Definition: RooChebychev.h:34
Mother of all ROOT objects.
Definition: TObject.h:37
RooAbsPdf, the base class of all PDFs
Definition: RooAbsPdf.h:40
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...
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
Definition: TRolke.cxx:630
RooArgList is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgList.h:21
Chebychev polynomial p.d.f.
Definition: RooChebychev.h:25
char name[80]
Definition: TGX11.cxx:109