Spread-out Bragg peak for proton beam assuming gaussians

Dear FLUKA experts,

I want to simulate a spread-out Bragg peak (SOBP) for a proton beam consisting of n=9 energy layers (monoenergies) that are Gaussian distributed both in terms of energy and position. That means, each of the beamlets are specified by a distinct nominal energy E (in GeV), Gaussian energy spread sigma_E (in GeV), Gaussian spread in x-direction sigma_x (in cm), Gaussian spread in y-direction sigma_y (in cm) and normalized weight w_norm (see attached file SOBP.dat, where the values are stored in respective columns). How do I go about implementing this? Furthermore, I am unfamiliar with Fortran and have never defined a source before. So a step-by-step guide for adapting the source.f and how to compile and run using Flair would be much appreciated! Thank you in advance.

Kind regards,
Delmon

SOBP.dat (467 Bytes)

1 Like

Dear Delmon,

you may want to take a look at the BEAMSPOT option of the SPECSOUR card, which allows to create multiple beams at the same time.

See slides 25+ from

Cheers,
David

1 Like

Dear Delmon,

Once I’ve worked on a custom source code which accepts sobp.dat file in very similar format.
Please take a look at:

If this is something that may be useful I can directly help you in setting it up.

Solution mentioned by David doesn’t require compilation of custom source, but in that source it is assumed that momentum, not energy has a normal distribution. Therefore you need to specify momentum spread, not energy spread. The relation between momentum and energy is nonlinear, therefore you won’t get a perfect normal distribution of energy, but something that is to some degree approximation. Nevertheless, for 1% energy spread differences won’t be significant.

The custom Fortran source assumes normal energy (not momentum) distribution.

Cheers,
Leszek

1 Like

Dear Leszek,

I would be very grateful to have such alternative solution for simulating the modulated proton beam. However, as stated, then I would need some step-by-step assistance in order to compile and run this customized source.f through Flair. Furthermore, the specification of momentum spread is noted.

Kind regards,
Delmon

Dear Dávid,

I thank you for a swift solution. However, I have an additional concern related to this problem: later, I need to simulate several beam spots originating at different x,y,z positions, where each spot is energy-modulated according to a SOBP.dat file with demonstrated format and beam parameter values. Will your solution be applicable for such setup? And if so, do you have an exemplary Flair input file to share with me?

Kind regards,
Delmon

Dear Delmon,

technically is is possible (up to 15000 spots), but after a point it will get cumbersome to manually set up the spots. At that point, you can write a script / program to generate the FLUKA cards for you and you can include it into the input, or you can use a source routine.

An example can be seen on slide 34 of the lecture I previously linked.

To help with the compilation and usage of a source routine see slide 28 at:

Cheers,
David

1 Like