How to calculate the scatter-to-primary ratio (SPR) in FLUKA?

Versions

Please provide the used software versions.

FLUKA:4-5.2
Flair:4-5.2

Description

I am trying to calculate the scatter-to-primary ratio (SPR) in FLUKA for a photon beam passing through a phantom and reaching a detector.

Could anyone please advise on the recommended approach to separate the primary and scattered photon contributions? Is there a standard method using FLUKA scorers (such as USRBDX, USRTRACK, or USRBIN), or is it necessary to use a user routine like mgdraw.f to identify whether detected photons are primary or scattered?

If there are any example input files, user routines, or documentation demonstrating this calculation, I would greatly appreciate it.

Thank you for your help.

Input files

Please upload all relevant files. (FLUKA input file, Flair project file, user routines, and data files)

Dear Rohit,

You can score the fluence of the primary particles (that have not undergone an interaction) using the particle type BEAMPART with the standard scoring options.

Cheers,
David

Dear David,

Thank you for your reply.

I have one follow-up question. My source is an isotropic Cs-137 point source, and I am using the DETECT card to score the detector response.

My goal is to separate the detector counts into:

  • Primary: photons reaching the detector without undergoing any prior interaction.

  • Scattered: photons that have undergone at least one interaction before reaching the detector.

Can BEAMPART be used together with DETECT to obtain the primary detector counts, so that the scattered counts can be calculated as the difference between the total DETECT counts and the primary counts?

Or, for this type of isotropic source and DETECT scoring, would it be necessary to use a user routine such as mgdraw.f to distinguish between primary and scattered photons?

Thank you very much for your time and guidance.

Best regards,

Rohit

Dear Rohit,

BEAMPART can’t be used with DETECT since it doesn’t score particle fluence but energy deposition.

You can use the usrmed.f user routine to kill scattered particles that passed through the phantom before they reach the detector by checking their LTRACK generation number.

Cheers,
David

Dear David,

Thank you very much for the clarification.

I understand that BEAMPART cannot be used with DETECT because DETECT scores energy deposition rather than particle fluence.

In my case, I have an isotropic Cs-137 point source and a 2" × 2" NaI detector. My goal is to obtain the DETECT pulse-height spectrum separated into primary and scattered photon contributions.

I understand from your suggestion that I can use usrmed.f to kill photons that have already undergone an interaction before reaching the detector, based on their LTRACK generation number.

Could you please clarify:

  1. Should I kill the photon when LTRACK indicates a generation greater than the primary generation?
  2. Should this be done only when the photon is approaching/entering the NaIdet region?
  3. Is there an example usrmed.f routine or template showing how to use LTRACK for this purpose?

I would then run the simulation twice: once normally for the total DETECT spectrum, and once with the scattered photons killed to obtain the primary-only spectrum, and subtract the two spectra to obtain the scattered spectrum.

Thank you again for your help.

Best regards,
Rohit

Dear Rohit,

  1. Yes, but you need to keep in mind, if you are using an ISOTOPE source, the decay photons will have the LTRACK equal 2. Furthermore, with ISOTOPE sources you will get the electrons and X-ray photons from the decay as well.
  2. If you have air between the phantom and detector, then you should kill the particles on the outside surface of your detector.
  3. There isn’t an example, but you can find similar topic on this forum, like: Distinguish edep generated by different types of transportation and physics processes - #7 by songhg19

Cheers,
David

Dear David,

Thanks a lot for your help. I will check it and let you know if I need further help.

Cheers,

Rohit