Radioactive Decay Only Yielding ~1 MeV Instead of Full Spectrum

Hi All,
I am currently learning to use geant4 and am trying to simulate Bismuth‑207 decays using the standard Geant4 radioactive decay data (e.g., z83.a207 in RadioactiveDecay6.1.2). However, I only observe a mono‑energetic deposit around 1 MeV in each event, instead of the expected multi‑line spectrum.

I’ve confirmed that my geometry and histogram filling are correct, because if I bypass the decay module and manually sample Bi‑207’s lines in a custom primary generator, I see the correct multi‑peak distribution. I also verified my environment variables (G4RADIOACTIVEDATA and G4LEVELGAMMADATA) and the contents of z83.a207 look fine. Verbose output doesn’t clearly show any parsing error—just the final ~1 MeV deposited.

Here is my run.mac file

/run/initialize
#/process/had/rdm/setPhotoEvaporationFile 3
/process/had/rdm/applyARM true
#/process/had/rdm/analogueMC false
#/process/had/rdm/decayBiasProfile uniform
/process/had/rdm/hlThreshold 1e9 year
/run/beamOn 1000

setPhotoEvaporation is commented because it gives me following error: with the dreaded Z=3 A=0 outside allowed limits. If I disable certain /process/had/rdm commands (like setPhotoEvaporationFile 3, analogueMC false, or decayBiasProfile uniform), the simulation runs but still shows the same ~1 MeV deposit in all events.
I would really appreciate if anyone could point me towards the right direction. Please let me know if any further information about the issue is needed

PrimaryGeneratorAction.cc (4.6 KB)

If you do not specify the energy of your particle in your primary generator or by macro, it will default to 1 MeV. And since Bi207 has a half life of >30 years, you will never see a decay to its daughter or any of its grand daughters.

particlesource->GetCurrentSource()->GetEneDist()->SetMonoEnergy(1.0 * MeV);

Particle gun is so much easier to use with simple setups.

I don’t think you’re generating your Bi-207 at rest. You never set the kinetic energy in GPS, so you’re using whatever was the default in the constructor. I’m pretty sure that default is 1*MeV, the same way it is for G4ParticleGun.

What’s going to happen in that case is that your primary will travel through your geometry, doing what nuclei do (make a Bragg peak!). Once the nucleus stops, then RDM will decay it into secondaries.

If you’re only seeing the 1*MeV Edep, and not the secondaries, then I suspect that you might have either a time cut or a track ID cut in your SD, scorer, whatever.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.