37#ifndef G4PhantomParameterisation_HH
38#define G4PhantomParameterisation_HH 1
143 void SetNoVoxels( std::size_t nx, std::size_t ny, std::size_t nz );
162 std::size_t
GetMaterialIndex( std::size_t nx, std::size_t ny, std::size_t nz)
const;
179 void ComputeVoxelIndices(
const G4int copyNo, std::size_t& nx,
180 std::size_t& ny, std::size_t& nz )
const;
185 void CheckCopyNo(
const G4long copyNo )
const;
220#include "G4PhantomParameterisation.icc"
CLHEP::Hep3Vector G4ThreeVector
G4TouchableHistory G4VTouchable
G4VTouchable is a G4TouchableHistory object.
G4Box is a cuboid of given half lengths dx,dy,dz. The Box is centred on the origin with sides paralle...
G4Cons is, in the general case, a Phi segment of a cone, with half-length fDz, inner and outer radii ...
G4Ellipsoid is an ellipsoidal solid, optionally cut at a given Z.
G4Hype is a tube with hyperbolic profile; it describes an hyperbolic volume with curved sides paralle...
G4Orb represents a full sphere.
G4Para represents a parallelepiped, essentially a box with half lengths dx,dy,dz 'skewed' so that the...
void SetVoxelDimensions(G4double halfx, G4double halfy, G4double halfz)
virtual G4int GetReplicaNo(const G4ThreeVector &localPoint, const G4ThreeVector &localDir)
void BuildContainerSolid(G4VPhysicalVolume *pPhysicalVol)
G4VSolid * ComputeSolid(const G4int, G4VPhysicalVolume *) override
void CheckVoxelsFillContainer(G4double contX, G4double contY, G4double contZ) const
void SetMaterials(std::vector< G4Material * > &mates)
G4Material * ComputeMaterial(const G4int repNo, G4VPhysicalVolume *currentVol, const G4VTouchable *parentTouch=nullptr) override
std::size_t * GetMaterialIndices() const
void ComputeDimensions(G4Trap &, const G4int, const G4VPhysicalVolume *) const override
G4Material * GetMaterial(std::size_t nx, std::size_t ny, std::size_t nz) const
void ComputeDimensions(G4Orb &, const G4int, const G4VPhysicalVolume *) const override
void ComputeDimensions(G4Box &, const G4int, const G4VPhysicalVolume *) const override
G4double GetVoxelHalfZ() const
G4VSolid * GetContainerSolid() const
std::size_t GetNoVoxelsX() const
void ComputeDimensions(G4Para &, const G4int, const G4VPhysicalVolume *) const override
void SetSkipEqualMaterials(G4bool skip)
std::size_t GetMaterialIndex(std::size_t nx, std::size_t ny, std::size_t nz) const
G4ThreeVector GetTranslation(const G4int copyNo) const
void ComputeDimensions(G4Hype &, const G4int, const G4VPhysicalVolume *) const override
void ComputeTransformation(const G4int, G4VPhysicalVolume *) const override
G4double GetVoxelHalfY() const
void ComputeDimensions(G4Cons &, const G4int, const G4VPhysicalVolume *) const override
void ComputeDimensions(G4Ellipsoid &, const G4int, const G4VPhysicalVolume *) const override
std::vector< G4Material * > GetMaterials() const
G4bool SkipEqualMaterials() const
void ComputeDimensions(G4Polyhedra &, const G4int, const G4VPhysicalVolume *) const override
void ComputeDimensions(G4Torus &, const G4int, const G4VPhysicalVolume *) const override
std::size_t * fMaterialIndices
std::size_t GetNoVoxels() const
G4double GetVoxelHalfX() const
std::size_t GetNoVoxelsZ() const
std::vector< G4Material * > fMaterials
~G4PhantomParameterisation() override
void SetMaterialIndices(std::size_t *matInd)
void ComputeDimensions(G4Trd &, const G4int, const G4VPhysicalVolume *) const override
G4bool bSkipEqualMaterials
void SetNoVoxels(std::size_t nx, std::size_t ny, std::size_t nz)
void ComputeDimensions(G4Tubs &, const G4int, const G4VPhysicalVolume *) const override
void ComputeDimensions(G4Sphere &, const G4int, const G4VPhysicalVolume *) const override
G4PhantomParameterisation()
G4VSolid * fContainerSolid
void ComputeDimensions(G4Polycone &, const G4int, const G4VPhysicalVolume *) const override
std::size_t GetNoVoxelsY() const
G4Polycone represents a composed closed shape (PCON) made of cones and cylinders, along the Z axis wi...
G4Polyhedra represents a composed closed polyhedra (PGON) made of planar sizes along the Z axis,...
G4Sphere is, in the general case, a section of a spherical shell, between specified phi and theta ang...
G4Torus represents a torus or torus segment with curved sides parallel to the z-axis....
G4Trap is a general trapezoid: the faces perpendicular to the Z planes are trapezia,...
G4Trd is a trapezoid with the X and Y dimensions varying along Z.
G4Tubs is a tube or tube segment with curved sides parallel to the Z-axis. The tube has a specified h...
G4VPVParameterisation()=default
G4VPhysicalVolume is an abstract base class for the representation of a positioned volume....
G4VSolid is an abstract base class for solids, physical shapes that can be tracked through....