// ---------------------------------- F3.h #ifndef ROOT_TF3 #define ROOT_TF3 //+SEQ,CopyRight,T=NOINCLUDE. ////////////////////////////////////////////////////////////////////////// // // // TF3 // // // // The Parametric 2-D function // // // ////////////////////////////////////////////////////////////////////////// #ifndef ROOT_TF2 //*KEEP,TF2. #include "TF2.h" //*KEND. #endif class TF3 : public TF2 { protected: Float_t fZmin; //Lower bound for the range in z Float_t fZmax; //Upper bound for the range in z Int_t fNpz; //Number of points along z used for the graphical representation public: TF3(); TF3(const char *name, const char *formula, Float_t xmin=0, Float_t xmax=1, Float_t ymin=0, Float_t ymax=1, Float_t zmin=0, Float_t zmax=1); TF3(const char *name, void *fcn, Float_t xmin=0, Float_t xmax=1, Float_t ymin=0, Float_t ymax=1, Float_t zmin=0, Float_t zmax=1, Int_t npar=0); TF3(const char *name, Double_t (*fcn)(Double_t *, Double_t *), Float_t xmin=0, Float_t xmax=1, Float_t ymin=0, Float_t ymax=1, Float_t zmin=0, Float_t zmax=1, Int_t npar=0); TF3(const TF3 &f3); virtual ~TF3(); virtual void Copy(TObject &f3); virtual Int_t DistancetoPrimitive(Int_t px, Int_t py); virtual void Draw(Option_t *option=""); virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py); Int_t GetNpz() {return fNpz;} virtual void GetRandom3(Float_t &xrandom, Float_t &yrandom, Float_t &zrandom); virtual void GetRange(Float_t &xmin, Float_t &xmax); virtual void GetRange(Float_t &xmin, Float_t &ymin, Float_t &xmax, Float_t &ymax); virtual void GetRange(Float_t &xmin, Float_t &ymin, Float_t &zmin, Float_t &xmax, Float_t &ymax, Float_t &zmax); virtual Float_t GetZmin() {return fZmin;} virtual Float_t GetZmax() {return fZmax;} virtual Double_t Integral(Float_t a, Float_t b, Double_t *params=0, Float_t epsilon=0.000001) {return TF1::Integral(a,b,params,epsilon);} virtual Double_t Integral(Float_t ax, Float_t bx, Float_t ay, Float_t by, Float_t epsilon=0.000001) {return TF1::Integral(ax,bx,ay,by,epsilon);} virtual Double_t Integral(Float_t ax, Float_t bx, Float_t ay, Float_t by, Float_t az, Float_t bz, Float_t epsilon=0.000001); virtual void Paint(Option_t *option=""); virtual void SetNpz(Int_t npz=30); virtual void SetRange(Float_t xmin, Float_t xmax); virtual void SetRange(Float_t xmin, Float_t ymin, Float_t xmax, Float_t ymax); virtual void SetRange(Float_t xmin, Float_t ymin, Float_t zmin, Float_t xmax, Float_t ymax, Float_t zmax); // *MENU* ClassDef(TF3,1) //The Parametric 3-D function }; inline void TF3::GetRange(Float_t &xmin, Float_t &xmax) { TF2::GetRange(xmin, xmax); } inline void TF3::GetRange(Float_t &xmin, Float_t &ymin, Float_t &xmax, Float_t &ymax) { TF2::GetRange(xmin, ymin, xmax, ymax); } inline void TF3::SetRange(Float_t xmin, Float_t xmax) { TF2::SetRange(xmin, xmax); } inline void TF3::SetRange(Float_t xmin, Float_t ymin, Float_t xmax, Float_t ymax) { TF2::SetRange(xmin, ymin, xmax, ymax); } #endif