ROOT
6.06/09
Reference Guide
|
TUnuranEmpDist class for describing empiral distributions.
It is used by TUnuran to generate double random number according to this distribution via TUnuran::Sample() or TUnuran::Sample(double *) in case of multi-dimensional empirical distributions.
An empirical distribution can be one or multi-dimension constructed from a set of unbinned data, (the class can be constructed from an iterator to a vector of data) or by using an histogram (with apointer to the TH1 class). If the histogram contains a buffer with the original data they are used by default to estimate the empirical distribution, othewise the bins information is used. In this binned case only one dimension is now supported.
In the case of unbinned data the density distribution is estimated by UNURAN using kernel smoothing and then random numbers are generated. In the case of bin data (which can only be one dimension) the probability density is estimated directly from the histograms and the random numbers are generated according to the histogram (like in TH1::GetRandom). This method requires some initialization time but it is faster in generating the random numbers than TH1::GetRandom and it becomes convenient to use when generating a large amount of data.
Definition at line 51 of file TUnuranEmpDist.h.
Public Member Functions | |
TUnuranEmpDist (const TH1 *h1=0, bool useBuffer=true) | |
Constructor from a TH1 objects. More... | |
template<class Iterator > | |
TUnuranEmpDist (Iterator begin, Iterator end, unsigned int dim=1) | |
Constructor from a set of data using an iterator to specify begin/end of the data In the case of multi-dimension the data are assumed to be passed in this order x0,y0,...x1,y1,..x2,y2,... More... | |
TUnuranEmpDist (unsigned int n, double *x) | |
Constructor from a set of 1D data. More... | |
TUnuranEmpDist (unsigned int n, double *x, double *y) | |
Constructor from a set of 2D data. More... | |
TUnuranEmpDist (unsigned int n, double *x, double *y, double *z) | |
Constructor from a set of 3D data. More... | |
virtual | ~TUnuranEmpDist () |
Destructor (no operations) More... | |
TUnuranEmpDist (const TUnuranEmpDist &) | |
Copy constructor. More... | |
TUnuranEmpDist & | operator= (const TUnuranEmpDist &rhs) |
Assignment operator. More... | |
TUnuranEmpDist * | Clone () const |
Clone (required by base class) More... | |
const std::vector< double > & | Data () const |
Return reference to data vector (unbinned or binned data) More... | |
bool | IsBinned () const |
Flag to control if data are binned. More... | |
double | LowerBin () const |
Min value of binned data (return 0 for unbinned data) More... | |
double | UpperBin () const |
upper value of binned data (return 0 for unbinned data) More... | |
unsigned int | NDim () const |
Number of data dimensions. More... | |
Public Member Functions inherited from TUnuranBaseDist | |
virtual | ~TUnuranBaseDist () |
Destructor (no operations) More... | |
Private Attributes | |
std::vector< double > | fData |
unsigned int | fDim |
double | fMin |
double | fMax |
bool | fBinned |
#include <TUnuranEmpDist.h>
TUnuranEmpDist::TUnuranEmpDist | ( | const TH1 * | h1 = 0 , |
bool | useBuffer = true |
||
) |
Constructor from a TH1 objects.
If the histogram has a buffer by default the unbinned data are used
Definition at line 21 of file TUnuranEmpDist.cxx.
Referenced by Clone().
|
inline |
Constructor from a set of data using an iterator to specify begin/end of the data In the case of multi-dimension the data are assumed to be passed in this order x0,y0,...x1,y1,..x2,y2,...
Definition at line 68 of file TUnuranEmpDist.h.
TUnuranEmpDist::TUnuranEmpDist | ( | unsigned int | n, |
double * | x | ||
) |
Constructor from a set of 1D data.
Definition at line 63 of file TUnuranEmpDist.cxx.
Constructor from a set of 2D data.
Definition at line 72 of file TUnuranEmpDist.cxx.
Constructor from a set of 3D data.
Definition at line 85 of file TUnuranEmpDist.cxx.
|
inlinevirtual |
Destructor (no operations)
Definition at line 93 of file TUnuranEmpDist.h.
TUnuranEmpDist::TUnuranEmpDist | ( | const TUnuranEmpDist & | rhs | ) |
Copy constructor.
Definition at line 101 of file TUnuranEmpDist.cxx.
|
inlinevirtual |
Clone (required by base class)
Implements TUnuranBaseDist.
Definition at line 110 of file TUnuranEmpDist.h.
Referenced by TUnuran::Init().
|
inline |
Return reference to data vector (unbinned or binned data)
Definition at line 116 of file TUnuranEmpDist.h.
Referenced by TUnuran::SetEmpiricalDistribution().
|
inline |
Flag to control if data are binned.
Definition at line 121 of file TUnuranEmpDist.h.
Referenced by TUnuran::Init(), and TUnuran::SetEmpiricalDistribution().
|
inline |
Min value of binned data (return 0 for unbinned data)
Definition at line 127 of file TUnuranEmpDist.h.
Referenced by TUnuran::SetEmpiricalDistribution().
|
inline |
Number of data dimensions.
Definition at line 138 of file TUnuranEmpDist.h.
Referenced by TUnuran::Init(), and TUnuran::SetEmpiricalDistribution().
TUnuranEmpDist & TUnuranEmpDist::operator= | ( | const TUnuranEmpDist & | rhs | ) |
Assignment operator.
Definition at line 108 of file TUnuranEmpDist.cxx.
Referenced by TUnuranEmpDist().
|
inline |
upper value of binned data (return 0 for unbinned data)
Definition at line 133 of file TUnuranEmpDist.h.
Referenced by TUnuran::SetEmpiricalDistribution().
|
private |
Definition at line 147 of file TUnuranEmpDist.h.
Referenced by IsBinned(), operator=(), and TUnuranEmpDist().
|
private |
Definition at line 143 of file TUnuranEmpDist.h.
Referenced by Data(), operator=(), and TUnuranEmpDist().
|
private |
Definition at line 144 of file TUnuranEmpDist.h.
Referenced by NDim(), operator=(), and TUnuranEmpDist().
|
private |
Definition at line 146 of file TUnuranEmpDist.h.
Referenced by operator=(), TUnuranEmpDist(), and UpperBin().
|
private |
Definition at line 145 of file TUnuranEmpDist.h.
Referenced by LowerBin(), operator=(), and TUnuranEmpDist().