Import Geant4 10.4.0 source tree

This commit is contained in:
Gabriele Cosmo
2017-12-08 12:52:30 +01:00
parent 98e455a940
commit fc6af9e721
2166 changed files with 276760 additions and 100873 deletions
@@ -58,7 +58,6 @@
#include "G4Region.hh"
#include "G4ApplicationState.hh"
#include "G4StateManager.hh"
#include "G4Threading.hh"
G4EmParameters* G4EmParameters::theInstance = nullptr;
@@ -70,9 +69,17 @@ G4EmParameters* G4EmParameters::theInstance = nullptr;
G4EmParameters* G4EmParameters::Instance()
{
if(nullptr == theInstance) {
static G4EmParameters manager;
theInstance = &manager;
if(nullptr == theInstance) {
#ifdef G4MULTITHREADED
G4MUTEXLOCK(&emParametersMutex);
if(nullptr == theInstance) {
#endif
static G4EmParameters manager;
theInstance = &manager;
#ifdef G4MULTITHREADED
}
G4MUTEXUNLOCK(&G4EmParameters::emParametersMutex);
#endif
}
return theInstance;
}
@@ -117,12 +124,17 @@ void G4EmParameters::Initialise()
pixe = false;
deexIgnoreCut = false;
lateralDisplacement = true;
lateralDisplacementAlg96 = true;
muhadLateralDisplacement = false;
latDisplacementBeyondSafety = false;
useAngGeneratorForIonisation = false;
useMottCorrection = false;
integral = true;
birks = false;
dnaFast = false;
dnaStationary = false;
dnaMsc = false;
gammaShark = false;
minSubRange = 1.0;
minKinEnergy = 0.1*CLHEP::keV;
@@ -130,6 +142,7 @@ void G4EmParameters::Initialise()
maxKinEnergyCSDA = 1.0*CLHEP::GeV;
lowestElectronEnergy = 1.0*CLHEP::keV;
lowestMuHadEnergy = 1.0*CLHEP::keV;
lowestTripletEnergy = 1.0*CLHEP::MeV;
linLossLimit = 0.01;
bremsTh = maxKinEnergy;
lambdaFactor = 0.8;
@@ -304,6 +317,17 @@ G4bool G4EmParameters::LateralDisplacement() const
return lateralDisplacement;
}
void G4EmParameters::SetLateralDisplacementAlg96(G4bool val)
{
if(IsLocked()) { return; }
lateralDisplacementAlg96 = val;
}
G4bool G4EmParameters::LateralDisplacementAlg96() const
{
return lateralDisplacementAlg96;
}
void G4EmParameters::SetMuHadLateralDisplacement(G4bool val)
{
if(IsLocked()) { return; }
@@ -379,6 +403,50 @@ G4bool G4EmParameters::BirksActive() const
return birks;
}
void G4EmParameters::SetDNAFast(G4bool val)
{
if(IsLocked()) { return; }
dnaFast = val;
}
G4bool G4EmParameters::DNAFast() const
{
return dnaFast;
}
void G4EmParameters::SetDNAStationary(G4bool val)
{
if(IsLocked()) { return; }
dnaStationary = val;
}
G4bool G4EmParameters::DNAStationary() const
{
return dnaStationary;
}
void G4EmParameters::SetDNAElectronMsc(G4bool val)
{
if(IsLocked()) { return; }
dnaMsc = val;
}
G4bool G4EmParameters::DNAElectronMsc() const
{
return dnaMsc;
}
void G4EmParameters::SetGammaSharkActive(G4bool val)
{
if(IsLocked()) { return; }
gammaShark = val;
}
G4bool G4EmParameters::GammaSharkActive() const
{
return gammaShark;
}
void G4EmParameters::SetEmSaturation(G4EmSaturation* ptr)
{
if(emSaturation != ptr) {
@@ -504,6 +572,17 @@ G4double G4EmParameters::LowestMuHadEnergy() const
return lowestMuHadEnergy;
}
void G4EmParameters::SetLowestTripletEnergy(G4double val)
{
if(IsLocked()) { return; }
if(val > 0.0) { lowestTripletEnergy = val; }
}
G4double G4EmParameters::LowestTripletEnergy() const
{
return lowestTripletEnergy;
}
void G4EmParameters::SetLinearLossLimit(G4double val)
{
if(IsLocked()) { return; }
@@ -1188,19 +1267,20 @@ std::ostream& G4EmParameters::StreamInfo(std::ostream& os) const
os << "Auger cascade enabled " <<augerCascade << "\n";
os << "PIXE atomic de-excitation enabled " <<pixe << "\n";
os << "De-excitation module ignores cuts " <<deexIgnoreCut << "\n";
os << "Msc lateraral displacement for e+- enabled " <<lateralDisplacement << "\n";
os << "Msc lateraral displacement for muons and hadrons " <<muhadLateralDisplacement << "\n";
os << "Msc lateraral displacement beyond geometry safety " <<latDisplacementBeyondSafety << "\n";
os << "Msc lateral displacement for e+- enabled " <<lateralDisplacement << "\n";
os << "Msc lateral displacement for muons and hadrons " <<muhadLateralDisplacement << "\n";
os << "Msc lateral displacement alg96 for e+- " <<lateralDisplacementAlg96 << "\n";
os << "Msc lateral displacement beyond geometry safety " <<latDisplacementBeyondSafety << "\n";
os << "Enable angular generator interface "
<<useAngGeneratorForIonisation << "\n";
os << "Use Mott correction for e- scattering "
<<useMottCorrection << "\n";
os << "Use integral approach for tracking "
<<integral << "\n";
os << "Use built-in Birks satuaration "
<< birks << "\n";
os << "Use Mott correction for e- scattering " << useMottCorrection << "\n";
os << "Use integral approach for tracking " << integral << "\n";
os << "Use built-in Birks satuaration " << birks << "\n";
os << "Use fast sampling in DNA models " << dnaFast << "\n";
os << "Use Stationary option in DNA models " << dnaStationary << "\n";
os << "Use DNA with multiple scattering of e- " << dnaMsc << "\n";
os << "Factor of cut reduction for sub-cutoff method " <<minSubRange << "\n";
os << "Factor of cut reduction for sub-cutoff method " << minSubRange << "\n";
os << "Min kinetic energy for tables "
<<G4BestUnit(minKinEnergy,"Energy") << "\n";
os << "Max kinetic energy for tables "
@@ -1211,6 +1291,8 @@ std::ostream& G4EmParameters::StreamInfo(std::ostream& os) const
<<G4BestUnit(lowestElectronEnergy,"Energy") << "\n";
os << "Lowest muon/hadron kinetic energy "
<<G4BestUnit(lowestMuHadEnergy,"Energy") << "\n";
os << "Lowest triplet kinetic energy "
<<G4BestUnit(lowestTripletEnergy,"Energy") << "\n";
os << "Linear loss limit " <<linLossLimit << "\n";
os << "Bremsstrahlung energy threshold above which \n"
<< " primary is added to the list of secondary "
@@ -1261,7 +1343,7 @@ G4bool G4EmParameters::IsLocked() const
{
return (!G4Threading::IsMasterThread() ||
(fStateManager->GetCurrentState() != G4State_PreInit &&
fStateManager->GetCurrentState() != G4State_Init &&
fStateManager->GetCurrentState() != G4State_Init &&
fStateManager->GetCurrentState() != G4State_Idle));
}