Import Geant4 11.0.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2021-06-25 16:12:29 +02:00
parent c968e26a39
commit 6399a014b6
4200 changed files with 207479 additions and 237366 deletions
@@ -60,48 +60,46 @@ class G4eBremsstrahlungRelModel : public G4VEmModel {
public:
explicit G4eBremsstrahlungRelModel(const G4ParticleDefinition* p=0,
const G4String& nam="eBremLPM");
explicit G4eBremsstrahlungRelModel(const G4ParticleDefinition* p=nullptr,
const G4String& nam="eBremLPM");
virtual ~G4eBremsstrahlungRelModel();
~G4eBremsstrahlungRelModel() override;
virtual void Initialise(const G4ParticleDefinition*,
const G4DataVector&) override;
void Initialise(const G4ParticleDefinition*, const G4DataVector&) override;
virtual void InitialiseLocal(const G4ParticleDefinition*,
G4VEmModel* masterModel) override;
void InitialiseLocal(const G4ParticleDefinition*,
G4VEmModel* masterModel) override;
virtual G4double ComputeDEDXPerVolume(const G4Material*,
const G4ParticleDefinition*,
G4double ekin,
G4double cutEnergy) override;
G4double ComputeDEDXPerVolume(const G4Material*,
const G4ParticleDefinition*,
G4double ekin,
G4double cutEnergy) override;
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition*,
G4double ekin,
G4double zet,
G4double,
G4double cutEnergy,
G4double maxEnergy = DBL_MAX) override;
G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition*,
G4double ekin,
G4double zet,
G4double,
G4double cutEnergy,
G4double maxEnergy = DBL_MAX) override;
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
const G4MaterialCutsCouple*,
const G4DynamicParticle*,
G4double cutEnergy,
G4double maxEnergy) override;
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
const G4MaterialCutsCouple*,
const G4DynamicParticle*,
G4double cutEnergy,
G4double maxEnergy) override;
virtual void SetupForMaterial(const G4ParticleDefinition*,
const G4Material*,
G4double) override;
void SetupForMaterial(const G4ParticleDefinition*,
const G4Material*, G4double) override;
virtual G4double MinPrimaryEnergy(const G4Material*,
const G4ParticleDefinition*,
G4double cutEnergy) override;
G4double MinPrimaryEnergy(const G4Material*,
const G4ParticleDefinition*,
G4double cutEnergy) override;
protected:
virtual G4double ComputeDXSectionPerAtom(G4double gammaEnergy);
void SetParticle(const G4ParticleDefinition* p);
void SetParticle(const G4ParticleDefinition* p);
private:
@@ -112,61 +110,74 @@ private:
G4double ComputeRelDXSectionPerAtom(G4double gammaEnergy);
// init special data per element i.e. per Z
void InitialiseElementData();
void InitialiseElementData();
// methods for initialisation and run-time evaluation of LPM functions:
void InitLPMFunctions();
void InitLPMFunctions();
void ComputeLPMfunctions(G4double& funcXiS,
G4double& funcGS,
G4double& funcPhiS,
const G4double egamma);
void ComputeLPMfunctions(G4double& funcXiS,
G4double& funcGS,
G4double& funcPhiS,
const G4double egamma);
void GetLPMFunctions(G4double& lpmGs,
G4double& lpmPhis,
const G4double s);
void GetLPMFunctions(G4double& lpmGs,
G4double& lpmPhis,
const G4double ss);
void ComputeLPMGsPhis(G4double& funcGS,
G4double& funcPhiS,
const G4double varShat);
void ComputeLPMGsPhis(G4double& funcGS,
G4double& funcPhiS,
const G4double varShat);
//
// for evaluating screening related functions
void ComputeScreeningFunctions(G4double& phi1,
G4double& phi1m2,
G4double& psi1,
G4double& psi1m2,
const G4double gam,
const G4double eps);
void ComputeScreeningFunctions(G4double& phi1,
G4double& phi1m2,
G4double& psi1,
G4double& psi1m2,
const G4double gam,
const G4double eps);
// hide assignment operator and cctr
G4eBremsstrahlungRelModel& operator=(const G4eBremsstrahlungRelModel& right) = delete;
G4eBremsstrahlungRelModel& operator=
(const G4eBremsstrahlungRelModel& right) = delete;
G4eBremsstrahlungRelModel(const G4eBremsstrahlungRelModel&) = delete;
private:
G4bool fIsUseCompleteScreening = false;
protected:
G4bool fIsElectron;
G4bool fIsScatOffElectron;
G4bool fIsLPMActive;
G4bool fIsElectron = true;
G4bool fIsScatOffElectron = false;
G4bool fIsLPMActive = false;
//
G4int fCurrentIZ;
G4int fCurrentIZ = 0;
const G4ParticleDefinition* fPrimaryParticle = nullptr;
G4ParticleDefinition* fGammaParticle = nullptr;
G4ParticleChangeForLoss* fParticleChange = nullptr;
// cash
G4double fPrimaryParticleMass;
G4double fPrimaryKinEnergy;
G4double fPrimaryTotalEnergy;
G4double fDensityFactor;
G4double fDensityCorr;
G4double fPrimaryParticleMass = 0.;
G4double fPrimaryKinEnergy = 0.;
G4double fPrimaryTotalEnergy = 0.;
G4double fDensityFactor = 0.;
G4double fDensityCorr = 0.;
G4double fLowestKinEnergy;
// scattering off electrons
G4double fNucTerm;
G4double fSumTerm;
//
static const G4double gBremFactor;
static const G4double gMigdalConstant;
//
const G4ParticleDefinition* fPrimaryParticle;
G4ParticleDefinition* fGammaParticle;
G4ParticleChangeForLoss* fParticleChange;
G4double fNucTerm = 0.;
G4double fSumTerm = 0.;
private:
// LPM related members
G4double fLPMEnergyThreshold;
G4double fLPMEnergy;
protected:
static const G4double gBremFactor;
static const G4double gMigdalConstant;
private:
static const G4int gMaxZet;
//
static const G4double gLPMconstant;
@@ -207,11 +218,6 @@ private:
//
static LPMFuncs gLPMFuncs;
static std::vector<ElementData*> gElementData;
//
G4bool fIsUseCompleteScreening;
// LPM related members
G4double fLPMEnergyThreshold;
G4double fLPMEnergy;
};