Import Geant4 7.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 11:11:55 +02:00
parent e083ffb441
commit 516dbf1a58
5914 changed files with 202605 additions and 71141 deletions
+4 -2
View File
@@ -21,13 +21,14 @@
// ********************************************************************
//
//
// $Id: G4AtomicShells.cc,v 1.3 2001/07/11 10:01:27 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// $Id: G4AtomicShells.cc,v 1.4 2004/07/19 11:27:21 maire Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
// 24-04-98, implementation of the first version, V. Grichine
// 16-11-98, GetBindingEnergy(Z,ShellNb), M.Maire
// 19-07-04, add a protection in GetNumberOfShells(), mma
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
@@ -517,6 +518,7 @@ G4AtomicShells::fBindingEnergies[1540] =
G4int
G4AtomicShells::GetNumberOfShells(G4int Z)
{
assert (Z>=1 && Z<=101);
return fNumberOfShells[Z];
}
+4 -4
View File
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4Element.cc,v 1.17 2003/06/18 08:12:56 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// $Id: G4Element.cc,v 1.18 2004/12/07 08:50:02 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -239,12 +239,12 @@ void G4Element::ComputeLradTsaiFactor()
const G4double Lrad_light[] = {5.31 , 4.79 , 4.74 , 4.71} ;
const G4double Lprad_light[] = {6.144 , 5.621 , 5.805 , 5.924} ;
const G4double logZ3 = log(fZeff)/3.;
const G4double logZ3 = std::log(fZeff)/3.;
G4double Lrad, Lprad;
G4int iz = (int)(fZeff+0.5) - 1 ;
if (iz <= 3) { Lrad = Lrad_light[iz] ; Lprad = Lprad_light[iz] ; }
else { Lrad = log(184.15) - logZ3 ; Lprad = log(1194.) - 2*logZ3 ; }
else { Lrad = std::log(184.15) - logZ3 ; Lprad = std::log(1194.) - 2*logZ3 ; }
fRadTsai = 4*alpha_rcl2*fZeff*(fZeff*(Lrad-fCoulomb) + Lprad);
}
+16 -9
View File
@@ -21,12 +21,14 @@
// ********************************************************************
//
//
// $Id: G4IonisParamElm.cc,v 1.8 2002/10/17 09:00:29 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// $Id: G4IonisParamElm.cc,v 1.11 2004/12/07 08:50:03 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
//
// 06-09-04, Update calculated values after any change of ionisation
// potential change. V.Ivanchenko
// 17-10-02, Fix excitation energy interpolation. V.Ivanchenko
// 08-03-01, correct handling of fShellCorrectionVector. M.Maire
// 22-11-00, tabulation of ionisation potential from
@@ -46,9 +48,9 @@ G4IonisParamElm::G4IonisParamElm(G4double Z)
// some basic functions of the atomic number
fZ = Z;
fZ3 = pow(fZ, 1./3.);
fZZ3 = pow(fZ*(fZ+1.), 1./3.);
flogZ3 = log(fZ)/3.;
fZ3 = std::pow(fZ, 1./3.);
fZZ3 = std::pow(fZ*(fZ+1.), 1./3.);
flogZ3 = std::log(fZ)/3.;
// Parameters for energy loss by ionisation
@@ -79,21 +81,26 @@ G4IonisParamElm::G4IonisParamElm(G4double Z)
// compute the Bethe-Bloch formula for energy = fTaul*particle mass
G4double rate = fMeanExcitationEnergy/electron_mass_c2 ;
G4double w = fTaul*(fTaul+2.) ;
fBetheBlochLow = (fTaul+1.)*(fTaul+1.)*log(2.*w/rate)/w - 1. ;
fBetheBlochLow = (fTaul+1.)*(fTaul+1.)*std::log(2.*w/rate)/w - 1. ;
fBetheBlochLow = 2.*fZ*twopi_mc2_rcl2*fBetheBlochLow ;
fClow = sqrt(fTaul)*fBetheBlochLow;
fClow = std::sqrt(fTaul)*fBetheBlochLow;
fAlow = 6.458040 * fClow/fTau0;
G4double Taum = 0.035*fZ3*MeV/proton_mass_c2;
fBlow =-3.229020*fClow/(fTau0*sqrt(Taum));
fBlow =-3.229020*fClow/(fTau0*std::sqrt(Taum));
// Shell correction factors
fShellCorrectionVector = new G4double[3];
rate = 0.001*fMeanExcitationEnergy/eV;
G4double rate2 = rate*rate;
/*
fShellCorrectionVector[0] = ( 1.10289e5 + 5.14781e8*rate)*rate2 ;
fShellCorrectionVector[1] = ( 7.93805e3 - 2.22565e7*rate)*rate2 ;
fShellCorrectionVector[2] = (-9.92256e1 + 2.10823e5*rate)*rate2 ;
*/
fShellCorrectionVector[0] = ( 0.422377 + 3.858019*rate)*rate2 ;
fShellCorrectionVector[1] = ( 0.0304043 - 0.1667989*rate)*rate2 ;
fShellCorrectionVector[2] = (-0.00038106 + 0.00157955*rate)*rate2 ;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
+17 -14
View File
@@ -21,12 +21,13 @@
// ********************************************************************
//
//
// $Id: G4IonisParamMat.cc,v 1.10 2002/10/29 16:17:05 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// $Id: G4IonisParamMat.cc,v 1.13 2004/12/07 08:50:03 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
// 06-09-04, Factor 2 to shell correction term (V.Ivanchenko)
// 28-10-02, add setMeanExcitationEnergy (V.Ivanchenko)
// 08-02-01, fShellCorrectionVector correctly handled (mma)
// 16-01-01, bug corrected in ComputeDensityEffect() E100eV (L.Urban)
@@ -63,12 +64,12 @@ void G4IonisParamMat::ComputeMeanParameters()
for (size_t i=0; i < fMaterial->GetNumberOfElements(); i++) {
fLogMeanExcEnergy += (fMaterial->GetVecNbOfAtomsPerVolume())[i]
*((*(fMaterial->GetElementVector()))[i]->GetZ())
*log((*(fMaterial->GetElementVector()))[i]->GetIonisation()
*std::log((*(fMaterial->GetElementVector()))[i]->GetIonisation()
->GetMeanExcitationEnergy());
}
fLogMeanExcEnergy /= fMaterial->GetTotNbOfElectPerVolume();
fMeanExcitationEnergy = exp(fLogMeanExcEnergy);
fMeanExcitationEnergy = std::exp(fLogMeanExcEnergy);
fShellCorrectionVector = new G4double[3];
@@ -76,12 +77,12 @@ void G4IonisParamMat::ComputeMeanParameters()
{
fShellCorrectionVector[j] = 0.;
for (size_t k=0; k<fMaterial->GetNumberOfElements(); k++)
for (size_t k=0; k<fMaterial->GetNumberOfElements(); k++) {
fShellCorrectionVector[j] += (fMaterial->GetVecNbOfAtomsPerVolume())[k]
*((*(fMaterial->GetElementVector()))[k]->GetIonisation()
->GetShellCorrectionVector()[j]);
fShellCorrectionVector[j] /= fMaterial->GetTotNbOfElectPerVolume();
}
fShellCorrectionVector[j] *= 2.0/fMaterial->GetTotNbOfElectPerVolume();
}
}
@@ -93,11 +94,11 @@ void G4IonisParamMat::ComputeDensityEffect()
// The parametrization is from R.M. Sternheimer, Phys. Rev.B,3:3681 (1971)
const G4double Cd2 = 4*pi*hbarc_squared*classic_electr_radius;
const G4double twoln10 = 2.*log(10.);
const G4double twoln10 = 2.*std::log(10.);
G4int icase;
fCdensity = 1. + log(fMeanExcitationEnergy*fMeanExcitationEnergy
fCdensity = 1. + std::log(fMeanExcitationEnergy*fMeanExcitationEnergy
/(Cd2*fMaterial->GetTotNbOfElectPerVolume()));
//
@@ -159,7 +160,7 @@ void G4IonisParamMat::ComputeDensityEffect()
G4double DensitySTP = Density*STP_Pressure*Temp/(Pressure*STP_Temperature);
G4double ParCorr = log(Density/DensitySTP);
G4double ParCorr = std::log(Density/DensitySTP);
fCdensity -= ParCorr;
fX0density -= ParCorr/twoln10;
@@ -168,7 +169,7 @@ void G4IonisParamMat::ComputeDensityEffect()
G4double Xa = fCdensity/twoln10;
fAdensity = twoln10*(Xa-fX0density)
/pow((fX1density-fX0density),fMdensity);
/std::pow((fX1density-fX0density),fMdensity);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
@@ -188,10 +189,10 @@ void G4IonisParamMat::ComputeFluctModel()
fF1fluct = 1. - fF2fluct;
fEnergy2fluct = 10.*Zeff*Zeff*eV;
fLogEnergy2fluct = log(fEnergy2fluct);
fLogEnergy2fluct = std::log(fEnergy2fluct);
fLogEnergy1fluct = (fLogMeanExcEnergy - fF2fluct*fLogEnergy2fluct)
/fF1fluct;
fEnergy1fluct = exp(fLogEnergy1fluct);
fEnergy1fluct = std::exp(fLogEnergy1fluct);
fEnergy0fluct = 10.*eV;
fRateionexcfluct = 0.4;
}
@@ -211,7 +212,9 @@ void G4IonisParamMat::SetMeanExcitationEnergy(G4double value)
}
fMeanExcitationEnergy = value;
fLogMeanExcEnergy = log(value);
fLogMeanExcEnergy = std::log(value);
ComputeDensityEffect();
ComputeFluctModel();
}
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4Isotope.cc,v 1.15 2003/06/18 08:12:56 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4MPVEntry.cc,v 1.6 2001/07/11 10:01:28 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
////////////////////////////////////////////////////////////////////////
+5 -5
View File
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4Material.cc,v 1.25 2004/01/22 17:50:38 maire Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4Material.cc,v 1.26 2004/12/07 08:50:03 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//
@@ -243,7 +243,7 @@ void G4Material::AddElement(G4Element* element, G4double fraction)
// check sum of weights -- OK?
G4double wtSum(0.0);
for (size_t i=0;i<fNumberOfElements;i++) {wtSum += fMassFractionVector[i];}
if (abs(1.-wtSum) > perThousand) {
if (std::abs(1.-wtSum) > perThousand) {
G4cerr << "WARNING !! - Fractional masses do not sum to 1 : "
"the Delta is > 0.001"
"(the weights are NOT renormalized; the results may be wrong)"
@@ -305,7 +305,7 @@ void G4Material::AddMaterial(G4Material* material, G4double fraction)
G4double wtSum(0.0);
for (size_t i=0;i<fNumberOfElements;i++)
{ wtSum += fMassFractionVector[i]; }
if (abs(1.-wtSum) > perThousand) {
if (std::abs(1.-wtSum) > perThousand) {
G4cerr << "WARNING !! - Fractional masses do not sum to 1 : "
"the Delta is > 0.001"
"(the weights are NOT renormalized; the results may be wrong)"
@@ -369,7 +369,7 @@ void G4Material::ComputeNuclearInterLength()
G4double NILinv = 0.0;
for (size_t i=0;i<fNumberOfElements;i++) {
NILinv +=
VecNbOfAtomsPerVolume[i]*pow(((*theElementVector)[i]->GetN()),0.6666667);
VecNbOfAtomsPerVolume[i]*std::pow(((*theElementVector)[i]->GetN()),0.6666667);
}
NILinv *= amu/lambda0;
fNuclInterLen = (NILinv <= 0.0 ? DBL_MAX : 1./NILinv);
@@ -22,7 +22,7 @@
//
//
// $Id: G4MaterialPropertiesTable.cc,v 1.15 2004/05/17 13:39:25 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-02 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
////////////////////////////////////////////////////////////////////////
@@ -22,7 +22,7 @@
//
//
// $Id: G4MaterialPropertyVector.cc,v 1.14 2003/06/16 16:56:25 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
////////////////////////////////////////////////////////////////////////
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4OpticalSurface.cc,v 1.9 2003/12/01 15:13:41 gcosmo Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
////////////////////////////////////////////////////////////////////////
+4 -4
View File
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4SandiaTable.cc,v 1.19 2004/04/14 10:19:06 maire Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: G4SandiaTable.cc,v 1.20 2004/12/07 08:50:04 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo....
//
@@ -180,7 +180,7 @@ void G4SandiaTable::ComputeMatSandiaMatrix()
{
coef = NbOfAtomsPerVolume[elm]*fSandiaCofPerAtom[j-1];
(*(*fMatSandiaMatrix)[fMatNbOfIntervals])[j] += coef;
newsum += abs(coef);
newsum += std::abs(coef);
}
}
@@ -634,7 +634,7 @@ G4SandiaTable::GetSandiaCofPerAtom(G4int Z, G4int interval, G4int j)
G4int row = fCumulInterval[Z-1] + interval;
if (j==0) return fSandiaTable[row][0]*keV;
G4double AoverAvo = Z*amu/fZtoAratio[Z];
return AoverAvo*(fSandiaTable[row][j]*cm2*pow(keV,G4double(j))/g);
return AoverAvo*(fSandiaTable[row][j]*cm2*std::pow(keV,G4double(j))/g);
}
///////////////////////////////////////////////////////////////////////