|Message: Serious problem with isotope definition (G4Isotope) and hadronic processes||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 am trying to simulate the activation of Germanium caused by 50 MeV protons with Geant4.7.1. In order to study the sensitivity to the Ge isotopes (70Ge, 72Ge, 73Ge, 74Ge and 76Ge), I firstly defined a material with only the 70Ge isotope. Here is my Ge material definition:
G4Isotope* Ge70 = new G4Isotope(name="Ge70",iz=32,n=70,a=69.92425*g/mole); G4Element* elGe = new G4Element(name="Germanium",symbol="Ge",ncomponents=1); elGe->AddIsotope(Ge70,abundance=100.00*perCent);
density = 5.323*g/cm3; temperature =95.0*kelvin; G4Material* MGe = new G4Material("Germanium",density, ncomponents=1, kStateSolid, temperature); MGe -> AddElement( elGe, nAtoms=1 ); cout << *(G4Material::GetMaterialTable()) << endl;
which prints the following table as the run starts:
***** Table : Nb of materials = 1 ***** Material: Germanium density: 5.323 g/cm3 temperature: 95.00 K pressure: 1.00 atm RadLength: 2.216 cm ---> Element: Germanium (Ge) Z = 32.0 N = 70.0 A = 69.92 g/mole ---> Isotope: Ge70 Z = 32 N = 70 A = 69.92 g/mole abundance: 100.00 % fractionMass: 100.00 % Abundance 100.00 %
Surprisingly I saw in the output files that isotopes with atomic mass (nucleon count) A = 77 could be created through 70Ge + p inelastic (or even elastic !!!) collisions. By looking at the target nuclei (with G4IsoParticleChange class and GetMotherNucleus() method), I saw that all the 5 Ge stable isotopes were taken with their natural abundances. Thus the definition of the Ge element I gave was not respected in the hadronic processes (eventhough the printed isotope table was correct).
Note that this problem is not specific to the element (Ge), the particle (proton) or the physics list I used. I tried simulations with neutrons and protons on enriched Si and U, but again the program did not take in account my isotopic abundance. From the quick look I had in the source files, it seems that the class G4HadronicProcess (method ChooseAandZ) is taking only element-wise information (I mean the atomic charge number Z) given in the user DetectorConstruction class and not isotope-wise information (relative abundances, etc.). Information on isotopes is taken from the class G4StableIsotopes which contains natural abundances ...
My question is: What is the reliable way to force an isotopic abundance other than the (default) natural abundance defined in the source files ?
Some messages related to the same problem were posted on the forum in the past, in particular posting #388 in Hadronic Processes forum and posting #117 in Physics List forum. No answer was however given to them.
Could you please help me to solve this problem ? Thank you in advance,
|Inline Depth:||Outline Depth:||Add message:|