Import Geant4 11.0.0.beta source tree
This commit is contained in:
@@ -178,8 +178,6 @@ private:
|
||||
G4int verbose = 0;
|
||||
|
||||
G4bool isMaster = false;
|
||||
|
||||
G4String currentParticleName = "";
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -50,51 +50,37 @@ class G4ErrorEnergyLoss : public G4VContinuousProcess
|
||||
public:
|
||||
|
||||
explicit G4ErrorEnergyLoss(const G4String& processName = "G4ErrorEnergyLoss",
|
||||
G4ProcessType type = fElectromagnetic);
|
||||
|
||||
virtual ~G4ErrorEnergyLoss();
|
||||
G4ProcessType type = fElectromagnetic);
|
||||
|
||||
~G4ErrorEnergyLoss() override;
|
||||
|
||||
G4bool IsApplicable(const G4ParticleDefinition& aParticleType) override;
|
||||
// Returns true -> 'is applicable', for all charged particles.
|
||||
|
||||
G4double GetContinuousStepLimit(const G4Track& aTrack,
|
||||
G4double ,
|
||||
G4double currentMinimumStep,
|
||||
G4double, G4double currentMinimumStep,
|
||||
G4double& ) override;
|
||||
// Returns DBL_MAX as continuous step limit
|
||||
|
||||
G4VParticleChange* AlongStepDoIt(const G4Track& aTrack,
|
||||
const G4Step& aStep) override;
|
||||
// This is the method implementing the energy loss process.
|
||||
|
||||
// Get and Set methods
|
||||
G4double GetStepLimit() const { return theStepLimit; }
|
||||
void SetStepLimit( G4double val ) { theStepLimit = val; }
|
||||
|
||||
private:
|
||||
|
||||
void InstantiateEforExtrapolator();
|
||||
// Create the G4EnergyLossForExtrapolator
|
||||
inline G4double GetStepLimit() const { return theStepLimit; }
|
||||
inline void SetStepLimit( G4double val ) { theStepLimit = val; }
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
G4ErrorEnergyLoss(G4ErrorEnergyLoss &) = delete;
|
||||
G4ErrorEnergyLoss & operator=(const G4ErrorEnergyLoss &right) = delete;
|
||||
|
||||
private:
|
||||
|
||||
void InstantiateEforExtrapolator();
|
||||
|
||||
G4EnergyLossForExtrapolator* theELossForExtrapolator;
|
||||
|
||||
G4double theStepLimit;
|
||||
G4double theFractionLimit = 0.2;
|
||||
};
|
||||
|
||||
////////////////////
|
||||
// Inline methods
|
||||
////////////////////
|
||||
|
||||
inline
|
||||
G4bool G4ErrorEnergyLoss::IsApplicable(const G4ParticleDefinition& aParticleType)
|
||||
{
|
||||
return (aParticleType.GetPDGCharge() != 0);
|
||||
}
|
||||
|
||||
#endif /* G4ErrorEnergyLoss_hh */
|
||||
#endif
|
||||
|
||||
@@ -59,21 +59,21 @@ public:
|
||||
|
||||
explicit G4ModifiedMephi(const G4String& name = "");
|
||||
|
||||
virtual ~G4ModifiedMephi();
|
||||
~G4ModifiedMephi() override;
|
||||
|
||||
virtual G4ThreeVector& SampleDirection(const G4DynamicParticle* dp,
|
||||
G4double gEnergy, G4int Z,
|
||||
const G4Material* mat = nullptr) final;
|
||||
G4ThreeVector& SampleDirection(const G4DynamicParticle* dp,
|
||||
G4double gEnergy, G4int Z,
|
||||
const G4Material* mat = nullptr) final;
|
||||
|
||||
virtual void SamplePairDirections(const G4DynamicParticle* dp,
|
||||
G4double elecKinEnergy,
|
||||
G4double posiKinEnergy,
|
||||
G4ThreeVector& dirElectron,
|
||||
G4ThreeVector& dirPositron,
|
||||
G4int Z = 0,
|
||||
const G4Material* mat = nullptr) final;
|
||||
void SamplePairDirections(const G4DynamicParticle* dp,
|
||||
G4double elecKinEnergy,
|
||||
G4double posiKinEnergy,
|
||||
G4ThreeVector& dirElectron,
|
||||
G4ThreeVector& dirPositron,
|
||||
G4int Z = 0,
|
||||
const G4Material* mat = nullptr) final;
|
||||
|
||||
virtual void PrintGeneratorInformation() const final;
|
||||
void PrintGeneratorInformation() const override;
|
||||
|
||||
// hide assignment operator
|
||||
G4ModifiedMephi & operator=(const G4ModifiedMephi &right) = delete;
|
||||
|
||||
@@ -75,65 +75,64 @@ public:
|
||||
|
||||
~G4MuBetheBlochModel() = default;
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&) override;
|
||||
void Initialise(const G4ParticleDefinition*, const G4DataVector&) override;
|
||||
|
||||
virtual G4double MinEnergyCut(const G4ParticleDefinition*,
|
||||
const G4MaterialCutsCouple*) override;
|
||||
G4double MinEnergyCut(const G4ParticleDefinition*,
|
||||
const G4MaterialCutsCouple*) override;
|
||||
|
||||
virtual G4double ComputeCrossSectionPerElectron(
|
||||
G4double ComputeCrossSectionPerElectron(
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy,
|
||||
G4double maxEnergy);
|
||||
|
||||
virtual G4double ComputeCrossSectionPerAtom(
|
||||
G4double ComputeCrossSectionPerAtom(
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double Z, G4double A,
|
||||
G4double cutEnergy,
|
||||
G4double maxEnergy) override;
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material*,
|
||||
G4double CrossSectionPerVolume(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy,
|
||||
G4double maxEnergy) override;
|
||||
|
||||
virtual G4double ComputeDEDXPerVolume(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy) override;
|
||||
G4double ComputeDEDXPerVolume(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy) override;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy) override;
|
||||
|
||||
protected:
|
||||
|
||||
virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*,
|
||||
G4double kinEnergy) override;
|
||||
|
||||
private:
|
||||
|
||||
inline void SetParticle(const G4ParticleDefinition* p);
|
||||
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy) override;
|
||||
|
||||
// hide assignment operator
|
||||
G4MuBetheBlochModel & operator=(const G4MuBetheBlochModel &right) = delete;
|
||||
G4MuBetheBlochModel(const G4MuBetheBlochModel&) = delete;
|
||||
|
||||
const G4ParticleDefinition* particle;
|
||||
G4ParticleDefinition* theElectron;
|
||||
G4ParticleChangeForLoss* fParticleChange;
|
||||
G4EmCorrections* corr;
|
||||
protected:
|
||||
|
||||
G4double MaxSecondaryEnergy(const G4ParticleDefinition*,
|
||||
G4double kinEnergy) override;
|
||||
|
||||
private:
|
||||
|
||||
inline void SetParticle(const G4ParticleDefinition* p);
|
||||
|
||||
const G4ParticleDefinition* particle = nullptr;
|
||||
G4ParticleDefinition* theElectron = nullptr;
|
||||
G4ParticleChangeForLoss* fParticleChange = nullptr;
|
||||
G4EmCorrections* corr = nullptr;
|
||||
|
||||
G4double limitKinEnergy;
|
||||
G4double logLimitKinEnergy;
|
||||
G4double mass;
|
||||
G4double massSquare;
|
||||
G4double ratio;
|
||||
G4double mass = 1.0;
|
||||
G4double massSquare = 1.0;
|
||||
G4double ratio = 1.0;
|
||||
G4double twoln10;
|
||||
G4double alphaprime;
|
||||
static G4double xgi[8],wgi[8];
|
||||
@@ -143,7 +142,7 @@ private:
|
||||
|
||||
inline void G4MuBetheBlochModel::SetParticle(const G4ParticleDefinition* p)
|
||||
{
|
||||
if(!particle) {
|
||||
if(nullptr == particle) {
|
||||
particle = p;
|
||||
mass = particle->GetPDGMass();
|
||||
massSquare = mass*mass;
|
||||
|
||||
@@ -83,31 +83,26 @@ public:
|
||||
|
||||
~G4MuBremsstrahlung() = default;
|
||||
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition& p) override;
|
||||
G4bool IsApplicable(const G4ParticleDefinition& p) override;
|
||||
|
||||
virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
|
||||
const G4Material*,
|
||||
G4double cut) override;
|
||||
|
||||
virtual void PrintInfo() override;
|
||||
G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
|
||||
const G4Material*, G4double cut) override;
|
||||
|
||||
inline void SetLowestKineticEnergy(G4double e);
|
||||
|
||||
// print description in html
|
||||
virtual void ProcessDescription(std::ostream&) const override;
|
||||
void ProcessDescription(std::ostream&) const override;
|
||||
|
||||
G4MuBremsstrahlung & operator=(const G4MuBremsstrahlung &right) = delete;
|
||||
G4MuBremsstrahlung(const G4MuBremsstrahlung&) = delete;
|
||||
|
||||
protected:
|
||||
|
||||
virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
|
||||
const G4ParticleDefinition*) override;
|
||||
|
||||
protected:
|
||||
void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
|
||||
const G4ParticleDefinition*) override;
|
||||
|
||||
G4double lowestKinEnergy;
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised = false;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4NistManager.hh"
|
||||
#include "G4Threading.hh"
|
||||
|
||||
class G4Element;
|
||||
class G4ParticleChangeForLoss;
|
||||
@@ -73,42 +74,40 @@ class G4MuBremsstrahlungModel : public G4VEmModel
|
||||
public:
|
||||
|
||||
explicit G4MuBremsstrahlungModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "MuBrem");
|
||||
const G4String& nam = "MuBrem");
|
||||
|
||||
~G4MuBremsstrahlungModel() = default;
|
||||
|
||||
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 MinEnergyCut(const G4ParticleDefinition*,
|
||||
const G4MaterialCutsCouple*) override;
|
||||
G4double MinEnergyCut(const G4ParticleDefinition*,
|
||||
const G4MaterialCutsCouple*) override;
|
||||
|
||||
virtual G4double ComputeCrossSectionPerAtom(
|
||||
G4double ComputeCrossSectionPerAtom(
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double Z, G4double A,
|
||||
G4double cutEnergy,
|
||||
G4double maxEnergy) override;
|
||||
|
||||
virtual G4double ComputeDEDXPerVolume(const G4Material*,
|
||||
G4double ComputeDEDXPerVolume(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy) override;
|
||||
|
||||
virtual 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 SetLowestKineticEnergy(G4double e);
|
||||
|
||||
virtual G4double MinPrimaryEnergy(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double) override;
|
||||
G4double MinPrimaryEnergy(const G4Material*, const G4ParticleDefinition*,
|
||||
G4double) override;
|
||||
|
||||
// hide assignment operator
|
||||
G4MuBremsstrahlungModel &
|
||||
@@ -131,20 +130,20 @@ protected:
|
||||
|
||||
protected:
|
||||
|
||||
const G4ParticleDefinition* particle;
|
||||
G4NistManager* nist;
|
||||
G4double mass;
|
||||
G4double rmass;
|
||||
G4double cc;
|
||||
G4double coeff;
|
||||
G4double sqrte;
|
||||
G4double bh;
|
||||
G4double bh1;
|
||||
G4double btf;
|
||||
G4double btf1;
|
||||
const G4ParticleDefinition* particle = nullptr;
|
||||
G4ParticleDefinition* theGamma = nullptr;
|
||||
G4ParticleChangeForLoss* fParticleChange = nullptr;
|
||||
G4NistManager* nist = nullptr;
|
||||
|
||||
G4ParticleDefinition* theGamma;
|
||||
G4ParticleChangeForLoss* fParticleChange;
|
||||
G4double mass = 1.0;
|
||||
G4double rmass = 1.0;
|
||||
G4double cc = 1.0;
|
||||
G4double coeff = 1.0;
|
||||
G4double sqrte;
|
||||
G4double bh = 202.4;
|
||||
G4double bh1 = 446.;
|
||||
G4double btf = 183.;
|
||||
G4double btf1 = 1429.;
|
||||
|
||||
G4double lowestKinEnergy;
|
||||
G4double minThreshold;
|
||||
@@ -153,6 +152,10 @@ protected:
|
||||
static const G4double wgi[6];
|
||||
|
||||
static G4double fDN[93];
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
static G4Mutex theMuBremMutex;
|
||||
#endif
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -167,12 +170,12 @@ inline void G4MuBremsstrahlungModel::SetLowestKineticEnergy(G4double e)
|
||||
inline
|
||||
void G4MuBremsstrahlungModel::SetParticle(const G4ParticleDefinition* p)
|
||||
{
|
||||
if(!particle) {
|
||||
if(nullptr == particle) {
|
||||
particle = p;
|
||||
mass = particle->GetPDGMass();
|
||||
rmass=mass/CLHEP::electron_mass_c2 ;
|
||||
cc=CLHEP::classic_electr_radius/rmass ;
|
||||
coeff= 16.*CLHEP::fine_structure_const*cc*cc/3. ;
|
||||
rmass = mass/CLHEP::electron_mass_c2 ;
|
||||
cc = CLHEP::classic_electr_radius/rmass ;
|
||||
coeff = 16.*CLHEP::fine_structure_const*cc*cc/3. ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -74,8 +74,6 @@
|
||||
#define G4MuIonisation_h 1
|
||||
|
||||
#include "G4VEnergyLossProcess.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4VEmModel.hh"
|
||||
|
||||
@@ -90,34 +88,33 @@ public:
|
||||
|
||||
~G4MuIonisation() = default;
|
||||
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition& p) override;
|
||||
G4bool IsApplicable(const G4ParticleDefinition& p) override;
|
||||
|
||||
virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
|
||||
const G4Material*, G4double cut) override;
|
||||
G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
|
||||
const G4Material*, G4double cut) override;
|
||||
|
||||
// Print out of the class parameters
|
||||
virtual void PrintInfo() override;
|
||||
|
||||
// print description in html
|
||||
virtual void ProcessDescription(std::ostream&) const override;
|
||||
|
||||
protected:
|
||||
|
||||
virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
|
||||
const G4ParticleDefinition*) override;
|
||||
|
||||
private:
|
||||
void ProcessDescription(std::ostream&) const override;
|
||||
|
||||
// hide assignment operator
|
||||
G4MuIonisation & operator=(const G4MuIonisation &right) = delete;
|
||||
G4MuIonisation(const G4MuIonisation&) = delete;
|
||||
|
||||
G4double mass;
|
||||
G4double ratio;
|
||||
protected:
|
||||
|
||||
const G4ParticleDefinition* theParticle;
|
||||
const G4ParticleDefinition* theBaseParticle;
|
||||
G4bool isInitialised;
|
||||
void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
|
||||
const G4ParticleDefinition*) override;
|
||||
|
||||
private:
|
||||
|
||||
const G4ParticleDefinition* theParticle = nullptr;
|
||||
const G4ParticleDefinition* theBaseParticle = nullptr;
|
||||
|
||||
G4double mass = 0.0;
|
||||
G4double ratio = 0.0;
|
||||
|
||||
G4bool isInitialised = false;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -69,24 +69,24 @@ public: // with description
|
||||
G4bool IsApplicable (const G4ParticleDefinition& p) override;
|
||||
|
||||
// print description in html
|
||||
virtual void ProcessDescription(std::ostream&) const override;
|
||||
|
||||
protected:
|
||||
|
||||
// Print out of the class parameters
|
||||
virtual void StreamProcessInfo(std::ostream& outFile) const override;
|
||||
|
||||
// This function initialise models
|
||||
void InitialiseProcess(const G4ParticleDefinition*) override;
|
||||
|
||||
private: // data members
|
||||
void ProcessDescription(std::ostream&) const override;
|
||||
|
||||
// hide assignment operator
|
||||
G4MuMultipleScattering &
|
||||
operator=(const G4MuMultipleScattering &right) = delete;
|
||||
G4MuMultipleScattering(const G4MuMultipleScattering&) = delete;
|
||||
|
||||
G4bool isInitialized;
|
||||
protected:
|
||||
|
||||
// Print out of the class parameters
|
||||
void StreamProcessInfo(std::ostream& outFile) const override;
|
||||
|
||||
// This function initialise models
|
||||
void InitialiseProcess(const G4ParticleDefinition*) override;
|
||||
|
||||
private:
|
||||
|
||||
G4bool isInitialized = false;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -78,35 +78,32 @@ public:
|
||||
|
||||
~G4MuPairProduction() = default;
|
||||
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition& p) override;
|
||||
G4bool IsApplicable(const G4ParticleDefinition& p) override;
|
||||
|
||||
virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
|
||||
const G4Material*, G4double cut) override;
|
||||
G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
|
||||
const G4Material*, G4double cut) override;
|
||||
|
||||
inline void SetLowestKineticEnergy(G4double e);
|
||||
|
||||
// print description in html
|
||||
virtual void ProcessDescription(std::ostream&) const override;
|
||||
|
||||
protected:
|
||||
|
||||
// Print out of the class parameters
|
||||
virtual void StreamProcessInfo(std::ostream& outFile) const override;
|
||||
|
||||
virtual void
|
||||
InitialiseEnergyLossProcess(const G4ParticleDefinition*,
|
||||
const G4ParticleDefinition*) override;
|
||||
|
||||
private:
|
||||
void ProcessDescription(std::ostream&) const override;
|
||||
|
||||
G4MuPairProduction & operator=(const G4MuPairProduction &right) = delete;
|
||||
G4MuPairProduction(const G4MuPairProduction&) = delete;
|
||||
|
||||
protected:
|
||||
|
||||
const G4ParticleDefinition* theParticle;
|
||||
// Print out of the class parameters
|
||||
void StreamProcessInfo(std::ostream& outFile) const override;
|
||||
|
||||
void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
|
||||
const G4ParticleDefinition*) override;
|
||||
|
||||
private:
|
||||
|
||||
const G4ParticleDefinition* theParticle = nullptr;
|
||||
G4double lowestKinEnergy;
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised = false;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -75,35 +75,33 @@ public:
|
||||
explicit G4MuPairProductionModel(const G4ParticleDefinition* p = nullptr,
|
||||
const G4String& nam = "muPairProd");
|
||||
|
||||
virtual ~G4MuPairProductionModel();
|
||||
virtual ~G4MuPairProductionModel() 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 ComputeCrossSectionPerAtom(
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double Z, G4double A,
|
||||
G4double cutEnergy,
|
||||
G4double maxEnergy) override;
|
||||
G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double Z, G4double A,
|
||||
G4double cutEnergy,
|
||||
G4double maxEnergy) override;
|
||||
|
||||
virtual G4double ComputeDEDXPerVolume(const G4Material*,
|
||||
G4double ComputeDEDXPerVolume(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy) override;
|
||||
|
||||
virtual 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;
|
||||
|
||||
virtual G4double MinPrimaryEnergy(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double) override;
|
||||
G4double MinPrimaryEnergy(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double) override;
|
||||
|
||||
inline void SetLowestKineticEnergy(G4double e);
|
||||
|
||||
@@ -145,34 +143,34 @@ private:
|
||||
|
||||
protected:
|
||||
|
||||
const G4ParticleDefinition* particle;
|
||||
G4NistManager* nist;
|
||||
G4ParticleDefinition* theElectron = nullptr;
|
||||
G4ParticleDefinition* thePositron = nullptr;
|
||||
G4ParticleChangeForLoss* fParticleChange = nullptr;
|
||||
|
||||
const G4ParticleDefinition* particle = nullptr;
|
||||
G4NistManager* nist = nullptr;
|
||||
|
||||
G4double factorForCross;
|
||||
G4double sqrte;
|
||||
G4double particleMass;
|
||||
G4double z13;
|
||||
G4double z23;
|
||||
G4double lnZ;
|
||||
G4int currentZ;
|
||||
|
||||
G4ParticleDefinition* theElectron;
|
||||
G4ParticleDefinition* thePositron;
|
||||
G4ParticleChangeForLoss* fParticleChange;
|
||||
G4double particleMass = 0.0;
|
||||
G4double z13 = 0.0;
|
||||
G4double z23 = 0.0;
|
||||
G4double lnZ = 0.0;
|
||||
|
||||
G4double minPairEnergy;
|
||||
G4double lowestKinEnergy;
|
||||
|
||||
// gamma energy bins
|
||||
G4int nYBinPerDecade;
|
||||
size_t nbiny;
|
||||
size_t nbine;
|
||||
G4double ymin;
|
||||
G4double dy;
|
||||
G4double emin;
|
||||
G4double emax;
|
||||
G4double ymin = -5.0;
|
||||
G4double dy = 0.005;
|
||||
|
||||
G4bool fTableToFile;
|
||||
G4int currentZ = 0;
|
||||
G4int nYBinPerDecade = 4;
|
||||
size_t nbiny = 1000;
|
||||
size_t nbine = 0;
|
||||
|
||||
G4bool fTableToFile = false;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -187,7 +185,7 @@ inline void G4MuPairProductionModel::SetLowestKineticEnergy(G4double e)
|
||||
inline
|
||||
void G4MuPairProductionModel::SetParticle(const G4ParticleDefinition* p)
|
||||
{
|
||||
if(!particle) {
|
||||
if(nullptr == particle) {
|
||||
particle = p;
|
||||
particleMass = particle->GetPDGMass();
|
||||
}
|
||||
@@ -218,7 +216,7 @@ G4MuPairProductionModel::FindScaledEnergy(G4int Z, G4double rand,
|
||||
{
|
||||
G4double res = yymin;
|
||||
G4Physics2DVector* pv = fElementData->GetElement2DData(Z);
|
||||
if(!pv) {
|
||||
if(nullptr == pv) {
|
||||
DataCorrupted(Z, logTkin);
|
||||
} else {
|
||||
G4double pmin = pv->Value(yymin, logTkin);
|
||||
|
||||
@@ -72,6 +72,9 @@ public:
|
||||
// print description in html
|
||||
virtual void ProcessDescription(std::ostream&) const override;
|
||||
|
||||
G4ePairProduction & operator=(const G4ePairProduction &right) = delete;
|
||||
G4ePairProduction(const G4ePairProduction&) = delete;
|
||||
|
||||
protected:
|
||||
|
||||
// Print out of the class parameters
|
||||
@@ -80,16 +83,9 @@ protected:
|
||||
virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
|
||||
const G4ParticleDefinition*) override;
|
||||
|
||||
private:
|
||||
|
||||
G4ePairProduction & operator=(const G4ePairProduction &right) = delete;
|
||||
G4ePairProduction(const G4ePairProduction&) = delete;
|
||||
|
||||
protected:
|
||||
|
||||
const G4ParticleDefinition* theParticle;
|
||||
const G4ParticleDefinition* theParticle = nullptr;
|
||||
G4double lowestKinEnergy;
|
||||
G4bool isInitialised;
|
||||
G4bool isInitialised = false;
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user