Geant4-11
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | Friends
G4Element Class Reference

#include <G4Element.hh>

Public Member Functions

void AddIsotope (G4Isotope *isotope, G4double RelativeAbundance)
 
 G4Element (__void__ &)
 
 G4Element (const G4String &name, const G4String &symbol, G4double Zeff, G4double Aeff)
 
 G4Element (const G4String &name, const G4String &symbol, G4int nbIsotopes)
 
 G4Element (G4Element &)=delete
 
G4double GetA () const
 
G4double GetAtomicMassAmu () const
 
G4double GetAtomicShell (G4int index) const
 
G4double GetfCoulomb () const
 
G4double GetfRadTsai () const
 
size_t GetIndex () const
 
G4IonisParamElmGetIonisation () const
 
const G4IsotopeGetIsotope (G4int iso) const
 
G4IsotopeVectorGetIsotopeVector () const
 
G4double GetN () const
 
const G4StringGetName () const
 
G4bool GetNaturalAbundanceFlag () const
 
G4int GetNbOfAtomicShells () const
 
G4int GetNbOfShellElectrons (G4int index) const
 
size_t GetNumberOfIsotopes () const
 
G4doubleGetRelativeAbundanceVector () const
 
const G4StringGetSymbol () const
 
G4double GetZ () const
 
G4int GetZasInt () const
 
G4bool operator!= (const G4Element &) const =delete
 
const G4Elementoperator= (const G4Element &)=delete
 
G4bool operator== (const G4Element &) const =delete
 
void SetName (const G4String &name)
 
void SetNaturalAbundanceFlag (G4bool)
 
virtual ~G4Element ()
 

Static Public Member Functions

static G4ElementGetElement (G4String name, G4bool warning=true)
 
static G4ElementTableGetElementTable ()
 
static size_t GetNumberOfElements ()
 

Private Member Functions

void AddNaturalIsotopes ()
 
void ComputeCoulombFactor ()
 
void ComputeDerivedQuantities ()
 
void ComputeLradTsaiFactor ()
 
void InitializePointers ()
 

Private Attributes

G4double fAeff
 
G4doublefAtomicShells
 
G4double fCoulomb
 
size_t fIndexInTable
 
G4IonisParamElmfIonisation
 
G4String fName
 
G4bool fNaturalAbundance
 
G4int fNbOfAtomicShells
 
G4intfNbOfShellElectrons
 
G4double fNeff
 
G4int fNumberOfIsotopes
 
G4double fRadTsai
 
G4doublefRelativeAbundanceVector
 
G4String fSymbol
 
G4int fZ
 
G4double fZeff
 
G4IsotopeVectortheIsotopeVector
 

Static Private Attributes

static G4ElementTable theElementTable
 

Friends

std::ostream & operator<< (std::ostream &, const G4Element &)
 
std::ostream & operator<< (std::ostream &, const G4Element *)
 
std::ostream & operator<< (std::ostream &, const G4ElementTable &)
 
std::ostream & operator<< (std::ostream &, const G4ElementVector &)
 

Detailed Description

Definition at line 97 of file G4Element.hh.

Constructor & Destructor Documentation

◆ G4Element() [1/4]

G4Element::G4Element ( const G4String name,
const G4String symbol,
G4double  Zeff,
G4double  Aeff 
)

Definition at line 74 of file G4Element.cc.

76 : fName(name), fSymbol(symbol)
77{
78 G4int iz = G4lrint(zeff);
79 if (iz < 1) {
81 ed << "Failed to create G4Element " << name
82 << " Z= " << zeff << " < 1 !";
83 G4Exception ("G4Element::G4Element()", "mat011", FatalException, ed);
84 }
85 if (std::abs(zeff - iz) > perMillion) {
87 ed << "G4Element Warning: " << name << " Z= " << zeff
88 << " A= " << aeff/(g/mole);
89 G4Exception("G4Element::G4Element()", "mat017", JustWarning, ed);
90 }
91
93
94 fZeff = zeff;
95 fAeff = aeff;
96 fNeff = fAeff/(g/mole);
97
98 if(fNeff < 1.0) fNeff = 1.0;
99
100 if (fNeff < zeff) {
102 ed << "Failed to create G4Element " << name
103 << " with Z= " << zeff << " N= " << fNeff
104 << " N < Z is not allowed" << G4endl;
105 G4Exception("G4Element::G4Element()", "mat012", FatalException, ed);
106 }
107
111
113
114 for (G4int i=0; i<fNbOfAtomicShells; ++i)
115 {
118 }
120}
@ JustWarning
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
static const G4double aeff[]
static constexpr double mole
Definition: G4SIunits.hh:279
static constexpr double perMillion
Definition: G4SIunits.hh:327
static constexpr double g
Definition: G4SIunits.hh:168
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
static G4int GetNumberOfElectrons(G4int Z, G4int SubshellNb)
static G4double GetBindingEnergy(G4int Z, G4int SubshellNb)
static G4int GetNumberOfShells(G4int Z)
G4int * fNbOfShellElectrons
Definition: G4Element.hh:242
G4String fSymbol
Definition: G4Element.hh:234
G4String fName
Definition: G4Element.hh:233
G4double fZeff
Definition: G4Element.hh:235
void ComputeDerivedQuantities()
Definition: G4Element.cc:266
void InitializePointers()
Definition: G4Element.cc:218
G4double fAeff
Definition: G4Element.hh:237
G4double fNeff
Definition: G4Element.hh:236
G4double * fAtomicShells
Definition: G4Element.hh:241
void AddNaturalIsotopes()
Definition: G4Element.cc:324
G4int fNbOfAtomicShells
Definition: G4Element.hh:240
const char * name(G4int ptype)
int G4lrint(double ad)
Definition: templates.hh:134

References AddNaturalIsotopes(), aeff, ComputeDerivedQuantities(), fAeff, FatalException, fAtomicShells, fNbOfAtomicShells, fNbOfShellElectrons, fNeff, fZeff, g, G4endl, G4Exception(), G4lrint(), G4AtomicShells::GetBindingEnergy(), G4AtomicShells::GetNumberOfElectrons(), G4AtomicShells::GetNumberOfShells(), InitializePointers(), JustWarning, mole, G4InuclParticleNames::name(), and perMillion.

◆ G4Element() [2/4]

G4Element::G4Element ( const G4String name,
const G4String symbol,
G4int  nbIsotopes 
)

Definition at line 127 of file G4Element.cc.

129 : fName(name),fSymbol(symbol)
130{
132
133 size_t n = size_t(nIsotopes);
134
135 if(0 >= nIsotopes) {
137 ed << "Failed to create G4Element " << name
138 << " <" << symbol << "> with " << nIsotopes
139 << " isotopes.";
140 G4Exception ("G4Element::G4Element()", "mat012", FatalException, ed);
141 } else {
143 fRelativeAbundanceVector = new G4double[nIsotopes];
144 }
145}
std::vector< G4Isotope * > G4IsotopeVector
G4IsotopeVector * theIsotopeVector
Definition: G4Element.hh:246
G4double * fRelativeAbundanceVector
Definition: G4Element.hh:247

References FatalException, fRelativeAbundanceVector, G4Exception(), InitializePointers(), CLHEP::detail::n, G4InuclParticleNames::name(), and theIsotopeVector.

◆ ~G4Element()

G4Element::~G4Element ( )
virtual

Definition at line 252 of file G4Element.cc.

253{
254 if (theIsotopeVector) { delete theIsotopeVector; }
256 if (fAtomicShells) { delete [] fAtomicShells; }
257 if (fNbOfShellElectrons) { delete [] fNbOfShellElectrons; }
258 if (fIonisation) { delete fIonisation; }
259
260 //remove this element from theElementTable
262}
G4IonisParamElm * fIonisation
Definition: G4Element.hh:260
size_t fIndexInTable
Definition: G4Element.hh:252
static G4ElementTable theElementTable
Definition: G4Element.hh:251

References fAtomicShells, fIndexInTable, fIonisation, fNbOfShellElectrons, fRelativeAbundanceVector, theElementTable, and theIsotopeVector.

◆ G4Element() [3/4]

G4Element::G4Element ( __void__ &  )

Definition at line 244 of file G4Element.cc.

245 : fZeff(0), fNeff(0), fAeff(0)
246{
248}

References InitializePointers().

◆ G4Element() [4/4]

G4Element::G4Element ( G4Element )
delete

Member Function Documentation

◆ AddIsotope()

void G4Element::AddIsotope ( G4Isotope isotope,
G4double  RelativeAbundance 
)

Definition at line 151 of file G4Element.cc.

