Geant4 10.5 Release Notes
The code and binary libraries for the supported systems are available
through our Source
Code Web page.
We are grateful for the efforts of Geant4 users who have provided
   detailed feedback or comprehensive reports of issues.
   We thank in particular those who have contributed corrections,
   improvements or developments included in this release. 
Please refer to the
Geant4
User Documentation for further information about using Geant4.
Contents
- Supported and Tested Platforms
 
- Supported CLHEP version
 
- Items for migration of the user code
 
- New Developments and Capabilities
 
- Expected effects on physics and performance
 
- Known Run-Time Problems and Limitations
 
- Compilation Warnings
 
- Geant4 Software License
 
- Detailed list of changes and fixes
 
 
1. Supported and Tested Platforms
Platforms:
- Linux, gcc-4.8.5.
    Tested on 64 bit architectures (Intel or AMD) with
    CERN CentOS Linux 7 (CC7) (based on CentOS Linux 7). 
- MacOSX 10.14 Mojave with llvm/clang-6.0.1 (Apple LLVM/Clang-10.0.0)
 
- Windows-10 with Visual C++ 14.11 (Visual Studio 2017)
 
More verified and tested configurations (64 bits):
- Linux, gcc-4.9.3/5.4.0/6.3.0/7.3.0/8.2.0, clang-3.9/5.0
 
- Linux, Intel-icc 19.0
 
- MacOSX 10.11, 12, 13 with clang-3.8/4.0/5.0
 
- Windows-10 with Visual C++ 14.0 (Visual Studio 2015)
 
 
2. Supported CLHEP version
This release of Geant4 requires and has been verified with
CLHEP, release 2.4.1.0.
Use of a different CLHEP version may cause incorrect simulation results.
NOTE: an internal module of the relevant CLHEP classes is provided and can be
used as alternative to an external CLHEP library installation.
 
3. Items for migration of the user code
Listed here is some relevant information on developments included in this
release.
Note that for all users a full re-installation of libraries (or a full
re-compilation) and a re-compilation of user applications is required.
 
General
 
- Minimum required version of CMake to build Geant4 is 3.3.
 
- Due to the migration from POSIX threading to C++11 threading, enabling
    multi-threading on Windows for use with either static or dynamic
    libraries, the following migration is required:
    
    - Any usage of G4THREADCREATE should pass a reference to an
        allocated G4Thread pointer.
 
        
        - G4THREADCREATE (previously a macro) is
            now a variadic template function that accepts an unlimited
            number of arguments to the function launched on the thread.
 
        - G4Thread t; G4THREADCREATE(&t, myfunction, myarg);
            is no longer valid
 
        - G4Thread* t = new G4Thread();
            G4THREADCREATE(t, myfunction, myarg); is required
 
        
    - G4MUTEX_INITIALIZER, G4MUTEXINIT, and
        G4MUTEXDESTROY are now empty macros and their usage is
        unnecessary and thus deprecated.
 
    
 
 
Geometry
 
- The behaviour of G4Transportation and G4CoupledTransportation
    concerning the treatment of looping particles has been reviewed:
    
    - From this release on, only stable particles are killed if they
        'loop', i.e.  take more than the maximum (default 1000) integration
        steps in one physics step; unstable particles are now propagated
        indefinitely.
 
    - Warning exceptions with full details of the particle, location and
        volume are now generated for stable looping particles which are killed
        (as before, this only happens if their energy exceeds a threshold
        'warning' energy).
        In previous releases a short message with only energy and location
        was generated, and only for installations which did not use
        G4_NO_VERBOSE. Typically these warnings occur predominantly in vacuum
        or other low density media.
 
    
 
- As before the killing of loopers and potential warnings are controlled by
    two energy thresholds and a step number parameter. Default settings imply:
    
    - 100 MeV (warning energy): below this, tracks are killed
        silently.
 
    - 250 MeV (important energy): above this, tracks are given
        multiple chances (10 physics steps).
 
    
    These settings are fully under user control. The new methods in
    G4PhysicsListHelper allow the user to select a set of low (or the above
    high) values of the 'looper' energy thresholds.
    Existing methods of G4[Coupled]Transportation can be used for fine-grained
    control of the parameter values.
    Additional information regarding how to reduce the incidence of looping
    particles is provided in an expanded section on Transportation in the
    Users Guide for Applications Developers. 
- G4MagneticField has been corrected to no longer inherit from
    G4ElectroMagneticField;  this anomaly used to allow a user to provide a
    'full' EM field (mixed electric and magnetic), but obtain the force only
    from the B-field when using the equation created in the G4ChordFinder
    constructor. With this correction it is no longer possible to use the
    equation of motion for a pure magnetic field for the case of a mixed
    electromagnetic field. Instead the full chain of classes for equation
    of full EM field, steppers and driver must be used for the case of the
    'full' EM field.
 
 
Electromagnetic and optical physics
 
- The new data set G4EMLOW-7.7 should be used.
 
 
Hadronic physics
 
- The new data sets G4PhotonEvaporation-5.3, G4INCL-1.0,
    G4RadioactiveDecay-5.3, G4SAIDDATA-2.0 and
    G4PARTICLEXS-1.1 should be used.
 
- Requiring new G4INCL-1.0 data set and corresponnding G4INCLDATA path
    environment variable when using INCLXX physics.
 
- The old G4NEUTRONXS data set is now replaced by G4PARTICLEXS-1.1,
    and the corresponding G4PARTICLEXSDATA environment variable should be
    now used.
 
 
Analysis
 
- The default mode for Root n-tuple merging (in multi-threaded runs) is
    changed to row-wise in order to preserve an "event point of view" (the
    n-tuple rows) after merging. The output files written with this mode use a
    different data schema (organisations of TBranches and TLeaves) than
    before and so require adapting the macros for reading back the data.
 
 
Data Sets
 
This release introduces new data set versions.
Please see the corresponding details in
Section 9 of this document.
- New data set versions: G4EMLOW-7.7, G4RadioactiveDecay-5.3,
    G4PhotonEvaporation-5.3, G4INCL-1.0, G4SAIDDATA-2.0,
    G4PARTICLEXS-1.1.
 
- In order to use ParticleHP for charged particles
    (protons, deuterons, tritons, He3 and alphas), an optional data
    set G4TENDL-1.3.2 is required, and should be downloaded in
    addition from the
    Geant4 web site.
 
4. New Developments and Capabilities 
General
- Replaced POSIX threading with C++11 threading, enabling multi-threading
    on Windows for use with either static or dynamic libraries.
 
    
    - G4THREADCREATE is now a variadic template function
        (unlimited arguments) instead of a macro
 
    - G4THREADCREATE can be used outside of MT. In sequential
        mode, G4THREADCREATE will execute the function on the
        calling thread.
    
 
- G4Mutex is now a typedef to std::mutex,
    even in sequential mode.
 - Added G4RecursiveMutex typedef to
    std::recursive_mutex.
 
- Provided generic template functions G4TypeMutex<T>() and
    G4TypeRecursiveMutex<T>() to create and access static
    instances of mutexes without the need for declarations.
 
    
    - When combined with G4AutoLock, this enables easy creation of
        class-specific locks, e.g.
        G4AutoLock lock(G4TypeMutex<decltype(this)>());
 
    
- G4AutoLock now inherits from std::unique_lock, even in
    sequential mode.
 
    
    - In sequential mode, G4AutoLock does not lock upon construction,
        i.e. std::defer_lock
 
    - Added overloads to accept reference to mutex, in addition to previous
        form of a pointer to a mutex.
 
    
Analysis
- Switched the default Root ntuple merge mode to row-wise in analysis
    tools and added new G4RootAnalysisManager::SetNtupleRowWise(G4bool)
    function which can be used to override the defaults. 
 
- Added "Boolean reset" argument in G4AnalysisManager::CloseFile()
    function, allowing to close a file without resetting data.
 
Digitization & Hits
- Added new class G4StatAnalysis, a lightweight statistics class that
    calculates the mean, FOM, relative error, standard deviation, variance
    and other quantities. Compatible with usage in G4THitsMap and (new)
    G4THitsVector -- replacing G4THitsMap<G4double> with
    G4THitsMap<G4StatAnalysis> and can provide a quick
    implementation of accumulating statistics for scoring.
 
- Added new class G4THitsVector, a generic hits container compatible with
    G4THitsMap, that enables the underlying storage container to utilize a
    sequential container instead of a map (saving memory); additionally, it
    allows the underlying container to store data as non-pointer types
    (saving more memory).
 
    
    - These containers are intended to be used at the G4Run level to
        accumulate data over the course of the run and it is not recommended
        for use at the event level -- a G4THitsMap is ideal at the event level
        due to the general sparsity of hits per index but at the run level,
        G4THitsVector becomes ideal with respect to memory usage as
        approximately 40% of the total available indices accumulate non-zero
        hits.
 
    - See DICOM2 and ThreadsafeScorers for usage examples,
        including demonstrations of G4THitsVector + non-pointer data storage
        and the new style of generic iteration over the hits container classes
        that is valid for both G4THitsMap and G4THitsVector (the previous form
        of iteration over G4THitsMap is still valid, and will remain valid,
        for G4THitsMap types).
 
    
- Introduced a new interface class, G4VScoreNtupleWriter, which allows
    automated storing of scorers hits with Geant4 analysis tools. Concrete
    implementations (G4ScoreNtupleWriter with associated messenger) are
    demonstrated in new provided extended/analysis examples.
 
Geometry
- A configuration option allows an installation to use the
    VecGeom Unified Solids
    Library primitives, to replace the original Geant4 solids, as in the
    previous release. The path to an external installation of the VecGeom
    library (VecGeom version v01.01.00) should be specified.
    See the associated instructions file for configuration and installation.
 
- Enabled VecGeom wrappers for G4ExtrudedSolid, G4TessellatedSolid, G4Hype
    and G4Tet.
 
- Reimplemented EstimateSurfaceArea() for approximate calculation
    of the surface area of a solid with new algorithm providing more
    accurate estimation without performance penalty.
 
- Introduced Bulirsch-Stoer method of integration, an alternative to
    Runge-Kutta based on the mid-point method.
 
- New G4InterpolationDriver field driver class using Runge-Kutta method
    with interpolation property to integrate EoM with error control.
 
- Updated field steppers to make use of cached field vales.
 
- Improved reporting of looping particle, adding info on density,
    fraction (%) of proposed step that was completed and momentum.
 
Electromagnetic physics
- Use new parameter MscEnergyLimit() (default is 100 MeV)
    in EM physics constructors, allowing to customise transition from
    low-energy multiple scattering to high energy combination of multiple
    and single scattering.
 
- Alg96 lateral displacement algorithm used in G4UrbanMscModel in all
    EM physics.
 
- Default angular generator for bremsstrahlung is G4ModifiedTsai.
 
- Revisions of G4BetheHeitlerModel and G4PairProductionRelModel with
    improved screening function approximation, improved LPM function
    approximation, angular generation and efficiency of sampling
    of the final state.
 
- New gamma conversion model G4BetheHeitler5DModel.
 
- Added optional possibility to use ICRU90 data.
 
- New optional ion ionisation models G4LindhardSorensenIonModel,
    G4AtimaEnergyLossModel, G4AtimaFluctuations.
 
- Added new classes for the simulation of elastic scattering of gammas.
 
Hadronic physics
- For both Fritiof (FTF) and Quark-Gluon-String (QGS) string models,
    we have released the latest versions, which have been developed since
    the release 10.2 but have not been included in the two previous releases,
    10.3 and 10.4, to keep stable the simulation of hadronic showers
    (note that snapshots of these developments have been made available
    in previous beta releases: 10.3.beta, 10.4.beta and 10.5.beta).
 
- New tuning of the FTF model parameters, for both string formation
    and string fragmentation. Introduced smearing of delta-isobar mass and
    improved di-quark fragmentation into baryons in Lund string fragmentation.
    First implementation of rotating strings in FTF, at the level of string
    fragmentation, with introduction of Mt distribution of hadrons.
    Improved process probability parameterizations for Pi-Nucleon interactions;
    corrected calculation of nuclear residual excitation energy.
 
- Major revision of the QGS final-state model: implemented Reggeon cascading
    and "Fermi motion"; new algorithm for the determination of the kinematical
    properties of partons; improved formation of the residual nucleus. 
    Improved cross-sections of K-meson - nucleon interactions in QGS: Pomeron
    and two non-vacuum exchanges are taken into account.
    Gamma-nucleon cross sections are also improved by tuning of parameters.
    Improved string fragmentation (G4QGSMFragmentation): new algorithm for
    last string decay a-la Lund is implemented; refined the algorithm to stop
    the fragmentation.
    Tuning the parameters related to both string formation and string
    fragmentation to improve the description of thin-target data.
 
- For both string models (FTF and QGS): first implementation of alpha
    cluster structure of carbon nuclei (affecting only hadron-Carbon
    interactions), according to P.Bozek et al., Phys.Rev.C90, 064902 (2014).
 
- For Bertini Cascade, extended strange pair production channels, and
    improved pion-quasideuteron reactions.
 
- Extended upper limit of applicability (from 1 to 100 TeV) for the
    diffuse-elastic processes.
 
- New class for diffuse-elastic process, where the underlying physics model
    code has been revised and significantly improved in performance.
 
- Introduced switch in cross-sections to allow transuranic elements.
 
- Coherent use of the same parameterisation of level density and pairing
    correction between all models in hadronic de-excitation.
 
Physics Lists
- In all hadronic builders fixed use of data for neutron capture in HP
    physics-lists.
 
- Major revision of all ion builders.
 
- New tuning of parameters for several EM constructors.
 
- The physics lists QGSP_BIC_HP and QGSP_BIC_AllHP use EM Opt4
    (instead of EM Opt0 as before).
 
- For FTF/QGS/INCLXX physics-lists builders, use Barashenkov-Glauber-Gribov
    inelastic cross-section for pions, avoiding to use Gheisha cross-sections
    for pion inelastic on Hydrogen target.
 
Run
- Added track/step/volume information in G4ExceptionHandler when an
    exception happens while event is being processed.
 
Visualization and Interfaces
- Implemented simple algorithm in visualization to allow colouring of
    detector elements based on materials density.
 
- RayTracer now visualizes layered-mass-geometry volumes defined in
    parallel worlds.
 
- G4UIcommand: additional implementation for adding
  a mechanism of carrying back error message from the messenger
  if a command is rejected due to the target class or the messenger.
 
Examples
- B3aScoreWrgiter and B4dScoreWriter: new examples (in
    extended/analysis) demonstrating saving of scorers hits in form of
    n-tuples in a Root file using Geant4 analysis tools. 
 
- DICOM2: new example (in extended/medical) demonstrating how
    to specialise and extend functionalities from DICOM example.
 
- chem5: new example (in extended/medical/dna), variation of
    chem4, showing how to activate chemistry code and score the
    radiochemical yield G, using preliminary G4EmDNAPhysics_option8
    and G4EmDNAChemistry_option1 constructors.
 
- splitting: new example (in extended/medical/dna) demonstrating
    acceleration of Geant4-DNA physics simulations by particle splitting.
 
- OpNovice2: new example (in extended/optical) for investigation
    of optical properties and parameters. Details of optical photon boundary
    interactions on a surface are recorded, as well as the details of
    optical photon generation and transport.
 
- exMPI04: new example in extended/parallel/MPI demonstrating
    merging n-tuples via MPI. The  G4mpi  classes were adapted to
    allow to define (an) extra worker(s) for collecting data
    from processing workers (needed for merging n-tuples).
     
- field01: Added code to demonstrate use of G4PhysicsListHelper's 
    Use[Low|High]LooperThresholds() methods and code to demonstrate 
    fine grained control of G4[Coupled]Transportation parameters for (killing)
    looping tracks (tracks which take too many iterations to finish integration;
    typically due to electrons in vacuum, but also can affect other charged
    particles).
 
5. Expected effects on physics and computing performance
Electromagnetic physics
- Extended G4SeltzerBergerModel model with optional sampling tables for
    faster run time sampling of the emitted photon energy. Measuring 40-60%
    model speedup.
 
Hadronic physics
- Both hadronic string models (FTF and QGS) describe generally better the
    thin-target data with respect to the previous versions. 
    Moreover, the QGS model becomes competitive with the FTF model, for
    most thin-target observables for projectile kinetic energies above
    about 20 GeV.
 
- For the simulation of hadronic showers, both hadronic string models
    give higher energy response with respect to the previous versions,
    and consistently higher when compared with test-beam and collider data.
    We believe at least part of this is due to an underestimate with the Birks
    quenching factor which must be applied to the simulation in order to
    compare to measured data. The Birks coefficient is a phenomenological
    function of energy loss and not of energy deposit. It therefore neglects
    the effect of discrete delta ray production performed in Geant4.
    We therefore suggest re-fitting from data the Birks coefficient to the
    h/e ratio: energy response of a hadron (charged pion or proton) at a
    given energy with respect to the energy response of an electron of the
    same energy.
 
 
6. Known Run-Time Problems and Limitations
For a complete list of outstanding run-time problems and to submit any
problem you may find while running this version of Geant4, please refer
to the
Geant4 Problem
Reporting System.
 
7. Compilation Warnings
There may be a few compilation warnings on some platforms.
We do not believe that any of these lead to incorrect run-time behaviour.
 
8. Geant4 Software License
A Software License applies to the Geant4 code.
Users must accept this license in order to use it. The details and the list of
copyright holders is available at
http://cern.ch/geant4/license
and also in the text file LICENSE distributed with the source code.
 
9. Detailed list of changes and fixes
These are the main new features/fixes included in this release since the
last patched public release (for more detailed lists of fixes/additions,
please refer to the corresponding History files provided in most packages):
 
Configuration
- CMake
    
    - Added c++17 to C++ standards against which Geant4 can be compiled.
        Requires a minimum CMake version of 3.8 to enable.
 
    - Added "auto" dummy Thread Local Storage model; when "auto" is used,
        no explicit compiler flag is being set to select the TLS model;
        selection is left to compiler default.
 
    - Added configuration for optional profiling package TiMemory.
 
    - Skip validation checking for external zlib sources.
 
    - Added TESSELLATEDSOLID flag to enable optional wrapping of
        G4TessellatedSolid with VecGeom implementation.
 
    - Added configuration support for MT on Windows; removed restrictions
        and warnings on enabling MT on Windows.
 
    - Support use of WINDOWS_EXPORT_ALL_SYMBOLS for DLL builds with
        cmake >=3.4 retaining old capability for CMake 3.3.
 
    - Updated FindInventor.cmake to properly setup SoQt if existing.
 
    - Geant4InterfaceOptions.cmake: added check for existance of SoQt package.
 
    - Geant4MakeRules_cxx.cmake: added -DGL_SILENCE_DEPRECATION to
        CMAKE_CXX_FLAGS_INIT for clang to silence GL deprecation compilation
        warnings on MacOS 10.14 Mojave.
 
    - Corrected URLs for data installation to use https; added -L flag to
        curl to follow redirects when accessing a dataset URL.
 
    - Removed entry for G4NEUTRONXS data set, no longer necessary.
 
    - Updated data-sets versions.
 
    
 
- GNUMake
    
    - In geomconf.gmk, added G4GEOM_USE_UTESSELLATEDSOLID flag to enable
        VecGeom wrapper for G4TessellatedSolid.
 
    - Fixed setting of G4RUNPATHOPTION in Darwin/Linux-clang/g++ and
        binmake.cmk. Addressing problem report
        #2086.
 
    - Cleanup settings for GL in Darwin-clang.gmk and Darwin-g++.gmk.
        Added -DGL_SILENCE_DEPRECATION to CPPFLAGS to silence GL deprecation
        compilation warnings on MacOS 10.14 Mojave.
 
    
 
Analysis
- Ntuples
    
    - Switched the default Root n-tuple merge mode to row-wise.
 
    - Added function SetNtupleRowWise(G4bool) to G4RootAnalysisManager, allowing
        to choose row-wise/column-wise mode also in sequential mode.
 
    - Updated G4TNtupleManager::FinishTNtuple() to support creating n-tuples
        both before and after OpenFile().
 
    - Added friend class declarations to allow an implementation of MPI
        n-tuple merging.
 
    - Allow overriding of selected functions in G4RootAnalysisManager,
        G4RootNtupleManager and G4TNtupleManager, needed MPI ntuple merging.
 
    
 
    - Output files
    
    - Added "Boolean reset" argument in G4AnalysisManager::CloseFile()
        function, allowing to close a file without resetting data.
 
    
 
    - Fixes
    
    - Fixed compilation warnings on gcc-8.1.0.
 
    - Fixed a deadlock issue with G4RootPNtupleManager where the mutex
        was locked before being passed to Root.
 
    - Modified management of plotting: G4PlotManager is now instantiated
        with G4AnalysisManager what makes possible to remove static
        G4PlotParameters. Addressing problem report
        #2083.
 
    - Use the same mutex for add_row and end_fill. This should fix
        occasional failures of tests in MT mode.
 
    
 
    - g4tools
    
    - Updated the g4tools version to g4tools-4.2.3.
        See History_tools for the complete list of modifications.
 
    
 
Digitization & Hits
- Introduced a new interface class, G4VScoreNtupleWriter which allows
    implementing in the user code automated storing of hits collections of
    G4THitsMap (used by primitive scorers) with Geant4 analysis tools;
    concrete implementations (G4ScoreNtupleWriter with associated messenger)
    are demonstrated in new provided extended/analysis examples.
 
- Updated G4THitsMap: generic GetContainer(), size(), GetIndex(...),
    GetObject(...), begin(), end(), cbegin() and cend().
 
- Added G4THitsVector class, a generic container compatible with G4THitsMap
    such that vectors can be used to score over the course of a run (saving
    memory); it allows the underlying container to store data as non-pointer
    types.
 
- Updated use of thread-local static variables to function returning
    a thread-local static reference. New model for allowing support of
    multi-threading on Windows DLLs.
 
Electromagnetic Processes
- Requires data-set G4EMLOW-7.7.
 
- DNA:
    
    - Updated G4DNAOneStepThermalizationModel and other classes for
        chemistry.
 
    - Updated use of thread-local static variables to function returning
        a thread-local static reference. New model for allowing support of
        multi-threading on Windows DLLs.
 
    - Included upper energy limit of models.
 
    - Updated Si mass in G4DNAGenericIonsManager.
 
    - Added protection in Auger emission.
 
    - Fixed header guards in G4ITFinder and G4AllITFinder.
        Addressing problem report
        #2084.
 
    
 
- High Energy
    
    - G4AnnihiToMuPair: added Coulomb correction to cross-section at
        threshold.
 
    - Minor code cleanup in G4eeToHadronsMultiModel, G4eeToHadronsModel and
        G4mplIonisationWithDeltaModel.
 
    - G4eeToHadrons, G4eeToHadronsMultiModel, G4hBremsstrahlung,
        G4hPairProduction, G4hhIonisation, G4mplIonisation: automatic
        documentation format now rST.
 
    
 
- Low Energy
    
    - Added new classes for elastic scattering of gammas by M.Omer
        and R.Hajima.
 
    - Updated JAEA elastic model classes.
 
    - G4LivermoreBremsstrahlungModel: no functional changes. Some base class
        member names have been changed and these modifications propagated down
        to the derived class.
 
    - Fixed problem G4PenelopeIonisationModel responsible for rare energy
        non-conservation and run-time warning.
 
    - Fix in G4PenelopeComptonModel and G4PenelopePhotoElectricModel for rare
        energy non-conservation.
 
    - Fix for differential cross-section of photo-electrons in
        G4LivermorePolarizedPhotoElectricModel. Addressing problem report
        #2089.
 
    - G4RayleighScattering: changed automatic documentation format to rST.
 
    
 
- Muons
    
    - G4MuMultipleScattering, G4MuPairProduction, G4MuIonisation,
        G4ePairProduction, G4MuBremsstrahlungModel, G4MuBremsstrahlung,
        G4MuBetheBlochModel: use default destructor.
 
    - Added minor protection in G4MuPairProductionModel.
 
    - G4ePairProduction: fixed model name.
 
    - G4EnergyLossForExtrapolator: fixed MT initialisation and destruction.
 
    - G4MuMultipleScattering, G4MuPairProduction, G4eePairProduction,
        G4MuBremsstrahlung, G4MuIonisation: automatic documentation format
        now rST.
 
    
 
- Polarisation
    
    - G4PolarizedAnnihilationModel: implemented sampling of final state
        at-rest.
 
    - Code cleanup; removed unused headers and methods.
 
    
 
- Standard
    
    - G4GoudsmitSaundersonMscModel: implemented interface method for
        macroscopic first transport cross-section computation per volume
        (used only for testing).
 
    - G4GSMottCorrection, G4GSPWACorrections: fixed initialization of first
        moment correction factor.
 
    - G4GoudsmitSaundersonTable: fixed gcc-8.1.0 compilation warnings.
 
    - G4WentzelOKandVIxSection: fixed form-factor for proton.
        Added Mott corrections to e+-.
 
    - G4WentzelOKandVIxSection: fixed destructor.
 
    - G4ScreeningMottCrossSection: added extra method for more CPU effective
        computation of the Mott correction.
 
    - G4UrbanMscModel: correction in order to get better backscattering for
        low energy.
 
    - G4eSingleCoulombScatteringModel: fixed calculation of scattering angle.
        Addressing problem report
        #2090.
 
    - G4ScreeningMottCrossSection: use G4MottData and improved time consuming
        computations. Removed obsolete G4MottCoefficients class, replaced by
        static data class G4MottData.
 
    - G4ScreeningMottCrossSection, G4eSingleCoulombScatteringModel: added
        extra protections on argument of std::acos avoiding crash due to
        precision lost; code cleanup.
 
    - G4BetheBlochModel: use form-factor for projectile ion as in formulation
        of NIM A 488 (2002) 282.
 
    - G4ionIonisation: apply correction to energy loss only to BetheBloch
        ionisation model.
 
    - G4BraggModel, G4BraggIonModel, G4BetheBlochModel: added optional
        possibility to use ICRU90 data.
 
    - G4PSTARStopping: minor code cleanup.
 
    - G4LindhardSorensenIonModel, G4LindhardSorensenData: new ion ionisation
        model for moderate and high energies.
 
    - G4AtimaEnergyLossModel, G4AtimaFluctuations: new ion ionisation model.
 
    - G4BetheHeitler5DModel: new 5D model.
 
    - G4BetheHeitlerModel, G4PairProductionRelModel: new versions with
        improved screening function approximation, improved LPM function
        approximation, efficiency, documentation and cleanup.
        Corrected call to selecting target atom in final state sampling.
 
    - G4PairProductionRelModel, G4BetheHeitlerModel: use G4ModifiedTsai
        angular generator for the final state sampling.
 
    - G4PairProductionRelModel: fixed computation of cross-section in the
        new version of the high energy model.
 
    - G4DipBustGenerator, G4ModifiedTsai: implemented new interface for
        sampling of directions of e+e- pair.
 
    - G4eplusAnnihilation: moved sampling of final state from AtRestDoIt()
        method to SamplingSecondaries().
 
    - Code cleanup in G4eeToTwoGammaModel, G4BetheHeitlerModel and
        G4NISTStoppingData.
 
    - G4eplusAnnihilation: set weights for directional splitting.
 
    - G4eplusTo2GammaOKVIModel, G4eplusTo3GammaOKVIModel: make consistent
        definition of cross-section for 2-gamma and 3-gamma models; use cuts
        for gamma in sampling of 3-gamma final state.
 
    - Added new models, G4eplusTo2GammaOKVIModel and G4eplusTo3GammaOKVIModel.
 
    - G4eBremsstrahlungRelModel, G4PairProductionRelModel, G4PAIySection,
        G4PAIxSection, G4ICRU73QOModel: moved inline method which use static
        constants to source. Improved code formatting.
 
    - G4SeltzerBergerModel: extended model with optional sampling tables for
        fast run time sampling of the emitted photon energy from the
        Seltzer-Berger scaled DCS, instead of using the rejection.
        The sampling tables are hadled by the new G4SBBremTable class.
        Measuring 40-60% model speedup with some additional memory consumption.
 
    - G4eBremsstrahlungRelModel: improved LPM function approximation; code cleanup
        and optimization.
 
    - G4SeltzerBergerModel, G4eBremsstrahlungRelModel: use by default
        G4ModifiedTsai generator instead of G4DipBustGenerator.
 
    - G4DipBustGenerator: optimisation, speedup; using G4Pow::A13.
 
    - G4GammaConversion, G4eBremsstrahlung, G4hIonisation: use upper energy
        limit for low-energy model from physics-list instead of hard-coded
        values.
 
    - G4CoulombScattering, G4eBremsstrahlung, G4[e,h]MultipleScattering,
        G4eplusAnnihilation, G4[e,h,ion,alpha]Ionisation, G4ComptonScattering,
        G4NuclearStopping, G4PhotoElectricEffect: changed auto-generated
        documentation format to rST.
 
    
 
