Get information of isotopes using stuprf.f

Dear professors:
I intend to get information of isotopes like its parent, its property(Z,A,M), location and momentum. I have carefully studied thread like unique-id-particle-using-mgdraw and information-about-particle-ancestors. I have learnt that stuprf.f is needed with subroutine USRDCI. There are two problems I encountered:

  1. The results of USRDCI are all none provided that there is certainly a isotope. All IONA, IONZ and IONM equal to zero.
  2. I can get the decay product of isotope using a scan of KPART(IP). However, I am interested in the parent particle of the isotope. For example, an isotope of carbon may be produced by a neutron and a carbon atom, how can I get access to their information?
    Thank you for your help!
    Hechong Han
    Te-LS.flair (3.4 KB)
    newsource.f (7.3 KB)
    mgdraw1.f (9.8 KB)
    stuprf.f (1.9 KB)

Dear @hanhechong,

You are not showing IONA, IONZ and IONM as zero since they are not passed in the same way as you did correctly for the other variables (LTRACK, XX, …). The USRDCI is called in the proper way but you need to store the values using SPAREK ([8, 9, 10], NPFLKA) in stuprf.f and then of course print them out using mgdraw.f. If you then get the information of the isotope, is this not an answer to your question 2. as well?

Let me know if it works or you need anything else, cheers


Deer @anwaets
Thank you so much for your help! I have followed your suggestions in stuprf.f. However, the “ancestor” always points at a neutron, a muon or some other leptons. So even if I believe stuprf.f is working well now, the results are still blank. To elaborate more explicitly, I extract an example in the dump file with row number around 79303 which is an oxygen reacted. Detail information are as followed:
Isotope reacted: O (15 8 0)
Secondaries: 4 (positron) 5 (electron neutrino)
Reaction type: 110 (radioactive decay)
(JTRACK XTRACK …) is this O itself with generation 6
(LLOUSE SPAREK ISPARK) points at a neutron with generation 5
Question 1: Is it possible to have access to another ancestor which may be an O or a N? Why the stuprf.f only record a neutron?
On the other hand, I have also used usrrnc.f to record every residual nuclei when it stops. The following line are USRRNC results right after this O reacted.
usrrnc 15 7 0
usrrnc 16 8 0
usrrnc 16 8 0
usrrnc 4 2 0
usrrnc 1 1 0
usrrnc 1 1 0
There are many protons followed which are not attached.
Question 2: If there is only one O reacted, why there are three isotopes stopped? I suppose that there should be only one recoil nuclei for the original O. I have strictly monitored any isotopes whether as reactants or products in the mgdraw.f and there’s no alert for the others. In addition, this stopped Helium is also strange because I have monitored Helium as well.
Question 3: USRRNC has frequently recorded a long list of protons. What reaction could it possibly be?
Thank you very much for reading through patiently and I’m really looking forward to your reply!
Hechong Han
Te-LS.flair (3.4 KB)
newsource.f (7.3 KB)
mgdraw.f (10.6 KB)
stuprf.f (2.1 KB)
usrrnc.f (1.2 KB)

Dear @hanhechong ,

Apologies for the late reply to your questions:

Question 1: I believe this also refers to another question of yours, for which it seems required that you call USRDCI explicitly within mdstck.f. In the last entry of this post you can find an mdstck.f example to debug your routine and get the correct ancestors (by disregarding the neutrons for example).

Question 2: I am not sure your transcript of the dump file is complete. If you simulate in semi-analogue mode the entire decay chain is created explicitly since FLUKA doesn’t keep the timing information on creation of residual nuclei so when the next particle in the chain appears the previous one will not be there anymore: for this reason all of them end up in the decay chain. If you provide us the muon.txt file you use as source we could replicate your results and also look at the other variables dumped.

Question 3: Have you looked at the ICODE variable for this reaction? I believe these you also print out each time in the routine so this should clarify this?

Best regards,


1 Like