|Message: Setting ion excited state properties in Geant4.10||Not Logged In (login)|
Click on the Forum title, e.g. on the "Forums by Category" page, to read a sequence of postings to the Forum and its threads all in one page. If you are only interested in one thread or the thread following a specific posting, click the thread or the posting, which takes you to a smaller page, which contains only the part you are interested in and may be easier to navigate.
Messages are "chained" if there are only replies at the first level, i.e. 1/1.html, 1/1/1.html etc. In case of "chained" messages the message number is replaced by the icon and there is no indentation.
Inline: Display the subject line only or also the text of the posting(s); for the choice "All" the "Outline" choices are switched off.
|1||0||1||no text / full text of posting|
|2||1||All||text for level 1 only / text for All postings|
Outline: Choose the depth of the posting thread, successive toggle controls provide increasing detail.
|1||2||1||2 levels / 1 level (original posting)|
|2||3||2||3 levels / 2 levels|
|3||3||All||3 levels / all levels (all postings)|
I maintain a simulation code in which excited nuclei undergo gamma decay in flight. In order to fit simulations to measured gamma-ray spectra, the user varies the energies and lifetimes of the excited states of simulated ions.
With Geant4.9.6, I managed my ions with a G4ParticleTable in this way:
G4ParticleDefinition* ion = G4ParticleTable::GetParticleTable()->GetIon(Z, A, Ex); ion->SetPDGStable(false); ion->SetPDGLifeTime(tau); G4ParticleDefinition* ionGS = G4ParticleTable::GetParticleTable()->GetIon(Z, A, 0.);
Heeding the warnings to use the G4IonTable class starting with Geant4.10, I now have:
G4IonTable* ionTable = (G4IonTable*)(G4ParticleTable::GetParticleTable()->GetIonTable());
G4ParticleDefinition* ion = ionTable->GetIon(Z, A , Ex); ion->SetPDGStable(false); ion->SetPDGLifeTime(tau); G4ParticleDefinition* ionGS = ionTable->GetIon(Z, A , 0.);
In both cases, I set up the gamma decay table as follows:
G4DecayTable *DecTab = ion->GetDecayTable(); G4NuclearDecayChannel *GamDec = new G4NuclearDecayChannel(IT,-1, ion, 1, Ex, A, Z, 0.); DecTab->Insert(GamDec);
and add the G4Decay process via the process manager.
The Geant4.9.6 version creates an entry in the G4ParticleTable with the excitation energy (Ex), stability flag, and state lifetime (tau) that I specify. Instances of these ions decay in flight as expected.
The Geant4.10 version using the G4IonTable populates the table with a large set of known nuclear ground states and isomers. When I try (as above) to add a new excited state, the stability flag is set to 1 (despite my setting it to 0), and the ion does not decay. For example, if I use G4IonTable::GetIon(44, 16, 2000.) to create an entry in the table describing an excited state of 44S at 2000 keV with a lifetime of 0., the entry in the G4IonTable is:
--- G4ParticleDefinition --- Particle Name : S44[2000.000] PDG particle code : 1000160449 [PDG anti-particle code: 0] Mass [GeV/c2] : 40.970456 Width : 0.000000 Lifetime [nsec] : 0.000000 Charge [e]: 16.000000 Spin : 0/2 Parity : 1 Charge conjugation : 0 Isospin : (I,Iz): (0/2 , 0/2 ) GParity : 0 Quark contents (d,u,s,c,b,t) : 60, 72, 0, 0, 0, 0 AntiQuark contents : 0, 0, 0, 0, 0, 0 Lepton number : 0 Baryon number : 44 Particle type : nucleus [generic] Atomic Number : 16 Atomic Mass : 44 Stable : No data found -- unknown
Note that the lifetime is set to 0, but its stability is unknown instead of unstable. G4ParticleDefinition::GetPDGStable() for this entry in the table returns 1.
Is there a way in Geant4.10.X to have complete control over the excitation energy, stability flag, and lifetime of an ion?