Simulating scintillation response

Dear FLUKA Experts,

I am new to FLUKA and I want to simulate the response of a scintillator based on different sources, thus I have many questions. I will try and structure this in a way that makes sense. Also I hope this is the appropriate topic since I couldn’t find one which fit entirely.

The outputs I would like from the simulation are:

  1. Total number of photons at the boundary entering and exiting the scintillator (from the beam direction)
  2. Scintillation photon spectrum

Scoring and Plotting
Currently I am only concerned with optical photons and have setup a USRBIN to score these photons. Having checked the manual about what the values from USRBIN mean physically, am I correct to say that for optical photons USRBIN scoring gives photons/cm3 for an XYZ space? Will this give the total number of photons in the scintillator?

Is there a better way to find out the number of photons crossing a surface of the scintillator? I have tried USRBDX but kept running into plotting errors so I don’t know if I had set it up correctly.

On the USRBIN plot, it has a projection integral value, what does this mean?

Scintillation physics
Concerning the photon generation, does the simulation as I have set it up produce only photons of a single wavelength? Is there a way to obtain a scintillation photon spectrum (something resembling wavelengths along the horizontal axis and intensity along the vertical axis).

If I run the simulation with a higher number of primaries, does that mean I will be generating more photons from the scintillator?

Do you know of a beam/source which can represent ground level background radiation?

I appreciate that there are a lot of questions, any input or feedback would be greatly appreciated!
Basic.flair (1.6 KB)
Scint.inp (1.9 KB)


Dear Justin,
welcome to the FLUKA forum!

I will try to answer all of your questions - please do not hesitate to contact me in case I missed anything.

Scoring and plotting

  • USRBIN scoring gives an estimate of photon fluence [number of photons per cm^2 per primary]. You could use the output of USRBIN to calculate the total number of photons, but for your case I believe there is a better way - to use USRBDX.

  • USRBDX can give you a spectrum of photons leavig the scintillator and when integrated, it can give you the total number. The problem I see in your .inp file is that the properties of the USRBDX scoring are not set (all field are left blank). You might want it to set it approximately like this: usrbdx_example
    The results of USRBDX (when not defining the area) give you the number of photons leaving the scintillator in GeV^-1 per primary. Therefore, to get the absolute number of optical photons you need to normalize by the width of the energy bin in the spectrum. Also, be aware that the results are normalized per primary (per one particle of the beam).

Scintillation physics

  • Yes, it does produce photons of a single wavelength. Unfortunately, when using the OPT-PROD card, you can only produce up to 3 wavelengths. Here it depends on the level of precision you are trying to achieve. In most cases, it is sufficient to simulate only one wavelength with energy equal to the emission maximum of the scintillator. Should you really need to simulate the whole spectrum, there might be some advanced options.


  • FLUKA results are normalized per primary, so the amount of generated photons will stay the same. What does change is the statistical error.


  • Natural background at ground level comes mainly from the uranium series, thorium series, and potassium 40. The ratio between these mainly depends on the location. You might try using such radioactive sources using the RADDECAY card. I would personally recommend to try U-238 as a source. In case you would need to simulate cosmic radiation, there are tools to do that as well.

  • I would also recommend to add an OPT-PROP card with Type = “blank” to your .inp file to set the optical properties (such as the refraction index) to your scintillator.

Kind regards

Hi Vojtěch,

Thank you for your reply, it’s been extremely useful! I appreciate your direction for the natural sources too.

I wanted to check one thing regarding the USRBDX output. I’ve normalised my output by the bin width which would give me photons/primary and so to calculate the absolute number of photons, I would multiply this by one primary energy. However, the number of photons I’m getting is about 1000 times too small.

I’ll illustrate an example with one of my runs.
Beam energy = 1 MeV
USBDX output = 3.2045191E+13 Photons/GeV per primary
Bin width = 2E-12 GeV
Primaries = 5000

Photons per primary = 3.2045191E+13 * 2E-12 GeV = 64.090382 (EDIT: I’ve noticed this value is given in the sum.lis file under total response)
Photons = 64.090382 * 1 MeV = 64.090382.

This final value is about 1000 times less than the light yield I would expect from my scintillator which would be ~64000 photons per MeV.

Do you know why this is? I’m worried I may be getting confused with units somewhere along the way.

Thanks again,

Hi Justin,

I am looking into the problem, but I am seeing some normalization issues as well, I will let you know once I manage to resolve them.

One thing I see at the moment that might help you is that the scintillator light yield is given in photons per MeV of deposited energy (not the energy of incoming photon).

Kind regards

Hi Justin,

I looked a bit more into the problem and with a help of a colleague managed to solve the problem.

  • There is a problem in your input file - the DEFAULTS card is put after the beam card, so it resets the beam settings.

  • In order to get the amount of optical photons, it is necessary to score the current (instead of fluence) using the USRBDX card.

  • It is necessary to set the optical properties of the scintillator using the OPT-PROP card with Type = “blank” in order to allow propagation of optical photons inside the scintillator.

  • The amount of generated photons is driven by the paramater “fraction” on the OPT-PROD card. It sais what fraction of deposited energy is converted into optical light. This can be calculated from the given light yield of a scintillator. If it is 64 000 photons of 2.252 eV per 1 MeV of deposited energy, the fraction should be 0.144128.

  • Given the dimensions of the scintillator within your geometry, it is clear that in most cases the energy of the beam photon (661 keV) will not be fully absorbed. This means, that the average number of generated optical photons per primary would be much lower than tens of thousands. The results I see are ~900 optical photons per primary.

Please find the modified .flair and .inp files below, I hope this helps.

Basic.flair (1.9 KB)
Scint.inp (2.3 KB)

Hi Vojtěch,

Thanks for taking the time to work through this! You’ve been a huge help.

Last thing, I noticed the refractive index parameter accepts values <1 which doesn’t make physical sense to me as I know n=c/v. Is there a physics reference for FLUKA?

Beyond that, I’m happy!


Hi Justin,

this is a very interesting point! I will ask my colleagues from development whether they could make sure that values of <1 are not accepted anymore in the next version of FLUKA.

Kind regards

1 Like

A post was split to a new topic: Fraction of deposited energy converted to optical photons