18#ifndef ROO_MC_INTEGRATOR
19#define ROO_MC_INTEGRATOR
29 enum SamplingMode { Importance, ImportanceOnly, Stratified };
30 enum GeneratorType { QuasiRandom, PseudoRandom };
31 RooMCIntegrator(
const RooAbsFunc &function, SamplingMode
mode = Importance, GeneratorType genType = QuasiRandom,
32 bool verbose =
false);
33 RooMCIntegrator(
const RooAbsFunc &function,
const RooNumIntConfig &config);
36 double integral(
const double *yvec =
nullptr)
override;
38 enum Stage { AllStages, ReuseGrid, RefineGrid };
39 double vegas(Stage stage,
UInt_t calls,
UInt_t iterations,
double *absError =
nullptr);
41 double getAlpha()
const {
return _alpha; }
42 void setAlpha(
double alpha) { _alpha = alpha; }
44 GeneratorType getGenType()
const {
return _genType; }
45 void setGenType(GeneratorType
type) { _genType =
type; }
47 const RooGrid &grid()
const {
return _grid; }
50 friend class RooNumIntFactory;
51 static void registerIntegrator(RooNumIntFactory &fact);
53 mutable RooGrid _grid;
59 GeneratorType _genType;
62 Int_t _nIntegratePerDim;
66 double _jac, _wtd_int_sum, _sum_wgts, _chi_sum, _chisq, _result,
68 UInt_t _it_start, _it_num, _samples, _calls_per_box;
int Int_t
Signed integer 4 bytes (int).
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int).
Option_t Option_t TPoint TPoint const char mode
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Abstract interface for integrators of real-valued functions that implement the RooAbsFunc interface.
virtual bool checkLimits() const
If true, finite limits are required on the observable range.
virtual double integral(const double *yvec=nullptr)=0