Triton decay with rdecay01 example

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!!