Import Geant4 11.3.0 source tree

This commit is contained in:
Gabriele Cosmo
2024-12-06 11:11:40 +01:00
parent e58e650b32
commit 32390e802b
1984 changed files with 98713 additions and 83996 deletions
@@ -56,6 +56,7 @@
class G4ParticleChangeForGamma;
class G4Pow;
class G4EmElementXS;
class G4BetheHeitlerModel : public G4VEmModel
{
@@ -111,8 +112,10 @@ protected:
const G4ParticleDefinition* fTheElectron;
const G4ParticleDefinition* fThePositron;
G4ParticleChangeForGamma* fParticleChange;
G4EmElementXS* fXSection{nullptr};
G4bool isFirstInstance{false};
G4bool useEPICS2017{false};
static std::vector<ElementData*> gElementData;
};
@@ -107,7 +107,7 @@ private:
void LoadMCDataElement(const G4Element*);
void ReadCompressedFile(std::string fname, std::istringstream &iss);
void ReadCompressedFile(const std::string& fname, std::istringstream &iss);
void InitMCDataMaterial(const G4Material*);
//
@@ -25,51 +25,45 @@
//
// GEANT4 Class header file
//
// File name: G4SimplePsAtRestModel
// File name: G4PolarizedOrePowellAtRestModel
//
// Author: I.Semeniouk & D.Bernard
//
// Creation date: 4 Juin 2024
// Creation date: 26 July 2024
//
// Class Description:
//
// Simple switcher between positron 2-gamma annihilation at rest model and
// positron 2-gamma annihilation at rest model.
// Polarized Ore & Powell AtRest positron 3-gamma annihilation model.
// Electron of media is assumed to have zero kinetic energy.
// Ortho - Positronium three-photon annihilation by Ore and
// Powell, Phys. Rev. 75 (1949).
// Polarization based on R. M. Drisko, Phys. Rev. 102 (1542).
//
// -------------------------------------------------------------------
//
#ifndef G4SimplePsAtRestModel_h
#define G4SimplePsAtRestModel_h 1
#ifndef G4PolarizedOrePowellAtRestModel_h
#define G4PolarizedOrePowellAtRestModel_h 1
#include "G4VPositronAtRestModel.hh"
class G4SimplePositronAtRestModel;
class G4OrePowellAtRestModel;
class G4SimplePsAtRestModel : public G4VPositronAtRestModel
class G4PolarizedOrePowellAtRestModel : public G4VPositronAtRestModel
{
public:
G4SimplePsAtRestModel();
G4PolarizedOrePowellAtRestModel();
~G4SimplePsAtRestModel() override;
~G4PolarizedOrePowellAtRestModel() override = default;
void SampleSecondaries(std::vector<G4DynamicParticle*>& secParticles,
G4double&, const G4Material*) const override;
void PrintGeneratorInformation() const override;
G4SimplePsAtRestModel& operator=
(const G4SimplePsAtRestModel& right) = delete;
G4SimplePsAtRestModel(const G4SimplePsAtRestModel&) = delete;
private:
G4double f3gFranction;
G4SimplePositronAtRestModel *model2g;
G4OrePowellAtRestModel *model3g;
G4PolarizedOrePowellAtRestModel& operator=
(const G4PolarizedOrePowellAtRestModel& right) = delete;
G4PolarizedOrePowellAtRestModel(const G4PolarizedOrePowellAtRestModel&) = delete;
};
#endif
@@ -53,6 +53,7 @@
#define G4eBremsstrahlungRelModel_h 1
#include "G4VEmModel.hh"
#include <memory>
class G4ParticleChangeForLoss;
@@ -218,9 +219,10 @@ private:
std::vector<G4double> fLPMFuncPhi;
};
//
static LPMFuncs gLPMFuncs;
static std::vector<ElementData*> gElementData;
static std::shared_ptr<LPMFuncs> gLPMFuncs();
static std::shared_ptr<std::vector<ElementData*>> gElementData();
std::shared_ptr<LPMFuncs> fLPMFuncs;
std::shared_ptr<std::vector<ElementData*>> fElementData;
};
#endif
@@ -100,7 +100,8 @@ protected:
private:
G4VPositronAtRestModel* fAtRestModel{nullptr};
G4VPositronAtRestModel* f2GammaAtRestModel{nullptr};
G4VPositronAtRestModel* f3GammaAtRestModel{nullptr};
G4int fEntanglementModelID;
G4bool isInitialised{false};
G4bool fEntangled{false};
@@ -29,7 +29,7 @@
// GEANT4 Class header file
//
//
// File name: G4eplusTo2GammaOKVIModel
// File name: G4eplusTo2or3GammaModel
//
// Author: Vladimir Ivanchenko and Omrane Kadri
//
@@ -53,8 +53,8 @@
// -------------------------------------------------------------------
//
#ifndef G4eplusTo2GammaOKVIModel_h
#define G4eplusTo2GammaOKVIModel_h 1
#ifndef G4eplusTo2or3GammaModel_h
#define G4eplusTo2or3GammaModel_h 1
#include "G4VEmModel.hh"
@@ -63,14 +63,14 @@ class G4ParticleChangeForGamma;
class G4PhysicsVector;
class G4DataVector;
class G4eplusTo2GammaOKVIModel : public G4VEmModel
class G4eplusTo2or3GammaModel : public G4VEmModel
{
public:
G4eplusTo2GammaOKVIModel();
G4eplusTo2or3GammaModel();
~G4eplusTo2GammaOKVIModel() override;
~G4eplusTo2or3GammaModel() override;
void Initialise(const G4ParticleDefinition*, const G4DataVector&) override;
@@ -99,9 +99,9 @@ public:
void SetDelta(G4double val) { if(val > 0.0) { fDeltaMin = val; } };
// hide assignment operator
G4eplusTo2GammaOKVIModel & operator=
(const G4eplusTo2GammaOKVIModel &right) = delete;
G4eplusTo2GammaOKVIModel(const G4eplusTo2GammaOKVIModel&) = delete;
G4eplusTo2or3GammaModel & operator=
(const G4eplusTo2or3GammaModel &right) = delete;
G4eplusTo2or3GammaModel(const G4eplusTo2or3GammaModel&) = delete;
private: