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
@@ -120,9 +120,9 @@ protected:
CrossSectionDataTable xs_tab_;
G4ParticleDefinition* proton_def_;
G4ParticleDefinition* alpha_def_;
G4ParticleDefinition* carbon_def_;
G4ParticleDefinition* proton_def_{nullptr};
G4ParticleDefinition* alpha_def_{nullptr};
G4ParticleDefinition* carbon_def_{nullptr};
const std::vector<G4double>* water_density_;
@@ -131,7 +131,7 @@ protected:
std::map<G4double, G4double> model_elow_tab_;
G4DNAMultipleIonisationManager* mioni_manager_;
G4DNAMultipleIonisationManager* mioni_manager_{nullptr};
G4bool use_champion_param_;
@@ -61,7 +61,7 @@ public:
G4double GetAlphaParam(G4double energy);
private:
G4int num_node_;
G4int num_node_{0};
std::vector<G4double> Eion_;
std::vector<G4double> alpha_;
@@ -26,36 +26,34 @@
#ifndef G4LEPTSDiffXS_h
#define G4LEPTSDiffXS_h 1
#include <string>
#include "G4Types.hh"
class G4LEPTSDiffXS {
class G4LEPTSDiffXS
{
public:
public:
G4LEPTSDiffXS(std::string); // Constructor
G4LEPTSDiffXS(const G4String&); // Constructor
void readDXS(); // Read file
void BuildCDXS();
void BuildCDXS(G4double, G4double);
void NormalizeCDXS();
void InterpolateCDXS();
void PrintDXS(int);
void PrintDXS(G4int);
G4double SampleAngle(G4double);
G4double SampleAngleMT(G4double, G4double);
G4double SampleAngleEthylene(G4double, G4double);
G4bool IsFileFound() const {
return bFileFound;
}
G4bool IsFileFound() const { return bFileFound; }
private:
std::string fileName;
int NumAng;
int INumAng;
int NumEn;
private:
G4String fileName;
G4int NumAng;
G4int INumAng;
G4int NumEn;
char DXSTypeName[8];
int DXSType;
G4int DXSType;
G4double Eb[100];
// G4double DXS[100][190], CDXS[100][190], IDXS[100][19000], ICDXS[100][19000];
G4double DXS[100][190], CDXS[100][190], ICDXS[100][19000];
@@ -23,35 +23,34 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4LEPTSDistribution_h
#define G4LEPTSDistribution_h 1
// G4LEPTSDistribution
//
// Author: Pedro Arce (CIEMAT), 2014
// --------------------------------------------------------------------
#ifndef G4LEPTSDistribution_hh
#define G4LEPTSDistribution_hh 1
#include "globals.hh"
#include "Randomize.hh"
#include <string.h>
#include <stdio.h>
#include <string>
#include <iostream>
class G4LEPTSDistribution {
class G4LEPTSDistribution
{
public:
public:
G4LEPTSDistribution(); // Constructor
void ReadFile( G4String fileName ); // Read file
G4LEPTSDistribution() = default;
void ReadFile( const G4String& fileName );
G4bool ReadFile( FILE* fp, G4int nData );
G4double Sample( G4double, G4double);
G4double Sample( G4double, G4double );
G4bool IsFileFound() const {
return bFileFound;
}
G4bool IsFileFound() const { return bFileFound; }
private:
int NoBins;
private:
G4int NoBins;
#define NMAX 20000
G4double E[NMAX], f[NMAX], F[NMAX], eF[NMAX];
G4bool bFileFound;
};
#endif
@@ -23,42 +23,39 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4LEPTSElossDistr_h
#define G4LEPTSElossDistr_h 1
// G4LEPTSElossDistr
//
// Author: Pedro Arce (CIEMAT), 2014
// --------------------------------------------------------------------
#ifndef G4LEPTSElossDistr_hh
#define G4LEPTSElossDistr_hh 1
#include "globals.hh"
#include "Randomize.hh"
#include <string.h>
#include <stdio.h>
#include <string>
#include <iostream>
#include <map>
class G4LEPTSDistribution;
using mddist = std::map<G4double, G4LEPTSDistribution *>;
using mdmddist = std::map<G4double, mddist>;
class G4LEPTSElossDistr
{
public:
class G4LEPTSElossDistr {
G4LEPTSElossDistr(const G4String&);
public:
void ReadFile();
G4double Sample( G4double, G4double );
G4bool IsFileFound() const { return bFileFound; }
G4LEPTSElossDistr(std::string); // Constructor
void ReadFile(); // Read file
G4double Sample( G4double, G4double);
private:
G4bool IsFileFound() const {
return bFileFound;
}
std::map<G4double, std::map<G4double, G4LEPTSDistribution *> > theDistributions;
// Energy , angle , distribution
private:
mdmddist theDistributions; // Energy , angle , distribution
G4int theNDistributions;
std::string fileName;
int NoBins;
#define NMAX 20000
G4String fileName;
G4int NoBins;
G4bool bFileFound;
};
#endif
@@ -30,29 +30,32 @@
class G4LEPTSExcitationModel : public G4VLEPTSModel
{
public:
public:
G4LEPTSExcitationModel(const G4String& modelName ="G4LEPTSExcitationModel");
~G4LEPTSExcitationModel() override;
void Initialise(const G4ParticleDefinition*,
const G4DataVector&) override;
const G4DataVector&) override;
std::map<G4int,std::vector<G4double> > ReadIXS(G4String, const G4Material* aMaterial) override;
std::map<G4int,std::vector<G4double> > ReadIXS(const G4String&,
const G4Material* aMaterial) override;
void SampleSecondaries(std::vector<G4DynamicParticle*>*,
const G4MaterialCutsCouple*,
const G4DynamicParticle*,
G4double tmin = 0.0,
G4double tmax = DBL_MAX) override;
G4double tmin = 0.0,
G4double tmax = DBL_MAX) override;
// main method to compute cross section per Volume
G4double CrossSectionPerVolume(const G4Material*,
const G4ParticleDefinition*,
G4double kineticEnergy,
G4double cutEnergy = 0.0,
G4double maxEnergy = DBL_MAX) override;
const G4ParticleDefinition*,
G4double kineticEnergy,
G4double cutEnergy = 0.0,
G4double maxEnergy = DBL_MAX) override;
private:
private:
G4ParticleChangeForGamma* fParticleChangeForGamma;
G4double LowestExcitationEnergy;
G4double LowestNeutralDisociationEnergy;
@@ -58,8 +58,7 @@ enum XSType {XSEnergy=0,
class G4VLEPTSModel : public G4VEmModel
{
public:
public:
G4VLEPTSModel(const G4String& processName);
~G4VLEPTSModel() override;
@@ -76,14 +75,16 @@ public:
G4VLEPTSModel& operator=(const G4VLEPTSModel &right); //hide assignment operator
G4VLEPTSModel(const G4VLEPTSModel& );
protected:
protected:
void Init();
G4bool ReadParam(G4String fileName, const G4Material* aMaterial);
virtual std::map<G4int,std::vector<G4double> > ReadIXS(G4String fileName, const G4Material* aMaterial);
G4bool ReadParam(const G4String& fileName, const G4Material* aMaterial);
virtual std::map<G4int,std::vector<G4double> > ReadIXS(const G4String& fileName, const G4Material* aMaterial);
G4double SampleEnergyLoss(const G4Material* aMaterial, G4double eMin, G4double eMax);
void BuildMeanFreePathTable( const G4Material* aMaterial, std::map< G4int, std::vector<G4double> >& integralXS );
protected:
protected:
G4PhysicsTable * theMeanFreePathTable;
G4double theLowestEnergyLimit;