18#ifndef ROO_ABS_NUM_GENERATOR
19#define ROO_ABS_NUM_GENERATOR
30class RooAbsNumGenerator {
33 RooAbsNumGenerator(
const RooAbsReal &func,
const RooArgSet &genVars,
bool verbose=
false,
const RooAbsReal* maxFuncVal=
nullptr);
34 virtual RooAbsNumGenerator* clone(
const RooAbsReal&,
const RooArgSet& genVars,
const RooArgSet& condVars,
35 const RooNumGenConfig& config,
bool verbose=
false,
const RooAbsReal* maxFuncVal=
nullptr)
const = 0 ;
37 bool isValid()
const {
41 virtual ~RooAbsNumGenerator() ;
43 inline void setVerbose(
bool verbose=
true) {
47 inline bool isVerbose()
const {
52 virtual const RooArgSet *generateEvent(
UInt_t remaining,
double& resampleRatio) = 0;
53 virtual double getFuncMax() {
return 0 ; }
55 void attachParameters(
const RooArgSet& vars) ;
58 virtual bool canSampleCategories()
const {
return false ; }
59 virtual bool canSampleConditional()
const {
return false ; }
62 virtual std::string
const& generatorName()
const = 0;
67 RooAbsReal *_funcClone =
nullptr;
68 const RooAbsReal *_funcMaxVal =
nullptr;
71 bool _verbose =
false;
72 bool _isValid =
false;
73 std::unique_ptr<RooAbsArg> _funcValStore;
74 RooRealVar *_funcValPtr =
nullptr;
75 std::unique_ptr<RooDataSet> _cache;
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int).
Abstract base class for objects that represent a real value and implements functionality common to al...
Container class to hold unbinned data.
Holds the configuration parameters of the various numeric integrators used by RooRealIntegral.
Lightweight interface adaptor that binds a RooAbsReal object to a subset of its servers and present i...
Variable that can be changed from the outside.