Import Geant4 10.6.0 source tree
This commit is contained in:
@@ -23,8 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
|
||||
// class description
|
||||
//
|
||||
// Class consists of atomic subshell binding energies for first 100 elements.
|
||||
@@ -61,6 +59,7 @@ public : //with description
|
||||
|
||||
static G4int GetNumberOfShells(G4int Z);
|
||||
static G4int GetNumberOfElectrons(G4int Z, G4int SubshellNb);
|
||||
static G4int GetNumberOfFreeElectrons(G4int Z, G4double th);
|
||||
static G4double GetBindingEnergy(G4int Z, G4int SubshellNb);
|
||||
static G4double GetTotalBindingEnergy(G4int Z);
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ class G4AtomicShells_XDB_EADL
|
||||
|
||||
static G4int GetNumberOfShells (G4int Z);
|
||||
static G4int GetNumberOfElectrons (G4int Z, G4int SubshellNb);
|
||||
static G4int GetNumberOfFreeElectrons(G4int Z, G4double th);
|
||||
static G4double GetBindingEnergy (G4int Z, G4int SubshellNb);
|
||||
static G4double GetTotalBindingEnergy(G4int Z);
|
||||
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/*
|
||||
* Interface to calculation of the Fermi density effect as per the method
|
||||
* described in:
|
||||
*
|
||||
* R. M. Sternheimer, M. J. Berger, and S. M. Seltzer. Density
|
||||
* effect for the ionization loss of charged particles in various sub-
|
||||
* stances. Atom. Data Nucl. Data Tabl., 30:261, 1984.
|
||||
*
|
||||
* Which (among other Sternheimer references) builds on:
|
||||
*
|
||||
* R. M. Sternheimer. The density effect for ionization loss in
|
||||
* materials. Phys. Rev., 88:851859, 1952.
|
||||
*
|
||||
* The returned values of delta are directly from the Sternheimer calculation,
|
||||
* and not Sternheimer's popular three-part approximate parameterization
|
||||
* introduced in the same paper.
|
||||
*
|
||||
* Author: Matthew Strait <straitm@umn.edu> 2019
|
||||
*/
|
||||
|
||||
#ifndef G4DensityEffectCalculator_HH
|
||||
#define G4DensityEffectCalculator_HH
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
class G4Material;
|
||||
|
||||
class G4DensityEffectCalculator
|
||||
{
|
||||
public:
|
||||
|
||||
G4DensityEffectCalculator(const G4Material*, G4int);
|
||||
~G4DensityEffectCalculator();
|
||||
|
||||
// The Sternheimer 'x' defined as log10(p/m) == log10(beta*gamma).
|
||||
G4double ComputeDensityCorrection(G4double x);
|
||||
|
||||
private:
|
||||
|
||||
/*
|
||||
* Given a material defined in 'par' with a plasma energy, mean excitation
|
||||
* energy, and set of atomic energy levels ("oscillator frequencies") with
|
||||
* occupation fractions ("oscillation strengths"), solve for the Sternheimer
|
||||
* adjustment factor (Sternheimer 1984 eq 8) and record (into 'par') the values
|
||||
* of the adjusted oscillator frequencies and Sternheimer constants l_i.
|
||||
* After doing this, 'par' is ready for a calculation of delta for an
|
||||
* arbitrary particle energy. Returns true on success, false on failure.
|
||||
*/
|
||||
G4double FermiDeltaCalculation(G4double x);
|
||||
|
||||
G4double Newton(G4double x0, G4bool first);
|
||||
|
||||
G4double DFRho(G4double);
|
||||
|
||||
G4double FRho(G4double);
|
||||
|
||||
G4double DEll(G4double);
|
||||
|
||||
G4double Ell(G4double);
|
||||
|
||||
G4double DeltaOnceSolved(G4double);
|
||||
|
||||
const G4Material* fMaterial;
|
||||
G4int fVerbose;
|
||||
G4int fWarnings;
|
||||
|
||||
// Number of energy levels. If a single element, this is the number
|
||||
// of subshells. If several elements, this is the sum of the number
|
||||
// of subshells. In principle, could include levels for molecular
|
||||
// orbitals or other non-atomic states. The last level is always
|
||||
// the conduction band. If the material is an insulator, set the
|
||||
// oscillator strength for that level to zero and the energy to
|
||||
// any value.
|
||||
const G4int nlev;
|
||||
|
||||
G4double fConductivity;
|
||||
|
||||
// Current Sternheimer 'x' defined as log10(p/m) == log10(beta*gamma).
|
||||
G4double sternx;
|
||||
|
||||
// The plasma energy of the material in eV, which is simply
|
||||
// 28.816 sqrt(density Z/A), with density in g/cc.
|
||||
G4double plasmaE;
|
||||
|
||||
// The mean excitation energy of the material in eV, i.e. the 'I' in the
|
||||
// Bethe energy loss formula.
|
||||
G4double meanexcite;
|
||||
|
||||
// Sternheimer's "oscillator strengths", which are simply the fraction
|
||||
// of electrons in a given energy level. For a single element, this is
|
||||
// the fraction of electrons in a subshell. For a compound or mixture,
|
||||
// it is weighted by the number fraction of electrons contributed by
|
||||
// each element, e.g. for water, oxygen's electrons are given 8/10 of the
|
||||
// weight.
|
||||
G4double * sternf;
|
||||
|
||||
// Energy levels. Can be found for free atoms in, e.g., T. A. Carlson.
|
||||
// Photoelectron and Auger Spectroscopy. Plenum Press, New York and London,
|
||||
// 1985. Available in a convenient form in G4AtomicShells.cc.
|
||||
//
|
||||
// Sternheimer 1984 implies that the energy level for conduction electrons
|
||||
// (the final element of this array) should be set to zero, although the
|
||||
// computation could be run with other values.
|
||||
G4double * levE;
|
||||
|
||||
/***** Results of intermediate calculations *****/
|
||||
|
||||
// The Sternheimer parameters l_i which appear in Sternheimer 1984 eq(1).
|
||||
G4double * sternl;
|
||||
|
||||
// The adjusted energy levels, as found using Sternheimer 1984 eq(8).
|
||||
G4double * sternEbar;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -118,7 +118,7 @@ public: // with description
|
||||
G4VMaterialExtension* RetrieveExtension(const G4String& name);
|
||||
|
||||
inline G4int GetNumberOfExtensions() const
|
||||
{ return fExtensionMap.size(); }
|
||||
{ return G4int(fExtensionMap.size()); }
|
||||
|
||||
// Retrieve iterators, proxyes to c++ methods. These are const for read-only
|
||||
// access. Use Register/RetreiveExtension to modify map
|
||||
|
||||
@@ -58,8 +58,8 @@
|
||||
|
||||
class G4IonStoppingData : public G4VIonDEDXTable {
|
||||
|
||||
public:
|
||||
G4IonStoppingData(const G4String& leDirectory);
|
||||
public:
|
||||
G4IonStoppingData(const G4String& dir, G4bool icru);
|
||||
virtual ~G4IonStoppingData();
|
||||
|
||||
// Function for checking the availability of stopping power tables
|
||||
@@ -166,6 +166,8 @@ class G4IonStoppingData : public G4VIonDEDXTable {
|
||||
|
||||
G4IonDEDXMapElem dedxMapElements;
|
||||
G4IonDEDXMapMat dedxMapMaterials;
|
||||
|
||||
G4bool fICRU90;
|
||||
};
|
||||
|
||||
#endif // G4IONSTOPPINGDATA_HH
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
// 28-10-02: add setMeanExcitationEnergy (V.Ivanchenko)
|
||||
// 27-09-07: add computation of parameters for ions (V.Ivanchenko)
|
||||
// 04-03-08: add fBirks constant (mma)
|
||||
// 16-01-19, add exact computation of the density effect (M. Strait)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
|
||||
|
||||
@@ -50,12 +51,13 @@
|
||||
#include "G4Exp.hh"
|
||||
#include "G4Threading.hh"
|
||||
|
||||
class G4Material; // forward declaration
|
||||
class G4Material;
|
||||
class G4DensityEffectData;
|
||||
class G4DensityEffectCalculator;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
|
||||
|
||||
class G4IonisParamMat // with description
|
||||
class G4IonisParamMat
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -100,10 +102,18 @@ public:
|
||||
|
||||
// defined density correction parameterisation via base material
|
||||
void SetDensityEffectParameters(const G4Material* bmat);
|
||||
|
||||
|
||||
void ComputeDensityEffectOnFly(G4bool);
|
||||
|
||||
// compute density correction as a function of the kinematic variable
|
||||
// x = log10(beta*gamma)
|
||||
inline G4double DensityCorrection(G4double x);
|
||||
G4double DensityCorrection(G4double x);
|
||||
|
||||
inline G4DensityEffectCalculator* GetDensityEffectCalculator()
|
||||
{ return fDensityEffectCalc; }
|
||||
|
||||
// use parameterisation
|
||||
inline G4double GetDensityCorrection(G4double x);
|
||||
|
||||
static G4DensityEffectData* GetDensityEffectData();
|
||||
|
||||
@@ -158,7 +168,7 @@ private:
|
||||
void ComputeMeanParameters();
|
||||
|
||||
// Compute parameters for the density effect
|
||||
void ComputeDensityEffect();
|
||||
void ComputeDensityEffectParameters();
|
||||
|
||||
// Compute parameters for the energy fluctuation model
|
||||
void ComputeFluctModel();
|
||||
@@ -167,21 +177,23 @@ private:
|
||||
void ComputeIonParameters();
|
||||
|
||||
// operators
|
||||
G4IonisParamMat& operator=(const G4IonisParamMat&) = delete;
|
||||
G4bool operator==(const G4IonisParamMat&) const = delete;
|
||||
G4bool operator!=(const G4IonisParamMat&) const = delete;
|
||||
G4IonisParamMat(const G4IonisParamMat&) = delete;
|
||||
G4IonisParamMat& operator=(const G4IonisParamMat&);
|
||||
G4bool operator==(const G4IonisParamMat&) const;
|
||||
G4bool operator!=(const G4IonisParamMat&) const;
|
||||
G4IonisParamMat(const G4IonisParamMat&);
|
||||
|
||||
//
|
||||
// data members
|
||||
//
|
||||
const G4Material* fMaterial; // this material
|
||||
const G4Material* fMaterial; // this material
|
||||
|
||||
G4DensityEffectCalculator* fDensityEffectCalc; // calculator of the density effect
|
||||
G4double* fShellCorrectionVector; // shell correction coefficients
|
||||
|
||||
// parameters for mean energy loss calculation
|
||||
G4double fMeanExcitationEnergy; //
|
||||
G4double fLogMeanExcEnergy; //
|
||||
G4double* fShellCorrectionVector; // shell correction coefficients
|
||||
G4double fTaul; // lower limit of Bethe-Bloch formula
|
||||
G4double fMeanExcitationEnergy; //
|
||||
G4double fLogMeanExcEnergy; //
|
||||
G4double fTaul; // lower limit of Bethe-Bloch formula
|
||||
|
||||
// parameters of the density correction
|
||||
G4double fCdensity; // mat.constant
|
||||
@@ -225,7 +237,7 @@ private:
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
|
||||
|
||||
inline G4double G4IonisParamMat::DensityCorrection(G4double x)
|
||||
inline G4double G4IonisParamMat::GetDensityCorrection(G4double x)
|
||||
{
|
||||
// x = log10(beta*gamma)
|
||||
G4double y = 0.0;
|
||||
@@ -236,4 +248,6 @@ inline G4double G4IonisParamMat::DensityCorrection(G4double x)
|
||||
return y;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,9 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4Material
|
||||
@@ -167,16 +164,13 @@ public: // with description
|
||||
void AddMaterial(G4Material* material, //the material
|
||||
G4double fraction); //fractionOfMass
|
||||
|
||||
|
||||
virtual ~G4Material();
|
||||
|
||||
inline void SetChemicalFormula (const G4String& chF) {fChemicalFormula=chF;}
|
||||
|
||||
virtual ~G4Material();
|
||||
//
|
||||
// retrieval methods
|
||||
//
|
||||
inline const G4String& GetName() const {return fName;}
|
||||
inline const G4String& GetChemicalFormula() const {return fChemicalFormula;}
|
||||
inline G4double GetFreeElectronDensity() const {return fFreeElecDensity;}
|
||||
inline G4double GetDensity() const {return fDensity;}
|
||||
inline G4State GetState() const {return fState;}
|
||||
inline G4double GetTemperature() const {return fTemp;}
|
||||
@@ -203,18 +197,18 @@ public: // with description
|
||||
|
||||
//vector of nb of atoms per volume of each element in this material:
|
||||
inline const
|
||||
G4double* GetVecNbOfAtomsPerVolume() const {return VecNbOfAtomsPerVolume;}
|
||||
G4double* GetVecNbOfAtomsPerVolume() const {return fVecNbOfAtomsPerVolume;}
|
||||
//total number of atoms per volume:
|
||||
inline
|
||||
G4double GetTotNbOfAtomsPerVolume() const {return TotNbOfAtomsPerVolume;}
|
||||
G4double GetTotNbOfAtomsPerVolume() const {return fTotNbOfAtomsPerVolume;}
|
||||
//total number of electrons per volume:
|
||||
inline
|
||||
G4double GetTotNbOfElectPerVolume() const {return TotNbOfElectPerVolume;}
|
||||
G4double GetTotNbOfElectPerVolume() const {return fTotNbOfElectPerVolume;}
|
||||
|
||||
//obsolete names (5-10-98) see the 2 functions above
|
||||
inline const
|
||||
G4double* GetAtomicNumDensityVector() const {return VecNbOfAtomsPerVolume;}
|
||||
inline G4double GetElectronDensity() const {return TotNbOfElectPerVolume;}
|
||||
G4double* GetAtomicNumDensityVector() const {return fVecNbOfAtomsPerVolume;}
|
||||
inline G4double GetElectronDensity() const {return fTotNbOfElectPerVolume;}
|
||||
|
||||
// Radiation length:
|
||||
inline G4double GetRadlen() const {return fRadlen;}
|
||||
@@ -224,10 +218,10 @@ public: // with description
|
||||
|
||||
// ionisation parameters:
|
||||
inline G4IonisParamMat* GetIonisation() const {return fIonisation;}
|
||||
|
||||
// Sandia table:
|
||||
inline G4SandiaTable* GetSandiaTable() const {return fSandiaTable;}
|
||||
|
||||
// Sandia table:
|
||||
inline G4SandiaTable* GetSandiaTable() const {return fSandiaTable; }
|
||||
|
||||
// Base material:
|
||||
inline
|
||||
const G4Material* GetBaseMaterial() const {return fBaseMaterial;}
|
||||
@@ -238,8 +232,13 @@ public: // with description
|
||||
{return fMatComponents;}
|
||||
|
||||
// for chemical compound
|
||||
inline
|
||||
G4double GetMassOfMolecule() const {return fMassOfMolecule;}
|
||||
inline G4double GetMassOfMolecule() const {return fMassOfMolecule;}
|
||||
|
||||
void SetChemicalFormula(const G4String& chF);
|
||||
|
||||
void SetFreeElectronDensity(G4double);
|
||||
|
||||
void ComputeDensityEffectOnFly(G4bool);
|
||||
|
||||
// meaningful only for single material:
|
||||
G4double GetZ() const;
|
||||
@@ -251,17 +250,23 @@ public: // with description
|
||||
inline G4MaterialPropertiesTable* GetMaterialPropertiesTable() const
|
||||
{return fMaterialPropertiesTable;}
|
||||
|
||||
//the index of this material in the Table:
|
||||
inline size_t GetIndex() const {return fIndexInTable;}
|
||||
|
||||
// the static Table of Materials:
|
||||
//
|
||||
static G4MaterialTable* GetMaterialTable();
|
||||
|
||||
static size_t GetNumberOfMaterials();
|
||||
|
||||
//the index of this material in the Table:
|
||||
inline size_t GetIndex() const {return fIndexInTable;}
|
||||
|
||||
|
||||
//return pointer to a material, given its name:
|
||||
static G4Material* GetMaterial(const G4String& name, G4bool warning=true);
|
||||
|
||||
//return pointer to a simple material, given its propeties:
|
||||
static G4Material* GetMaterial(G4double z, G4double a, G4double dens);
|
||||
|
||||
//return pointer to a composit material, given its propeties:
|
||||
static G4Material* GetMaterial(size_t nComp, G4double dens);
|
||||
|
||||
//
|
||||
//printing methods
|
||||
@@ -282,10 +287,10 @@ public: // with description
|
||||
private:
|
||||
|
||||
// operators
|
||||
G4bool operator==(const G4Material&) const = delete;
|
||||
G4bool operator!=(const G4Material&) const = delete;
|
||||
G4Material(const G4Material&) = delete;
|
||||
const G4Material& operator=(const G4Material&) = delete;
|
||||
G4bool operator==(const G4Material&) const;
|
||||
G4bool operator!=(const G4Material&) const;
|
||||
G4Material(const G4Material&);
|
||||
const G4Material& operator=(const G4Material&);
|
||||
|
||||
void InitializePointers();
|
||||
|
||||
@@ -303,53 +308,53 @@ private:
|
||||
|
||||
private:
|
||||
|
||||
//
|
||||
// Basic data members ( To define a material)
|
||||
//
|
||||
G4String fName; // Material name
|
||||
G4String fChemicalFormula; // Material chemical formula
|
||||
G4double fDensity; // Material density
|
||||
const G4Material* fBaseMaterial; // Pointer to the base material
|
||||
G4MaterialPropertiesTable* fMaterialPropertiesTable;
|
||||
|
||||
G4State fState; // Material state (determined
|
||||
// internally based on density)
|
||||
G4double fTemp; // Temperature (defaults: STP)
|
||||
G4double fPressure; // Pressure (defaults: STP)
|
||||
|
||||
G4int maxNbComponents; // totalNbOfComponentsInTheMaterial
|
||||
G4int fArrayLength; // the length of fAtomsVector
|
||||
G4int fNumberOfComponents; // Nb of components declared so far
|
||||
|
||||
G4int fNumberOfElements; // Nb of Elements in the material
|
||||
G4ElementVector* theElementVector; // vector of constituent Elements
|
||||
G4double* fMassFractionVector; // composition by fractional mass
|
||||
G4int* fAtomsVector; // composition by atom count
|
||||
|
||||
G4MaterialPropertiesTable* fMaterialPropertiesTable;
|
||||
|
||||
static
|
||||
G4MaterialTable theMaterialTable; // the material table
|
||||
size_t fIndexInTable; // the position in the table
|
||||
|
||||
//
|
||||
// Derived data members (computed from the basic data members)
|
||||
//
|
||||
// some general atomic properties
|
||||
|
||||
G4double* VecNbOfAtomsPerVolume; // vector of nb of atoms per volume
|
||||
G4double TotNbOfAtomsPerVolume; // total nb of atoms per volume
|
||||
G4double TotNbOfElectPerVolume; // total nb of electrons per volume
|
||||
G4double fRadlen; // Radiation length
|
||||
G4double fNuclInterLen; // Nuclear interaction length
|
||||
G4double* fVecNbOfAtomsPerVolume; // vector of nb of atoms per volume
|
||||
|
||||
G4IonisParamMat* fIonisation; // ionisation parameters
|
||||
G4SandiaTable* fSandiaTable; // Sandia table
|
||||
|
||||
// utilities
|
||||
//
|
||||
const G4Material* fBaseMaterial; // Pointer to the base material
|
||||
G4double fMassOfMolecule; // for materials built by atoms count
|
||||
G4double fDensity; // Material density
|
||||
G4double fFreeElecDensity; // Free electron density
|
||||
G4double fTemp; // Temperature (defaults: STP)
|
||||
G4double fPressure; // Pressure (defaults: STP)
|
||||
|
||||
G4double fTotNbOfAtomsPerVolume; // total nb of atoms per volume
|
||||
G4double fTotNbOfElectPerVolume; // total nb of electrons per volume
|
||||
G4double fRadlen; // Radiation length
|
||||
G4double fNuclInterLen; // Nuclear interaction length
|
||||
G4double fMassOfMolecule; // for materials built by atoms count
|
||||
|
||||
G4State fState; // Material state (determined
|
||||
// internally based on density)
|
||||
size_t fIndexInTable; // the position in the material table
|
||||
|
||||
G4int maxNbComponents; // totalNbOfComponentsInTheMaterial
|
||||
G4int fArrayLength; // the length of fAtomsVector
|
||||
G4int fNumberOfComponents; // Nb of components declared so far
|
||||
|
||||
G4int fNumberOfElements; // Nb of Elements in the material
|
||||
|
||||
std::map<G4Material*,G4double> fMatComponents; // for composites built via
|
||||
// AddMaterial()
|
||||
|
||||
G4String fName; // Material name
|
||||
G4String fChemicalFormula; // Material chemical formula
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
static G4Mutex materialMutex;
|
||||
#endif
|
||||
|
||||
@@ -194,7 +194,7 @@ public:
|
||||
const G4String& basename,
|
||||
G4double density = 0.0,
|
||||
G4double temp = NTP_Temperature,
|
||||
G4double pres = CLHEP::STP_Pressure);
|
||||
G4double pres = CLHEP::STP_Pressure);
|
||||
|
||||
// Construct a G4Material from scratch by atome count
|
||||
// temperature and pressure should be consistent with the density
|
||||
@@ -239,7 +239,15 @@ public:
|
||||
G4bool isotopes = true,
|
||||
G4double temp = NTP_Temperature,
|
||||
G4double pressure = CLHEP::STP_Pressure);
|
||||
|
||||
|
||||
// enable/disable density effect calculator by material name
|
||||
//
|
||||
void SetDensityEffectCalculatorFlag(const G4String&, G4bool);
|
||||
|
||||
// enable/disable density effect calculator by material pointer
|
||||
//
|
||||
void SetDensityEffectCalculatorFlag(G4Material*, G4bool);
|
||||
|
||||
// Get number of G4Materials
|
||||
//
|
||||
inline size_t GetNumberOfMaterials() const;
|
||||
@@ -284,26 +292,25 @@ public:
|
||||
private:
|
||||
|
||||
explicit G4NistManager();
|
||||
static G4NistManager* instance;
|
||||
|
||||
G4Pow* g4pow;
|
||||
static G4NistManager* instance;
|
||||
|
||||
std::vector<G4Element*> elements;
|
||||
std::vector<G4Material*> materials;
|
||||
|
||||
G4ICRU90StoppingData* fICRU90;
|
||||
G4NistElementBuilder* elmBuilder;
|
||||
G4NistMaterialBuilder* matBuilder;
|
||||
G4NistMessenger* messenger;
|
||||
G4Pow* g4pow;
|
||||
|
||||
G4double POWERA27[101];
|
||||
G4double LOGAZ[101];
|
||||
|
||||
std::vector<G4Element*> elements;
|
||||
std::vector<G4Material*> materials;
|
||||
|
||||
|
||||
size_t nElements;
|
||||
size_t nMaterials;
|
||||
|
||||
size_t nMaterials;
|
||||
G4int verbose;
|
||||
|
||||
G4ICRU90StoppingData* fICRU90;
|
||||
|
||||
G4NistElementBuilder* elmBuilder;
|
||||
G4NistMaterialBuilder* matBuilder;
|
||||
G4NistMessenger* messenger;
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
static G4Mutex nistManagerMutex;
|
||||
#endif
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
// File name: G4NistMessenger
|
||||
//
|
||||
// Author: Vladimir Ivanchenko
|
||||
@@ -101,7 +100,9 @@ private:
|
||||
G4UIdirectory* g4Dir;
|
||||
G4UIcmdWithAString* g4ElmCmd;
|
||||
G4UIcmdWithAString* g4MatCmd;
|
||||
G4UIcmdWithAString* g4DensCmd;
|
||||
G4UIcmdWithAString* g4DensCmd;
|
||||
G4UIcmdWithAString* densCmd;
|
||||
G4UIcmdWithAString* adensCmd;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,8 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
|
||||
// class description
|
||||
//
|
||||
// This class is an interface to G4StaticSandiaData.
|
||||
@@ -66,7 +64,7 @@ class G4SandiaTable
|
||||
{
|
||||
public: // with description
|
||||
|
||||
G4SandiaTable(G4Material*);
|
||||
G4SandiaTable(const G4Material*);
|
||||
|
||||
~G4SandiaTable();
|
||||
|
||||
@@ -118,10 +116,10 @@ private:
|
||||
static const G4double funitc[5];
|
||||
|
||||
// used at initialisation
|
||||
std::vector<G4double> fSandiaCofPerAtom;
|
||||
std::vector<G4double> fSandiaCofPerAtom;
|
||||
|
||||
// members of the class
|
||||
G4Material* fMaterial;
|
||||
const G4Material* fMaterial;
|
||||
G4int fMatNbOfIntervals;
|
||||
G4OrderedTable* fMatSandiaMatrix;
|
||||
G4OrderedTable* fMatSandiaMatrixPAI;
|
||||
@@ -138,7 +136,7 @@ public: // without description
|
||||
|
||||
G4SandiaTable();
|
||||
|
||||
void Initialize(G4Material*);
|
||||
void Initialize(const G4Material*);
|
||||
|
||||
G4int SandiaIntervals(G4int Z[], G4int el);
|
||||
|
||||
@@ -162,9 +160,11 @@ private:
|
||||
|
||||
G4double** GetPointerToCof();
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
G4SandiaTable(G4SandiaTable &) = delete;
|
||||
G4SandiaTable & operator=(const G4SandiaTable &right) = delete;
|
||||
// operators
|
||||
G4bool operator==(const G4SandiaTable&) const;
|
||||
G4bool operator!=(const G4SandiaTable&) const;
|
||||
G4SandiaTable(G4SandiaTable &);
|
||||
G4SandiaTable & operator=(const G4SandiaTable &right);
|
||||
|
||||
static const G4double fSandiaTable[981][5];
|
||||
static const G4int fNumberOfElements;
|
||||
|
||||
@@ -42,9 +42,13 @@
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
// 12-05-14, adopted from Stefan Heule (PSI) Thesis by P.Gumplinger
|
||||
// http://ucn.web.psi.ch/papers/stefanheule_thesis2008.pdf
|
||||
// reported in F. Atchison et al., Eur. Phys. J. A 44, 23–29 (2010)
|
||||
// DOI: 10.1140/epja/i2010-10926-x
|
||||
// Thanks to Geza Zsigmond
|
||||
//
|
||||
// 02-11-19 Stefan Heule's thesis is available from PSI UCN group pages at
|
||||
// https://www.psi.ch/en/ltp-ucn-physics/papers-and-theses
|
||||
// or directly at https://opac.nebis.ch/ediss/20080426_002127549.pdf
|
||||
|
||||
#ifndef G4MICROROUGHNESSHELPER_HH
|
||||
#define G4MICROROUGHNESSHELPER_HH 1
|
||||
|
||||
Reference in New Issue
Block a user