|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4PolyPhiFace is a face that bounds a polycone or polyhedra when it has a phi opening. Specifically, it is a face that lies on a plane that passes through the Z axis, having boundaries that are straight lines of arbitrary length and direction, but with corners aways on the same side of the Z axis. More...
#include <G4PolyPhiFace.hh>
Public Member Functions | |
| G4PolyPhiFace (const G4ReduciblePolygon *rz, G4double phi, G4double deltaPhi, G4double phiOther) | |
| ~G4PolyPhiFace () override | |
| G4PolyPhiFace (const G4PolyPhiFace &source) | |
| G4PolyPhiFace & | operator= (const G4PolyPhiFace &source) |
| G4bool | Intersect (const G4ThreeVector &p, const G4ThreeVector &v, G4bool outgoing, G4double surfTolerance, G4double &distance, G4double &distFromSurface, G4ThreeVector &normal, G4bool &allBehind) override |
| G4double | Distance (const G4ThreeVector &p, G4bool outgoing) override |
| EInside | Inside (const G4ThreeVector &p, G4double tolerance, G4double *bestDistance) override |
| G4ThreeVector | Normal (const G4ThreeVector &p, G4double *bestDistance) override |
| G4double | Extent (const G4ThreeVector axis) override |
| void | CalculateExtent (const EAxis axis, const G4VoxelLimits &voxelLimit, const G4AffineTransform &tranform, G4SolidExtentList &extentList) override |
| G4VCSGface * | Clone () override |
| G4double | SurfaceArea () override |
| G4PolyPhiFace (__void__ &) | |
| void | Diagnose (G4VSolid *solid) |
| Public Member Functions inherited from G4VCSGface | |
| G4VCSGface ()=default | |
| virtual | ~G4VCSGface ()=default |
G4PolyPhiFace is a face that bounds a polycone or polyhedra when it has a phi opening. Specifically, it is a face that lies on a plane that passes through the Z axis, having boundaries that are straight lines of arbitrary length and direction, but with corners aways on the same side of the Z axis.
Definition at line 83 of file G4PolyPhiFace.hh.
| G4PolyPhiFace::G4PolyPhiFace | ( | const G4ReduciblePolygon * | rz, |
| G4double | phi, | ||
| G4double | deltaPhi, | ||
| G4double | phiOther ) |
Constructor where points r,z should be supplied in clockwise order in r,z. For example: [1]------—[2] ^ R | | | | | +--> z [0]------—[3]
| [in] | rz | Pointer to previous r,Z section. |
| [in] | phi | Initial Phi starting angle. |
| [in] | deltaPhi | Total Phi angle. |
| [in] | phiOther | Phi angle of next section. |
Definition at line 51 of file G4PolyPhiFace.cc.
Referenced by Clone(), G4PolyPhiFace(), and operator=().
|
override |
Destructor. Removes edges and corners.
Definition at line 291 of file G4PolyPhiFace.cc.
| G4PolyPhiFace::G4PolyPhiFace | ( | const G4PolyPhiFace & | source | ) |
Copy constructor and assignment operator.
Definition at line 301 of file G4PolyPhiFace.cc.
| G4PolyPhiFace::G4PolyPhiFace | ( | __void__ & | ) |
Fake default constructor for usage restricted to direct object persistency for clients requiring preallocation of memory for persistifiable objects.
Definition at line 282 of file G4PolyPhiFace.cc.
|
overridevirtual |
Calculates the extent of the face for the voxel navigator.
| [in] | axis | The axis in which to check the shapes 3D extent against. |
| [in] | voxelLimit | Limits along x, y, and/or z axes. |
| [in] | tranform | A coordinate transformation on which to apply to the shape before testing. |
| [out] | extentList | The list of (voxel) extents along the axis. |
Implements G4VCSGface.
Definition at line 607 of file G4PolyPhiFace.cc.
|
inlineoverridevirtual |
Method invoked by the copy constructor or the assignment operator. Its purpose is to return a pointer to a duplicate copy of the face.
Implements G4VCSGface.
| void G4PolyPhiFace::Diagnose | ( | G4VSolid * | solid | ) |
Throws an exception if something is found inconsistent with the solid. For debugging purposes only.
Definition at line 263 of file G4PolyPhiFace.cc.
|
overridevirtual |
Determines the distance of a point from either the inside or outside surfaces of the face.
| [in] | p | Position. |
| [in] | outgoing | Flag, true, to consider only inside surfaces or false, to consider only outside surfaces. |
Implements G4VCSGface.
Definition at line 432 of file G4PolyPhiFace.cc.
|
overridevirtual |
Returns the face extent along the axis.
| [in] | axis | Unit vector defining the direction. |
Implements G4VCSGface.
Definition at line 587 of file G4PolyPhiFace.cc.
|
overridevirtual |
Determines whether a point is inside, outside, or on the surface of the face.
| [in] | p | Position. |
| [in] | tolerance | Tolerance defining the bounds of the "kSurface", nominally equal to kCarTolerance/2. |
| [out] | bestDistance | Distance to the closest surface (in or out). |
Implements G4VCSGface.
Definition at line 476 of file G4PolyPhiFace.cc.
|
overridevirtual |
Determines the distance along a line to the face.
| [in] | p | Position. |
| [in] | v | Direction (assumed to be a unit vector). |
| [in] | outgoing | Flag true, to consider only inside surfaces; false, to consider only outside surfaces. |
| [in] | surfTolerance | Minimum distance from the surface. |
| [out] | distance | Distance to intersection. |
| [out] | distFromSurface | Distance from surface (along surface normal), < 0 if the point is in front of the surface. |
| [out] | normal | Normal of surface at intersection point. |
| [out] | allBehind | Flag, true, if entire surface is behind normal. |
Implements G4VCSGface.
Definition at line 377 of file G4PolyPhiFace.cc.
|
overridevirtual |
Returns the normal of surface closest to the point.
| [in] | p | Position. |
| [out] | bestDistance | Distance to the closest surface (in or out). |
Implements G4VCSGface.
Definition at line 546 of file G4PolyPhiFace.cc.
| G4PolyPhiFace & G4PolyPhiFace::operator= | ( | const G4PolyPhiFace & | source | ) |
Definition at line 310 of file G4PolyPhiFace.cc.
|
overridevirtual |
Returning an estimation of the face surface area, in internal units.
Implements G4VCSGface.
Definition at line 906 of file G4PolyPhiFace.cc.