2,3d1 < < 6,8d3 < < < 107,119d101 <

<   < < < < <
G4Box(const G4String& pName,
<                      G4double  pX,
<                      G4double  pY,
<                      G4double  pZ)

 

<

pX = 30, pY < = 40, pZ = 60

<
121c103,108 < by giving the box a name and its half-lengths along the X, Y and Z axis:

--- > G4Box(const G4String& pName, > G4double pX, > G4double pY, > G4double pZ) > > by giving the box a name and its half-lengths along the X, Y and Z axis:

125c112 < pXhalf ength in X --- > pXhalf length in X 135c122,123 <
   G4Box* aBox = new G4Box("BoxA", 1.0*cm, 3.0*cm, 5.0*cm);
---
>  
>    G4Box* aBox = new G4Box("BoxA", 1.0*cm, 3.0*cm, 5.0*cm);
140,157c128,136
<  

<   < < < < <
G4Tubs(const G4String& pName,
<                       G4double  pRMin,
<                       G4double  pRMax,
<                       G4double  pDz,
<                       G4double  pSPhi,
<                       G4double  pDPhi)

 

<

 

<

pRMin = 10, pRMax = 15, pDz = 20
< pSPhi = 0*Degree, pDPhi = 90*Degree

<
<

 

< giving its name pName and s parameters which are

--- >
>    G4Tubs(const G4String& pName,
>                 G4double  pRMin,
>                 G4double  pRMax,
>                 G4double  pDz,
>                 G4double  pSPhi,
>                 G4double  pDPhi)
>  
> giving its name pName and its parameters which are

168c147 <  &n  --- >    172,192d150 <

<   < < < < <
G4Cons(const G4String& pName,
<                        < G4double  pRmin1,
< <                        < G4double  pRmax1,
<                        G4double  pRmin2,
<                        G4double  pRmax2,
<                        G4double  pDz,
<                        < G4double  pSPhi,
<                        G4double  pDPhi)

< pRmin1 = 5, pRmax1 = 10, pRmin2 = 20, pRmax2 = 25
< pDz = 40, pSPhi = 0, pDPhi = 4/3*Pi

<
194c152,156 < --- > G4Cons(const G4String& pName, > G4double pRmin1, G4double pRmax1, > G4double pRmin2, G4double pRmax2, > G4double pDz, > G4double pSPhi, G4double pDPhi) 196c158 < giving its name pName, and ts parameters which are

--- > giving its name pName, and its parameters which are

200,201c162,163 < pRmin1 inside radius at -pDz < pRmax1 outside radius at -pDz --- > pRmin1 inside radius at -pDz > pRmax1 outside radius at -pDz 203,204c165,166 < pRmin2 inside radius at +pDz < pRmax2 outside radius at +pDz --- > pRmin2 inside radius at +pDz > pRmax2 outside radius at +pDz 214,231d175 <

<   < < < < <
G4Para(const G4String& pName,
<                       G4double  dx,
<                       < G4double  dy,
<                       < G4double  dz,
<                       G4double  alpha,
<                       G4double  theta,
<                       < G4double  phi )

dx = 30, dy = 40, dz = 60
alpha = 10*Degree, < theta = 20*Degree, phi = 5*Degree

<
233c177,179 < --- > G4Para(const G4String& pName, > G4double dx, G4double dy, G4double dz, > G4double alpha, G4double theta, G4double phi) 235c181 < giving its name pName and ts parameters which are

--- > giving its name pName and its parameters which are

245c191 < theta Polar angle of the line joining the centres of the --- > theta Polar angle of the line joining the centres of the 253,268d198 <

<   < < < < <
G4Trd( const G4String& pName,
<                      G4double  dx1,
<                      < G4double  dx2,
<                      G4double  dy1,
<                      < G4double  dy2,
<                      G4double  dz )

< dx1 = 30, dx2 = 10
dy1 = 40, dy2 = 15
dz = 60

<
270c200,203 < --- > G4Trd( const G4String& pName, > G4double dx1, G4double dx2, > G4double dy1, G4double dy2, > G4double dz ) 287,319c220,221 < To build a generic trapezoid, the G4Trap class is provided. Here are < the two costructors for a Right Angular Wedge and for the general trapezoid for it: <

<   < < < < <
G4Trap( const G4String& pName,
<                        G4double   pZ,
<                        < G4double   pY,
<                        < G4double   pX,
<                        G4double   pLTX )