152{
153 if (theIsotopeVector == 0) {
155 ed << "Failed to add Isotope to G4Element " << fName
156 << " with Z= " << fZeff << " N= " << fNeff;
157 G4Exception ("G4Element::AddIsotope()", "mat013", FatalException, ed);
158 return;
159 }
160 G4int iz = isotope->GetZ();
161
162 // filling ...
163 if ( fNumberOfIsotopes < (G4int)theIsotopeVector->size() ) {
164 // check same Z
165 if (fNumberOfIsotopes==0) { fZeff = G4double(iz); }
166 else if (G4double(iz) != fZeff) {
168 ed << "Failed to add Isotope Z= " << iz << " to G4Element " << fName
169 << " with different Z= " << fZeff << fNeff;
170 G4Exception ("G4Element::AddIsotope()", "mat014", FatalException, ed);
171 return;
172 }
173 //Z ok
175 (*theIsotopeVector)[fNumberOfIsotopes] = isotope;
177
178 } else {
180 ed << "Failed to add Isotope Z= " << iz << " to G4Element " << fName
181 << " - more isotopes than declared.";
182 G4Exception ("G4Element::AddIsotope()", "mat015", FatalException, ed);
183 return;
184 }
185
186 // filled.
187 if ( fNumberOfIsotopes == (G4int)theIsotopeVector->size() ) {
188 G4double wtSum=0.0;
189 fAeff = 0.0;
190 for (G4int i=0; i<fNumberOfIsotopes; ++i) {
191 fAeff += fRelativeAbundanceVector[i]*(*theIsotopeVector)[i]->GetA();
192 wtSum += fRelativeAbundanceVector[i];
193 }
194 if(wtSum > 0.0) { fAeff /= wtSum; }
195 fNeff = fAeff/(g/mole);
196
197 if(wtSum != 1.0) {
198 for (G4int i=0; i<fNumberOfIsotopes; ++i) {
199 fRelativeAbundanceVector[i] /= wtSum;
200 }
201 }
202
206
207 for (G4int j = 0; j < fNbOfAtomicShells; ++j)
208 {
211 }
213 }
214}
G4int fNumberOfIsotopes
Definition: G4Element.hh:245
G4int GetZ() const
Definition: G4Isotope.hh:90

References ComputeDerivedQuantities(), fAeff, FatalException, fAtomicShells, fName, fNbOfAtomicShells, fNbOfShellElectrons, fNeff, fNumberOfIsotopes, fRelativeAbundanceVector, fZeff, g, G4Exception(), G4AtomicShells::GetBindingEnergy(), G4AtomicShells::GetNumberOfElectrons(), G4AtomicShells::GetNumberOfShells(), G4Isotope::GetZ(), mole, and theIsotopeVector.

Referenced by G4NistElementBuilder::BuildElement(), ExN03DetectorConstruction::DefineMaterials(), export_G4Element(), and G4GDMLReadMaterials::MixtureRead().

◆ AddNaturalIsotopes()

void G4Element::AddNaturalIsotopes ( )
private

Definition at line 324 of file G4Element.cc.

325{
326 G4int Z = G4lrint(fZeff);
329 G4int N0 = nist->GetNistFirstIsotopeN(Z);
330
331 if("" == fSymbol) {
332 const std::vector<G4String> elmnames =
334 if(Z < (G4int)elmnames.size()) { fSymbol = elmnames[Z]; }
335 else { fSymbol = fName; }
336 }
337
339 for(G4int i=0; i<n; ++i) {
340 if(nist->GetIsotopeAbundance(Z, N0+i) > 0.0) { ++fNumberOfIsotopes; }
341 }
344 G4int idx = 0;
345 G4double xsum = 0.0;
346 for(G4int i=0; i<n; ++i) {
347 G4int N = N0 + i;
348 G4double x = nist->GetIsotopeAbundance(Z, N);
349 if(x > 0.0) {
350 std::ostringstream strm;
351 strm << fSymbol << N;
352 (*theIsotopeVector)[idx] = new G4Isotope(strm.str(), Z, N, 0.0, 0);
354 xsum += x;
355 ++idx;
356 }
357 }
358 if(xsum != 0.0 && xsum != 1.0) {
359 for(G4int i=0; i<idx; ++i) { fRelativeAbundanceVector[i] /= xsum; }
360 }
361 fNaturalAbundance = true;
362}
const G4int Z[17]
G4bool fNaturalAbundance
Definition: G4Element.hh:253
G4int GetNumberOfNistIsotopes(G4int Z) const
const std::vector< G4String > & GetNistElementNames() const
G4int GetNistFirstIsotopeN(G4int Z) const
static G4NistManager * Instance()
G4double GetIsotopeAbundance(G4int Z, G4int N) const

References fName, fNaturalAbundance, fNumberOfIsotopes, fRelativeAbundanceVector, fSymbol, fZeff, G4lrint(), G4NistManager::GetIsotopeAbundance(), G4NistManager::GetNistElementNames(), G4NistManager::GetNistFirstIsotopeN(), G4NistManager::GetNumberOfNistIsotopes(), G4NistManager::Instance(), CLHEP::detail::n, theIsotopeVector, and Z.

Referenced by G4Element().

◆ ComputeCoulombFactor()

void G4Element::ComputeCoulombFactor ( )
private

Definition at line 286 of file G4Element.cc.

287{
288 //
289 // Compute Coulomb correction factor (Phys Rev. D50 3-1 (1994) page 1254)
290
291 static const G4double k1 = 0.0083 , k2 = 0.20206 ,k3 = 0.0020 , k4 = 0.0369 ;
292
294 G4double az4 = az2 * az2;
295
296 fCoulomb = (k1*az4 + k2 + 1./(1.+az2))*az2 - (k3*az4 + k4)*az4;
297}
G4double fCoulomb
Definition: G4Element.hh:258
int fine_structure_const
Definition: hepunit.py:286

References fCoulomb, source.hepunit::fine_structure_const, and fZeff.

Referenced by ComputeDerivedQuantities().

◆ ComputeDerivedQuantities()

void G4Element::ComputeDerivedQuantities ( )
private

Definition at line 266 of file G4Element.cc.

267{
268 // some basic functions of the atomic number
269
270 // Store in table
271 theElementTable.push_back(this);
272 fIndexInTable = theElementTable.size() - 1;
273
274 // Radiation Length
277
278 // parameters for energy loss by ionisation
279 if (nullptr != fIonisation) { delete fIonisation; }
281 fZ = G4lrint(fZeff);
282}
void ComputeLradTsaiFactor()
Definition: G4Element.cc:301
void ComputeCoulombFactor()
Definition: G4Element.cc:286
G4int fZ
Definition: G4Element.hh:238

References ComputeCoulombFactor(), ComputeLradTsaiFactor(), fIndexInTable, fIonisation, fZ, fZeff, G4lrint(), and theElementTable.

Referenced by AddIsotope(), and G4Element().

◆ ComputeLradTsaiFactor()

void G4Element::ComputeLradTsaiFactor ( )
private

Definition at line 301 of file G4Element.cc.

302{
303 //
304 // Compute Tsai's Expression for the Radiation Length
305 // (Phys Rev. D50 3-1 (1994) page 1254)
306
307 static const G4double Lrad_light[] = {5.31 , 4.79 , 4.74 , 4.71} ;
308 static const G4double Lprad_light[] = {6.144 , 5.621 , 5.805 , 5.924} ;
309
310 const G4double logZ3 = G4Log(fZeff)/3.;
311
312 G4double Lrad, Lprad;
313 G4int iz = G4lrint(fZeff) - 1 ;
314 static const G4double log184 = G4Log(184.15);
315 static const G4double log1194 = G4Log(1194.);
316 if (iz <= 3) { Lrad = Lrad_light[iz] ; Lprad = Lprad_light[iz] ; }
317 else { Lrad = log184 - logZ3 ; Lprad = log1194 - 2*logZ3;}
318
319 fRadTsai = 4*alpha_rcl2*fZeff*(fZeff*(Lrad-fCoulomb) + Lprad);
320}
G4double G4Log(G4double x)
Definition: G4Log.hh:226
G4double fRadTsai
Definition: G4Element.hh:259
int alpha_rcl2
Definition: hepunit.py:291

References source.hepunit::alpha_rcl2, fCoulomb, fRadTsai, fZeff, G4Log(), and G4lrint().

Referenced by ComputeDerivedQuantities().

◆ GetA()

G4double G4Element::GetA ( ) const
inline

◆ GetAtomicMassAmu()

G4double G4Element::GetAtomicMassAmu ( ) const
inline

Definition at line 136 of file G4Element.hh.

136{return fNeff;}

References fNeff.

◆ GetAtomicShell()

G4double G4Element::GetAtomicShell ( G4int  index) const

Definition at line 366 of file G4Element.cc.

367{
368 if (i<0 || i>=fNbOfAtomicShells) {
370 ed << "Invalid argument " << i << " in for G4Element " << fName
371 << " with Z= " << fZeff
372 << " and Nshells= " << fNbOfAtomicShells;
373 G4Exception("G4Element::GetAtomicShell()", "mat016", FatalException, ed);
374 return 0.0;
375 }
376 return fAtomicShells[i];
377}

References FatalException, fAtomicShells, fName, fNbOfAtomicShells, fZeff, and G4Exception().

Referenced by G4AdjointPhotoElectricModel::AdjointCrossSectionPerAtom(), export_G4Element(), G4QAOLowEnergyLoss::GetOscillatorEnergy(), G4KleinNishinaModel::SampleSecondaries(), and G4PEEffectFluoModel::SampleSecondaries().

◆ GetElement()

G4Element * G4Element::GetElement ( G4String  name,
G4bool  warning = true 
)
static

Definition at line 411 of file G4Element.cc.

412{
413 // search the element by its name
414 for (size_t J=0; J<theElementTable.size(); ++J)
415 {
416 if (theElementTable[J]->GetName() == elementName)
417 return theElementTable[J];
418 }
419
420 // the element does not exist in the table
421 if (warning) {
422 G4cout << "\n---> warning from G4Element::GetElement(). The element: "
423 << elementName << " does not exist in the table. Return NULL pointer."
424 << G4endl;
425 }
426 return nullptr;
427}
G4GLOB_DLL std::ostream G4cout
const G4String & GetName() const
Definition: G4Element.hh:127

References G4cout, G4endl, GetName(), and theElementTable.

Referenced by export_G4Element(), and G4GDMLReadMaterials::GetElement().

◆ GetElementTable()

G4ElementTable * G4Element::GetElementTable ( )
static

Definition at line 397 of file G4Element.cc.

398{
399 return &theElementTable;
400}

References theElementTable.

Referenced by G4ParticleHPData::addPhysicsVector(), G4FissLib::ApplyYourself(), G4ParticleHPCapture::ApplyYourself(), G4ParticleHPFission::ApplyYourself(), G4ParticleHPInelastic::ApplyYourself(), G4ParticleHPElastic::ApplyYourself(), G4AdjointCSManager::BuildCrossSectionMatrices(), G4KokoulinMuonNuclearXS::BuildCrossSectionTable(), G4ParticleHPThermalScattering::buildPhysicsTable(), G4ParticleHPCapture::BuildPhysicsTable(), G4ParticleHPCaptureData::BuildPhysicsTable(), G4ParticleHPElastic::BuildPhysicsTable(), G4ParticleHPElasticData::BuildPhysicsTable(), G4ParticleHPFission::BuildPhysicsTable(), G4ParticleHPFissionData::BuildPhysicsTable(), G4ParticleHPInelastic::BuildPhysicsTable(), G4ParticleHPInelasticData::BuildPhysicsTable(), G4ParticleHPJENDLHEData::BuildPhysicsTable(), G4ParticleHPThermalScatteringData::BuildPhysicsTable(), G4GammaNuclearXS::BuildPhysicsTable(), G4NeutronCaptureXS::BuildPhysicsTable(), G4NeutronElasticXS::BuildPhysicsTable(), G4NeutronInelasticXS::BuildPhysicsTable(), G4ParticleInelasticXS::BuildPhysicsTable(), G4HadronHElasticPhysics::ConstructProcess(), G4LENDCrossSection::create_used_target_map(), G4LENDModel::create_used_target_map(), G4ParticleHPCaptureData::DumpPhysicsTable(), G4ParticleHPElasticData::DumpPhysicsTable(), G4ParticleHPFissionData::DumpPhysicsTable(), G4ParticleHPInelasticData::DumpPhysicsTable(), export_G4Element(), G4NistElementBuilder::FindElement(), G4NistElementBuilder::FindOrBuildElement(), G4FissLib::G4FissLib(), G4ParticleHPData::G4ParticleHPData(), G4NistManager::GetElement(), G4DiffuseElastic::Initialise(), G4DiffuseElasticV2::Initialise(), G4NuclNuclDiffuseElastic::Initialise(), G4LivermoreBremsstrahlungModel::Initialise(), G4LivermoreComptonModel::Initialise(), G4LivermoreGammaConversionModel::Initialise(), G4LivermorePhotoElectricModel::Initialise(), G4LivermorePolarizedRayleighModel::Initialise(), G4LivermoreRayleighModel::Initialise(), G4VAtomDeexcitation::InitialiseAtomicDeexcitation(), G4BetheHeitlerModel::InitialiseElementData(), G4eBremsstrahlungRelModel::InitialiseElementData(), G4PairProductionRelModel::InitialiseElementData(), G4NistManager::PrintG4Element(), G4ExcitationHandler::SetParameters(), G4GDMLRead::StripNames(), and G4NistManager::~G4NistManager().

◆ GetfCoulomb()

G4double G4Element::GetfCoulomb ( ) const
inline

◆ GetfRadTsai()

G4double G4Element::GetfRadTsai ( ) const
inline

Definition at line 195 of file G4Element.hh.

195{return fRadTsai;}

References fRadTsai.

Referenced by export_G4Element().

◆ GetIndex()

size_t G4Element::GetIndex ( ) const
inline

◆ GetIonisation()

G4IonisParamElm * G4Element::GetIonisation ( ) const
inline

◆ GetIsotope()

const G4Isotope * G4Element::GetIsotope ( G4int  iso) const
inline

◆ GetIsotopeVector()

G4IsotopeVector * G4Element::GetIsotopeVector ( ) const
inline

◆ GetN()

G4double G4Element::GetN ( ) const
inline

◆ GetName()

const G4String & G4Element::GetName ( ) const
inline

◆ GetNaturalAbundanceFlag()

G4bool G4Element::GetNaturalAbundanceFlag ( ) const
inline

Definition at line 263 of file G4Element.hh.

264{
265 return fNaturalAbundance;
266}

