Docs | All | Real | Category | PDF | DataSet | Plot | Container | Misc | Aux | User

RooFit Toolkit for Data Modeling
#include "RooGaussKronrodIntegrator1D.hh"

RooGaussKronrodIntegrator1D


class description - source file - inheritance tree (.pdf)

class RooGaussKronrodIntegrator1D : public RooAbsIntegrator

Inheritance Chart:
TObject
<-
RooAbsIntegrator
<-
RooGaussKronrodIntegrator1D

    protected:
Bool_t initialize() Double_t* xvec(Double_t& xx) public:
RooGaussKronrodIntegrator1D() RooGaussKronrodIntegrator1D(const RooAbsFunc& function, const RooNumIntConfig& config) RooGaussKronrodIntegrator1D(const RooAbsFunc& function, Double_t xmin, Double_t xmax, const RooNumIntConfig& config) RooGaussKronrodIntegrator1D(const RooGaussKronrodIntegrator1D&) virtual ~RooGaussKronrodIntegrator1D() virtual Bool_t canIntegrate1D() const virtual Bool_t canIntegrate2D() const virtual Bool_t canIntegrateND() const virtual Bool_t canIntegrateOpenEnded() const virtual Bool_t checkLimits() const static TClass* Class() virtual RooAbsIntegrator* clone(const RooAbsFunc& function, const RooNumIntConfig& config) const virtual Double_t integral(const Double_t* yvec = 0) virtual TClass* IsA() const virtual Bool_t setLimits(Double_t xmin, Double_t xmax) virtual Bool_t setUseIntegrandLimits(Bool_t flag) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

Data Members


    protected:
Bool_t _useIntegrandLimits Double_t* _x ! do not persist Double_t _epsAbs Absolute precision Double_t _epsRel Relative precision Double_t _xmin ! do not persist Double_t _xmax ! do not persist

Class Description

 RooGaussKronrodIntegrator1D implements the Gauss-Kronrod integration algorithm.

 An Gaussian quadrature method for numerical integration in which
 error is estimation based on evaluation at special points known as
 "Kronrod points."  By suitably picking these points, abscissas from
 previous iterations can be reused as part of the new set of points,
 whereas usual Gaussian quadrature would require recomputation of
 all abscissas at each iteration.

 This class automatically handles (-inf,+inf) integrals by dividing
 the integration in three regions (-inf,-1), (-1,1), (1,inf) and
 calculating the 1st and 3rd term using a x -> 1/x coordinate
 transformation

 This class embeds the Gauss-Kronrod integrator from the GNU
 Scientific Library version 1.5 and applies the 10-, 21-, 43- and
 87-point rule in succession until the required target precision is
 reached

RooGaussKronrodIntegrator1D()

RooGaussKronrodIntegrator1D(const RooAbsFunc& function, const RooNumIntConfig& config) : RooAbsIntegrator(function), _epsAbs(config.epsRel()), _epsRel(config.epsAbs())
 Use this form of the constructor to integrate over the function's default range.

RooGaussKronrodIntegrator1D(const RooAbsFunc& function, Double_t xmin, Double_t xmax, const RooNumIntConfig& config) : RooAbsIntegrator(function), _epsAbs(config.epsRel()), _epsRel(config.epsAbs()), _xmin(xmin), _xmax(xmax)
 Use this form of the constructor to integrate over the function's default range.

RooAbsIntegrator* clone(const RooAbsFunc& function, const RooNumIntConfig& config) const

Bool_t initialize()
 Allocate coordinate buffer size after number of function dimensions

~RooGaussKronrodIntegrator1D()

Bool_t setLimits(Double_t xmin, Double_t xmax)
 Change our integration limits. Return kTRUE if the new limits are
 ok, or otherwise kFALSE. Always returns kFALSE and does nothing
 if this object was constructed to always use our integrand's limits.

Bool_t checkLimits() const
 Check that our integration range is finite and otherwise return kFALSE.
 Update the limits from the integrand if requested.

Double_t integral(const Double_t *yvec)



Inline Functions


                             Bool_t setUseIntegrandLimits(Bool_t flag)
                             Bool_t canIntegrate1D() const
                             Bool_t canIntegrate2D() const
                             Bool_t canIntegrateND() const
                             Bool_t canIntegrateOpenEnded() const
                          Double_t* xvec(Double_t& xx)
                            TClass* Class()
                            TClass* IsA() const
                               void ShowMembers(TMemberInspector& insp, char* parent)
                               void Streamer(TBuffer& b)
                               void StreamerNVirtual(TBuffer& b)
        RooGaussKronrodIntegrator1D RooGaussKronrodIntegrator1D(const RooGaussKronrodIntegrator1D&)
Last CVS Update: v 1.6 2005/06/20 15:44:52 wverkerke Top
Copyright © 2000-2005 University of California, Stanford University

Page maintained by Wouter Verkerke and David Kirkby

SourceForge.net Logo