Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RooIntegrator2D.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Project: RooFit *
3 * Package: RooFitCore *
4 * File: $Id: RooIntegrator2D.h,v 1.8 2007/05/11 09:11:30 verkerke Exp $
5 * Authors: *
6 * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu *
7 * DK, David Kirkby, UC Irvine, dkirkby@uci.edu *
8 * *
9 * Copyright (c) 2000-2005, Regents of the University of California *
10 * and Stanford University. All rights reserved. *
11 * *
12 * Redistribution and use in source and binary forms, *
13 * with or without modification, are permitted according to the terms *
14 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
15 *****************************************************************************/
16#ifndef ROO_INTEGRATOR_2D
17#define ROO_INTEGRATOR_2D
18
19#include "RooIntegrator1D.h"
20#include "RooNumIntConfig.h"
21
23public:
24
25 // Constructors, assignment etc
28 Int_t maxSteps= 0, double eps= 0) ;
29 RooIntegrator2D(const RooAbsFunc& function, double xmin, double xmax, double ymin, double ymax,
30 SummationRule rule= Trapezoid, Int_t maxSteps= 0, double eps= 0) ;
31
32 RooIntegrator2D(const RooAbsFunc& function, const RooNumIntConfig& config) ;
33 RooIntegrator2D(const RooAbsFunc& function, double xmin, double xmax, double ymin, double ymax,
34 const RooNumIntConfig& config) ;
35
36 RooAbsIntegrator* clone(const RooAbsFunc& function, const RooNumIntConfig& config) const override ;
37 ~RooIntegrator2D() override ;
38
39 bool checkLimits() const override;
40
41 bool canIntegrate1D() const override { return false ; }
42 bool canIntegrate2D() const override { return true ; }
43 bool canIntegrateND() const override { return false ; }
44 bool canIntegrateOpenEnded() const override { return false ; }
45
46protected:
47
48 friend class RooNumIntFactory ;
49 static void registerIntegrator(RooNumIntFactory& fact) ;
50
51 RooIntegrator1D* _xIntegrator ; ///< Integrator in first dimension
52 RooAbsFunc* _xint ; ///< Function binding representing integral over first dimension
53
54 ClassDefOverride(RooIntegrator2D,0) // 2-dimensional numerical integration engine
55};
56
57#endif
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
float xmin
float ymin
float xmax
float ymax
Abstract interface for evaluating a real-valued function of one real variable and performing numerica...
Definition RooAbsFunc.h:27
RooAbsIntegrator is the abstract interface for integrators of real-valued functions that implement th...
RooIntegrator1D implements an adaptive one-dimensional numerical integration algorithm.
RooIntegrator2D implements a numeric two-dimensiona integrator in terms of a recursive application of...
RooAbsFunc * _xint
Function binding representing integral over first dimension.
bool canIntegrateND() const override
static void registerIntegrator(RooNumIntFactory &fact)
Register RooIntegrator2D, is parameters and capabilities with RooNumIntFactory.
~RooIntegrator2D() override
Destructor.
bool canIntegrate1D() const override
bool checkLimits() const override
Verify that the limits are OK for this integrator (i.e. no open-ended ranges)
RooIntegrator1D * _xIntegrator
Integrator in first dimension.
RooAbsIntegrator * clone(const RooAbsFunc &function, const RooNumIntConfig &config) const override
Clone integrator with new function and configuration. Needed to support RooNumIntFactory.
RooIntegrator2D()
Default constructor.
bool canIntegrateOpenEnded() const override
bool canIntegrate2D() const override
RooNumIntConfig holds the configuration parameters of the various numeric integrators used by RooReal...
RooNumIntFactory is a factory to instantiate numeric integrators from a given function binding and a ...