Dear everyone,
Note: I use Windows10 OS - Geant4 10.6.1 - Radioactive decay 5.4
I’m new to Geant4 and trying to make a simple application based on the rdecay01 example (examples/extended/radioactivedecay). I want to obtain the low energy β decay spectrum due to tritium.
In the beginning, I ran singleDecay.mac in example rdecay01 and the output is below. It seems to be working properly.
======================== run summary ======================
The run was 1000 Ne24 of 0 eV
Nb of generated particles:
Na24[1346.621]: 80 Emean = 29.39 eV ( 1.784 eV → 52.49 eV ) mean life = 9.233 ps
Na24[472.207]: 920 Emean = 73.02 eV ( 0.9717 eV → 132.6 eV ) mean life = 29.11 ms
Ne24: 1000 Emean = 0 eV ( 0 eV → 0 eV ) mean life = 4.876 min
anti_nu_e: 1000 Emean = 1.129 MeV ( 42.92 keV → 1.985 MeV) stable
e-: 1000 Emean = 794.8 keV ( 8.704 keV → 1.951 MeV) stable
Ekin Total (Q single decay): mean = 1.924 MeV ( 1.12 MeV → 1.994 MeV)
Momentum balance (excluding gamma desexcitation): mean = 0.01412 eV ( 2.315e-05 eV → 0.1683 eV )
Total time of life (full chain): mean = 4.973 min half-life = 3.447 min ( 296.1 ms → 49.88 min)
Total visible energy (full chain) : mean = 794.9 keV ( 8.799 keV → 1.951 MeV)
Activity of Ne24 = 8.409e+19 Bq/g (2.273e+09 Ci/g)
… write Root file : run1.root - done
… close Root file : run1.root - done
I’ve changed the generated primary particle into tritium, however, It seems that no particles are generated in the decay.
----- singleDecay.mac
/gun/particle ion
/gun/ion 1 3
======================== run summary ======================
The run was 1000 triton of 0 eV
Nb of generated particles:
triton: 1000 Emean = 0 eV ( 0 eV → 0 eV ) mean life = 12.32 y
Activity of triton = 0 Bq/g (0 Ci/g)
… write Root file : run1.root - done
… close Root file : run1.root - done
Any suggestions?
Thank you very much for your help
Toyama
By default, tritium doesn’t decay in G4. I don’t know why; it may be because it’s produced as a secondary in ion-ion collisions, and the LHC experiments needed it to be trackable.
In our experiment, we ended up writing a FixTritiumPhysics
subclass of G4VPhysicsConstructor
, which we register into the physics list. The ConstructProcess()
function looks like this:
void CDMSTritiumPhysics::ConstructProcess() {
// Make tritium unstable, so it can be decayed
G4ParticleDefinition* tr = G4Triton::Definition();
tr->SetPDGStable(false);
// Remove G4Decay process, which requires a registered decay table
G4VProcess* decay = 0;
G4ProcessManager* pman = tr->GetProcessManager();
G4ProcessVector* pvec = pman->GetAtRestProcessVector();
for (G4int i=0; i<pvec->size() && decay==0; i++) {
if ((*pvec)[i]->GetProcessName() == "Decay") decay = (*pvec)[i];
}
if (decay) pman->RemoveProcess(decay);
// Attach RDM, which is a rest-discrete process
#if G4VERSION_NUMBER < 1060 /* See G4RadioactiveDecayPhysics.cc */
decay = new G4RadioactiveDecay();
#else
decay = new G4RadioactiveDecayBase();
#endif
tr->GetProcessManager()->AddProcess(decay, 1000, -1, 1000);
}
The version number check above is needed if you build against older versions of G4. It would be nice if G4Triton
had a regular “particle decay table” attached to it, in which case just the first three lines of the function would be needed.
1 Like
Thanks very much for the prompt reply. Your sample codes really helped me a lot.
Now it successfully works!!
Could you give an additional explanation about how to make a decay table of tritium in Geant4?
You don’t have to “make a decay table.” There is already one defined. Did you read the previous postings in this thread? Did you try the code I posted? If it did not work, can you be specific about what specifically failed?
Thanks for the fast reply.
I created a new file for tritium physics and added your code.
(./src/TritiumPhysics.cc , ./include/TritiumPhysics.hh)
After that, I applied the tritium physics list in rdecay01.cc (runmanager-> SetUserInitialization)
and I met an error like below.
TritiumPhysics.cc (2.0 KB)
Simulation Environment : Ubuntu 21.04, Geant4 11.0