DIDSR / VICTRE_MCGPU

Version of MC-GPU used in the VICTRE project
31 stars 17 forks source link

Planar radiography projections with rotation like in a CT geometry #12

Open SakaltrasNikolaos opened 2 years ago

SakaltrasNikolaos commented 2 years ago

Hi,

I am using the simulator for chest radiography. The geometry is SDD 1800mm, Air Gap 50mm. Size of detector 3520x4288 with a 0.1mm pixel size, an 120kV spectrum and 1.2mm focal spot.

I am confused in the case that in this geometry if I rotate like in a CT (putting the center of rotation in the center of the volume), I take normal projection components, although this cannot happen in reality, because the detector would pass through the patient/volume, because he/she is located so close to the detector in this setting.

Is it possible that the simulator when I pass the parameters of air gap and center of rotation, it recalculates the position of the patient according to the current angle of projection so that the volume will not pass through the detector?

Is this way of projecting a volume supposed to be unacceptable, because it does not resemble reality?

Thank you in advance for your insights.

Regards.

andreubs commented 2 years ago

Dear SakaltrasNikolaos,

MCGPU defines the detector at the position that you specify in the input file, based on the source location and the source to detector distance. There is not any automatic check to make sure that the detector does not intersect with the voxelized volume. The user should make sure that this intersection can't happen, because the behavior of the code will not be reliable (I never tested that). It will probably work if there is some air intersected only, but definitely give strange results if the patient body is penetrated.

Note that in a physical system you are also going to have unexpected results if you hit the patient with the detector (maybe even a lawsuit).

The voxelized volume is never moved or rotated during the simulation. But you can specify an initial translation of the voxel volume in the input file: "OFFSET OF THE VOXEL GEOMETRY".

The function that calculates the position of the source and detector at each projection angle is called set_CT_trajectory and available here: https://github.com/DIDSR/VICTRE_MCGPU/blob/5ffd1db0e21c01137bba0dacd877986b58fa2a13/MC-GPU_v1.5b.cu#L3821

If you activate the input option "# KEEP DETECTOR FIXED AT 0 DEGREES FOR DBT?", the detector will stay fixed while the source rotates (as in DBT), and you will not hit the patient. If you don't activate this option, then the detector automatically rotates to be perpendicular to the incoming beam at each projection angle, potentially entering the voxelized geometry.

I hope this helps.

Best regards,

Andreu