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

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

RooAdaptiveGaussKronrodIntegrator1D


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

class RooAdaptiveGaussKronrodIntegrator1D : public RooAbsIntegrator

Inheritance Chart:
TObject
<-
RooAbsIntegrator
<-
RooAdaptiveGaussKronrodIntegrator1D

    protected:
Bool_t initialize() Double_t* xvec(Double_t& xx) public:
RooAdaptiveGaussKronrodIntegrator1D() RooAdaptiveGaussKronrodIntegrator1D(const RooAbsFunc& function, const RooNumIntConfig& config) RooAdaptiveGaussKronrodIntegrator1D(const RooAbsFunc& function, Double_t xmin, Double_t xmax, const RooNumIntConfig& config) RooAdaptiveGaussKronrodIntegrator1D(const RooAdaptiveGaussKronrodIntegrator1D&) virtual ~RooAdaptiveGaussKronrodIntegrator1D() 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:
RooAdaptiveGaussKronrodIntegrator1D::DomainType _domainType Bool_t _useIntegrandLimits Double_t* _x ! do not persist Double_t _epsAbs Absolute precision Double_t _epsRel Relative precision Int_t _methodKey GSL method key Int_t _maxSeg Maximum number of segments void* _workspace GSL workspace Double_t _xmin ! do not persist Double_t _xmax ! do not persist public:
static const RooAdaptiveGaussKronrodIntegrator1D::DomainType Closed static const RooAdaptiveGaussKronrodIntegrator1D::DomainType OpenLo static const RooAdaptiveGaussKronrodIntegrator1D::DomainType OpenHi static const RooAdaptiveGaussKronrodIntegrator1D::DomainType Open

Class Description

 RooAdaptiveGaussKronrodIntegrator1D implements the Gauss-Kronrod integration algorithm.

 An adaptive 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 adaptive Gauss-Kronrod integrator from the
 GNU Scientific Library version 1.5 and applies a chosen rule ( 10-,
 21-, 31-, 41, 51- or 61-point). The integration domain is
 subdivided and recursively integrated until the required precision
 is reached.

 For integrands with integrable singulaties the Wynn epsilon rule
 can be selected to speed up the converges of these integrals

RooAdaptiveGaussKronrodIntegrator1D()

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

RooAdaptiveGaussKronrodIntegrator1D(const RooAbsFunc& function, Double_t xmin, Double_t xmax, const RooNumIntConfig& config) : RooAbsIntegrator(function), _epsAbs(config.epsRel()), _epsRel(config.epsAbs()), _workspace(0), _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

~RooAdaptiveGaussKronrodIntegrator1D()

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)
        RooAdaptiveGaussKronrodIntegrator1D RooAdaptiveGaussKronrodIntegrator1D(const RooAdaptiveGaussKronrodIntegrator1D&)
Last CVS Update: v 1.6 2005/06/20 15:44:47 wverkerke Top
Copyright © 2000-2005 University of California, Stanford University

Page maintained by Wouter Verkerke and David Kirkby

SourceForge.net Logo