class TUnuranEmpDist: public TUnuranBaseDist


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.



Function Members (Methods)

public:
TUnuranEmpDist(const TUnuranEmpDist&)
TUnuranEmpDist(const TH1* h1 = 0, bool useBuffer = true)
TUnuranEmpDist(unsigned int n, double* x)
TUnuranEmpDist(unsigned int n, double* x, double* y)
TUnuranEmpDist(double* begin, double* end, unsigned int dim = 1)
TUnuranEmpDist(unsigned int n, double* x, double* y, double* z)
virtual~TUnuranEmpDist()
static TClass*Class()
virtual TUnuranEmpDist*Clone() const
const vector<double>&Data() const
virtual TClass*IsA() const
boolIsBinned() const
doubleLowerBin() const
unsigned intNDim() const
TUnuranEmpDist&operator=(const TUnuranEmpDist& rhs)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
doubleUpperBin() const

Data Members

private:
boolfBinnedflag for binned/unbinned data
vector<double>fDatapointer to the data vector (used for generation from un-binned data)
unsigned intfDimdata dimensionality
doublefMaxmax values (used in the binned case)
doublefMinmin values (used in the binned case)

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

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

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,...

{}
TUnuranEmpDist(unsigned int n, double * x)
Constructor from a set of 1D data

TUnuranEmpDist(unsigned int n, double * x, double * y)
Constructor from a set of 2D data

TUnuranEmpDist(unsigned int n, double* x, double* y, double* z)
Constructor from a set of 3D data

virtual ~TUnuranEmpDist()
Destructor (no operations)

{}
TUnuranEmpDist(const TUnuranEmpDist& )
Copy constructor

TUnuranEmpDist * Clone()
Clone (required by base class)

{ return new TUnuranEmpDist(*this); }
const std::vector<double> & Data()
Return reference to data vector (unbinned or binned data)

{ return fData; }
bool IsBinned()
Flag to control if data are binned

{ return fBinned; }
double LowerBin()
Min value of binned data
(return 0 for unbinned data)

{ return fMin; }
double UpperBin()
upper value of binned data
(return 0 for unbinned data)

{ return fMax; }
unsigned int NDim()
Number of data dimensions

{ return fDim; }

Last update: root/unuran:$Id: TUnuranEmpDist.h 21526 2007-12-20 10:42:41Z moneta $
Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT *

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.