TUnuranSampler class class implementing the ROOT::Math::DistSampler interface using the UNU.RAN package for sampling distributions.
Definition at line 51 of file TUnuranSampler.h.
Public Member Functions | |
TUnuranSampler () | |
default constructor | |
~TUnuranSampler () override | |
virtual destructor | |
TRandom * | GetRandom () override |
Get the random engine used by the sampler. | |
bool | Init (const char *algo="") override |
initialize the generators with the given algorithm If no algorithm is passed used the default one for the type of distribution | |
bool | Init (const ROOT::Math::DistSamplerOptions &opt) override |
initialize the generators with the given algorithm If no algorithm is passed used the default one for the type of distribution | |
virtual TClass * | IsA () const |
bool | Sample (double *x) override |
sample one event in multi-dimension by filling the given array return false if sampling failed | |
double | Sample1D () override |
sample one event in one dimension better implementation could be provided by the derived classes | |
bool | SampleBin (double prob, double &value, double *error=nullptr) override |
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 | |
void | SetArea (double area) override |
Set the normalization area of distribution. | |
void | SetCdf (const ROOT::Math::IGenFunction &cdf) override |
set the cumulative distribution function of the PDF used for random sampling (one dim case) | |
void | SetDPdf (const ROOT::Math::IGenFunction &dpdf) override |
set the Derivative of the PDF used for random sampling (one dim continuous case) | |
void | SetFunction (const ROOT::Math::IGenFunction &func) override |
Set the parent function distribution to use for random sampling (one dim case). | |
void | SetFunction (TF1 *pdf) |
Set the Function using a TF1 pointer. | |
void | SetMode (const std::vector< double > &modes) override |
Set the mode of the distribution (Multi-dim case). | |
void | SetMode (double mode) override |
Set the mode of the distribution (1D case). | |
void | SetPrintLevel (int level) |
Set the print level (if level=-1 use default) | |
void | SetRandom (TRandom *r) override |
Set the random engine to be used Needs to be called before Init to have effect. | |
void | SetSeed (unsigned int seed) override |
Set the random seed for the TRandom instances used by the sampler classes Needs to be called before Init to have effect. | |
void | SetUseLogPdf (bool on=true) override |
Set using of logarithm of PDF (only for 1D continuous case) | |
virtual void | Streamer (TBuffer &) |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from ROOT::Math::DistSampler | |
DistSampler () | |
default constructor | |
virtual | ~DistSampler () |
virtual destructor | |
virtual bool | Generate (unsigned int nevt, const int *nbins, ROOT::Fit::BinData &data, bool extend=true, bool expErr=true) |
Generate a binned data set. | |
virtual bool | Generate (unsigned int nevt, double *data, bool eventRow=false) |
Generate a vector of events by filling the passed data vector. | |
bool | Generate (unsigned int nevt, int nbins, double xmin, double xmax, ROOT::Fit::BinData &data, bool extend=true, bool expErr=true) |
Same as before but passing the range in case of 1 dim data. | |
virtual bool | Generate (unsigned int nevt, ROOT::Fit::UnBinData &data) |
Generate a un-binned data set by filling the given data set object. | |
bool | HasParentPdf () const |
Check if there is a parent distribution defined. | |
unsigned int | NDim () const |
return the dimension of the parent distribution (and the data) | |
const ROOT::Math::IMultiGenFunction & | ParentPdf () const |
Get the parent distribution function (must be called after setting the function). | |
const double * | Sample () |
Sample one event and return an array x with sample coordinates values. | |
virtual bool | SampleBins (unsigned int n, const double *prob, double *values, double *errors=nullptr) |
Sample a set of bins given a vector of probabilities Typically multinomial statistics will be used and the sum of the probabilities will be equal to the total number of events to be generated For sampling the bins independently, SampleBin should be used. | |
virtual void | SetFunction (const ROOT::Math::IMultiGenFunction &func) |
set the parent function distribution to use for random sampling (multi-dim case) | |
template<class Function > | |
void | SetFunction (Function &func, unsigned int dim) |
set the parent function distribution to use for sampling (generic case) | |
void | SetRange (const double *xmin, const double *xmax) |
Set the range for all dimensions. | |
void | SetRange (const ROOT::Fit::DataRange &range) |
Set the range using the ROOT::Fit::DataRange class. | |
void | SetRange (const std::vector< double > &xmin, const std::vector< double > &xmax) |
Set the range for all dimensions (use std::vector) | |
void | SetRange (double xmin, double xmax, int icoord=0) |
Set the range in a given dimension. | |
Static Public Member Functions | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Protected Member Functions | |
bool | DoInit1D (const char *algo) |
Initialization for 1D distributions. | |
bool | DoInitDiscrete1D (const char *algo) |
Initialization for 1D discrete distributions. | |
bool | DoInitND (const char *algo) |
Initialization for multi-dim distributions. | |
Protected Member Functions inherited from ROOT::Math::DistSampler | |
virtual void | DoSetDimension (unsigned int ndim) |
virtual void | DoSetFunction (const ROOT::Math::IMultiGenFunction &func, bool copy) |
bool | IsInitialized () |
const ROOT::Fit::DataRange & | PdfRange () const |
return the data range of the Pdf . Must be called after setting the function | |
Private Attributes | |
double | fArea |
area of dist | |
const ROOT::Math::IGenFunction * | fCDF = nullptr |
CDF function pointer. | |
bool | fDiscrete = false |
flag to indicate if the function is discrete | |
const ROOT::Math::IGenFunction * | fDPDF = nullptr |
1D Derivative function pointer | |
const ROOT::Math::IGenFunction * | fFunc1D = nullptr |
1D function pointer (pdf) | |
bool | fHasArea = false |
flag to indicate if a area is set | |
bool | fHasMode = false |
flag to indicate if a mode is set | |
int | fLevel |
debug level | |
double | fMode |
mode of dist (1D) | |
std::vector< double > | fNDMode |
mode of the multi-dim distribution | |
bool | fOneDim = false |
flag to indicate if the function is 1 dimension | |
TUnuran * | fUnuran = nullptr |
unuran engine class | |
bool | fUseLogPdf = false |
flag to indicate if we use the log of the PDF | |
#include <TUnuranSampler.h>
TUnuranSampler::TUnuranSampler | ( | ) |
default constructor
Definition at line 33 of file TUnuranSampler.cxx.
|
override |
virtual destructor
Definition at line 43 of file TUnuranSampler.cxx.
|
static |
|
inlinestaticconstexpr |
Definition at line 198 of file TUnuranSampler.h.
|
inlinestatic |
Definition at line 198 of file TUnuranSampler.h.
|
protected |
Initialization for 1D distributions.
Definition at line 143 of file TUnuranSampler.cxx.
|
protected |
Initialization for 1D discrete distributions.
Definition at line 183 of file TUnuranSampler.cxx.
|
protected |
Initialization for multi-dim distributions.
Definition at line 224 of file TUnuranSampler.cxx.
|
overridevirtual |
Get the random engine used by the sampler.
Reimplemented from ROOT::Math::DistSampler.
Definition at line 267 of file TUnuranSampler.cxx.
|
overridevirtual |
initialize the generators with the given algorithm If no algorithm is passed used the default one for the type of distribution
Reimplemented from ROOT::Math::DistSampler.
Definition at line 48 of file TUnuranSampler.cxx.
|
overridevirtual |
initialize the generators with the given algorithm If no algorithm is passed used the default one for the type of distribution
Reimplemented from ROOT::Math::DistSampler.
Definition at line 106 of file TUnuranSampler.cxx.
|
inlinevirtual |
Definition at line 198 of file TUnuranSampler.h.
sample one event in multi-dimension by filling the given array return false if sampling failed
Implements ROOT::Math::DistSampler.
Definition at line 277 of file TUnuranSampler.cxx.
|
overridevirtual |
sample one event in one dimension better implementation could be provided by the derived classes
Reimplemented from ROOT::Math::DistSampler.
Definition at line 272 of file TUnuranSampler.cxx.
|
overridevirtual |
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
Reimplemented from ROOT::Math::DistSampler.
Definition at line 285 of file TUnuranSampler.cxx.
|
inlineoverridevirtual |
Set the normalization area of distribution.
Implemented by derived classes if needed
Reimplemented from ROOT::Math::DistSampler.
Definition at line 129 of file TUnuranSampler.h.
|
overridevirtual |
set the cumulative distribution function of the PDF used for random sampling (one dim case)
Reimplemented from ROOT::Math::DistSampler.
Definition at line 312 of file TUnuranSampler.cxx.
|
overridevirtual |
set the Derivative of the PDF used for random sampling (one dim continuous case)
Reimplemented from ROOT::Math::DistSampler.
Definition at line 318 of file TUnuranSampler.cxx.
|
inlineoverridevirtual |
Set the parent function distribution to use for random sampling (one dim case).
Reimplemented from ROOT::Math::DistSampler.
Definition at line 66 of file TUnuranSampler.h.
void TUnuranSampler::SetFunction | ( | TF1 * | ) |
Set the Function using a TF1 pointer.
Definition at line 252 of file TUnuranSampler.cxx.
|
overridevirtual |
Set the mode of the distribution (Multi-dim case).
Reimplemented from ROOT::Math::DistSampler.
Definition at line 294 of file TUnuranSampler.cxx.
|
inlineoverridevirtual |
Set the mode of the distribution (1D case).
It could be useful or needed by some sampling methods. It is implemented by derived classes if needed (e.g. TUnuranSampler)
Reimplemented from ROOT::Math::DistSampler.
Definition at line 115 of file TUnuranSampler.h.
|
inline |
Set the print level (if level=-1 use default)
Definition at line 110 of file TUnuranSampler.h.
|
overridevirtual |
Set the random engine to be used Needs to be called before Init to have effect.
Reimplemented from ROOT::Math::DistSampler.
Definition at line 257 of file TUnuranSampler.cxx.
|
overridevirtual |
Set the random seed for the TRandom instances used by the sampler classes Needs to be called before Init to have effect.
Reimplemented from ROOT::Math::DistSampler.
Definition at line 262 of file TUnuranSampler.cxx.
|
inlineoverridevirtual |
Set using of logarithm of PDF (only for 1D continuous case)
Reimplemented from ROOT::Math::DistSampler.
Definition at line 135 of file TUnuranSampler.h.
|
virtual |
|
inline |
Definition at line 198 of file TUnuranSampler.h.
|
private |
area of dist
Definition at line 191 of file TUnuranSampler.h.
|
private |
CDF function pointer.
Definition at line 194 of file TUnuranSampler.h.
|
private |
flag to indicate if the function is discrete
Definition at line 185 of file TUnuranSampler.h.
|
private |
1D Derivative function pointer
Definition at line 195 of file TUnuranSampler.h.
|
private |
1D function pointer (pdf)
Definition at line 193 of file TUnuranSampler.h.
|
private |
flag to indicate if a area is set
Definition at line 187 of file TUnuranSampler.h.
|
private |
flag to indicate if a mode is set
Definition at line 186 of file TUnuranSampler.h.
|
private |
debug level
Definition at line 189 of file TUnuranSampler.h.
|
private |
mode of dist (1D)
Definition at line 190 of file TUnuranSampler.h.
|
private |
mode of the multi-dim distribution
Definition at line 192 of file TUnuranSampler.h.
|
private |
flag to indicate if the function is 1 dimension
Definition at line 184 of file TUnuranSampler.h.
|
private |
unuran engine class
Definition at line 196 of file TUnuranSampler.h.
|
private |
flag to indicate if we use the log of the PDF
Definition at line 188 of file TUnuranSampler.h.