Appropriate EGSnrc user codes for simulating an x-ray radiography experiment #992
-
Hi EGSnrc community. I seek suggestions for appropriate EGSnrc user codes to implement a particular in-silico experiment. I wish to simulate a typical radiography setup, in-which a x-ray beam passes through an anthropomorphic phantom and deposits its energy to a flat panel detector some distance behind the phantom. I have already generated the x-ray spectra using BEAMnrc and scored a phasespace file at the exit of the collimators. Now I wish to use these spectra as the source in other simulations, where the photons traverses the phantom before depositing their energy in a flat panel detector. I have modelled the flat panel detector in a pixelated fashion using egs_ndgeometry of the type EGS_XYZGeometry and stored it in a I believe DOSXYZnrc could be suitable for my application, however I have been unable to sucessfully include both the phantom and the detector geometries in the same input file, and somewhat unsure if this is even doable. I have constructed my experimental setup using the typical syntax of I seek advice on which user code in EGSnrc could be suitable to achieve my desired outcome. To be clear I do not wish to score dose depositions in the phantom itself but wish to simulate generation of projection images in the flat panel detector (e.g., as dose scored in each of the pixel voxels of my detector geometry). Any advice, ideas or suggestions are greatly appreciated! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
DOSXYZnrc can only handle a single egsphant file as input, so egs++ is the better choice. You can score the dose to each voxel in your flat panel using egs_dose_scoring. It will print the dose to each region in a range, which you can determine using egs_view. You'll just have the process the region numbers into the voxel location, but this should be reasonable straightforward. https://nrc-cnrc.github.io/EGSnrc/doc/pirs898/classEGS__DoseScoring.html E.g. use By the way, you could consider looking at the functionality of egs_cbct, it has some powerful VRTs implemented for kV imaging. |
Beta Was this translation helpful? Give feedback.
DOSXYZnrc can only handle a single egsphant file as input, so egs++ is the better choice. You can score the dose to each voxel in your flat panel using egs_dose_scoring. It will print the dose to each region in a range, which you can determine using egs_view. You'll just have the process the region numbers into the voxel location, but this should be reasonable straightforward.
https://nrc-cnrc.github.io/EGSnrc/doc/pirs898/classEGS__DoseScoring.html
E.g. use
dose start region
anddose stop region
to list the range of regions for the voxels, and the dose to those regions will be output at the end of the simulation.By the way, you could consider looking at the functionality of egs_cbct, it …