TGeoArb8
class description - source file - inheritance tree
public:
TGeoArb8 TGeoArb8()
TGeoArb8 TGeoArb8(Double_t dz, Double_t* vertices = 0)
TGeoArb8 TGeoArb8(const char* name, Double_t dz, Double_t* vertices = 0)
TGeoArb8 TGeoArb8(const TGeoArb8&)
virtual void ~TGeoArb8()
static TClass* Class()
virtual void ComputeBBox()
void ComputeTwist()
virtual Bool_t Contains(Double_t* point) const
virtual Double_t DistToIn(Double_t* point, Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const
virtual Double_t DistToOut(Double_t* point, Double_t* dir, Int_t iact = 1, Double_t step = 0, Double_t* safe = 0) const
Double_t DistToPlane(Double_t* point, Double_t* dir, Int_t ipl, Bool_t in) const
virtual Double_t DistToSurf(Double_t* point, Double_t* dir) const
virtual TGeoVolume* Divide(TGeoVolume* voldiv, const char* divname, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step)
virtual Double_t GetAxisRange(Int_t iaxis, Double_t& xlo, Double_t& xhi) const
virtual void GetBoundingCylinder(Double_t* param) const
virtual Int_t GetByteCount() const
Double_t GetDz() const
virtual Int_t GetFittingBox(const TGeoBBox* parambox, TGeoMatrix* mat, Double_t& dx, Double_t& dy, Double_t& dz) const
virtual TGeoShape* GetMakeRuntimeShape(TGeoShape*, TGeoMatrix*) const
Double_t* GetVertices()
virtual void InspectShape() const
virtual TClass* IsA() const
virtual Bool_t IsCylType() const
Bool_t IsTwisted() const
virtual void NextCrossing(TGeoParamCurve* c, Double_t* point) const
virtual Double_t Safety(Double_t* point, Bool_t in = kTRUE) const
virtual void SetDimensions(Double_t* param)
void SetPlaneVertices(Double_t zpl, Double_t* vertices) const
virtual void SetPoints(Double_t* buff) const
virtual void SetPoints(Float_t* buff) const
virtual void SetVertex(Int_t vnum, Double_t x, Double_t y)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Sizeof3D() const
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
protected:
Double_t fDz half length in Z
Double_t* fTwist ! [4] tangents of twist angles
Double_t fXY[8][2] list of vertices
public:
static const TGeoArb8::EGeoArb8Type kArb8Trap
static const TGeoArb8::EGeoArb8Type kArb8Tra
See also
-
TGeoTrap
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.
TGeoArb8()
dummy ctor
TGeoArb8(Double_t dz, Double_t *vertices)
:TGeoBBox(0,0,0)
constructor. If the array of vertices is not null, this should be
in the format : (x0, y0, x1, y1, ... , x7, y7)
TGeoArb8(const char *name, Double_t dz, Double_t *vertices)
:TGeoBBox(name, 0,0,0)
constructor. If the array of vertices is not null, this should be
in the format : (x0, y0, x1, y1, ... , x7, y7)
~TGeoArb8()
destructor
void ComputeBBox()
compute bounding box for a Arb8
void ComputeTwist()
compute tangents of twist angles (angles between projections on XY plane
of corresponding -dz +dz edges). Called after last point [7] was set.
Bool_t Contains(Double_t *point) const
test if point is inside this sphere
first check Z range
Double_t DistToPlane(Double_t *point, Double_t *dir, Int_t ipl, Bool_t in) const
compute distance to plane ipl :
ipl=0 : points 0,4,1,5
ipl=1 : points 1,5,2,6
ipl=2 : points 2,6,3,7
ipl=3 : points 3,7,0,4
Double_t DistToIn(Double_t *point, Double_t *dir, Int_t /*iact*/, Double_t /*step*/, Double_t * /*safe*/) const
compute distance from outside point to surface of the arb8
Double_t DistToOut(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 DistToSurf(Double_t * /*point*/, Double_t * /*dir*/) const
computes the distance to next surface of the sphere along a ray
starting from given point to the given direction.
TGeoVolume* Divide(TGeoVolume *voldiv, const char * /*divname*/, Int_t /*iaxis*/, Int_t /*ndiv*/,
Double_t /*start*/, Double_t /*step*/)
Double_t GetAxisRange(Int_t iaxis, Double_t &xlo, Double_t &xhi) const
void GetBoundingCylinder(Double_t *param) const
--- Fill vector param[4] with the bounding cylinder parameters. The order
is the following : Rmin, Rmax, Phi1, Phi2
--- first compute rmin/rmax
Int_t GetFittingBox(const TGeoBBox *parambox, TGeoMatrix *mat, Double_t &dx, Double_t &dy, Double_t &dz) const
Fills real parameters of a positioned box inside this arb8. Returns 0 if successfull.
void InspectShape() const
print shape parameters
void NextCrossing(TGeoParamCurve * /*c*/, Double_t * /*point*/) const
computes next intersection point of curve c with this shape
Double_t Safety(Double_t * /*point*/, Bool_t /*in*/) const
computes the closest distance from given point to this shape, according
to option. The matching point on the shape is stored in spoint.
void SetPlaneVertices(Double_t zpl, Double_t *vertices) const
compute intersection points between plane at zpl and non-horizontal edges
void SetDimensions(Double_t *param)
set arb8 params in one step :
void SetPoints(Double_t *buff) const
create arb8 mesh points
void SetPoints(Float_t *buff) const
create arb8 mesh points
void SetVertex(Int_t vnum, Double_t x, Double_t y)
set values for a given vertex
void Sizeof3D() const
fill size of this 3-D object
Inline Functions
Int_t GetByteCount() const
Double_t GetDz() const
TGeoShape* GetMakeRuntimeShape(TGeoShape*, TGeoMatrix*) const
Double_t* GetVertices()
Bool_t IsCylType() const
Bool_t IsTwisted() const
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
TGeoArb8 TGeoArb8(const TGeoArb8&)
Author: Andrei Gheata 31/01/02
Last update: root/geom:$Name: $:$Id: TGeoArb8.cxx,v 1.22 2003/03/14 11:49:02 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
ROOT page - Class index - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.