|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4PhantomParameterisation describes regular parameterisations: a set of boxes of equal dimension in the x, y and z dimensions. The G4PVParameterised volume using this class must be placed inside a volume that is completely filled by these boxes. More...
#include <G4PhantomParameterisation.hh>
Public Member Functions | |
| G4PhantomParameterisation () | |
| ~G4PhantomParameterisation () override | |
| void | ComputeTransformation (const G4int, G4VPhysicalVolume *) const override |
| G4VSolid * | ComputeSolid (const G4int, G4VPhysicalVolume *) override |
| G4Material * | ComputeMaterial (const G4int repNo, G4VPhysicalVolume *currentVol, const G4VTouchable *parentTouch=nullptr) override |
| void | ComputeDimensions (G4Box &, const G4int, const G4VPhysicalVolume *) const override |
| void | ComputeDimensions (G4Tubs &, const G4int, const G4VPhysicalVolume *) const override |
| void | ComputeDimensions (G4Trd &, const G4int, const G4VPhysicalVolume *) const override |
| void | ComputeDimensions (G4Trap &, const G4int, const G4VPhysicalVolume *) const override |
| void | ComputeDimensions (G4Cons &, const G4int, const G4VPhysicalVolume *) const override |
| void | ComputeDimensions (G4Orb &, const G4int, const G4VPhysicalVolume *) const override |
| void | ComputeDimensions (G4Sphere &, const G4int, const G4VPhysicalVolume *) const override |
| void | ComputeDimensions (G4Ellipsoid &, const G4int, const G4VPhysicalVolume *) const override |
| void | ComputeDimensions (G4Torus &, const G4int, const G4VPhysicalVolume *) const override |
| void | ComputeDimensions (G4Para &, const G4int, const G4VPhysicalVolume *) const override |
| void | ComputeDimensions (G4Hype &, const G4int, const G4VPhysicalVolume *) const override |
| void | ComputeDimensions (G4Polycone &, const G4int, const G4VPhysicalVolume *) const override |
| void | ComputeDimensions (G4Polyhedra &, const G4int, const G4VPhysicalVolume *) const override |
| void | BuildContainerSolid (G4VPhysicalVolume *pPhysicalVol) |
| void | BuildContainerSolid (G4VSolid *pMotherSolid) |
| virtual G4int | GetReplicaNo (const G4ThreeVector &localPoint, const G4ThreeVector &localDir) |
| void | SetMaterials (std::vector< G4Material * > &mates) |
| void | SetMaterialIndices (std::size_t *matInd) |
| void | SetVoxelDimensions (G4double halfx, G4double halfy, G4double halfz) |
| void | SetNoVoxels (std::size_t nx, std::size_t ny, std::size_t nz) |
| G4double | GetVoxelHalfX () const |
| G4double | GetVoxelHalfY () const |
| G4double | GetVoxelHalfZ () const |
| std::size_t | GetNoVoxelsX () const |
| std::size_t | GetNoVoxelsY () const |
| std::size_t | GetNoVoxelsZ () const |
| std::size_t | GetNoVoxels () const |
| std::vector< G4Material * > | GetMaterials () const |
| std::size_t * | GetMaterialIndices () const |
| G4VSolid * | GetContainerSolid () const |
| G4ThreeVector | GetTranslation (const G4int copyNo) const |
| G4bool | SkipEqualMaterials () const |
| void | SetSkipEqualMaterials (G4bool skip) |
| std::size_t | GetMaterialIndex (std::size_t nx, std::size_t ny, std::size_t nz) const |
| std::size_t | GetMaterialIndex (std::size_t copyNo) const |
| G4Material * | GetMaterial (std::size_t nx, std::size_t ny, std::size_t nz) const |
| G4Material * | GetMaterial (std::size_t copyNo) const |
| void | CheckVoxelsFillContainer (G4double contX, G4double contY, G4double contZ) const |
| Public Member Functions inherited from G4VPVParameterisation | |
| G4VPVParameterisation ()=default | |
| virtual | ~G4VPVParameterisation ()=default |
| virtual G4bool | IsNested () const |
| virtual G4VVolumeMaterialScanner * | GetMaterialScanner () |
Protected Attributes | |
| G4double | fVoxelHalfX = 0.0 |
| G4double | fVoxelHalfY = 0.0 |
| G4double | fVoxelHalfZ = 0.0 |
| std::size_t | fNoVoxelsX = 0 |
| std::size_t | fNoVoxelsY = 0 |
| std::size_t | fNoVoxelsZ = 0 |
| std::size_t | fNoVoxelsXY = 0 |
| std::size_t | fNoVoxels = 0 |
| std::vector< G4Material * > | fMaterials |
| std::size_t * | fMaterialIndices = nullptr |
| G4VSolid * | fContainerSolid = nullptr |
| G4double | fContainerWallX =0.0 |
| G4double | fContainerWallY =0.0 |
| G4double | fContainerWallZ =0.0 |
| G4double | kCarTolerance |
| G4bool | bSkipEqualMaterials = true |
G4PhantomParameterisation describes regular parameterisations: a set of boxes of equal dimension in the x, y and z dimensions. The G4PVParameterised volume using this class must be placed inside a volume that is completely filled by these boxes.
Definition at line 74 of file G4PhantomParameterisation.hh.
| G4PhantomParameterisation::G4PhantomParameterisation | ( | ) |
Constructor and Destructor.
Definition at line 41 of file G4PhantomParameterisation.cc.
|
overridedefault |
| void G4PhantomParameterisation::BuildContainerSolid | ( | G4VPhysicalVolume * | pPhysicalVol | ) |
Saves as container solid the parent of the voxels. Checks that the voxels fill it completely.
Definition at line 52 of file G4PhantomParameterisation.cc.
| void G4PhantomParameterisation::BuildContainerSolid | ( | G4VSolid * | pMotherSolid | ) |
Definition at line 65 of file G4PhantomParameterisation.cc.
| void G4PhantomParameterisation::CheckVoxelsFillContainer | ( | G4double | contX, |
| G4double | contY, | ||
| G4double | contZ ) const |
Checks that the voxels fill it completely.
Definition at line 175 of file G4PhantomParameterisation.cc.
|
inlineoverridevirtual |
Dummy declarations ...
Reimplemented from G4VPVParameterisation.
Definition at line 94 of file G4PhantomParameterisation.hh.
|
inlineoverridevirtual |
Reimplemented from G4VPVParameterisation.
Definition at line 102 of file G4PhantomParameterisation.hh.
|
inlineoverridevirtual |
Reimplemented from G4VPVParameterisation.
Definition at line 108 of file G4PhantomParameterisation.hh.
|
inlineoverridevirtual |
Reimplemented from G4VPVParameterisation.
Definition at line 114 of file G4PhantomParameterisation.hh.
|
inlineoverridevirtual |
Reimplemented from G4VPVParameterisation.
Definition at line 104 of file G4PhantomParameterisation.hh.
|
inlineoverridevirtual |
Reimplemented from G4VPVParameterisation.
Definition at line 112 of file G4PhantomParameterisation.hh.
|
inlineoverridevirtual |
Reimplemented from G4VPVParameterisation.
Definition at line 116 of file G4PhantomParameterisation.hh.
|
inlineoverridevirtual |
Reimplemented from G4VPVParameterisation.
Definition at line 118 of file G4PhantomParameterisation.hh.
|
inlineoverridevirtual |
Reimplemented from G4VPVParameterisation.
Definition at line 106 of file G4PhantomParameterisation.hh.
|
inlineoverridevirtual |
Reimplemented from G4VPVParameterisation.
Definition at line 110 of file G4PhantomParameterisation.hh.
|
inlineoverridevirtual |
Reimplemented from G4VPVParameterisation.
Definition at line 100 of file G4PhantomParameterisation.hh.
|
inlineoverridevirtual |
Reimplemented from G4VPVParameterisation.
Definition at line 98 of file G4PhantomParameterisation.hh.
|
inlineoverridevirtual |
Reimplemented from G4VPVParameterisation.
Definition at line 96 of file G4PhantomParameterisation.hh.
|
overridevirtual |
Computes the material for the 'currentVol' and replica number 'repNo'. Must cope with 'parentTouch' for navigator's SetupHierarchy() when used for nested parameterisations.
| [in] | currentVol | Pointer to the current physical volume. |
| [in] | repNo | The copy number index. |
| [in] | parentTouch | Pointer to the touchable of the parent volume. |
Reimplemented from G4VPVParameterisation.
Definition at line 117 of file G4PhantomParameterisation.cc.
Referenced by G4GMocrenFileSceneHandler::AddSolid(), and G4RegularNavigation::LevelLocate().
|
overridevirtual |
Computes the solid for the 'pv' volume and replica number 'no'. To be optionally defined in derived classes, for parameterisation of the solid type.
| [in] | no | The copy number index. |
| [in] | pv | Pointer to the current physical volume. |
Reimplemented from G4VPVParameterisation.
Definition at line 109 of file G4PhantomParameterisation.cc.
|
overridevirtual |
Computes the transformation for the 'pv' volume and replica number 'no'. It is a required method, as it is the reason for this class.
| [in] | pv | Pointer to the current physical volume. |
| [in] | no | The copy number index. |
Implements G4VPVParameterisation.
Definition at line 78 of file G4PhantomParameterisation.cc.
Referenced by G4RegularNavigation::LevelLocate().
|
inline |
| G4Material * G4PhantomParameterisation::GetMaterial | ( | std::size_t | copyNo | ) | const |
Definition at line 156 of file G4PhantomParameterisation.cc.
| G4Material * G4PhantomParameterisation::GetMaterial | ( | std::size_t | nx, |
| std::size_t | ny, | ||
| std::size_t | nz ) const |
Definition at line 149 of file G4PhantomParameterisation.cc.
| std::size_t G4PhantomParameterisation::GetMaterialIndex | ( | std::size_t | copyNo | ) | const |
Definition at line 128 of file G4PhantomParameterisation.cc.
| std::size_t G4PhantomParameterisation::GetMaterialIndex | ( | std::size_t | nx, |
| std::size_t | ny, | ||
| std::size_t | nz ) const |
Definition at line 139 of file G4PhantomParameterisation.cc.
Referenced by ComputeMaterial(), GetMaterial(), GetMaterial(), and GetMaterialIndex().
|
inline |
|
inline |
|
inline |
Referenced by G4RegularNavigation::LevelLocate().
|
inline |
Referenced by G4GMocrenFileSceneHandler::AddSolid().
|
inline |
Referenced by G4GMocrenFileSceneHandler::AddSolid().
|
inline |
Referenced by G4GMocrenFileSceneHandler::AddSolid().
|
virtual |
Gets the voxel number corresponding to the point in the container frame. Uses 'localDir' to avoid precision problems at the surfaces.
Reimplemented in G4PartialPhantomParameterisation.
Definition at line 222 of file G4PhantomParameterisation.cc.
Referenced by G4RegularNavigation::LevelLocate().
| G4ThreeVector G4PhantomParameterisation::GetTranslation | ( | const G4int | copyNo | ) | const |
Definition at line 90 of file G4PhantomParameterisation.cc.
Referenced by ComputeTransformation().
|
inline |
Referenced by G4GMocrenFileSceneHandler::AddSolid().
|
inline |
Referenced by G4GMocrenFileSceneHandler::AddSolid().
|
inline |
Referenced by G4GMocrenFileSceneHandler::AddSolid().
|
inline |
|
inline |
Set and Get methods
| void G4PhantomParameterisation::SetNoVoxels | ( | std::size_t | nx, |
| std::size_t | ny, | ||
| std::size_t | nz ) |
| void G4PhantomParameterisation::SetSkipEqualMaterials | ( | G4bool | skip | ) |
| void G4PhantomParameterisation::SetVoxelDimensions | ( | G4double | halfx, |
| G4double | halfy, | ||
| G4double | halfz ) |
| G4bool G4PhantomParameterisation::SkipEqualMaterials | ( | ) | const |
|
protected |
Flag to skip surface when two voxel have same material or not.
Definition at line 217 of file G4PhantomParameterisation.hh.
|
protected |
Saves as container solid the parent of the voxels.
Definition at line 208 of file G4PhantomParameterisation.hh.
Referenced by BuildContainerSolid(), BuildContainerSolid(), CheckVoxelsFillContainer(), and GetReplicaNo().
|
protected |
Save position of container wall for speed-up.
Definition at line 211 of file G4PhantomParameterisation.hh.
Referenced by BuildContainerSolid(), BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), G4PartialPhantomParameterisation::GetReplicaNo(), GetReplicaNo(), G4PartialPhantomParameterisation::GetTranslation(), and GetTranslation().
|
protected |
Definition at line 211 of file G4PhantomParameterisation.hh.
Referenced by BuildContainerSolid(), BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), G4PartialPhantomParameterisation::GetReplicaNo(), GetReplicaNo(), G4PartialPhantomParameterisation::GetTranslation(), and GetTranslation().
|
protected |
Definition at line 211 of file G4PhantomParameterisation.hh.
Referenced by BuildContainerSolid(), BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), G4PartialPhantomParameterisation::GetReplicaNo(), GetReplicaNo(), G4PartialPhantomParameterisation::GetTranslation(), and GetTranslation().
|
protected |
Index in fMaterials that correspond to each voxel.
Definition at line 205 of file G4PhantomParameterisation.hh.
Referenced by G4PartialPhantomParameterisation::GetMaterialIndex(), and GetMaterialIndex().
|
protected |
List of materials of the voxels.
Definition at line 202 of file G4PhantomParameterisation.hh.
Referenced by G4PartialPhantomParameterisation::ComputeMaterial(), ComputeMaterial(), G4PartialPhantomParameterisation::GetMaterial(), G4PartialPhantomParameterisation::GetMaterial(), GetMaterial(), and GetMaterial().
|
protected |
Total number of voxels (for speed-up).
Definition at line 199 of file G4PhantomParameterisation.hh.
|
protected |
Number of voxel in x, y and z dimensions.
Definition at line 193 of file G4PhantomParameterisation.hh.
Referenced by BuildContainerSolid(), BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), CheckVoxelsFillContainer(), G4PartialPhantomParameterisation::GetMaterialIndex(), GetMaterialIndex(), G4PartialPhantomParameterisation::GetReplicaNo(), and GetReplicaNo().
|
protected |
Number of voxels in x times number of voxels in y (for speed-up).
Definition at line 196 of file G4PhantomParameterisation.hh.
Referenced by G4PartialPhantomParameterisation::GetMaterialIndex(), GetMaterialIndex(), and GetReplicaNo().
|
protected |
Definition at line 193 of file G4PhantomParameterisation.hh.
Referenced by BuildContainerSolid(), BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), CheckVoxelsFillContainer(), G4PartialPhantomParameterisation::GetReplicaNo(), and GetReplicaNo().
|
protected |
Definition at line 193 of file G4PhantomParameterisation.hh.
Referenced by BuildContainerSolid(), BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), CheckVoxelsFillContainer(), G4PartialPhantomParameterisation::GetReplicaNo(), and GetReplicaNo().
|
protected |
Half dimension of voxels (assume they are boxes).
Definition at line 190 of file G4PhantomParameterisation.hh.
Referenced by BuildContainerSolid(), BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), CheckVoxelsFillContainer(), G4PartialPhantomParameterisation::GetReplicaNo(), GetReplicaNo(), G4PartialPhantomParameterisation::GetTranslation(), and GetTranslation().
|
protected |
Definition at line 190 of file G4PhantomParameterisation.hh.
Referenced by BuildContainerSolid(), BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), CheckVoxelsFillContainer(), G4PartialPhantomParameterisation::GetReplicaNo(), GetReplicaNo(), G4PartialPhantomParameterisation::GetTranslation(), and GetTranslation().
|
protected |
Definition at line 190 of file G4PhantomParameterisation.hh.
Referenced by BuildContainerSolid(), BuildContainerSolid(), G4PartialPhantomParameterisation::BuildContainerWalls(), CheckVoxelsFillContainer(), G4PartialPhantomParameterisation::GetReplicaNo(), GetReplicaNo(), G4PartialPhantomParameterisation::GetTranslation(), and GetTranslation().
|
protected |
Relative surface tolerance.
Definition at line 214 of file G4PhantomParameterisation.hh.
Referenced by CheckVoxelsFillContainer(), G4PhantomParameterisation(), G4PartialPhantomParameterisation::GetReplicaNo(), and GetReplicaNo().