Import Geant4 11.2.0.beta source tree
This commit is contained in:
@@ -49,7 +49,7 @@ public:
|
||||
|
||||
explicit G4LivermoreComptonModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "LivermoreCompton");
|
||||
virtual ~G4LivermoreComptonModel();
|
||||
~G4LivermoreComptonModel() override;
|
||||
|
||||
void Initialise(const G4ParticleDefinition*, const G4DataVector&) override;
|
||||
|
||||
@@ -75,7 +75,8 @@ public:
|
||||
G4LivermoreComptonModel(const G4LivermoreComptonModel&) = delete;
|
||||
|
||||
private:
|
||||
void ReadData(size_t Z, const char* path = 0);
|
||||
void ReadData(const G4int ZZ);
|
||||
const G4String& FindDirectoryPath();
|
||||
G4double ComputeScatteringFunction(G4double x, G4int Z);
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChange;
|
||||
@@ -87,10 +88,11 @@ private:
|
||||
|
||||
static G4PhysicsFreeVector* data[101]; // 101 because Z range is 1-100
|
||||
static const G4double ScatFuncFitParam[101][16];
|
||||
static G4String gDataDirectory;
|
||||
|
||||
G4int verboseLevel;
|
||||
G4int maxZ;
|
||||
G4bool isInitialised;
|
||||
G4int maxZ = 100;
|
||||
G4bool isInitialised = false;
|
||||
|
||||
};
|
||||
|
||||
|
||||
+24
-28
@@ -25,8 +25,8 @@
|
||||
//
|
||||
// Author: Zhuxin Li@CENBG
|
||||
// 11 March 2020
|
||||
// on the base of G4LivermoreGammaConversionModel
|
||||
// derives from G4BetheHeitler5DModel
|
||||
// on the base of G4LivermoreGammaConversionModel
|
||||
// derives from G4BetheHeitler5DModel
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
#ifndef G4LivermoreGammaConversion5DModel_h
|
||||
@@ -42,39 +42,35 @@ class G4PhysicsLogVector;
|
||||
class G4LivermoreGammaConversion5DModel : public G4BetheHeitler5DModel
|
||||
{
|
||||
public:
|
||||
explicit G4LivermoreGammaConversion5DModel(
|
||||
const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "Livermore5DConversion");
|
||||
virtual ~G4LivermoreGammaConversion5DModel();
|
||||
explicit G4LivermoreGammaConversion5DModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "Livermore5DConversion");
|
||||
~G4LivermoreGammaConversion5DModel() override;
|
||||
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&) override;
|
||||
void InitialiseForElement(const G4ParticleDefinition*,
|
||||
G4int Z) override;
|
||||
|
||||
G4double ComputeCrossSectionPerAtom(
|
||||
const G4ParticleDefinition*,
|
||||
G4double kinEnergy,
|
||||
G4double Z,
|
||||
G4double A=0.0,
|
||||
G4double cut=0.0,
|
||||
G4double emax=DBL_MAX) override;
|
||||
void Initialise(const G4ParticleDefinition*, const G4DataVector&) override;
|
||||
void InitialiseForElement(const G4ParticleDefinition*, G4int Z) override;
|
||||
|
||||
G4LivermoreGammaConversion5DModel & operator=
|
||||
(const G4LivermoreGammaConversion5DModel &right) = delete;
|
||||
G4LivermoreGammaConversion5DModel(const G4LivermoreGammaConversion5DModel&) = delete;
|
||||
G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition*, G4double kinEnergy, G4double Z,
|
||||
G4double A = 0.0, G4double cut = 0.0,
|
||||
G4double emax = DBL_MAX) override;
|
||||
|
||||
G4LivermoreGammaConversion5DModel&
|
||||
operator=(const G4LivermoreGammaConversion5DModel& right) = delete;
|
||||
G4LivermoreGammaConversion5DModel(const G4LivermoreGammaConversion5DModel&) = delete;
|
||||
|
||||
private:
|
||||
void ReadData(size_t Z, const char* path = nullptr);
|
||||
const G4String& FindDirectoryPath();
|
||||
void ReadData(const G4int ZZ);
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChange;
|
||||
|
||||
static const G4int maxZ =101;
|
||||
static G4PhysicsFreeVector* data[maxZ]; // 101 because Z range is 1-100
|
||||
|
||||
|
||||
static G4PhysicsFreeVector* data[101]; // 101 because Z range is 1-100
|
||||
static G4String gDataDirectory;
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4int verboseLevel;
|
||||
static G4double lowEnergyLimit;
|
||||
G4int maxZ = 100;
|
||||
G4bool useSpline = false;
|
||||
G4bool isInitialised = false;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
+12
-6
@@ -50,7 +50,7 @@ public:
|
||||
explicit G4LivermoreGammaConversionModel(
|
||||
const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "LivermoreConversion");
|
||||
virtual ~G4LivermoreGammaConversionModel();
|
||||
~G4LivermoreGammaConversionModel() override;
|
||||
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&) override;
|
||||
@@ -68,13 +68,19 @@ public:
|
||||
G4LivermoreGammaConversionModel(const G4LivermoreGammaConversionModel&) = delete;
|
||||
|
||||
private:
|
||||
void ReadData(size_t Z, const char* path = nullptr);
|
||||
static G4PhysicsFreeVector* data[101]; // 101 because Z range is 1-100
|
||||
static G4double lowEnergyLimit;
|
||||
void ReadData(const G4int ZZ);
|
||||
const G4String& FindDirectoryPath();
|
||||
|
||||
G4int verboseLevel;
|
||||
G4ParticleChangeForGamma* fParticleChange;
|
||||
G4int maxZ;
|
||||
|
||||
static G4PhysicsFreeVector* data[101]; // 101 because Z range is 1-100
|
||||
static G4String gDataDirectory;
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4int verboseLevel;
|
||||
G4int maxZ = 100;
|
||||
G4bool useSpline = false;
|
||||
G4bool isInitialised = false;
|
||||
};
|
||||
|
||||
|
||||
|
||||
+52
-71
@@ -34,13 +34,12 @@
|
||||
// 22 Oct 2012 A & V Ivanchenko Migration data structure to G4PhysicsVector
|
||||
// 1 June 2017 M Bandieramonte
|
||||
|
||||
|
||||
#ifndef G4LivermorePhotoElectricModel_h
|
||||
#define G4LivermorePhotoElectricModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4ElementData.hh"
|
||||
#include "G4Threading.hh"
|
||||
#include "G4VEmModel.hh"
|
||||
|
||||
#include <vector>
|
||||
|
||||
class G4ParticleChangeForGamma;
|
||||
@@ -51,82 +50,64 @@ class G4LivermorePhotoElectricModel : public G4VEmModel
|
||||
{
|
||||
public:
|
||||
explicit G4LivermorePhotoElectricModel(const G4String& nam = "LivermorePhElectric");
|
||||
|
||||
virtual ~G4LivermorePhotoElectricModel();
|
||||
|
||||
|
||||
~G4LivermorePhotoElectricModel() override;
|
||||
|
||||
void Initialise(const G4ParticleDefinition*, const G4DataVector&) override;
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double energy,
|
||||
G4double cutEnergy = 0.0,
|
||||
G4double maxEnergy = DBL_MAX) override;
|
||||
|
||||
G4double ComputeCrossSectionPerAtom(
|
||||
const G4ParticleDefinition*,
|
||||
G4double energy,
|
||||
G4double Z,
|
||||
G4double A=0,
|
||||
G4double cut=0,
|
||||
G4double emax=DBL_MAX) override;
|
||||
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy) override;
|
||||
|
||||
|
||||
|
||||
G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double energy,
|
||||
G4double cutEnergy = 0.0, G4double maxEnergy = DBL_MAX) override;
|
||||
|
||||
G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition*, G4double energy, G4double Z,
|
||||
G4double A = 0, G4double cut = 0,
|
||||
G4double emax = DBL_MAX) override;
|
||||
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*, const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*, G4double tmin, G4double maxEnergy) override;
|
||||
|
||||
void InitialiseForElement(const G4ParticleDefinition*, G4int Z) override;
|
||||
|
||||
inline void SetLimitNumberOfShells(G4int);
|
||||
G4double GetBindingEnergy (G4int Z, G4int shell);
|
||||
|
||||
G4LivermorePhotoElectricModel & operator=
|
||||
(const G4LivermorePhotoElectricModel &right) = delete;
|
||||
|
||||
[[maybe_unused]] inline void SetLimitNumberOfShells(G4int);
|
||||
G4double GetBindingEnergy(G4int Z, G4int shell);
|
||||
|
||||
G4LivermorePhotoElectricModel& operator=(const G4LivermorePhotoElectricModel& right) = delete;
|
||||
G4LivermorePhotoElectricModel(const G4LivermorePhotoElectricModel&) = delete;
|
||||
|
||||
protected:
|
||||
G4ParticleChangeForGamma* fParticleChange;
|
||||
|
||||
private:
|
||||
void ReadData(G4int Z);
|
||||
const G4String& FindDirectoryPath();
|
||||
|
||||
const G4ParticleDefinition* theGamma;
|
||||
const G4ParticleDefinition* theElectron;
|
||||
|
||||
static G4PhysicsFreeVector* fCrossSection[101]; // 101 because Z range is 1-100
|
||||
static G4PhysicsFreeVector* fCrossSectionLE[101];
|
||||
static std::vector<G4double>* fParamHigh[101];
|
||||
static std::vector<G4double>* fParamLow[101];
|
||||
static G4int fNShells[101];
|
||||
static G4int fNShellsUsed[101];
|
||||
static G4ElementData* fShellCrossSection;
|
||||
static G4Material* fWater;
|
||||
static G4double fWaterEnergyLimit;
|
||||
static G4String fDataDirectory;
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
static G4Mutex livPhotoeffMutex;
|
||||
#endif
|
||||
|
||||
G4VAtomDeexcitation* fAtomDeexcitation;
|
||||
std::vector<G4double> fSandiaCof;
|
||||
protected:
|
||||
G4ParticleChangeForGamma* fParticleChange = nullptr;
|
||||
|
||||
G4double fCurrSection;
|
||||
G4int verboseLevel;
|
||||
G4int maxZ;
|
||||
G4int nShellLimit;
|
||||
G4bool fDeexcitationActive;
|
||||
G4bool isInitialised;
|
||||
|
||||
private:
|
||||
void ReadData(const G4int Z);
|
||||
const G4String& FindDirectoryPath();
|
||||
|
||||
const G4ParticleDefinition* theGamma;
|
||||
const G4ParticleDefinition* theElectron;
|
||||
|
||||
static G4PhysicsFreeVector* fCrossSection[101]; // 101 because Z range is 1-100
|
||||
static G4PhysicsFreeVector* fCrossSectionLE[101];
|
||||
static std::vector<G4double>* fParamHigh[101];
|
||||
static std::vector<G4double>* fParamLow[101];
|
||||
static G4int fNShells[101];
|
||||
static G4int fNShellsUsed[101];
|
||||
static G4ElementData* fShellCrossSection;
|
||||
static G4Material* fWater;
|
||||
static G4double fWaterEnergyLimit;
|
||||
static G4String fDataDirectory;
|
||||
|
||||
G4VAtomDeexcitation* fAtomDeexcitation = nullptr;
|
||||
std::vector<G4double> fSandiaCof;
|
||||
|
||||
G4double fCurrSection = 0.0;
|
||||
G4int verboseLevel;
|
||||
G4int maxZ = 100;
|
||||
G4int nShellLimit = 100;
|
||||
G4bool fDeexcitationActive = false;
|
||||
G4bool isInitialised = false;
|
||||
};
|
||||
|
||||
inline
|
||||
void G4LivermorePhotoElectricModel::SetLimitNumberOfShells(G4int n)
|
||||
[[maybe_unused]] inline void G4LivermorePhotoElectricModel::SetLimitNumberOfShells(G4int n)
|
||||
{
|
||||
nShellLimit = n;
|
||||
nShellLimit = n;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -31,55 +31,49 @@
|
||||
#ifndef G4LivermoreRayleighModel_h
|
||||
#define G4LivermoreRayleighModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4PhysicsFreeVector.hh"
|
||||
#include "G4ProductionCutsTable.hh"
|
||||
#include "G4VEmModel.hh"
|
||||
|
||||
class G4LivermoreRayleighModel : public G4VEmModel
|
||||
{
|
||||
public:
|
||||
explicit G4LivermoreRayleighModel();
|
||||
~G4LivermoreRayleighModel();
|
||||
~G4LivermoreRayleighModel() override;
|
||||
|
||||
void Initialise(const G4ParticleDefinition*, const G4DataVector&) override;
|
||||
void InitialiseLocal(const G4ParticleDefinition*,
|
||||
G4VEmModel* masterModel) override;
|
||||
void InitialiseLocal(const G4ParticleDefinition*, G4VEmModel* masterModel) override;
|
||||
void InitialiseForElement(const G4ParticleDefinition*, G4int Z) override;
|
||||
|
||||
G4double ComputeCrossSectionPerAtom(
|
||||
const G4ParticleDefinition*,
|
||||
G4double kinEnergy,
|
||||
G4double Z,
|
||||
G4double A=0,
|
||||
G4double cut=0,
|
||||
G4double emax=DBL_MAX) override;
|
||||
G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition*, G4double kinEnergy, G4double Z,
|
||||
G4double A = 0, G4double cut = 0,
|
||||
G4double emax = DBL_MAX) override;
|
||||
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy) override;
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*, const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*, G4double tmin, G4double maxEnergy) override;
|
||||
|
||||
inline void SetLowEnergyThreshold(G4double);
|
||||
[[maybe_unused]] inline void SetLowEnergyThreshold(G4double);
|
||||
|
||||
G4LivermoreRayleighModel & operator=(const G4LivermoreRayleighModel &right) = delete;
|
||||
G4LivermoreRayleighModel& operator=(const G4LivermoreRayleighModel& right) = delete;
|
||||
G4LivermoreRayleighModel(const G4LivermoreRayleighModel&) = delete;
|
||||
|
||||
private:
|
||||
void ReadData(size_t Z, const char* path = 0);
|
||||
void ReadData(const G4int ZZ);
|
||||
const G4String& FindDirectoryPath();
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChange;
|
||||
|
||||
static G4PhysicsFreeVector* dataCS[101]; // 101 because Z range is 1-100
|
||||
static G4PhysicsFreeVector* dataCS[101]; // 101 because Z range is 1-100
|
||||
static G4String gDataDirectory;
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double lowEnergyLimit;
|
||||
G4int verboseLevel;
|
||||
G4int maxZ;
|
||||
G4bool isInitialised;
|
||||
G4int maxZ = 100;
|
||||
G4bool isInitialised = false;
|
||||
};
|
||||
|
||||
inline void G4LivermoreRayleighModel::SetLowEnergyThreshold(G4double val)
|
||||
[[maybe_unused]] inline void G4LivermoreRayleighModel::SetLowEnergyThreshold(G4double val)
|
||||
{
|
||||
lowEnergyLimit = val;
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ class G4LowEWentzelVIModel : public G4WentzelVIModel
|
||||
{
|
||||
public:
|
||||
explicit G4LowEWentzelVIModel();
|
||||
virtual ~G4LowEWentzelVIModel();
|
||||
~G4LowEWentzelVIModel() override = default;
|
||||
|
||||
G4double ComputeTruePathLengthLimit(const G4Track& track,
|
||||
G4double& currentMinimalStep) override;
|
||||
|
||||
Reference in New Issue
Block a user