- Utils
    
    - G4EmCorrections, G4VEmModel, G4ionEffectiveCharge, G4VAtomDeexcitation:
        avoid use of static class members in inline methods; moved long methods
        to source; added thread safe definition of model index for atomic
        de-excitation.
 
    - G4EmCalculator: fixed GetCrossSectionPerVolume() method in case of
        multiple scattering process; the proper value of the first transport
        cross-section is retrieved now.
 
    - G4EmCalculator: fixed computation dEdx for ions.
 
    - G4EmParameters, G4EmParametersMessenger: added 5D gamma conversion
        model parameters; added MscEnergyLimit() and corresponding UI command;
        addressing problem report
        #2045;
        added extra DNA UI directory and command; improved dump of EM
        parameters.
 
    - G4EmParameters: added extra protection to avoid simulteneous definition
        of options which should not be enabled together.
 
    - G4EmParameters, G4EmParameterMessenger, G4LossTableManager:
        minor update of interfaces; added extra parameters.
 
    - G4EmParameters, G4EmParametersMessenger: added extra parameter and
        UI command to enable usage of ICRU90 data; fixed DNA parameters;
        added checks of EM physics type.
 
    - G4EmParameters: fixed typo in printout.
 
    - G4VEmAngularDistribution: added SamplePairDirections() method for
        sampling of e+e- pair production.
 
    - Added new enumerator G4DNAModelSubType.
 
    - G4LossTableManager: moved inline run time method to source.
 
    - Minor code cleanup in G4VMscModel and G4VEmModel.
 
    - G4EmDataHandler: added public interfaces.
 
    - G4VEmProcess: code cleanup in StorePhysicsTable(..) methods;
        introduced 'isTheMaster' flag.
 
    - G4EmElementSelector: code optimisation.
 
    - G4EmModelManager, G4VEmModel, G4VEmProcess, G4VEnergyLossProcess,
        G4VMultipleScattering: auto-generated documentation now in rST format.
 
    - G4EmBiasingManager, G4EmParameters, G4EmParametersMessenger,
        G4VEnergyLossProcess, G4VEmProcess: enable directional splitting
        and moved logic to G4EmBiasingManager.
 
    - Fixed Coverity defects.
 
    
 - Xrays
    
    - Updated use of thread-local static variables to function returning
        a thread-local static reference. New model for allowing support of
        multi-threading on Windows DLLs.
 
    - G4Cerenkov. added protection against infinite loops due to very small
        steps. Addressing problem report
        #1992.
 
    - G4Cerenkov, G4Scintillation: correctly reset number of photons to
        zero each step. Addressing problem report
        #2056.
 
    
 
Event
- Code cleanup in G4StackManager to remove branches for muonic atom
    settings.
 
- Updated use of thread-local static variables to function returning
    a thread-local static reference. New model for allowing support of
    multi-threading on Windows DLLs.
 
Externals
- CLHEP:
    
    - Updated to CLHEP version 2.4.1.0.
 
    - Enabled thread-local storage and atomics on Windows and clang,
        as now all supported by c++11.
 
    - Ranlux64Engine: fixed compilation warning on Windows for shift count
        negative or too big.
 
    - Fixed compilation warnings from gcc-8.1.0 when using
        -Woverloaded-virtual compilation option.
 
    
 
- Zlib:
    
    - Updated to Zlib version 1.2.11
 
    - Use original files format and adopt C Compiler for installation.
        Addressing compilation warnings on gcc-8.1.0.
 
    
 
General Processes
- Biasing
    
    - Updated use of thread-local static variables to function returning
        a thread-local static reference. New model for allowing support of
        multi-threading on Windows DLLs.
 
    
 
- Cuts
    
    - Code cleanup; use of nullptr and c++11.
 
    
 
- Management
    
    - Code cleanup; use of nullptr and c++11.
 
    
 
- Optical
    
    - G4OpMieHG: changed GetProperty() to use enum indeces instead of
        strings.
 
    
 
- Scoring
    
    - Updated use of thread-local static variables to function returning
        a thread-local static reference. New model for allowing support of
        multi-threading on Windows DLLs.
 
    - G4ParallelWorldProcess: fixed track velocity of optical photons for
        the first step in a layered mass geometry.
 
    
 
- Transportation
    
    - G4Transportation and G4CoupledTransportation: adjusted killing of
        looping particles, to apply only to stable particles. Unstable
        particles will be propagated indefinitely. At object destruction,
        added printing of the maximum energy and sum of energies of particles
        "saved". Added method SetHighLooperThresholds() to restore
        old default parameters for killing looping particles (warning energy
        to 100 MeV - tracks below this are killed silently; important energy
        to 250 MeV - above this, tracks are given multiple chances). Default
        constructors now use these high values.
        New auxiliary methods PushThresholdsToLogger() and
        ReportMissingLogger().
        New method SetLowLooperThresholds() for low-E applications.
        New method ReportLooperThresholds() to print out the values.
        Added extra simple statistics at destruction: stats on non-electrons
        loopers killed (sum E, number, max E & its PDG); stats for non-electron
        loopers killed (total energy, maximum energy and PDG of the type of
        that track). Statistics are now printed by a new method and are
        printed also in non-verbose mode.
        Addressing problem report
        #2063.
 
    - New class G4TransportationLogger to consolidate reports from the
        Transportation processes.
 
    - Use G4Exception for warnings, instead of streaming to cout/cerr.
    
 - Fixed Coverity defects.
 
    
 
Geometry
- Magnetic field
    
    - Correction in G4MagneticField to no longer inherit from
        G4ElectroMagneticField; this allowed a user to provide a full EM field,
        but obtain the force only from the B-field when using the equation
        created in the G4ChordFinder constructor.
        It is no longer possible to use the equation of motion for a pure
        magnetic field for the case of a mixed electromagnetic field. Instead
        the full chain of classes for equation of full EM field, steppers and
        driver must be used for the case of the 'full' EM field.
 
    - Introduced Bulirsch-Stoer method of integration, an alternative to
        Runge-Kutta based on the mid-point method. A separate driver derived
        from G4VIntegrationDriver was needed, using specialisation of
        G4IntegrationDriver template class.
 
    - Change in G4FieldManager::CreateChordFinder() to cope better
        with case where field argument is null.
 
    - Fix for missing interface method in G4VIntegrationDriver; added method
        RenewStepperAndAdjust() which used to exist in G4MagInt_Driver. This
        method must be defined in those derived driver classes which accept
        a Runge Kutta stepper.
 
    - Defined default implementation of the method in G4IntegrationDriver
        and G4FSALIntegrationDriver, and implementations in the templated
        classes G4IntegrationDriver and G4FSALIntegrationDriver.
 
    - Removed static data from G4FSALIntegrationDriver, G4IntegrationDriver
        and G4MagIntegratorDriver and moved to base class as normal data
        members. Fix was required for allowing proper symbol exporting on
        Windows DLLs.
 
    - Use G4Exception warnings instead of streaming to cerr.
 
    - Added override final for virtual methods in G4UniformMagField.
 
    - Corrections in calculation of chord distance in G4DormandPrince745
        (use 4th order interpolation from Shampine 1986 for mid-point).
 
    - Revised G4FieldUtils: moved copy() method from steppers,
        added two new setters for simple & variadic methods.
 
    - Fixes to copy input time in ModifiedMidpoint, CashKarp, G4RK547FEq1/2/3
        Bogacki-Shampine 4/5 and 2/3, Dormand Prince 4/5, 5/6 and 7/8 and
        Tsitouras steppers.
 
    - Fix for unitialised pointer in G4FSALIntegrationDriver constructor.
        Revision of data member variable names.
 
    - G4NystromRK4 now uses G4CachedMagneticField for caching values and
        creates it if not provided. Any other stepper will work with that cached
        field too. 
 
    - Removed G4MagIntegratorStepper::ComputeRightHandSide()
        virtual method, previously introduced for use with G4NystromRK4
        (calling non-virtual RightHandSide() instead).
 
    - New experimental class G4BFieldIntegrationDriver for pure magnetic
        field. 
        In QuickAdvance() it uses helix stepper when rotation angle
        is larger than pi/3.
 
    - New experimental class G4InterpolationDriver; using Runge-Kutta method
        with interpolation property to integrate EoM with error control.
 
    
 
- Management
    
    - G4AffineTransform: added explicit copy constructor, assignment and
        destructor; InverseProduct() has been optimised, now it does
        36 multiplications instead of 45; optimised also for the case of pure
        translation; added methods for inverse transformation:
        InverseTransformPoint(), InverseTransformAxis(),
        InverseNetRotation() and InverseNetTranslation().
        Minor optimisation to multiplication of matrix by vector, to make use
        of temporaries in accessing vector components.
 
    - G4GeomSplitter: replaced use or realloc()/free() and
        memcpy() with normal allocation/deallocation through
        G4Allocator. Also addressing compilation warnings on gcc-8.1.0.
 
    - G4VSolid: reimplemented EstimateSurfaceArea() for approximate
        calculation of the surface area of a solid, by estimating volume of a
        thin shell surrounding the surface using Monte-Carlo method; algorithm
        providing more accurate estimation without performance penalty.
 
    
 
- Navigation
    
    - G4Navigator::ComputeLocalAxis(): removed unnecessary check
        for IsRotated().
 
    - Replaced use of Inverse() from G4AffineTransform with new
        dedicated methods, to avoid creation of temporaries in
        G4RegularNavigation, G4Navigator and G4ReplicaNavigation.
 
    - G4PropagatorInField: fix for case of finishing integration in last
        iteration (so a looping particle will not be signalled incorrectly in
        that case). Improved reporting of looping particle, adding info on
        density and fraction (%) of proposed step that was completed, and
        momentum.
 
    - Use G4Exception instead of streaming to cerr in various classes.
 
    - Fixed Coverity defect in diagnostic report in G4MultiLevelLocator.
 
    - In G4PropagatorInField::ComputeStep(), notify G4ChordFinder
        at the beginning of each call.
 
    
 
- Solids (Boolean)
    
    - G4MultiUnion: added protection for normal initialisation in
        DistanceToOutVoxels(). Minor optimisation in
        DistanceToOut(p,v,..).
 
    - Minor optimisations to G4SubtractionSolid and G4IntersectionSolid
        for use of early returns.
 
    
 
- Solids (CSG)
    
    - G4Cons: fix in GetPointOnSurface() when sampling on inner and
        outer conical surfaces.
 
    - G4Orb: improved check if point is too far in DistanceToIn(p,v).
 
    - G4Torus: added check if point is too far in DistanceToIn(p,v).
        Addressing problem report
        #2100.
 
    - Make G4UCons wrapper inheriting from vecgeom::GenericUnplacedCone,
        following the latest changes in VecGeom.
 
    - Make G4UTrd wrapper inheriting from vecgeom::GenericUnplacedTrd,
        following the latest changes in VecGeom.
 
    - G4UTorus: removed leftover use of UVector3 and replaced with U3Vector.
 
    
 
- Solids (Specific)
    
    - Enabled VecGeom wrappers for G4ExtrudedSolid, G4TessellatedSolid
        G4Tet and G4Hype.
 
    - Make G4UPolycone wrapper inheriting from vecgeom::GenericUnplacedPolycone,
        following the latest changes in VecGeom.
 
    - Minor cleanup in G4TessellatedSolid::CreatePolyhedron(), no
        functional changes.
 
    - Updated use of thread-local static variables to function returning
        a thread-local static reference. New model for allowing support of
        multi-threading on Windows DLLs.
 
    - Removed G4SolidsWorkspacePool class. Adapted G4SolidsWorkspace to
        use templated class G4TWorkspacePool.
 
    
 
- Volumes
    
    - Replaced use of Inverse() from G4AffineTransform with new
        dedicated methods, to avoid creation of temporaries in G4TouchableHistory,
        G4PVPlacement and G4PVParameterised.
 
    - Updated use of thread-local static variables to function returning
        a thread-local static reference. New model for allowing support of
        multi-threading on Windows DLLs.
 
    - G4PVPlacement: added copy number to G4Exception printing in
        CheckOverlaps().
 
    - Removed G4GeometryWorkspacePool class. Adapted G4GeometryWorkspace to
        use templated class G4TWorkspacePool.
 
    - Added G4AssemblyStore singleton class for assembly structures bookeeping,
       to address the specific use-case of allowing identification of assembly
       envelopes.
 
    
 
Global
- Threading
    
    - Removed obsolete MT wrappers for random numbers, no longer necessary.
        Simplified definition of G4Random types in Randomize.hh accordingly.
 
    - Full support for thread-local storage on clang (also MacOS clang) now
        enabled; updated tls.hh definitions accordingly; removed use of the
        G4USE_STD11 flag, now always enabled by default.
 
    - Use thread_local keyword on Windows, instead of
        __declspec(thread) in tls.hh. Avoid exporting symbols for
        Windows DLLs in multi-threaded builds.
        Removed no longer necessary windefs.hh header.
 
    - G4Threading: replaced POSIX threading with C++11 threading
        (std::condition_variable, std::mutex, std::recursive_mutex,
        std::thread).
        Many of the former macros are now dummy macros (e.g. G4MUTEXINIT,
        G4MUTEX_INITIALIZER, etc.). Updated pin affinity.
        Replaced typedef statements with C++11 using
        correspondents.
 
    - G4AutoLock is now a thin wrapper around std::unique_lock providing
        previous functionality + more features (e.g. try_lock, try_lock_until,
        etc.). Overloaded G4AutoLock member functions in sequential mode to not
        execute locking/unlocking.
 
    - Added G4RecursiveAutoLock for recursive mutexes.
 
    - Extended G4TemplateAutoLock to take advantage of the features
        std::unique_lock offers.
 
    - G4MTBarrier: removed WIN32 specifics, updated G4CONDITIONWAIT to use
        G4AutoLock (std::unique_lock) instead of G4Mutex, removed
        G4MUTEX_INITIALIZER from constructor.
 
    - Added G4TypeMutex<T> and G4TypeRecursiveMutex<T> function
        to threading for safely obtaining a static mutex that is unique to the
        template type T.
 
    - Replaced static G4Mutex in G4Cache with calls to G4TypeMutex
        function calls to safely initialize mutexes on Windows.
 
    - Updated G4cout_p and G4cerr_p to point to std::cout and
        std::cerr before and after library load.
        G4cout before G4RunManager creation has been seen to fail on Windows.
 
    - Improvement to G4AutoLock in non-MT mode + bug fix (void try_lock()
        -> bool try_lock()) plus error handling within G4AutoLock
        if static mutex is attempted to be used at application cleanup
        (previously handled in G4Cache). Using atomics in G4Cache.
 
    - G4Cache, G4CacheDetails: minor code cleanup and formatting.
 
    - Define G4ThisThread, G4Promise, G4Future, and G4SharedFuture in
        G4Threading the promises and futures are not currently used but will be
        used in future.
 
    - G4TypeMutex and G4RecursiveTypeMutex now accept an index.
 
    - G4DummyThread typedef std::thread::id as id instead of
        id_type.
 
    - Updated use of thread-local static variables to function returning
        a thread-local static reference. New model for allowing support of
        multi-threading on Windows DLLs.
 
    
 
- Increased accuracy of G4Pow::A13() in the most critical [1/4,4]
    interval.
 
- Extracted G4Exception banner front/end strings for use in Qt parsing.
 
- G4PhysicsVector, G4Physics2DVector: fixed possible out-of-bound access
    in FindBin() method. Addressing problem report
    #2087.
 
- Reset singleton pointer in G4StateManager destructor;
    addressing problem report
    #2094.
    Minor code cleanup.
 
- Migrated G4Timer real (wall) time to use std::chrono::high_precision_clock
    from C++11. Fixed CPU number printout in operator<<().
    Use G4 types. Code formatting.
 
- Expanded DEFINED_PPC and DEFINED_INTEL in G4FPEDetection.
 
- Added G4TiMemory header which defines an dummy initializer and empty
    macros when the profiling package TiMemory is disabled, while it includes
    the TiMemory headers and defines an initializer when built with TiMemory
    support enabled. Removed obsolete definition in G4Timer and G4SliceTimer,
    causing conflicts with TiMemory. Updated CMake scripts.
 
- Minor code cleanup in G4UniformRandPool.
 
- Added new classe G4StatAnalysis, a lightweight statistics class that
    calculates the mean, FOM, relative error, standard deviation, variance,
    coefficient of variation, efficiency, r2eff, r2int (corr-coeff-of-interp/
    coeff-of-determ).
 
- Added new utility class G4EnvironmentUtils, including convenient
    environment converters.
 
- Added variadic template function to templates.hh to consume unused
    parameters and variables.
 
- G4OrderedTable and G4DataVector: fixed store/retrieve of binary
    data format.
 
- G4AllocatorPool: moved copy-ctr and operator=() to public section.
 
- Fixes to G4ConvergenceTester to ensure there are no divide-by-zeros
    when calculating the stat history.
    Added operator += (G4double).Fixed printout typos.
 
- Updated date of release for 10.5.
 
Graphical Representations
- Replaced DBL_MAX by G4VisAttributes::veryLargeTime = 1.e100*ns,
    (i.e. about 1.e75 billion years), to avoid for consistency DBL_MAX
    which is dimensionless.
    Disabled deprecated static data member G4VisAttributes::Invisible for
    Windows systems.
 
- Added GetNullExtent() function and operator==() to
    G4VisExtent.
 
- Added G4GREPS_ALLOC_EXPORT flag for DLL symbols export and apply it to
    data in G4VisAttributes.
 
Hadronic Processes
- Cross sections
    
    - G4NeutrinoElectronTotXsc: new class for total (i.e. neutral current
        plus charged current) cross-section for neutrino-electron
        interactions.
 
    - Introduced switch to allow transuranic elements.
 
    - G4PiNuclearCrossSection: for transuranic elements, scale the
        cross-sections from those of Uranium (using the ratio of atomic
        weights), instead of using directly the latter.
 
    - G4NeutronElasticXS, G4NeutronInelasticXS, G4NeutronCaptureXS:
        adopting new data structure from data set, incompatible with
        previous.
 
    - G4ParticleInelasticXS: new inelastic cross sections for neutrons,
        protons and light ions based on G4PARTICLEXS-1.1.
 
    - G4HadronXSDataTable: new class for cross-section handling.
 
    - G4CrossSectionDataStore: added new method ComputeCrossSection(); reduced
        number of type conversions, number of computation of cross-sections and
        code branches; use const pointers to G4Material, G4Element and
        G4Isotope; fixed selection of isotope, for energy below 20 MeV
        use isotope cross-sections, above 20 MeV - isotope abundaces.
 
    - G4VCrossSectionDataSet: added new flag 'isForAllAtomsAndEnergies' and
        get/set methods allowing to reduce the list of cross-sections per
        particle.
 
    - Commented out debug printouts in G4ProjectileFragmentCrossSection
        header.
 
    - Replaced file-scoped mutexes in G4CrossSectionFactoryRegistry to use
        G4TypeMutexwhich addresses a static mutex initialization bug on
        Windows.
 
    - G4NeutronElasticXS, G4PhotoNuclearCrossSection,
        G4ElectroNuclearCrossSection: removed Gheisha cross-section from
        data store; use these classes as default.
        Corrected list of isotope cross-section.
 
    - G4NeutronElasticXS: instantiate components in BuildPhysicsTable.
 
    - G4HadronNucleonXsc: improved computation of kaon cross-sections,
        kaon-short and kaon-long cross-sections are computed as half sum of
        K- and K+. Implemented PDG-2017 parameterisation of total cross-sections.
        Use G4Pow, G4Exp, G4Log substituting std::pow(); added
        interfaces with G4ParticleDefinition and kinetic energy.
 
    - G4CrossSectionElastic, G4CrossSectionInelastic: use new class
        G4HadronicParameters for definition of max energy.
 
    - G4ComponentGGHadronNucleusXsc: general review and speed up without
        functional changes; added method ComputeCrossSections();
        added cache values.
 
    - G4VCrossSectionDataSet, G4BGGPionElasticXS, G4BGGPionInelasticXS:
        replaced explicit high-energy limit of hadronic physics with
        the one from G4HadronicParameters.
 
    - G4CrossSectionElastic, G4CrossSectionDataSetRegistry,
        G4CrossSectionInelastic: added safe deletion of
        G4VComponentCrossSection at end of run.
 
    - G4CrossSectionDataSetRegistry, G4VComponentCrossSection: added
        registration/de-registration of component cross-sections.
 
    - G4ComponentGGHadronNucleusXsc: minor code cleanup.
 
    - G4HadronCrossSections: use G4ThreadLocalSingleton pattern.
 
    - G4HadronElasticDataSet, G4HadronInelasticDataSet: added cache;
        optimized IsElementApplicable() method.
 
    - G4CrossSectionElastic, G4CrossSectionInelastic: set Zmin=1
        instead of 0.
 
    - G4HadronCrossSections: added a protection (with a JustWarning
        exception) in the case of direct calls of cross-sections for particles
        not handled by Gheisha (e.g. gamma, He3, light anti-ions).
 
    - G4ComponentGGNuclNuclXsc: fixed bug for light ion cross-sections.
 
    - G4VComponentCrossSection, G4CrossSectionInelastic, G4CrossSectionElastic,
        G4ComponentSAIDTotalXS, G4ComponentGGNuclNuclXsc,
        G4ComponentGGHadronNucleusXsc: use stream in the Description()
        method instead of standard output.
 
    - G4ComponentBarNucleonNucleusXsc: simplified and cleaned up, use
        G4BarashenkovData.
 
    - G4BGGPionInelasticXS: use N. Starkov parameterisation for
        pion-nucleon.
 
    - G4NucleonNuclearCrossSection: use G4ComponentBarNucleonNucleusXsc.
 
    - G4UPiNuclearCrossSection, G4PiNuclearCrossSection: code cleanup.
 
    - G4ComponentGGNuclNuclXsc, G4ComponentGGHadronNucleusXsc: completed
        cleanup; removed code duplication, all parameterisations are used from
        G4HadronNucleonXsc class only; do not create temporary G4DynamicParticle
        objects; implemented computations only inside ComputeCrossSections()
        methods.
 
    - G4BGGNucleonElasticXS, G4BGGNucleonInelasticXS, G4BGGPionElasticXS,
        G4ComponentSAIDTotalXS, G4CrossSectionPairGG, G4NeutronElasticXS,
        G4NeutronInelasticXS, G4ParticleInelasticXS: improved destruction.
 
    - G4VComponentCrossSection, G4CrossSectionDataSetRegistry,
        G4CrossSectionElastic, G4CrossSectionInelastic: fixed deletion of
        cross-sections and components in MT mode.
 
    - G4ComponentGGNuclNuclXsc: fixed Coulomb barrier computation.
 
    - G4HadronNucleonXsc: introduced parameterisation for kaons.
        Restored PDG 2005 parameterisation.
        Added cross-sections for strange hyperons.
 
    - G4ComponentGGHadronNucleusXsc: added cross-sections for strange
        hyperons.
 
    - G4BGGNucleonElasticXS, G4BGGNucleonInelasticXS, G4BGGPionElasticXS,
        G4BGGPionInelasticXS: use only Barashenkov cross-section,
        Glauber-Gribov cross-section for target Z>1 and G4HadronNucleonXscNS
        for target Z=1. G4BGGPionElasticXS: limit cross-section below
        20 MeV.
 
    - G4PhotoNuclearCrossSection: added two new methods, IsIsoApplicable()
        and GetIsoCrossSection() to allow photo-nuclear reactions on deuterium.
        Addressing problem report
        #2092.
 
    - G4ComponentGGNuclNuclXsc: fixed nuclear radius parameterisation.
 
    - G4ComponentGGHadronNucleusXsc: choose NS (i.e. by N. Starkov) 
        parameterisation for kaon scattering off Hydrogen.
 
    - G4BGGPionElasticXS, G4BGGPionInelasticXS, G4BGGNucleonInelasticXS: use
        SAID cross-section at low energy. Use NS (i.e. by N. Starkov) 
        parameterisation for cross-sections on Hydrogen. G4BGGNucleonElasticXS:
        limit elastic cross-section off proton at low energy.
 
    - G4ComponentSAIDTotalXS - make class thread safe 
 
    - G4HadronNucleonXsc: use PDG2016 parameterisation for protons.
        Smooth kaon cross-section. Kaon cross-section with the same
        parameterisation as in G4 10.4.
        Added extra method for kaons fully based on NS (i.e. by N. Starkov)
        parameterisation.
 
    - G4NucleonNuclearCrossSection: fixed typo in inelastic cross-section.
 
    - G4NeutronCaptureXS, G4NeutronElasticXS, G4NeutronInelasticXS
        G4ParticleInelasticXS: replaced environment variable G4NEUTRONXSDATA
        with G4PARTICLEXSDATA; use full list of isotopic cross-sections
        available in G4PARTICLEXS.
 
    - G4CrossSectionFactoryRegistry: fixed printout typo.
 
    
 
- Management
    
    - G4HadronicProcess: fixed compilation warnings on gcc-8.1.0 regarding
        catching polymorphic type by value, instead of by reference.
        Use const pointers and "nullptr" for G4Material and G4Element; use
        ComputeCrossSection() method; removed creation of new
        materials at run-time inside GetElementCrossSection(), all materials
        should be created in the user code.
        Use correct return type when calling CheckResult() from
        PostStepDoIt():
        fixes case when the value of pointer 'result' does not get properly
        reset to NULL in case a non-conservation is detected, thus "bad"
        interaction does not get re-sampled.
 
    - Code cleanup in G4HadronicProcess, G4VLeadingParticleBiasing and
        G4HadLeadBias. G4HadronicProcess, G4HadronInelasticProcess: added
        keyword  override; cleanup of cross-section scale factor
        and weights; G4HadronicProcessStore: use nullptr and added
        flag buildXSTable with get/set methods.
 
    - Added function GetHadronicModel(modelName) in
        G4HadronicProcess, which returns a pointer to G4HadronicInteraction.
 
    - Removed obsolete class G4HadronicInteractionWrapper.
 
    - G4HadronicProcess: added check if secondary particle is on the mass
        shell; if its mass differ from the PDG mass by more than 1.5 MeV 
        then the mass is forced to the mass shell, keeping total energy
        conserved but not 3-momentum.
 
    
 
- Processes
    
    - G4HadronElasticProcess, G4NeutrinoElectronProcess: fixed compilation
        warnings on gcc 8.1.0, regarding catching polymorphic type by value,
        instead of by reference.
        Use const pointers and "nullptr" for G4Material and G4Element.
 
    - G4NeutrinoElectronProcess: added cross-section biasing.
        Modified constructor.
 
    - G4HadronCaptureProcess: revised description; added C++11 keywords.
 
    
 
- Stopping
    
    - G4HadronStoppingProcess, G4MuonicAtomDecay: fixed compilation warnings
        on gcc 8.1.0, regarding catching polymorphic type by value, instead of
        by reference.
 
    - G4HadronicAbsorptionFritiof: replaced the explicit high-energy limit
        of hadronic physics with the one from G4HadronicParameters.
 
    - G4MuonMinusBoundDecay: changed the calculation used in
        GetMuonDecayRate(), based on problem report
        #2049.
        Added another GetMuonDecayRate() function using A, muon and nucleus
        masses in addition to Z to accomodate the more accurate formula.
 
    - G4MuonMinusBoundDecay: fixed Coverity defect in GetMuonDecayRate();
        removed forbidden creation of G4Element in any model class.
 
    
 
- Utilities
    
    - Updated use of thread-local static variables to function returning
        a thread-local static reference. New model for allowing support of
        multi-threading on Windows DLLs.
 
    - Added new singleton class G4HadronicParameters, keeping global
        hadronic parameters. For the time being, it has only the high-energy
        limit of hadronic physics (instead of spreading this value in many
        different files, as done up to now). The default value is set to
        100 TeV.
 
- Models Utilities:
    
    - First implementation of alpha cluster structure of carbon nuclei in
        G4Fancy3DNucleus, according to P.Bozek et al., Phys.Rev.C90, 064902
        (2014). Fixed issue of event reproducibility; added loop checks and general
        cleanup. In case of difficulties in the method ChooseFermiMomenta(),
        emit a JustWarning exception instead of writing to cerr.
 
    - Minor improvement to code in G4Nucleon and cleanup.
 
    - Updated use of thread-local static variables to function returning
        a thread-local static reference. New model for allowing support of
        multi-threading on Windows DLLs.
 
    
 
    
 
- Abla
    
    - Extended model to hypernuclei.
 
    - Updated ABLA interfaces.
 
    - Updated some parameters and code cleanup.
 
    - Fixed some Coverity defects.
 
    
 
- Bertini Cascade
    
    - Added strange pair production channels to list of 6, 7, 8 and 9-body
        final states in classes G4CascadeT31piNChannel and
        G4CascadeT33piNChannel. Modified template values accordingly.
 
    - G4CascadeT11pizNChannel: extended strange pair production channels to
        6,7,8 and 9 body final states.
 
    - Fixes in G4ElementaryParticleCollider methods generateSCMpionAbsorption()
        and generateSCMmuonAbsorption(), as they did not produce correct nucleon
        pairs when pion or muon was absorbed. Added quantum number conservation
        test to method collide().
 
    - Fixed implementation of nuclear_rad_2par configurable key in
        G4CascadeParamMessenger.
 
    - G4GDecay3: fixed problem reported by CMS due to wrong kinematics in the
        final state by removing loop check; adding protection for low value of
        mother mass.
 
    - G4NucleiModel: replace Kossov parameterization of gammaQDxsec with new
        values coming from smooth line through deuteron photo-disintegration
        data which include 2004 JLab data up to 3 GeV.
        Fix in boundaryTransition() to prevent glancing incidence at
        shell boundaries from reflecting too many times.
 
    - G4CascadeT11pizNChannel, G4CascadeT31piNChannel, G4CascadeT33piNChannel:
        re-ordered particle types in final state arrays so that pion is first
        and nucleon is second. Two body final state methods assume this.
 
    - G4CascadeKminusNChannel, G4CascadeKminusPChannel, G4CascadeKplusNChannel,
        G4CascadeKplusPChannel, G4CascadeKzeroBarNChannel,
        G4CascadeKzeroBarPChannel, G4CascadeKzeroNChannel, G4CascadeKzeroPChannel:
        same as above but re-ordered only for two- and three-body final states.
 
    - G4CascadeT1GamNChannel: re-ordered final state particle types so that
        mesons are first in two- and three-body cases.
 
    - G4CascadeParamMessenger: added description to /process/had/ directory.
        Addressing problem report
        #2020.
 
    - Fix in G4PreCompoundDeexcitation::deExcite() to not use const
        reference as input since G4PreCompound can change the fragment and
        upset the energy balance. In G4CollisionOutput::getTotalCharge(),
        subtract electron charges in case of internal conversion in
        G4PreCompound.
        In G4CascadeCheckBalance::collide(), convert fragment momentum
        given in MeV to GeV (Bertini units) and remove
        electrom masses from energy balance when internal conversion occurs.
        Addesses problem report
        #2096
        for energy non-conservation.
 
    
 
- De-excitation
    
    - G4ChatterjeeCrossSection, G4KalbachCrossSection: moved implementation
        to source.
 
    - G4VEmissionProbability, G4EvaporationProbability: fixed integration
        of probabilities for neutron emission for OPT=1,2.
 
    - G4NeutronRadCapture: replaced the explicit high-energy limit of
        hadronic physics with the one from G4HadronicParameters.
 
    - G4FermiPhaseSpaceDecay: moved long method from inline to source;
        added a protection for low mass of initial state.
 
    - G4LevelReader: attempt to adress problem reports
        #1986
        and
        #2076
        by changing hadling of internal conversion data.
 
    - G4LevelReader: changed fatal exception by warning for problematic
        level index.
 
    - G4LevelReader: changed fAlphaMax from 1.e+6 to 1.e+15 for correct
        IC probability of some isotopes.
 
    - G4DeexPrecoParameters: fixed checks on parameter values.
 
    - G4DeexPrecoParameters: set default deexcitation "evaporation+GEM".
 
    - G4DeexPrecoParameters: set default level density parameter to 0.075.
 
    - G4DeexPrecoParameters: added extra parameter for the FBU model.
 
    - G4FermiFragmentsPoolVI: extended number of FBU fragments from
        399 to 991 and corresponding number of reaction channels.
 
    - G4EvaporationProbability, G4CompetitiveFission, G4VEmissionProbability,
        G4PhotonEvaporation: coherent use of the same parameterisation of level
        density and pairing correction between all models.
 
    - G4CompetitiveFission, G4FissionLevelDensityParameter,
        G4FissionLevelDensityParameterINCLXX, G4FissionProbability:
        tuned fission parameters.
 
    - G4EvaporationProbability: added option 4 for de-excitation.
 
    - G4LevelManager: added shell correction data and its accessor.
 
    - G4LevelManager, G4NuclearLevelData, G4LevelReader: added intialisation
        of level density and pairing correction per isotope, added possibility
        to choose between two parameterisations of level density.
 
    - G4FissionLevelDensityParameter, G4FissionLevelDensityParameterINCLXX,
        G4EvaporationLevelDensityParameter, G4CoulombBarrier, G4PairingCorrection:
        clean up according G4NuclearLevelData.
 
    - G4UnstableFragmentBreakUp: fixed Coverity defect.
 
    - G4ExcitationHandler: added protection to verbosity printouts in
        SetDeexChannelsType() and Initialise() methods.
 
    - G4PhotonEvaporation: improved debug printout.
 
    - Fixed few printout typos.
 
    - Fixed Coverity defects.
 
    
 
- Elastic scattering
    
    - Update to G4hhElastic to take into account recent TOTEM data for
        proton-proton at 13 TeV.
 
    - Added new class G4DiffuseElasticV2. The underlying physics model is
        the same as in G4DiffuseElastic, however, the code has been revised,
        cleanup and significantly improved in a number of places.
        The performance has been improved by a factor of ~2 with respect
        to the original implementation. The approximation of small angles
        has been dropped (replaced by exact calculation) as it was not
        bringing any visible benefits.
 
    - Set to 100 TeV (instead of 1 TeV) the upper limit
        of applicability for the model G4DiffuseElastic and G4DiffuseElasticV2
        (the number of equally-sized logarithmic energy bins has been increased
        from 200 to 250 to keep the same bin size, 0.04).
        The model has been validated with experimental data up to 300 GeV,
        but it should not give meaningless results well above this energy.
        The number of bins has been further increased from 250 to 300 in order
        to have no larger bins up to 10 PeV.
 
    - Replaced the explicit high-energy limit of hadronic physics with the
        one from G4HadronicParameters.
 
    - G4AntiNuclElastic: use cross-section component from
        G4CrossSectionDataSetRegistry and properly delete it at the end
        of run.
 
    - G4NuclNuclDiffuseElastic: replaced the high-energy limit of
        applicability of the model from 1 TeV to the value specified
        in G4HadronicParameters.
 
    - G4AntiNuclElastic: do not delete component at the end of run.
 
    - G4HadronElastic: fixed numberical instability when final kinetic
        energy of projectile is nearly zero.
 
    
 
- INCLXX
    
    - Updated to INCL++ v6.28.
 
    - Improved strangeness and few nucleon removal (HFB).
 
    - Fixed mass of a light hypernucleus (Z=1,A=2). Fixed various bugs.
 
    - Checked porting with C++17 enabled.
 
    - Requiring new G4INCL-1.0 data set and corresponnding G4INCLDATA path
        environment variable.
 
    - Use G4RandGauss for Gaussian random distribution, to reduce cases of
        event non-reproducibility.
 
    - Changed Adapter::operator()() in G4INCLRandom to make direct use of
        G4RandFlat::shootInt(n). Fixes FPE errors occurring in MT mode
        optimised.
 
    - Fixed few printout typos.
 
    
 
- Lend
    
    - MCGIDI_misc: fixed printout typo.
 
    
 
- Lepto-nuclear
    
    - G4NeutrinoElectronCcModel: added extra interfaces.
        Also fixed Coverity defect.
 
    - G4NeutrinoElectronCcModel: replaced the explicit high-energy limit
        of hadronic physics with the one from G4HadronicParameters.
 
    
 
- Particle High Precision
    
    - G4ENDFTapeRead, G4FissionProductYieldDist: fixed compilation warnings
        on gcc 8.1.0, regarding catching polymorphic type by value, instead of
        by reference.
 
    - G4ParticleHPElementData: removed unnecessary inheritance from
        G4HadronicCrossSection.
 
    - Fixed incorrect sampling of isotropic distribution.
        Addressing problem report
        #1745.
 
    - Fixed gamma level mismatch in G4ParticleHPInelasticCompFS.
        Not a complete fix because gamma data comes from ENSDF and does not
        necessarily match excitations in ENDF. Addressing problem report
        #1789.
 
    - Fixed memory leaks in G4ParticleHPContEnergyAngular::Sample() and
        G4ParticleHPContAngularPar::cacheInit(). Addressing problem report
        #2026.
 
    - G4ParticleHPCaptureFS::ApplyYourself(): Lorentz boost of neutron into
        target frame was backwards; reversed it. Also replaced SetDefinition()
        with SetDefinitionAndUpdateE(). Addresses problem report
        #1919.
 
    - Fixed definition of singletons for G4ParticleHPManager and
        G4ParticleHPThreadLocalManager and some code cleanup.
        Made G4ParticleHPThreadLocalManager a G4ThreadlLocalSingleton to avoid
        memory leaks generated each time a thread creates the instance.
 
    - Fixed bug for double allocation of G4ParticleHPReactionWhiteBoard in
        G4ParticleHPThreadLocalManager::OpenReactionWhiteBoard().
 
    - G4ParticleHPElasticFS::ApplyYourself(): use correct reference frames for
        calculation of projectile and target momenta. Correction made for cases
        when cos(Theta) is given in lab frame and in center of momentum frame.
        Partial fix of momentum non-conservation for problem report
        #1918.
 
    - Fixed potential leaks in G4ParticleHPPhotonDist, G4ParticleHPContAngularPar
        and G4ParticleHPFinalState for use of pointers cached in G4Cache.
 
    - Minor code cleanup and formatting.
 
    
 
- Parton-String
    
    - In the string fragmentation part of the FTF model, first implementation
        of rotating strings with introduction of Mt distribution of hadrons.
        Parameters are tuned using NA49 experimental data on pp-interactions.
        Good results are obtained for Pi+-, K+-.
        For P and Pbar  - xF correlations need still improvement.
 
    - Major revision of QGS model; implemented Reggeon cascading and
        associated "Fermi motion". Implemented new algorithm of parton
        kinematical properties determination and calculation of residual
        nucleus properties. Adjusted G4GammaParticipants to the revised
        model.
        Cut non-vacuum reggeons are interpreted as a creation of a single
        string, or as a single string creation and one "stable" hadron.
        Such processes are described by RRR diagram of Reggeon phenomenology.
 
    - Improved energy-momentum conservation in the QGS model, especially
        in the case of diffraction interactions.
 
    - Major improvement of QGS model: Pomeron parameters are set up according to
        A.Kaidalov and M.Poghosyan (2009-2010). Non-vacuum reggeons: f and
        omega, are included in the calculations using parameters by A.Kaidalov
        and M.Poghosyan (2009-2010).
 
    - New class G4Reggeons for calculations of cross-sections in QGS model.
 
    - Introduced new class G4QuarkExchange for implementation of quark
        exchange process in QGS model.
 
    - G4QGSParticipants: implementation of quark-exchange simulation in
        the QGS model. Fix for nucleon state counter. Minor fix to avoid
        FPE observed only in optimized mode.
 
    - G4VPartonStringModel: throw exception for the case when string
        fragmentation does not produce hadrons (for both FTF and QGS models).
 
    - In the QGS model, cleaned and improved G4SingleDiffractiveExcitation and
        G4QGSDiffractiveExcitation. Correction in G4SingleDiffractiveExcitation
        to treat h + N and Gamma + N diffraction.
 
    - In the QGS model, changed G4MesonSplitter probabilities UUbar DDbar
        from (0.5, 0.5) to (0.8, 0.2) for gamma projectile.
 
    - G4QGSMSplitableHadron: fixed bug in the case of gamma projectile with
        P_minus = 0 for the QGS model.
 
    - G4ExcitedStringDecay: bug-fix in FragmentStrings() method (access
        to the first element of an empty vector: this is for both FTF and QGS
        string fragmentation). Increased the number of max attempts to
        fragment strings from 10 to 100. 
 
    - New tuning of FTF model parameters.
 
    - Introduced various Pt^2 for diffractive and non-diffractive
        interactions in the FTF model, for NA49 and NA61/SHINE experimental data.
 
    - Fine tuning in G4DiffractiveExcitation for the FTF model, to describe
        NA49 experimental data, especially,  on Xf.
 
    - Fix to address the baryon puzzle of NA49 data for the FTF model;
         of baryons 1/2 at a string fragmentation setting up at 435 MeV/c,
        and Pt for baryons 3/2 production at 900 MeV/c.
 
    - Fine tuning of G4LundStringFragmentation (for the string fragmentation
        of the FTF model). Pt of mesons created at quark fragmentation is
        decreased. Pt of baryons created at quark and di-quark is increased. 
        Corrected fragmentation functions of qq->B(1/2) and B(3/2).
        Re-organized and cleaned up code; the variant is tuned using NA49
        experimental data on pp->p/pi/K +X.
 
    - Introduced smearing of delta-isobar mass in the FTF model; 
        delta-isobars are now treated as a kinetic track; improved
        parameterisation of the quark exchange process with excitation.
        NA61/SHINE exp. data on Pi+, Pi-, K+, K- and protons in PP interactions
        at 20, 31, 40, 80 and 158 GeV/c are now described. Now
        reproducing the ratio of <Strane Q>/<Normal Q> in PP
        interactions. Not describing kink in AA interactions.
 
    - Improved di-quark fragmentation into baryons in Lund string
        fragmentation (used in the FTF model). Improved description of NA49 and
        NA61/SHINE experimental data on p+p->p+X. Improvements in
        the method SetMinimalStringMass(), relevant for Pbar P annihilation.
 
    - In the FTF model, improved process probability parameterizations for
        Pi - Nucleon interactions. Good results are obtained for HARP data 
        (p/Pi+/Pi- + A at 3, 5, 8, 12 GeV/c) and for Pi N
        inclusive reactions.
 
    - Corrected calculation of nuclear residual excitation energy in the FTF model.
        Fine tuning of the FTF model parameters.
 
    - For the FTF model, set to false the switches for the A-dependence
        in nuclear destruction for baryon projectile in G4FTFParameters. 
        Uncommented checks for these switches in the code. No changes in the
        random number sequence.
 
    - Improved versions and tuning of Lund and QGS fragmentations
        (used, respectively, by FTF and QGS string models).
 
    - G4LundStringFragmentation: bug fixes related to rotating strings
        in the FTF model.
 
    - G4VLongitudinalStringDecay: removed useless caching in the method
        FragmentationMass() which was causing rare irreproducibilities in
        gamma-nuclear reactions (i.e. involving QGS).
 
    - Improved QGS model and fixed issue of event reproducibility in
        gammma-nuclear.
 
    - Fixed leak in G4QGSParticipants::GetList() for targets not deleted
        after interaction.
 
    - G4QGSParticipants: introduced protection in the QGS model against
        negative squared mass in the method PutOnMassShell(), which was causing
        some rare crashes. If a negative squared mass occurs, a JustWarning
        exception is thrown and the squared mass is set to 0, before calling
        the square root (which is now computed only once).
 
    - Moved G4PomeronCrossSection class to 'qgsm' module.
 
    - G4FTFAnnihilation: fix to get flat cos(theta) and phi
        distributions for antiproton annihilation at rest in the FTF model. 
        Added also a protection for the evaluation of the rapidity.
 
    - G4FTFModel, G4DiffractiveExcitation, G4FTFAnnihilation: code
        improvements of the FTF model. No changes in physics output, but with
        possible differences in the random sequence, due to numerical effects
        caused by re-ordering of operations.
 
    - G4LundStringFragmentation: tuning of strange - anti-strange probability
        production, for the FTF model, as a function of energy to describe
        NA61/SHINE 31 GeV/c p-C data on K+ / K- production.
        Decreased also the Lambda0 production for NA61/SHINE 158 GeV/c
        and 31 GeV/c p-C: for the former good agreement,
        while for the latter the simulation underestimates the data.
 
    - G4QGSMFragmentation: implemented new algorithm for the last string decay
        a-la Lund. Improved the algorithm to stop the fragmentation of QGS strings.
        Tuning of parameters with NA49 and NA61/SHINE data was performed.
 
    - G4Reggeons: improved cross-sections of K-meson - nucleon interactions
        in the QGS model. Taken into account Pomeron and 2 non-vacuum exchanges.
        Initial parameters for kaons are taken from Kaidalov's paper (1976).
        Improved gamma-nucleon cross-sections by tuning of parameters.
 
    - Fix in G4FTFModel::GetStrings() to return a vector with
        size zero in wrong conditions for FTF.
 
    - G4VPartonStringModel: in cases of wrong conditions for the QGS model,
        the initial particle/nucleus is returned, according to a similar fix in
        FTF model.
 
    - Fixed handling of wrong conditions for the QGS model when it is unable
        to generate strings.
 
    - Fixed few printout typos and minor code cleanup.
 
    - Fixed Coverity defects.
 
    
 
- Pre-equilibrium
    
    - G4PreCompoundEmission, G4PreCompoundFragment, G4PreCompoundNucleon:
        fixed computations for OPT=1,2.
 
    - G4PreCompoundModel: fixed initialisation.
 
    - G4PreCompoundFragmentVector: moved inlined methods to source.
 
    - G4VPreCompoundFragment, G4HETCChargedFragment, G4HETCFragment,
        G4HETCNeutron, G4PreCompoundFragment, G4PreCompoundIon,
        G4PreCompoundNucleon, G4PreCompoundModel, G4PreCompoundEmission,
        G4PreCompoundTransitions, G4GNASHTransitions: updated usage of level
        density parameterisation according to de-excitation model.
 
    
 
