Import Geant4 10.3.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-12-09 12:35:28 +01:00
parent 4ec577e5c4
commit a3452e42ac
3514 changed files with 210500 additions and 89628 deletions
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4StatMFChannel.cc 92144 2015-08-19 14:25:18Z gcosmo $
// $Id: G4StatMFChannel.cc 100379 2016-10-19 15:05:35Z gcosmo $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -165,9 +165,9 @@ void G4StatMFChannel::PlaceFragments(G4int anA)
// This gives the position of fragments at the breakup instant.
// Fragments positions are sampled inside prolongated ellipsoid.
{
G4Pow* g4pow = G4Pow::GetInstance();
G4Pow* g4calc = G4Pow::GetInstance();
const G4double R0 = G4StatMFParameters::Getr0();
G4double Rsys = 2.0*R0*g4pow->Z13(anA);
G4double Rsys = 2.0*R0*g4calc->Z13(anA);
G4bool TooMuchIterations;
do
@@ -175,8 +175,8 @@ void G4StatMFChannel::PlaceFragments(G4int anA)
TooMuchIterations = false;
// Sample the position of the first fragment
G4double R = (Rsys - R0*g4pow->Z13(_theFragments[0]->GetA()))*
g4pow->A13(G4UniformRand());
G4double R = (Rsys - R0*g4calc->Z13(_theFragments[0]->GetA()))*
g4calc->A13(G4UniformRand());
_theFragments[0]->SetPosition(IsotropicVector(R));
@@ -188,7 +188,7 @@ void G4StatMFChannel::PlaceFragments(G4int anA)
G4int counter = 0;
do
{
R = (Rsys - R0*g4pow->Z13((*i)->GetA()))*g4pow->A13(G4UniformRand());
R = (Rsys - R0*g4calc->Z13((*i)->GetA()))*g4calc->A13(G4UniformRand());
(*i)->SetPosition(IsotropicVector(R));
// Check that there are not overlapping fragments
@@ -197,8 +197,8 @@ void G4StatMFChannel::PlaceFragments(G4int anA)
{
G4ThreeVector FragToFragVector =
(*i)->GetPosition() - (*j)->GetPosition();
G4double Rmin = R0*(g4pow->Z13((*i)->GetA()) +
g4pow->Z13((*j)->GetA()));
G4double Rmin = R0*(g4calc->Z13((*i)->GetA()) +
g4calc->Z13((*j)->GetA()));
if ( (ThereAreOverlaps = (FragToFragVector.mag2() < Rmin*Rmin)))
{ break; }
}
@@ -348,10 +348,10 @@ void G4StatMFChannel::SolveEqOfMotion(G4int anA, G4int anZ, G4double T)
// This method will find a solution of Newton's equation of motion
// for fragments in the self-consistent time-dependent Coulomb field
{
G4Pow* g4pow = G4Pow::GetInstance();
G4Pow* g4calc = G4Pow::GetInstance();
G4double CoulombEnergy = 0.6*elm_coupling*anZ*anZ*
g4pow->A13(1.0+G4StatMFParameters::GetKappaCoulomb())/
(G4StatMFParameters::Getr0()*g4pow->Z13(anA)) - GetFragmentsCoulombEnergy();
g4calc->A13(1.0+G4StatMFParameters::GetKappaCoulomb())/
(G4StatMFParameters::Getr0()*g4calc->Z13(anA)) - GetFragmentsCoulombEnergy();
if (CoulombEnergy <= 0.0) return;
G4int Iterations = 0;
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4StatMFMacroCanonical.cc 91834 2015-08-07 07:24:22Z gcosmo $
// $Id: G4StatMFMacroCanonical.cc 100379 2016-10-19 15:05:35Z gcosmo $
//
// by V. Lara
// --------------------------------------------------------------------
@@ -74,14 +74,14 @@ void G4StatMFMacroCanonical::Initialize(const G4Fragment & theFragment)
G4int A = theFragment.GetA_asInt();
G4int Z = theFragment.GetZ_asInt();
G4double x = 1.0 - 2.0*Z/G4double(A);
G4Pow* g4pow = G4Pow::GetInstance();
G4Pow* g4calc = G4Pow::GetInstance();
// Free Internal energy at T = 0
__FreeInternalE0 = A*( -G4StatMFParameters::GetE0() + // Volume term (for T = 0)
G4StatMFParameters::GetGamma0()*x*x) // Symmetry term
+ G4StatMFParameters::GetBeta0()*g4pow->Z23(A) + // Surface term (for T = 0)
+ G4StatMFParameters::GetBeta0()*g4calc->Z23(A) + // Surface term (for T = 0)
0.6*elm_coupling*Z*Z/(G4StatMFParameters::Getr0()* // Coulomb term
g4pow->Z13(A));
g4calc->Z13(A));
CalculateTemperature(theFragment);
return;
@@ -99,9 +99,9 @@ void G4StatMFMacroCanonical::CalculateTemperature(const G4Fragment & theFragment
G4double FragMult = std::max((1.0+(2.31/MeV)*(U/A - 3.5*MeV))*A/100.0, 2.0);
// Parameter Kappa
G4Pow* g4pow = G4Pow::GetInstance();
_Kappa = (1.0+elm_coupling*(g4pow->A13(FragMult)-1)/
(G4StatMFParameters::Getr0()*g4pow->Z13(A)));
G4Pow* g4calc = G4Pow::GetInstance();
_Kappa = (1.0+elm_coupling*(g4calc->A13(FragMult)-1)/
(G4StatMFParameters::Getr0()*g4calc->Z13(A)));
_Kappa = _Kappa*_Kappa*_Kappa - 1.0;
G4StatMFMacroTemperature * theTemp = new
@@ -211,7 +211,7 @@ G4StatMFChannel * G4StatMFMacroCanonical::ChooseZ(G4int & Z,
std::vector<G4int> & FragmentsA)
//
{
G4Pow* g4pow = G4Pow::GetInstance();
G4Pow* g4calc = G4Pow::GetInstance();
std::vector<G4int> FragmentsZ;
G4int DeltaZ = 0;
@@ -238,7 +238,7 @@ G4StatMFChannel * G4StatMFMacroCanonical::ChooseZ(G4int & Z,
{
G4double RandZ;
G4double CC = 8.0*G4StatMFParameters::GetGamma0()
+ 2*CP*g4pow->Z23(FragmentsA[i]);
+ 2*CP*g4calc->Z23(FragmentsA[i]);
G4double ZMean;
if (FragmentsA[i] > 1 && FragmentsA[i] < 5) { ZMean = 0.5*FragmentsA[i]; }
else {
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4StatMFMacroChemicalPotential.cc 91834 2015-08-07 07:24:22Z gcosmo $
// $Id: G4StatMFMacroChemicalPotential.cc 100379 2016-10-19 15:05:35Z gcosmo $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -57,12 +57,12 @@ G4bool G4StatMFMacroChemicalPotential::operator!=(const G4StatMFMacroChemicalPot
G4double G4StatMFMacroChemicalPotential::CalcChemicalPotentialNu(void)
// Calculate Chemical potential \nu
{
G4Pow* g4pow = G4Pow::GetInstance();
G4Pow* g4calc = G4Pow::GetInstance();
G4double CP = G4StatMFParameters::GetCoulomb();
// Initial value for _ChemPotentialNu
_ChemPotentialNu = (theZ/theA)*(8.0*G4StatMFParameters::GetGamma0()
+2.0*CP*g4pow->Z23(theA))
+2.0*CP*g4calc->Z23(theA))
- 4.0*G4StatMFParameters::GetGamma0();
G4double ChemPa = _ChemPotentialNu;
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4StatMFMacroMultiNucleon.cc 91834 2015-08-07 07:24:22Z gcosmo $
// $Id: G4StatMFMacroMultiNucleon.cc 100379 2016-10-19 15:05:35Z gcosmo $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -86,8 +86,8 @@ G4double G4StatMFMacroMultiNucleon::CalcMeanMultiplicity(const G4double FreeVol,
{
G4double ThermalWaveLenght = 16.15*fermi/std::sqrt(T);
G4double lambda3 = ThermalWaveLenght*ThermalWaveLenght*ThermalWaveLenght;
G4Pow* g4pow = G4Pow::GetInstance();
G4double A23 = g4pow->Z23(theA);
G4Pow* g4calc = G4Pow::GetInstance();
G4double A23 = g4calc->Z23(theA);
G4double exponent = (mu + nu*theZARatio+ G4StatMFParameters::GetE0()
+ T*T/_InvLevelDensity
@@ -115,8 +115,8 @@ G4double G4StatMFMacroMultiNucleon::CalcZARatio(const G4double nu)
G4double G4StatMFMacroMultiNucleon::CalcEnergy(const G4double T)
{
G4Pow* g4pow = G4Pow::GetInstance();
G4double A23 = g4pow->Z23(theA);
G4Pow* g4calc = G4Pow::GetInstance();
G4double A23 = g4calc->Z23(theA);
// Volume term
G4double EVol = theA * (T*T/_InvLevelDensity - G4StatMFParameters::GetE0());
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4StatMFMacroMultiplicity.cc 91834 2015-08-07 07:24:22Z gcosmo $
// $Id: G4StatMFMacroMultiplicity.cc 100379 2016-10-19 15:05:35Z gcosmo $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -64,7 +64,7 @@ G4double G4StatMFMacroMultiplicity::CalcChemicalPotentialMu(void)
// Calculate Chemical potential \mu
// For that is necesary to calculate mean multiplicities
{
G4Pow* g4pow = G4Pow::GetInstance();
G4Pow* g4calc = G4Pow::GetInstance();
G4double CP = G4StatMFParameters::GetCoulomb();
// starting value for chemical potential \mu
@@ -75,8 +75,8 @@ G4double G4StatMFMacroMultiplicity::CalcChemicalPotentialMu(void)
_MeanTemperature*_MeanTemperature/ILD5 -
_ChemPotentialNu*ZA5 +
G4StatMFParameters::GetGamma0()*(1.0-2.0*ZA5)*(1.0-2.0*ZA5) +
(2.0/3.0)*G4StatMFParameters::Beta(_MeanTemperature)/g4pow->Z13(5) +
(5.0/3.0)*CP*ZA5*ZA5*g4pow->Z23(5) -
(2.0/3.0)*G4StatMFParameters::Beta(_MeanTemperature)/g4calc->Z13(5) +
(5.0/3.0)*CP*ZA5*ZA5*g4calc->Z23(5) -
1.5*_MeanTemperature/5.0;
G4double ChemPa = _ChemPotentialMu;
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4StatMFMacroTemperature.cc 91834 2015-08-07 07:24:22Z gcosmo $
// $Id: G4StatMFMacroTemperature.cc 100379 2016-10-19 15:05:35Z gcosmo $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -152,9 +152,9 @@ G4double G4StatMFMacroTemperature::FragsExcitEnergy(const G4double T)
// multiplicity and entropy
{
// Model Parameters
G4Pow* g4pow = G4Pow::GetInstance();
G4double R0 = G4StatMFParameters::Getr0()*g4pow->Z13(theA);
G4double R = R0*g4pow->A13(1.0+G4StatMFParameters::GetKappaCoulomb());
G4Pow* g4calc = G4Pow::GetInstance();
G4double R0 = G4StatMFParameters::Getr0()*g4calc->Z13(theA);
G4double R = R0*g4calc->A13(1.0+G4StatMFParameters::GetKappaCoulomb());
G4double FreeVol = _Kappa*(4.*pi/3.)*R0*R0*R0;
// Calculate Chemical potentials
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4StatMFMicroCanonical.cc 91834 2015-08-07 07:24:22Z gcosmo $
// $Id: G4StatMFMicroCanonical.cc 100379 2016-10-19 15:05:35Z gcosmo $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -66,7 +66,7 @@ void G4StatMFMicroCanonical::Initialize(const G4Fragment & theFragment)
G4int A = theFragment.GetA_asInt();
G4int Z = theFragment.GetZ_asInt();
G4double x = 1.0 - 2.0*Z/G4double(A);
G4Pow* g4pow = G4Pow::GetInstance();
G4Pow* g4calc = G4Pow::GetInstance();
// Configuration temperature
G4double TConfiguration = std::sqrt(8.0*U/G4double(A));
@@ -79,9 +79,9 @@ void G4StatMFMicroCanonical::Initialize(const G4Fragment & theFragment)
G4StatMFParameters::GetGamma0()*x*x
) +
// Surface term (for T = 0)
G4StatMFParameters::GetBeta0()*g4pow->Z23(A) +
G4StatMFParameters::GetBeta0()*g4calc->Z23(A) +
// Coulomb term
elm_coupling*0.6*Z*Z/(G4StatMFParameters::Getr0()*g4pow->Z13(A));
elm_coupling*0.6*Z*Z/(G4StatMFParameters::Getr0()*g4calc->Z13(A));
// Statistical weight
G4double W = 0.0;
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4StatMFMicroPartition.cc 92144 2015-08-19 14:25:18Z gcosmo $
// $Id: G4StatMFMicroPartition.cc 100379 2016-10-19 15:05:35Z gcosmo $
//
// by V. Lara
// --------------------------------------------------------------------
@@ -95,16 +95,16 @@ void G4StatMFMicroPartition::CoulombFreeEnergy(G4int anA)
G4double G4StatMFMicroPartition::GetCoulombEnergy(void)
{
G4Pow* g4pow = G4Pow::GetInstance();
G4double CoulombFactor = 1.0/g4pow->A13(1.0+G4StatMFParameters::GetKappaCoulomb());
G4Pow* g4calc = G4Pow::GetInstance();
G4double CoulombFactor = 1.0/g4calc->A13(1.0+G4StatMFParameters::GetKappaCoulomb());
G4double CoulombEnergy = elm_coupling*0.6*theZ*theZ*CoulombFactor/
(G4StatMFParameters::Getr0()*g4pow->Z13(theA));
(G4StatMFParameters::Getr0()*g4calc->Z13(theA));
G4double ZA = G4double(theZ)/G4double(theA);
for (unsigned int i = 0; i < _thePartition.size(); i++)
CoulombEnergy += _theCoulombFreeEnergy[i] - elm_coupling*0.6*
ZA*ZA*_thePartition[i]*g4pow->Z23(_thePartition[i])/
ZA*ZA*_thePartition[i]*g4calc->Z23(_thePartition[i])/
G4StatMFParameters::Getr0();
return CoulombEnergy;
@@ -112,8 +112,8 @@ G4double G4StatMFMicroPartition::GetCoulombEnergy(void)
G4double G4StatMFMicroPartition::GetPartitionEnergy(G4double T)
{
G4Pow* g4pow = G4Pow::GetInstance();
G4double CoulombFactor = 1.0/g4pow->A13(1.0+G4StatMFParameters::GetKappaCoulomb());
G4Pow* g4calc = G4Pow::GetInstance();
G4double CoulombFactor = 1.0/g4calc->A13(1.0+G4StatMFParameters::GetKappaCoulomb());
G4double PartitionEnergy = 0.0;
@@ -157,7 +157,7 @@ G4double G4StatMFMicroPartition::GetPartitionEnergy(G4double T)
// Surface term
(G4StatMFParameters::Beta(T) - T*G4StatMFParameters::DBetaDT(T))*
g4pow->Z23(_thePartition[i]) +
g4calc->Z23(_thePartition[i]) +
// Coulomb term
_theCoulombFreeEnergy[i];
@@ -165,7 +165,7 @@ G4double G4StatMFMicroPartition::GetPartitionEnergy(G4double T)
}
PartitionEnergy += elm_coupling*0.6*theZ*theZ*CoulombFactor/
(G4StatMFParameters::Getr0()*g4pow->Z13(theA))
(G4StatMFParameters::Getr0()*g4calc->Z13(theA))
+ 1.5*T*(_thePartition.size()-1);
return PartitionEnergy;
@@ -234,7 +234,7 @@ G4double G4StatMFMicroPartition::CalcPartitionProbability(G4double U,
if ( T <= 0.0) return _Probability = 0.0;
_Temperature = T;
G4Pow* g4pow = G4Pow::GetInstance();
G4Pow* g4calc = G4Pow::GetInstance();
// Factorial of fragment multiplicity
G4double Fact = 1.0;
@@ -273,7 +273,7 @@ G4double G4StatMFMicroPartition::CalcPartitionProbability(G4double U,
{
PartitionEntropy +=
2.0*T*_thePartition[i]/InvLevelDensity(_thePartition[i])
- G4StatMFParameters::DBetaDT(T) * g4pow->Z23(_thePartition[i]);
- G4StatMFParameters::DBetaDT(T) * g4calc->Z23(_thePartition[i]);
}
}
@@ -282,8 +282,8 @@ G4double G4StatMFMicroPartition::CalcPartitionProbability(G4double U,
ThermalWaveLenght3 = ThermalWaveLenght3*ThermalWaveLenght3*ThermalWaveLenght3;
// Translational Entropy
G4double kappa = 1. + elm_coupling*(g4pow->Z13(_thePartition.size())-1.0)
/(G4StatMFParameters::Getr0()*g4pow->Z13(theA));
G4double kappa = 1. + elm_coupling*(g4calc->Z13(_thePartition.size())-1.0)
/(G4StatMFParameters::Getr0()*g4calc->Z13(theA));
kappa = kappa*kappa*kappa;
kappa -= 1.;
G4double V0 = (4./3.)*pi*theA*G4StatMFParameters::Getr0()*G4StatMFParameters::Getr0()*
@@ -291,7 +291,7 @@ G4double G4StatMFMicroPartition::CalcPartitionProbability(G4double U,
G4double FreeVolume = kappa*V0;
G4double TranslationalS = std::max(0.0, G4Log(ProbA32/Fact) +
(_thePartition.size()-1.0)*G4Log(FreeVolume/ThermalWaveLenght3) +
1.5*(_thePartition.size()-1.0) - 1.5*g4pow->logZ(theA));
1.5*(_thePartition.size()-1.0) - 1.5*g4calc->logZ(theA));
PartitionEntropy += G4Log(ProbDegeneracy) + TranslationalS;
_Entropy = PartitionEntropy;