Low-energy discontinuities in Geant4 beta decay spectra

Geant4 Version: 11.3.1
Operating System: AlmaLinux 9.4 (Seafoam Ocelot)
Compiler/Version: gcc (GCC) 11.4.1 20231218 (Red Hat 11.4.1-3)
CMake Version: 3.20.1


Hello Geant4 developers,
I am using Geant4 for the background model of low threshold dark matter detectors. I recently upgraded from the old v10.5.0 to v11.3.1 and I am observing non-physical discretization artifacts in beta spectra that was not present in the old version. I am simulating natural radioactivity (including full decay chains and beta emitters) for a detector background model with sensitivity down to ~0.5 keV. The relevant isotopes include: H-3, Rb-87, K-40 and several beta emitters in U/Th decay chains.

I expect smooth, continuous beta spectra down to nearly zero energy, and this is important for my physics case since these contributions are relevant for low-threshold spectrum interpretation.

In Geant4 11.3.1 I observe clear spectral “steps” at low energy: for H-3: a visible step around ~0.2 keV, for Rb-87: a structure around ~3–4 keV, … Apparently the position of the feature scales with Q-value. These features are not present in Geant4 10.5 using the previous implementation.

Is there a recommended way to obtain a fully continuous beta spectrum sampling in the current radioactive decay framework? I don’t want to downgrade back to v10.5.0 since I understand that many low energy processes have been improved in v11.x.

I copy here the relevant part of my Physics List:

  RegisterPhysics(new G4DecayPhysics());
  RegisterPhysics(new G4RadioactiveDecayPhysics());
  RegisterPhysics( new G4HadronElasticPhysicsHP(verbose) );
  
  G4HadronPhysicsShielding* hps;
  hps = new G4HadronPhysicsShielding("hInelastic Shielding", verbose, 4.0*GeV, 5.0*GeV);
  

  RegisterPhysics(new G4EmStandardPhysics_option4(verbose));
  RegisterPhysics(new G4EmExtraPhysics());
  
  G4EmParameters* emParameters = G4EmParameters::Instance();
  emParameters->SetFluo(true);
  emParameters->SetPixe(true);
  emParameters->SetAuger(true);

  defaultCutValue = 0.001*mm;

  cutForGamma     = defaultCutValue;
  cutForElectron  = defaultCutValue;
  cutForPositron  = defaultCutValue;

I also attach the macro used for H3 decay generation and a plot of the beta energy in the two versions v10.5.0 and v11.3.1.

#######
/gps/particle ion
# to be changed with Z and A of the isotope
/gps/ion 1 3 0 0
# define energy (set 0 for radioactive decaying nuclei)
/gps/energy 0. keV
/gps/pos/shape Para
/gps/pos/centre 0. 0. 0. m
/gps/pos/halfx 20. cm
/gps/pos/halfy 20. cm
/gps/pos/halfz 20. cm
#
# to use if there is in the code a Source volume 
# 
/gps/pos/type Volume
/gps/pos/confine Crystal
#
# Physics: radioactive decay enabled
/run/initialize
/process/had/rdm/thresholdForVeryLongDecayTime 1.0e+60 year

/run/verbose 0
/event/verbose 0
/tracking/verbose 0

/SABRE/outfile Crystal_3H
/random/setSeeds 263675941 398808690
## define number of even

Thank you in advance for your help!

Best,

Giulia

Thanks for the post! We traced this to a change in the radioactive-decay beta-spectrum sampling code, so this appears to be a regression on our side.

I am attaching a candidate patch for Geant4 11.3.1. Could you please apply it on top of 11.3.1 and let us know whether it fixes the issue in your H-3 -Rb-87 test?

geant4-11.3.1-beta-sloped-sampler.txt (7.1 KB)

Hi,
thank you for yor quick answer! I tested the patch you propose but I’m not sure that really improves the physics description at low energy. My impression is that the beta spectrum is sampled from a fixed grid of 100 points and the first bin is now a linear iterpolation between 0 and the first point in the grid. The discontinuity is now “smoothed” at first order but is still present.
A workaround could be to increase the sampling grid from 100 to 1000 points? But this would just shift the problem at lower energies, right?

Thank you!

Giulia

Hi all,

I would like to chime in and report that we are seeing the same in CDMS using the Shielding physics list with G4EmStandard_opt4 with Geant4-11.4.2 for all beta emitters. I have attached three examples for Si32, Co60 and Bi210 showing the energy of the emitted electrons. Would you be able to provide a candidate patch for this G4 version in the next iteration? Or would you rather prefer to follow up in bugzilla?

Thanks,

Birgit