References fNaturalAbundance.

Referenced by G4CrossSectionDataStore::GetCrossSection().

◆ GetNbOfAtomicShells()

G4int G4Element::GetNbOfAtomicShells ( ) const
inline

◆ GetNbOfShellElectrons()

G4int G4Element::GetNbOfShellElectrons ( G4int  index) const

Definition at line 381 of file G4Element.cc.

382{
383 if (i<0 || i>=fNbOfAtomicShells) {
385 ed << "Invalid argument " << i << " for G4Element " << fName
386 << " with Z= " << fZeff
387 << " and Nshells= " << fNbOfAtomicShells;
388 G4Exception("G4Element::GetNbOfShellElectrons()", "mat016",
389 FatalException, ed);
390 return 0;
391 }
392 return fNbOfShellElectrons[i];
393}

References FatalException, fName, fNbOfAtomicShells, fNbOfShellElectrons, fZeff, and G4Exception().

Referenced by G4KleinNishinaModel::SampleSecondaries().

◆ GetNumberOfElements()

size_t G4Element::GetNumberOfElements ( )
static

◆ GetNumberOfIsotopes()

size_t G4Element::GetNumberOfIsotopes ( ) const
inline

◆ GetRelativeAbundanceVector()

G4double * G4Element::GetRelativeAbundanceVector ( ) const
inline

◆ GetSymbol()

const G4String & G4Element::GetSymbol ( ) const
inline

Definition at line 128 of file G4Element.hh.

128{return fSymbol;}

References fSymbol.

Referenced by export_G4Element().

◆ GetZ()

G4double G4Element::GetZ ( ) const
inline

Definition at line 131 of file G4Element.hh.

131{return fZeff;}

References fZeff.

Referenced by G4AdjointPhotoElectricModel::AdjointCrossSectionPerAtom(), G4ParticleHPThermalScattering::ApplyYourself(), G4ParticleHPElastic::ApplyYourself(), G4ParticleHPJENDLHEData::BuildPhysicsTable(), G4ErrorFreeTrajState::CalculateEffectiveZandA(), G4Nucleus::ChooseParameters(), G4AdjointCSManager::ComputeAdjointCS(), G4VEmModel::ComputeCrossSectionPerAtom(), G4EmCalculator::ComputeCrossSectionPerAtom(), G4ICRU49NuclearStoppingModel::ComputeDEDXPerVolume(), G4IonisParamMat::ComputeIonParameters(), G4IonisParamMat::ComputeMeanParameters(), G4HadronHElasticPhysics::ConstructProcess(), G4LENDCrossSection::create_used_target_map(), G4LENDModel::create_used_target_map(), G4BraggIonModel::DEDX(), G4BraggModel::DEDX(), G4ICRU73QOModel::DEDX(), G4GDMLWriteMaterials::ElementWrite(), export_G4Element(), G4ParticleHPCaptureData::GetCrossSection(), G4ParticleHPElasticData::GetCrossSection(), G4ParticleHPFissionData::GetCrossSection(), G4ParticleHPInelasticData::GetCrossSection(), G4ParticleHPJENDLHEData::GetCrossSection(), GVFlashShowerParameterisation::GetEffZ(), G4ChargeExchangeProcess::GetElementCrossSection(), G4QAOLowEnergyLoss::GetOscillatorEnergy(), G4ParticleHPThermalBoost::GetThermalEnergy(), G4ParticleHPElementData::Init(), G4EmSaturation::InitialiseBirksCoefficient(), G4hIonEffChargeSquare::IonEffChargeSquare(), G4ParticleHPChannel::Register(), G4eBremParametrizedModel::SampleSecondaries(), G4IonCoulombScatteringModel::SampleSecondaries(), G4PAIModel::SampleSecondaries(), G4PAIPhotModel::SampleSecondaries(), G4JAEAElasticScatteringModel::SampleSecondaries(), G4JAEAPolarizedElasticScatteringModel::SampleSecondaries(), G4LivermoreComptonModel::SampleSecondaries(), G4LivermorePolarizedComptonModel::SampleSecondaries(), G4LivermoreRayleighModel::SampleSecondaries(), G4LowEPComptonModel::SampleSecondaries(), G4LowEPPolarizedComptonModel::SampleSecondaries(), G4MuBremsstrahlungModel::SampleSecondaries(), G4MuPairProductionModel::SampleSecondaries(), G4PEEffectFluoModel::SampleSecondaries(), G4XrayRayleighModel::SampleSecondaries(), G4hParametrisedLossModel::StoppingPower(), and G4hNuclearStoppingModel::StoppingPower().

◆ GetZasInt()

G4int G4Element::GetZasInt ( ) const
inline

Definition at line 132 of file G4Element.hh.

