|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4Para represents a parallelepiped, essentially a box with half lengths dx,dy,dz 'skewed' so that there are angles theta & phi of the polar line joining the faces at +-dz in z, and alpha formed by the y axis and the plane joining the centre of the faces parallel to the z-x plane at -dy and +dy. More...
#include <G4Para.hh>
Additional Inherited Members | |
| Protected Member Functions inherited from G4CSGSolid | |
| G4double | GetRadiusInRing (G4double rmin, G4double rmax) const |
| Protected Member Functions inherited from G4VSolid | |
| void | CalculateClippedPolygonExtent (G4ThreeVectorList &pPolygon, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const |
| void | ClipCrossSection (G4ThreeVectorList *pVertices, const G4int pSectionIndex, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const |
| void | ClipBetweenSections (G4ThreeVectorList *pVertices, const G4int pSectionIndex, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const |
| void | ClipPolygon (G4ThreeVectorList &pPolygon, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis) const |
| Protected Attributes inherited from G4CSGSolid | |
| G4double | fCubicVolume = 0.0 |
| G4double | fSurfaceArea = 0.0 |
| G4bool | fRebuildPolyhedron = false |
| G4Polyhedron * | fpPolyhedron = nullptr |
| Protected Attributes inherited from G4VSolid | |
| G4double | kCarTolerance |
G4Para represents a parallelepiped, essentially a box with half lengths dx,dy,dz 'skewed' so that there are angles theta & phi of the polar line joining the faces at +-dz in z, and alpha formed by the y axis and the plane joining the centre of the faces parallel to the z-x plane at -dy and +dy.
| G4Para::G4Para | ( | const G4String & | pName, |
| G4double | pDx, | ||
| G4double | pDy, | ||
| G4double | pDz, | ||
| G4double | pAlpha, | ||
| G4double | pTheta, | ||
| G4double | pPhi ) |
Constructs a parallelepiped, given a name and its parameters.
| [in] | pName | The name of the solid. |
| [in] | pDx | Half-length in x. |
| [in] | pDy | Half-length in y. |
| [in] | pDz | Half-length in z. |
| [in] | pAlpha | Angle formed by the Y axis and by the plane joining the centre of the faces parallel to the Z-X plane at -dy and +dy. |
| [in] | pTheta | Polar angle of the line joining the centres of the faces at -dz and +dz in Z. |
| [in] | pPhi | Azimuthal angle of the line joining the centres of the faces at -dz and +dz in Z. |
Definition at line 59 of file G4Para.cc.
Referenced by Clone(), G4Para(), operator=(), and SetThetaAndPhi().
| G4Para::G4Para | ( | const G4String & | pName, |
| const G4ThreeVector | pt[8] ) |
Constructs a parallelepiped, given a name and its 8 vertices.
| [in] | pName | The name of the solid. |
| [in] | pt | Points of the 8 vertices. |
Definition at line 72 of file G4Para.cc.
|
overridedefault |
Default destructor.
| G4Para::G4Para | ( | __void__ & | a | ) |
Fake default constructor for usage restricted to direct object persistency for clients requiring preallocation of memory for persistifiable objects.
| G4Para::G4Para | ( | const G4Para & | rhs | ) |
Copy constructor and assignment operator.
Definition at line 143 of file G4Para.cc.
|
overridevirtual |
Computes the bounding limits of the solid.
| [out] | pMin | The minimum bounding limit point. |
| [out] | pMax | The maximum bounding limit point. |
Reimplemented from G4VSolid.
Definition at line 279 of file G4Para.cc.
Referenced by CalculateExtent().
|
overridevirtual |
Calculates the minimum and maximum extent of the solid, when under the specified transform, and within the specified limits.
| [in] | pAxis | The axis along which compute the extent. |
| [in] | pVoxelLimit | The limiting space dictated by voxels. |
| [in] | pTransform | The internal transformation applied to the solid. |
| [out] | pMin | The minimum extent value. |
| [out] | pMax | The maximum extent value. |
Implements G4VSolid.
Definition at line 322 of file G4Para.cc.
|
overridevirtual |
Makes a clone of the object for use in multi-treading.
Reimplemented from G4VSolid.
Definition at line 786 of file G4Para.cc.
|
overridevirtual |
Dispatch method for parameterisation replication mechanism and dimension computation.
Reimplemented from G4VSolid.
Definition at line 268 of file G4Para.cc.
|
overridevirtual |
Creates a Polyhedron used for Visualisation. It is the caller's responsibility to delete it. A null pointer means "not created".
Reimplemented from G4VSolid.
|
overridevirtual |
|
overridevirtual |
Calculates the distance to the nearest surface of a shape from an outside point. The distance can be an underestimate.
| [in] | p | The point at offset p. |
Implements G4VSolid.
|
overridevirtual |
Returns the distance along the normalised vector 'v' to the shape, from the point at offset 'p'. If there is no intersection, returns kInfinity. The first intersection resulting from 'leaving' a surface/volume is discarded. Hence, it is tolerant of points on the surface of the shape.
| [in] | p | The point at offset p. |
| [in] | v | The normalised direction vector. |
Implements G4VSolid.
Definition at line 510 of file G4Para.cc.
|
overridevirtual |
Calculates the distance to the nearest surface of a shape from an inside point 'p'. The distance can be an underestimate.
| [in] | p | The point at offset p. |
Implements G4VSolid.
Definition at line 733 of file G4Para.cc.
|
overridevirtual |
Returns the distance along the normalised vector 'v' to the shape, from a point at an offset 'p' inside or on the surface of the shape. Intersections with surfaces, when the point is less than Tolerance/2 from a surface must be ignored.
| [in] | p | The point at offset p. |
| [in] | v | The normalised direction vector. |
| [in] | calcNorm | Flag to indicate if to calculate the normal or not. |
| [out] | validNorm | Flag set to true if the solid lies entirely behind or on the exiting surface. It is set false if the solid does not lie entirely behind or on the exiting surface. 'calcNorm' must be true, otherwise it is unused. |
| [out] | n | The exiting outwards normal vector (undefined Magnitude). 'calcNorm' must be true, otherwise it is unused. |
Implements G4VSolid.
Definition at line 625 of file G4Para.cc.
|
inline |
|
overridevirtual |
Returning an estimation of the solid volume (capacity) and surface area, in internal units.
Reimplemented from G4VSolid.
Definition at line 860 of file G4Para.cc.
|
overridevirtual |
|
inline |
|
overridevirtual |
Returns a random point located and uniformly distributed on the surface of the solid.
Reimplemented from G4VSolid.
Definition at line 824 of file G4Para.cc.
|
overridevirtual |
Returns an estimation of the solid surface area in internal units. This method may be overloaded by derived classes to compute the exact geometrical quantity for solids where this is possible, or anyway to cache the computed value. Note: the computed value is NOT cached.
Reimplemented from G4VSolid.
Definition at line 875 of file G4Para.cc.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Accessors. Obtain (re)computed values of the original parameters.
Referenced by BoundingLimits(), G4tgbVolume::BuildSolidForDivision(), CalculateExtent(), G4tgbGeometryDumper::GetSolidParams(), G4GDMLWriteParamvol::Para_dimensionsWrite(), and G4GDMLWriteSolids::ParaWrite().
|
overridevirtual |
Concrete implementations of the expected query interfaces for solids, as defined in the base class G4VSolid.
Implements G4VSolid.
Definition at line 377 of file G4Para.cc.
Referenced by DistanceToOut().
|
overridevirtual |
Definition at line 155 of file G4Para.cc.
| void G4Para::SetAllParameters | ( | G4double | pDx, |
| G4double | pDy, | ||
| G4double | pDz, | ||
| G4double | pAlpha, | ||
| G4double | pTheta, | ||
| G4double | pPhi ) |
Sets all parameters, as for constructor.
Definition at line 183 of file G4Para.cc.
Referenced by G4ParameterisationParaX::ComputeDimensions(), G4ParameterisationParaY::ComputeDimensions(), G4ParameterisationParaZ::ComputeDimensions(), G4Para(), and G4Para().
|
inline |
|
inline |
|
inline |
Modifiers.
|
inline |
|
inline |
|
overridevirtual |
Streams the object contents to an output stream.
Reimplemented from G4CSGSolid.
Definition at line 795 of file G4Para.cc.
|
overridevirtual |
Returns the outwards pointing unit normal of the shape for the surface closest to the point at offset 'p'.
| [in] | p | The point at offset p. |
Implements G4VSolid.
Definition at line 398 of file G4Para.cc.
| G4double G4Para::a |
Definition at line 269 of file G4Para.hh.
Referenced by DistanceToOut(), and G4Para().
| G4double G4Para::b |
Definition at line 269 of file G4Para.hh.
Referenced by DistanceToOut().
| G4double G4Para::c |
Definition at line 269 of file G4Para.hh.
Referenced by DistanceToOut().
| G4double G4Para::d |
Definition at line 269 of file G4Para.hh.
Referenced by SurfaceNormal().