GGEMS Community

General Category => Geometry, Material & Navigation => Topic started by: mwj12 on Nov 26, 2025, 04:50 AM

Title: The meaning of source_isocenter_distance and source_detector_distance
Post by: mwj12 on Nov 26, 2025, 04:50 AM
In the doc examples, it appears that CT x-ray sources and CT detectors are independent elements, created respectively with GGEMSXRaySource and GGEMSCTSystem. For example, In visualization.py, it is shown how you can have two GGEMSXRaySource and  two GGEMSCTSystem components in the same simulation, none belonging to the other.

How is it then that  each GGEMSCTSystem object has geometry parameters source_isocenter_distance and source_detector_distance which seem to be tied to a particular x-ray source? In particular, when we use code like the following to set these parameters, which x-ray source are the distances set relative to if there happens to be more than one source?
cbct_system = GGEMSCTSystem('detector')
cbct_system.set_ct_type('flat')

cbct_system.set_source_detector_distance(1500.5, 'mm')
cbct_system.set_source_isocenter_distance(900.0, 'mm')

Title: Re: The meaning of source_isocenter_distance and source_detector_distance
Post by: didier.benoit on Nov 28, 2025, 07:40 PM
In version 1.3:

GGEMSXRaySource = independent source, with its own position/orientation.

GGEMSCTSystem = CT system geometry description (isocentre → source → detector distances).

The CT system assumes a specific scanning geometry (as in a real CT gantry), and these distances are internal parameters used for projections and detector placement.

This is why you can create several GGEMSXRaySource and several GGEMSCTSystem objects independently:
the CT system does not track or reference a specific GGEMSXRaySource.

If several sources exist, the CT system geometry stays the same and is not "linked" to one of them.
It simply defines its own source position relative to its isocentre internally.
Title: Re: The meaning of source_isocenter_distance and source_detector_distance
Post by: mwj12 on Nov 29, 2025, 04:11 AM
Thanks!