Import Geant4 10.7.1 source tree

This commit is contained in:
Gabriele Cosmo
2021-02-05 15:10:05 +01:00
parent dab42d2018
commit 3dfcdb544e
281 changed files with 37738 additions and 47638 deletions
@@ -16,6 +16,14 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
29.01.2021 V.Ivanchenko, emlowen-V10-06-14
- G4MicroElecLOPhononModel - fixed Coverity warning; removed debug
printout; rename member of class
06.12.2020 V.Ivanchenko,
- G4MicroElecSurface, G4MicroElecLOPhononModel - fixed trivial
Coverity warnings
17.11.2020 V.Ivanchenko, emlowen-V10-06-13
- G4MicroElecInelasticModel_new, G4MicroElecInelastic_new,
G4MicroElecSurface - fixed Coverity warnings (non-initialized
@@ -59,7 +59,7 @@
class G4MicroElecLOPhononModel : public G4VEmModel
{
public:
G4MicroElecLOPhononModel(const G4ParticleDefinition*p = 0,
G4MicroElecLOPhononModel(const G4ParticleDefinition*p = nullptr,
const G4String& nam = "G4MicroElecLOPhononModel");
~G4MicroElecLOPhononModel() override;
@@ -81,14 +81,13 @@ protected:
G4ParticleChangeForGamma* fParticleChangeForGamma;
private:
G4bool Interband;
G4MicroElecLOPhononModel & operator=(const G4MicroElecLOPhononModel &right);
G4MicroElecLOPhononModel(const G4MicroElecLOPhononModel&);
G4bool isOkToBeInitialised;
G4bool isInitialised;
G4bool abs = false;
G4double Eprim = 0, signe = -1,phononEnergy=0;
G4bool Interband = false;
G4bool isInitialised = false;
G4bool absor = false;
G4double phononEnergy = 0.;
};
#endif
@@ -60,11 +60,10 @@
G4MicroElecLOPhononModel::G4MicroElecLOPhononModel(const G4ParticleDefinition*,
const G4String& nam)
: G4VEmModel(nam),isInitialised(false)
: G4VEmModel(nam)
{
abs = false;
fParticleChangeForGamma = GetParticleChangeForGamma();
G4cout << "SiO2 Phonon model is constructed " << G4endl;
//G4cout << "SiO2 Phonon model is constructed " << G4endl;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -74,60 +73,42 @@ G4MicroElecLOPhononModel::~G4MicroElecLOPhononModel()
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void G4MicroElecLOPhononModel::Initialise(const G4ParticleDefinition* /*particle*/,
const G4DataVector& /*cuts*/)
void G4MicroElecLOPhononModel::Initialise(const G4ParticleDefinition*,
const G4DataVector& /*cuts*/)
{
if (isOkToBeInitialised == true && isInitialised == false) {
G4cout << "Calling G4MicroElecLOPhononModel" << "::Initialise()" << G4endl;
if (isInitialised) { return; }
fParticleChangeForGamma = GetParticleChangeForGamma();
isInitialised = true;
}
if (isInitialised) { return; }
//G4cout << "Calling G4MicroElecLOPhononModel::Initialise()" << G4endl;
fParticleChangeForGamma = GetParticleChangeForGamma();
isInitialised = true;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4double G4MicroElecLOPhononModel::CrossSectionPerVolume(const G4Material* material,
const G4ParticleDefinition* p,
const G4ParticleDefinition*,
G4double ekin,
G4double, G4double)
{
G4double e = CLHEP::eplus / coulomb,
if (material->GetName()!="G4_SILICON_DIOXIDE") return 0.0;
m0 = CLHEP::electron_mass_c2 / c_squared / kg,
h = CLHEP::hbar_Planck / (m2*kg / s),
eps0 = CLHEP::epsilon0 / (farad / m),
kb = CLHEP::k_Boltzmann / (joule / kelvin);
G4double eps = 9,
einf = 3,
T = 300;
isOkToBeInitialised = true;
const G4double e = CLHEP::eplus / CLHEP::coulomb;
const G4double m0 = CLHEP::electron_mass_c2 / (CLHEP::c_squared*CLHEP::kg);
const G4double h = CLHEP::hbar_Planck * CLHEP::s/ (CLHEP::m2*CLHEP::kg);
const G4double eps0 = CLHEP::epsilon0 * CLHEP::m/ (CLHEP::farad);
const G4double kb = CLHEP::k_Boltzmann * CLHEP::kelvin/ CLHEP::joule;
const G4DataVector cuts;
Initialise(p, cuts);
if (material->GetName()!="G4_SILICON_DIOXIDE") return 1/DBL_MAX;
G4double E =(ekin/eV)*e;
// Parameters SiO2
eps = 3.84;
einf = 2.25;
phononEnergy = (0.75*0.153+0.25*0.063 )* eV;
G4double hw = (phononEnergy / eV) * e;
G4double n = 1.0 / (std::exp(hw / (kb*T)) - 1); //Phonon distribution
phononEnergy = (0.75*0.153+0.25*0.063 )* CLHEP::eV;
const G4double eps = 3.84;
const G4double einf = 2.25;
const G4double T = 300; // should be taken from material property
G4double E =(ekin/CLHEP::eV)*e;
if (abs) { //Absorption
Eprim = E + hw;
signe = -1;
}
else { //Emission
Eprim = E - hw;
signe = +1;
}
G4double hw = (phononEnergy / CLHEP::eV) * e;
G4double n = 1.0 / (std::exp(hw / (kb*T)) - 1); //Phonon distribution
G4double signe = (absor) ? -1. : 1.;
G4double racine = std::sqrt(1. + ((-signe*hw) / E));
@@ -135,7 +116,7 @@ G4double G4MicroElecLOPhononModel::CrossSectionPerVolume(const G4Material* mater
G4double MFP = (std::sqrt(2. * E / m0) / P)*m;
return 2 / MFP;
return 2. / MFP;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -148,13 +129,8 @@ void G4MicroElecLOPhononModel::SampleSecondaries(
{
G4double E = aDynamicElectron->GetKineticEnergy();
if (abs) {
Eprim = E + phononEnergy;
}
else {
Eprim = E - phononEnergy;
}
G4double Eprim = (absor) ? E + phononEnergy : E - phononEnergy;
G4double rand = G4UniformRand();
G4double B = (E + Eprim + 2 * std::sqrt(E*Eprim)) / (E + Eprim - 2 * std::sqrt(E*Eprim));
G4double cosTheta = ((E + Eprim) / (2 * std::sqrt(E*Eprim)))*(1 - std::pow(B, rand)) + std::pow(B, rand);
@@ -162,7 +138,7 @@ void G4MicroElecLOPhononModel::SampleSecondaries(
if(Interband){
cosTheta = 1 - 2 * G4UniformRand(); //Isotrope
}
G4double phi = 2. * pi * G4UniformRand();
G4double phi = twopi * G4UniformRand();
G4ThreeVector zVers = aDynamicElectron->GetMomentumDirection();
G4ThreeVector xVers = zVers.orthogonal();
G4ThreeVector yVers = zVers.cross(xVers);
@@ -221,36 +221,34 @@ G4VParticleChange* G4MicroElecSurface::PostStepDoIt(const G4Track& aTrack, const
if (aTrack.GetStepLength()<=kCarTolerance)
{
theStatus = StepTooSmallSurf;
if (pPostStepPoint) {
WorkFunctionTable::iterator postStepWF;
postStepWF = tableWF.find(pPostStepPoint->GetMaterial()->GetName());
WorkFunctionTable::iterator preStepWF;
preStepWF = tableWF.find(pPreStepPoint->GetMaterial()->GetName());
WorkFunctionTable::iterator postStepWF;
postStepWF = tableWF.find(pPostStepPoint->GetMaterial()->GetName());
WorkFunctionTable::iterator preStepWF;
preStepWF = tableWF.find(pPreStepPoint->GetMaterial()->GetName());
if (postStepWF == tableWF.end()) {
G4String str = "Material ";
str += pPostStepPoint->GetMaterial()->GetName() + " not found!";
G4Exception("G4Surface::G4Surface", "em0002", FatalException, str);
return 0;
}
if (postStepWF == tableWF.end()) {
G4String str = "Material ";
str += pPostStepPoint->GetMaterial()->GetName() + " not found!";
G4Exception("G4Surface::G4Surface", "em0002", FatalException, str);
return 0;
}
else if (preStepWF == tableWF.end()) {
G4String str = "Material ";
str += pPreStepPoint->GetMaterial()->GetName() + " not found!";
G4Exception("G4Surface::G4Surface", "em0002", FatalException, str);
return 0;
}
else if (preStepWF == tableWF.end()) {
G4String str = "Material ";
str += pPreStepPoint->GetMaterial()->GetName() + " not found!";
G4Exception("G4Surface::G4Surface", "em0002", FatalException, str);
return 0;
}
if (pPreStepPoint->GetMaterial() != pPostStepPoint->GetMaterial()) {
if (pPreStepPoint->GetMaterial() != pPostStepPoint->GetMaterial()) {
flag_franchissement_surface = false;
flag_franchissement_surface = false;
if (flag_reflexion == true && flag_normal == true) {
aParticleChange.ProposeMomentumDirection(-Reflexion(aStep.GetPostStepPoint()));
flag_reflexion = false;
flag_normal = false;
}
if (flag_reflexion == true && flag_normal == true) {
aParticleChange.ProposeMomentumDirection(-Reflexion(aStep.GetPostStepPoint()));
flag_reflexion = false;
flag_normal = false;
}
}
return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep);
@@ -17,6 +17,11 @@ committal in the CVS repository !
----------------------------------------------------------
26 January 21: V.Ivanchenko (emstand-V10-06-20)
- G4BetheBlochModel, G4LindhardSorensenIonModel - fixed problem #2312,
restore computation of maximum energy transfer from Geant4 10.4,
affect only ultrarelativistic ions
11 November 20: V.Ivanchenko (emstand-V10-06-19)
- G4UrbanMscModel - restored parameterisation of step limit to
the variant of emstand-V10-06-13
@@ -166,15 +166,14 @@ void G4BetheBlochModel::SetupParameters()
formfact = 0.0;
tlimit = DBL_MAX;
if(particle->GetLeptonNumber() == 0) {
G4int iz = G4lrint(q);
if(iz <= 1) {
formfact = (spin == 0.0 && mass < GeV) ? 1.181e-6 : 1.548e-6;
} else {
G4double x = nist->GetA27(iz);
formfact = 3.969e-6*x*x;
G4double x = 0.8426*CLHEP::GeV;
if(spin == 0.0 && mass < GeV) { x = 0.736*CLHEP::GeV; }
else if (mass > CLHEP::GeV) {
G4int iz = G4lrint(std::abs(q));
if(iz > 1) { x /= nist->GetA27(iz); }
}
tlimit = std::sqrt(0.414/formfact +
electron_mass_c2*electron_mass_c2) - electron_mass_c2;
formfact = 2.0*CLHEP::electron_mass_c2/(x*x);
tlimit = 2.0/formfact;
}
}
@@ -252,7 +251,8 @@ G4double G4BetheBlochModel::ComputeDEDXPerVolume(const G4Material* material,
G4double cut)
{
G4double tmax = MaxSecondaryEnergy(p, kineticEnergy);
G4double cutEnergy = std::min(cut,tmax);
// projectile formfactor limit energy loss
G4double cutEnergy = std::min(std::min(cut,tmax), tlimit);
G4double tau = kineticEnergy/mass;
G4double gam = tau + 1.0;
@@ -405,7 +405,7 @@ void G4BetheBlochModel::SampleSecondaries(vector<G4DynamicParticle*>* vdp,
// projectile formfactor - suppresion of high energy
// delta-electron production at high energy
G4double x = formfact*deltaKinEnergy*(deltaKinEnergy + 2*electron_mass_c2);
G4double x = formfact*deltaKinEnergy;
if(x > 1.e-6) {
G4double x1 = 1.0 + x;
@@ -440,8 +440,8 @@ void G4BetheBlochModel::SampleSecondaries(vector<G4DynamicParticle*>* vdp,
sqrt(deltaKinEnergy * (deltaKinEnergy + 2.0*electron_mass_c2));
G4double cost = deltaKinEnergy * (totEnergy + electron_mass_c2) /
(deltaMomentum * dp->GetTotalMomentum());
if(cost > 1.0) { cost = 1.0; }
G4double sint = sqrt((1.0 - cost)*(1.0 + cost));
cost = std::min(cost, 1.0);
G4double sint = std::sqrt((1.0 - cost)*(1.0 + cost));
G4double phi = twopi*rndmEngineMod->flat();
@@ -479,12 +479,12 @@ void G4BetheBlochModel::SampleSecondaries(vector<G4DynamicParticle*>* vdp,
G4double G4BetheBlochModel::MaxSecondaryEnergy(const G4ParticleDefinition* pd,
G4double kinEnergy)
{
// here particle type is checked for any method
// here particle type is checked for the case,
// when this model is shared between particles
SetParticle(pd);
G4double tau = kinEnergy/mass;
G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.) /
(1. + 2.0*(tau + 1.)*ratio + ratio*ratio);
return std::min(tmax,tlimit);
return 2.0*CLHEP::electron_mass_c2*tau*(tau + 2.) /
(1. + 2.0*(tau + 1.)*ratio + ratio*ratio);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -135,20 +135,18 @@ void G4LindhardSorensenIonModel::SetupParameters()
mass = particle->GetPDGMass();
spin = particle->GetPDGSpin();
charge = particle->GetPDGCharge()*inveplus;
Zin = G4lrint(charge);
Zin = G4lrint(std::abs(charge));
chargeSquare = charge*charge;
ratio = electron_mass_c2/mass;
static const G4double aMag = 1./(0.5*eplus*hbar_Planck*c_squared);
G4double magmom = particle->GetPDGMagneticMoment()*mass*aMag;
magMoment2 = magmom*magmom - 1.0;
if(Zin <= 1) {
formfact = (spin == 0.0 && mass < GeV) ? 1.181e-6 : 1.548e-6;
} else {
G4double x = nist->GetA27(Zin);
formfact = 3.969e-6*x*x;
}
tlimit = std::sqrt(0.414/formfact +
electron_mass_c2*electron_mass_c2) - electron_mass_c2;
G4double x = 0.8426*CLHEP::GeV;
if(spin == 0.0 && mass < GeV) { x = 0.736*CLHEP::GeV; }
else if (Zin > 1) { x /= nist->GetA27(Zin); }
formfact = 2.0*CLHEP::electron_mass_c2/(x*x);
tlimit = 2.0/formfact;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -170,7 +168,7 @@ G4LindhardSorensenIonModel::ComputeCrossSectionPerElectron(
{
G4double cross = 0.0;
// take into account formfactor
G4double tmax = std::min(MaxSecondaryEnergy(p, kineticEnergy),tlimit);
G4double tmax = MaxSecondaryEnergy(p, kineticEnergy);
G4double maxEnergy = std::min(tmax,maxKinEnergy);
if(cutEnergy < maxEnergy) {
@@ -228,7 +226,7 @@ G4LindhardSorensenIonModel::ComputeDEDXPerVolume(const G4Material* material,
{
// formfactor is taken into account in CorrectionsAlongStep(..)
G4double tmax = MaxSecondaryEnergy(p, kineticEnergy);
G4double cutEnergy = std::min(cut,tmax);
G4double cutEnergy = std::min(std::min(cut,tmax), tlimit);
G4double tau = kineticEnergy/mass;
G4double gam = tau + 1.0;
@@ -317,8 +315,7 @@ void G4LindhardSorensenIonModel::SampleSecondaries(
{
G4double kineticEnergy = dp->GetKineticEnergy();
// take into account formfactor
G4double tmax =
std::min(MaxSecondaryEnergy(dp->GetDefinition(),kineticEnergy),tlimit);
G4double tmax = MaxSecondaryEnergy(dp->GetDefinition(),kineticEnergy);
G4double maxKinEnergy = std::min(maxEnergy,tmax);
if(minKinEnergy >= maxKinEnergy) { return; }
@@ -356,7 +353,7 @@ void G4LindhardSorensenIonModel::SampleSecondaries(
// projectile formfactor - suppresion of high energy
// delta-electron production at high energy
G4double x = formfact*deltaKinEnergy*(deltaKinEnergy + 2*electron_mass_c2);
G4double x = formfact*deltaKinEnergy;
if(x > 1.e-6) {
G4double x1 = 1.0 + x;
@@ -391,7 +388,7 @@ void G4LindhardSorensenIonModel::SampleSecondaries(
sqrt(deltaKinEnergy * (deltaKinEnergy + 2.0*electron_mass_c2));
G4double cost = deltaKinEnergy * (totEnergy + electron_mass_c2) /
(deltaMomentum * dp->GetTotalMomentum());
if(cost > 1.0) { cost = 1.0; }
cost = std::min(cost, 1.0);
G4double sint = sqrt((1.0 - cost)*(1.0 + cost));
G4double phi = twopi*rndmEngineMod->flat();
@@ -434,10 +431,8 @@ G4LindhardSorensenIonModel::MaxSecondaryEnergy(const G4ParticleDefinition* pd,
// here particle type is checked for any method
SetParticle(pd);
G4double tau = kinEnergy/mass;
G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.) /
(1. + 2.0*(tau + 1.)*ratio + ratio*ratio);
// formfactor is not taken into account
return tmax;
return 2.0*CLHEP::electron_mass_c2*tau*(tau + 2.) /
(1. + 2.0*(tau + 1.)*ratio + ratio*ratio);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -16,6 +16,15 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
30 January 21: V.Ivanchenko (emutils-V10-06-16)
- G4VEnergyLossProcess, G4VEmProcess, - improved printout
G4EmExtraParameters, G4EmExtraParametersMessenger - fixed #2292
11 January 21: V.Ivanchenko
- G4EmCorrections - fix 2-D interpolation of shell corrections
(problem #2308), which provides minor change of ranges of
charge particles (< 0.1 mm)
12 November 20: B. Morgan (emutils-V10-06-15)
- Apply typo fixes from Gurkan Myczko (https://github.com/Geant4/geant4/pull/15)
@@ -287,9 +287,8 @@ inline G4double G4EmCorrections::Value2(G4double xv, G4double yv,
G4double z11, G4double z21,
G4double z12, G4double z22) const
{
return (z11*(x2-xv)*(y2-yv) + z22*(xv-x1)*(yv-y1) +
0.5*(z12*((x2-xv)*(yv-y1)+(xv-x1)*(y2-yv))+
z21*((xv-x1)*(y2-yv)+(yv-y1)*(x2-xv))))
return ( z11*(x2-xv)*(y2-yv) + z22*(xv-x1)*(yv-y1) +
z12*(x2-xv)*(yv-y1) + z21*(xv-x1)*(y2-yv) )
/ ((x2-x1)*(y2-y1));
}
@@ -284,7 +284,7 @@ const std::vector<G4String>& G4EmExtraParameters::TypesPhysics() const
void G4EmExtraParameters::SetSubCutoff(G4bool val, const G4String& region)
{
G4String r = CheckRegion(region);
const G4String& r = CheckRegion(region);
G4int nreg = m_regnamesSubCut.size();
for(G4int i=0; i<nreg; ++i) {
if(r == m_regnamesSubCut[i]) {
@@ -326,13 +326,13 @@ G4EmExtraParameters::ActivateForcedInteraction(const G4String& procname,
G4double length,
G4bool wflag)
{
G4String r = CheckRegion(region);
const G4String& r = CheckRegion(region);
if(length >= 0.0) {
G4int n = m_procForced.size();
for(G4int i=0; i<n; ++i) {
if(procname == m_procForced[i] && r == m_regnamesForced[i] ) {
m_lengthForced[i] = length;
m_weightForced[i]= wflag;
m_weightForced[i] = wflag;
return;
}
}
@@ -355,7 +355,7 @@ G4EmExtraParameters::ActivateSecondaryBiasing(const G4String& procname,
G4double factor,
G4double energyLim)
{
G4String r = CheckRegion(region);
const G4String& r = CheckRegion(region);
if(factor >= 0.0 && energyLim >= 0.0) {
G4int n = m_procBiasedSec.size();
for(G4int i=0; i<n; ++i) {
@@ -94,6 +94,12 @@ G4EmExtraParametersMessenger::G4EmExtraParametersMessenger(G4EmExtraParameters*
SubSecCmd->SetGuidance(" Region : region name");
SubSecCmd->AvailableForStates(G4State_PreInit);
G4UIparameter* subSec = new G4UIparameter("subSec",'s',false);
SubSecCmd->SetParameter(subSec);
G4UIparameter* subSecReg = new G4UIparameter("Region",'s',false);
SubSecCmd->SetParameter(subSecReg);
StepFuncCmd = new G4UIcommand("/process/eLoss/StepFunction",this);
StepFuncCmd->SetGuidance("Set the energy loss step limitation parameters for e+-.");
StepFuncCmd->SetGuidance(" dRoverR : max Range variation per step");
@@ -167,12 +173,6 @@ G4EmExtraParametersMessenger::G4EmExtraParametersMessenger(G4EmExtraParameters*
unitPrm3->SetDefaultValue("mm");
StepFuncCmd3->SetParameter(unitPrm3);
G4UIparameter* subSec = new G4UIparameter("subSec",'s',false);
SubSecCmd->SetParameter(subSec);
G4UIparameter* subSecReg = new G4UIparameter("Region",'s',false);
SubSecCmd->SetParameter(subSecReg);
bfCmd = new G4UIcommand("/process/em/setBiasingFactor",this);
bfCmd->SetGuidance("Set factor for the process cross section.");
bfCmd->SetGuidance(" procName : process name");
@@ -897,10 +897,7 @@ G4bool G4VEmProcess::StorePhysicsTable(const G4ParticleDefinition* part,
yes = theLambdaTable->StorePhysicsTable(nam,ascii);
if ( yes ) {
G4cout << "Physics table is stored for " << particle->GetParticleName()
<< " and process " << GetProcessName()
<< " in the directory <" << directory
<< "> " << G4endl;
if(0 < verboseLevel) G4cout << "Stored: " << nam << G4endl;
} else {
G4cout << "Fail to store Physics Table for "
<< particle->GetParticleName()
@@ -915,11 +912,13 @@ G4bool G4VEmProcess::StorePhysicsTable(const G4ParticleDefinition* part,
yes = theLambdaTablePrim->StorePhysicsTable(name,ascii);
if ( yes ) {
G4cout << "Physics table prim is stored for "
<< particle->GetParticleName()
<< " and process " << GetProcessName()
<< " in the directory <" << directory
<< "> " << G4endl;
if(0 < verboseLevel) {
G4cout << "Physics table prim is stored for "
<< particle->GetParticleName()
<< " and process " << GetProcessName()
<< " in the directory <" << directory
<< "> " << G4endl;
}
} else {
G4cout << "Fail to store Physics Table Prim for "
<< particle->GetParticleName()
@@ -1738,21 +1738,6 @@ G4bool G4VEnergyLossProcess::StorePhysicsTable(
if(!StoreTable(part,theSubLambdaTable,ascii,directory,"SubLambda"))
{res = false;}
if ( !res ) {
if(1 < verboseLevel) {
G4cout << "Physics tables are stored for "
<< particle->GetParticleName()
<< " and process " << GetProcessName()
<< " in the directory <" << directory
<< "> " << G4endl;
}
} else {
G4cout << "Fail to store Physics Tables for "
<< particle->GetParticleName()
<< " and process " << GetProcessName()
<< " in the directory <" << directory
<< "> " << G4endl;
}
return res;
}
@@ -1765,7 +1750,7 @@ G4VEnergyLossProcess::RetrievePhysicsTable(const G4ParticleDefinition* part,
{
G4bool res = true;
if (!isMaster) return res;
const G4String particleName = part->GetParticleName();
const G4String& particleName = part->GetParticleName();
if(1 < verboseLevel) {
G4cout << "G4VEnergyLossProcess::RetrievePhysicsTable() for "
@@ -1830,14 +1815,15 @@ G4bool G4VEnergyLossProcess::StoreTable(const G4ParticleDefinition* part,
const G4String& directory,
const G4String& tname)
{
//G4cout << "G4VEnergyLossProcess::StoreTable: " << aTable
// << " " << directory << " " << tname << G4endl;
G4bool res = true;
if ( aTable ) {
const G4String name = GetPhysicsTableFileName(part,directory,tname,ascii);
G4cout << name << G4endl;
//G4cout << *aTable << G4endl;
if( !aTable->StorePhysicsTable(name,ascii)) res = false;
const G4String& name = GetPhysicsTableFileName(part, directory, tname, ascii);
if ( aTable->StorePhysicsTable(name,ascii) ) {
if (0 < verboseLevel) G4cout << "Stored: " << name << G4endl;
} else {
res = false;
G4cout << "Fail to store: " << name << G4endl;
}
}
return res;
}