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
@@ -45,50 +45,50 @@ class G4HadronicDeveloperParameters
G4HadronicDeveloperParameters &operator=( const G4HadronicDeveloperParameters& );
public:
G4bool Set( const std::string name , const G4bool );
G4bool Set( const std::string name , const G4int );
G4bool Set( const std::string name , const G4double );
G4bool GetDefault( const std::string name , G4bool& value );
G4bool GetDefault( const std::string name , G4int& value );
G4bool GetDefault( const std::string name , G4double& value );
G4bool Get( const std::string name , G4bool& value );
G4bool Get( const std::string name , G4int& value );
G4bool Get( const std::string name , G4double& value );
G4bool DeveloperGet( const std::string name , G4bool& value );
G4bool DeveloperGet( const std::string name , G4int& value );
G4bool DeveloperGet( const std::string name , G4double& value );
void Dump( const std::string name );
G4bool Set( const G4String& name , const G4bool );
G4bool Set( const G4String& name , const G4int );
G4bool Set( const G4String& name , const G4double );
G4bool GetDefault( const G4String& name , G4bool& value );
G4bool GetDefault( const G4String& name , G4int& value );
G4bool GetDefault( const G4String& name , G4double& value );
G4bool Get( const G4String& name , G4bool& value );
G4bool Get( const G4String& name , G4int& value );
G4bool Get( const G4String& name , G4double& value );
G4bool DeveloperGet( const G4String& name , G4bool& value );
G4bool DeveloperGet( const G4String& name , G4int& value );
G4bool DeveloperGet( const G4String& name , G4double& value );
void Dump( const G4String& name );
//protected:
public:
G4bool SetDefault( const std::string name , const G4bool value );
G4bool SetDefault( const std::string name , const G4int value , G4int lower_limit = -INT_MAX , G4int upper_limit = INT_MAX );
G4bool SetDefault( const std::string name , const G4double value , G4double lower_limit = -DBL_MAX , G4double upper_limit = DBL_MAX );
G4bool SetDefault( const G4String& name , const G4bool value );
G4bool SetDefault( const G4String& name , const G4int value , G4int lower_limit = -INT_MAX , G4int upper_limit = INT_MAX );
G4bool SetDefault( const G4String& name , const G4double value , G4double lower_limit = -DBL_MAX , G4double upper_limit = DBL_MAX );
private:
G4bool get( const std::string name , G4bool& value , G4bool check_change = false );
G4bool get( const std::string name , G4int& value , G4bool check_change = false );
G4bool get( const std::string name , G4double& value , G4bool check_change= false );
G4bool get( const G4String& name , G4bool& value , G4bool check_change = false );
G4bool get( const G4String& name , G4int& value , G4bool check_change = false );
G4bool get( const G4String& name , G4double& value , G4bool check_change= false );
std::map<std::string,G4bool> b_values;
std::map<std::string,const G4bool> b_defaults;
std::map<G4String,G4bool> b_values;
std::map<G4String,const G4bool> b_defaults;
std::map<std::string,G4int> i_values;
std::map<std::string,const G4int> i_defaults;
std::map<std::string,std::pair<const G4int,const G4int>> i_limits;
std::map<G4String,G4int> i_values;
std::map<G4String,const G4int> i_defaults;
std::map<G4String,std::pair<const G4int,const G4int>> i_limits;
std::map<std::string,G4double> values;
std::map<std::string,const G4double> defaults;
std::map<std::string,std::pair<const G4double,const G4double>> limits;
std::map<G4String,G4double> values;
std::map<G4String,const G4double> defaults;
std::map<G4String,std::pair<const G4double,const G4double>> limits;
G4bool check_value_within_limits( std::pair<const G4double,const G4double>& , G4double );
G4bool check_value_within_limits( std::pair<const G4int,const G4int>& , G4int );
void issue_no_param( const std::string& name );
void issue_has_changed( const std::string& name );
void issue_non_eligible_value( const std::string& name );
void issue_is_already_defined( const std::string& name );
void issue_is_modified( const std::string& name );
void issue_no_param( const G4String& name );
void issue_has_changed( const G4String& name );
void issue_non_eligible_value( const G4String& name );
void issue_is_already_defined( const G4String& name );
void issue_is_modified( const G4String& name );
};
#endif
@@ -31,7 +31,7 @@
class G4HadronicException : public std::exception {
public:
G4HadronicException(G4String in, G4int at, G4String mess);
G4HadronicException(const G4String& in, G4int at, const G4String& mess);
virtual ~G4HadronicException() throw();
@@ -155,6 +155,13 @@ class G4HadronicParameters {
void SetEnableNUDEX( G4bool val );
// NUDEX gamma de-excitation is enabled/disabled.
inline const G4String& GetTypeTablePT() const;
void SetTypeTablePT( const G4String& typeTablePT );
// Specify the type of PT table - between "calendf" and "njoy" for
// the URR (Unresolved Resonance Region) treatment of low-energy neutrons.
// ( Note that there is no default: an empty string "" is returned if
// it is not set explicitly. )
inline G4double GetEPRelativeLevel() const;
inline G4double GetEPAbsoluteLevel() const;
inline G4int GetEPReportLevel() const;
@@ -220,6 +227,7 @@ class G4HadronicParameters {
G4bool fChargeExchange = false;
G4bool fBinaryDebug = false;
G4String fTypeTablePT = "";
G4String fDirPARTICLEXS = "";
G4String fPhysListDocDir = "";
G4String fPhysListName = "";
@@ -324,6 +332,10 @@ inline G4bool G4HadronicParameters::EnableNUDEX() const {
return fEnableNUDEX;
}
inline const G4String& G4HadronicParameters::GetTypeTablePT() const {
return fTypeTablePT;
}
inline G4bool G4HadronicParameters::EnableCoherentChargeExchange() const {
return fChargeExchange;
}
@@ -39,6 +39,8 @@
// All arrays have length ZMAX = 101
// access to this data via atomic number Z (1 - 100)
static const G4int ZMAXNUCLEARDATA = 100;
static const G4int amin[] = {
0,
1, 3, 6, 9, 10, 12, 14, 16, 19, 20, //1-10
@@ -78,6 +80,19 @@ static const G4double aeff[] = {
204.383, 207.217, 208.98, 208.982, 209.987, 222.018, 223.02, 226.025, 227.028, 232.038, //81-90
231.036, 238.029, 237.048, 244.064, 243.061, 247.07, 247.07, 251.08, 252.083, 257.095}; //91-100
static const G4double lowEnergyLimitMeV[] = {
0,
0, 0, 0, 0, 0, 6., 0, 4., 0, 0, //1-10
0, 0, 0, 1.6, 1.4, 1.4, 1.3, 1.6, 1.2, 1.3, //11-20
0.2, 0.2, 0.4, 0, 0, 1.0, 1.3, 0.1, 0.8, 0.2, //21-30
0.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, //31-40
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //41-50
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //51-60
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //61-70
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //71-80
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //81-90
0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; //91-100
static const G4String elementName[] = {
"",
"Hydrogen", "Helium", "Lithium", "Berylium", "Boron", "Carbon",
@@ -34,7 +34,7 @@
//
// Creation date: February 2015
//
// Modifications:
// Modifications: 29 October 2024 Isaac Kunen
//
// Legendre Polynomial
//
@@ -51,16 +51,24 @@ class G4LegendrePolynomial
{
public:
// Access to coefficients
static size_t GetNCoefficients(size_t order) { return order+1; }
G4double GetCoefficient(size_t i, size_t order);
static std::size_t GetNCoefficients(std::size_t order) { return order+1; }
G4double GetCoefficient(std::size_t i, std::size_t order);
// Evaluation functions
G4double EvalLegendrePoly(G4int order, G4double x);
G4double EvalAssocLegendrePoly(G4int l, G4int m, G4double x);
// cache is not used; use EvalAssocLegendrePoly(l, m, x) instead.
G4double EvalAssocLegendrePoly(G4int l, G4int m, G4double x,
std::map<G4int, std::map<G4int, G4double> >* cache = NULL);
std::map<G4int, std::map<G4int, G4double> >* cache)
{
(void) cache; // suppress compiler warning for unused cache
return EvalAssocLegendrePoly(l, m, x);
}
protected: // Cache coefficients for speed
void BuildUpToOrder(size_t order);
void BuildUpToOrder(std::size_t order);
std::vector< std::vector<G4double> > fCoefficients;
};
@@ -87,6 +87,10 @@ public:
const G4ParticleDefinition* theParticle,
G4double ekin);
// parameterisation of threshold shape of cross section
static G4double NeutronInelasticShape(G4int Z, G4double ekin);
static G4double ProtonInelasticShape(G4int Z, G4double ekin);
static G4Pow* fG4pow;
static const G4double r0[93];
@@ -33,27 +33,28 @@
class G4ping
{
public:
G4ping(G4String aName) : theName(aName) {};
public:
G4ping(const G4String& aName) : theName(aName) {}
void push_back(G4String aS) {theS.push_back(aS);}
void push_back(const G4String& aS) {theS.push_back(aS);}
void push_back(G4double aD) {theD.push_back(aD);}
void push_back(G4LorentzVector aV) {theV.push_back(aV);}
void push_back(const G4LorentzVector& aV) {theV.push_back(aV);}
void dump()
{
if(std::getenv(theName))
{
size_t i(0);
for(i=0; i<theS.size(); i++)
std::size_t i(0);
for(i=0; i<theS.size(); ++i)
{
G4cout << theS[i]<<", ";
}
for(i=0; i<theD.size(); i++)
for(i=0; i<theD.size(); ++i)
{
G4cout << theD[i]<<", ";
}
for(i=0; i<theV.size(); i++)
for(i=0; i<theV.size(); ++i)
{
G4cout << theV[i]<<", ";
}
@@ -63,7 +64,9 @@
theD.clear();
theV.clear();
}
private:
private:
std::vector<G4String> theS;
std::vector<G4double> theD;
std::vector<G4LorentzVector> theV;