< G4Trap( const G4String& pName,
<                        < G4double  pDz,
<                        < G4double  pTheta,
                       G4double  pPhi,
<                        < G4double  pDy1,
                       G4double  pDx1,
                       G4double  pDx2,
<                        < G4double  pAlp1,
<                        < G4double  pDy2,
                       G4double  pDx3,
                       G4double  pDx4,
<                        < G4double  pAlp2 )

< pDx1 = 30, pDx2 = 40, pDy1 = 40
pDx3 = 10, pDx4 = 14, < pDy2 = 16
< pDz = 60
pTheta = 20*Degree, pDphi = 5*Degree
pAlph1 = pAlph2 = < 10*Degree

<
--- > To build a generic trapezoid, the G4Trap class is provided. Here is the > simplest costructor for Right Angular Wedge defined for it: 321,322c223,227 <  

< to obtain a Right Angular Wedge with name pName and parameters

--- > G4Trap( const G4String& pName, > G4double pZ, G4double pY, G4double pX, > G4double pLTX ) >
> to obtain a solid with name pName and parameters

334,363d238 <

or to obtain the general trapezoid (see the Software Reference Manual):

< < < < < < < < < < < < < < < <
pDx1Half x length at y=-pDy <
pDx2Half x length at y=+pDy <
pDyHalf y length <
pDzHalf z length <
pThetaPolar angle of the line joining the centres of the faces at -/+pDz <
pDy1Half y length at -pDz <
pDx1Half x length at -pDz, y=-pDy1 <
pDx2Half x length at -pDz, y=+pDy1 <
pDy2Half y length at +pDz <
pDx3Half x length at +pDz, y=-pDy2 <
pDx4Half x length at +pDz, y=+pDy2 <
pAlph1Angle with respect to the y axis from the centre of the side < (lower endcap)
pAlph2Angle with respect to the y axis from the centre of the side < (upper endcap)
365,368c240 < Note on pAlph1/2: The two angles have to be the same due to the planarity < condition.

<  

< To build a sphere use: --- > For the complete set of constructors see the Software Reference Manual.

370,387c242,248 <   < < < < <
G4Sphere( const G4String& pName,
<                            G4double  pRmin,
<                            < G4double  pRmax,
<                            G4double  pSPhi,
<                            < G4double  pDPhi,
<                            G4double  pSTheta,
<                            < G4double  pDTheta )

pRmin = 100, pRmax = 120
pSPhi = 0*Degree, pDPhi < = 180*Degree
pSTheta = 0 Degree, pDTheta = 180*Degree

<
<

 

--- > To build a sphere use: >
>    G4Sphere( const G4String& pName,
>                    G4double  pRmin, G4double pRmax,
>                    G4double  pSPhi, G4double pDPhi,
>                    G4double  pSTheta, G4double pDTheta )
>  
403,420c264 < <

To build a full solid sphere use:

< < < < < <
G4Orb(const G4String& pName,
                     G4double pRmax)

 

<

pRmax = 100

<
<

The Orb is can be obtained from a Sphere with  pRmin= 0, pSPhi < = 0, pDPhi = 2 Pi, pSTheta = 0,  pDTheta = Pi.

< < <
pRmax Outer radius <
<

 

<

--- >

423,434d266 <

<   < < < < <
G4Torus( const G4String& pName,
<                          G4double  pRmin,
                         G4double  pRmax,
<                          G4double  pRtor,
                         G4double  pSPhi,
                         G4double  pDPhi )

< pRmin = 40, pRmax = 60, pRtor = 200
pSPhi = 0, < pDPhi = 90*Degree

<
436c268,270 < --- > G4Torus( const G4String& pName, > G4double pRmin, G4double pRmax, > G4double pRtor, G4double pSPhi, G4double pDPhi ) 463,489d296 <

<   < < < < <
G4Polycone( const G4String& pName,
<                               G4double  phiStart,
<                               G4double  phiTotal,
<                               G4int         numZPlanes,
<                      const G4double  zPlane[],
<                      < const G4double  rInner[],
<                      const G4double  rOuter[])
<
<    G4Polycone( const G4String& pName,
<                                  G4double  phiStart,
<                                  G4double  phiTotal,
<                                  G4int         numRZ,
<                         const G4double  r[],
<                         const G4double  z[])

< phiStart = 0*Degree, phiTotal = 2*Pi
< numZPlanes = 9
< rInner = { 0, 0, 0, 0, 0, 0, 0, 0, 0}
< rOuter = { 0, 10, 10, 5 , 5, 10 , 10 , 2, 2}
< z = { 5, 7, 9, 11, 25, 27, 29, 31, 35 }

<
491c298,311 < --- > G4Polycone( const G4String& pName, > G4double phiStart, > G4double phiTotal, > G4int numZPlanes, > const G4double zPlane[], > const G4double rInner[], > const G4double rOuter[]) > > G4Polycone( const G4String& pName, > G4double phiStart, > G4double phiTotal, > G4int numRZ, > const G4double r[], > const G4double z[]) 518,548d337 <

< <   < < < < <
G4Polyhedra( const G4String& pName,
<                                G4double   phiStart,
<                                G4double   phiTotal,
<                                G4int         numSide,
<                                G4int         numZPlanes,
<                       const G4double  zPlane[],
<                       const G4double  rInner[],
<                       const G4double  rOuter[]  )
<
<    G4Polyhedra( const G4String& pName,
<                                   G4double   phiStart,
<                                   G4double   phiTotal,
<                                   G4int          numSide,
<                                   G4int          numRZ,
<                          const G4double   r[],
<                          const G4double   z[] )

< phiStart = 0, phiTotal= 2 Pi
< numSide = 5, nunZPlanes = 7
< rInner = { 0, 0, 0, 0, 0, 0, 0 }
< rOuter = { 0, 15, 15, 4, 4, 10, 10 }
< z = { 0, 5, 8, 13 , 30, 32, 35 }

<
<  

<
550c339,354 < --- > G4Polyhedra( const G4String& pName, > G4double phiStart, > G4double phiTotal, > G4int numSide, > G4int numZPlanes, > const G4double zPlane[], > const G4double rInner[], > const G4double rOuter[] ) > > G4Polyhedra( const G4String& pName, > G4double phiStart, > G4double phiTotal, > G4int numSide, > G4int numRZ, > const G4double r[], > const G4double z[] ) 578,590d381 <

<   < < < < <
G4EllipticalTube( const G4String& pName, <
<                                     G4double  Dx,
<                                     G4double  Dy,
<                                     G4double  Dz )

 

<

Dx = 5, Dy = 10, Dz = 20

<
592c383,386 < --- > G4EllipticalTube( const G4String& pName, > G4double Dx, > G4double Dy, > G4double Dz ) 596c390 < --- >
600,674c394,395 <
DzHalf length in Z  <
<

 

<

The general ellipsoid can be defined as follows:

<

 

<

< < < < < <
 G4Ellipsoid(const G4String& pName,
<                              G4double  < pxSemiAxis,
<                              < G4double  pySemiAxis,
<                              < G4double  pzSemiAxis,
<                              < G4double  pzBottomCut=0,
<                              < G4double  pzTopCut=0);
<  

pxSemiAxis = 10, pySemiAxis = 20, pzSemiAxis = 50
< pzBottomCut = -10, pzTopCut = 40

<
<

A general (or triaxial) ellipsoid is a quadratic surface which is given in < Cartesian coordinates by

<

1.0 = (x/pxSemiAxis)**2 + (y/pySemiAxis)**2  +  (z/pzSemiAxis)**2

< < < < < < <
pxSemiAxisSemiaxis in X  <
pySemiAxis Semiaxis in Y <
pzSemiAxisSemiaxis in Z <
pzBottomCut lower cut plane level, z
pzTopCutupper cut plane level, z  <
<

< A cone with an elliptical cross section can be defined as follows:

<   < < < < <
G4EllipticalCone(const G4String& pName,
<                                     < G4double pxSemiAxis,
<                                     < G4double pySemiAxis,
<                                     < G4double zMax,
<                                     < G4double pzTopCut);
<  

pxSemiAxis = 0.5, pySemiAxis = 1
zMax = 40, pzTopCut < =25

<
<

<   < < < < <
pxSemiAxisSemiaxis in X   <
pySemiAxis Semiaxis in Y <
zMax Height  of elliptical cone
pzTopCut upper cut plane level
<

< An elliptical cone of height zMax, semiaxis pxSemiAxis, and semiaxis pySemiAxis < is given by the parametric equations

< x = pxSemiAxis * ( zMax - u ) / u  * Cos v

< y = pySemiAxis * ( zMax - u ) / u * Sin v

< z = u <

< Where v is between 0 and 2 Pi, and u between 0 and h respectively. --- > DzHalf length in Z >

676d396 <  

678,692d397 <

<   < < < < <
G4Hype(const G4String& pName,
<                 G4double  innerRadius,
<                 G4double  outerRadius,
<                 G4double  innerStereo,
<                 G4double  outerStereo,
<                 G4double  halfLenZ )

< innerStereo = 0.7, outerStereo = 0.7
halfLenZ = 100
< innerRadius = 20, outerRadius = 30

