I write a simulation of 100Mo(p, x)Y, particularly 100Mo(p, 2n)99mTc nuclear reaction on a cyclotron solid target. But there is a problem: Geant4 does not see this isomeric state of 99Tc, it gives me only the ground state 99Tc with half-life of 9.61096e+21 sec, which probably indicates the stability of the nucleus. However, I need exactly the metastable 99mTc. I tried to use: G4IonTable::GetIonTable()->GetIon(43, 99, 0, G4Ions::G4FloatLevelBase::plus_X), but it didn’t help, the produced isotope is still in ground state.
What would you suggest me to do in order to find the 99mTc?
@jrellin
Currently, I use G4HadronPhysicsQGSP_BERT and also radioactive decay; I also tried all commented options, for instance for G4HadronPhysicsQGSP_BIC no 99Tc was produced, only 100Tc
@maire1 and others, thanks for the advice, I managed to produce 99mTc nucleus following a similar approach as Hadr03 example suggest, but there is an enormous life time retrieved from PDG data. I use: const G4double half_life = track->GetParticleDefinition()->GetPDGLifeTime();
and get 31197010000000 seconds I guess. What might be wrong there? I attached the output json-format file with produced isotopes within an event of 300,000 protons. My current goal is to calculate the activities of produced isotopes.
That’s not the “half life,” it’s the exponential lifetime: dN/dt = exp(-t/LifeTime). That’s more useful for the code, and is consistent with how we deal with particle lifetimes. Half life = LifeTime * log(2).
If that’s just the numeric value, it’s probably in nanoseconds (Geant4’s internal time unit). If you want to know the lifetime in seconds, you should print
@mkelsey and @jrellin thank you for the explanation and advice! Now it works properly and I got 21624.12 seconds, what is corresponds to about 6 hours, of 99mTc half-life.