Skip to content

Radioactive Decays & general Ion Source

Simon Spannagel requested to merge radioactivedecay into master

After a discussion with a colleague and some research, I have implemented the following approach for radioactive decays. It uses the Geant4-internal facilities for radioactive decays and stops the decay chain after the first instance.

Radioactive sources can be simulated simply by setting their isotope name in the particle_type parameter, and optionally by setting the source energy to zero for a decay in rest. Secondary ions from the decay are not further treated and the decay chain is interrupted, e.g. Am241 only undergoes its alpha decay without the decay of its daughter nucleus of Np237 being simulated. Currently, the following radioactive isotopes are supported: Fe55, Am241, Sr90, Co60, Cs137.

Ions can be used as particles by setting their atomic properties, i.e. the atomic number Z, the atomic mass A, their charge Q and the excitation energy E via the following syntax:

particle_type = "ion/Z/A/Q/E"

where Z and A are unsigned integers, Q is a signed integer and E a floating point value with units, e.g. 13eV.

I still have the following open questions:

  • Does adding the G4RadioactiveDecays physics list has any impact on other simulations? I don't see any implications though.
  • Ion excitation energy: how does this play together with the source energy (i.e. source->GetEneDist()->SetMonoEnergy()?
  • In what units does G4 expect the excitation energy?
  • Is there a way to access ions by their name, just like there is for PDG particles? The G4IonTable does not seem to offer a GetIon(std::string name) function, but there is one later which can be retrieved by GetParticleName() - this resolves to Fe55 for the iron source. With name lookup we could circumvent re-adding our own database of radioactive sources.

@mjing, could you please have a look at this and test it? What do you think of this approach? I think it is a bit more generic than our previous idea of simulating multiple Gaussian distributions manually.

This MR fixes #110 (closed).

Edited by Simon Spannagel

Merge request reports