132{return fZ;}

References fZ.

Referenced by G4EmCalculator::CheckMaterial(), G4VCrossSectionDataSet::ComputeCrossSection(), G4EmCalculator::ComputeCrossSectionPerShell(), G4IonisParamMat::ComputeDensityEffectOnFly(), G4ICRU73QOModel::DEDX(), G4DensityEffectCalculator::G4DensityEffectCalculator(), G4CrossSectionDataStore::GetCrossSection(), G4GammaConversionToMuons::GetCrossSectionPerAtom(), G4VComponentCrossSection::GetElasticElementCrossSection(), G4HadronicProcess::GetElementCrossSection(), G4ComponentGGHadronNucleusXsc::GetHadronNucleonXsc(), G4ComponentGGHadronNucleusXsc::GetHadronNucleonXscNS(), G4ComponentGGHadronNucleusXsc::GetHadronNucleonXscPDG(), G4ComponentGGHadronNucleusXsc::GetHNinelasticXsc(), G4VComponentCrossSection::GetInelasticElementCrossSection(), G4VComponentCrossSection::GetTotalElementCrossSection(), G4GammaConversionToMuons::PostStepDoIt(), G4AdjointBremsstrahlungModel::RapidSampleSecondaries(), G4LivermoreBremsstrahlungModel::SampleSecondaries(), G4eBremsstrahlungRelModel::SampleSecondaries(), G4SeltzerBergerModel::SampleSecondaries(), G4eSingleCoulombScatteringModel::SampleSecondaries(), G4IonCoulombScatteringModel::SampleSecondaries(), G4LivermorePhotoElectricModel::SampleSecondaries(), G4LivermorePolarizedRayleighModel::SampleSecondaries(), G4PenelopePhotoElectricModel::SampleSecondaries(), G4BetheHeitlerModel::SampleSecondaries(), G4eCoulombScatteringModel::SampleSecondaries(), G4eDPWACoulombScatteringModel::SampleSecondaries(), G4hCoulombScatteringModel::SampleSecondaries(), G4KleinNishinaModel::SampleSecondaries(), G4PairProductionRelModel::SampleSecondaries(), G4BetheHeitler5DModel::SampleSecondaries(), G4CrossSectionDataStore::SampleZandA(), G4GammaNuclearXS::SelectIsotope(), G4NeutronCaptureXS::SelectIsotope(), G4NeutronInelasticXS::SelectIsotope(), G4ParticleInelasticXS::SelectIsotope(), G4VEmModel::SelectRandomAtomNumber(), and G4ElementSelector::SelectZandA().

◆ InitializePointers()

void G4Element::InitializePointers ( )
private

Definition at line 218 of file G4Element.cc.

219{
220 theIsotopeVector = nullptr;
221 fRelativeAbundanceVector = nullptr;
222 fAtomicShells = nullptr;
223 fNbOfShellElectrons = nullptr;
224 fIonisation = nullptr;
226 fNaturalAbundance = false;
227
228 // add initialisation of all remaining members
229 fZeff = 0;
230 fNeff = 0;
231 fAeff = 0;
233 fIndexInTable = 0;
234 fCoulomb = 0.0;
235 fRadTsai = 0.0;
236 fZ = 0;
237}

References fAeff, fAtomicShells, fCoulomb, fIndexInTable, fIonisation, fNaturalAbundance, fNbOfAtomicShells, fNbOfShellElectrons, fNeff, fNumberOfIsotopes, fRadTsai, fRelativeAbundanceVector, fZ, fZeff, and theIsotopeVector.

Referenced by G4Element().

◆ operator!=()

G4bool G4Element::operator!= ( const G4Element ) const
delete

◆ operator=()

const G4Element & G4Element::operator= ( const G4Element )
delete

◆ operator==()

G4bool G4Element::operator== ( const G4Element ) const
delete

◆ SetName()

void G4Element::SetName ( const G4String name)
inline

Definition at line 215 of file G4Element.hh.

215{fName=name;}

References fName, and G4InuclParticleNames::name().

Referenced by export_G4Element(), and G4GDMLRead::StripNames().

◆ SetNaturalAbundanceFlag()

void G4Element::SetNaturalAbundanceFlag ( G4bool  val)
inline

Definition at line 268 of file G4Element.hh.

269{
270 fNaturalAbundance = val;
271}

References fNaturalAbundance.

Referenced by G4NistElementBuilder::BuildElement().

Friends And Related Function Documentation

◆ operator<< [1/4]

std::ostream & operator<< ( std::ostream &  flux,
const G4Element element 
)
friend

Definition at line 458 of file G4Element.cc.

459{
460 flux << &element;
461 return flux;
462}

◆ operator<< [2/4]

std::ostream & operator<< ( std::ostream &  flux,
const G4Element element 
)
friend

Definition at line 431 of file G4Element.cc.

432{
433 std::ios::fmtflags mode = flux.flags();
434 flux.setf(std::ios::fixed,std::ios::floatfield);
435 G4long prec = flux.precision(3);
436
437 flux
438 << " Element: " << element->fName << " (" << element->fSymbol << ")"
439 << " Z = " << std::setw(4) << std::setprecision(1) << element->fZeff
440 << " N = " << std::setw(5) << std::setprecision(1)
441 << G4lrint(element->fNeff)
442 << " A = " << std::setw(6) << std::setprecision(3)
443 << (element->fAeff)/(g/mole) << " g/mole";
444
445 for (G4int i=0; i<element->fNumberOfIsotopes; i++)
446 flux
447 << "\n ---> " << (*(element->theIsotopeVector))[i]
448 << " abundance: " << std::setw(6) << std::setprecision(3)
449 << (element->fRelativeAbundanceVector[i])/perCent << " %";
450
451 flux.precision(prec);
452 flux.setf(mode,std::ios::floatfield);
453 return flux;
454}
static constexpr double perCent
Definition: G4SIunits.hh:325
long G4long
Definition: G4Types.hh:87
static const double prec
Definition: RanecuEngine.cc:61

◆ operator<< [3/4]

std::ostream & operator<< ( std::ostream &  flux,
const G4ElementTable ElementTable 
)
friend

Definition at line 466 of file G4Element.cc.

467{
468 //Dump info for all known elements
469 flux << "\n***** Table : Nb of elements = " << ElementTable.size()
470 << " *****\n" << G4endl;
471
472 for (size_t i=0; i<ElementTable.size(); i++) flux << ElementTable[i]
473 << G4endl << G4endl;
474
475 return flux;
476}

◆ operator<< [4/4]

std::ostream & operator<< ( std::ostream &  flux,
const G4ElementVector ElementVector 
)
friend

Definition at line 480 of file G4Element.cc.

481{
482 //Dump info for all known elements
483 flux << "\n***** Vector : Nb of elements = " << ElementVector.size()
484 << " *****\n" << G4endl;
485
486 for (size_t i=0; i<ElementVector.size(); i++) flux << ElementVector[i]
487 << G4endl << G4endl;
488
489 return flux;
490}

Field Documentation

◆ fAeff

G4double G4Element::fAeff
private

Definition at line 237 of file G4Element.hh.

Referenced by AddIsotope(), G4Element(), GetA(), and InitializePointers().

◆ fAtomicShells

G4double* G4Element::fAtomicShells
private

Definition at line 241 of file G4Element.hh.

Referenced by AddIsotope(), G4Element(), GetAtomicShell(), InitializePointers(), and ~G4Element().

◆ fCoulomb

G4double G4Element::fCoulomb
private

◆ fIndexInTable

size_t G4Element::fIndexInTable
private

Definition at line 252 of file G4Element.hh.

Referenced by ComputeDerivedQuantities(), GetIndex(), InitializePointers(), and ~G4Element().

◆ fIonisation

G4IonisParamElm* G4Element::fIonisation
private

◆ fName

G4String G4Element::fName
private

◆ fNaturalAbundance

G4bool G4Element::fNaturalAbundance
private

◆ fNbOfAtomicShells

G4int G4Element::fNbOfAtomicShells
private

◆ fNbOfShellElectrons

G4int* G4Element::fNbOfShellElectrons
private

◆ fNeff

G4double G4Element::fNeff
private

Definition at line 236 of file G4Element.hh.

Referenced by AddIsotope(), G4Element(), GetAtomicMassAmu(), GetN(), and InitializePointers().

◆ fNumberOfIsotopes

G4int G4Element::fNumberOfIsotopes
private

◆ fRadTsai

G4double G4Element::fRadTsai
private

Definition at line 259 of file G4Element.hh.

Referenced by ComputeLradTsaiFactor(), GetfRadTsai(), and InitializePointers().

◆ fRelativeAbundanceVector

G4double* G4Element::fRelativeAbundanceVector
private

◆ fSymbol

G4String G4Element::fSymbol
private

Definition at line 234 of file G4Element.hh.

Referenced by AddNaturalIsotopes(), and GetSymbol().

◆ fZ

G4int G4Element::fZ
private

Definition at line 238 of file G4Element.hh.

Referenced by ComputeDerivedQuantities(), GetZasInt(), and InitializePointers().

◆ fZeff

G4double G4Element::fZeff
private

◆ theElementTable

G4ElementTable G4Element::theElementTable
staticprivate

◆ theIsotopeVector

G4IsotopeVector* G4Element::theIsotopeVector
private

The documentation for this class was generated from the following files: