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
 
G4IonisParamElm * GetIonisation () const
 
const G4Isotope * GetIsotope (G4int iso) const
 
G4IsotopeVector * GetIsotopeVector () const
 
G4double GetN () const
 
const G4String & GetName () const
 
G4bool GetNaturalAbundanceFlag () const
 
G4int GetNbOfAtomicShells () const
 
G4int GetNbOfShellElectrons (G4int index) const
 
size_t GetNumberOfIsotopes () const
 
G4double * GetRelativeAbundanceVector () const
 
const G4String & GetSymbol () const
 
G4double GetZ () const
 
G4int GetZasInt () const
 
G4bool operator!= (const G4Element &) const =delete
 
const G4Element & operator= (const G4Element &)=delete
 
G4bool operator== (const G4Element &) const =delete
 
void SetName (const G4String &name)
 
void SetNaturalAbundanceFlag (G4bool)
 
virtual ~G4Element ()
 

Static Public Member Functions

static G4Element * GetElement (G4String name, G4bool warning=true)
 
static G4ElementTable * GetElementTable ()
 
static size_t GetNumberOfElements ()
 

Private Member Functions

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

Private Attributes

G4double fAeff
 
G4double * fAtomicShells
 
G4double fCoulomb
 
size_t fIndexInTable
 
G4IonisParamElm * fIonisation
 
G4String fName
 
G4bool fNaturalAbundance
 
G4int fNbOfAtomicShells
 
G4int * fNbOfShellElectrons
 
G4double fNeff
 
G4int fNumberOfIsotopes
 
G4double fRadTsai
 
G4double * fRelativeAbundanceVector
 
G4String fSymbol
 
G4int fZ
 
G4double fZeff
 
G4IsotopeVector * theIsotopeVector
 

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: