TGeoEltu.h

Go to the documentation of this file.
00001 // @(#)root/geom:$Id: TGeoEltu.h 24879 2008-07-18 08:04:40Z brun $
00002 // Author: Mihaela Gheata   05/06/02
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 
00012 #ifndef ROOT_TGeoEltu
00013 #define ROOT_TGeoEltu
00014 
00015 #ifndef ROOT_TGeoTube
00016 #include "TGeoTube.h"
00017 #endif
00018 
00019 ////////////////////////////////////////////////////////////////////////////
00020 //                                                                        //
00021 // TGeoEltu - elliptical tube  class. An elliptical tube has 3 parameters //
00022 //            A - semi-axis of the ellipse along x                        //
00023 //            B - semi-axis of the ellipse along y                        //
00024 //            dz - half length in z                                       //
00025 //                                                                        //
00026 ////////////////////////////////////////////////////////////////////////////
00027 
00028 class TGeoEltu : public TGeoTube
00029 {
00030 public:
00031    // constructors
00032    TGeoEltu();
00033    TGeoEltu(Double_t a, Double_t b, Double_t dz);
00034    TGeoEltu(const char *name, Double_t a, Double_t b, Double_t dz);
00035    TGeoEltu(Double_t *params);
00036    // destructor
00037    virtual ~TGeoEltu();
00038    // methods
00039    virtual Double_t      Capacity() const;
00040    virtual void          ComputeBBox();
00041    virtual void          ComputeNormal(Double_t *point, Double_t *dir, Double_t *norm);
00042    virtual Bool_t        Contains(Double_t *point) const;
00043    virtual Int_t         DistancetoPrimitive(Int_t px, Int_t py);
00044    virtual Double_t      DistFromInside(Double_t *point, Double_t *dir, Int_t iact=1, 
00045                                    Double_t step=TGeoShape::Big(), Double_t *safe=0) const;
00046    virtual Double_t      DistFromOutside(Double_t *point, Double_t *dir, Int_t iact=1, 
00047                                    Double_t step=TGeoShape::Big(), Double_t *safe=0) const;
00048    virtual TGeoVolume   *Divide(TGeoVolume *voldiv, const char *divname, Int_t iaxis, Int_t ndiv, 
00049                                 Double_t start, Double_t step);
00050    virtual Double_t      GetA() const    {return fRmin;}
00051    virtual Double_t      GetB() const    {return fRmax;}
00052    virtual void          GetBoundingCylinder(Double_t *param) const;
00053    virtual const TBuffer3D &GetBuffer3D(Int_t reqSections, Bool_t localFrame) const;
00054    virtual TGeoShape    *GetMakeRuntimeShape(TGeoShape *mother, TGeoMatrix *mat) const;
00055    virtual void          GetMeshNumbers(Int_t &nvert, Int_t &nsegs, Int_t &npols) const;
00056    virtual Int_t         GetNmeshVertices() const;
00057    virtual Bool_t        GetPointsOnSegments(Int_t /*npoints*/, Double_t * /*array*/) const {return kFALSE;}
00058    virtual void          InspectShape() const;
00059    virtual Bool_t        IsCylType() const {return kTRUE;}
00060    virtual Double_t      Safety(Double_t *point, Bool_t in=kTRUE) const;
00061    virtual void          SavePrimitive(ostream &out, Option_t *option = "");
00062    void                  SetEltuDimensions(Double_t a, Double_t b, Double_t dz);
00063    virtual void          SetDimensions(Double_t *param);
00064    virtual void          SetPoints(Double_t *points) const;
00065    virtual void          SetPoints(Float_t *points) const;
00066 
00067    ClassDef(TGeoEltu, 1)         // elliptical tube class
00068 
00069 };
00070 
00071 
00072 #endif

Generated on Tue Jul 5 14:12:14 2011 for ROOT_528-00b_version by  doxygen 1.5.1