Import Geant4 10.3.0.beta source tree
This commit is contained in:
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4AtomicShells.hh 94016 2015-11-05 10:14:49Z gcosmo $
|
||||
// $Id: G4AtomicShells.hh 95987 2016-03-07 08:11:16Z gcosmo $
|
||||
|
||||
// class description
|
||||
//
|
||||
@@ -52,9 +52,7 @@
|
||||
#ifndef G4ATOMICSHELLS_H
|
||||
#define G4ATOMICSHELLS_H
|
||||
|
||||
|
||||
#include "globals.hh"
|
||||
#include "templates.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
|
||||
|
||||
@@ -62,21 +60,28 @@ class G4AtomicShells
|
||||
{
|
||||
public : //with description
|
||||
|
||||
static G4int GetNumberOfShells(G4int Z);
|
||||
static G4int GetNumberOfElectrons(G4int Z, G4int SubshellNb);
|
||||
static G4double GetBindingEnergy (G4int Z, G4int SubshellNb);
|
||||
G4double GetTotalBindingEnergy (G4int Z);
|
||||
static G4int GetNumberOfShells(G4int Z);
|
||||
static G4int GetNumberOfElectrons(G4int Z, G4int SubshellNb);
|
||||
static G4double GetBindingEnergy(G4int Z, G4int SubshellNb);
|
||||
static G4double GetTotalBindingEnergy(G4int Z);
|
||||
|
||||
private :
|
||||
|
||||
static const G4int fNumberOfShells[101];
|
||||
static const G4int fIndexOfShells[101];
|
||||
static const G4int fNumberOfElectrons[1540];
|
||||
static const G4double fBindingEnergies[1540];
|
||||
#ifdef G4VERBOSE
|
||||
static G4int PrintErrorZ(G4int Z, const G4String&);
|
||||
static G4int PrintErrorShell(G4int Z, G4int SubshellNb, const G4String&);
|
||||
#endif
|
||||
|
||||
G4AtomicShells(const G4AtomicShells&) = delete;
|
||||
const G4AtomicShells& operator=(const G4AtomicShells&) = delete;
|
||||
|
||||
static const G4int fNumberOfShells[101];
|
||||
static const G4int fIndexOfShells[101];
|
||||
static const G4int fNumberOfElectrons[1540];
|
||||
static const G4double fBindingEnergies[1540];
|
||||
|
||||
};
|
||||
|
||||
|
||||
/* *********************************************************
|
||||
Below is the atomic subshell binding energytable for elements Z=1-100.
|
||||
The data were given from:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4DensityEffectData.hh 66811 2013-01-12 16:04:23Z gcosmo $
|
||||
// $Id: G4DensityEffectData.hh 97248 2016-05-30 15:00:11Z gcosmo $
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -55,39 +55,40 @@
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
const G4int NDENSDATA = 278;
|
||||
const G4int NDENSARRAY = 9;
|
||||
const G4int NDENSARRAY = 10;
|
||||
const G4int NDENSELEM = 98;
|
||||
|
||||
class G4DensityEffectData
|
||||
{
|
||||
public:
|
||||
|
||||
G4DensityEffectData();
|
||||
explicit G4DensityEffectData();
|
||||
|
||||
~G4DensityEffectData();
|
||||
|
||||
// return index by Z, -1 if material is not in the table
|
||||
G4int GetElementIndex(G4int Z, G4State mState);
|
||||
G4int GetElementIndex(G4int Z, G4State mState) const;
|
||||
|
||||
// return index by material name, -1 if material is not in the table
|
||||
G4int GetIndex(const G4String& matName);
|
||||
G4int GetIndex(const G4String& matName) const;
|
||||
|
||||
// printout data for material
|
||||
void PrintData(const G4String& matName);
|
||||
void PrintData(const G4String& matName) const;
|
||||
|
||||
// printout all data
|
||||
void DumpData();
|
||||
void DumpData() const;
|
||||
|
||||
// Access to the data via index
|
||||
inline G4double GetPlasmaEnergy(G4int idx);
|
||||
inline G4double GetAdjustmentFactor(G4int idx);
|
||||
inline G4double GetCdensity(G4int idx);
|
||||
inline G4double GetX0density(G4int idx);
|
||||
inline G4double GetX1density(G4int idx);
|
||||
inline G4double GetAdensity(G4int idx);
|
||||
inline G4double GetMdensity(G4int idx);
|
||||
inline G4double GetDelta0density(G4int idx);
|
||||
inline G4double GetErrorDensity(G4int idx);
|
||||
inline G4double GetPlasmaEnergy(G4int idx) const;
|
||||
inline G4double GetAdjustmentFactor(G4int idx) const;
|
||||
inline G4double GetCdensity(G4int idx) const;
|
||||
inline G4double GetX0density(G4int idx) const;
|
||||
inline G4double GetX1density(G4int idx) const;
|
||||
inline G4double GetAdensity(G4int idx) const;
|
||||
inline G4double GetMdensity(G4int idx) const;
|
||||
inline G4double GetDelta0density(G4int idx) const;
|
||||
inline G4double GetErrorDensity(G4int idx) const;
|
||||
inline G4double GetMeanIonisationPotential(G4int idx) const;
|
||||
|
||||
private:
|
||||
|
||||
@@ -96,8 +97,8 @@ private:
|
||||
void AddMaterial(G4double* val, const G4String& matName);
|
||||
|
||||
// Assignment operator and copy constructor
|
||||
G4DensityEffectData & operator=(const G4DensityEffectData &right);
|
||||
G4DensityEffectData(const G4DensityEffectData&);
|
||||
G4DensityEffectData & operator=(const G4DensityEffectData &right) = delete;
|
||||
G4DensityEffectData(const G4DensityEffectData&) = delete;
|
||||
|
||||
G4double data[NDENSDATA][NDENSARRAY];
|
||||
std::vector<G4String> names;
|
||||
@@ -110,67 +111,54 @@ private:
|
||||
|
||||
};
|
||||
|
||||
inline G4double G4DensityEffectData::GetPlasmaEnergy(G4int idx)
|
||||
inline G4double G4DensityEffectData::GetPlasmaEnergy(G4int idx) const
|
||||
{
|
||||
G4double x = DBL_MAX;
|
||||
if(idx >= 0 && idx < NDENSDATA) { x = data[idx][0]; }
|
||||
return x;
|
||||
return (idx >= 0 && idx < NDENSDATA) ? data[idx][0] : DBL_MAX;
|
||||
}
|
||||
|
||||
inline G4double G4DensityEffectData::GetAdjustmentFactor(G4int idx)
|
||||
inline G4double G4DensityEffectData::GetAdjustmentFactor(G4int idx) const
|
||||
{
|
||||
G4double x = DBL_MAX;
|
||||
if(idx >= 0 && idx < NDENSDATA) { x = data[idx][1]; }
|
||||
return x;
|
||||
return (idx >= 0 && idx < NDENSDATA) ? data[idx][1] : DBL_MAX;
|
||||
}
|
||||
|
||||
inline G4double G4DensityEffectData::GetCdensity(G4int idx)
|
||||
inline G4double G4DensityEffectData::GetCdensity(G4int idx) const
|
||||
{
|
||||
G4double x = DBL_MAX;
|
||||
if(idx >= 0 && idx < NDENSDATA) { x = data[idx][2]; }
|
||||
return x;
|
||||
return (idx >= 0 && idx < NDENSDATA) ? data[idx][2] : DBL_MAX;
|
||||
}
|
||||
|
||||
inline G4double G4DensityEffectData::GetX0density(G4int idx)
|
||||
inline G4double G4DensityEffectData::GetX0density(G4int idx) const
|
||||
{
|
||||
G4double x = DBL_MAX;
|
||||
if(idx >= 0 && idx < NDENSDATA) { x = data[idx][3]; }
|
||||
return x;
|
||||
return (idx >= 0 && idx < NDENSDATA) ? data[idx][3] : DBL_MAX;
|
||||
}
|
||||
|
||||
inline G4double G4DensityEffectData::GetX1density(G4int idx)
|
||||
inline G4double G4DensityEffectData::GetX1density(G4int idx) const
|
||||
{
|
||||
G4double x = DBL_MAX;
|
||||
if(idx >= 0 && idx < NDENSDATA) { x = data[idx][4]; }
|
||||
return x;
|
||||
return (idx >= 0 && idx < NDENSDATA) ? data[idx][4] : DBL_MAX;
|
||||
}
|
||||
|
||||
inline G4double G4DensityEffectData::GetAdensity(G4int idx)
|
||||
inline G4double G4DensityEffectData::GetAdensity(G4int idx) const
|
||||
{
|
||||
G4double x = DBL_MAX;
|
||||
if(idx >= 0 && idx < NDENSDATA) { x = data[idx][5]; }
|
||||
return x;
|
||||
return (idx >= 0 && idx < NDENSDATA) ? data[idx][5] : DBL_MAX;
|
||||
}
|
||||
|
||||
inline G4double G4DensityEffectData::GetMdensity(G4int idx)
|
||||
inline G4double G4DensityEffectData::GetMdensity(G4int idx) const
|
||||
{
|
||||
G4double x = DBL_MAX;
|
||||
if(idx >= 0 && idx < NDENSDATA) { x = data[idx][6]; }
|
||||
return x;
|
||||
return (idx >= 0 && idx < NDENSDATA) ? data[idx][6] : DBL_MAX;
|
||||
}
|
||||
|
||||
inline G4double G4DensityEffectData::GetDelta0density(G4int idx)
|
||||
inline G4double G4DensityEffectData::GetDelta0density(G4int idx) const
|
||||
{
|
||||
G4double x = DBL_MAX;
|
||||
if(idx >= 0 && idx < NDENSDATA) { x = data[idx][7]; }
|
||||
return x;
|
||||
return (idx >= 0 && idx < NDENSDATA) ? data[idx][7] : DBL_MAX;
|
||||
}
|
||||
|
||||
inline G4double G4DensityEffectData::GetErrorDensity(G4int idx)
|
||||
inline G4double G4DensityEffectData::GetErrorDensity(G4int idx) const
|
||||
{
|
||||
G4double x = DBL_MAX;
|
||||
if(idx >= 0 && idx < NDENSDATA) { x = data[idx][8]; }
|
||||
return x;
|
||||
return (idx >= 0 && idx < NDENSDATA) ? data[idx][8] : DBL_MAX;
|
||||
}
|
||||
|
||||
inline G4double G4DensityEffectData::GetMeanIonisationPotential(G4int idx) const
|
||||
{
|
||||
return (idx >= 0 && idx < NDENSDATA) ? data[idx][9] : DBL_MAX;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4Element.hh 87870 2015-01-16 08:27:07Z gcosmo $
|
||||
// $Id: G4Element.hh 96794 2016-05-09 10:09:30Z gcosmo $
|
||||
//
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
@@ -129,10 +129,11 @@ public: // with description
|
||||
|
||||
// Atomic number
|
||||
inline G4double GetZ() const {return fZeff;}
|
||||
inline G4int GetZasInt() const {return fZ;}
|
||||
|
||||
// Atomic weight in atomic units
|
||||
inline G4double GetN() const {return fNeff;}
|
||||
inline G4double GetAtomicMassAmu() const {return fNeff;}
|
||||
inline G4double GetAtomicMassAmu() const {return fNeff;}
|
||||
|
||||
// Mass of a mole in Geant4 units for atoms with atomic shell
|
||||
inline G4double GetA() const {return fAeff;}
|
||||
@@ -205,9 +206,6 @@ public: // with description
|
||||
|
||||
public: // without description
|
||||
|
||||
G4int operator==(const G4Element&) const;
|
||||
G4int operator!=(const G4Element&) const;
|
||||
|
||||
G4Element(__void__&);
|
||||
// Fake default constructor for usage restricted to direct object
|
||||
// persistency for clients requiring preallocation of memory for
|
||||
@@ -217,16 +215,16 @@ public: // without description
|
||||
|
||||
private:
|
||||
|
||||
G4Element(G4Element&);
|
||||
const G4Element & operator=(const G4Element&);
|
||||
|
||||
void InitializePointers();
|
||||
void ComputeDerivedQuantities();
|
||||
void ComputeCoulombFactor();
|
||||
void ComputeLradTsaiFactor();
|
||||
void AddNaturalIsotopes();
|
||||
|
||||
private:
|
||||
G4Element(G4Element&) = delete;
|
||||
const G4Element & operator=(const G4Element&) = delete;
|
||||
G4int operator==(const G4Element&) const = delete;
|
||||
G4int operator!=(const G4Element&) const = delete;
|
||||
|
||||
//
|
||||
// Basic data members (which define an Element)
|
||||
@@ -236,6 +234,7 @@ private:
|
||||
G4double fZeff; // Effective atomic number
|
||||
G4double fNeff; // Effective number of nucleons
|
||||
G4double fAeff; // Effective mass of a mole
|
||||
G4int fZ;
|
||||
|
||||
G4int fNbOfAtomicShells; // number of atomic shells
|
||||
G4double* fAtomicShells ; // Pointer to atomic shell binding energies
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4ElementData.hh 72057 2013-07-04 13:07:29Z gcosmo $
|
||||
// $Id: G4ElementData.hh 96794 2016-05-09 10:09:30Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -57,7 +57,7 @@ class G4ElementData
|
||||
{
|
||||
public:
|
||||
|
||||
G4ElementData();
|
||||
explicit G4ElementData();
|
||||
|
||||
~G4ElementData();
|
||||
|
||||
@@ -106,8 +106,8 @@ public:
|
||||
private:
|
||||
|
||||
// Assignment operator and copy constructor
|
||||
G4ElementData & operator=(const G4ElementData &right);
|
||||
G4ElementData(const G4ElementData&);
|
||||
G4ElementData & operator=(const G4ElementData &right) = delete;
|
||||
G4ElementData(const G4ElementData&) = delete;
|
||||
|
||||
G4PhysicsVector* elmData[maxNumElements];
|
||||
G4Physics2DVector* elm2Data[maxNumElements];
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4ExtDEDXTable.hh 66811 2013-01-12 16:04:23Z gcosmo $
|
||||
// $Id: G4ExtDEDXTable.hh 96794 2016-05-09 10:09:30Z gcosmo $
|
||||
//
|
||||
// ===========================================================================
|
||||
// GEANT4 class header file
|
||||
@@ -64,40 +64,40 @@
|
||||
class G4ExtDEDXTable : public G4VIonDEDXTable {
|
||||
|
||||
public:
|
||||
G4ExtDEDXTable();
|
||||
explicit G4ExtDEDXTable();
|
||||
virtual ~G4ExtDEDXTable();
|
||||
|
||||
G4bool BuildPhysicsVector(G4int ionZ,
|
||||
const G4String& matName);
|
||||
virtual G4bool BuildPhysicsVector(G4int ionZ,
|
||||
const G4String& matName);
|
||||
|
||||
G4bool BuildPhysicsVector(G4int ionZ,
|
||||
G4int matZ);
|
||||
virtual G4bool BuildPhysicsVector(G4int ionZ,
|
||||
G4int matZ);
|
||||
|
||||
// Function for checking the availability of stopping power tables
|
||||
// for a given ion-material couple, where the material consists of
|
||||
// a single element only.
|
||||
G4bool IsApplicable(
|
||||
virtual G4bool IsApplicable(
|
||||
G4int atomicNumberIon, // Atomic number of ion
|
||||
G4int atomicNumberElem // Atomic number of elemental material
|
||||
);
|
||||
|
||||
// Function for checking the availability of stopping power tables
|
||||
// for given ion-material couples.
|
||||
G4bool IsApplicable(
|
||||
virtual G4bool IsApplicable(
|
||||
G4int atomicNumberIon, // Atomic number of ion
|
||||
const G4String& matIdentifier // Name or chemical formula of material
|
||||
);
|
||||
|
||||
// Function returning the stopping power vector for given ion-material
|
||||
// couples, where the material consists of a single element only.
|
||||
G4PhysicsVector* GetPhysicsVector(
|
||||
virtual G4PhysicsVector* GetPhysicsVector(
|
||||
G4int atomicNumberIon, // Atomic number of ion
|
||||
G4int atomicNumberElem // Atomic number of elemental material
|
||||
);
|
||||
|
||||
// Function returning the stopping power vector for given ion-material
|
||||
// couples.
|
||||
G4PhysicsVector* GetPhysicsVector(
|
||||
virtual G4PhysicsVector* GetPhysicsVector(
|
||||
G4int atomicNumberIon, // Atomic number of ion
|
||||
const G4String& matIdenfier // Name or chemical formula of material
|
||||
);
|
||||
@@ -151,6 +151,10 @@ class G4ExtDEDXTable : public G4VIonDEDXTable {
|
||||
void DumpMap();
|
||||
|
||||
private:
|
||||
|
||||
G4ExtDEDXTable(G4ExtDEDXTable&) = delete;
|
||||
const G4ExtDEDXTable & operator=(const G4ExtDEDXTable&) = delete;
|
||||
|
||||
G4PhysicsVector* CreatePhysicsVector(G4int vectorType);
|
||||
|
||||
G4int FindAtomicNumberElement(G4PhysicsVector* physicsVector);
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4IonStoppingData.hh 66811 2013-01-12 16:04:23Z gcosmo $
|
||||
// $Id: G4IonStoppingData.hh 96794 2016-05-09 10:09:30Z gcosmo $
|
||||
//
|
||||
// ===========================================================================
|
||||
// GEANT4 class header file
|
||||
@@ -152,6 +152,10 @@ class G4IonStoppingData : public G4VIonDEDXTable {
|
||||
void DumpMap();
|
||||
|
||||
private:
|
||||
|
||||
G4IonStoppingData(G4IonStoppingData&) = delete;
|
||||
const G4IonStoppingData & operator=(const G4IonStoppingData&) = delete;
|
||||
|
||||
// Subdirectory of G4LEDATA
|
||||
G4String subDir;
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4IonisParamElm.hh 81374 2014-05-27 13:07:25Z gcosmo $
|
||||
// $Id: G4IonisParamElm.hh 96794 2016-05-09 10:09:30Z gcosmo $
|
||||
//
|
||||
|
||||
// class description
|
||||
@@ -53,7 +53,7 @@ class G4IonisParamElm
|
||||
public: // with description
|
||||
|
||||
G4IonisParamElm(G4double Z);
|
||||
virtual ~G4IonisParamElm();
|
||||
~G4IonisParamElm();
|
||||
|
||||
// retrieval methods
|
||||
|
||||
@@ -80,12 +80,7 @@ public: // with description
|
||||
|
||||
G4double* GetShellCorrectionVector() const {return fShellCorrectionVector;}
|
||||
// shell correction coefficients
|
||||
|
||||
// operators
|
||||
G4IonisParamElm& operator=(const G4IonisParamElm&);
|
||||
G4int operator==(const G4IonisParamElm&) const;
|
||||
G4int operator!=(const G4IonisParamElm&) const;
|
||||
|
||||
|
||||
G4IonisParamElm(__void__&);
|
||||
// Fake default constructor for usage restricted to direct object
|
||||
// persistency for clients requiring preallocation of memory for
|
||||
@@ -93,7 +88,11 @@ public: // with description
|
||||
|
||||
private:
|
||||
|
||||
G4IonisParamElm(G4IonisParamElm&);
|
||||
// operators
|
||||
G4IonisParamElm& operator=(const G4IonisParamElm&) = delete;
|
||||
G4int operator==(const G4IonisParamElm&) const = delete;
|
||||
G4int operator!=(const G4IonisParamElm&) const = delete;
|
||||
G4IonisParamElm(G4IonisParamElm&) = delete;
|
||||
//
|
||||
// data members
|
||||
//
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4IonisParamMat.hh 93568 2015-10-26 14:52:36Z gcosmo $
|
||||
// $Id: G4IonisParamMat.hh 97248 2016-05-30 15:00:11Z gcosmo $
|
||||
//
|
||||
|
||||
// class description
|
||||
@@ -59,19 +59,15 @@ class G4IonisParamMat // with description
|
||||
{
|
||||
public:
|
||||
|
||||
G4IonisParamMat(G4Material*);
|
||||
virtual ~G4IonisParamMat();
|
||||
G4IonisParamMat(const G4Material*);
|
||||
~G4IonisParamMat();
|
||||
|
||||
//
|
||||
// retrieval methods
|
||||
//
|
||||
|
||||
// parameters for mean energy loss calculation:
|
||||
inline
|
||||
G4double GetMeanExcitationEnergy() const {return fMeanExcitationEnergy;};
|
||||
|
||||
void SetMeanExcitationEnergy(G4double value);
|
||||
G4double FindMeanExcitationEnergy(const G4String& chFormula);
|
||||
G4double FindMeanExcitationEnergy(const G4Material*) const;
|
||||
|
||||
inline
|
||||
G4double GetLogMeanExcEnergy() const {return fLogMeanExcEnergy;};
|
||||
@@ -164,15 +160,15 @@ private:
|
||||
void ComputeIonParameters();
|
||||
|
||||
// operators
|
||||
G4IonisParamMat& operator=(const G4IonisParamMat&);
|
||||
G4int operator==(const G4IonisParamMat&) const;
|
||||
G4int operator!=(const G4IonisParamMat&) const;
|
||||
G4IonisParamMat(const G4IonisParamMat&);
|
||||
G4IonisParamMat& operator=(const G4IonisParamMat&) = delete;
|
||||
G4int operator==(const G4IonisParamMat&) const = delete;
|
||||
G4int operator!=(const G4IonisParamMat&) const = delete;
|
||||
G4IonisParamMat(const G4IonisParamMat&) = delete;
|
||||
|
||||
//
|
||||
// data members
|
||||
//
|
||||
G4Material* fMaterial; // this material
|
||||
const G4Material* fMaterial; // this material
|
||||
|
||||
// parameters for mean energy loss calculation
|
||||
G4double fMeanExcitationEnergy; //
|
||||
@@ -222,7 +218,6 @@ private:
|
||||
inline G4double G4IonisParamMat::DensityCorrection(G4double x)
|
||||
{
|
||||
// x = log10(beta*gamma)
|
||||
|
||||
G4double y = 0.0;
|
||||
if(x < fX0density) {
|
||||
if(fD0density > 0.0) { y = fD0density*G4Exp(twoln10*(x - fX0density)); }
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4Isotope.hh 87870 2015-01-16 08:27:07Z gcosmo $
|
||||
// $Id: G4Isotope.hh 96794 2016-05-09 10:09:30Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
@@ -99,8 +99,6 @@ class G4Isotope
|
||||
// Isomer level
|
||||
G4int Getm() const {return fm;}
|
||||
|
||||
// G4int GetCountUse() const {return fCountUse;}
|
||||
|
||||
static
|
||||
G4Isotope* GetIsotope(const G4String& name, G4bool warning=false);
|
||||
|
||||
@@ -132,8 +130,6 @@ class G4Isotope
|
||||
// persistifiable objects.
|
||||
|
||||
void SetName(const G4String& name) {fName=name;}
|
||||
// void increaseCountUse() {fCountUse++;}
|
||||
// void decreaseCountUse() {fCountUse--;}
|
||||
|
||||
private:
|
||||
|
||||
@@ -148,8 +144,6 @@ class G4Isotope
|
||||
G4double fA; // atomic mass of a mole
|
||||
G4int fm; // isomer level
|
||||
|
||||
// G4int fCountUse; // nb of elements which use this isotope
|
||||
|
||||
static
|
||||
G4IsotopeTable theIsotopeTable;
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4Material.hh 94016 2015-11-05 10:14:49Z gcosmo $
|
||||
// $Id: G4Material.hh 96794 2016-05-09 10:09:30Z gcosmo $
|
||||
//
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
@@ -270,10 +270,6 @@ public: // with description
|
||||
friend std::ostream& operator<<(std::ostream&, const G4Material*);
|
||||
friend std::ostream& operator<<(std::ostream&, const G4Material&);
|
||||
friend std::ostream& operator<<(std::ostream&, G4MaterialTable);
|
||||
|
||||
// operators
|
||||
G4int operator==(const G4Material&) const;
|
||||
G4int operator!=(const G4Material&) const;
|
||||
|
||||
G4Material(__void__&);
|
||||
// Fake default constructor for usage restricted to direct object
|
||||
@@ -284,8 +280,11 @@ public: // with description
|
||||
|
||||
private:
|
||||
|
||||
G4Material(const G4Material&);
|
||||
const G4Material& operator=(const G4Material&);
|
||||
// operators
|
||||
G4int operator==(const G4Material&) const = delete;
|
||||
G4int operator!=(const G4Material&) const = delete;
|
||||
G4Material(const G4Material&) = delete;
|
||||
const G4Material& operator=(const G4Material&) = delete;
|
||||
|
||||
void InitializePointers();
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4MaterialPropertiesTable.hh 66811 2013-01-12 16:04:23Z gcosmo $
|
||||
// $Id: G4MaterialPropertiesTable.hh 96794 2016-05-09 10:09:30Z gcosmo $
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
@@ -72,7 +72,7 @@ class G4MaterialPropertiesTable
|
||||
public: // Without description
|
||||
|
||||
G4MaterialPropertiesTable();
|
||||
~G4MaterialPropertiesTable();
|
||||
virtual ~G4MaterialPropertiesTable();
|
||||
|
||||
public: // With description
|
||||
|
||||
@@ -97,16 +97,16 @@ class G4MaterialPropertiesTable
|
||||
inline void RemoveProperty(const char *key);
|
||||
// Remove a property from the table.
|
||||
|
||||
inline G4double GetConstProperty(const char *key);
|
||||
G4double GetConstProperty(const char *key);
|
||||
// Get the constant property from the table corresponding to the key-name
|
||||
|
||||
inline G4bool ConstPropertyExists(const char *key);
|
||||
G4bool ConstPropertyExists(const char *key);
|
||||
// Return true if a const property 'key' exists.
|
||||
|
||||
inline G4MaterialPropertyVector* GetProperty(const char *key);
|
||||
G4MaterialPropertyVector* GetProperty(const char *key);
|
||||
// Get the property from the table corresponding to the key-name.
|
||||
|
||||
inline void AddEntry(const char *key, G4double aPhotonEnergy,
|
||||
void AddEntry(const char *key, G4double aPhotonEnergy,
|
||||
G4double aPropertyValue);
|
||||
// Add a new entry (pair of numbers) to the table for a given key.
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4MaterialPropertiesTable.icc 66811 2013-01-12 16:04:23Z gcosmo $
|
||||
// $Id: G4MaterialPropertiesTable.icc 96794 2016-05-09 10:09:30Z gcosmo $
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
@@ -88,58 +88,3 @@ void G4MaterialPropertiesTable::RemoveProperty(const char *key)
|
||||
MPT.erase(G4String(key));
|
||||
}
|
||||
|
||||
inline
|
||||
G4double G4MaterialPropertiesTable::GetConstProperty(const char *key)
|
||||
{
|
||||
// Returns the constant material property corresponding to a key
|
||||
|
||||
MPTCiterator j;
|
||||
j = MPTC.find(G4String(key));
|
||||
if ( j != MPTC.end() ) return j->second;
|
||||
G4Exception("G4MaterialPropertiesTable::GetConstProperty()","mat202",
|
||||
FatalException, "Constant Material Property not found.");
|
||||
return 0.;
|
||||
}
|
||||
|
||||
inline
|
||||
G4bool G4MaterialPropertiesTable::ConstPropertyExists(const char *key)
|
||||
{
|
||||
// Returns true if a const property 'key' exists
|
||||
|
||||
MPTCiterator j;
|
||||
j = MPTC.find(G4String(key));
|
||||
if ( j != MPTC.end() ) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
inline G4MaterialPropertyVector*
|
||||
G4MaterialPropertiesTable::GetProperty(const char *key)
|
||||
{
|
||||
// Returns a Material Property Vector corresponding to a key
|
||||
|
||||
MPTiterator i;
|
||||
i = MPT.find(G4String(key));
|
||||
if ( i != MPT.end() ) return i->second;
|
||||
if (G4String(key) == "GROUPVEL") return SetGROUPVEL();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline
|
||||
void G4MaterialPropertiesTable::AddEntry(const char *key,
|
||||
G4double aPhotonEnergy,
|
||||
G4double aPropertyValue)
|
||||
{
|
||||
// Allows to add an entry pair directly to the Material Property Vector
|
||||
// given a key
|
||||
|
||||
G4MaterialPropertyVector *targetVector=MPT [G4String(key)];
|
||||
if (targetVector != 0)
|
||||
{
|
||||
targetVector->InsertValues(aPhotonEnergy, aPropertyValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
G4Exception("G4MaterialPropertiesTable::AddEntry()", "mat203",
|
||||
FatalException, "Material Property Vector not found.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4NistElementBuilder.hh 94234 2015-11-09 10:58:13Z gcosmo $
|
||||
// $Id: G4NistElementBuilder.hh 96794 2016-05-09 10:09:30Z gcosmo $
|
||||
|
||||
#ifndef G4NistElementBuilder_h
|
||||
#define G4NistElementBuilder_h 1
|
||||
@@ -58,27 +58,27 @@
|
||||
#include <CLHEP/Units/PhysicalConstants.h>
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4Element.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
const G4int maxNumElements = 108;
|
||||
const G4int maxAbundance = 3500;
|
||||
|
||||
class G4Element;
|
||||
|
||||
class G4NistElementBuilder
|
||||
{
|
||||
public:
|
||||
|
||||
G4NistElementBuilder(G4int vb);
|
||||
explicit G4NistElementBuilder(G4int vb);
|
||||
~G4NistElementBuilder();
|
||||
|
||||
// Find or build a G4Element by atomic number
|
||||
inline G4Element* FindElement (G4int Z) const;
|
||||
G4Element* FindOrBuildElement (G4int Z, G4bool buildIsotopes = true);
|
||||
|
||||
// Find or build a G4Element by symbol
|
||||
G4Element* FindOrBuildElement (const G4String& symb,
|
||||
G4bool buildIsotopes = true);
|
||||
G4Element* FindOrBuildElement (const G4String& symb,
|
||||
G4bool buildIsotopes = true);
|
||||
// print element information
|
||||
void PrintElement (G4int Z) const;
|
||||
|
||||
@@ -150,7 +150,6 @@ private:
|
||||
|
||||
G4int index;
|
||||
G4int verbose;
|
||||
G4bool first;
|
||||
|
||||
std::vector<G4String> elmNames;
|
||||
};
|
||||
@@ -160,9 +159,7 @@ private:
|
||||
|
||||
inline G4double G4NistElementBuilder::GetAtomicMassAmu(G4int Z) const
|
||||
{
|
||||
G4double a = 0.0;
|
||||
if(Z>0 && Z<maxNumElements) { a = atomicMass[Z]; }
|
||||
return a;
|
||||
return (Z>0 && Z<maxNumElements) ? atomicMass[Z] : 0.0;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -170,8 +167,10 @@ inline G4double G4NistElementBuilder::GetAtomicMassAmu(G4int Z) const
|
||||
inline G4double G4NistElementBuilder::GetIsotopeMass(G4int Z, G4int N) const
|
||||
{
|
||||
G4double mass = 0.0;
|
||||
G4int i = N - nFirstIsotope[Z];
|
||||
if(i >= 0 && i <nIsotopes[Z]) {mass = massIsotopes[i + idxIsotopes[Z]];}
|
||||
if(Z > 0 && Z < maxNumElements) {
|
||||
G4int i = N - nFirstIsotope[Z];
|
||||
if(i >= 0 && i <nIsotopes[Z]) {mass = massIsotopes[i + idxIsotopes[Z]];}
|
||||
}
|
||||
return mass;
|
||||
}
|
||||
|
||||
@@ -180,10 +179,12 @@ inline G4double G4NistElementBuilder::GetIsotopeMass(G4int Z, G4int N) const
|
||||
inline G4double G4NistElementBuilder::GetAtomicMass(G4int Z, G4int N) const
|
||||
{
|
||||
G4double mass = 0.0;
|
||||
G4int i = N - nFirstIsotope[Z];
|
||||
if(i >= 0 && i <nIsotopes[Z]) {
|
||||
mass = massIsotopes[i + idxIsotopes[Z]] +
|
||||
Z*CLHEP::electron_mass_c2 - bindingEnergy[Z];
|
||||
if(Z > 0 && Z < maxNumElements) {
|
||||
G4int i = N - nFirstIsotope[Z];
|
||||
if(i >= 0 && i <nIsotopes[Z]) {
|
||||
mass = massIsotopes[i + idxIsotopes[Z]] +
|
||||
Z*CLHEP::electron_mass_c2 - bindingEnergy[Z];
|
||||
}
|
||||
}
|
||||
return mass;
|
||||
}
|
||||
@@ -193,7 +194,7 @@ inline G4double G4NistElementBuilder::GetAtomicMass(G4int Z, G4int N) const
|
||||
inline
|
||||
G4double G4NistElementBuilder::GetTotalElectronBindingEnergy(G4int Z) const
|
||||
{
|
||||
return bindingEnergy[Z];
|
||||
return (Z > 0 && Z < maxNumElements) ? bindingEnergy[Z] : 0.0;
|
||||
}
|
||||
|
||||
|
||||
@@ -203,8 +204,10 @@ inline
|
||||
G4double G4NistElementBuilder::GetIsotopeAbundance(G4int Z, G4int N) const
|
||||
{
|
||||
G4double x = 0.0;
|
||||
G4int i = N - nFirstIsotope[Z];
|
||||
if(i >= 0 && i <nIsotopes[Z]) {x = relAbundance[i + idxIsotopes[Z]];}
|
||||
if(Z > 0 && Z < maxNumElements) {
|
||||
G4int i = N - nFirstIsotope[Z];
|
||||
if(i >= 0 && i <nIsotopes[Z]) { x = relAbundance[i + idxIsotopes[Z]]; }
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
@@ -212,14 +215,14 @@ G4double G4NistElementBuilder::GetIsotopeAbundance(G4int Z, G4int N) const
|
||||
|
||||
inline G4int G4NistElementBuilder::GetNistFirstIsotopeN(G4int Z) const
|
||||
{
|
||||
return nFirstIsotope[Z];
|
||||
return (Z > 0 && Z < maxNumElements) ? nFirstIsotope[Z] : 0;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline G4int G4NistElementBuilder::GetNumberOfNistIsotopes(G4int Z) const
|
||||
{
|
||||
return nIsotopes[Z];
|
||||
return (Z > 0 && Z < maxNumElements) ? nIsotopes[Z] : 0;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -246,5 +249,14 @@ inline void G4NistElementBuilder::SetVerbose(G4int val)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline G4Element* G4NistElementBuilder::FindElement(G4int Z) const
|
||||
{
|
||||
const G4ElementTable* theElementTable = G4Element::GetElementTable();
|
||||
return (Z > 0 && Z < maxNumElements && elmIndex[Z] >= 0) ?
|
||||
(*theElementTable)[elmIndex[Z]] : nullptr;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4NistManager.hh 94234 2015-11-09 10:58:13Z gcosmo $
|
||||
// $Id: G4NistManager.hh 97248 2016-05-30 15:00:11Z gcosmo $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -89,10 +89,11 @@ public:
|
||||
|
||||
// Get G4Element by index
|
||||
//
|
||||
inline G4Element* GetElement(size_t index);
|
||||
inline G4Element* GetElement(size_t index) const;
|
||||
|
||||
// Find or build G4Element by atomic number
|
||||
//
|
||||
inline G4Element* FindElement(G4int Z) const;
|
||||
inline G4Element* FindOrBuildElement(G4int Z, G4bool isotopes=true);
|
||||
|
||||
// Find or build G4Element by symbol
|
||||
@@ -145,22 +146,22 @@ public:
|
||||
|
||||
// Print element by Z
|
||||
//
|
||||
inline void PrintElement(G4int Z);
|
||||
inline void PrintElement(G4int Z) const;
|
||||
|
||||
// Print element from internal DB by symbol, if "all" - print all elements
|
||||
//
|
||||
void PrintElement(const G4String&);
|
||||
void PrintElement(const G4String&) const;
|
||||
|
||||
// Print G4Element by name, if "all" - print all G4Elements
|
||||
//
|
||||
void PrintG4Element(const G4String&);
|
||||
void PrintG4Element(const G4String&) const;
|
||||
|
||||
// Access to the vector of Geant4 predefined element names
|
||||
//
|
||||
inline const std::vector<G4String>& GetNistElementNames() const;
|
||||
|
||||
// Access mean ionisation energy for atoms (Z <= 98)
|
||||
//
|
||||
// Access mean ionisation energy for atoms (Z <= 98) by its index
|
||||
//
|
||||
inline G4double GetMeanIonisationEnergy(G4int Z) const;
|
||||
|
||||
// Access nominal density by atomic number for simple materials and
|
||||
@@ -170,16 +171,18 @@ public:
|
||||
|
||||
// Get G4Material by index
|
||||
//
|
||||
inline G4Material* GetMaterial(size_t index);
|
||||
inline G4Material* GetMaterial(size_t index) const;
|
||||
|
||||
// Find or build a G4Material by name, from the Geant4 dataBase
|
||||
//
|
||||
inline G4Material* FindMaterial(const G4String& name) const;
|
||||
inline G4Material* FindOrBuildMaterial(const G4String& name,
|
||||
G4bool isotopes=true,
|
||||
G4bool warning=false);
|
||||
|
||||
// Find or build a simple material via atomic number
|
||||
//
|
||||
inline G4Material* FindSimpleMaterial(G4int Z) const;
|
||||
inline G4Material* FindOrBuildSimpleMaterial(G4int Z,
|
||||
G4bool warning=false);
|
||||
|
||||
@@ -236,15 +239,15 @@ public:
|
||||
|
||||
// Get number of G4Materials
|
||||
//
|
||||
inline size_t GetNumberOfMaterials();
|
||||
inline size_t GetNumberOfMaterials() const;
|
||||
|
||||
inline G4int GetVerbose();
|
||||
inline G4int GetVerbose() const;
|
||||
|
||||
void SetVerbose(G4int);
|
||||
|
||||
// Print G4Material by name
|
||||
//
|
||||
void PrintG4Material(const G4String&);
|
||||
void PrintG4Material(const G4String&) const;
|
||||
|
||||
// Print predefined Geant4 materials:
|
||||
// "simple" - only pure materials in basic state (Z = 1, ..., 98)
|
||||
@@ -253,7 +256,7 @@ public:
|
||||
// "bio" - bio-medical materials and compounds
|
||||
// "all" - all
|
||||
//
|
||||
inline void ListMaterials(const G4String&);
|
||||
inline void ListMaterials(const G4String&) const;
|
||||
|
||||
// Access to the list of names of Geant4 predefined materials
|
||||
//
|
||||
@@ -261,16 +264,17 @@ public:
|
||||
|
||||
// Fast computation of Z^1/3
|
||||
//
|
||||
inline G4double GetZ13(G4double Z);
|
||||
inline G4double GetZ13(G4int Z);
|
||||
inline G4double GetZ13(G4double Z) const;
|
||||
inline G4double GetZ13(G4int Z) const;
|
||||
|
||||
// Fast computation of A^0.27 for natuaral abundances
|
||||
//
|
||||
inline G4double GetA27(G4int Z);
|
||||
inline G4double GetA27(G4int Z) const;
|
||||
|
||||
// Fast computation of log(A)
|
||||
//
|
||||
inline G4double GetLOGZ(G4int Z);
|
||||
inline G4double GetLOGZ(G4int Z) const;
|
||||
inline G4double GetLOGAMU(G4int Z) const;
|
||||
|
||||
private:
|
||||
|
||||
@@ -298,19 +302,25 @@ private:
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline size_t G4NistManager::GetNumberOfMaterials()
|
||||
inline size_t G4NistManager::GetNumberOfMaterials() const
|
||||
{
|
||||
return nMaterials;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline G4Element* G4NistManager::GetElement(size_t index)
|
||||
inline G4Element* G4NistManager::GetElement(size_t index) const
|
||||
{
|
||||
G4Element* elm = 0;
|
||||
const G4ElementTable* theElementTable = G4Element::GetElementTable();
|
||||
if(index < theElementTable->size()) { elm = (*theElementTable)[index]; }
|
||||
return elm;
|
||||
return (index < theElementTable->size()) ? (*theElementTable)[index] : nullptr;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline
|
||||
G4Element* G4NistManager::FindElement(G4int Z) const
|
||||
{
|
||||
return elmBuilder->FindElement(Z);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -418,42 +428,48 @@ const std::vector<G4String>& G4NistManager::GetNistElementNames() const
|
||||
|
||||
inline G4double G4NistManager::GetMeanIonisationEnergy(G4int Z) const
|
||||
{
|
||||
return matBuilder->GetMeanIonisationEnergy(Z-1);
|
||||
return matBuilder->GetMeanIonisationEnergy(Z);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline G4double G4NistManager::GetNominalDensity(G4int Z) const
|
||||
{
|
||||
return matBuilder->GetNominalDensity(Z-1);
|
||||
return matBuilder->GetNominalDensity(Z);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline void G4NistManager::PrintElement(G4int Z)
|
||||
inline void G4NistManager::PrintElement(G4int Z) const
|
||||
{
|
||||
elmBuilder->PrintElement(Z);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline G4Material* G4NistManager::GetMaterial(size_t index)
|
||||
inline G4Material* G4NistManager::GetMaterial(size_t index) const
|
||||
{
|
||||
const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
|
||||
G4Material* mat = 0;
|
||||
if(index < theMaterialTable->size()) { mat = (*theMaterialTable)[index]; }
|
||||
return mat;
|
||||
return (index < theMaterialTable->size()) ? (*theMaterialTable)[index] : nullptr;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline G4int G4NistManager::GetVerbose()
|
||||
inline G4int G4NistManager::GetVerbose() const
|
||||
{
|
||||
return verbose;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline
|
||||
G4Material* G4NistManager::FindMaterial(const G4String& name) const
|
||||
{
|
||||
return matBuilder->FindMaterial(name);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline
|
||||
G4Material* G4NistManager::FindOrBuildMaterial(const G4String& name,
|
||||
G4bool isotopes,
|
||||
@@ -464,6 +480,14 @@ G4Material* G4NistManager::FindOrBuildMaterial(const G4String& name,
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline
|
||||
G4Material* G4NistManager::FindSimpleMaterial(G4int Z) const
|
||||
{
|
||||
return matBuilder->FindSimpleMaterial(Z);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline
|
||||
G4Material* G4NistManager::FindOrBuildSimpleMaterial(G4int Z, G4bool warning)
|
||||
{
|
||||
@@ -530,7 +554,7 @@ inline G4Material* G4NistManager::ConstructNewIdealGasMaterial(
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline void G4NistManager::ListMaterials(const G4String& list)
|
||||
inline void G4NistManager::ListMaterials(const G4String& list) const
|
||||
{
|
||||
matBuilder->ListMaterials(list);
|
||||
}
|
||||
@@ -545,35 +569,40 @@ const std::vector<G4String>& G4NistManager::GetNistMaterialNames() const
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline G4double G4NistManager::GetZ13(G4double A)
|
||||
inline G4double G4NistManager::GetZ13(G4double A) const
|
||||
{
|
||||
return g4pow->A13(A);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline G4double G4NistManager::GetZ13(G4int Z)
|
||||
inline G4double G4NistManager::GetZ13(G4int Z) const
|
||||
{
|
||||
return g4pow->Z13(Z);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline G4double G4NistManager::GetA27(G4int Z)
|
||||
inline G4double G4NistManager::GetA27(G4int Z) const
|
||||
{
|
||||
G4double res = 0.0;
|
||||
if(Z < 101) { res = POWERA27[Z]; }
|
||||
return res;
|
||||
return (0 <= Z && Z < 101) ? POWERA27[Z] : 0.0;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline G4double G4NistManager::GetLOGZ(G4int Z)
|
||||
inline G4double G4NistManager::GetLOGZ(G4int Z) const
|
||||
{
|
||||
return g4pow->logZ(Z);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline G4double G4NistManager::GetLOGAMU(G4int Z) const
|
||||
{
|
||||
return (0 <= Z && Z < 101) ? LOGAZ[Z] : 0.0;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4NistMaterialBuilder.hh 91920 2015-08-11 09:50:13Z gcosmo $
|
||||
// $Id: G4NistMaterialBuilder.hh 97248 2016-05-30 15:00:11Z gcosmo $
|
||||
|
||||
#ifndef G4NistMaterialBuilder_h
|
||||
#define G4NistMaterialBuilder_h 1
|
||||
@@ -61,6 +61,7 @@
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4Material.hh"
|
||||
#include "G4Threading.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -76,6 +77,7 @@ public:
|
||||
|
||||
// Find or build a G4Material by name, from dataBase
|
||||
//
|
||||
inline G4Material* FindMaterial (const G4String& name) const;
|
||||
G4Material* FindOrBuildMaterial (const G4String& name,
|
||||
G4bool isotopes=true,
|
||||
G4bool warning =true);
|
||||
@@ -83,6 +85,7 @@ public:
|
||||
|
||||
// Find or build a simple material via atomic number
|
||||
//
|
||||
inline G4Material* FindSimpleMaterial(G4int Z) const;
|
||||
G4Material* FindOrBuildSimpleMaterial(G4int Z, G4bool warning);
|
||||
|
||||
// construct a G4Material from scratch by atome count
|
||||
@@ -181,6 +184,7 @@ private:
|
||||
void AddElementByAtomCount (const G4String& name, G4int);
|
||||
|
||||
// build a G4Material from dataBase
|
||||
G4Material* BuildNistMaterial(const G4String& matname, G4bool warning);
|
||||
G4Material* BuildMaterial(G4int idx);
|
||||
|
||||
void DumpElm(G4int) const;
|
||||
@@ -217,7 +221,9 @@ private:
|
||||
std::vector<G4double> gasTemperature;
|
||||
std::vector<G4double> gasPressure;
|
||||
|
||||
G4bool first;
|
||||
#ifdef G4MULTITHREADED
|
||||
static G4Mutex nistMaterialMutex;
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
@@ -230,17 +236,34 @@ inline const std::vector<G4String>&
|
||||
inline G4double
|
||||
G4NistMaterialBuilder::GetMeanIonisationEnergy(G4int index) const
|
||||
{
|
||||
G4double res = 10*index;
|
||||
if(index >= 0 && index < nMaterials) { res = ionPotentials[index]; }
|
||||
return res;
|
||||
return (index >= 0 && index < nMaterials) ? ionPotentials[index] : 10.0*index;
|
||||
}
|
||||
|
||||
inline G4double
|
||||
G4NistMaterialBuilder::GetNominalDensity(G4int index) const
|
||||
{
|
||||
G4double res = 0.0;
|
||||
if(index >= 0 && index < nMaterials) { res = densities[index]; }
|
||||
return res;
|
||||
return (index >= 0 && index < nMaterials) ? densities[index] : 0.0;
|
||||
}
|
||||
|
||||
inline G4Material*
|
||||
G4NistMaterialBuilder::FindMaterial(const G4String& name) const
|
||||
{
|
||||
const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
|
||||
size_t nmat = theMaterialTable->size();
|
||||
G4Material* ptr = nullptr;
|
||||
for(size_t i=0; i<nmat; ++i) {
|
||||
if(name == ((*theMaterialTable)[i])->GetName()) {
|
||||
ptr = (*theMaterialTable)[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ptr;
|
||||
}
|
||||
|
||||
inline G4Material*
|
||||
G4NistMaterialBuilder::FindSimpleMaterial(G4int Z) const
|
||||
{
|
||||
return (Z>0 && Z<nElementary) ? FindMaterial(names[Z]) : nullptr;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4NistMessenger.hh 66811 2013-01-12 16:04:23Z gcosmo $
|
||||
// $Id: G4NistMessenger.hh 96794 2016-05-09 10:09:30Z gcosmo $
|
||||
//
|
||||
// File name: G4NistMessenger
|
||||
//
|
||||
@@ -82,10 +82,10 @@ class G4NistMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
|
||||
G4NistMessenger(G4NistManager* );
|
||||
explicit G4NistMessenger(G4NistManager* );
|
||||
virtual ~G4NistMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
virtual void SetNewValue(G4UIcommand*, G4String) final;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4SandiaTable.hh 79097 2014-02-14 16:08:35Z gcosmo $
|
||||
// $Id: G4SandiaTable.hh 96794 2016-05-09 10:09:30Z gcosmo $
|
||||
|
||||
// class description
|
||||
//
|
||||
@@ -51,11 +51,10 @@
|
||||
#ifndef G4SANDIATABLE_HH
|
||||
#define G4SANDIATABLE_HH
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
#include "G4OrderedTable.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include <assert.h>
|
||||
#include <vector>
|
||||
|
||||
#include <CLHEP/Units/PhysicalConstants.h>
|
||||
@@ -90,10 +89,8 @@ public: // with description
|
||||
G4double GetSandiaMatTable(G4int,G4int) const;
|
||||
const G4double* GetSandiaCofForMaterial(G4double energy) const;
|
||||
|
||||
G4double GetSandiaCofForMaterialPAI(G4int,G4int) const;
|
||||
G4double GetSandiaMatTablePAI(G4int,G4int) const;
|
||||
const G4double* GetSandiaCofForMaterialPAI(G4double energy) const;
|
||||
G4OrderedTable* GetSandiaMatrixPAI();
|
||||
|
||||
inline void SetVerbose(G4int ver) { fVerbose = ver; };
|
||||
|
||||
@@ -110,26 +107,16 @@ private:
|
||||
void ComputeMatSandiaMatrixPAI();
|
||||
|
||||
// methods per atom
|
||||
G4int GetNbOfIntervals(G4int Z);
|
||||
G4double GetSandiaPerAtom(G4int Z, G4int, G4int);
|
||||
G4double GetIonizationPot(G4int Z) const;
|
||||
G4double GetSandiaPerAtom(G4int Z, G4int, G4int) const;
|
||||
|
||||
// static members of the class
|
||||
static const G4int fNumberOfElements;
|
||||
static const G4int fIntervalLimit;
|
||||
static const G4int fNumberOfIntervals;
|
||||
static const G4int fH2OlowerInt;
|
||||
#ifdef G4VERBOSE
|
||||
static G4int PrintErrorZ(G4int Z, const G4String&);
|
||||
static void PrintErrorV(const G4String&);
|
||||
#endif
|
||||
|
||||
static const G4double fSandiaTable[981][5];
|
||||
static const G4double fH2OlowerI1[23][5];
|
||||
static const G4int fNbOfIntervals[101];
|
||||
static const G4double fZtoAratio[101];
|
||||
static const G4double fIonizationPotentials[101];
|
||||
static const G4double funitc[5];
|
||||
static const G4double fnulcof[4];
|
||||
|
||||
// computed once
|
||||
static G4int fCumulInterval[101];
|
||||
static G4int fCumulInterval[101];
|
||||
static const G4double funitc[5];
|
||||
|
||||
// used at initialisation
|
||||
std::vector<G4double> fSandiaCofPerAtom;
|
||||
@@ -148,18 +135,11 @@ private:
|
||||
|
||||
public: // without description
|
||||
|
||||
G4SandiaTable(G4int);
|
||||
G4SandiaTable(G4int matIndex);
|
||||
|
||||
G4SandiaTable();
|
||||
|
||||
void Initialize(G4Material*);
|
||||
// void Initialize(G4MaterialCutsCouple*);
|
||||
void Initialize(G4int);
|
||||
|
||||
|
||||
void SandiaSwap(G4double** da, G4int i, G4int j);
|
||||
|
||||
void SandiaSort(G4double** da, G4int sz);
|
||||
|
||||
G4int SandiaIntervals(G4int Z[], G4int el);
|
||||
|
||||
@@ -170,21 +150,30 @@ public: // without description
|
||||
|
||||
G4int GetMaxInterval() const;
|
||||
|
||||
G4double** GetPointerToCof();
|
||||
|
||||
G4bool GetLowerI1(){return fLowerI1;};
|
||||
void SetLowerI1(G4bool flag){fLowerI1=flag;};
|
||||
inline G4bool GetLowerI1() {return fLowerI1;};
|
||||
inline void SetLowerI1(G4bool flag) {fLowerI1=flag;};
|
||||
|
||||
private:
|
||||
|
||||
void ComputeMatTable();
|
||||
|
||||
void SandiaSwap(G4double** da, G4int i, G4int j);
|
||||
|
||||
void SandiaSort(G4double** da, G4int sz);
|
||||
|
||||
G4double** GetPointerToCof();
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
G4SandiaTable(G4SandiaTable &);
|
||||
G4SandiaTable & operator=(const G4SandiaTable &right);
|
||||
G4SandiaTable(G4SandiaTable &) = delete;
|
||||
G4SandiaTable & operator=(const G4SandiaTable &right) = delete;
|
||||
|
||||
static const G4double fSandiaTable[981][5];
|
||||
static const G4int fNumberOfElements;
|
||||
static const G4int fIntervalLimit;
|
||||
static const G4int fNumberOfIntervals;
|
||||
static const G4int fH2OlowerInt;
|
||||
|
||||
// data members for PAI model
|
||||
|
||||
G4double** fPhotoAbsorptionCof; // SandiaTable for mixture
|
||||
|
||||
G4int fMaxInterval ;
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4StaticSandiaData.hh 75603 2013-11-04 13:15:47Z gcosmo $
|
||||
// $Id: G4StaticSandiaData.hh 96794 2016-05-09 10:09:30Z gcosmo $
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
|
||||
@@ -81,9 +81,6 @@
|
||||
// Tables, 18(1976)497-508.
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// Ionization potentials of first 100 elements in eV
|
||||
//
|
||||
// const G4double G4SandiaTable::fIonizationPotentials[101]
|
||||
//
|
||||
// The most of ionization energies are taken from S. Ruben, Handbook of the
|
||||
// Elements, 3rd ed. (Open Court, La Salle, IL, 1985). 28 of the ionization
|
||||
@@ -1409,7 +1406,7 @@ const G4double G4SandiaTable::fSandiaTable[981][5] =
|
||||
// of energy interval in which Sandia coeeficients are parametrized for each
|
||||
// element.
|
||||
|
||||
const G4int G4SandiaTable::fNbOfIntervals [101] =
|
||||
static const G4int fNbOfIntervals [101] =
|
||||
{
|
||||
|
||||
0, // nonexisting 'zero' element
|
||||
@@ -1457,7 +1454,7 @@ const G4int G4SandiaTable::fNbOfIntervals [101] =
|
||||
// The ration of atomic number to atomic mass for first 100 elements
|
||||
// (which assumes A in amu/atom or in g/mole)
|
||||
|
||||
const G4double G4SandiaTable::fZtoAratio[101] =
|
||||
static const G4double fZtoAratio[101] =
|
||||
{
|
||||
|
||||
0, // nonexisting 'zero' element
|
||||
@@ -1513,7 +1510,7 @@ const G4double G4SandiaTable::fZtoAratio[101] =
|
||||
// element.
|
||||
|
||||
|
||||
const G4double G4SandiaTable::fIonizationPotentials[101] =
|
||||
static const G4double fIonizationPotentials[101] =
|
||||
{
|
||||
0, // nonexisting 'zero' element
|
||||
|
||||
@@ -1555,7 +1552,7 @@ const G4double G4SandiaTable::fIonizationPotentials[101] =
|
||||
|
||||
}; // ............... end of fIonizationPotentials array
|
||||
|
||||
const G4double G4SandiaTable::fH2OlowerI1[23][5] =
|
||||
static const G4double fH2OlowerI1[23][5] =
|
||||
{
|
||||
|
||||
{ 1.993334e-09, 1.864182e-09, 8.181011e-18, -4.963267e-26, 5.482299e-35 },
|
||||
@@ -1589,11 +1586,8 @@ const G4double G4SandiaTable::fH2OlowerI1[23][5] =
|
||||
};
|
||||
|
||||
const G4int G4SandiaTable::fNumberOfElements = 100;
|
||||
|
||||
const G4int G4SandiaTable::fIntervalLimit = 100;
|
||||
|
||||
const G4int G4SandiaTable::fNumberOfIntervals = 980;
|
||||
|
||||
const G4int G4SandiaTable::fH2OlowerInt = 23;
|
||||
|
||||
//
|
||||
|
||||
@@ -72,7 +72,7 @@ class G4UCNMicroRoughnessHelper
|
||||
// 1) cos(theta)^2,
|
||||
// 2) (k_l/k)^2
|
||||
|
||||
G4double S2(G4double, G4double);
|
||||
G4double S2(G4double, G4double) const;
|
||||
|
||||
// Transmitted intensity with k-vector within the medium
|
||||
|
||||
@@ -80,7 +80,7 @@ class G4UCNMicroRoughnessHelper
|
||||
// 1) cos(theta')^2,
|
||||
// 2) (k_l/k')^2
|
||||
|
||||
G4double SS2(G4double, G4double);
|
||||
G4double SS2(G4double, G4double) const;
|
||||
|
||||
// Fourier-tranform of the autocorrelation function with k-vector in vacuum
|
||||
|
||||
@@ -94,7 +94,7 @@ class G4UCNMicroRoughnessHelper
|
||||
// 7) angular cut
|
||||
|
||||
G4double Fmu(G4double, G4double, G4double,
|
||||
G4double, G4double, G4double, G4double);
|
||||
G4double, G4double, G4double, G4double) const;
|
||||
|
||||
// Fourier-tranform of the autocorrelation function with k-vector within
|
||||
// the medium
|
||||
@@ -111,7 +111,7 @@ class G4UCNMicroRoughnessHelper
|
||||
// 9) theta_refract
|
||||
|
||||
G4double FmuS(G4double, G4double, G4double, G4double,
|
||||
G4double, G4double, G4double, G4double, G4double);
|
||||
G4double, G4double, G4double, G4double, G4double) const;
|
||||
|
||||
// Integral probability for non-specular reflection
|
||||
|
||||
@@ -127,7 +127,7 @@ class G4UCNMicroRoughnessHelper
|
||||
// 9) angular cut
|
||||
|
||||
G4double IntIplus(G4double, G4double, G4double, G4int, G4int,
|
||||
G4double, G4double, G4double*, G4double);
|
||||
G4double, G4double, G4double*, G4double) const;
|
||||
|
||||
// Probability of non-specular reflection with the microroughness model
|
||||
|
||||
@@ -142,7 +142,7 @@ class G4UCNMicroRoughnessHelper
|
||||
// 8) angular cut
|
||||
|
||||
G4double ProbIplus (G4double, G4double, G4double, G4double,
|
||||
G4double, G4double, G4double, G4double);
|
||||
G4double, G4double, G4double, G4double) const;
|
||||
|
||||
// Integral probability for non-specular transmission
|
||||
|
||||
@@ -158,7 +158,7 @@ class G4UCNMicroRoughnessHelper
|
||||
// 9) angular cut
|
||||
|
||||
G4double IntIminus(G4double, G4double, G4double, G4int, G4int,
|
||||
G4double, G4double, G4double*, G4double);
|
||||
G4double, G4double, G4double*, G4double) const;
|
||||
|
||||
// Probability of non-specular transmission with the microroughness model
|
||||
|
||||
@@ -173,7 +173,7 @@ class G4UCNMicroRoughnessHelper
|
||||
// 8) angular cut
|
||||
|
||||
G4double ProbIminus (G4double, G4double, G4double, G4double,
|
||||
G4double, G4double, G4double, G4double);
|
||||
G4double, G4double, G4double, G4double) const;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ class G4PhysicsVector;
|
||||
class G4VIonDEDXTable {
|
||||
|
||||
public:
|
||||
G4VIonDEDXTable();
|
||||
explicit G4VIonDEDXTable();
|
||||
virtual ~G4VIonDEDXTable();
|
||||
|
||||
// Function for building a stopping power table for a material consisting of
|
||||
@@ -104,6 +104,12 @@ class G4VIonDEDXTable {
|
||||
G4int, // Atomic number of ion
|
||||
const G4String& // Name or chemical formula of material
|
||||
) = 0;
|
||||
|
||||
private:
|
||||
|
||||
G4VIonDEDXTable(G4VIonDEDXTable&) = delete;
|
||||
const G4VIonDEDXTable & operator=(const G4VIonDEDXTable&) = delete;
|
||||
|
||||
};
|
||||
|
||||
#endif // G4VIONDEDXTABLE_HH
|
||||
|
||||
Reference in New Issue
Block a user