<
694c399,404 < --- > G4Hype(const G4String& pName, > G4double innerRadius, > G4double outerRadius, > G4double innerStereo, > G4double outerStereo, > G4double halfLenZ ) 718,730d427 <

<   < < < < <
G4TwistedBox(const G4String& pName,
<                                  G4double  twistedangle,
<                                  G4double  pDx,
<                                  G4double  pDy,
<                                  G4double  pDz)

< twistedangle = 30*Degree
pDx = 30, pDy =40, pDz = 60

<
732c429,433 < --- > G4TwistedBox(const G4String& pName, > G4double twistedangle, > G4double pDx, > G4double pDy, > G4double pDz); 739c440 < twistedangleTwist angle --- > twistedangleTwisted angle 749,781d449 <

<   < < < < <
G4TwistedTrap(const G4String& pName,
<                                   G4double  twistedangle,
<                                   G4double  pDxx1,
<                                   G4double  pDxx2,
<                                   G4double  pDy,
<                                   G4double  pDz)
<
< G4TwistedTrap(const G4String& pName,
<                                   G4double  twistedangle,
<                                   G4double  pDz,
<                                   G4double  pTheta,
<                                   G4double  pPhi,
<                                   G4double  pDy1,
<                                   G4double  pDx1,
<                                   G4double  pDx2,
<                                   G4double  pDy2,
<                                   G4double  pDx3,
<                                   G4double  pDx4,
<                                   G4double  pAlph)

< pDx1 = 30, pDx2 = 40, pDy1 = 40
pDx3 = 10, pDx4 = 14, < pDy2 = 16
< pDz = 60
< pTheta = 20*Degree, pDphi = 5*Degree
< pAlph = 10*Degree
< < twistedangle = 30*Degree

<
783c451,469 < --- > G4TwistedTrap(const G4String& pName, > G4double twistedangle, > G4double pDxx1, > G4double pDxx2, > G4double pDy, > G4double pDz); > > G4TwistedTrap(const G4String& pName, > G4double twistedangle, > G4double pDz, > G4double pTheta, > G4double pPhi, > G4double pDy1, > G4double pDx1, > G4double pDx2, > G4double pDy2, > G4double pDx3, > G4double pDx4, > G4double pAlph); 795c481 < pDx1Half x length at y=-pDy --- > pDxx1Half x length at y=-pDy 797c483 < pDx2Half x length at y=+pDy --- > pDxx2Half x length at y=+pDy 822,838d507 <

<   < < < < <
G4TwistedTrd(const G4String& pName,
<                       G4double  pDx1,
<                       G4double  pDx2,
<                       G4double  pDy1,
<                       G4double  pDy2,
<                       G4double  pDz,
<                       G4double  twistedangle)

< dx1 = 30, dx2 = 10
< dy1 = 40, dy2 = 15
< dz = 60
twistedangle = 30*Degree

<
840c509,515 < --- > G4TwistedTrd(const G4String& pName, > G4double pDx1, > G4double pDx2, > G4double pDy1, > G4double pDy2, > G4double pDz, > G4double twistedangle ); 860,877d534 <

<   < < < < <
G4TwistedTubs(const G4String& pName,
<                                   G4double  twistedangle,
<                                   G4double  endinnerrad,
<                                   G4double  endouterrad,
<                                   G4double  halfzlen,
<                                   G4double  dphi)

< endinnerrad = 10, endouterrad = 15
< halfzlen = 20
< dphi = 90*Degree
twistedangle = 60*Degree

<

 

<

 

<
879c536,541 < --- > G4TwistedTubs(const G4String& pName, > G4double twistedangle, > G4double endinnerrad, > G4double endouterrad, > G4double halfzlen, > G4double dphi); 906,939c568 < <

 

<

<

  A tetrahedra solid can be defined as follows:

< < < < < <
G4Tet(const G4String& pName,
<                     < G4ThreeVector anchor,
<                     < G4ThreeVector p2,
<                     < G4ThreeVector p3,
<                     < G4ThreeVector p4,
<                     < G4bool *degeneracyFlag=0)

anchor = {0, 0, sqrt(3)}
< p2 = { 0, 2*sqrt(2/3), -1/sqrt(3) }
< p3 = { -sqrt(2), -sqrt(2/3),-1/sqrt(3) }
p4 = { sqrt(2), -sqrt(2/3) , < -1/sqrt(3) }

<
<

The solid is defined by four points in space.

< < < < < < <
anchorAnchor point <
p2Point 2 <
p3Point 3
p4Point 4
degeneracyFlagFlag indicating degeneracy of points
--- >