Import Geant4 10.4.0 source tree

This commit is contained in:
Gabriele Cosmo
2017-12-08 12:52:30 +01:00
parent 98e455a940
commit fc6af9e721
2166 changed files with 276760 additions and 100873 deletions
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4LivermorePhotoElectricModel.hh 104410 2017-05-30 07:17:09Z gcosmo $
// $Id: G4LivermorePhotoElectricModel.hh 106173 2017-09-15 13:05:16Z gcosmo $
//
// Author: Sebastien Incerti
// 30 October 2008
@@ -33,7 +33,7 @@
// Main cuts from G4ProductionCutsTable are always used
// 30 May 2011 A Mantero & V Ivanchenko Migration to model design for deexcitation
// 22 Oct 2012 A & V Ivanchenko Migration data structure to G4PhysicsVector
//
// 1 June 2017 M Bandieramonte
#ifndef G4LivermorePhotoElectricModel_h
@@ -49,79 +49,82 @@ class G4LPhysicsFreeVector;
class G4LivermorePhotoElectricModel : public G4VEmModel
{
public:
G4LivermorePhotoElectricModel(const G4String& nam = "LivermorePhElectric");
virtual ~G4LivermorePhotoElectricModel();
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
virtual G4double CrossSectionPerVolume(const G4Material*,
const G4ParticleDefinition*,
G4double energy,
G4double cutEnergy = 0.0,
G4double maxEnergy = DBL_MAX);
virtual G4double ComputeCrossSectionPerAtom(
const G4ParticleDefinition*,
G4double energy,
G4double Z,
G4double A=0.,
G4double cut=0.,
G4double emax=DBL_MAX);
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
const G4MaterialCutsCouple*,
const G4DynamicParticle*,
G4double tmin,
G4double maxEnergy);
virtual void InitialiseForElement(const G4ParticleDefinition*, G4int Z);
inline void SetLimitNumberOfShells(G4int);
G4LivermorePhotoElectricModel(const G4String& nam = "LivermorePhElectric");
virtual ~G4LivermorePhotoElectricModel();
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
virtual G4double CrossSectionPerVolume(const G4Material*,
const G4ParticleDefinition*,
G4double energy,
G4double cutEnergy = 0.0,
G4double maxEnergy = DBL_MAX);
virtual G4double ComputeCrossSectionPerAtom(
const G4ParticleDefinition*,
G4double energy,
G4double Z,
G4double A=0,
G4double cut=0,
G4double emax=DBL_MAX);
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
const G4MaterialCutsCouple*,
const G4DynamicParticle*,
G4double tmin,
G4double maxEnergy);
virtual void InitialiseForElement(const G4ParticleDefinition*, G4int Z);
inline void SetLimitNumberOfShells(G4int);
G4double GetBindingEnergy (G4double ZZ, G4int shell);
G4LivermorePhotoElectricModel & operator=
(const G4LivermorePhotoElectricModel &right) = delete;
G4LivermorePhotoElectricModel(const G4LivermorePhotoElectricModel&) = delete;
protected:
G4ParticleChangeForGamma* fParticleChange;
G4ParticleChangeForGamma* fParticleChange;
private:
void ReadData(G4int Z, const char* path = nullptr);
G4LivermorePhotoElectricModel & operator=(const G4LivermorePhotoElectricModel &right);
G4LivermorePhotoElectricModel(const G4LivermorePhotoElectricModel&);
G4ParticleDefinition* theGamma;
G4ParticleDefinition* theElectron;
G4int verboseLevel;
G4int maxZ;
G4int nShellLimit;
G4bool fDeexcitationActive;
G4bool isInitialised;
static G4LPhysicsFreeVector* fCrossSection[99];
static G4LPhysicsFreeVector* fCrossSectionLE[99];
static std::vector<G4double>* fParam[99];
static G4int fNShells[99];
static G4int fNShellsUsed[99];
static G4ElementData* fShellCrossSection;
static G4Material* fWater;
static G4double fWaterEnergyLimit;
G4VAtomDeexcitation* fAtomDeexcitation;
G4double fCurrSection;
std::vector<G4double> fSandiaCof;
void ReadData(G4int Z, const char* path = nullptr);
G4ParticleDefinition* theGamma;
G4ParticleDefinition* theElectron;
G4int verboseLevel;
G4int maxZ;
G4int nShellLimit;
G4bool fDeexcitationActive;
G4bool isInitialised;
static G4LPhysicsFreeVector* fCrossSection[99];
static G4LPhysicsFreeVector* fCrossSectionLE[99];
static std::vector<G4double>* fParamHigh[99];
static std::vector<G4double>* fParamLow[99];
static G4int fNShells[99];
static G4int fNShellsUsed[99];
static G4ElementData* fShellCrossSection;
static G4Material* fWater;
static G4double fWaterEnergyLimit;
G4VAtomDeexcitation* fAtomDeexcitation;
G4double fCurrSection;
std::vector<G4double> fSandiaCof;
};
inline
void G4LivermorePhotoElectricModel::SetLimitNumberOfShells(G4int n)
{
nShellLimit = n;
nShellLimit = n;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -94,6 +94,7 @@ private:
G4LowECapture& operator = (const G4LowECapture &right);
G4double kinEnergyThreshold;
G4bool isIon;
G4int nRegions;
std::vector<G4String> regionName;
std::vector<const G4Region*> region;
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4RayleighScattering.hh 66241 2012-12-13 18:34:42Z gunter $
// $Id: G4RayleighScattering.hh 107157 2017-11-03 11:27:29Z gcosmo $
//
//------------------ G4RayleighScattering physics process -----------------------
//
@@ -53,24 +53,30 @@ class G4RayleighScattering : public G4VEmProcess
{
public: // with description
G4RayleighScattering(const G4String& processName ="Rayl",
G4ProcessType type = fElectromagnetic);
explicit G4RayleighScattering(const G4String& processName ="Rayl",
G4ProcessType type = fElectromagnetic);
virtual ~G4RayleighScattering();
// true for Gamma only.
G4bool IsApplicable(const G4ParticleDefinition&);
G4bool IsApplicable(const G4ParticleDefinition&) final;
// Print few lines of informations about the process: validity range,
virtual void PrintInfo();
virtual void PrintInfo() override;
// print description in html
virtual void ProcessDescription(std::ostream&) const override;
protected:
virtual void InitialiseProcess(const G4ParticleDefinition*);
virtual void InitialiseProcess(const G4ParticleDefinition*) override;
private:
// hide assignment operator
G4RayleighScattering & operator=(const G4RayleighScattering &right) = delete;
G4RayleighScattering(const G4RayleighScattering&) = delete;
G4bool isInitialised;
};