- Quasi-Elastic
    
    - G4QuasiElRatios: removed unnecessary protection against heavy
        elements.
 
    
 
- Radioactive Decay
    
    - G4ECCapture, G4RadioactiveDecay, G4RadioactiveDecayMode: added electron
        capture channel from the N Shell.
 
    - G4ECCapture: added tables of PL2/PL1 PM2/PM1 and PN2/PN1 based on bound
        electrons radial wave amplitudes, taken from Bambynek et al., Rev. Mod.
        Phys., vol. 49, 1977.
        Compute partial probabilities of subshells PL1,PL2,PM1,PM2,PN1,PN2 from
        the tables PL2/PL1, PM2/PM1, and PN2/PN1. Valid for allowed transitions.
 
    - G4RadioactiveDecay: enable printout of parameters within G4VERBOSE in
        BuildPhysicsTable().
 
    
 
- RPG
    
    - G4RPGAntiKZeroInelastic, G4RPGInelastic: fixed compilation warnings on
        gcc-8.1.0, regarding catching polymorphic type by value, instead of by
        reference.
 
    
 
Intercoms
- Updated use of thread-local static variables to function returning
    a thread-local static reference. New model for allowing support of
    multi-threading on Windows DLLs.
 
- Fixed compilation warnings for not used return parameters.
 
- G4UIcommand: added comparison of two variables. Addressing problem report
    #2068.
 
Interfaces
- Fixed parse error for empty lines.
 
- G4Xt: fixed compilation warnings for casts on gcc-8.1.0.
 
- Fixed compilation warnings for not used return parameters.
 
- Changed G4VInteractorManager::SecondaryLoop() to virtual
    to cope with OpenInventor Qt visualization driver.
 
Materials
- New class G4AtomicShells_XDB_EADL using experimental binding energy data
    from X-ray Data Book (XDB) where available and theoretical values otherwise.
    Removed old class G4AtomicShells_EADL.
 
- New class G4ICRU90StoppingData for ICRU90 data. Added method in G4NistManager
    to access G4ICRU90StoppingData; removed check forcing instantiation only in
    the master thread.
 
- G4ICRU90StoppingData, G4NistManager: fixed destruction of ICRU90 data.
    Fixed initialisation in G4ICRU90StoppingData.
 
Particles
- Removed obsolete MaxNumberOfProducts enumerator in G4DecayProducts.
 
- Removed G4MUTEX_INITIALIZER from constructor in G4VDecayChannel.
 
- Updated use of thread-local static variables to function returning
    a thread-local static reference. New model for allowing support of
    multi-threading on Windows DLLs.
 
- Fixed case of energy non-conservation in muon decay, due to wrong
    calculation of 2-neutrino system in CM frame for muon decay channel
    with spin. Addressing problem report
    #2072.
 
- Fixed proton momentum and direction in G4NeutronBetaDecay.
    Addressing problem report
    #2088.
 
- Changed UI command directory for G4NuclideTable
    and removed obsolete class G4NucleiPropertiesTableAME03.
 
- Fix in muon decay channel with spin, for calculation of beta of
    a 2 neutrino system in CM frame. Addressing problem report
    #2072.
 
- Code cleanup.
 
Persistency
- GDML:
    
    - Clear auxiliary map information in G4GDMLReadStructure::Clear().
        Addressing problem report
        #2064.
 
    - Added stripping of invalid characters for names generation in writer
        classes to prevent invalid NCName strings in exported GDML files.
        Adopt properly stripped generated strings for exporting names of
        optical surfaces.
 
    
 
Physics lists
- Builders:
    
    - Replaced explicit high-energy limit of hadronic physics with the one
        from the new class G4HadronicParameters.
 
    - OrderingParameterTable: added gamma and e- processes.
 
    - G4FTFBinaryPiKBuilder, G4HyperonFTFPBuilder: improved deletion.
 
    - In G4QGSBinaryPionBuilder, G4QGSBinaryPiKBuilder, G4QGSPPiKBuilder,
        G4FTFPPionBuilder, G4BertiniPiKBuilder, G4FTFPPiKBuilder,
        G4BertiniPionBuilder, G4FTFBinaryPiKBuilder, G4BinaryPiKBuilder,
        G4INCLXXPionBuilder, G4FTFBinaryPionBuilder, G4BinaryPionBuilder,
        G4QGSPPionBuilder, use Barashenkov-Glauber-Gribov inelastic
        cross-section for pions. This allows to avoid to use Gheisha
        cross-sections for pion inelastic on Hydrogen target.
 
    
 
- Constructors:
    
    - decay
        
        - G4RadioactiveDecayPhysics: fixed initialisation ordering of
            messages to EM physics.
 
        
 
    - electromagnetic:
        
        - G4EmStandardPhysics, G4EmStandardPhysics_option1/2/4, G4EmLowEPPhysics,
            G4EmPenelopePhysics, G4EmLivermorePhysics, G4EmStandardPhysicsGS,
            G4EmLivermorePolarizedPhysics: use new parameter MscEnergyLimit()
            (default is 100 MeV) allowing to customise transition from
            low-energy multiple scattering to high energy combination of
            multiple and single scattering.
 
        - G4EmStandardPhysics_option1/2: use Livermore photo-effect model.
 
        - G4EmStandardPhysics_option4, G4EmLivermorePhysics,
            G4EmPenelopePhysics: set upper energy limit to 100 TeV.
 
        - G4EmLowEPPhysics: use new 5D gamma conversion model below 80 GeV,
            use new Lindhard-Sorensen ion ionisation model above 20 MeV/u.
 
        - Added new class G4GammaSuperProcess, for coherent handling of EM
            processes on gamma particles.
            G4EmStandardPhysics_option1: enable gamma super process.
            G4EmStandardPhysics: added possibility to use gamma super process.
 
        - G4EmLowEPPhysics: added Bremsstrahlung and pair-production for ions.
 
        - G4EmStandardPhysics_option4, G4EmLivermorePhysics, G4EmPenelopePhysics,
            G4EmPolarizedLivermorePhysics: use same Goudsmit-Saunderson multiple
            scattering model configuration and same configurations for hadrons
            and ions.
 
        - G4EmLowEPPhysics: use same configurations for hadrons.
 
        - Renamed G4GammaSuperProcess to G4GammaGeneralProcess.
 
        - G4GammaGeneralProcess, G4EmStandardPhysics, G4EmStandardPhysics_option1,
            G4EmStandardPhysics_option4: updated usage of gamma general process.
 
        - Added new constructors G4EmDNAPhysics_option8 and
            G4EmDNAChemistry_option1.
 
        - G4EmStandardPhysics_option1: disabled general gamma process.
 
        - G4EmLivermorePhysics, G4EmPenelopePhysics: set stepping function
            parameters for muons and hadrons to (0.2,50*um).
 
        - G4EmStandardPhysics_option3: set stepping function parameters for muons
            and hadrons to (0.2,50*um) and enable Mott corrections.
 
        - G4EmStandardPhysics_option4: set stepping function parameters for
            muons and hadrons to (0.1,20*um).
 
        - Use the most recent version of lateral displacement for the Urban
            model.
 
        - G4EmParticles: extended list of particle (Bc+-, OmegaB, XiB,
            SigmaB).
 
        - G4OpticalPhysicsMessenger, G4OpticalPhysics: fixed documentation.
            Addressing problem report
            #2020.
 
        - G4EmStandardPhysics_option4, G4EmStandardPhysics_option3: cleaned up
            definition of nuclear stopping process.
 
        - G4EmStandardPhysics_option2: use the same models and parameters
            as in LHCb EM physics constructor.
 
        - G4EmStandardPhysicsWVI: use Opt3 parameters; use new ATENA ion
            stopping model.
 
        - G4EmLowEPPhysics: use Opt3 parameters; use Lindhard-Sorensen ion
            stopping model; use ICRU90 stopping for protons and alpha.
 
        - G4EmStandardPhysics_option3: use Alg96 lateral displacement sampling.
            Addresses issue reported in EM processes HyperNews Forum #1516.
 
        - G4EmLivermorePhysics: return back 5D gamma conversion model.
 
        - G4EmDNAPhysics_option7: fix for electron models combination.
 
        - G4EmDNAChemistry, G4EmDNAChemistry_option1: fixed typo in headers.
 
        
 
    - factory:
        
        - Moved G4_REFERENCE_PHYSCONSTR_FACTORY macro calls out of
            G4PhysicsConstructorRegistry., where they cause an implicit circular
            dependency when building granular libraries; moved into inline source
            where they can be included as necessary in a higher level compilation
            unit. REFERENCE macro calls can be made unique.
 
        - Allow override of exclusion of G4RegisterPhysicsConstructors
          definitions when using WIN32 by setting USING_STATIC_LIBS.
 
        - Code cleanup.
 
        
 
    - gamma_lepto_nuclear:
        
        - G4EmExtraPhysics, G4EmMessenger: added extra UI commands and
            modifiers to define flags for neutrinos and for neutrino-electron
            interactions.
 
        - Removed G4MUTEX_INITIALIZER from constructor in G4EmExtraPhysics.
 
        - G4BertiniElectroNuclearBuilder: replaced explicit high-energy limit
            of hadronic physics with the one from G4HadronicParameters.
 
        - G4EmExtraPhysics, G4BertiniElectroNuclearBuilder: added enabling of
            G4GammaGeneralProcess.
 
        - G4EmExtraPhysics, G4EmMessenger: added possibility of cross-section biasing
            for neutrino-nuclear process.
 
        
 
    - hadron_elastic:
        
        - G4HadronElasticPhysicsXS: fixed use of data for neutron capture
            in HP lists. Addressing problem report
            #2057.
 
        - G4HadronElasticPhysics: added service methods GetElasticProcess(),
            GetElasticModel() and AddXSection().
            Code cleanup: use C++11 keywords; removed unnecessary statics.
 
        - G4HadronElasticPhysicsHP, G4HadronElasticPhysicsPHP, G4HadronElasticPhysicsXS,
            G4HadronElasticPhysicsLEND: use inheritance from G4HadronElasticPhysics;
            removed most of static members; use of C++11 keywords.
 
        - G4HadronDElasticPhysics, G4HadronHElasticPhysics: use of C++11 keywords.
 
        - G4ChargeExchangePhysics, G4IonElasticPhysics, G4ThermalNeutrons:
            removed static members; use of C++11 keywords.
 
        - G4HadronHElasticPhysics: for hyperon elastic cross-sections,
            replaced Chips cross-sections with Glauber-Gribov ones.
 
        - G4HadronElasticPhysics, G4HadronElasticPhysicsXS: use G4BGGNucleonElasticXS
            cross-section for protons.
 
        - Updated README.
 
        
 
    - hadron_inelastic:
        
        - G4HadronInelasticQBBC: use G4ParticleInelasticXS both for neutrons
            and protons.
 
        - Replaced explicit high-energy limit of hadronic physics with the
            one from G4HadronicParameters.
 
        - In all hadronic builders fixed use of data for neutron capture in HP
            lists; fixed configuration of capture and fission models and
            cross-sections. Addressing problem report
            #2057.
 
        - G4HadronInelasticQBBC, G4HadronPhysicsFTFP_BERT, G4HadronPhysicsQGSP_BIC:
            clean-up model and cross-section configurations for neutrons.
 
        - Fixed possible double deletion of builders objects at the end of a
            run.
 
        - G4HadronPhysicsQGSP_BIC_AllHP: rewritten physics constructor for
            QGSP_BIC_AllHP, consistently with QGSP_BIC_HP (this fixes the
            problem of two fully overlapping neutron-capture models).
 
        - G4HadronPhysicsQGSP_BIC, G4HadronPhysicsQGSP_BIC_HP,
            G4HadronPhysicsQGSP_BIC_AllHP: fixed C++11 keyword.
 
        - G4HadronInelasticQBBC, G4HadronPhysicsFTFP_BERT, G4HadronPhysicsQGS_BIC,
            G4HadronPhysicsQGSP_BIC_AllHP: do not fill internal structure for
            cross-sections.
 
        - G4VHadronPhysics: added extra method.
 
        - G4HadronInelasticQBBC: removed more statics variables.
 
        - G4HadronPhysicsFTFP_BERT_TRV: for hyperon inelastic cross-sections,
            replaced Chips cross-sections with Glauber-Gribov ones.
 
        - G4HadronPhysicsFTFQGSP_BERT: use BGG pion cross-section consistently
            with all other physics lists.
 
        - G4HadronInelasticQBBC: use BGG proton inelastic; fixed neutron
            cross-section.
 
        - G4HadronPhysicsShielding, G4HadronPhysicsShieldingLEND: rewritten
            to cure memory leaks.
 
        
 
    - ions:
        
        - Major revision of all ion builders: reduced number of thread-local
            variables; simplified class constructors; for QMD, INCLXX, XS enabled
            combined list of de-excitation channels; use max energy from
            G4HadronicParameters and do not instantiate FTFP model if this
            energy is below max energy of the cascade; G4IonBinaryCascadePhysics
            is now identical to G4IonPhysics.
 
        - G4IonPhysics, G4IonBinaryCascadePhysics, G4IonPhysicsPHP: replaced
            explicit high-energy limit of hadronic physics with the one from
            G4HadronicParameters.
 
        - G4IonPhysicsXS: new constructor in which ParticleXS cross-sections
            are used for light ions.
 
        - G4IonPhysics: clean-up, removed unnecessary statics.
 
        
 
    
 
- Lists:
    
    - Use new G4RegisterPhysicsConstructors inline definitions to ensure that
        for static builds G4PhysicsConstructorRegistry is populated.
 
    - No longer register ShieldingLEND as a wrapper, but use explicit one.
 
    - LBE: replaced the explicit high-energy limit of hadronic physics
        with the one from G4HadronicParameters.
 
    - QGSP_BIC_HP and QGSP_BIC_AllHP use EM Opt4 (instead of EM Opt0 as before).
 
    - QBBC: use G4IonPhysicsXS.
 
    - PhysListFactory: added extra EM option "EM0", enabling default Opt0
        EM physics configuration.
 
    - Shielding, ShieldingLEND, QGSP_BIC, QGSP_BIC_HP, QGSP_BIC_AllHP: moved
        implementation to source, removed templates.
 
    - Added "EM0" option to g4alt::G4PhysListFactory (via G4PhysListRegistry).
 
    - PhysListFactory: added extra EM options WVI and _EM.
 
    - Shielding: replaced use of env variable G4NEUTRONHP_PRODUCE_FISSION_FRAGMENTS
        with a call to G4ParticleHPManager::SetProduceFissionFragments().
        Resolving Valgrind memory run-time errors.
 
    
 
- Util:
    
    - G4PhysListUtil: added methods GetCaptureProcess() and
        GetFissionProcess().
 
    - G4DataQuestionaire: substituted G4NEUTRONXSDATA with G4PARTICLEXSDATA.
 
    
 
Run
- Threading
    
    - Replaced pthread-style <void*(void*)> function
        signatures with <void(G4WorkerThread*)> as it is now
        unnecessary.
 
    - Removed WIN32 conditional for G4THREADCREATE in
        G4UserWorkerThreadInitialization, no longer needed.
 
    - Changed G4Thread to G4NativeThread when setting pin affinity in
        G4WorkerThread.
 
    - Updated use of thread-local static variables to function returning
        a thread-local static reference. New model for allowing support of
        multi-threading on Windows DLLs.
 
    
 
- Added TiMemory auto-timer macros to some key functions in G4RunManager,
    G4RunManagerKernel, G4MTRunManager, and G4MTRunManagerKernel.
 
- Added TiMemory libraries and includes to CMake script for optional use.
 - G4WorkerThread: use G4GeometryWorkspace and G4SolidsWorkspace the same
    way as the other workspaces, through the templated worskspace pool class.
 
- G4PhysicsListHelper: added two new EM physics process types.
 
- Minor update to G4Run constructor to invoke G4StatAnalysis::ResetCpuClock();
    this enables the calculation of the FOM for G4StatAnalysis without requiring
    each instance to hold it's own timer.
 
- Added calls to new G4VScoreNtupleWriter, if activated.
    The concrete utility class can implement automated storing of hits
    collections of G4THitsMap type (used by primitive scorers) with Geant4
    analysis tools.
 
- Added clearing of G4AssemblyStore in G4RunManager::ReinitializeGeometry().
 - G4PhysicsListHelper: added new methods to set low/high 'looper'
    thresholds in Transportation classes.
 - G4RunMessenger, G4WorkerRunManager: fixed printout typos.
 
Track & Tracking
- G4SteppingManager: remove unnecessary checks of process manager for
    generic ion and muonic atom.
 
- Updated use of thread-local static variables to function returning
    a thread-local static reference. New model for allowing support of
    multi-threading on Windows DLLs.
 
- Fixed potential memory leaks in assignment operator and copy constructor
    for G4Step and G4Track.
 
- G4VSteppingVerbose: reset singleton pointer in destructor.
    Addressing problem report
    #2095.
 
- Added protection for potential null pointer dereferencing in G4Track.
    Addressing problem report
    #2097.
 
- Some code cleanup.
 
Visualization
Fixed compilation warnings on gcc-8.1.0.
- Management
    
    - Implemented UI command /vis/viewer/set/colourByDensity: simple
        algorithm to allow colouring of detector elements based on materials
        density.
 
    - Introduced UI command /vis/drawLogicalVolume, synonymous with
        /vis/specify. Both commands create a new scene and invoke
        /vis/scene/add/logicalVolume. Includes overlap checking.
 
    - Moved time window parameters from G4OpenGLStoredViewer to
        G4ViewParameters. Now one can interpolate time window parameters (using
        /vis/viewer/interpolate) and make a movie of particles moving
        through time. To do this, see guidance on /vis/viewer/set/timeWindow/
        commands.
 
    - G4ViewParameters: fix for /vis/viewer/save.
        Completed PrintDifferences(), operator<<() and
        operator!=() for time window parameters.
        Provide proper Get and Set functions for time parameters.
 
    - Moved time window commands to /vis/viewer/set/timeWindow/.
        Deprecated the equivalent /vis/ogl/set/ commands.
        Copied /vis/ogl/set time window commands to
        /vis/viewer/set.
 
    - G4VSceneHandler: reduced repetitive error messages.
 
    - Improved some UI commands.
 
    - /vis/viewer/colourByDensity, changed defaults: algorithm 1
        is default; gm/cm3 is the default unit; subsequent parameters
        are not omitable.
 
    - Removed G4VViewer::G4Spline.
 
    - /vis/viewer/set/timeWindow/displayLightFront: changed defaults.
 
    - /vis/viewer/colourByDensity: changed defaults.
 
    - Small bug fix in G4ViewParameters operator<<().
 
    - /vis/drawVolume and /vis/scene/add/volume now draw
        all occurrences of a physical volume.
 
    - Fixed bug for multiple worlds in /vis/touchable/dump.
 
    - Reinstated G4VViewer::G4Spline.
 
    - /vis/scene/add/volume (and, consequently, /vis/drawVolume):
        improved guidance; describe the use of a regular expression.
        If physical-volume-name is "world" (the default), the top of the
        main geometry tree (material world) is added. If "worlds", the
        top of all worlds - material world and parallel worlds, if any - are
        added. Otherwise a search of all worlds is made.
        In the last case (a search of all worlds) all physical volume names are
        matched against the first argument of this command.
 
    - G4VisManager: moved creation of top level commands to end so that
        they may pick up guidance and parameters from invoked commands.
 
    - /vis/drawVolume and /vis/draw/logicalVolume: pick up
        guidance and parameters from /vis/scene/add/....
 
    - /vis/scene/add/trajectories: avoid adding new model if one
        exists. If no trajectories model exists in the scene create a new one...
        else it already exists and there is no need to add a new one
        because G4TrajectoriesModel simply describes trajectories in the
        trajectories store whatever the type.
 
    - Added /vis/touchable/findPath UI command.
 
    - Improved several other facilities for accessing touchables.
 
    - Simplify scene checking and fixed minor bug.
 
    - In /vis/scene/add/logicalVolume, enable overlap checking
        text-only output and drawing.
 
    - Minor bug fixes in /vis/scene/add/userAction and
        /vis/drawLogicalVolume.
 
    
 
- Modeling:
    
    - Implemented UI command /vis/viewer/set/colourByDensity.
 
    - G4LogicalVolumeModel: added overlap checking.
        Fixed Coverity warning for unnecessary check on pointer.
 
    - Extensive revision of handling of touchables.
 
    - Added regex search. Match the string with the required match. The latter
        can be of the form "/regexp/", where regexp is a regular expression
        or a plain string, in which case there must be an exact match.
 
    - Improved description of G4TrajectoriesModel.
 
    - Initialise line width.
 
    - G4LogicalVolumeModel: enable overlap checking text-only output and
        drawing.
 
    
 
- OpenGL
    
    - Implemented G4OpenGLStoredViewer::AddPrimitiveForASingleFrame().
 
    - Updated G4CONDITIONWAIT(...) to new C++11 requirements.
 
    - G4OpenGLQtViewer: replaced explicit usage of G4Mutex locking/unlocking
        with G4AutoLock pointers initialized with std::defer_lock as this
        enables one to avoid any deadlock or non-locked condition_variable
        waits by using G4AutoLock::owns_mutex().
 
    - Small bug fixes, including light front.
 
    - Disable GL_LIGHTING for 3D markers.
 
    - G4LogicalVolumeModel: added overlap checking (printing only for now).
        Avoid multiple printing of overlaps. Print only first time for a given
        instantiation of G4LogicalVolume.
 
    - Added G4TouchableGlobalTransformScene: returning a pointer to the global
        transform of a touchable.
 
    - Added G4TouchableUtils: implementing FindGlobalTransform().
 
    - Added setLineWidth() for trajectory models.
 
    - Open header files to users. In all header files, changed guards
        (similarly for OPENGLX, XM, QT, WT and WIN32), so that a user may
        include the OpenGL headers and use the OpenGL library. This will be
        useful if a user (or a developer) wishes to write a new vis driver
        based on the existing OpenGL code.
 
    
 
- OpenInventor
    
    - Implemented kernel visit for "colour by density".
 
    - Enable InventorQt driver.
 
    - Fixes to CMake build script; make OIQT driver installation optional.
 
    
 
- Raytracer
    
    - Use HyperStep of G4ParallelWorldProcess to draw volumes defined in a
        parallel world.
 
    - Updated use of thread-local static variables to function returning
        a thread-local static reference. New model for allowing support of
        multi-threading on Windows DLLs.
 
    - Conform to revision of handling touchables.
 
    - G4RTMessenger: fixed printout typos.
 
    
 
Environments
- G4Py:
    
    - Updated interfaces for release 10.5.
 
    - Fixed setting of CMAKE_INSTALL_PREFIX; addresses problem report
        #1924.
 
    
 
Data sets
- New low-energy data set version, G4EMLOW-7.7:
    
    - Updated microelec elastic cross-section files.
 
    - Added new JAEA elastic model data files.
 
    - Added new sampling table data for the Seltzer-Berger Bremsstrahlung
        model under brem_SB/SBTables.
 
    - Added a new directory fluor_XDB_EADL with most recent data on binding
        energies including rare high Z elements.
 
    
 
- New data files for proton and neutron density profiles G4INCL-1.0:
    
    - New data set based on Hartree-Fock-Bogoliubov calculations for radius
        and diffuseness parameter for the proton and neutron density profiles.
        The data are used for the INCL++ model, as described in the following
        publications:
        - K.Bennaceur and J.Dobaczewski, Comput. Phys. Commun. 168, 96 (2005).
        - J.L.Rodriguez-Sanchez, J.-C.David, D.Mancusi, A.Boudard, J.Cugnon
          and S.Leray, Phys. Rev. C 96, 054602 (2017). 
    
 
- New data set version G4PhotonEvaporation-5.3 for nuclear de-excitation
    data:
    
    - Set IC coefficient = 1e20 for E0 gamma/IC transition of 809.907 keV
        in U234 (z92.a234). Correction needed for Pa234m decay simulation.
        Addressing problem report
        #2076.
 
    - Corrected typo in Te125 (z100.a247).
 
    
 
- New data set version for radioactive-decay processes, G4RadioactiveDecay-5.3:
    
    - Added capture from N shell for I-125, z53.a125. Data taken from DDEP.
 
    - Added alpha decay line in z88.a223 (Ra223). Data taken from DDEP.
 
    - Updated alpha decay in z86.a219 (Rn219). Data taken from DDEP.
 
    - Correction of energy level in z85.a215 (At215).
 
    - Slight update for alpha decay in z84.a215 (Po215).
 
    - Added firstForbidden tag in beta decay channel of z83.a211 (Bi211).
        Data taken from DDEP.
 
    - Added firstForbidden tags in beta decay channels of z81.a207 (Tl207).
        Data taken frpm DDEP.
 
    - Update data for  z37.a82 (Rb82). Data taken from DDEP.
 
    
 
- New data files for evaluated cross-sections G4PARTICLEXS-1.1:
    
    - New data set replacing G4NEUTRONXS; produced from G4NDL-4.5 for
        neutrons, G4TENDL-1.3.2 for p, d, t, He3, He4 and LEND1.3 for gamma.
 
    
 
- New data set version for evaluated cross-sections from SAID database,
    G4SAIDDATA-2.0:
    
    - Updated data for p,n,pi,k inelastic and elastic.
 
    - Updated data for piN-->2piN and gamma induced reactions.
 
    
 
Examples
- Updated reference outputs, macros and scripts.
 
- Fixes for Doxygen documentation and coding guidelines.
 
- Updated reference outputs, macros, READMEs and scripts.
 - Updated vis/UI setup. Removed no longer needed G4VIS/UI_USE.
 - Added inclusion of G4Types.hh in files for self-consistency.
 - Fixed compilation warning on gcc-8.1.0.
 - advanced
    
    - air_shower
        
        - Drop detector configuration through preprocessor directives. Use
            detector messenger instead.
            Reorganised and simplified code in UltraDetectorConstruction.
            Geometry can now be changed in the same interactive session.
            Allow to remove reflecting surface.
 
        - Reorganised macros. Added new macros.
 
        - No default PrimaryGeneratorAction in UserActionInitialization.
 
        
 
    - brachytherapy
        
        - Included new brachy source (I-125 Oncura 6711).
 
        - Added directory test_macro and included more analysis files.
 
        
 
    - ChargeExchangeMC
        
        - CexmcException: fixed typo in printout.
 
        
 
    - composite_calorimeter
        
        - General clean-up of the example including user actions and SD
            classes.
 
        
 
    - doiPET
        
        - New example simulating depth-of-interaction enabled positron
            emission tomography (PET) scanner.
 
        
 
    - gammaray_telescope
        
        - Fixed issues reported by Valgrind. Addressing problem report
            #1981.
 
        - GammaRayTelHadronPhysics, GammaRayTelIonPhysics: replaced explicit
            high-energy limit of hadronic physics with the one from
            G4HadronicParameters.
 
        
 
    - hadrontherapy
        
        - Added function DefineMaterial() in DetectorConstruction to define
            materials not contained in the NIST database.
 
        - Added the Phase Space; PrimaryGenerator and DetectorSD modified
            accordingly.
 
        - Added HadrontherapyRBE class for RBE calculation.
 
        - Removed analysis for LET and dose.
 
        - In HadrontherapyDetectorSD, added histograms for the energy
            deposited and kinetic energy in the phantom slices.
 
        - TrentoProtonPassiveBeamLine changed in TIFPAProtonPassiveBeamLine.
 
        - LET class completely renewed with new calculation approaches.
 
        - Updated user interface initialisation in main().
 
        - Code cleanup.
 
        
 
    - iort_therapy
        
        - Removed readout geometry together with Hit class. Including
            scoring mesh.
 
        - Fixed bug in the way to delete the geometry of the disk.
 
        - Removed analysis class.
 
        - Removed G4Decay and IORTMatrix as no longer needed.
 
        - Removed Protontherapy.
 
        - IORTDetectorConstruction: fixed initialisation setting of inner
            radius for "DiscoIORT0" and "DiscoIORT1" components.
            Fixed typos in printout.
 
        
 
    - lAr_calorimeter
        
        - FCALTBEventAction: fixed typo in printout.
 
        
 
    - medical_linac
        
        - Simplified PhysicsList; fixing problems on Windows.
 
        - Do not explicitly delete singletons, added extra initialisation.
 
        - Do not trigger /run/beamOn during detector construction in
            ML2AcceleratorConstructionMessenger and ML2PhantomConstructionMessenger.
 
        - Fixed typos in macros. Set Nloop=10 if the exp data are not provided.
 
        
 
    - microbeam
        
        - DetectorConstruction: removed user limits per volume; added
            protection from double initialisation.
 
        - Use default random engine in main().
 
        - PhysicsListMessenger: set default step limit to 1 mm.
 
        - StepMax: use thread safe class from EM extended examples.
 
        - PhysicsList, PhysicsListMessenger: use StepMax.
 
        
 
    - nanobeam
        
        - Relaxed EM field settings.
 
        - Simplified UI session and updated default.mac macro.
 
        
 
    - purging_magnet
        
        - Removed useless buffer singleton PurgMagAnalysisManager and
            call directly G4AnalysisManager tools.
 
        - Clean-up in the SteppingAction.
 
        
 
    - underground_physics
        
        - DMXPhysicsList: replaced explicit high-energy limit of hadronic
            physics with the one from G4HadronicParameters.
 
        
 
    - xray_fluorescence
        
        - XrayFluoMercuryDetectorMessenger: fixed typo in printout.
 
        
 
    
 
