Import Geant4 11.2.0.beta source tree
This commit is contained in:
@@ -112,6 +112,8 @@ protected:
|
||||
const G4ParticleDefinition* fThePositron;
|
||||
G4ParticleChangeForGamma* fParticleChange;
|
||||
|
||||
G4bool isFirstInstance{false};
|
||||
|
||||
static std::vector<ElementData*> gElementData;
|
||||
};
|
||||
|
||||
|
||||
@@ -56,14 +56,11 @@
|
||||
#ifndef G4BraggIonModel_h
|
||||
#define G4BraggIonModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4ASTARStopping.hh"
|
||||
#include "G4BraggModel.hh"
|
||||
|
||||
class G4ParticleChangeForLoss;
|
||||
class G4EmCorrections;
|
||||
class G4ICRU90StoppingData;
|
||||
class G4ASTARStopping;
|
||||
|
||||
class G4BraggIonModel : public G4VEmModel
|
||||
class G4BraggIonModel : public G4BraggModel
|
||||
{
|
||||
|
||||
public:
|
||||
@@ -76,15 +73,6 @@ public:
|
||||
void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&) override;
|
||||
|
||||
G4double MinEnergyCut(const G4ParticleDefinition*,
|
||||
const G4MaterialCutsCouple* couple) override;
|
||||
|
||||
G4double ComputeCrossSectionPerElectron(
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy,
|
||||
G4double maxEnergy);
|
||||
|
||||
G4double ComputeCrossSectionPerAtom(
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
@@ -103,21 +91,11 @@ public:
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy) override;
|
||||
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy) override;
|
||||
|
||||
// Compute ion charge not applied to alpha
|
||||
G4double GetChargeSquareRatio(const G4ParticleDefinition*,
|
||||
const G4Material*,
|
||||
G4double kineticEnergy) override;
|
||||
|
||||
G4double GetParticleCharge(const G4ParticleDefinition* p,
|
||||
const G4Material* mat,
|
||||
G4double kineticEnergy) override;
|
||||
|
||||
// add correction to energy loss and ompute non-ionizing energy loss
|
||||
void CorrectionsAlongStep(const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
@@ -128,55 +106,28 @@ public:
|
||||
G4BraggIonModel & operator=(const G4BraggIonModel &right) = delete;
|
||||
G4BraggIonModel(const G4BraggIonModel&) = delete;
|
||||
|
||||
protected:
|
||||
|
||||
G4double MaxSecondaryEnergy(const G4ParticleDefinition*,
|
||||
G4double kinEnergy) final;
|
||||
|
||||
private:
|
||||
|
||||
void SetParticle(const G4ParticleDefinition* p);
|
||||
|
||||
G4double HeEffChargeSquare(const G4double z,
|
||||
const G4double kinEnergyInMeV) const;
|
||||
|
||||
G4int HasMaterial(const G4Material* material) const;
|
||||
G4int HasMaterialForHe(const G4Material* material) const;
|
||||
|
||||
G4double StoppingPower(const G4Material* material,
|
||||
const G4double kinEnergy) const;
|
||||
G4double HeStoppingPower(const G4double kinEnergy) const;
|
||||
|
||||
G4double ElectronicStoppingPower(const G4double z,
|
||||
const G4double kinEnergy) const;
|
||||
G4double HeElectronicStoppingPower(const G4int z, const G4double kinEnergy) const;
|
||||
|
||||
G4double DEDX(const G4Material* material, const G4double kinEnergy);
|
||||
|
||||
G4EmCorrections* corr = nullptr;
|
||||
const G4ParticleDefinition* particle = nullptr;
|
||||
const G4ParticleDefinition* theElectron;
|
||||
G4ParticleChangeForLoss* fParticleChange = nullptr;
|
||||
G4ICRU90StoppingData* fICRU90 = nullptr;
|
||||
|
||||
const G4Material* currentMaterial = nullptr;
|
||||
const G4Material* baseMaterial = nullptr;
|
||||
G4double HeDEDX(const G4Material* material, const G4double kinEnergy);
|
||||
|
||||
static G4ASTARStopping* fASTAR;
|
||||
|
||||
G4double mass = 0.0;
|
||||
G4double spin = 0.0;
|
||||
G4double chargeSquare = 1.0;
|
||||
G4double heChargeSquare = 4.0;
|
||||
G4double massRate = 1.0;
|
||||
G4double ratio = 1.0;
|
||||
G4double HeMass;
|
||||
G4double massFactor;
|
||||
G4double rateMassHe2p;
|
||||
G4double theZieglerFactor;
|
||||
G4double lowestKinEnergy;
|
||||
|
||||
G4int iMolecula = -1; // index in the molecula's table
|
||||
G4int iASTAR = -1; // index in ASTAR
|
||||
G4int iICRU90 = -1;
|
||||
G4bool isAlpha = false;
|
||||
G4int iASTAR = -1; // index in ASTAR
|
||||
G4bool isAlpha = false;
|
||||
G4bool isFirstAlpha = false;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -59,14 +59,13 @@
|
||||
#ifndef G4BraggModel_h
|
||||
#define G4BraggModel_h 1
|
||||
|
||||
#include <CLHEP/Units/PhysicalConstants.h>
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4PSTARStopping.hh"
|
||||
|
||||
class G4ParticleChangeForLoss;
|
||||
class G4EmCorrections;
|
||||
class G4ICRU90StoppingData;
|
||||
class G4PSTARStopping;
|
||||
|
||||
class G4BraggModel : public G4VEmModel
|
||||
{
|
||||
@@ -128,17 +127,15 @@ public:
|
||||
|
||||
protected:
|
||||
|
||||
void SetParticle(const G4ParticleDefinition* p);
|
||||
|
||||
G4double MaxSecondaryEnergy(const G4ParticleDefinition*,
|
||||
G4double kinEnergy) final;
|
||||
|
||||
inline G4double GetChargeSquareRatio() const;
|
||||
|
||||
inline void SetChargeSquareRatio(G4double val);
|
||||
|
||||
private:
|
||||
|
||||
inline void SetParticle(const G4ParticleDefinition* p);
|
||||
|
||||
void HasMaterial(const G4Material* material);
|
||||
|
||||
G4double StoppingPower(const G4Material* material,
|
||||
@@ -153,51 +150,40 @@ private:
|
||||
|
||||
G4double ChemicalFactor(G4double kineticEnergy, G4double eloss125) const;
|
||||
|
||||
G4EmCorrections* corr = nullptr;
|
||||
const G4ParticleDefinition* particle = nullptr;
|
||||
G4ParticleDefinition* theElectron = nullptr;
|
||||
G4ParticleChangeForLoss* fParticleChange = nullptr;
|
||||
G4ICRU90StoppingData* fICRU90 = nullptr;
|
||||
protected:
|
||||
|
||||
const G4Material* currentMaterial = nullptr;
|
||||
const G4Material* baseMaterial = nullptr;
|
||||
const G4ParticleDefinition* particle = nullptr;
|
||||
G4ParticleDefinition* theElectron = nullptr;
|
||||
G4ParticleChangeForLoss* fParticleChange = nullptr;
|
||||
|
||||
static G4PSTARStopping* fPSTAR;
|
||||
const G4Material* currentMaterial = nullptr;
|
||||
const G4Material* baseMaterial = nullptr;
|
||||
|
||||
G4double mass;
|
||||
G4double spin;
|
||||
G4double chargeSquare;
|
||||
G4double massRate;
|
||||
G4double ratio;
|
||||
G4EmCorrections* corr = nullptr;
|
||||
|
||||
static G4ICRU90StoppingData* fICRU90;
|
||||
static G4PSTARStopping* fPSTAR;
|
||||
|
||||
G4double mass = 0.0;
|
||||
G4double spin = 0.0;
|
||||
G4double chargeSquare = 1.0;
|
||||
G4double massRate = 1.0;
|
||||
G4double ratio = 1.0;
|
||||
G4double protonMassAMU = 1.007276;
|
||||
G4double lowestKinEnergy;
|
||||
G4double protonMassAMU;
|
||||
G4double theZieglerFactor;
|
||||
G4double expStopPower125; // Experimental Stopping power at 125keV
|
||||
|
||||
G4int iMolecula = -1; // index in the molecula's table
|
||||
G4int iPSTAR = -1; // index in PSTAR
|
||||
G4int iICRU90 = -1;
|
||||
G4bool isIon = false;
|
||||
G4int iMolecula = -1; // index in the molecula's table
|
||||
G4int iPSTAR = -1; // index in NIST PSTAR
|
||||
G4int iICRU90 = -1;
|
||||
|
||||
private:
|
||||
|
||||
G4bool isIon = false;
|
||||
G4bool isFirst = false;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline void G4BraggModel::SetParticle(const G4ParticleDefinition* p)
|
||||
{
|
||||
particle = p;
|
||||
mass = particle->GetPDGMass();
|
||||
spin = particle->GetPDGSpin();
|
||||
G4double q = particle->GetPDGCharge()/CLHEP::eplus;
|
||||
chargeSquare = q*q;
|
||||
massRate = mass/CLHEP::proton_mass_c2;
|
||||
ratio = CLHEP::electron_mass_c2/mass;
|
||||
}
|
||||
|
||||
inline G4double G4BraggModel::GetChargeSquareRatio() const
|
||||
{
|
||||
return chargeSquare;
|
||||
}
|
||||
|
||||
inline void G4BraggModel::SetChargeSquareRatio(G4double val)
|
||||
{
|
||||
chargeSquare = val;
|
||||
|
||||
@@ -56,7 +56,13 @@ class G4CoulombScattering : public G4VEmProcess
|
||||
|
||||
public:
|
||||
|
||||
explicit G4CoulombScattering(const G4String& name = "CoulombScat");
|
||||
explicit G4CoulombScattering(const G4String& name, G4bool combined);
|
||||
|
||||
// for pure single scattering use combined=false
|
||||
G4CoulombScattering(G4bool combined = true);
|
||||
|
||||
// for pure single scattering use SetIsCombined(false) method
|
||||
G4CoulombScattering(const G4String& name);
|
||||
|
||||
~G4CoulombScattering() override;
|
||||
|
||||
@@ -65,6 +71,8 @@ public:
|
||||
// print documentation in html format
|
||||
void ProcessDescription(std::ostream&) const override;
|
||||
|
||||
inline void SetIsCombined(G4bool val) { isCombined = val; }
|
||||
|
||||
G4CoulombScattering & operator=(const G4CoulombScattering &right) = delete;
|
||||
G4CoulombScattering(const G4CoulombScattering&) = delete;
|
||||
|
||||
@@ -81,7 +89,8 @@ protected:
|
||||
private:
|
||||
|
||||
G4double q2Max;
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised = false;
|
||||
G4bool isCombined;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -82,7 +82,6 @@ private:
|
||||
|
||||
void AddData(const G4double* energy, const G4double* xs, G4int idx);
|
||||
|
||||
const char* dirPath = nullptr;
|
||||
const G4Material* currentMaterial = nullptr;
|
||||
|
||||
G4int type = 0;
|
||||
|
||||
@@ -90,7 +90,9 @@ private:
|
||||
G4double fEmax;
|
||||
|
||||
std::vector<G4int> fMatIndex;
|
||||
// projectile Z <= 80, target element Z <= 92
|
||||
// projectile (3<= Z <= 80), target element (1 <= Z <= 92)
|
||||
const G4int ZPROJMAX = 80;
|
||||
const G4int ZTARGMAX = 92;
|
||||
std::vector<G4PhysicsLogVector*>* fMatData[81] = {nullptr};
|
||||
G4PhysicsLogVector* fElmData[81][93] = {{nullptr}};
|
||||
G4PhysicsFreeVector* fVector = nullptr;
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
class G4EmCorrections;
|
||||
class G4ParticleChangeForLoss;
|
||||
class G4LindhardSorensenData;
|
||||
class G4BraggIonModel;
|
||||
class G4BraggModel;
|
||||
class G4BetheBlochModel;
|
||||
class G4IonICRU73Data;
|
||||
|
||||
@@ -126,8 +126,6 @@ protected:
|
||||
G4double MaxSecondaryEnergy(const G4ParticleDefinition*,
|
||||
G4double kinEnergy) override;
|
||||
|
||||
inline G4double GetChargeSquareRatio() const;
|
||||
|
||||
inline void SetChargeSquareRatio(G4double val);
|
||||
|
||||
private:
|
||||
@@ -142,19 +140,18 @@ private:
|
||||
|
||||
inline void SetParticle(const G4ParticleDefinition* p);
|
||||
|
||||
static const G4int MAXZION = 93;
|
||||
// static const G4int MAXZION = 93;
|
||||
|
||||
static G4IonICRU73Data* fIonData;
|
||||
static G4LindhardSorensenData* lsdata;
|
||||
static std::vector<G4float>* fact[MAXZION];
|
||||
|
||||
const G4ParticleDefinition* particle;
|
||||
G4ParticleDefinition* theElectron;
|
||||
G4EmCorrections* corr;
|
||||
G4ParticleChangeForLoss* fParticleChange;
|
||||
G4NistManager* nist;
|
||||
G4BraggIonModel* fBraggModel;
|
||||
G4BetheBlochModel* fBBModel;
|
||||
const G4ParticleDefinition* particle = nullptr;
|
||||
G4ParticleDefinition* theElectron;
|
||||
G4EmCorrections* corr;
|
||||
G4ParticleChangeForLoss* fParticleChange = nullptr;
|
||||
G4NistManager* nist;
|
||||
G4BraggModel* fBraggModel;
|
||||
G4BetheBlochModel* fBBModel;
|
||||
|
||||
G4int Zin = 1;
|
||||
G4double mass = 0.0;
|
||||
@@ -168,6 +165,7 @@ private:
|
||||
G4double formfact = 0.0;
|
||||
G4double twoln10;
|
||||
G4double fElimit;
|
||||
G4bool isFirst = false;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -183,13 +181,6 @@ G4LindhardSorensenIonModel::SetParticle(const G4ParticleDefinition* p)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4LindhardSorensenIonModel::GetChargeSquareRatio() const
|
||||
{
|
||||
return chargeSquare;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void G4LindhardSorensenIonModel::SetChargeSquareRatio(G4double val)
|
||||
{
|
||||
chargeSquare = val;
|
||||
|
||||
@@ -119,15 +119,15 @@ public:
|
||||
|
||||
inline void SetVerboseLevel(G4int verbose);
|
||||
|
||||
// hide assignment operator
|
||||
G4PAIModel & operator=(const G4PAIModel &right) = delete;
|
||||
G4PAIModel(const G4PAIModel&) = delete;
|
||||
|
||||
protected:
|
||||
|
||||
G4double MaxSecondaryEnergy(const G4ParticleDefinition*,
|
||||
G4double kinEnergy) final;
|
||||
|
||||
// hide assignment operator
|
||||
G4PAIModel & operator=(const G4PAIModel &right) = delete;
|
||||
G4PAIModel(const G4PAIModel&) = delete;
|
||||
|
||||
private:
|
||||
|
||||
inline G4int FindCoupleIndex(const G4MaterialCutsCouple*);
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
#include "globals.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
#include"G4SandiaTable.hh"
|
||||
#include "G4SandiaTable.hh"
|
||||
|
||||
class G4MaterialCutsCouple;
|
||||
class G4Sandiatable;
|
||||
@@ -68,8 +68,7 @@ public:
|
||||
G4PAIxSection();
|
||||
G4PAIxSection( G4MaterialCutsCouple* matCC);
|
||||
|
||||
G4PAIxSection( G4int materialIndex,
|
||||
G4double maxEnergyTransfer );
|
||||
G4PAIxSection( G4int materialIndex, G4double maxEnergyTransfer );
|
||||
|
||||
G4PAIxSection( G4int materialIndex, // for proton loss table
|
||||
G4double maxEnergyTransfer,
|
||||
@@ -100,10 +99,10 @@ public:
|
||||
|
||||
G4double RutherfordIntegral( G4int intervalNumber,
|
||||
G4double limitLow,
|
||||
G4double limitHigh );
|
||||
G4double limitHigh );
|
||||
|
||||
G4double ImPartDielectricConst( G4int intervalNumber,
|
||||
G4double energy );
|
||||
G4double energy );
|
||||
|
||||
G4double GetPhotonRange( G4double energy );
|
||||
G4double GetElectronRange( G4double energy );
|
||||
@@ -111,18 +110,18 @@ public:
|
||||
G4double RePartDielectricConst(G4double energy);
|
||||
|
||||
G4double DifPAIxSection( G4int intervalNumber,
|
||||
G4double betaGammaSq );
|
||||
G4double betaGammaSq );
|
||||
|
||||
G4double PAIdNdxCerenkov( G4int intervalNumber,
|
||||
G4double betaGammaSq );
|
||||
G4double betaGammaSq );
|
||||
G4double PAIdNdxMM( G4int intervalNumber,
|
||||
G4double betaGammaSq );
|
||||
G4double betaGammaSq );
|
||||
|
||||
G4double PAIdNdxPlasmon( G4int intervalNumber,
|
||||
G4double betaGammaSq );
|
||||
G4double betaGammaSq );
|
||||
|
||||
G4double PAIdNdxResonance( G4int intervalNumber,
|
||||
G4double betaGammaSq );
|
||||
G4double betaGammaSq );
|
||||
|
||||
|
||||
void IntegralPAIxSection();
|
||||
@@ -218,23 +217,21 @@ private :
|
||||
static const G4double fDelta; // energy shift from interval border = 0.001
|
||||
static const G4double fError; // error in lin-log approximation = 0.005
|
||||
|
||||
static G4int fNumberOfGammas; // = 111;
|
||||
static const G4double fLorentzFactor[112]; // static gamma array
|
||||
static G4int fNumberOfGammas; // = 111;
|
||||
static const G4double fLorentzFactor[112]; // static gamma array
|
||||
|
||||
static
|
||||
const G4int fRefGammaNumber; //The number of gamma for creation of spline (15)
|
||||
const G4int fRefGammaNumber; // The number of gamma for creation of spline (15)
|
||||
|
||||
G4int fIntervalNumber ; // The number of energy intervals
|
||||
G4double fNormalizationCof; // Normalization cof for PhotoAbsorptionXsection
|
||||
G4int fIntervalNumber ; // The number of energy intervals
|
||||
G4double fNormalizationCof; // Normalization cof for PhotoAbsorptionXsection
|
||||
|
||||
// G4double fBetaGammaSq; // (beta*gamma)^2
|
||||
|
||||
G4int fMaterialIndex; // current material index
|
||||
G4double fDensity; // Current density
|
||||
G4double fElectronDensity; // Current electron (number) density
|
||||
G4int fMaterialIndex; // current material index
|
||||
G4double fDensity; // Current density
|
||||
G4double fElectronDensity; // Current electron (number) density
|
||||
G4double fLowEnergyCof; // Correction cof for low energy region
|
||||
G4int fSplineNumber; // Current size of spline
|
||||
G4int fVerbose; // verbose flag
|
||||
G4int fSplineNumber; // Current size of spline
|
||||
G4int fVerbose; // verbose flag
|
||||
|
||||
// Arrays of Sandia coefficients
|
||||
|
||||
@@ -251,22 +248,22 @@ private :
|
||||
static
|
||||
const G4int fMaxSplineSize ; // Max size of output splain arrays = 500
|
||||
|
||||
G4DataVector fSplineEnergy; // energy points of splain
|
||||
G4DataVector fSplineEnergy; // energy points of splain
|
||||
G4DataVector fRePartDielectricConst; // Real part of dielectric const
|
||||
G4DataVector fImPartDielectricConst; // Imaginary part of dielectric const
|
||||
G4DataVector fIntegralTerm; // Integral term in PAI cross section
|
||||
G4DataVector fDifPAIxSection; // Differential PAI cross section
|
||||
G4DataVector fdNdxCerenkov; // dNdx of Cerenkov collisions
|
||||
G4DataVector fdNdxPlasmon; // dNdx of Plasmon collisions
|
||||
G4DataVector fdNdxMM; // dNdx of MM-Cerenkov collisions
|
||||
G4DataVector fdNdxResonance; // dNdx of Resonance collisions
|
||||
G4DataVector fdNdxMM; // dNdx of MM-Cerenkov collisions
|
||||
G4DataVector fdNdxResonance; // dNdx of Resonance collisions
|
||||
|
||||
G4DataVector fIntegralPAIxSection; // Integral PAI cross section ?
|
||||
G4DataVector fIntegralPAIdEdx; // Integral PAI dEdx ?
|
||||
G4DataVector fIntegralCerenkov; // Integral Cerenkov N>omega ?
|
||||
G4DataVector fIntegralPlasmon; // Integral Plasmon N>omega ?
|
||||
G4DataVector fIntegralMM; // Integral MM N>omega ?
|
||||
G4DataVector fIntegralResonance; // Integral resonance N>omega ?
|
||||
G4DataVector fIntegralMM; // Integral MM N>omega ?
|
||||
G4DataVector fIntegralResonance; // Integral resonance N>omega ?
|
||||
|
||||
G4double fPAItable[500][112]; // Output array
|
||||
|
||||
|
||||
@@ -166,6 +166,7 @@ protected:
|
||||
static std::vector<ElementData*> gElementData;
|
||||
static LPMFuncs gLPMFuncs;
|
||||
//
|
||||
G4bool isFirstInstance{false};
|
||||
G4bool fIsUseLPMCorrection;
|
||||
G4bool fIsUseCompleteScreening;
|
||||
//
|
||||
|
||||
@@ -101,8 +101,6 @@ private:
|
||||
|
||||
void ReadData(G4int Z);
|
||||
|
||||
const G4String& FindDirectoryPath();
|
||||
|
||||
G4double SampleEnergyTransfer(const G4double kineticEnergy,
|
||||
const G4double logKineticEnergy,
|
||||
const G4double cut,
|
||||
@@ -113,7 +111,6 @@ private:
|
||||
static G4double gYLimitData[gMaxZet];
|
||||
static G4Physics2DVector* gSBDCSData[gMaxZet];
|
||||
static G4SBBremTable* gSBSamplingTable;
|
||||
static G4String gDataDirectory;
|
||||
|
||||
G4bool fIsUseBicubicInterpolation;
|
||||
G4bool fIsUseSamplingTables;
|
||||
@@ -122,6 +119,7 @@ private:
|
||||
|
||||
size_t fIndx;
|
||||
size_t fIndy;
|
||||
G4bool isFirstInstance{false};
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -100,6 +100,10 @@ public:
|
||||
|
||||
G4double ComputeTheta0(G4double truePathLength, G4double KineticEnergy);
|
||||
|
||||
inline void SetDisplacementAlgorithm96(const G4bool val);
|
||||
|
||||
inline void SetPositronCorrection(const G4bool val);
|
||||
|
||||
// hide assignment operator
|
||||
G4UrbanMscModel & operator=(const G4UrbanMscModel &right) = delete;
|
||||
G4UrbanMscModel(const G4UrbanMscModel&) = delete;
|
||||
@@ -124,12 +128,12 @@ private:
|
||||
|
||||
inline G4double ComputeTlimitmin();
|
||||
|
||||
CLHEP::HepRandomEngine* rndmEngineMod;
|
||||
CLHEP::HepRandomEngine* rndmEngineMod;
|
||||
|
||||
const G4ParticleDefinition* particle;
|
||||
const G4ParticleDefinition* particle = nullptr;
|
||||
const G4ParticleDefinition* positron;
|
||||
G4ParticleChangeForMSC* fParticleChange;
|
||||
const G4MaterialCutsCouple* couple;
|
||||
G4ParticleChangeForMSC* fParticleChange = nullptr;
|
||||
const G4MaterialCutsCouple* couple = nullptr;
|
||||
|
||||
G4double mass;
|
||||
G4double charge,chargeSquare;
|
||||
@@ -185,13 +189,13 @@ private:
|
||||
static std::vector<mscData*> msc;
|
||||
|
||||
// index of G4MaterialCutsCouple
|
||||
G4int idx;
|
||||
G4int idx = 0;
|
||||
|
||||
G4bool firstStep;
|
||||
G4bool insideskin;
|
||||
G4bool firstStep = true;
|
||||
G4bool insideskin = false;
|
||||
|
||||
G4bool latDisplasmentbackup;
|
||||
G4bool dispAlg96;
|
||||
G4bool latDisplasmentbackup = false;
|
||||
G4bool dispAlg96 = true;
|
||||
G4bool fPosiCorrection = true;
|
||||
G4bool isFirstInstance = false;
|
||||
};
|
||||
@@ -238,6 +242,8 @@ inline G4double G4UrbanMscModel::SimpleScattering()
|
||||
-1.+2.*G4Exp(G4Log(rndmarray[0])/(a+1.)) : -1.+2.*rndmarray[0];
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline G4double G4UrbanMscModel::ComputeStepmin()
|
||||
{
|
||||
// define stepmin using estimation of the ratio
|
||||
@@ -246,6 +252,8 @@ inline G4double G4UrbanMscModel::ComputeStepmin()
|
||||
return lambda0*1.e-3/(2.e-3+rat*(msc[idx]->stepmina+msc[idx]->stepminb*rat));
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline G4double G4UrbanMscModel::ComputeTlimitmin()
|
||||
{
|
||||
G4double x = (particle == positron) ?
|
||||
@@ -256,5 +264,19 @@ inline G4double G4UrbanMscModel::ComputeTlimitmin()
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline void G4UrbanMscModel::SetDisplacementAlgorithm96(const G4bool val)
|
||||
{
|
||||
dispAlg96 = val;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline void G4UrbanMscModel::SetPositronCorrection(const G4bool val)
|
||||
{
|
||||
fPosiCorrection = val;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -57,26 +57,26 @@ class G4WaterStopping
|
||||
{
|
||||
public:
|
||||
|
||||
explicit G4WaterStopping(G4EmCorrections* corr = nullptr, G4bool splineFlag = true);
|
||||
explicit G4WaterStopping();
|
||||
|
||||
~G4WaterStopping();
|
||||
~G4WaterStopping() = default;
|
||||
|
||||
G4double GetElectronicDEDX(G4int Z, G4double energy);
|
||||
|
||||
private:
|
||||
|
||||
void Initialise(G4EmCorrections*);
|
||||
|
||||
void AddData(const G4double* energy, const G4double* stoppower,
|
||||
G4double factor);
|
||||
|
||||
// hide assignment operator
|
||||
G4WaterStopping & operator=(const G4WaterStopping &right) = delete;
|
||||
G4WaterStopping(const G4WaterStopping&) = delete;
|
||||
|
||||
G4bool spline;
|
||||
private:
|
||||
|
||||
void Initialise();
|
||||
|
||||
void AddData(const G4double* energy, const G4double* stoppower,
|
||||
G4double factor);
|
||||
|
||||
G4bool spline = true;
|
||||
G4double emin;
|
||||
std::vector<G4PhysicsFreeVector*> dedx;
|
||||
std::vector<G4PhysicsFreeVector*> dedx;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -143,6 +143,8 @@ private:
|
||||
private:
|
||||
|
||||
G4bool fIsUseCompleteScreening = false;
|
||||
G4bool fIsFirstInstance = false;
|
||||
G4bool fUseLPM = true;
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
@@ -130,28 +130,28 @@ protected:
|
||||
|
||||
private:
|
||||
|
||||
G4IonTable* theIonTable;
|
||||
G4ParticleChangeForGamma* fParticleChange;
|
||||
G4IonTable* theIonTable;
|
||||
G4ParticleChangeForGamma* fParticleChange = nullptr;
|
||||
G4WentzelOKandVIxSection* wokvi;
|
||||
G4NistManager* fNistManager;
|
||||
G4NistManager* fNistManager;
|
||||
|
||||
const std::vector<G4double>* pCuts;
|
||||
const std::vector<G4double>* pCuts = nullptr;
|
||||
|
||||
const G4ParticleDefinition* particle;
|
||||
const G4ParticleDefinition* particle = nullptr;
|
||||
const G4ParticleDefinition* theProton;
|
||||
|
||||
const G4MaterialCutsCouple* currentCouple;
|
||||
const G4Material* currentMaterial;
|
||||
G4int currentMaterialIndex;
|
||||
const G4MaterialCutsCouple* currentCouple = nullptr;
|
||||
const G4Material* currentMaterial = nullptr;
|
||||
G4int currentMaterialIndex = 0;
|
||||
|
||||
G4double cosThetaMin;
|
||||
G4double cosThetaMax;
|
||||
G4double recoilThreshold;
|
||||
G4double elecRatio;
|
||||
G4double mass;
|
||||
G4double fixedCut;
|
||||
G4double cosThetaMin = 1.0;
|
||||
G4double cosThetaMax = -1.0;
|
||||
G4double recoilThreshold = 0.0;
|
||||
G4double elecRatio = 0.0;
|
||||
G4double fixedCut = -1.0;
|
||||
G4double mass;
|
||||
|
||||
G4bool isCombined;
|
||||
G4bool isCombined;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -88,7 +88,7 @@ public:
|
||||
|
||||
explicit G4hIonisation(const G4String& name = "hIoni");
|
||||
|
||||
~G4hIonisation() override;
|
||||
~G4hIonisation() override = default;
|
||||
|
||||
G4bool IsApplicable(const G4ParticleDefinition& p) override;
|
||||
|
||||
@@ -96,7 +96,7 @@ public:
|
||||
const G4Material*, G4double cut) final;
|
||||
|
||||
// print documentation in html format
|
||||
virtual void ProcessDescription(std::ostream&) const override;
|
||||
void ProcessDescription(std::ostream&) const override;
|
||||
|
||||
// hide assignment operator
|
||||
G4hIonisation & operator=(const G4hIonisation &right) = delete;
|
||||
@@ -109,11 +109,10 @@ protected:
|
||||
|
||||
private:
|
||||
|
||||
G4bool isInitialised;
|
||||
|
||||
G4double mass;
|
||||
G4double ratio;
|
||||
G4double eth;
|
||||
G4bool isInitialised = false;
|
||||
G4double mass = 0.0;
|
||||
G4double ratio = 0.0;
|
||||
G4double eth;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -72,7 +72,6 @@
|
||||
#include "G4VEnergyLossProcess.hh"
|
||||
|
||||
class G4Material;
|
||||
class G4EmCorrections;
|
||||
|
||||
class G4ionIonisation : public G4VEnergyLossProcess
|
||||
{
|
||||
@@ -80,7 +79,7 @@ public:
|
||||
|
||||
explicit G4ionIonisation(const G4String& name = "ionIoni");
|
||||
|
||||
~G4ionIonisation() override;
|
||||
~G4ionIonisation() override = default;
|
||||
|
||||
G4bool IsApplicable(const G4ParticleDefinition& p) final;
|
||||
|
||||
@@ -98,9 +97,6 @@ public:
|
||||
|
||||
protected:
|
||||
|
||||
// Print out of the class parameters
|
||||
void StreamProcessInfo(std::ostream& outFile) const override;
|
||||
|
||||
void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
|
||||
const G4ParticleDefinition*) override;
|
||||
|
||||
@@ -111,24 +107,13 @@ protected:
|
||||
|
||||
private:
|
||||
|
||||
G4EmCorrections* corr;
|
||||
|
||||
const G4ParticleDefinition* theParticle;
|
||||
const G4ParticleDefinition* theParticle = nullptr;
|
||||
G4double eth;
|
||||
|
||||
G4double eth;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool stopDataActive;
|
||||
G4bool isInitialised = false;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void G4ionIonisation::ActivateStoppingData(G4bool val)
|
||||
{
|
||||
stopDataActive = val;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4ionIonisation::BetheBlochEnergyThreshold()
|
||||
|
||||
Reference in New Issue
Block a user