How to get the half-life of energy level

Dear all,

Recently,I have simualted the LaBr detector measurements of the ground state decay of 152Eu.

Throughout the decay process, the lifetimes of certain energy levels can be detected by LaBr. The spectrum of simulation is fine, but for some levels with lifetimes, their timestamps were wrong (e.g., a 1.4 ns life-time is from:~/Software/Geant4/geant4_install/share/Geant410.6.0/ data/PhotonEvaporation5.5, but it was instantaneous in the simulation), so I can not get the halflife of energy level by using the ion

This is my particleGun and Physicslist

void PrimaryGeneratorAction::GeneratePrimaries(G4Event* event)
{
    
    G4int IonZ = 63;
    G4int IonA = 152;
    G4double IonEstart = 0*keV;
    G4int EnergyLevel = 0;
    G4double IonCharge = 0.0;

    G4ParticleDefinition* ion = G4IonTable::GetIonTable()->GetIon(IonZ, IonA, IonEstart, EnergyLevel);
    particleGun->SetParticleDefinition(ion);
    particleGun->SetParticleCharge(IonCharge* eplus);
    
    particleGun->SetParticleEnergy(0.0*MeV);
    particleGun->SetParticlePosition(G4ThreeVector(0, 0, 0));

    G4double theta= acos((G4UniformRand()-0.5)*2);
    G4double phi = G4UniformRand()*2.0*pi;
    G4double cosPX = sin(theta)*cos(phi);
    G4double cosPY = sin(theta)*sin(phi);
    G4double cosPZ = cos(theta);
    G4ThreeVector directPri(cosPX, cosPY, cosPZ);    
    particleGun->SetParticleMomentumDirection(directPri); 

    particleGun->GeneratePrimaryVertex(event);   
    
}
PhysicsList::PhysicsList()
: G4VModularPhysicsList()
{
    RegisterPhysics(new G4EmLivermorePhysics());
    // RegisterPhysics(new G4EmPenelopePhysics());
    RegisterPhysics(new G4DecayPhysics());
    RegisterPhysics(new G4RadioactiveDecayPhysics());
    RegisterPhysics(new G4IonPhysics());
}

At first, I thought the issue was with my code for extracting event information, I then conducted tests, defining two gamma rays: the first emitted instantaneously, while the second decayed exponentially over a specified lifetime. Analysis of the data revealed that the corresponding lifetime could be obtained. This left me puzzled: “Why do gamma rays emitted by ions appear instantaneous rather than decaying over a lifetime?”.

Dear,

I have a few questions:

  1. Did you test this behavior with other unstable nuclei?

  2. When you created the “two gamma rays,” did you use a particle gun to emit them, or did you modify the PhotonEvaporation files used by the decay process?

  3. Did you test different half-lives using a working decay channel to identify a possible threshold value? I am also thinking about the /process/had/rdm/hlThreshold GUI command (from G4RadioactivationMessenger in Geant4.11, and G4RadioactiveDecayMessenger in your version, I believe), which could introduce such a limitation.

Hoping this helps you.

Best regards,

Dear @Ma_Peng_Cong ,

Thanks for your question. There is a limit on the isomer half-lives below which the transition is considered instantaneous. I think this limit can be set with the following command, could you please give it a try?

G4NuclearLevelData::Instance()->GetParameters()->SetMaxLifetime(0*CLHEP::ns)

Just as a side note, I believe the half-lives are taken from the G4ENSDFSTATE library rather than from PhotonEvaporation.

If this doesn’t solve the issue, could you try to reproduce the problem using one of the Geant4 examples, for instance rdecay01?
https://github.com/Geant4/geant4/tree/master/examples/extended/radioactivedecay/rdecay01

Best,
Alvaro