- basic
    
    - B2
        
        - Modified default input macro exampleB2.in to reduce the output.
 
        
 
    - B3
        
        - Replaced explicit printing of Run ID with /run/printProgress.
 
        - Added StatAnalysis to example B3b to demonstrate statistical
            computations.
 
        
 
    - B4
        
        - Replaced deprecated /vis/ogl/set/ with
            /vis/viewer/set/timeWindow command in visualization
            macros.
 
        - Fix to CMake configuration script.
 
        
 
    
 
- extended
    
    - analysis
        
        - Macro & commands review: removed obsolete /N03 top command
            directory; added protection against warnings issued from
            ReinitializeGeometry() if called in PreInit phase;
            added test for all commands defined in this example.
 
        - Added missing include in DetectorConstruction source.
 
        - New examples B3aScoreWriter and B4dScoreWriter based on basic
            example B3a and B4d respectively, demonstrating saving of scorers
            hits in form of n-tuples in a Root file using Geant4 analysis
            tools.
 
        
 
    - biasing
        
        - B03
            
            - B03PhysicsList: replaced explicit high-energy limit of
                hadronic physics with the one from G4HadronicParameters.
 
            
 
        - GB03
            
            - Fixed bug in GB03BOptnSplitOrKillOnBoundary in the
                computation of the killing probability.
 
            
 
        
 
    - electromagnetic
        
        - TestEm2
            
            - DetectorConstruction: improved method names, do not allow to
                clear geometry between runs.
 
            - StepMax: use thread safe instantiation, messenger merged with
                PhysicsListMessenger.
 
            - Use MixMax default random number generator.
 
            - PhysicsList: make Opt0 default, removed local instantiation of
                G4Decay.
 
            - PhysListEm5DStandard: experimental PhysList with the new 5D
                gamma conversion model.
 
            - Corrected input macros to optimise output.
 
            - Run: added protection for division by zero.
 
            
 
        - TestEm3
            
            - DetectorConstruction: improved method names, do not allow to
                clear geometry between runs.
 
            - StepMax: use thread safe instantiation, messenger merged with
                PhysicsListMessenger.
 
            - Use MixMax default random number generator.
 
            - Removed radioactive.mac input macro.
 
            - PhysicsList: make Opt0 default, removed local instantiation
                of G4Decay.
 
            - Corrected input macros to optimise output.
 
            
 
        - TestEm5
            
            - PhysListEm5DStandard: experimental PhysList with the new
                5D gamma conversion model.
 
            - Added test of new ion ionisation model, which is included in
                the new physics constructor PhysListEm19DStandard;
                added atima.mac macro file to compare results with known data.
 
            - StepMax: use thread safe instantiation, messenger merged with
                PhysicsListMessenger.
 
            - Use MixMax default random number generator.
 
            - Removed obsloete class PhysListEmStandardSSM.
 
            - PhysicsList: make Opt4 default, removed local instantiation
                of G4Decay.
 
            - Corrected input macros to optimise output.
 
            
 
        - TestEm7
            
            - SteppingAction: added edep at end of step for photo-electric.
 
            
 
        - TestEm8
            
            - Fix for thread safety in PrimaryGeneratorAction.
 
            - Disabled tracking cuts in input macro TestEm8.in.
 
            - Corrected input macros to optimise output.
 
            
 
        - TestEm11
            
            - SteppingAction: added edep at end of step for photo-electric.
 
            
 
        - TestEm12
            
            - Updated dna.mac input macro.
 
            
 
        - TestEm14
            
            - Extended with gamma -> e+ e- 5D conversion code.
 
            - PhysicsList: added G4EmStandardPhysicsWVI, GS, SS.
 
            - Use G4RotationMatrix to convert to gamma reference system.
 
            - Use default random number generator.
 
            
 
        - TestEm15
            
            - SteppingAction: no conversion case protection, use directly
                G4ThreeVector::orthogonal() for coordinate axis
                definition.
 
            - DetectorConstruction: use G4NistManager to allow predefined
                materials.
 
            - Minor cosmetics in DetectorConstruction and SteppingAction
                classes.
 
            
 
        - TestEm18
            
            - Updated PhysListEmStandard, livermore, penelope.
 
            
 
        
 
    - error_propagation
        
        - Use implicit destructor in ExErrorMagneticField.
 
        
 
    - exoticphysics
        
        - monopole
            
            - Changed G4MonopoleEquation to use G4MagneticField instead of
                not use G4ElectroMagneticField, as equations of motion do not
                use electric field.
 
            - G4MonopolePhysics: fixed static analyzer warning.
 
            - G4MonopoleTransportation: removed several static variables;
                fixed code layout.
 
            - Define the field setup data in the DetectorConstruction class
                to be thread-local using G4Cache utility.
 
            - Macro review and code clean-up.
 
            - Updated main() to make possible passing the monopole
                setup in both batch and interactive mode.
                Removed run initialization and added init_vis.mac macro for
                interactive session.
 
            - Added warning in G4MonopolePhysics when setting monopole
                parameters fails.
 
            - Explicitly define physics lists (FTFP_BERT default).
 
            - Added the default value of magnetic field to 0.2 tesla
                and also setting of this value in monopole.in and init_vis.mac.
 
            - Fixed updating geometry parameters after initialization
                by calling G4RunManager::ReinitializeGeometry() instead of
                GeometryHasBeenModified().
 
            - Added printing production cuts table in
                RunAction::EndOfRunAction.
 
            
 
        - phonon
            
            - Update references for caustic and timing.
 
            
 
        
 
    - field
        
        - Macro review and code clean-up: removed EventAction, RunAction,
            RunActionMessenger used only for storing random numbers, already
            available in kernel; added test for commands
            defined in the example at the end of the main input macro;
            improved visualization of geometry; added beamOn 10 button
            in gui.mac; updated README files.
 
        - BLineTracer
            
            - Fixed compilation error for missing header inclusion.
 
            
 
        - field01
 
            
            - Added code in main() to demonstrate use of
                G4PhysicsListHelper's UseLowLooperThresholds() and
                UseHighLooperThresholds() methods.
 
            - Added F01RunAction class to demonstrate fine grained control
                of G4[Coupled]Transportation's parameters for (killing) looping
                tracks (tracks which take too many iterations to finish
                integration; typically due to electrons in vacuum, but also
                can affect other charged particles).
 
            - Enable use of FSAL stepper and driver (to use it uncomment
                line in main()).
 
            - Added command /field/setField Bx By Bz unit.
 
            
 
        - field02
 
            
            - Added command /field/setField Bx By Bz unit.
 
            
 
        - field03
            
            - Added commands /field/setField Bx By Bz unit and
                /field/setLocalField Bx By Bz unit.
 
           
 
        - field05
 
        - field06
           
           - Macro review and code clean-up;
               added beamOn 10 button in gui.mac.
 
           
 
        
    geometry/transforms
        
        - DetectorConstruction::PlaceWithAxialRotations(): use
            rotate(angle, axis).
 
        
    hadronic
        
        - envHadronic: added env variables for particleHP.
 
        - Hadr00
            
            - DetectorConstruction: cleanup geometry.
 
            
 
        - Hadr01
            
            - Cleaned up geometry definition.
 
            - DetectorConstruction: minor improvement of printout.
 
            - Added test macros.
 
            
 
        - Hadr02
            
            - Introduced CRMC (Cosmic Ray Monte Carlo) interface and created
                a physics list which uses this interface for very high energy
                hadronic interactions, while using FTFP_BERT for the rest.
 
            - Replaced explicit high-energy limit of hadronic physics with
                the one from G4HadronicParameters.
 
            
 
        - Hadr03
            
            - PhysicsList: added G4HadronElasticPhysicsXS.
 
            
 
        - Hadr06
            
            - PhysicsList: use G4IonPhysicsXS.
 
            
 
        - Hadr07
            
            - PhysicsList: use G4IonPhysicsXS.
 
            - SteppingAction: added edep at end of step for photo-electric.
 
            
 
        - NeutronSource
            
            - PhysicsList: activated use of GetHadronicModel() in
                ConstructProcess().
 
            - PhysicsList: use G4IonElasticPhysics and G4IonPhysicsXS.
 
            
 
        
    medical/DICOM
        
        - Enabled CMake package configuration. Added DICOM_USE_DCMTK and
            DICOM_USE_HEAD options backwards compatible with environment
            variables. Updated CMake scripts to handle DICOM_USE_HEAD setup
            and installation.
 
        - DicomHandler implements GetDicomData{Path,File} which provides
            a fallback path to data libraries directory for DICOM2 and handles
            DICOM_USE_HEAD situation.
            Skipping 2 bytes in implicit VR (problem report
            #2101).
            Corrected reading for 'fPixelSpacingY' (problem report
            #2102).
 
        - Phantom parameterization classes take an argument specifying color
            file.
 
        - DicomEventAction doesn't print every event; removed
            DicomRun::RecordEvent() incrementing numberOfEvent (done
            by G4Run::RecordEvent()).
 
        - Cleaned up output; now just a summary is provided and per-voxel
            is output to file only.
 
        - Moved Data.dat to Data.dat.old and CMake copies correct
            Data.dat.{old,new} to Data.dat in binary directory based on
            DICOM_USE_DCMTK setting.
 
        - Use canonical definition for DICOMRunAction; removed wrong
            singleton specification.
 
        - DicomPartialDetectorConstruction: fixed shadowing of base class
            data for 'fMateIDs'. Fixed type conversion.
 
        - Updated DICOMUtilities.cmake to handle Windows builds; using
            modern CMake DICOM::target library alias.
 
        
    medical/DICOM2
        
        - New example demonstrating how to specialise and extend
            functionalities from DICOM example.
 
        
    medical/dna
        
        - Removed use of obsolete RanecuEngine.
 
        - chem5:
            
            - New example, variation of chem4, showing how to activate
                chemistry code and score the radiochemical yield G.
 
            
 
        - dnaphysics:
 
        - icsd:
            
            - Activated ntuple merging.
 
            - Updated plot.C for reading ntuples merged with row-wise
                mode (now default).
 
            
 
        - mfp:
            
            - Rewritten physics list and macro mfp.in to avoid factory
                usage.
 
            
 
        - microyz:
            
            - Activated ntuple merging.
 
            - Updated plotting function.
 
            - Updated plot.C for reading ntuples merged with row-wise
                mode (now default).
            
 
 
        - neuron:
            
            - Fixed PhysicsList to allow running on Windows.
 
            
 
        - pdb4dna:
            
 
        - slowing:
            
            - Updated input script and code cleanup.
 
            
 
        - spower:
            
            - Rewritten physics list and macro spower.in to avoid factory
                usage.
 
            
 
        
    medical/fanoCavity
        
        - ActionInitialization: added printout of Run::EndOfRun().
 
        - PhysListEmStandard_GS, PhysListEmStandard_SS, PhysListEmStandard,
            PhysListEmStandard_WVI, PhysListEmStandard_option3: use the same
            EM parameters as in physics_lists module.
 
        - Added PhysListEmStandard_option4.
 
        - Updated physics lists according to settings in main module.
 
       
    medical/fanoCavity2
        
        - Updated physics lists according to settings in main module.
 
        
    optical/LXe
        
        - LXeDetectorConstruction: moved DefineMaterials() to constructor.
 
        - Replaced local physics configuration with FTFP_BERT +
            G4OpticalPhysics/
 
        - Deleted LXeEMPhysics, LXeGeneralPhysics, LXeMuonPhysics and
            LXePhysicsList.
 
        - Removed class LXeSteppingVerbose.
 
        - In input macros, removed /LXe/detector/update and added
            /run/initialize. General cleanup.
 
        - Addressing problem report
            #2042.
 
        - Replaced local physics with FTFP_BERT + G4OpticalPhysics; deleted
            custom lists LXeEMPhysics, LXeGeneralPhysics, LXeMuonPhysics and
            LXePhysicsList; use G4EmStandard_option4 EM physics.
 
        - Added LXeRun to record and print results at the end.
 
        - Removed LXeSteppingVerbose and cleanup of macros.
 
        - Removed LXeUserEventInformation, use LXeEventAction instead;
            removed LXeRecorderBase, replaced with LXeHistoManager.
 
        - Removed unneeded direction named random.
 
        - Fixed MT issue: random directory should not be set via EventAction,
            this functionality is moved to DetectorConstruction.
 
        - LXeDetectorConstruction: removed definition of random number
            directory from the code, user may define this via UI command.
 
        
    optical/OpNovice
        
        - Macro review: added test for /OpNovice/phys/cerenkovMaxPhotons
            command at the end of OpNovice.in macro; updated README files.
 
        
    optical/OpNovice2
        
        - New example OpNovice2 for investigation of optical properties and
            parameters. Details of optical photon boundary interactions on a
            surface are recorded, as well as the details of optical photon
            generation and transport.
 
        
    parallel
        
        - MPI
           
           - New example exMPI04 demonstrating merging n-tuples via MPI.
 
           - Adapted g4mpi to allow to define an extra worker for collecting data
               from processing workers (needed for merging n-tuples).
 
           - Added classes for n-tuple merging.
           
 - In exMPI03: fixed warning from analysis when opening the second
               output file (dose-merged) within the same run.
 
           
 
        - TBB
           
           - Updated to work with migration from POSIX threads to C++11
               threads.
 
           
 
        - ThreadsafeScorers
           
           - TSPhysicsLists no longer declares G4VPhysicsConstructors in
               header.
 
           - Added TiMemory timing to TSPrimaryGeneratorAction and G4Run.
 
           - Added TiMemory ASCII output and serialization to main().
 
           - Fixed shadowing warnings.
 
           - Removed G4MUTEX_INITIALIZER from constructors of G4TAtomicHits.
 
           - Added scorers with G4StatAnalysis and G4ConvergenceTester.
 
           - Improved scheme for using TiMemory to time how long the scoring
               takes w.r.t. storage container and PS.
 
           - Included plot generation in main.
 
           
 
        
    persistency
        
        - gdml/G02
 
        - gdml/G03
           
           - RunAction: removed visualisation command.
 
           
 
        - P02
           
           - Updated selection.xml file with new members of
               G4MaterialPropertiesTable.
 
           - Fixed crash on reading due to duplication of materials in
               .root file. Addressing problem report
               #2065.
 
           
 
        
    physicslist
        
        - shared
           
           - Copy script works whether include/src directories exist or not.
 
           
 
        
    radioactivedecay
        
        - Activation
           
           - envHadronic: added env variables for particleHP.
 
           - PhysicsList: use G4IonElasticPhysics and G4IonPhysicsXS.
 
           
 
       - rdecay01
           
           - Add timeWindowBiased.mac input macro and data.
 
           
 
       - rdecay02
           
           - PhysicsList: in constructor, set nuclide table half-life
               threshold to 0.1 ps and level tolerance to
               1.0 eV, to not miss short-lived nuclides.
 
           - HistoManager, TrackingAction: added two histograms to look
               at 0-0.1 MeV, and 0-1 MeV ranges in particle
               emission spectra.
 
           - Input macros: updated to latest UserEvapData_z83.a210,
               UserRadData_z82.a210, UserEvapData_z102.a252 database formats.
               Removed energy unit (keV) from call to /gun/ion in
               u238b.mac, po201m.mac and UserEvapDataBiTest.mac.