16 #ifndef ROO_SEGMENTED_INTEGRATOR_1D
17 #define ROO_SEGMENTED_INTEGRATOR_1D
23 class RooSegmentedIntegrator1D :
public RooAbsIntegrator {
27 RooSegmentedIntegrator1D() ;
28 RooSegmentedIntegrator1D(
const RooAbsFunc&
function,
const RooNumIntConfig& config) ;
29 RooSegmentedIntegrator1D(
const RooAbsFunc&
function, Double_t xmin, Double_t xmax,
const RooNumIntConfig& config) ;
31 virtual RooAbsIntegrator* clone(
const RooAbsFunc&
function,
const RooNumIntConfig& config)
const ;
32 virtual ~RooSegmentedIntegrator1D();
34 virtual Bool_t checkLimits()
const;
35 virtual Double_t integral(
const Double_t *yvec=0) ;
37 using RooAbsIntegrator::setLimits ;
38 Bool_t setLimits(Double_t *xmin, Double_t *xmax);
39 virtual Bool_t setUseIntegrandLimits(Bool_t flag) { _useIntegrandLimits = flag ;
return kTRUE ; }
41 virtual Bool_t canIntegrate1D()
const {
return kTRUE ; }
42 virtual Bool_t canIntegrate2D()
const {
return kFALSE ; }
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 mutable Double_t _xmin ;
52 mutable Double_t _xmax ;
53 mutable Double_t _range ;
56 Bool_t _useIntegrandLimits ;
58 RooNumIntConfig _config ;
59 RooIntegrator1D** _array ;
63 ClassDef(RooSegmentedIntegrator1D,0)