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)