16 #ifndef ROO_FOAM_GENERATOR
17 #define ROO_FOAM_GENERATOR
28 class RooTFoamBinding ;
29 class RooNumGenFactory ;
31 class RooFoamGenerator :
public RooAbsNumGenerator {
33 RooFoamGenerator() : _binding(0), _tfoam(0), _xmin(0), _range(0), _vec(0), _rvIter(0) {} ;
34 RooFoamGenerator(
const RooAbsReal &func,
const RooArgSet &genVars,
const RooNumGenConfig& config, Bool_t verbose=kFALSE,
const RooAbsReal* maxFuncVal=0);
35 RooAbsNumGenerator* clone(
const RooAbsReal& func,
const RooArgSet& genVars,
const RooArgSet& ,
36 const RooNumGenConfig& config, Bool_t verbose=kFALSE,
const RooAbsReal* maxFuncVal=0)
const {
37 return new RooFoamGenerator(func,genVars,config,verbose,maxFuncVal) ;
39 virtual ~RooFoamGenerator();
41 const RooArgSet *generateEvent(UInt_t remaining, Double_t& resampleRatio);
43 TFoam& engine() {
return *_tfoam; }
45 virtual Bool_t canSampleConditional()
const {
return kFALSE ; }
46 virtual Bool_t canSampleCategories()
const {
return kFALSE ; }
50 friend class RooNumGenFactory ;
51 static void registerSampler(RooNumGenFactory& fact) ;
53 RooTFoamBinding* _binding ;
61 ClassDef(RooFoamGenerator,0)