Biasing in FLUKA for photo-nuclear reactions is achieved in a different way than for electro-nuclear reactions.
For electro-nuclear reactions, the primary electron is added to the reaction final state (you can see it in
For photo-nuclear reactions instead, the primary photon is indeed never added to the reaction final state (hence you do not see it in
GENSTK in in
stuprf.f). For those reactions, biasing is handled in
FLUKA by marking the primary photon as surviving (in
pphnev.f), and duplicating it into
Tracking of the same photon will then be launched several times, following the usual
FLUKA particles tracking ordering logic of a stack (last-in, first-out).
This is independent of the value of
LAM-BIAS (as usual, if positive, the primary always survives with a reduced weight, while if negative, Russian Roulette is applied and will randomize the decision on whether the primary survives).
Hence, you will be able to see the same primary photon several times in
stuprf.f (since the same photon tracking is launched several times, it will occur that the same photon undergoes similar events, e.g. a boundary crossing, or a photo-nuclear reaction).
You can also print out all particles in
FLKSTK in e.g.
write(*,*) "Mgdraw: NPFLKA = ", NPFLKA
do IFLKA = 0, NPFLKA
write(*,*) "Mgdraw: IFLKA = ", IFLKA
write(*,*) "Mgdraw: TKEFLK(IFLKA) = ", TKEFLK(IFLKA)
write(*,*) "Mgdraw: TZFLK(IFLKA) = ", TZFLK(IFLKA)
You will see several primary photons duplicates queued to be tracked, while they do not appear in the photo-nuclear reactions final states.
Then it also depends what is behind reaction “final state”: in the context of the comparison with electro-nuclear reactions, I meant what we can observe in the dedicated final state
COMMONs, but then the biasing still needs to be achieved, and it could also be considered as “whatever we are left with at the end of the reaction, also taking into account biasing”.
Hope this clarifies,