library: libHist #include "TF3.h" |
TF3
class description - source file - inheritance tree (.pdf)
class TF3 : public TF2
public:
TF3()
TF3(const char* name, const char* formula, Double_t xmin = 0, Double_t xmax = 1, Double_t ymin = 0, Double_t ymax = 1, Double_t zmin = 0, Double_t zmax = 1)
TF3(const char* name, void* fcn, Double_t xmin = 0, Double_t xmax = 1, Double_t ymin = 0, Double_t ymax = 1, Double_t zmin = 0, Double_t zmax = 1, Int_t npar = 0)
TF3(const TF3& f3)
virtual ~TF3()
virtual Double_t CentralMoment3(Double_t nx, Double_t ax, Double_t bx, Double_t ny, Double_t ay, Double_t by, Double_t nz, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
static TClass* Class()
virtual void Copy(TObject& f3) const
virtual Double_t Covariance3XY(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
virtual Double_t Covariance3XZ(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
virtual Double_t Covariance3YZ(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
virtual void Draw(Option_t* option = "")
virtual void DrawDerivative(Option_t* = "al")
virtual void DrawIntegral(Option_t* = "al")
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Int_t GetNpz() const
virtual void GetRandom3(Double_t& xrandom, Double_t& yrandom, Double_t& zrandom)
virtual void GetRange(Double_t& xmin, Double_t& xmax) const
virtual void GetRange(Double_t& xmin, Double_t& ymin, Double_t& xmax, Double_t& ymax) const
virtual void GetRange(Double_t& xmin, Double_t& ymin, Double_t& zmin, Double_t& xmax, Double_t& ymax, Double_t& zmax) const
virtual Double_t GetSave(const Double_t* x)
virtual Double_t GetZmax() const
virtual Double_t GetZmin() const
virtual Double_t Integral(Double_t a, Double_t b, const Double_t* params = 0, Double_t epsilon = 0.000001)
virtual Double_t Integral(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t epsilon = 0.000001)
virtual Double_t Integral(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
virtual TClass* IsA() const
virtual Bool_t IsInside(const Double_t* x) const
virtual Double_t Mean3X(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
virtual Double_t Mean3Y(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
virtual Double_t Mean3Z(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
virtual Double_t Moment3(Double_t nx, Double_t ax, Double_t bx, Double_t ny, Double_t ay, Double_t by, Double_t nz, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
TF3& operator=(const TF3& rhs)
virtual void Paint(Option_t* option = "")
virtual void Save(Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax, Double_t zmin, Double_t zmax)
virtual void SavePrimitive(ofstream& out, Option_t* option)
virtual void SetClippingBoxOff()
virtual void SetClippingBoxOn(Double_t xclip = 0, Double_t yclip = 0, Double_t zclip = 0)
virtual void SetNpz(Int_t npz = 30)
virtual void SetRange(Double_t xmin, Double_t xmax)
virtual void SetRange(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax)
virtual void SetRange(Double_t xmin, Double_t ymin, Double_t zmin, Double_t xmax, Double_t ymax, Double_t zmax)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
virtual Double_t Variance3X(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
virtual Double_t Variance3Y(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
virtual Double_t Variance3Z(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
protected:
Double_t fZmin Lower bound for the range in z
Double_t fZmax Upper bound for the range in z
Int_t fNpz Number of points along z used for the graphical representation
a 3-Dim function with parameters
TF3(): TF2()
*-*-*-*-*-*-*-*-*-*-*F3 default constructor*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-* ======================
TF3(const char *name,const char *formula, Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax, Double_t zmin, Double_t zmax)
:TF2(name,formula,xmin,xmax,ymax,ymin)
*-*-*-*-*-*-*F3 constructor using a formula definition*-*-*-*-*-*-*-*-*-*-*
*-* =========================================
*-*
*-* See TFormula constructor for explanation of the formula syntax.
*-*
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
TF3(const char *name,void *fcn, Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax, Double_t zmin, Double_t zmax, Int_t npar)
:TF2(name,fcn,xmin,xmax,ymin,ymax,npar)
*-*-*-*-*-*-*F3 constructor using a pointer to an interpreted function*-*-*
*-* =========================================================
*-*
*-* npar is the number of free parameters used by the function
*-*
*-* Creates a function of type C between xmin and xmax and ymin,ymax.
*-* The function is defined with npar parameters
*-* fcn must be a function of type:
*-* Double_t fcn(Double_t *x, Double_t *params)
*-*
*-* This constructor is called for functions of type C by CINT.
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
TF3(const char *name,Double_t (*fcn)(Double_t *, Double_t *), Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax, Double_t zmin, Double_t zmax, Int_t npar)
:TF2(name,fcn,xmin,xmax,ymin,ymax,npar)
*-*-*-*-*-*-*F3 constructor using a pointer to real function*-*-*-*-*-*-*-*
*-* ===============================================
*-*
*-* npar is the number of free parameters used by the function
*-*
*-* For example, for a 3-dim function with 3 parameters, the user function
*-* looks like:
*-* Double_t fun1(Double_t *x, Double_t *par)
*-* return par[0]*x[2] + par[1]*exp(par[2]*x[0]*x[1]);
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
TF3(const char *name,Double_t (*fcn)(const Double_t *, const Double_t *), Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax, Double_t zmin, Double_t zmax, Int_t npar)
:TF2(name,fcn,xmin,xmax,ymin,ymax,npar)
*-*-*-*-*-*-*F3 constructor using a pointer to real function*-*-*-*-*-*-*-*
*-* ===============================================
*-*
*-* npar is the number of free parameters used by the function
*-*
*-* For example, for a 3-dim function with 3 parameters, the user function
*-* looks like:
*-* Double_t fun1(Double_t *x, Double_t *par)
*-* return par[0]*x[2] + par[1]*exp(par[2]*x[0]*x[1]);
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
~TF3()
*-*-*-*-*-*-*-*-*-*-*F3 default destructor*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-* =====================
TF3(const TF3 &f3) : TF2()
void Copy(TObject &obj) const
*-*-*-*-*-*-*-*-*-*-*Copy this F3 to a new F3*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-* ========================
Int_t DistancetoPrimitive(Int_t px, Int_t py)
*-*-*-*-*-*-*-*-*-*-*Compute distance from point px,py to a function*-*-*-*-*
*-* ===============================================
*-* Compute the closest distance of approach from point px,py to this function.
*-* The distance is computed in pixels units.
*-*
*-* Algorithm:
*-*
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
void Draw(Option_t *option)
*-*-*-*-*-*-*-*-*-*-*Draw this function with its current attributes*-*-*-*-*
*-* ==============================================
void ExecuteEvent(Int_t event, Int_t px, Int_t py)
*-*-*-*-*-*-*-*-*-*-*Execute action corresponding to one event*-*-*-*
*-* =========================================
*-* This member function is called when a F3 is clicked with the locator
*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
void GetRandom3(Double_t &xrandom, Double_t &yrandom, Double_t &zrandom)
*-*-*-*-*-*Return 3 random numbers following this function shape*-*-*-*-*-*
*-* =====================================================
*-*
*-* The distribution contained in this TF3 function is integrated
*-* over the cell contents.
*-* It is normalized to 1.
*-* Getting the three random numbers implies:
*-* - Generating a random number between 0 and 1 (say r1)
*-* - Look in which cell in the normalized integral r1 corresponds to
*-* - make a linear interpolation in the returned cell
*-*
*-*
*-* IMPORTANT NOTE
*-* The integral of the function is computed at fNpx * fNpy * fNpz points.
*-* If the function has sharp peaks, you should increase the number of
*-* points (SetNpx, SetNpy, SetNpz) such that the peak is correctly tabulated
*-* at several points.
void GetRange(Double_t &xmin, Double_t &ymin, Double_t &zmin, Double_t &xmax, Double_t &ymax, Double_t &zmax) const
*-*-*-*-*-*-*-*-*-*-*Return range of function*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-* ========================
Double_t GetSave(const Double_t *xx)
Get value corresponding to X in array of fSave values
Double_t Integral(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon)
Return Integral of a 3d function in range [ax,bx],[ay,by],[az,bz]
Bool_t IsInside(const Double_t *x) const
Return kTRUE is the point is inside the function range
void Paint(Option_t *option)
*-*-*-*-*-*-*-*-*Paint this 3-D function with its current attributes*-*-*-*-*
*-* ===================================================
void SetClippingBoxOff()
Set the function clipping box (for drawing) "off".
void Save(Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax, Double_t zmin, Double_t zmax)
Save values of function in array fSave
void SavePrimitive(ofstream &out, Option_t *option)
Save primitive as a C++ statement(s) on output stream out
void SetClippingBoxOn(Double_t xclip, Double_t yclip, Double_t zclip)
Set the function clipping box (for drawing) "on" and define the clipping box.
xclip, yclip and zclip is a point within the function range. All the
function values having x<=xclip and y<=yclip and z>=zclip are clipped.
void SetNpz(Int_t npz)
Set the number of points used to draw the function
The default number of points along x is 30 for 2-d/3-d functions.
You can increase this value to get a better resolution when drawing
pictures with sharp peaks or to get a better result when using TF3::GetRandom2
the minimum number of points is 4, the maximum is 10000 for 2-d/3-d functions
void SetRange(Double_t xmin, Double_t ymin, Double_t zmin, Double_t xmax, Double_t ymax, Double_t zmax)
*-*-*-*-*-*Initialize the upper and lower bounds to draw the function*-*-*-*
*-* ==========================================================
void Streamer(TBuffer &R__b)
Stream an object of class TF3.
Double_t Moment3(Double_t nx, Double_t ax, Double_t bx, Double_t ny, Double_t ay, Double_t by, Double_t nz, Double_t az, Double_t bz, Double_t epsilon)
Return x^nx * y^ny * z^nz moment of a 3d function in range [ax,bx],[ay,by],[az,bz]
Author: Gene Van Buren <gene@bnl.gov>
Double_t CentralMoment3(Double_t nx, Double_t ax, Double_t bx, Double_t ny, Double_t ay, Double_t by, Double_t nz, Double_t az, Double_t bz, Double_t epsilon)
Return x^nx * y^ny * z^nz central moment of a 3d function in range [ax,bx],[ay,by],[az,bz]
Author: Gene Van Buren <gene@bnl.gov>
Inline Functions
TF3& operator=(const TF3& rhs)
void DrawDerivative(Option_t* = "al")
void DrawIntegral(Option_t* = "al")
Int_t GetNpz() const
void GetRange(Double_t& xmin, Double_t& ymin, Double_t& xmax, Double_t& ymax) const
void GetRange(Double_t& xmin, Double_t& ymin, Double_t& zmin, Double_t& xmax, Double_t& ymax, Double_t& zmax) const
Double_t GetZmin() const
Double_t GetZmax() const
Double_t Integral(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t epsilon = 0.000001)
Double_t Integral(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
void SetRange(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax)
void SetRange(Double_t xmin, Double_t ymin, Double_t zmin, Double_t xmax, Double_t ymax, Double_t zmax)
Double_t Mean3X(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
Double_t Mean3Y(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
Double_t Mean3Z(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
Double_t Variance3X(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
Double_t Variance3Y(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
Double_t Variance3Z(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
Double_t Covariance3XY(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
Double_t Covariance3XZ(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
Double_t Covariance3YZ(Double_t ax, Double_t bx, Double_t ay, Double_t by, Double_t az, Double_t bz, Double_t epsilon = 0.000001)
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void StreamerNVirtual(TBuffer& b)
Author: Rene Brun 27/10/95
Last update: root/hist:$Name: $:$Id: TF3.cxx,v 1.22 2005/08/03 17:40:34 pcanal Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
ROOT page - Class index - Class Hierarchy - Top of the page
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.