Problem 2529 - isotopes order matters
Summary: isotopes order matters
Status: RESOLVED INVALID
Alias: None
Product: Geant4
Classification: Unclassified
Component: materials (show other problems)
Version: 11.1
Hardware: Apple Mac OS X
: P4 normal
Assignee: Vladimir.Ivantchenko
URL:
Depends on:
Blocks:
 
Reported: 2023-02-09 21:24 CET by elenaguardincerri
Modified: 2023-03-13 16:26 CET (History)
2 users (show)

See Also:


Attachments
Sample program to reproduce problem (82.64 KB, application/zip)
2023-02-09 21:24 CET, elenaguardincerri
Details
Hadr03: Fer-A (3.89 KB, text/plain)
2023-02-20 14:16 CET, Michel.Maire
Details
Hadr03: Fer-B (3.98 KB, text/plain)
2023-02-20 14:18 CET, Michel.Maire
Details

Note You need to log in before you can comment on or make changes to this problem.
Description elenaguardincerri 2023-02-09 21:24:08 CET
Created attachment 801 [details]
Sample program to reproduce problem

If I define a material using its isotopes composition the physics results change depending on the order in which I add the isotopes to the material.
I have attached an applications where neutrons are shot against a Fe target.
When run with run1.mac it produces root histograms with the abundance of activation isotopes as a function of time. Each histogram is for a different activation isotope as shown in its title. The abundance of 54Mn created varies by orders of magnitude depending on whether the Fe material is defined as in case A or case B below in the file DetectorConstruction.cc.


*************** case A ***************************
G4Material* Fe = nist->FindOrBuildMaterial("G4_Fe");
  // define an Element from isotopes, by relative abundance
  G4Isotope* Fe54 = new G4Isotope("Fe54", 26, 54,53.94*g/mole);
  G4Isotope* Fe56 = new G4Isotope("Fe56", 26, 56,55.93*g/mole);
  G4Isotope* Fe57 = new G4Isotope("Fe57", 26, 57,56.94*g/mole);
  G4Isotope* Fe58 = new G4Isotope("Fe58", 26, 58,57.93*g/mole);

  G4Element* elFe  = new G4Element("natural iron","Fe", 4);
  elFe->AddIsotope(Fe56,  91.754*perCent);
  elFe->AddIsotope(Fe54, 5.845*perCent);
  elFe->AddIsotope(Fe57,  2.119*perCent);
  elFe->AddIsotope(Fe58,  0.282*perCent);

  G4Material* Femat = new G4Material("Femat",7.874*g/cm3,1);

*************** case B ***************************
G4Material* Fe = nist->FindOrBuildMaterial("G4_Fe");
  // define an Element from isotopes, by relative abundance
  G4Isotope* Fe54 = new G4Isotope("Fe54", 26, 54,53.94*g/mole);
  G4Isotope* Fe56 = new G4Isotope("Fe56", 26, 56,55.93*g/mole);
  G4Isotope* Fe57 = new G4Isotope("Fe57", 26, 57,56.94*g/mole);
  G4Isotope* Fe58 = new G4Isotope("Fe58", 26, 58,57.93*g/mole);

  G4Element* elFe  = new G4Element("natural iron","Fe", 4);
  elFe->AddIsotope(Fe54, 5.845*perCent);
  elFe->AddIsotope(Fe56,  91.754*perCent);
  elFe->AddIsotope(Fe57,  2.119*perCent);
  elFe->AddIsotope(Fe58,  0.282*perCent);

  G4Material* Femat = new G4Material("Femat",7.874*g/cm3,1);
Comment 1 Michel.Maire 2023-02-20 14:16:24 CET
Created attachment 806 [details]
Hadr03: Fer-A
Comment 2 Michel.Maire 2023-02-20 14:18:32 CET
Created attachment 807 [details]
Hadr03: Fer-B
Comment 3 Michel.Maire 2023-02-20 14:22:36 CET
I attach 2 runs of Hadr03 (with _HP), for Fer-A and Fer-B
The runs are not identical because the sequence of random numbers is not same;
but the 2 runs remain statistically compatible.
Comment 4 Vladimir.Ivantchenko 2023-03-13 16:26:48 CET
Hello all,

if an order of isotopes is different then in the case of nuclear physics, where cross section per isotope is used to identify target nucleus, simulation history become different after one such interaction. So, only statistical comparison is possible in that case.

I will close this problem report. If it would be shown that in some application there is real statistical difference we will reopen the problem.

VI