Dosimetry¶
During GGEMS simulation, a photon dosimetry module can be activated to compute absorbed dose in a specific phantom.
Note
Only photon are simulated in the current version of GGEMS. In next releases electron will be implemented.
The dosimetry module is ‘GGEMSDosimetryCalculator’:
dosimetry = GGEMSDosimetryCalculator()
After creating the GGEMSDosimetryCalculator object, a navigator is attached:
dosimetry.attach_to_navigator('phantom')
The size of voxel in dosimetry image (dosel) can be set. If not set the dosel size is the same than voxel phantom size:
dosimetry.set_dosel_size(0.5, 0.5, 0.5, 'mm')
The absorbed dose is computed in gray (Gy). By default the dose in computed using materials in phantom. Otherwize the user can set water material everywhere in phantom.
dosimetry.water_reference(True)
A custom threshold can be set on density. If density of phantom is below the threshold the dose value in 0.
dosimetry.minimum_density(0.1, 'g/cm3')
For dose output, there are many informations the user can save such as: uncertainty value of the dose, the deposited energy in dosel, the squared of deposited energy in dosel and the number of interaction (hit) in dosel:
dosimetry.set_output('data/dosimetry')
dosimetry.uncertainty(True)
dosimetry.edep(True)
dosimetry.hit(True)
dosimetry.edep_squared(True)
There is a special output named ‘photon tracking’. This output registers the number of photons crossing a dosel. To use this option, the size of dosel has to be the same than the phantom voxel size, otherwize GGEMS will throw an error:
dosimetry.photon_tracking(True)