KNOWN BUGS
Regarding thermal neutron scattering, fixed only in Geant4.10.7.p01
Note: Problem was that a parameter was missed out when altering the method for this code. We can retrofit a patch for this without needing Geant4.10.7.p01. As of writing this the patch has not yet been applied.
Logs
The default integration method for propagation in magnetic fields is changed , to select between the new interpolation-capable integration scheme, for shorter steps, and a helix-based scheme which is chosen for steps larger than 2*pi times the curvature radius at the initial location.
Removed tracking cut in hadron-elastic and use numerically safer computation for very low-energy projectile.
Changed transition region between hadronic string and intra-nuclear cascade models: now it is [3, 6] GeV consistently for all particle types (nucleons, pions, kaons, hyperons, ions and gammas; for anti-baryons, instead, FTFP is still used for all energies). Note: this does not affect the physics lists FTFP_BERT_ATL, NuBeam, ShieldingM, and those based on INCLXX. Moreover, for the QGS-based physics lists, the transition between FTFP and QGSP remains unchanged in the region [12, 25] GeV.
Added (consistently) RadioactiveDecay to all physics lists which use NeutronHP . Note: this affects the physics lists FTFP_BERT_HP , QGSP_BERT_HP , FTFP_INCLXX_HP and QGSP_INCLXX_HP , whereas Shielding , LBE , QGSP_BIC_HP and QGSP_BIC_AllHP had it already .
A new stopping physics constructor ( G4StoppingPhysicsFritiofWithBinaryCascade ) has been introduced, which uses Fritiof ( FTF ) coupled with Binary cascade ( BIC ) for the anti-baryon annihilation at rest. It is used only in the physics lists FTF_BIC and QGS_BIC.
Removed use of add_definitions of CMAKE_CXX_FLAGS to set these flags in Geant4 and client scripts.
Low Energy
G4LivermorePhotoElectricModel: use std::getenv; slightly speed-up.
G4IonParametrisedLossModel: use std::getenv; allowed ICRU90 option.
Use std::getenv() for thread safety
In most models, make use of the new target atom selector that can reuse the already known log-energy value.
G4UrbanMscModel: optimised step limitation for 'UseSafetyPlus' and 'UseDistanceToBoundary'. Minor clean-up of step limit method. Modified lateral displacement sampling.
G4eCoulombScatteringModel, G4WentzelOKandVIxSection: cleanup debug cout and initialisation.
G4eSingleCoulombScatteringModel: optimized code and data structure; fixed floating point exception for low energy; use C++11 patterns.
G4PairProductionRelModel, G4GammaConversion: the high energy model for e-/e+ pair production has been extended down to threshold (2mc^2) such that it gives results (both cross-section and final state) identical to those produced by the low energy (G4BetheHeitlerModel). Since this new version of the high energy model can describe e-/e+ pair production from threshold up to PeV (LPM effects are included) the G4BetheHeitlerModel is now removed from the G4GammaConversion process.
Common reference to "propagating the already known log-energy value."
CLHEP:
MixMaxRng : throw if seed is zero. Use throw instead of exit() elsewhere.
STD_11 call: Added G4GlobalConfig.hh generated header to hold global, always required, pre-processor symbols instead of relying on -D flags for: G4USE_STD11 G4MULTITHREADED G4_STORE_TRAJECTORY , G4VERBOSE and GEANT4_USE_TIMEMORY.
Some verbosities set to 0 (may change expected logs)
G4HadronElasticProcess:
Removed tracking cut for all particles (charged particles may be stopped by the tracking cut of ionisation process; neutrons should be stopped by G4NeutronKiller).
Added protection for zero energy of the projectile particle.
Removed final-state rotation.
Removed default GHEISHA cross-sections.
Clean up the sampling of the final state; improved description and comments; added C++11 keywords; removed unused local members.
G4ParticleHPChannelList : fixed bug in the momentum change (it has to be a normalized 3-vector, but it was not) in the case where NeutronHP could not find a proper reaction channel.
G4ParticleHPChannel, G4ParticleHPNames : allowed using of an incomplete data library name if the environment variable G4NEUTRONHP_SKIP_MISSING_ISOTOPES is set. The missing cross-sections are then set to 0.
Fixes for crashes detected only when using QGSP_BIC_AllHP physics-list:
In method Sample() of G4ParticleHPContAngularPar , set protection against unphysical interpolation result;
In G4ParticleHPKallbachMannSyst , added in A() the possibility of tritium and He3 projectiles, taking in this case (arbitrarily) an intermediate value between the two already considered cases, proton-neutron-deuteron and alpha.
G4EmLivermorePhysics , G4EmPenelopePhysics , G4EmStandardPhysics_option4 , G4EmStandardPhysics_option3 : define upper energy limit for nuclear stopping via EM parameters.
G4EmStandardPhysics_option4 : use 5D model for gamma conversion
G4$\textcolor{blue}{\text{Hadron}}$DElasticPhysics : use Glauber-Gribov cross-section for hyperons, d, t, He3, and He4.
FTF_BIC , QGS_BIC : use the newly introduced stopping physics constructor G4StoppingPhysicsFritiofWithBinaryCascade (instead of the default G4StoppingPhysics ).