Best way to get Counts/LET spectra

Dear FLUKA experts,

I would like to ask for your help on what is the best way to get Counts vs. LET spectra in a given region.

For my test setup, I am shooting protons at a water block target with some polyethylene shielding. I would like to get some information on the Counts vs. LET spectra inside the water block.

After searching in the forum and the FLUKA manual, I think the best way to get it is through USRYIELD. However, I am a bit confused on how to correctly set it up.

List of my questions are:

  1. Why does not USRYIELD specify the region you are interested in?
  2. As the snapshot shown below, is there any way that I do not have to look at “ia” or “x2”? I am only interested in 1 quantity, which is the particle LET.
  3. What is the correct way to set the upper and lower limit for “x1” and “x2” so the plot would make sense? (I am sorry if this question is a bit vague)

Please forgive me if I made any incorrect assumption or used any wrong expression. I am a beginner learner in both Nuclear physics and FLUKA.

Thanks in advance for your help.


Dear @KillMartin, no need for forgiveness, I do not see any crime there.
USRYIELD is a good choice to get LET spectra, but it does not apply to a region volume, rather to a boundary surface between two regions, where the energy of a particle and hence its LET are well defined. However, you selected in the Yield field of the card a different usage of USRYIELD (i.e. EMERGING), which scores particles as they are produced in nuclear reactions, at the reaction point, no matter where (one could even restrict this type of scoring to a specific region, by means of the fluscw.f user routine, going beyond a beginner use). It’s up to you to judge which information is actually more relevant to your purposes.
Concerning the second quantity ia, meant for filtering, it may be useless in several circumstances, as yours. If this is the case, one should better select a quantity whose limits are under control, such as charge, whose values are certainly included in the interval between Min2 = -5 and Max2= +95. The latter de facto does not apply any filter and has a convenient dx2 length equal to 100, allowing an immediate renormalization of the double differential yield, which will be given as divided not only by the dx1 LET bin length, but also by dx2.
As for the LET limits Min1 and Max1 (in keV/(micrometer g/cm3) = keV/micrometer for your WATER LET choice), just keep them initially wide and adjust them after a first run. Pay attention to the resulting double differential yield units, indicated above and recalled also in the manual (read USRYIELD, in particular Note 7).

Dear Francesco,

Thank you for your patience and detailed explanation. I did some experimental runs after some thinking try to understand what you said. However, I still can’t quite get how to use this estimator.

So my settings for the USRYIELD is shown below. I am shooting protons at a water block with some polyethylene shielding in the middle. All I’m trying to do is to generate Count (or Yield) vs. LET plots for different shielding depths. After some runs, the table generated have all the output as zeros.


Could you tell me what’s wrong or how would you try to achieve this if it was something you are trying to do?

Thank you for your time in advance.

Best regards,


I cannot give you a final answer in the absence of your input file, without even knowing your proton energy nor shielding thickness. What I see there is that you look at particles entering the tissue region from the VOID region. Do these regions share a boundary? Where is the latter located with respect to the impinging beam? Apparently you do not get any particle there, either because the boundary does not exist or no charged particle manages to cross it. In case of persisting failure, I suggest you to upload your .flair file.

Sorry, you are totally right. I should’ve upload my files.
The attached is my .flair file along with the .input file.
Test.flair (1.7 KB) Test.inp (1.4 KB)

Hi @KillMartin,
the range of your 162 MeV proton beam is slightly shorter that the thickness of the PE region.
It might be that no charged particles reach the scoring surface.
Hope this could help.

Dear @luillo ,

I have suspected it might be the case after @ceruttif pointed out that I might have no particles reach the water block. However, there is deposited dose in the water block. So I think this is probably not the case.

Thank you for your insight.


Hi @KillMartin
you are right, protons get there (although also neutrons could in principle be indirectly responsible for energy deposition, but they are not the dominant ones here).
The problem is with the USRYIELD card. Since you selected different Yield types (EMERGING/ENTERING) before moving to the region boundary scoring, the ALL-PART coding by Flair got stuck on a previous value resulting in your null scoring. To see what I mean, you should look at the card translation appearing at the bottom of the Flair window. There, in the respective WHAT(2) field, you can see “-1201.” instead of “ALL-PART”. Learning from your experience, Flair is going to be properly patched to prevent such a glitch. In the meantime, you can just change the Part type by means of the scrolling menu to anything else and then come back to ALL-PART. After doing so, you will eventually get your LET spectrum, indicating that the input 10 keV/um upper limit shall be increased.

A post was split to a new topic: Question on LET spectra