Logo ROOT  
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 
39  virtual void selectNormalizationRange(const char* rangeName=0, Bool_t force=kFALSE) ;
40 
41 private:
42 
45  mutable TNamed* _refRangeName ;
46 
47  Double_t evaluate() const;
48  RooSpan<double> evaluateSpan(BatchHelpers::RunContext& evalData, const RooArgSet* normSet) const;
49 
50  Double_t evalAnaInt(const Double_t a, const Double_t b) const;
51 
52  ClassDef(RooChebychev,2) // Chebychev polynomial PDF
53 };
54 
55 #endif
RooChebychev::_coefList
RooListProxy _coefList
Definition: RooChebychev.h:44
RooChebychev
Chebychev polynomial p.d.f.
Definition: RooChebychev.h:25
RooChebychev::_x
RooRealProxy _x
Definition: RooChebychev.h:43
RooArgList
RooArgList is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgList.h:21
RooChebychev::evaluateSpan
RooSpan< double > evaluateSpan(BatchHelpers::RunContext &evalData, const RooArgSet *normSet) const
Compute multiple values of Chebychev.
Definition: RooChebychev.cxx:187
RooAbsReal
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition: RooAbsReal.h:61
RooChebychev::selectNormalizationRange
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.
Definition: RooChebychev.cxx:148
b
#define b(i)
Definition: RSha256.hxx:100
bool
BatchHelpers::RunContext
Data that has to be passed around when evaluating functions / PDFs.
Definition: RunContext.h:32
RooChebychev::evaluate
Double_t evaluate() const
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
Definition: RooChebychev.cxx:160
RooAbsPdf.h
a
auto * a
Definition: textangle.C:12
TNamed
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
kFALSE
const Bool_t kFALSE
Definition: RtypesCore.h:92
RooRealProxy.h
RooChebychev::clone
virtual TObject * clone(const char *newname) const
Definition: RooChebychev.h:33
RooListProxy
RooListProxy is the concrete proxy for RooArgList objects.
Definition: RooListProxy.h:24
RooChebychev::_refRangeName
TNamed * _refRangeName
Definition: RooChebychev.h:45
RooChebychev::getAnalyticalIntegral
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
Interface function getAnalyticalIntergral advertises the analytical integrals that are supported.
Definition: RooChebychev.cxx:207
RooListProxy.h
RooTemplateProxy< RooAbsReal >
RooChebychev::~RooChebychev
virtual ~RooChebychev()
Definition: RooChebychev.h:34
Double_t
double Double_t
Definition: RtypesCore.h:59
TObject
Mother of all ROOT objects.
Definition: TObject.h:37
ClassDef
#define ClassDef(name, id)
Definition: Rtypes.h:325
name
char name[80]
Definition: TGX11.cxx:110
RooChebychev::evalAnaInt
Double_t evalAnaInt(const Double_t a, const Double_t b) const
Definition: RooChebychev.cxx:233
RooAbsPdf
Definition: RooAbsPdf.h:43
RooChebychev::analyticalIntegral
Double_t analyticalIntegral(Int_t code, const char *rangeName=0) const
Implements the actual analytical integral(s) advertised by getAnalyticalIntegral.
Definition: RooChebychev.cxx:215
RooRealVar
RooRealVar represents a variable that can be changed from the outside.
Definition: RooRealVar.h:37
RooChebychev::RooChebychev
RooChebychev()
Definition: RooChebychev.cxx:111
RooSpan
A simple container to hold a batch of data values.
Definition: RooSpan.h:34
RooArgSet
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:29
int