Problem 1904

Summary: I-Value mis-match for the same composition and same density material defined differently.
Product: Geant4 Reporter: DP <sweet_darsha>
Component: materialsAssignee: Marc.Verderi
Status: RESOLVED INVALID    
Severity: normal CC: sweet_darsha
Priority: P4    
Version: 10.0   
Hardware: All   
OS: All   

Description DP 2016-10-27 22:17:03 CEST
For the following two cases the I-Values are substantially different while the composition and density are EXACTLY the same!

Case 1:
  G4Material* Lucite = new   G4Material("Lucite",density=1.19*g/cm3,numberOfElements=3);
  Lucite->AddElement(elH,0.080538);
  Lucite->AddElement(elC,0.599848);
  Lucite->AddElement(elO,0.319614);

Results in I-value of 68.61 eV

Case 2:

  G4Material* Lucite = G4NistManager::Instance()->FindOrBuildMaterial("G4_LUCITE");

 Ncomp             Name      density(g/cm^3)  I(eV) ChFormula
=============================================================
 3                  G4_LUCITE       1.19        74   
         1      0.080538
         6      0.599848
         8      0.319614

Results in I-value of 74 eV
Comment 1 Marc.Verderi 2016-12-12 11:22:00 CET
Hello,

When the NIST manager finds a potential value defined, it uses it (instead of the one obtained by chemical formula). For the case of "G4_LUCITE", the material is defined as follows, in G4NistMaterialBuilder :


  // LUCITE is equal to plustiglass
  AddMaterial("G4_LUCITE", 1.19, 0, 74., 3);
  AddElementByWeightFraction( 1, 0.080538);
  AddElementByWeightFraction( 6, 0.599848);
  AddElementByWeightFraction( 8, 0.319614);

AddMaterial is a method of G4NistMaterialBuilder; in the present case, you can see that the 4-th argument, 74. , is forcing the ionisation potential. Underneath, what is does for a material with pointer "mat" is:
  mat->GetIonisation()->SetMeanExcitationEnergy(Ivalue);
You can explicitly make this call to set the ionisation energy Ivalue.

This feature is certainly a bit confusing (because of similar case you report), but allows to be more precise.

Marc