library: libGeom #include "TGeoArb8.h"

# TGeoGtra

class description - source file - inheritance tree (.pdf)

## class TGeoGtra : public TGeoTrap

| Inheritance Chart:
`TObject`
| <- | `TNamed`
| <- | `TGeoShape`
| <- | `TGeoBBox`
| <- | `TGeoArb8`
| <- | `TGeoTrap`
| <- | `TGeoGtra` |

        public:

                             TGeoGtra()
                             TGeoGtra(Double_t dz, Double_t theta, Double_t phi, Double_t twist, Double_t h1, Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2, Double_t tl2, Double_t alpha2)
                             TGeoGtra(const char* name, Double_t dz, Double_t theta, Double_t phi, Double_t twist, Double_t h1, Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2, Double_t tl2, Double_t alpha2)
                             TGeoGtra(const TGeoGtra&)
                     virtual ~TGeoGtra()
              static TClass* Class()
            virtual Double_t DistFromInside(Double_t* point, Double_t* dir, Int_t iact = 1, Double_t step = TGeoShape::Big(), Double_t* safe = 0) const
            virtual Double_t DistFromOutside(Double_t* point, Double_t* dir, Int_t iact = 1, Double_t step = TGeoShape::Big(), Double_t* safe = 0) const
          virtual TGeoShape* GetMakeRuntimeShape(TGeoShape* mother, TGeoMatrix* mat) const
               virtual Int_t GetNmeshVertices() const
                    Double_t GetTwistAngle() const
             virtual TClass* IsA() const
                   TGeoGtra& operator=(const TGeoGtra&)
                virtual void SavePrimitive(ofstream& out, Option_t* option)
                virtual void ShowMembers(TMemberInspector& insp, char* parent)
                virtual void Streamer(TBuffer& b)
                        void StreamerNVirtual(TBuffer& b)

### Data Members

        protected:

          Double_t fTwistAngle  twist angle in degrees

## Class Description

     TGeoArb8 - a arbitrary trapezoid with less than 8 vertices standing on
       two paralel planes perpendicular to Z axis. Parameters :
                - dz - half length in Z;
                - xy[8][2] - vector of (x,y) coordinates of vertices
                   - first four points (xy[i][j], i<4, j<2) are the (x,y)
                     coordinates of the vertices sitting on the -dz plane;
                   - last four points (xy[i][j], i>=4, j<2) are the (x,y)
                     coordinates of the vertices sitting on the +dz plane;
       The order of defining the vertices of an arb8 is the following :
          - point 0 is connected with points 1,3,4
          - point 1 is connected with points 0,2,5
          - point 2 is connected with points 1,3,6
          - point 3 is connected with points 0,2,7
          - point 4 is connected with points 0,5,7
          - point 5 is connected with points 1,4,6
          - point 6 is connected with points 2,5,7
          - point 7 is connected with points 3,4,6
       Points can be identical in order to create shapes with less than
       8 vertices.

TGeoGtra()

     dummy ctor

TGeoGtra(Double_t dz, Double_t theta, Double_t phi, Double_t twist, Double_t h1, Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2, Double_t tl2, Double_t alpha2) :TGeoTrap(dz, theta, phi, h1, bl1, tl1, alpha1, h2, bl2, tl2, alpha2)

     constructor.

TGeoGtra(const char *name, Double_t dz, Double_t theta, Double_t phi, Double_t twist, Double_t h1, Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2, Double_t tl2, Double_t alpha2) :TGeoTrap(name, dz, theta, phi, h1, bl1, tl1, alpha1, h2, bl2, tl2, alpha2)

     constructor.

~TGeoGtra()

     destructor

Double_t DistFromInside(Double_t *point, Double_t *dir, Int_t iact, Double_t step, Double_t *safe) const

     compute distance from inside point to surface of the arb8

Double_t DistFromOutside(Double_t *point, Double_t *dir, Int_t iact, Double_t step, Double_t *safe) const

     compute distance from inside point to surface of the arb8

TGeoShape* GetMakeRuntimeShape(TGeoShape *mother, TGeoMatrix * /*mat*/) const

     in case shape has some negative parameters, these has to be computed
     in order to fit the mother

void SavePrimitive(ofstream &out, Option_t * /*option*/)

     Save a primitive as a C++ statement(s) on output stream "out".

### Inline Functions

                  Int_t GetNmeshVertices() const
               Double_t GetTwistAngle() const
                TClass* Class()
                TClass* IsA() const
                   void ShowMembers(TMemberInspector& insp, char* parent)
                   void Streamer(TBuffer& b)
                   void StreamerNVirtual(TBuffer& b)
               TGeoGtra TGeoGtra(const TGeoGtra&)
              TGeoGtra& operator=(const TGeoGtra&)

Author: Andrei Gheata 31/01/02
Last update: root/geom:$Name: $:$Id: TGeoArb8.cxx,v 1.43 2005/05/13 16:20:38 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *