A++ » INCLUDE » TFoamSampler

class TFoamSampler: public ROOT::Math::DistSampler


   TFoamSampler class
   class implementing  the ROOT::Math::DistSampler interface using FOAM
   for sampling arbitrary distributions.



Function Members (Methods)

public:
virtual~TFoamSampler()
ROOT::Math::DistSamplerROOT::Math::DistSampler::DistSampler()
ROOT::Math::DistSamplerROOT::Math::DistSampler::DistSampler(const ROOT::Math::DistSampler&)
virtual boolROOT::Math::DistSampler::Generate(unsigned int nevt, ROOT::Fit::UnBinData& data)
virtual boolROOT::Math::DistSampler::Generate(unsigned int nevt, const int* nbins, ROOT::Fit::BinData& data, bool extend = true)
boolROOT::Math::DistSampler::Generate(unsigned int nevt, int nbins, double xmin, double xmax, ROOT::Fit::BinData& data, bool extend = true)
virtual TRandom*GetRandom()
virtual boolInit(const char* = "")
virtual boolInit(const ROOT::Math::DistSamplerOptions& opt)
unsigned intROOT::Math::DistSampler::NDim() const
TFoamSampler&operator=(const TFoamSampler&)
const ROOT::Math::IMultiGenFunction&ROOT::Math::DistSampler::ParentPdf() const
virtual boolSample(double* x)
virtual doubleROOT::Math::DistSampler::Sample1D()
virtual boolSampleBin(double prob, double& value, double* error = 0)
virtual boolROOT::Math::DistSampler::SampleBins(unsigned int n, const double* prob, double* values, double* errors = 0)
virtual voidROOT::Math::DistSampler::SetArea(double)
virtual voidSetFunction(const ROOT::Math::IGenFunction& func)
voidSetFunction(TF1* pdf)
voidROOT::Math::DistSampler::SetFunction<const ROOT::Math::IBaseFunctionOneDim>(const ROOT::Math::IBaseFunctionOneDim& func, unsigned int dim)
virtual voidROOT::Math::DistSampler::SetMode(double)
virtual voidSetRandom(TRandom* r)
voidROOT::Math::DistSampler::SetRange(const ROOT::Fit::DataRange& range)
voidROOT::Math::DistSampler::SetRange(const double* xmin, const double* xmax)
voidROOT::Math::DistSampler::SetRange(double xmin, double xmax, int icoord = 0)
virtual voidSetSeed(unsigned int seed)
TFoamSampler()
TFoamSampler(const TFoamSampler&)
protected:
virtual voidROOT::Math::DistSampler::DoSetFunction(const ROOT::Math::IMultiGenFunction& func, bool copy)
boolROOT::Math::DistSampler::IsInitialized()
const ROOT::Fit::DataRange&ROOT::Math::DistSampler::PdfRange() const

Data Members

private:
TFoam*fFoamfoam engine class
TFoamIntegrand*fFoamDistfoam distribution interface
const ROOT::Math::IGenFunction*fFunc1D1D function pointer

Class Charts

Inheritance Chart:
ROOT::Math::DistSampler
TFoamSampler

Function documentation

TFoamSampler()
 default constructor
virtual ~TFoamSampler()
 virtual destructor
void SetFunction(const ROOT::Math::IGenFunction& func)
 set the parent function distribution to use for random sampling (one dim case)
void SetFunction(TF1* pdf)
 set the Function using a TF1 pointer
bool Init(const char* = "")
      initialize the generators with the default options

bool Init(const ROOT::Math::DistSamplerOptions& opt)
      initialize the generators with the fiven options

void SetRandom(TRandom* r)
       Set the random engine to be used
       Needs to be called before Init to have effect

void SetSeed(unsigned int seed)
       Set the random seed for the TRandom instances used by the sampler
       classes
       Needs to be called before Init to have effect

TRandom * GetRandom()
      Get the random engine used by the sampler

bool Sample(double* x)
      sample one event in multi-dimension by filling the given array
      return false if sampling failed

bool SampleBin(double prob, double& value, double* error = 0)
      sample one bin given an estimated of the pdf in the bin
      (this can be function value at the center or its integral in the bin
      divided by the bin width)
      By default do not do random sample, just return the function values