Radioactive decay completely not working?

Info
Geant4 Version: 11.2
Operating System: Ubuntu 22.04.4
Compiler/Version: gcc 11.4.0
CMake Version: cmake 3.25.1


Hi folks,
I am having a strange issue trying to set up radioactive decay in v11.2

In the past I have been able to add G4RadioactiveDecayPhysics to my physics list and have it work. Now it seems like that is not working properly?

The radioactive decay examples do work, but rdecay01 and rdecay02 do not use G4RadioactiveDecayPhysics. The Activation example also works but launches stuff at a target which is not what I want to do.

Here’s a snippet of my PhysicsList:

PhysicsList::PhysicsList() :
    QBBC()
{
    // updates to FTFP_BERT lists
    ReplacePhysics(new G4EmStandardPhysics_option4);
    RegisterPhysics(new G4OpticalPhysics);
    RegisterPhysics(new G4DecayPhysics);
    RegisterPhysics(new G4RadioactiveDecayPhysics);
} 

And then the macro I’m running to try to see ANY radioactive decay. No secondaries (i.e. decay products) are produced at all.

/gps/pos/type Point
/gps/pos/centre 0 3 0 cm
/gps/ang/type iso

/gps/particle ion
# Am241
/gps/ion 95 241

# Particle is at rest
/gps/ene/mono 0 keV

/run/beamOn 100

I am perplexed. I have the radioactive decay data installed, but I’m hoping there is some configuration error here. If not–could folks help me understand what needs to happen for radioactive decay to work?

Thanks.
-WS

Hi,

Can you try with this prescription for setting up the physics lists?

The examples rdecay01 uses G4Radioactivation physics, which is a C++ class that derives from G4RadioactiveDecay and therefore (I guess from the source code) supersedes it.

Best,
Alvaro

Hi Alvaro, I tried a couple things:
first, is straight from that presentation

auto* physicsList = new FTFP_BERT;
physicsList->RegisterPhysics( new G4RadioactiveDecayPhysics );
runManager->SetUserInitialization( physicsList );

Next, is from a different presentation I found online:

G4PhysListFactory plf;
constexpr auto plName = "QGSP_BIC_HP_EMZ";
auto* pl = plf.GetReferencePhysList(plName);
runManager->SetUserInitialization(pl);

Still, no secondaries generated.
Hmm…

  • William

Hi,

I forgot to mention that in the latest release the time for decay threshold has been changed to 1 year. You may want to change that limit as specified in the release notes of version 11.2:

The default value of the time threshold for radioactive decays of ions - above which these decays are ignored - has been changed, from 10^27 ns (i.e. about twice the age of the universe) to 1 year. For applications where radioactive decays of ions do play an important role, it is recommended to increase the default time threshold of these decays to a very high value, e.g. 1.0e+60 years. This can be done in either one of the following three ways:

Via UI command, e.g. /process/had/rdm/thresholdForVeryLongDecayTime 1.0e+60 year, (command to be used after /run/initialization);
Via C++ interface, e.g. G4HadronicParameters::Instance()->SetTimeThresholdForRadioactiveDecay( 1.0e+60*CLHEP::year ) (to be placed in the main program before run initialization);
Via the second parameter of the constructor of the class G4RadioactiveDecay (for analogue mode only) or G4Radioactivation (for both analogue or biased mode), e.g. G4RadioactiveDecay( "RadioactiveDecay", 1.0e+60*CLHEP::year ) or G4Radioactivation( "Radioactivation", 1.0e+60*CLHEP::year ) (this is for custom physics lists, before run initialization).

Aha!
Thanks for pointing that out.
Next time I’ll check the release notes first. :slight_smile:

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