Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | List of all members
DicomRegularDetectorConstruction Class Reference

DicomRegularDetectorConstruction class. More...

#include <Doxymodules_medical.h>

Inheritance diagram for DicomRegularDetectorConstruction:
DicomDetectorConstruction G4VUserDetectorConstruction

Public Member Functions

 DicomRegularDetectorConstruction ()
 
 ~DicomRegularDetectorConstruction ()
 
- Public Member Functions inherited from DicomDetectorConstruction
 DicomDetectorConstruction ()
 
 ~DicomDetectorConstruction ()
 
virtual G4VPhysicalVolumeConstruct ()
 
G4int GetTotalVoxels () const
 

Private Member Functions

virtual void ConstructPhantom ()
 

Additional Inherited Members

- Protected Member Functions inherited from DicomDetectorConstruction
void InitialisationOfMaterials ()
 
void ReadPhantomData ()
 
void ReadPhantomDataNew ()
 
void ReadVoxelDensities (std::ifstream &fin)
 
void ReadPhantomDataFile (const G4String &fname)
 
void MergeZSliceHeaders ()
 
G4MaterialBuildMaterialWithChangingDensity (const G4Material *origMate, G4float density, G4String newMateName)
 
void ConstructPhantomContainer ()
 
void ConstructPhantomContainerNew ()
 
void SetScorer (G4LogicalVolume *voxel_logic)
 
virtual void ConstructSDandField ()
 
- Protected Attributes inherited from DicomDetectorConstruction
G4MaterialfAir
 
G4BoxfWorld_solid
 
G4LogicalVolumefWorld_logic
 
G4VPhysicalVolumefWorld_phys
 
G4BoxfContainer_solid
 
G4LogicalVolumefContainer_logic
 
G4VPhysicalVolumefContainer_phys
 
G4int fNoFiles
 
std::vector< G4Material * > fOriginalMaterials
 
std::vector< G4Material * > fMaterials
 
size_t * fMateIDs
 
std::map< G4int, G4double > fDensityDiffs
 
std::vector< DicomPhantomZSliceHeader * > fZSliceHeaders
 
DicomPhantomZSliceHeaderfZSliceHeaderMerged
 
G4int fNoVoxelsX
 
G4int fNoVoxelsY
 
G4int fNoVoxelsZ
 
G4double fVoxelHalfDimX
 
G4double fVoxelHalfDimY
 
G4double fVoxelHalfDimZ
 
G4double fMinX
 
G4double fMinY
 
G4double fMinZ
 
G4double fMaxX
 
G4double fMaxY
 
G4double fMaxZ
 
std::map< G4int, G4Material * > fPhantomMaterialsOriginal
 
DicomPhantomZSliceMergedfMergedSlices
 
std::set< G4LogicalVolume * > fScorers
 
G4bool fConstructed
 

Detailed Description

DicomRegularDetectorConstruction class.

Construct the phantom using DicomPhantomParameterisatin

History: 30.11.07 First version

Author
P. Arce

Definition at line 30 of file Doxymodules_medical.h.

Constructor & Destructor Documentation

◆ DicomRegularDetectorConstruction()

DicomRegularDetectorConstruction::DicomRegularDetectorConstruction ( )

◆ ~DicomRegularDetectorConstruction()

DicomRegularDetectorConstruction::~DicomRegularDetectorConstruction ( )

Definition at line 58 of file DicomRegularDetectorConstruction.cc.

59{
60}

Member Function Documentation

◆ ConstructPhantom()

void DicomRegularDetectorConstruction::ConstructPhantom ( )
privatevirtual

Implements DicomDetectorConstruction.

Definition at line 63 of file DicomRegularDetectorConstruction.cc.

64{
65#ifdef G4VERBOSE
66 G4cout << "DicomRegularDetectorConstruction::ConstructPhantom " << G4endl;
67#endif
68
69 //----- Create parameterisation
72
73 //----- Set voxel dimensions
74 param->SetVoxelDimensions( fVoxelHalfDimX, fVoxelHalfDimY, fVoxelHalfDimZ );
75
76 //----- Set number of voxels
77 param->SetNoVoxels( fNoVoxelsX, fNoVoxelsY, fNoVoxelsZ );
78
79 //----- Set list of materials
80 param->SetMaterials( fMaterials );
81
82 //----- Set list of material indices: for each voxel it is a number that
83 // correspond to the index of its material in the vector of materials
84 // defined above
85 param->SetMaterialIndices( fMateIDs );
86
87 //----- Define voxel logical volume
88 G4Box* voxel_solid =
90 G4LogicalVolume* voxel_logic =
91 new G4LogicalVolume(voxel_solid,fMaterials[0],"VoxelLogical",
92 0,0,0);
93 // material is not relevant, it will be changed by the
94 // ComputeMaterial method of the parameterisation
95
96 voxel_logic->SetVisAttributes(
97 new G4VisAttributes(G4VisAttributes::GetInvisible()));
98
99 //--- Assign the fContainer volume of the parameterisation
100 param->BuildContainerSolid(fContainer_phys);
101
102 //--- Assure yourself that the voxels are completely filling the
103 // fContainer volume
104 param->CheckVoxelsFillContainer( fContainer_solid->GetXHalfLength(),
105 fContainer_solid->GetYHalfLength(),
106 fContainer_solid->GetZHalfLength() );
107
108 //----- The G4PVParameterised object that uses the created parameterisation
109 // should be placed in the fContainer logical volume
110 G4PVParameterised * phantom_phys =
111 new G4PVParameterised("phantom",voxel_logic,fContainer_logic,
112 kXAxis, fNoVoxelsX*fNoVoxelsY*fNoVoxelsZ, param);
113 // if axis is set as kUndefined instead of kXAxis, GEANT4 will
114 // do an smart voxel optimisation
115 // (not needed if G4RegularNavigation is used)
116
117 //----- Set this physical volume as having a regular structure of type 1,
118 // so that G4RegularNavigation is used
119 phantom_phys->SetRegularStructureId(1); // if not set, G4VoxelNavigation
120 //will be used instead
121
122 SetScorer(voxel_logic);
123}
std::vector< G4Material * > fMaterials
void SetScorer(G4LogicalVolume *voxel_logic)
Class inherited from G4PhantomParameterisation to provide different.

The documentation for this class was generated from the following files:

Applications | User Support | Publications | Collaboration