
                 Geant4 11.2 - patch-02 Release Notes
                 ------------------------------------

                                                           21 June 2024

List of fixes included in this public patch since the public release 11.2.1:

  o Configuration
    -------------
    + CMake:
      o Fix to do not export HDF5 version to Geant4Config.
      o Fixed find_package(SoXt) and find_package(SoWin).
      o In main CMake source script, VTK driver library requires the application
        of VTK's vtk_module_autoinit cmake function, but the existence of the
        target was not checked, leading to configure time errors. Check for the
        existence of both G4visVTK and G4visVTK-static targets before applying
        vtk_module_autoinit. Addressing problem report #2600.
      o Mention the possibility of using cvmfs datasets in the cmake configuration.
      o Updated FindPythia6 module to account for lib64.
        Applies GitHub PR#63 (https://github.com/Geant4/geant4/pull/63).
      o Disabled use of FindPythia6 outside of internal Geant4 examples.
      o Updated FindPythia8 module to reduce capability to only that required by
        py8decayer example and emit error if used in project outside Geant4 or
        py8decayer. Applies GitHub PR#68 (https://github.com/Geant4/geant4/pull/68). 
      o Fixed escaping of regex in geant4_module_check to satisfy latest Python3.
      o Updated dataset: G4NDL-4.7.1.

  o Analysis
    --------
    + Do not delete G4Accumulable<T> default constructor, as it prevents from
      using it in an array without an explicit initialization in the header.
    + Fixed wrong conversion to G4String in G4THnToolsManager, leading to
      compilation error on gcc compiler with C++23 Standard enabled.

  o Digits_Hits
    -----------
    + Fixed compilation error in G4THitsMap on macOS/clang with C++23 Standard
      enabled.

  o Externals
    ---------
    + g4tools:
      o Fixed compilation warnings on gcc when LTO settings are enabled.
      o Fixed string assignments in 'window' and 'pixwin', to support either
        UNICODE or UTF-16 encoding on Windows. Addressing problem report #2599.
    + ptl:
      o Changed Windows.h to windows.h, to allow build Windows/MinGW.
        Not relevant for native VC++ builds.

  o Geometry
    --------
    + magnetic_field:
      o Fixed potential uninitialised data, detected in ATLAS LTO builds.
    + navigation:
      o Fixed compilation error in G4Navigator on Windows VC++ with C++20 Standard
        enabled. Based on [GitHub PR#69](https://github.com/Geant4/geant4/pull/69).
    + solids/specific:
      o Use std::size_t for array sizes in G4PolyhedraSide and G4PolyPhiFace,
        fixing compilation warnings on gcc when LTO settings are enabled.
    + volumes:
      o Use std::map instead of std::vector to define G4LogicalSkinSurfaceTable,
        to speedup search of skin surfaces in large tables, as already done
        previously for G4LogicalBorderSurface. Addressing problem report #2598.

  o Global
    ------
    + Changed Windows.h to windows.h, to allow build Windows/MinGW.
      Not relevant for native VC++ builds. Use _WIN32 to detect Windows system.
    + Fixed compilation error in G4PhysicsModelCatalog on Windows VC++ with
      C++20 Standard enabled.
      Based on [GitHub PR#69](https://github.com/Geant4/geant4/pull/69).
    + Provide helpful error message when GEANT4_DATA_DIR is set to an invalid
      location.
    + Updated date and version for 11.2.2.

  o Intercoms
    ---------
    + G4UIparsing: checking either 'int' or 'long int' parameter value are
      within range of G4int or G4long.
    + Fix in G4GenericMessenger::DeclareMethod() which was wrongly converting
      valid Boolean parameters. Improved SetNewValue() function.
      Addressing problem report #2606.

  o Interfaces
    ----------
    + Use std::size_t as arrays size in G4InteractorMessenger and G4UIArrayString,
      fixing compilation warnings on gcc when LTO settings are enabled
    + Fixed string assignments in G4Win32 and G4UIWin32, to support either
      UNICODE or UTF-16 encoding on Windows. Addressing problem report #2599.

  o Materials
    ---------
    + Fix in G4NistMaterialBuilder::HepAndNuclearMaterials(): G4_BRASS,
      G4_BRONZE and G4_STAILESS_STEEL are now defined using mass fractions
      of components instead of number of atoms, in order to have more natural
      description. Addressing problem report #2601.
      Results may be changed on level of 10^-5 due to numerical differences.

  o Persistency
    -----------
    + GDML:
      o Disabled schema validation on Windows platforms, as XercesC currently does
        support only 'http'.
      o Fix in schema module gdml_solids.xsd for tessellated solid semantics, to
        correctly reference facet types. Fixes schema validation errors which may
        occur on some custom XSD validation tools (fix included in GDML-3.1.7).
      o Use std::map instead of std::vector to iterate on logical-skin surfaces
        in G4GDMLWriteStructure::GetSkinSurface().
        Part of fix addressing problem report #2598.

  o Physics Lists
    -------------
    + lists:
      o G4PhysListFactory: added three new variants of 'Shielding' physics list,
        using the model G4LightIonQMDReaction: 'ShieldingLIQMD', 'ShieldingLIQMD_HP'
        and 'ShieldingLIQMD_HPT'. Addressing problem report #2615.
        Note that 'ShieldingLIQMD' and 'ShieldingLIQMD_HP' refer to the same
        configuration, the latter is introduced only for consistency.

  o Processes - Electromagnetic
    ---------------------------
    + dna:
      o Fixed compilation error on Windows VC++ with C++20 Standard enabled.
        Added missing declarations for TG4MoleculeShoot specialisations on G4Track.
        Based on [GitHub PR#69](https://github.com/Geant4/geant4/pull/69).
      o Fixed compilation error on macOS/clang with C++23 enabled, for the use
        of std::function in G4OctreeFinder.
    + standard:
      o G4BetheHeitler5DModel: fixed computation of sinTheta sampling and added
        checks on arguments of G4Exp in SampleSecondaries() method, to avoid FPE
        problems in the case of -O3 optimisation on alma9.
    + utils:
      o G4EmUtility: simplified computation of cross-section maximum for
        discrete  processes to fix FPE issues on alma9 when -O3 compiler
        option is used.
      o Fixed compilation error in G4EmConfigurator on Windows VC++ with
        C++20 Standard enabled.
        Based on [GitHub PR#69](https://github.com/Geant4/geant4/pull/69).

  o Processes - Hadronic
    --------------------
    + models/binary_cascade:
      o Removed throwing of exception if momentum cannot be corrected in rare
        cases for D + H around 1600 MeV; the initial state is now kept unchanged
        instead.
    + models/coherent_elastic:
      o Fixed compilation warnings for potentially initialised local variables
        in SampleThetaCMS() for G4DiffuseElastic and G4NuclNuclDiffuseElastic.
    + models/lend:
      o Fixed compilation warnings for potentially initialised local variables
        in ptwXY_createFromFunctionZeroCrossing().
      o Define _USE_MATH_DEFINES before inclusion of <cmath> to define
        non-standard math macros such as M_PI on Windows. Use _WIN32 instead of
        WIN32 to detect Windows system. Use basetsd.h instead of BaseTsd.h to
        allow for compilation on Windows/MinGW.
    + models/inclxx:
      o Fix in G4INCLInteractionAvatar to not use local energy for all antibaryons.
    + models/particle_hp:
      o G4CrossSectionHP: fixed method taking into account temperature effect
        (the difference due to this fix is small).
        Fixed elastic and capture cross-sections in Argon, by using only the main
        isotope Z=18, A=40 (there was up to 50% overestimation of cross-sections
        due to wrong data for rare isotopes of argon).
        Fixed cross-sections for rare target atoms Promethium, Astatine, Radon
        and Francium.
      o Fixed compilation error in G4ParticleHPManager and G4ParticleHPNames on
        Windows VC++ with C++20 Standard enabled.
        Based on [GitHub PR#69](https://github.com/Geant4/geant4/pull/69).
      o Fixed remaining compilation warnings on gcc compiler when LTO settings
        are enabled.
    + radioactive_decay:
      o G4BetaPlusDecay, G4BetaMinusDecay: added extra numerical protection on
        level of 1 eV to avoid precision lost and production of neutrino with
        negative kinetic energy. In case Q-value is bigger than mass difference,
        betas in the tail of the spectrum may have more energy than residual free
        energy. To minimize the non-conservation of 4-momentum, in such cases,
        neutrino and daughter nucleus are given 1 eV, leading to non conservation
        of linear momentum because momentum of beta is not counterbalanced.

  o processes - solidstate/phonon
    -----------------------------
    + Fixed compilation error in G4LatticeManager on Windows VC++ with
      C++20 Standard enabled.
      Based on [GitHub PR#69](https://github.com/Geant4/geant4/pull/69).

  o processes/optical
    -----------------
    + G4OpBoundaryProcess: correctly calculate Fresnel reflection/refraction,
      when material property TRANSMITTANCE is specified. The ratio of Fresnel
      reflection/refraction now does not change when a non-zero transmission is
      specified. Previously, if transmission of X% was specified, there would be
      transmission of X% as expected, but the ratio of Fresnel refraction to
      Fresnel reflection would be set to X%. Addressing problem report #2578.
  
  o Track
    -----
    + Fixed compilation error in G4VParticleChange on Windows VC++ with
      C++20 Standard enabled.
      Based on [GitHub PR#69](https://github.com/Geant4/geant4/pull/69).

  o Visualization
    -------------
    + management:
      o G4VisExecutive: fixed use of static symbol 'fVerbosity' and replaced
        with call to dedicated static method, to avoid linkage problems on Windows.
    + Qt3D:
      o Fixed compilation error on Windows for ambiguous string assignment in
        G4Qt3DSceneHandler::CreateNewNode().
    + Vtk:
      o Porting code to compile on Windows Visual-Studio.
      o Fixed Ubuntu 22 & VTK 9.1 compilation error.

  o Data
    ----
    + G4NDL-4.7.1:
      o Removed all files for Argon-36 and Argon-38 as significantly different
        from those of ENDF/B-VIII.0.
      o Reprocessed thermal scattering files after fixing a problem in NJOY.
        Addressing problem report #2552.
 
  o Examples
    --------
    + advanced/ChargeExchangeMC
      o Disabled GDML schema validation.
    + advanced/hadrontherapy:
      o Fixed compilation error on Windows VC++ with C++20 Standard enabled.
    + medical_linac:
      o Fixed geometry of medical linear accelerator's collimator.
    + extended/biasing:
      o Fixed URls in documentation.
    + extended/eventgenerator:
      o Updated CMake scripts to use new Pythia8 setup/build variables.
    + extended/hadronic/FlukaCern/ProcessLevel/FinalState:
    + extended/hadronic/Hadr09:
      o Fixed compilation error on Windows VC++ with C++20 Standard enabled.
    + extended/medical/DICOM:
      o Corrected symbols for Chlorine and Potassium elements in function
        InitialisationOfMaterials().
    + extended/parameterisations/Par04
      o Bump scipy version according to
        GitHub Dependabot PR#66(https://github.com/Geant4/geant4/pull/66).
      o Bump pymysql version according to
        GitHub Dependabot PR#72 (https://github.com/Geant4/geant4/pull/72).
      o Bump scikit-learn version according to
        GitHub Dependabot PR#73 (https://github.com/Geant4/geant4/pull/73).

 ----------------------------------------------------------------------------

                             Technical Notes
                             --------------- 

  o  This patch should be applied on top of release 11.2 series.
  o  Technical notes distributed for release 11.2 are also applicable and
     valid for this patch.

The code and rebuilt binary libraries for release 11.2.2 are available
through the Geant4 "Download" Web page.

Please refer to the Geant4 User Documentation for further information about
using Geant4.
