Import Geant4 10.3.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2016-06-30 14:12:05 +02:00
parent a654a7ab1f
commit 4ec577e5c4
2021 changed files with 100995 additions and 78277 deletions
+17 -12
View File
@@ -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
+42 -54
View File
@@ -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;
}
+8 -9
View File
@@ -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
+4 -4
View File
@@ -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];
+14 -10
View File
@@ -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;
+8 -9
View File
@@ -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
//
+9 -14
View File
@@ -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)); }
+1 -7
View File
@@ -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;
+6 -7
View File
@@ -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
+66 -37
View File
@@ -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
+3 -3
View File
@@ -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:
+26 -37
View File
@@ -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 ;
+5 -11
View File
@@ -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:
+7 -1
View File
@@ -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