38#ifndef G4PhantomParameterisation_HH
39#define G4PhantomParameterisation_HH
128 void SetNoVoxels( std::size_t nx, std::size_t ny, std::size_t nz );
147 std::size_t
GetMaterialIndex( std::size_t nx, std::size_t ny, std::size_t nz)
const;
159 void ComputeVoxelIndices(
const G4int copyNo, std::size_t& nx,
160 std::size_t& ny, std::size_t& nz )
const;
163 void CheckCopyNo(
const G4long copyNo )
const;
196#include "G4PhantomParameterisation.icc"
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