00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TSPHE
00013 #define ROOT_TSPHE
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef ROOT_TBRIK
00025 #include "TShape.h"
00026 #endif
00027
00028
00029
00030 class TSPHE : public TShape {
00031 private:
00032
00033 mutable Double_t *fSiTab;
00034 mutable Double_t *fCoTab;
00035 mutable Double_t *fCoThetaTab;
00036 Int_t fNdiv;
00037 Int_t fNz;
00038 Float_t fAspectRatio;
00039
00040 protected:
00041 Float_t fRmin;
00042 Float_t fRmax;
00043 Float_t fThemin;
00044 Float_t fThemax;
00045 Float_t fPhimin;
00046 Float_t fPhimax;
00047 Float_t faX;
00048 Float_t faY;
00049 Float_t faZ;
00050
00051 virtual void MakeTableOfCoSin() const;
00052 virtual void SetPoints(Double_t *points) const;
00053
00054 public:
00055 TSPHE();
00056 TSPHE(const char *name, const char *title, const char *material, Float_t rmin, Float_t rmax, Float_t themin,
00057 Float_t themax, Float_t phimin, Float_t phimax);
00058 TSPHE(const char *name, const char *title, const char *material, Float_t rmax);
00059 virtual ~TSPHE();
00060 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
00061 virtual const TBuffer3D &GetBuffer3D(Int_t reqSections) const;
00062 virtual Float_t GetRmin() const {return fRmin;}
00063 virtual Float_t GetRmax() const {return fRmax;}
00064 virtual Float_t GetThemin() const {return fThemin;}
00065 virtual Float_t GetThemax() const {return fThemax;}
00066 virtual Float_t GetPhimin() const {return fPhimin;}
00067 virtual Float_t GetPhimax() const {return fPhimax;}
00068 virtual Float_t GetAspectRatio() const { return fAspectRatio;}
00069 virtual Int_t GetNumberOfDivisions () const {return fNdiv;}
00070 virtual void SetAspectRatio(Float_t factor=1.0){ fAspectRatio = factor; MakeTableOfCoSin();}
00071 virtual void SetEllipse(const Float_t *factors);
00072 virtual void SetNumberOfDivisions (Int_t p);
00073 virtual void Sizeof3D() const;
00074
00075 ClassDef(TSPHE,3)
00076 };
00077
00078 #endif