00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TPCON
00013 #define ROOT_TPCON
00014
00015
00017
00018
00019
00020
00021
00022
00023
00024
00026
00027 #ifndef ROOT_TShape
00028 #include "TShape.h"
00029 #endif
00030
00031
00032 const Int_t kDiv = 20;
00033
00034
00035 class TPCON : public TShape {
00036
00037 protected:
00038
00039 Double_t *fSiTab;
00040 Double_t *fCoTab;
00041
00042 Float_t fPhi1;
00043 Float_t fDphi1;
00044 Int_t fNdiv;
00045 Int_t fNz;
00046 Float_t *fRmin;
00047 Float_t *fRmax;
00048 Float_t *fDz;
00049
00050 virtual void MakeTableOfCoSin();
00051 virtual void FillTableOfCoSin(Double_t phi, Double_t angstep,Int_t n);
00052 virtual void PaintGLPoints(Float_t *vertex);
00053
00054 public:
00055 TPCON();
00056 TPCON(const char *name, const char *title, const char *material, Float_t phi1, Float_t dphi1, Int_t nz);
00057 virtual ~TPCON();
00058
00059 virtual void DefineSection(Int_t secNum, Float_t z, Float_t rmin, Float_t rmax);
00060 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
00061 virtual Int_t GetNumberOfDivisions () const {if (fNdiv) return fNdiv; else return kDiv;}
00062 virtual Float_t GetPhi1() const {return fPhi1;}
00063 virtual Float_t GetDhi1() const {return fDphi1;}
00064 virtual Int_t GetNz() const {return fNz;}
00065 virtual Float_t *GetRmin() const {return fRmin;}
00066 virtual Float_t *GetRmax() const {return fRmax;}
00067 virtual Float_t *GetDz() const {return fDz;}
00068 virtual Int_t GetNdiv() const {return fNdiv;}
00069 virtual void Paint(Option_t *option);
00070 virtual void SetNumberOfDivisions (Int_t p);
00071 virtual void SetPoints(Float_t *buff);
00072 virtual void Sizeof3D() const;
00073
00074 ClassDef(TPCON,2)
00075 };
00076
00077 #endif