76 :
fName(name), fSymbol(symbol)
81 ed <<
"Fail to create G4Element " << name
82 <<
" Z= " << zeff <<
" < 1 !";
87 ed <<
"G4Element Warning: " << name <<
" Z= " << zeff
88 <<
" A= " << aeff/(
g/
mole);
102 ed <<
"Fail to create G4Element " << name
103 <<
" with Z= " << zeff <<
" N= " <<
fNeff
104 <<
" N < Z is not allowed" <<
G4endl;
129 :
fName(name),fSymbol(symbol)
133 size_t n = size_t(nIsotopes);
137 ed <<
"Fail to create G4Element " << name
138 <<
" <" << symbol <<
"> with " << nIsotopes
155 ed <<
"Fail to add Isotope to G4Element " <<
fName
168 ed <<
"Fail to add Isotope Z= " << iz <<
" to G4Element " <<
fName
180 ed <<
"Fail to add Isotope Z= " << iz <<
" to G4Element " <<
fName
181 <<
" - more isotopes than declaired ";
253 : fZeff(0), fNeff(0), fAeff(0)
300 static const G4double k1 = 0.0083 , k2 = 0.20206 ,k3 = 0.0020 , k4 = 0.0369 ;
305 fCoulomb = (k1*az4 + k2 + 1./(1.+az2))*az2 - (k3*az4 + k4)*az4;
316 static const G4double Lrad_light[] = {5.31 , 4.79 , 4.74 , 4.71} ;
317 static const G4double Lprad_light[] = {6.144 , 5.621 , 5.805 , 5.924} ;
323 if (iz <= 3) { Lrad = Lrad_light[
iz] ; Lprad = Lprad_light[
iz] ; }
324 else { Lrad = std::log(184.15) - logZ3 ; Lprad = std::log(1194.) - 2*logZ3;}
339 const std::vector<G4String> elmnames =
341 if(Z < (
G4int)elmnames.size()) {
fSymbol = elmnames[Z]; }
346 for(
G4int i=0; i<
n; ++i) {
353 for(
G4int i=0; i<
n; ++i) {
357 std::ostringstream strm;
359 (*theIsotopeVector)[idx] =
new G4Isotope(strm.str(), Z, N, 0.0, 0);
365 if(xsum != 0.0 && xsum != 1.0) {
377 ed <<
"Invalid argument " << i <<
" in for G4Element " <<
fName
378 <<
" with Z= " <<
fZeff
392 ed <<
"Invalid argument " << i <<
" for G4Element " <<
fName
393 <<
" with Z= " <<
fZeff
428 G4cout <<
"\n---> warning from G4Element::GetElement(). The element: "
429 << elementName <<
" does not exist in the table. Return NULL pointer."
509 std::ios::fmtflags mode = flux.flags();
510 flux.setf(std::ios::fixed,std::ios::floatfield);
514 <<
" Element: " << element->
fName <<
" (" << element->
fSymbol <<
")"
515 <<
" Z = " << std::setw(4) << std::setprecision(1) << element->
fZeff
516 <<
" N = " << std::setw(5) << std::setprecision(1) << element->
fNeff
517 <<
" A = " << std::setw(6) << std::setprecision(2)
523 <<
" abundance: " << std::setw(6) << std::setprecision(2)
526 flux.precision(prec);
527 flux.setf(mode,std::ios::floatfield);
544 flux <<
"\n***** Table : Nb of elements = " << ElementTable.size()
547 for (
size_t i=0; i<ElementTable.size(); i++) flux << ElementTable[i]
const G4Element & operator=(const G4Element &)
std::vector< G4Isotope * > G4IsotopeVector
std::ostringstream G4ExceptionDescription
static G4Element * GetElement(G4String name, G4bool warning=true)
void ComputeCoulombFactor()
void AddNaturalIsotopes()
static G4ElementTable theElementTable
const std::vector< G4String > & GetNistElementNames() const
G4int * fNbOfShellElectrons
G4IsotopeVector * theIsotopeVector
G4IonisParamElm * fIonisation
G4int GetNbOfShellElectrons(G4int index) const
static G4NistManager * Instance()
G4int GetNistFirstIsotopeN(G4int Z) const
void ComputeLradTsaiFactor()
G4GLOB_DLL std::ostream G4cout
static size_t GetNumberOfElements()
void InitializePointers()
static G4double GetBindingEnergy(G4int Z, G4int SubshellNb)
std::ostream & operator<<(std::ostream &flux, const G4Element *element)
void AddIsotope(G4Isotope *isotope, G4double RelativeAbundance)
G4Element(const G4String &name, const G4String &symbol, G4double Zeff, G4double Aeff)
static const double perCent
G4double GetIsotopeAbundance(G4int Z, G4int N) const
G4int GetNumberOfNistIsotopes(G4int Z) const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4int operator==(const G4Element &) const
static const double perMillion
G4int operator!=(const G4Element &) const
static G4int GetNumberOfElectrons(G4int Z, G4int SubshellNb)
G4double * fRelativeAbundanceVector
G4double GetAtomicShell(G4int index) const
std::vector< G4Element * > G4ElementTable
const G4String & GetName() const
static G4ElementTable * GetElementTable()
static G4int GetNumberOfShells(G4int Z)
void ComputeDerivedQuantities()