Recent posts
#41
Particles, Track & Event / Re: secondary photon removal
Last post by julienzzzz - Nov 04, 2025, 09:19 PMHi Didier,
Thank you so much. It is very helpful.
Thanks,
Julien
Thank you so much. It is very helpful.
Thanks,
Julien
#42
Output Data / Multiple detectors
Last post by mwj12 - Nov 04, 2025, 02:22 PMI am gradually trying to evolve my single CBCT detector simulation into a multi-layer CBCT detector simulation. I might have anywhere between 1 and 4 detector layers. Is it possible to set up a simulation with more than one detector plane in the same simulation?
When I do this, I will want each layer's detector output to feel the effects of attenuation from the layers that come before it in the beam path. I will also want it to feel the effects of scatter from neighboring layers both before and after it in the beam path. I assume this means I will need to define a navigator for each detector layer. If so, am I still using GGEMSCTSystem to implement the detection process? Can navigators and GGEMSCTSystems occupy the same 3D space?
When I do this, I will want each layer's detector output to feel the effects of attenuation from the layers that come before it in the beam path. I will also want it to feel the effects of scatter from neighboring layers both before and after it in the beam path. I assume this means I will need to define a navigator for each detector layer. If so, am I still using GGEMSCTSystem to implement the detection process? Can navigators and GGEMSCTSystems occupy the same 3D space?
#43
Output Data / CBCT simulation output (energy...
Last post by mwj12 - Nov 04, 2025, 02:10 PMI am new to GGEMS and trying to generate simulated CBCT projections. As an initial example, I am implementing the detector as below, with scattered detections stored separately. My question is about whether the output that gets stored is energy-integrated or not, i.e., do the photon detections get weighted by their energies when tallying the final projection image. I have heard some rumors that, while the primary detections will be energy integrated, the scattered projections may not be. Is this fake news? And if I wanted to toggle energy integration on or off, say, to simulate a photon counting detector, is there way to do that for both primary and scatter?
Code Select
# TrueBeam CBCT geometry
ct_detector = GGEMSCTSystem('TrueBeam_CBCT')
ct_detector.set_ct_type('flat')
ct_detector.set_number_of_modules(1, 1)
ct_detector.set_number_of_detection_elements(193,257, 1)
ct_detector.set_size_of_detection_elements(0.776*2, 0.776*2, 0.7, 'mm')
ct_detector.set_material('CsI')
ct_detector.set_source_isocenter_distance(1000.0, 'mm')
ct_detector.set_source_detector_distance(1500.0, 'mm')
ct_detector.set_threshold(20.0, 'keV')
ct_detector.set_rotation(0.0, 0.0, -90.0, 'deg')
ct_detector.save('data/truebeam_projection')
ct_detector.store_scatter(True) #44
Geometry, Material & Navigation / Re: Adding bowtie and anti-sca...
Last post by mwj12 - Nov 04, 2025, 01:45 PMThanks a lot! When you say that
do not define a navigators? Or are these meshed navigators in disguise?
QuoteGGEMS does not support analytical navigators.does that mean that the geometric shape generators, like,
Code Select
box = GGEMSBox(24.0, 36.0, 56.0, 'mm')
box.set_position(-70.0, -30.0, 10.0, 'mm')
box.set_label_value(1)
box.set_material('Water')do not define a navigators? Or are these meshed navigators in disguise?
#45
Geometry, Material & Navigation / Re: Adding bowtie and anti-sca...
Last post by didier.benoit - Nov 04, 2025, 12:05 PMHi,
No, you don't need to create one large volume.
(1) Yes — if you want to add a new element to the beam path, you should include it as a navigator (a volume), either meshed or voxelized. GGEMS does not support analytical navigators.
(2) You can add as many navigators as you want, as long as they do not overlap in space. You can also freely combine voxelized and meshed navigators — they are completely independent. So in the example you mentioned (bowtie, filter layer, anti-scatter grid), yes, this setup is fully possible.
(3) In CBCT you do not need a voxelized source. This feature was mainly developed for future GGEMS versions that will support PET and SPECT simulations. It is intended to model photons emitted inside a volume. In a voxelized source, photons are emitted in 360 degrees, so it cannot be used to represent a directional X-ray tube source, if that's what you were considering.
Best regards,
Didier
No, you don't need to create one large volume.
(1) Yes — if you want to add a new element to the beam path, you should include it as a navigator (a volume), either meshed or voxelized. GGEMS does not support analytical navigators.
(2) You can add as many navigators as you want, as long as they do not overlap in space. You can also freely combine voxelized and meshed navigators — they are completely independent. So in the example you mentioned (bowtie, filter layer, anti-scatter grid), yes, this setup is fully possible.
(3) In CBCT you do not need a voxelized source. This feature was mainly developed for future GGEMS versions that will support PET and SPECT simulations. It is intended to model photons emitted inside a volume. In a voxelized source, photons are emitted in 360 degrees, so it cannot be used to represent a directional X-ray tube source, if that's what you were considering.
Best regards,
Didier
#46
Particles, Track & Event / Re: secondary photon removal
Last post by didier.benoit - Nov 04, 2025, 11:53 AMHi Julien,
No, in GGEMS you can't directly disable or remove secondary photons.
However, if you subtract the scatter image from the raw data, you will obtain an image containing only the primary photons.
There is another possible solution, but only if you are using a mono-energetic source: you can set very high energy cuts, close to the incident energy, which will practically keep only the primary photons.
Best regards,
Didier
No, in GGEMS you can't directly disable or remove secondary photons.
However, if you subtract the scatter image from the raw data, you will obtain an image containing only the primary photons.
There is another possible solution, but only if you are using a mono-energetic source: you can set very high energy cuts, close to the incident energy, which will practically keep only the primary photons.
Best regards,
Didier
#47
Geometry, Material & Navigation / Adding bowtie and anti-scatter...
Last post by mwj12 - Nov 04, 2025, 12:12 AMHello, I am a new GGEMS user, trying to simulate a cone beam CT (CBCT) system, but am not finding any examples in the documentation about including additional post-source elements (e.g., bowtie and filter) and pre-detector elements (e.g. anti-scatter grid) in the beam path, in addition to the usual CBCT subject (i.e., the digital phantom). The naive option would be to craft a giant phantom grid to include both the phantom and these other elements, which I do not want to do for reasons of computation and memory efficiency.
My understanding is that this can be avoided by using what the documentation calls "navigators" (voxelized or meshed). My questions are,
(1) Is this understanding correct? Is this the intended and preferred way of including additional objects in the beam path?
(2) Can any number of navigators be added, and can the two types be mixed in arbitrary combinations? Could I have for example, in addition to the phantom, a voxelized navigator for the bowtie, a meshed navigator for the pre-bowtie filter layer, and another meshed navigator for the anti-scatter grid?
(3) The documentation mentions something called a "voxelized source". Is this the same as a voxelized navigator? And when providing a voxelized source, is the .mhd file describing a bowtie, or something else?
My understanding is that this can be avoided by using what the documentation calls "navigators" (voxelized or meshed). My questions are,
(1) Is this understanding correct? Is this the intended and preferred way of including additional objects in the beam path?
(2) Can any number of navigators be added, and can the two types be mixed in arbitrary combinations? Could I have for example, in addition to the phantom, a voxelized navigator for the bowtie, a meshed navigator for the pre-bowtie filter layer, and another meshed navigator for the anti-scatter grid?
(3) The documentation mentions something called a "voxelized source". Is this the same as a voxelized navigator? And when providing a voxelized source, is the .mhd file describing a bowtie, or something else?
#48
Particles, Track & Event / secondary photon removal
Last post by julienzzzz - Nov 02, 2025, 10:26 PMHi GGEMS staff,
In CT simulation, is there any approach to remove the secondary photons and only collect primarys? If I remove the scatter raw data, the only primary photons would be left?
Thanks,
Julien
In CT simulation, is there any approach to remove the secondary photons and only collect primarys? If I remove the scatter raw data, the only primary photons would be left?
Thanks,
Julien