Skip to content

Commit

Permalink
Import Geant4 11.2.2 source tree
Browse files Browse the repository at this point in the history
  • Loading branch information
gcosmo committed Jun 21, 2024
1 parent 57dce1b commit f840b5d
Show file tree
Hide file tree
Showing 411 changed files with 22,250 additions and 20,750 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ project(Geant4
HOMEPAGE_URL "https://geant4.cern.ch")
set(${PROJECT_NAME}_VERSION_MAJOR 11)
set(${PROJECT_NAME}_VERSION_MINOR 2)
set(${PROJECT_NAME}_VERSION_PATCH 1)
set(${PROJECT_NAME}_VERSION_PATCH 2)
set(${PROJECT_NAME}_VERSION "${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}.${${PROJECT_NAME}_VERSION_PATCH}")

# - Prepend our own CMake Modules to the search path
Expand Down
261 changes: 261 additions & 0 deletions ReleaseNotes/Patch.11.2-2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,261 @@

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.
29 changes: 29 additions & 0 deletions cmake/History
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,35 @@ It must **not** be used as a substitute for writing good git commit messages!

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

## 2024-06-07 Ben Morgan (cmake-V11-01-33)
- Do not export HDF5 version to Geant4Config
- Fixes Issue #214

## 2024-05-17 Gunter Folger
- Use patched G4NDL 4.7.1 dataset.

## 2024-03-26 Ben Morgan
- Disable use of FindPythia6 outside of internal Geant4 examples.

## 2024-04-17 Stephan Hageboeck
- Mention the possibility of using cvmfs datasets in the cmake configure warning

## 2024-04-08 Guilherme Amadio
- Fix also find_package(SoXt) and find_package(SoWin)

## 2024-04-20 Ben Morgan
- Update FindPythia8 module to:
- Apply [GitHub PR 68](https://github.com/Geant4/geant4/pull/68)
- Reduce capability to only that required by py8decayer example
- Emit error if used in project outside Geant4 or py8decayer

## 2024-03-12 Ben Morgan
- Update FindPythia6 module to account for lib64
- Applies [GitHub PR 63](https://github.com/Geant4/geant4/pull/63)

## 2024-03-11 Ben Morgan
- Fix escaping of regex in geant4_module_check to satisfy latest Python3.

## 2024-01-29 Ben Morgan (cmake-V11-01-32)
- Manually check versions of found SoXX packages to workaround their use of
the `ExactVersionOnly` version checking strategy in find_package. Geant4
Expand Down
75 changes: 56 additions & 19 deletions cmake/Modules/FindPythia6.cmake
Original file line number Diff line number Diff line change
@@ -1,19 +1,56 @@
# Locate Pythia6 library
# in a directory defined via PYTHIA6 environment variable
#
# Defines:
# PYTHIA6_FOUND
# PYTHIA6_LIBRARIES

find_library(PYTHIA6_LIBRARY NAMES Pythia6 pythia6-$ENV{PYTHIA6_VERSION}
HINTS $ENV{PYTHIA6} $ENV{PYTHIA6}/lib)

set(PYTHIA6_LIBRARIES ${PYTHIA6_LIBRARY})
#message(STATUS PYTHIA6_LIBRARIES ${PYTHIA6_LIBRARIES} )

# handle the QUIETLY and REQUIRED arguments and set PYTHIA6_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Pythia6 DEFAULT_MSG PYTHIA6_LIBRARIES)

mark_as_advanced(PYTHIA6_FOUND PYTHIA6_LIBRARIES)
#[=======================================================================[.rst:
FindPythia6
---------

Find the Pythia6 event generator library.

Imported Targets
^^^^^^^^^^^^^^^^

This module defines the following :prop_tgt:`IMPORTED` targets:

``Pythia6::Pythia6``
The Pythia6 ``pythia6`` library, if found.

Result Variables
^^^^^^^^^^^^^^^^

This module will set the following variables in your project:

``Pythia6_FOUND``
true if the Pythia6 headers and libraries were found.

Hints
^^^^^

A user may set ``Pythia6_ROOT`` to a Pythia6 installation root to tell this
module where to look.

#]=======================================================================]

# WE DO NOT ALLOW USE OF THIS MODULE OUTSIDE GEANT4 AND EXAMPLES
if(NOT PROJECT_NAME MATCHES "Geant4|HepMCEx0[1-2]|decayer6")
message(FATAL_ERROR "This FindPythia6.cmake module is only supported for use in Geant4's HepMCEx0{1,2} "
"and decayer6 extended examples. No support or extension of this module for use outside of these examples "
"will be provided.")
endif()

find_library(Pythia6_LIBRARY
NAMES Pythia6 pythia6 pythia6-$ENV{PYTHIA6_VERSION}
HINTS $ENV{PYTHIA6} $ENV{PYTHIA6}/lib $ENV{PYTHIA6}/lib64 ${Pythia6_ROOT}/lib ${Pythia6_ROOT}/lib64)

# handle the QUIETLY and REQUIRED arguments and set Pythia6_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Pythia6 DEFAULT_MSG Pythia6_LIBRARY)

mark_as_advanced(Pythia6_LIBRARY)

if(Pythia6_FOUND)
set(Pythia6_LIBRARIES ${Pythia6_LIBRARY})
if(NOT TARGET Pythia6::Pythia6)
add_library(Pythia6::Pythia6 UNKNOWN IMPORTED)
set_target_properties(Pythia6::Pythia6 PROPERTIES
IMPORTED_LOCATION ${Pythia6_LIBRARY})
endif()
endif()
Loading

0 comments on commit f840b5d

Please sign in to comment.