16 #ifndef ROO_INTEGRATOR_2D
17 #define ROO_INTEGRATOR_2D
22 class RooIntegrator2D :
public RooIntegrator1D {
27 RooIntegrator2D(
const RooAbsFunc&
function, RooIntegrator1D::SummationRule rule=RooIntegrator1D::Trapezoid,
28 Int_t maxSteps= 0, Double_t eps= 0) ;
29 RooIntegrator2D(
const RooAbsFunc&
function, Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax,
30 SummationRule rule= Trapezoid, Int_t maxSteps= 0, Double_t eps= 0) ;
32 RooIntegrator2D(
const RooAbsFunc&
function,
const RooNumIntConfig& config) ;
33 RooIntegrator2D(
const RooAbsFunc&
function, Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax,
34 const RooNumIntConfig& config) ;
36 virtual RooAbsIntegrator* clone(
const RooAbsFunc&
function,
const RooNumIntConfig& config)
const ;
37 virtual ~RooIntegrator2D() ;
39 virtual Bool_t checkLimits()
const;
41 virtual Bool_t canIntegrate1D()
const {
return kFALSE ; }
42 virtual Bool_t canIntegrate2D()
const {
return kTRUE ; }
43 virtual Bool_t canIntegrateND()
const {
return kFALSE ; }
44 virtual Bool_t canIntegrateOpenEnded()
const {
return kFALSE ; }
48 friend class RooNumIntFactory ;
49 static void registerIntegrator(RooNumIntFactory& fact) ;
51 RooIntegrator1D* _xIntegrator ;
54 ClassDef(RooIntegrator2D,0)