SPECT/CT simulation

Dear experts,

I am planning on simulating a SPECT/CT system for radiation protection purposes. Since this is a hybrid modality, I need to account for two source types: the radioactive isotope at a specific activity level (SPECT component) and the X-ray tube with its defined settings (CT component). My aim is to simulate these over a realistic timeframe (e.g., 20 minutes) to reflect an actual SPECT/CT scan. I plan to simulate each source separately, then combine the results for comparison with physical TLD measurements.

My concerns are the following:

  1. SPECT Component: Regarding the radioactive source, I came across a forum post (DOSE simulations for Co-60 source) suggesting that normalisation factors can be applied during post-processing. For instance, if A = 700 MBq and t = 20 mins, my understanding is that I would use a normalisation factor of: 700e^6 * 60 * 20 * 3 / 1e6, where:

    • 700e6 = activity in Bq,
    • 60 = conversion from minutes to seconds,
    • 20 = total scan time in minutes,
    • 3 = scaling factor to yield a rate per hour,
    • /1e6 = conversion from pSv to µSv,

    so that the final result is in µSv/h. Since I’m only multiplying by constants, I assume the uncertainty (given as a percentage) would remain unaffected by this normalisation. Are my assumptions correct?

  2. CT Component: I found in another post (X-ray spectrum FLUKA) that to account for the mAs setting, I need to determine the number of particles generated for that setting. How can this specific number be determined? Is there perhaps a resource or database where I can find such values? Furthermore, do other parameters like kVp particle fluence determination?

Any input on these questions, no matter how small, would be greatly appreciated!

Kind regards,
Samuel

Dear @samuel_grima,

Thank for your question, I hope I can of assistance.

  1. Regarding the SPECT component:
    a. Note the difference between DOSE (GeV/g/primary) and DOSE-EQ (pSv/primary). Your normalisation applies to the DOSE-EQ, while the post you linked refers to DOSE.
    b. Yes, the relative uncertainty stays the same.

  2. Regarding the CT Component:
    a. As already indicated, FLUKA outputs the result per ONE simulated particle (primary). So it is your task to find the absolute number of particles that have been generated by your device. This should be on the manufacturer data sheet.
    b. If your device is mono-energetic, then this is a simple linear normalisation factor. However, if you have an energy distribution of your source (e.g. sharp peaks, but also a continuum), then you should use a user routine to replicate the specific energy distribution.

Do let me know if there is any further support I can provide.

Best,
Daniel

Dear @dprelipc,

Thank you very much for your response. In reply to your answers:

  1. So if I choose DOSE-EQ, is the normalisation factor I applied here correct? Am I right in assuming that FLUKA outputs results per second, as I’m converting from minutes to seconds?

  2. I’ll consult with the person responsible regarding the fluence data sheet. As for the energy, the spectrum is polychromatic given that it’s from an X-ray tube. Unfortunately, I am not experienced in using user routines (I know they exist and what their purpose is, but that’s it), so I am uncertain about implementing kVp variation with them. Moreover, are you suggesting that I should experimentally obtain the X-ray tube’s energy spectrum from the CT scanner and then compare it with the one generated by FLUKA?

Your insights have already been very helpful—thank you again!

Kind regards,
Samuel

Dear @samuel_grima,

  1. The normalisation factor you apply is correct. The FLUKA output is per ONE primary/particle, that is why you use the source activity to convert into particles/s. I assume also you meant that you convert from seconds to minutes and then to hours.
  2. Of course experimentally obtaining the X-ray tube’s energy spectrum might be the most accurate, but also this depends on your time/resources. Typically, manufacturers of X-ray tubes provide the energy spectrum, or one can use an ideal one.
    I can point you towards this question, for example. You just require a file with the actual energy distribution, and then some minimal changes/adjustments.
1 Like

Dear @dprelipc,

Thank you once again for your response. It seems the SPECT issue is now resolved.

For the CT component, just to confirm, if I am unable to determine the spectrum experimentally or from data sheets, I could use a tool such as SpekPy Web to generate the spectrum with specific energy bins and intensities, and then input the file into FLUKA similarly to the other question.

Since I am still working through a past beginner’s course material, I’ll need to learn more about implementing user routines before I can proceed with this. For that reason, I’d like to keep this topic open for now.

In any case, you were of so much help! Very much appreciate it!

Kind regards,
Samuel

1 Like