Distinguish Beta from e-

Hi everyone,

Maybe some of you have the answer I am looking for.
I am currently doing a simulation of a neutron detector. I am interested on understanding precisely what is the proportion on the energy deposition in the gas of the detector for each particle.
Particularly, I want to evaluate the contribution of Compton electron from gamma ray interacting with the detector body and the one of the beta from decay of Al27 (and other stuff) produced by activation (For one neutron event, both can happen)

My problem is that there is no obvious distinction between e- and betas. Since the parent is destroyed once it has been tracked, it is then not easy to know the electron origin.
There is possibly a trick with parentID that might be specific from betas but I did not find the order of the decay chain processing. This would assume that Compton e- have always parentID =2 (which is not true but in most of the case it is) and betas are always different from 2…

Tracking neutrinos emmited for a neutron event was also one of my ideas but since both compton scat. and beta decay can happen for a single event, it only solves partially the problem
Maybe I can also activate a flag once the decay process is called somehow…

Anyway, if some of you have ideas on how to do it, I would be glad to hear them.

Thanks a lot.


you may be interested by the following : forum Physics lists, item “physics list for detector in nuclear reactor”, last reply with macro and plot.

Thanks for the answer.
From what I understood (correct me if I am wrong), what it is suggested in that post is to inactivate Compton scattering and PhotoElectric effect so that there is no Compton (and photoElectric effect) e- anymore.
Thus I would be able to compare a run with Radioactive decay only and one with RD + compton/PE, is that it ?

I guess this would do the trick somehow.
This is not exactly what I expected (not the most efficient way to get the result) but at least I will get the result.

Is there no way at all to have more information about parent particle other than the ID ?


There is some parent information, but maybe not enough for your application.

  1. If you use a stepping action, you can see when the parent creates the secondaries. Then you can interrogate things like what process limited the step, you can see the parent’s identity along with the secondaries, etc.

  2. If you have only the secondary, you can get the process that actually created it from G4Track::GetCreatorProcess(). You can also get the kinematics at the time the secondary was created from G4Track::GetVertex*(). You can’t get the parent particle ID or anyhing, except via option (1).


I found the solution finally with GetCreatorProcess as you proposed. Thanks for the tip.
For those interested, here what I did :

In PreUserTrackingAction :
const G4ParticleDefinition* particle = track->GetParticleDefinition();
if (particle == G4Electron::Electron())
if ( track->GetCreatorProcess()->GetProcessName() ==“RadioactiveDecayBase”)
… ;
else if …

Thanks for the help.


Glad it worked! A note for other readers: If you’re doing this in G4 10.5 or earlier, the process name is “RadioactiveDecay”.

For the record, this suggestion may give incorrect results depending on your production threshold. E.g. if the beta produces daughters itself from e.g. PIXE or delta rays, the energy deposited by those tertiaries won’t be counted since they will not have RadioactiveDecay as their creator process.

I’ve previously solved this problem using the UserTrackingAction to clone ancestor information onto all descendents