mwj12

*
Newbie
Posts: 26
Logged
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')


didier.benoit

Administrator
*****
Newbie
Posts: 18
Logged
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.