Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TGeoEltu.h
Go to the documentation of this file.
1 // @(#)root/geom:$Id$
2 // Author: Mihaela Gheata 05/06/02
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TGeoEltu
13 #define ROOT_TGeoEltu
14 
15 #include "TGeoTube.h"
16 
17 class TGeoEltu : public TGeoTube
18 {
19 public:
20  // constructors
21  TGeoEltu();
22  TGeoEltu(Double_t a, Double_t b, Double_t dz);
23  TGeoEltu(const char *name, Double_t a, Double_t b, Double_t dz);
24  TGeoEltu(Double_t *params);
25  // destructor
26  virtual ~TGeoEltu();
27  // methods
28  virtual Double_t Capacity() const;
29  virtual void ComputeBBox();
30  virtual void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm);
31  virtual void ComputeNormal_v(const Double_t *points, const Double_t *dirs, Double_t *norms, Int_t vecsize);
32  virtual Bool_t Contains(const Double_t *point) const;
33  virtual void Contains_v(const Double_t *points, Bool_t *inside, Int_t vecsize) const;
34  virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
35  virtual Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1,
36  Double_t step=TGeoShape::Big(), Double_t *safe=0) const;
37  virtual void DistFromInside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const;
38  virtual Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1,
39  Double_t step=TGeoShape::Big(), Double_t *safe=0) const;
40  virtual void DistFromOutside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const;
41  virtual TGeoVolume *Divide(TGeoVolume *voldiv, const char *divname, Int_t iaxis, Int_t ndiv,
42  Double_t start, Double_t step);
43  virtual Double_t GetA() const {return fRmin;}
44  virtual Double_t GetB() const {return fRmax;}
45  virtual void GetBoundingCylinder(Double_t *param) const;
46  virtual const TBuffer3D &GetBuffer3D(Int_t reqSections, Bool_t localFrame) const;
47  virtual TGeoShape *GetMakeRuntimeShape(TGeoShape *mother, TGeoMatrix *mat) const;
48  virtual void GetMeshNumbers(Int_t &nvert, Int_t &nsegs, Int_t &npols) const;
49  virtual Int_t GetNmeshVertices() const;
50  virtual Bool_t GetPointsOnSegments(Int_t /*npoints*/, Double_t * /*array*/) const {return kFALSE;}
51  virtual void InspectShape() const;
52  virtual Bool_t IsCylType() const {return kTRUE;}
53  virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const;
54  virtual void Safety_v(const Double_t *points, const Bool_t *inside, Double_t *safe, Int_t vecsize) const;
55  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
56  void SetEltuDimensions(Double_t a, Double_t b, Double_t dz);
57  virtual void SetDimensions(Double_t *param);
58  virtual void SetPoints(Double_t *points) const;
59  virtual void SetPoints(Float_t *points) const;
60 
61  ClassDef(TGeoEltu, 1) // elliptical tube class
62 
63 };
64 
65 
66 #endif