Logo ROOT   6.16/01
Reference Guide
TGeoArb8.h
Go to the documentation of this file.
1// @(#)root/geom:$Id$
2// Author: Andrei Gheata 24/10/01
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_TGeoArb8
13#define ROOT_TGeoArb8
14
15#include "TGeoBBox.h"
16
17class TGeoArb8 : public TGeoBBox
18{
19protected:
21// kArb8Trd1 = BIT(25), // trd1 type
22// kArb8Trd2 = BIT(26), // trd2 type
23 kArb8Trap = BIT(27), // planar surface trapezoid
24 kArb8Tra = BIT(28) // general twisted trapezoid
25 };
26 // data members
27 Double_t fDz; // half length in Z
28 Double_t *fTwist; //! [4] tangents of twist angles
29 Double_t fXY[8][2]; // list of vertices
30
31 TGeoArb8(const TGeoArb8&);
33
34public:
35 // constructors
36 TGeoArb8();
37 TGeoArb8(Double_t dz, Double_t *vertices=0);
38 TGeoArb8(const char *name, Double_t dz, Double_t *vertices=0);
39 // destructor
40 virtual ~TGeoArb8();
41 // methods
42 virtual Double_t Capacity() const;
43 virtual void ComputeBBox();
44 virtual void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm);
45 virtual void ComputeNormal_v(const Double_t *points, const Double_t *dirs, Double_t *norms, Int_t vecsize);
46 void ComputeTwist();
47 virtual Bool_t Contains(const Double_t *point) const;
48 virtual void Contains_v(const Double_t *points, Bool_t *inside, Int_t vecsize) const;
49 Double_t DistToPlane(const Double_t *point, const Double_t *dir, Int_t ipl, Bool_t in) const;
50 virtual Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1,
51 Double_t step=TGeoShape::Big(), Double_t *safe=0) const;
52 virtual void DistFromInside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const;
53 virtual Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1,
54 Double_t step=TGeoShape::Big(), Double_t *safe=0) const;
55 virtual void DistFromOutside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const;
56 virtual TGeoVolume *Divide(TGeoVolume *voldiv, const char *divname, Int_t iaxis, Int_t ndiv,
57 Double_t start, Double_t step);
58 virtual Double_t GetAxisRange(Int_t iaxis, Double_t &xlo, Double_t &xhi) const;
59 virtual void GetBoundingCylinder(Double_t *param) const;
60 virtual Int_t GetByteCount() const {return 100;}
61 Double_t GetClosestEdge(const Double_t *point, Double_t *vert, Int_t &isegment) const;
62 virtual Bool_t GetPointsOnFacet(Int_t /*index*/, Int_t /*npoints*/, Double_t * /*array*/) const;
63 Double_t GetDz() const {return fDz;}
64 virtual Int_t GetFittingBox(const TGeoBBox *parambox, TGeoMatrix *mat, Double_t &dx, Double_t &dy, Double_t &dz) const;
65 virtual TGeoShape *GetMakeRuntimeShape(TGeoShape * /*mother*/, TGeoMatrix * /*mat*/) const {return 0;}
66 static void GetPlaneNormal(Double_t *p1, Double_t *p2, Double_t *p3, Double_t *norm);
67 Double_t *GetVertices() {return &fXY[0][0];}
68 Double_t GetTwist(Int_t iseg) const;
69 virtual Bool_t IsCylType() const {return kFALSE;}
70 static Bool_t IsSamePoint(const Double_t *p1, const Double_t *p2) {return (TMath::Abs(p1[0]-p2[0])<1.E-16 && TMath::Abs(p1[1]-p2[1])<1.E-16)?kTRUE:kFALSE;}
72 virtual void InspectShape() const;
73 Bool_t IsTwisted() const {return (fTwist==0)?kFALSE:kTRUE;}
74 Double_t SafetyToFace(const Double_t *point, Int_t iseg, Bool_t in) const;
75 virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const;
76 virtual void Safety_v(const Double_t *points, const Bool_t *inside, Double_t *safe, Int_t vecsize) const;
77 virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
78 void SetPlaneVertices(Double_t zpl, Double_t *vertices) const;
79 virtual void SetVertex(Int_t vnum, Double_t x, Double_t y);
80 virtual void SetDimensions(Double_t *param);
81 void SetDz(Double_t dz) {fDz = dz;}
82 virtual void SetPoints(Double_t *points) const;
83 virtual void SetPoints(Float_t *points) const;
84 virtual void Sizeof3D() const;
85
86 ClassDef(TGeoArb8, 1) // arbitrary trapezoid with 8 vertices
87};
88
89class TGeoTrap : public TGeoArb8
90{
91protected:
92 // data members
93 Double_t fTheta; // theta angle
94 Double_t fPhi; // phi angle
95 Double_t fH1; // half length in y at low z
96 Double_t fBl1; // half length in x at low z and y low edge
97 Double_t fTl1; // half length in x at low z and y high edge
98 Double_t fAlpha1;// angle between centers of x edges an y axis at low z
99 Double_t fH2; // half length in y at high z
100 Double_t fBl2; // half length in x at high z and y low edge
101 Double_t fTl2; // half length in x at high z and y high edge
102 Double_t fAlpha2;// angle between centers of x edges an y axis at low z
103
104public:
105 // constructors
106 TGeoTrap();
107 TGeoTrap(Double_t dz, Double_t theta, Double_t phi);
109 Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2,
110 Double_t tl2, Double_t alpha2);
111 TGeoTrap(const char *name, Double_t dz, Double_t theta, Double_t phi, Double_t h1,
112 Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2,
113 Double_t tl2, Double_t alpha2);
114 // destructor
115 virtual ~TGeoTrap();
116 virtual Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1,
117 Double_t step=TGeoShape::Big(), Double_t *safe=0) const;
118 virtual void DistFromInside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const;
119 virtual Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1,
120 Double_t step=TGeoShape::Big(), Double_t *safe=0) const;
121 virtual void DistFromOutside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const;
122 virtual TGeoVolume *Divide(TGeoVolume *voldiv, const char *divname, Int_t iaxis, Int_t ndiv,
123 Double_t start, Double_t step);
124 Double_t GetTheta() const {return fTheta;}
125 Double_t GetPhi() const {return fPhi;}
126 Double_t GetH1() const {return fH1;}
127 Double_t GetBl1() const {return fBl1;}
128 Double_t GetTl1() const {return fTl1;}
129 Double_t GetAlpha1() const {return fAlpha1;}
130 Double_t GetH2() const {return fH2;}
131 Double_t GetBl2() const {return fBl2;}
132 Double_t GetTl2() const {return fTl2;}
133 Double_t GetAlpha2() const {return fAlpha2;}
134 virtual TGeoShape *GetMakeRuntimeShape(TGeoShape *mother, TGeoMatrix *mat) const;
135 virtual void SetDimensions(Double_t *param);
136 virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const;
137 virtual void Safety_v(const Double_t *points, const Bool_t *inside, Double_t *safe, Int_t vecsize) const;
138 virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
139
140 ClassDef(TGeoTrap, 1) // G3 TRAP shape
141};
142
143class TGeoGtra : public TGeoTrap
144{
145protected:
146 // data members
147 Double_t fTwistAngle; // twist angle in degrees
148public:
149 // constructors
150 TGeoGtra();
151 TGeoGtra(Double_t dz, Double_t theta, Double_t phi, Double_t twist, Double_t h1,
152 Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2,
153 Double_t tl2, Double_t alpha2);
154 TGeoGtra(const char *name, Double_t dz, Double_t theta, Double_t phi, Double_t twist, Double_t h1,
155 Double_t bl1, Double_t tl1, Double_t alpha1, Double_t h2, Double_t bl2,
156 Double_t tl2, Double_t alpha2);
157 // destructor
158 virtual ~TGeoGtra();
159 virtual Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1,
160 Double_t step=TGeoShape::Big(), Double_t *safe=0) const;
161 virtual void DistFromInside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const;
162 virtual Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1,
163 Double_t step=TGeoShape::Big(), Double_t *safe=0) const;
164 virtual void DistFromOutside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const;
165 virtual TGeoShape *GetMakeRuntimeShape(TGeoShape *mother, TGeoMatrix *mat) const;
167 virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const;
168 virtual void Safety_v(const Double_t *points, const Bool_t *inside, Double_t *safe, Int_t vecsize) const;
169 virtual void SetDimensions(Double_t *param);
170 virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
171
172 ClassDef(TGeoGtra, 1) // G3 GTRA shape
173};
174
175#endif
static double p3(double t, double a, double b, double c, double d)
static double p1(double t, double a, double b)
static double p2(double t, double a, double b, double c)
int Int_t
Definition: RtypesCore.h:41
const Bool_t kFALSE
Definition: RtypesCore.h:88
bool Bool_t
Definition: RtypesCore.h:59
double Double_t
Definition: RtypesCore.h:55
float Float_t
Definition: RtypesCore.h:53
const Bool_t kTRUE
Definition: RtypesCore.h:87
const char Option_t
Definition: RtypesCore.h:62
#define ClassDef(name, id)
Definition: Rtypes.h:324
#define BIT(n)
Definition: Rtypes.h:82
point * points
Definition: X3DBuffer.c:22
An arbitrary trapezoid with less than 8 vertices standing on two parallel planes perpendicular to Z a...
Definition: TGeoArb8.h:18
TGeoArb8 & operator=(const TGeoArb8 &)
Assignment operator.
Definition: TGeoArb8.cxx:223
virtual void SetVertex(Int_t vnum, Double_t x, Double_t y)
Set values for a given vertex.
Definition: TGeoArb8.cxx:1248
virtual Bool_t IsCylType() const
Definition: TGeoArb8.h:69
virtual Bool_t GetPointsOnFacet(Int_t, Int_t, Double_t *) const
Fills array with n random points located on the surface of indexed facet.
Definition: TGeoArb8.cxx:958
virtual TGeoVolume * Divide(TGeoVolume *voldiv, const char *divname, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step)
Divide this shape along one axis.
Definition: TGeoArb8.cxx:826
Double_t GetDz() const
Definition: TGeoArb8.h:63
Double_t GetClosestEdge(const Double_t *point, Double_t *vert, Int_t &isegment) const
Get index of the edge of the quadrilater represented by vert closest to point.
Definition: TGeoArb8.cxx:395
virtual Double_t GetAxisRange(Int_t iaxis, Double_t &xlo, Double_t &xhi) const
Get shape range on a given axis.
Definition: TGeoArb8.cxx:836
Double_t fXY[8][2]
[4] tangents of twist angles
Definition: TGeoArb8.h:29
virtual void DistFromInside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const
Compute distance from array of input points having directions specified by dirs. Store output in dist...
Definition: TGeoArb8.cxx:1306
virtual Int_t GetByteCount() const
Definition: TGeoArb8.h:60
virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const
Computes the closest distance from given point to this shape.
Definition: TGeoArb8.cxx:1049
virtual ~TGeoArb8()
Destructor.
Definition: TGeoArb8.cxx:240
void SetDz(Double_t dz)
Definition: TGeoArb8.h:81
static void GetPlaneNormal(Double_t *p1, Double_t *p2, Double_t *p3, Double_t *norm)
Computes normal to plane defined by P1, P2 and P3.
Definition: TGeoArb8.cxx:930
virtual Bool_t Contains(const Double_t *point) const
Test if point is inside this shape.
Definition: TGeoArb8.cxx:527
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoArb8.cxx:1166
virtual void SetPoints(Double_t *points) const
Creates arb8 mesh points.
Definition: TGeoArb8.cxx:1224
virtual Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=0) const
Computes distance from outside point to surface of the shape.
Definition: TGeoArb8.cxx:672
void ComputeTwist()
Computes tangents of twist angles (angles between projections on XY plane of corresponding -dz +dz ed...
Definition: TGeoArb8.cxx:291
virtual void Sizeof3D() const
Fill size of this 3-D object.
Definition: TGeoArb8.cxx:1265
virtual Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=0) const
Compute distance from inside point to surface of the shape.
Definition: TGeoArb8.cxx:700
Double_t DistToPlane(const Double_t *point, const Double_t *dir, Int_t ipl, Bool_t in) const
Computes distance to plane ipl :
Definition: TGeoArb8.cxx:551
virtual void ComputeNormal_v(const Double_t *points, const Double_t *dirs, Double_t *norms, Int_t vecsize)
Compute the normal for an array o points so that norm.dot.dir is positive Input: Arrays of point coor...
Definition: TGeoArb8.cxx:1298
static Bool_t InsidePolygon(Double_t x, Double_t y, Double_t *pts)
Finds if a point in XY plane is inside the polygon defines by PTS.
Definition: TGeoArb8.cxx:1014
virtual void ComputeBBox()
Computes bounding box for an Arb8 shape.
Definition: TGeoArb8.cxx:265
virtual void Safety_v(const Double_t *points, const Bool_t *inside, Double_t *safe, Int_t vecsize) const
Compute safe distance from each of the points in the input array.
Definition: TGeoArb8.cxx:1324
Double_t fDz
Definition: TGeoArb8.h:27
EGeoArb8Type
Definition: TGeoArb8.h:20
@ kArb8Trap
Definition: TGeoArb8.h:23
@ kArb8Tra
Definition: TGeoArb8.h:24
Double_t * fTwist
Definition: TGeoArb8.h:28
virtual Double_t Capacity() const
Computes capacity of the shape in [length^3].
Definition: TGeoArb8.cxx:248
Double_t SafetyToFace(const Double_t *point, Int_t iseg, Bool_t in) const
Estimate safety to lateral plane defined by segment iseg in range [0,3] Might be negative: plane seen...
Definition: TGeoArb8.cxx:1127
Bool_t IsTwisted() const
Definition: TGeoArb8.h:73
Double_t * GetVertices()
Definition: TGeoArb8.h:67
TGeoArb8()
Default constructor.
Definition: TGeoArb8.cxx:145
virtual void ComputeNormal(const Double_t *point, const Double_t *dir, Double_t *norm)
Compute normal to closest surface from POINT.
Definition: TGeoArb8.cxx:462
virtual void GetBoundingCylinder(Double_t *param) const
Fill vector param[4] with the bounding cylinder parameters.
Definition: TGeoArb8.cxx:854
Double_t GetTwist(Int_t iseg) const
Get twist for segment I in range [0,3].
Definition: TGeoArb8.cxx:383
static Bool_t IsSamePoint(const Double_t *p1, const Double_t *p2)
Definition: TGeoArb8.h:70
virtual void SetDimensions(Double_t *param)
Set all arb8 params in one step.
Definition: TGeoArb8.cxx:1210
void SetPlaneVertices(Double_t zpl, Double_t *vertices) const
Computes intersection points between plane at zpl and non-horizontal edges.
Definition: TGeoArb8.cxx:1194
virtual TGeoShape * GetMakeRuntimeShape(TGeoShape *, TGeoMatrix *) const
In case shape has some negative parameters, these has to be computed in order to fit the mother.
Definition: TGeoArb8.h:65
virtual void Contains_v(const Double_t *points, Bool_t *inside, Int_t vecsize) const
Check the inside status for each of the points in the array.
Definition: TGeoArb8.cxx:1288
virtual void DistFromOutside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const
Compute distance from array of input points having directions specified by dirs. Store output in dist...
Definition: TGeoArb8.cxx:1314
virtual void InspectShape() const
Prints shape parameters.
Definition: TGeoArb8.cxx:1034
virtual 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 successful.
Definition: TGeoArb8.cxx:873
Box class.
Definition: TGeoBBox.h:18
Gtra is a twisted trapezoid.
Definition: TGeoArb8.h:144
virtual void Safety_v(const Double_t *points, const Bool_t *inside, Double_t *safe, Int_t vecsize) const
Compute safe distance from each of the points in the input array.
Definition: TGeoArb8.cxx:2122
virtual ~TGeoGtra()
Destructor.
Definition: TGeoArb8.cxx:1945
Double_t fTwistAngle
Definition: TGeoArb8.h:147
virtual 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.
Definition: TGeoArb8.cxx:1983
virtual Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=0) const
Compute distance from inside point to surface of the shape.
Definition: TGeoArb8.cxx:1967
TGeoGtra()
Default ctor.
Definition: TGeoArb8.cxx:1858
virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const
Computes the closest distance from given point to this shape.
Definition: TGeoArb8.cxx:2023
virtual void DistFromInside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const
Compute distance from array of input points having directions specified by dirs. Store output in dist...
Definition: TGeoArb8.cxx:2104
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoArb8.cxx:2031
virtual Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=0) const
Compute distance from inside point to surface of the shape.
Definition: TGeoArb8.cxx:1952
Double_t GetTwistAngle() const
Definition: TGeoArb8.h:166
virtual void SetDimensions(Double_t *param)
Set all arb8 params in one step.
Definition: TGeoArb8.cxx:2066
virtual void DistFromOutside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const
Compute distance from array of input points having directions specified by dirs. Store output in dist...
Definition: TGeoArb8.cxx:2112
Geometrical transformation package.
Definition: TGeoMatrix.h:41
Base abstract class for all shapes.
Definition: TGeoShape.h:26
static Double_t Big()
Definition: TGeoShape.h:88
TRAP is a general trapezoid, i.e.
Definition: TGeoArb8.h:90
Double_t fTl2
Definition: TGeoArb8.h:101
Double_t GetTl1() const
Definition: TGeoArb8.h:128
virtual void DistFromOutside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const
Compute distance from array of input points having directions specified by dirs. Store output in dist...
Definition: TGeoArb8.cxx:1838
Double_t GetPhi() const
Definition: TGeoArb8.h:125
Double_t fBl2
Definition: TGeoArb8.h:100
virtual TGeoVolume * Divide(TGeoVolume *voldiv, const char *divname, Int_t iaxis, Int_t ndiv, Double_t start, Double_t step)
Divide this trapezoid shape belonging to volume "voldiv" into ndiv volumes called divname,...
Definition: TGeoArb8.cxx:1619
Double_t fAlpha2
Definition: TGeoArb8.h:102
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoArb8.cxx:1761
Double_t fBl1
Definition: TGeoArb8.h:96
Double_t fH1
Definition: TGeoArb8.h:95
virtual TGeoShape * GetMakeRuntimeShape(TGeoShape *mother, TGeoMatrix *mat) const
In case shape has some negative parameters, these have to be computed in order to fit the mother.
Definition: TGeoArb8.cxx:1667
Double_t fPhi
Definition: TGeoArb8.h:94
virtual void Safety_v(const Double_t *points, const Bool_t *inside, Double_t *safe, Int_t vecsize) const
Compute safe distance from each of the points in the input array.
Definition: TGeoArb8.cxx:1848
Double_t GetAlpha2() const
Definition: TGeoArb8.h:133
virtual Double_t DistFromInside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=0) const
Compute distance from inside point to surface of the trapezoid.
Definition: TGeoArb8.cxx:1447
Double_t GetTheta() const
Definition: TGeoArb8.h:124
virtual void SetDimensions(Double_t *param)
Set all arb8 params in one step.
Definition: TGeoArb8.cxx:1794
TGeoTrap()
Default ctor.
Definition: TGeoArb8.cxx:1334
Double_t fTl1
Definition: TGeoArb8.h:97
virtual ~TGeoTrap()
Destructor.
Definition: TGeoArb8.cxx:1440
Double_t fH2
Definition: TGeoArb8.h:99
Double_t GetAlpha1() const
Definition: TGeoArb8.h:129
Double_t GetBl2() const
Definition: TGeoArb8.h:131
Double_t GetTl2() const
Definition: TGeoArb8.h:132
Double_t GetH1() const
Definition: TGeoArb8.h:126
Double_t fTheta
Definition: TGeoArb8.h:93
virtual Double_t Safety(const Double_t *point, Bool_t in=kTRUE) const
Computes the closest distance from given point to this shape.
Definition: TGeoArb8.cxx:1702
virtual void DistFromInside_v(const Double_t *points, const Double_t *dirs, Double_t *dists, Int_t vecsize, Double_t *step) const
Compute distance from array of input points having directions specified by dirs. Store output in dist...
Definition: TGeoArb8.cxx:1830
Double_t fAlpha1
Definition: TGeoArb8.h:98
Double_t GetH2() const
Definition: TGeoArb8.h:130
Double_t GetBl1() const
Definition: TGeoArb8.h:127
virtual Double_t DistFromOutside(const Double_t *point, const Double_t *dir, Int_t iact=1, Double_t step=TGeoShape::Big(), Double_t *safe=0) const
Compute distance from outside point to surface of the trapezoid.
Definition: TGeoArb8.cxx:1500
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
Definition: TGeoVolume.h:53
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17
TH1F * h1
Definition: legend1.C:5
Short_t Abs(Short_t d)
Definition: TMathBase.h:120