Import Geant4 9.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 15:58:43 +02:00
parent 96c8bcd0af
commit b79225fb37
7544 changed files with 245407 additions and 91099 deletions
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4Solver.cc,v 1.3 2006/06/29 20:24:41 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4Solver.cc,v 1.4 2008/07/25 11:20:47 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4StatMF.cc,v 1.5 2006/06/29 20:24:43 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMF.cc,v 1.6 2008/07/25 11:20:47 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -105,13 +105,14 @@ G4FragmentVector * G4StatMF::BreakItUp(const G4Fragment &theFragment)
theMicrocanonicalEnsemble = new G4StatMFMicroCanonical(theFragment);
G4int Iterations = 0;
G4int IterationsLimit = 100000;
G4double Temperature = 0.0;
G4bool FirstTime = true;
G4StatMFChannel * theChannel = 0;
G4bool ChannelOk;
do { // Try to de-excite as much as 10 times
do { // Try to de-excite as much as IterationLimit permits
do {
G4double theMeanMult = theMicrocanonicalEnsemble->GetMeanMultiplicity();
@@ -136,7 +137,8 @@ G4FragmentVector * G4StatMF::BreakItUp(const G4Fragment &theFragment)
theChannel = theMacrocanonicalEnsemble->ChooseAandZ(theFragment);
}
if (!(ChannelOk = theChannel->CheckFragments())) delete theChannel;
ChannelOk = theChannel->CheckFragments();
if (!ChannelOk) delete theChannel;
} while (!ChannelOk);
@@ -155,15 +157,24 @@ G4FragmentVector * G4StatMF::BreakItUp(const G4Fragment &theFragment)
//--------------------------------------
// Find temperature of breaking channel.
Temperature = _theEnsemble->GetMeanTemperature(); // Initial value for Temperature
Temperature = _theEnsemble->GetMeanTemperature(); // Initial guess for Temperature
if (FindTemperatureOfBreakingChannel(theFragment,theChannel,Temperature)) break;
} while (Iterations++ < 10);
// Do not forget to delete this unusable channel, for which we failed to find the temperature,
// otherwise for very proton-reach nuclei it would lead to memory leak due to large
// number of iterations. N.B. "theChannel" is created in G4StatMFMacroCanonical::ChooseZ()
// G4cout << " Iteration # " << Iterations << " Mean Temperature = " << Temperature << G4endl;
delete theChannel;
} while (Iterations++ < IterationsLimit );
// If Iterations >= 10 means that we couldn't solve for temperature
if (Iterations >= 10)
// If Iterations >= IterationsLimit means that we couldn't solve for temperature
if (Iterations >= IterationsLimit)
throw G4HadronicException(__FILE__, __LINE__, "G4StatMF::BreakItUp: Was not possible to solve for temperature of breaking channel");
@@ -24,11 +24,17 @@
// ********************************************************************
//
//
// $Id: G4StatMFChannel.cc,v 1.6 2006/06/29 20:24:45 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMFChannel.cc,v 1.10 2008/11/19 14:33:31 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
//
// Modified:
// 25.07.08 I.Pshenichnov (in collaboration with Alexander Botvina and Igor
// Mishustin (FIAS, Frankfurt, INR, Moscow and Kurchatov Institute,
// Moscow, pshenich@fias.uni-frankfurt.de) fixed semi-infinite loop
#include "G4StatMFChannel.hh"
#include "G4HadronicException.hh"
@@ -91,7 +97,7 @@ G4bool G4StatMFChannel::CheckFragments(void)
{
G4int A = static_cast<G4int>((*i)->GetA());
G4int Z = static_cast<G4int>((*i)->GetZ());
if (A > 1 && (Z >= A || Z <= 0) || (A==1 && Z > A) || A <= 0) return false;
if ( (A > 1 && (Z > A || Z <= 0)) || (A==1 && Z > A) || A <= 0 ) return false;
}
return true;
@@ -223,7 +229,7 @@ void G4StatMFChannel::PlaceFragments(const G4double anA)
G4ThreeVector FragToFragVector = (*i)->GetPosition() - (*j)->GetPosition();
G4double Rmin = R0*(std::pow((*i)->GetA(),1./3.) +
std::pow((*j)->GetA(),1./3));
if (ThereAreOverlaps = (FragToFragVector.mag2() < Rmin*Rmin)) break;
if ( (ThereAreOverlaps = (FragToFragVector.mag2() < Rmin*Rmin)) ) break;
}
counter++;
} while (ThereAreOverlaps && counter < 1000);
@@ -314,15 +320,19 @@ void G4StatMFChannel::FragmentsMomenta(const G4int NF, const G4int idx,
G4double CTM12 = H*(1.0 - 2.0*_theFragments[i2]->GetNuclearMass()*AvailableE/p.mag2());
G4double CosTheta1;
G4double Sign;
do
{
do
{
CosTheta1 = 1.0 - 2.0*G4UniformRand();
}
while (CosTheta1*CosTheta1 < CTM12);
}
while (CTM12 >= 0.0 && CosTheta1 < 0.0);
if (CTM12 > 0.9999) {CosTheta1 = 1.;}
else {
do
{
do
{
CosTheta1 = 1.0 - 2.0*G4UniformRand();
}
while (CosTheta1*CosTheta1 < CTM12);
}
while (CTM12 >= 0.0 && CosTheta1 < 0.0);
}
if (CTM12 < 0.0) Sign = 1.0;
else if (G4UniformRand() <= 0.5) Sign = -1.0;
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4StatMFFragment.cc,v 1.6 2006/06/29 20:24:47 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMFFragment.cc,v 1.7 2008/07/25 11:20:47 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4StatMFMacroBiNucleon.cc,v 1.5 2006/06/29 20:24:49 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMFMacroBiNucleon.cc,v 1.7 2008/10/24 22:56:42 dennis Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -68,7 +68,7 @@ G4double G4StatMFMacroBiNucleon::CalcMeanMultiplicity(const G4double FreeVol, co
const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())*
(1.0 - 1.0/std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.));
const G4double BindingE = G4NucleiPropertiesTable::GetBindingEnergy(1,theA); //old value was 2.796*MeV
const G4double BindingE = G4NucleiProperties::GetBindingEnergy(theA,1); //old value was 2.796*MeV
G4double exponent = (BindingE + theA*(mu+nu*theZARatio) -
Coulomb*theZARatio*theZARatio*std::pow(G4double(theA),5./3.))/T;
@@ -88,7 +88,7 @@ G4double G4StatMFMacroBiNucleon::CalcEnergy(const G4double T)
const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())*
(1.0 - 1.0/std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.));
_Energy = -G4NucleiPropertiesTable::GetBindingEnergy(1,theA) +
_Energy = -G4NucleiProperties::GetBindingEnergy(theA,1) +
Coulomb * theZARatio * theZARatio * std::pow(G4double(theA),5./3.) +
(3./2.) * T;
@@ -24,11 +24,17 @@
// ********************************************************************
//
//
// $Id: G4StatMFMacroCanonical.cc,v 1.6 2006/06/29 20:24:51 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMFMacroCanonical.cc,v 1.8 2008/11/19 14:33:31 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// by V. Lara
// --------------------------------------------------------------------
//
// Modified:
// 25.07.08 I.Pshenichnov (in collaboration with Alexander Botvina and Igor
// Mishustin (FIAS, Frankfurt, INR, Moscow and Kurchatov Institute,
// Moscow, pshenich@fias.uni-frankfurt.de) fixed infinite loop for
// a fagment with Z=A; fixed memory leak
#include "G4StatMFMacroCanonical.hh"
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4StatMFMacroChemicalPotential.cc,v 1.5 2006/06/29 20:24:53 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMFMacroChemicalPotential.cc,v 1.6 2008/07/25 11:20:47 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -93,8 +93,11 @@ G4double G4StatMFMacroChemicalPotential::CalcChemicalPotentialNu(void)
new G4Solver<G4StatMFMacroChemicalPotential>(100,1.e-4);
theSolver->SetIntervalLimits(ChemPa,ChemPb);
// if (!theSolver->Crenshaw(*this))
if (!theSolver->Brent(*this))
if (!theSolver->Brent(*this)){
G4cerr <<"G4StatMFMacroChemicalPotential:"<<" ChemPa="<<ChemPa<<" ChemPb="<<ChemPb<< G4endl;
G4cerr <<"G4StatMFMacroChemicalPotential:"<<" fChemPa="<<fChemPa<<" fChemPb="<<fChemPb<< G4endl;
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroChemicalPotential::CalcChemicalPotentialNu: I couldn't find the root.");
}
_ChemPotentialNu = theSolver->GetRoot();
delete theSolver;
return _ChemPotentialNu;
@@ -24,11 +24,17 @@
// ********************************************************************
//
//
// $Id: G4StatMFMacroMultiNucleon.cc,v 1.5 2006/06/29 20:25:06 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMFMacroMultiNucleon.cc,v 1.7 2008/11/19 14:33:31 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
//
// Modified:
// 25.07.08 I.Pshenichnov (in collaboration with Alexander Botvina and Igor
// Mishustin (FIAS, Frankfurt, INR, Moscow and Kurchatov Institute,
// Moscow, pshenich@fias.uni-frankfurt.de) fixed computation of the
// symmetry energy
#include "G4StatMFMacroMultiNucleon.hh"
@@ -127,7 +133,7 @@ G4double G4StatMFMacroMultiNucleon::CalcEnergy(const G4double T)
G4double EVol = static_cast<G4double>(theA) * (T*T/_InvLevelDensity - G4StatMFParameters::GetE0());
// Symmetry term
// G4double ESym = static_cast<G4double>(theA) * G4StatMFParameters::GetGamma0() *(1. - 2.* theZARatio * theZARatio);
G4double ESym = static_cast<G4double>(theA) * G4StatMFParameters::GetGamma0() *(1. - 2.* theZARatio) * (1. - 2.* theZARatio);
// Surface term
G4double ESurf = A23*(G4StatMFParameters::Beta(T) - T*G4StatMFParameters::DBetaDT(T));
@@ -138,8 +144,8 @@ G4double G4StatMFMacroMultiNucleon::CalcEnergy(const G4double T)
// Translational term
G4double ETrans = (3./2.)*T;
return _Energy = EVol + ESurf + ECoul + ETrans; // + ESym;
return _Energy = EVol + ESurf + ECoul + ETrans + ESym;
}
@@ -24,12 +24,17 @@
// ********************************************************************
//
//
// $Id: G4StatMFMacroMultiplicity.cc,v 1.5 2006/06/29 20:25:10 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMFMacroMultiplicity.cc,v 1.7 2008/11/19 14:33:31 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
//
// Modified:
// 25.07.08 I.Pshenichnov (in collaboration with Alexander Botvina and Igor
// Mishustin (FIAS, Frankfurt, INR, Moscow and Kurchatov Institute,
// Moscow, pshenich@fias.uni-frankfurt.de) additional checks in
// solver of equation for the chemical potential
#include "G4StatMFMacroMultiplicity.hh"
@@ -86,36 +91,54 @@ G4double G4StatMFMacroMultiplicity::CalcChemicalPotentialMu(void)
G4double fChemPa = this->operator()(ChemPa);
G4double fChemPb = this->operator()(ChemPb);
// Set the precision level for locating the root.
// If the root is inside this interval, then it's done!
G4double intervalWidth = 1.e-4;
// bracketing the solution
G4int iterations = 0;
while (fChemPa*fChemPb > 0.0 && iterations < 10)
while (fChemPa*fChemPb > 0.0 && iterations < 100)
{
if (std::abs(fChemPa) <= std::abs(fChemPb))
{
ChemPa += 0.6*(ChemPa-ChemPb);
fChemPa = this->operator()(ChemPa);
iterations++;
}
else
{
ChemPb += 0.6*(ChemPb-ChemPa);
fChemPb = this->operator()(ChemPb);
iterations++;
}
}
if (fChemPa*fChemPb > 0.0)
if (fChemPa*fChemPb > 0.0) // the bracketing failed, complain
{
G4cerr <<"G4StatMFMacroMultiplicity:"<<" ChemPa="<<ChemPa<<" ChemPb="<<ChemPb<< G4endl;
G4cerr <<"G4StatMFMacroMultiplicity:"<<" fChemPa="<<fChemPa<<" fChemPb="<<fChemPb<< G4endl;
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroMultiplicity::CalcChemicalPotentialMu: I couldn't bracket the root.");
}
G4Solver<G4StatMFMacroMultiplicity> * theSolver = new G4Solver<G4StatMFMacroMultiplicity>(100,1.e-4);
else if (fChemPa*fChemPb < 0.0 && std::abs(ChemPa-ChemPb) > intervalWidth) // the bracketing was OK, try to locate the root
{
G4Solver<G4StatMFMacroMultiplicity> * theSolver = new G4Solver<G4StatMFMacroMultiplicity>(100,intervalWidth);
theSolver->SetIntervalLimits(ChemPa,ChemPb);
// if (!theSolver->Crenshaw(*this))
if (!theSolver->Brent(*this))
{
G4cerr <<"G4StatMFMacroMultiplicity:"<<" ChemPa="<<ChemPa<<" ChemPb="<<ChemPb<< G4endl;
G4cerr <<"G4StatMFMacroMultiplicity:"<<" fChemPa="<<fChemPa<<" fChemPb="<<fChemPb<< G4endl;
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroMultiplicity::CalcChemicalPotentialMu: I couldn't find the root.");
}
_ChemPotentialMu = theSolver->GetRoot();
delete theSolver;
}
else // the root is within the interval, which is shorter then the precision level - all done
{
_ChemPotentialMu = ChemPa;
}
return _ChemPotentialMu;
}
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4StatMFMacroNucleon.cc,v 1.5 2006/06/29 20:25:19 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMFMacroNucleon.cc,v 1.6 2008/07/25 11:20:47 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -71,13 +71,12 @@ G4double G4StatMFMacroNucleon::CalcMeanMultiplicity(const G4double FreeVol, cons
G4double exponent_proton = (mu+nu-Coulomb)/T;
G4double exponent_neutron = mu/T;
if (exponent_neutron > 700.0) exponent_proton = 700.0;
if (exponent_neutron > 700.0) exponent_neutron = 700.0;
if (exponent_proton > 700.0) exponent_proton = 700.0;
_NeutronMeanMultiplicity = (degeneracy*FreeVol/lambda3)*std::exp(mu/T);
_NeutronMeanMultiplicity = (degeneracy*FreeVol/lambda3)*std::exp(exponent_neutron);
_ProtonMeanMultiplicity = (degeneracy*FreeVol/lambda3)*
std::exp((mu+nu-Coulomb)/T);
_ProtonMeanMultiplicity = (degeneracy*FreeVol/lambda3)*std::exp(exponent_proton);
@@ -91,7 +90,7 @@ G4double G4StatMFMacroNucleon::CalcEnergy(const G4double T)
const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())*
(1.0 - 1.0/std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.));
return _Energy = Coulomb * theZARatio + (3./2.) * T;
return _Energy = Coulomb * theZARatio * theZARatio + (3./2.) * T;
}
@@ -24,12 +24,17 @@
// ********************************************************************
//
//
// $Id: G4StatMFMacroTemperature.cc,v 1.5 2006/06/29 20:25:21 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMFMacroTemperature.cc,v 1.7 2008/11/19 14:33:31 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
//
// Modified:
// 25.07.08 I.Pshenichnov (in collaboration with Alexander Botvina and Igor
// Mishustin (FIAS, Frankfurt, INR, Moscow and Kurchatov Institute,
// Moscow, pshenich@fias.uni-frankfurt.de) make algorithm closer to
// original MF model
#include "G4StatMFMacroTemperature.hh"
@@ -58,10 +63,9 @@ G4bool G4StatMFMacroTemperature::operator!=(const G4StatMFMacroTemperature & ) c
G4double G4StatMFMacroTemperature::CalcTemperature(void)
// Calculate Chemical potential \nu
{
// Temperature
G4double Ta = 0.00012;
// Inital guess for the interval of the ensemble temperature values
G4double Ta = 0.5;
G4double Tb = std::max(std::sqrt(_ExEnergy/(theA*0.12)),0.01*MeV);
G4double fTa = this->operator()(Ta);
@@ -70,7 +74,7 @@ G4double G4StatMFMacroTemperature::CalcTemperature(void)
// Bracketing the solution
// T should be greater than 0.
// The interval is [Ta,Tb]
// We start with a low value for Ta = 0.0012 K
// We start with a value for Ta = 0.5 MeV
// it should be enough to have fTa > 0 If it isn't
// the case, we decrease Ta. But carefully, because
// fTa growes very fast when Ta is near 0 and we could have
@@ -84,21 +88,48 @@ G4double G4StatMFMacroTemperature::CalcTemperature(void)
// Usually, fTb will be less than 0, but if it is not the case:
iterations = 0;
while (fTa*fTb > 0.0 && iterations++ < 10) {
Tb += 1.5*std::abs(Tb-Ta);
Tb += 2.*std::abs(Tb-Ta);
fTb = this->operator()(Tb);
}
if (fTa*fTb > 0.0) {
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTemperature::CalcTemperature: I couldn't bracket the solution.");
G4cerr <<"G4StatMFMacroTemperature:"<<" Ta="<<Ta<<" Tb="<<Tb<< G4endl;
G4cerr <<"G4StatMFMacroTemperature:"<<" fTa="<<fTa<<" fTb="<<fTb<< G4endl;
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTemperature::CalcTemperature: I couldn't bracket the solution.");
}
G4Solver<G4StatMFMacroTemperature> * theSolver = new G4Solver<G4StatMFMacroTemperature>(100,1.e-4);
theSolver->SetIntervalLimits(Ta,Tb);
// if (!theSolver->Crenshaw(*this))
if (!theSolver->Brent(*this))
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTemperature::CalcTemperature: I couldn't find the root.");
if (!theSolver->Crenshaw(*this)){
G4cerr <<"G4StatMFMacroTemperature, Crenshaw method failed:"<<" Ta="<<Ta<<" Tb="<<Tb<< G4endl;
G4cerr <<"G4StatMFMacroTemperature, Crenshaw method failed:"<<" fTa="<<fTa<<" fTb="<<fTb<< G4endl;
}
_MeanTemperature = theSolver->GetRoot();
delete theSolver;
G4double FunctionValureAtRoot = this->operator()(_MeanTemperature);
delete theSolver;
// Verify if the root is found and it is indeed within the physical domain,
// say, between 1 and 50 MeV, otherwise try Brent method:
if (_MeanTemperature < 1. || _MeanTemperature > 50. || std::abs(FunctionValureAtRoot) > 5.e-2) {
G4cout << "Crenshaw method failed; function = " << FunctionValureAtRoot << " solution? = " << _MeanTemperature << " MeV " << G4endl;
G4Solver<G4StatMFMacroTemperature> * theSolverBrent = new G4Solver<G4StatMFMacroTemperature>(200,1.e-3);
theSolverBrent->SetIntervalLimits(Ta,Tb);
if (!theSolverBrent->Brent(*this)){
G4cerr <<"G4StatMFMacroTemperature, Brent method failed:"<<" Ta="<<Ta<<" Tb="<<Tb<< G4endl;
G4cerr <<"G4StatMFMacroTemperature, Brent method failed:"<<" fTa="<<fTa<<" fTb="<<fTb<< G4endl;
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTemperature::CalcTemperature: I couldn't find the root with any method.");
}
_MeanTemperature = theSolverBrent->GetRoot();
FunctionValureAtRoot = this->operator()(_MeanTemperature);
delete theSolverBrent;
if (_MeanTemperature < 1. || _MeanTemperature > 50. || std::abs(FunctionValureAtRoot) > 5.e-2) {
G4cout << "Brent method failed; function = " << FunctionValureAtRoot << " solution? = " << _MeanTemperature << " MeV " << G4endl;
throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTemperature::CalcTemperature: I couldn't find the root with any method.");
}
}
return _MeanTemperature;
}
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4StatMFMacroTetraNucleon.cc,v 1.5 2006/06/29 20:25:23 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMFMacroTetraNucleon.cc,v 1.7 2008/10/24 22:57:07 dennis Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -77,7 +77,7 @@ G4double G4StatMFMacroTetraNucleon::CalcMeanMultiplicity(const G4double FreeVol,
const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())*
(1.0 - 1.0/std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.));
const G4double BindingE = G4NucleiPropertiesTable::GetBindingEnergy(2,theA); //old value was 30.11*MeV
const G4double BindingE = G4NucleiProperties::GetBindingEnergy(theA,2); //old value was 30.11*MeV
G4double exponent = (BindingE + theA*(mu+nu*theZARatio+T*T/_InvLevelDensity) -
Coulomb*theZARatio*theZARatio*std::pow(static_cast<G4double>(theA),5./3.))/T;
@@ -96,7 +96,7 @@ G4double G4StatMFMacroTetraNucleon::CalcEnergy(const G4double T)
const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())*
(1.0 - 1.0/std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.));
return _Energy = -G4NucleiPropertiesTable::GetBindingEnergy(2,theA) +
return _Energy = -G4NucleiProperties::GetBindingEnergy(theA,2) +
Coulomb * theZARatio * theZARatio * std::pow(static_cast<G4double>(theA),5./3.) +
(3./2.) * T +
theA * T*T/_InvLevelDensity;
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4StatMFMacroTriNucleon.cc,v 1.5 2006/06/29 20:25:25 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMFMacroTriNucleon.cc,v 1.7 2008/10/24 22:57:24 dennis Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -69,8 +69,8 @@ G4double G4StatMFMacroTriNucleon::CalcMeanMultiplicity(const G4double FreeVol, c
const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())*
(1.0 - 1.0/std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.));
const G4double BindingE = G4NucleiPropertiesTable::GetBindingEnergy(1,theA); // old value was 9.224*MeV
// + G4NucleiProperties::GetBindingEnergy(2,theA);
const G4double BindingE = G4NucleiProperties::GetBindingEnergy(theA,1); // old value was 9.224*MeV
// + G4NucleiProperties::GetBindingEnergy(theA,2);
G4double exponent = (BindingE+ theA*(mu+nu*theZARatio) -
Coulomb*theZARatio*theZARatio*std::pow(static_cast<G4double>(theA),5./3.))/T;
@@ -89,7 +89,7 @@ G4double G4StatMFMacroTriNucleon::CalcEnergy(const G4double T)
const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())*
(1.0 - 1.0/std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.));
return _Energy = -G4NucleiPropertiesTable::GetBindingEnergy(1,theA) +
return _Energy = -G4NucleiProperties::GetBindingEnergy(theA,1) +
Coulomb * theZARatio * theZARatio * std::pow(static_cast<G4double>(theA),5./3.) +
(3./2.) * T;
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4StatMFMicroCanonical.cc,v 1.6 2006/06/29 20:25:27 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMFMicroCanonical.cc,v 1.7 2008/07/25 11:20:47 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4StatMFMicroManager.cc,v 1.5 2006/06/29 20:25:29 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMFMicroManager.cc,v 1.6 2008/07/25 11:20:47 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4StatMFMicroPartition.cc,v 1.7 2006/06/29 20:25:31 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMFMicroPartition.cc,v 1.8 2008/07/25 11:20:47 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// by V. Lara
// --------------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4StatMFParameters.cc,v 1.4 2006/06/29 20:25:33 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4StatMFParameters.cc,v 1.5 2008/07/25 11:20:47 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4VMultiFragmentation.cc,v 1.5 2006/06/29 20:25:35 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4VMultiFragmentation.cc,v 1.6 2008/07/25 11:20:47 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1998)
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4VStatMFEnsemble.cc,v 1.5 2006/06/29 20:25:37 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4VStatMFEnsemble.cc,v 1.6 2008/07/25 11:20:47 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4VStatMFMacroCluster.cc,v 1.4 2006/06/29 20:25:39 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4VStatMFMacroCluster.cc,v 1.5 2008/07/25 11:20:47 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara