Import Geant4 11.2.1 source tree

This commit is contained in:
Gabriele Cosmo
2024-02-16 14:58:45 +01:00
parent 860a2b92bf
commit dda54bbdcf
331 changed files with 48457 additions and 50699 deletions
@@ -6,6 +6,10 @@ It must **not** be used as a substitute for writing good git commit messages!
-------------------------------------------------------------------------------
## 2023-12-09 Vladimir Ivanchenko (hadr-cross-V11-01-17)
- G4KokoulinMuonNuclearXS - use faster interface to G4PhysicsVector
- G4ElectroNuclearCrossSection - added low-energy limit 100 MeV for x-section
## 2023-11-18 I. Hrivnacova (hadr-cross-V11-01-16)
- G4PhotoNuclearCrossSection - fix memory leaks
@@ -61,6 +61,7 @@ G4_DECLARE_XS_FACTORY(G4ElectroNuclearCrossSection);
// removing all the static consts and putting them here
// Parametrization of the PhotoNucCS
static const G4double sLowEnergyLimit = 100.; // Low-energy limit for the process in MeV
static const G4double shd=1.0734; // HE PomShadowing(D)
static const G4double poc=0.0375; // HE Pomeron coefficient
static const G4double pos=16.5; // HE Pomeron shift
@@ -2254,17 +2255,16 @@ G4ElectroNuclearCrossSection::CrossSectionDescription(std::ostream& outFile) con
<< "all energies.\n";
}
G4bool G4ElectroNuclearCrossSection::IsElementApplicable(const G4DynamicParticle* /*aParticle*/, G4int Z, const G4Material*)
G4bool G4ElectroNuclearCrossSection::IsElementApplicable(const G4DynamicParticle*, G4int, const G4Material*)
{
return (Z>0 && Z<120);
return true;
}
G4double G4ElectroNuclearCrossSection::GetElementCrossSection(const G4DynamicParticle* aPart, G4int ZZ, const G4Material*)
{
const G4double Energy = aPart->GetKineticEnergy()/MeV; // Energy of the electron
const G4double Energy = aPart->GetKineticEnergy(); // Energy of the electron
if (Energy<=EMi) return 0.; // Energy is below the minimum energy in the table
if (Energy <= sLowEnergyLimit || ZZ >= 120) return 0.; // Energy is below the minimum energy of the process
if(ZZ!=lastZ) // This nucleus was not the last used element
{
@@ -219,11 +219,11 @@ ComputeDDMicroscopicCrossSection(G4double KineticEnergy, G4double,
G4double G4KokoulinMuonNuclearXS::
GetElementCrossSection(const G4DynamicParticle* aPart,
G4int Z, const G4Material*)
G4int ZZ, const G4Material*)
{
//AR-24Apr2018 Switch to treat transuranic elements as uranium
const G4bool isHeavyElementAllowed = true; if ( isHeavyElementAllowed && Z>92 ) Z=92;
return theCrossSection[Z]->Value(aPart->GetKineticEnergy());
G4int Z = std::min(ZZ, 92);
return theCrossSection[Z]->LogVectorValue(aPart->GetKineticEnergy(),
aPart->GetLogKineticEnergy());
}