Skip to content

Commit

Permalink
Import Geant4 10.7.1 source tree
Browse files Browse the repository at this point in the history
  • Loading branch information
Gabriele Cosmo committed Feb 5, 2021
1 parent dab42d2 commit 460fe6d
Show file tree
Hide file tree
Showing 281 changed files with 32,980 additions and 42,880 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX
project(Geant4)
set(${PROJECT_NAME}_VERSION_MAJOR 10)
set(${PROJECT_NAME}_VERSION_MINOR 7)
set(${PROJECT_NAME}_VERSION_PATCH 0)
set(${PROJECT_NAME}_VERSION_PATCH 1)
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
5 changes: 4 additions & 1 deletion CONTRIBUTING.md → CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ the development repository of Geant4, to be included in a future release or
patch.

For simple bug-fixes, it is anyhow recommended to use the official
`Bugzilla problem reporting system <https://bugzilla-geant4.kek.jp/>`.
Bugzilla problem reporting system.
- Problem reports: `Bugzilla problem reporting system <https://bugzilla-geant4.kek.jp>`_.
- User Forum: `Geant4 Forum <https://geant4-forum.web.cern.ch>`_.
- Documentation: `User Documentation <https://cern.ch/geant4/support/user_documentation>`_.

The Geant4 Collaboration
7 changes: 6 additions & 1 deletion README.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
=====
Geant4: A Simulation Toolkit
Geant4: A Simulation Toolkit
=====

- Problem reports: `Bugzilla problem reporting system <https://bugzilla-geant4.kek.jp>`_.
- User Forum: `Geant4 Forum <https://geant4-forum.web.cern.ch>`_.
- Documentation: `User Documentation <https://cern.ch/geant4/support/user_documentation>`_.

220 changes: 220 additions & 0 deletions ReleaseNotes/Patch4.10.7-1.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@

Geant4 10.7 - patch-01 Release Notes
------------------------------------

5 February 2021

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

o Configuration
-------------
+ CMake:
o Make fail configuration if Qt is enabled with CMake < 3.9.
Addressing problem report #2303.
o Fixed potential installation error with Homebrew/MacPorts X11/GL.
Apply GitHub PR #17.
o Fixed configure/build with system PTL 1.0.0.
Apply GitHub PR #16.
o Install/Use builtin PTL CMake scripts from PTL subdirectory alongside
Geant4Config.cmake.
o Updated to data set G4PARTICLEXS-3.1.1.
+ GNUmake:
o Updated Qt5 settings in Linux targets.

o Analysis:
--------
+ Updated to g4tools 5.2.3:
o Fixed bug in tools/histo/h2,h3 for get_bin_content();
have '&' in "get" arguments. Addressing problem report #2306.
o See History_tools for the complete list of modifications.
+ Fixed problem with merging n-tuples with columns of vector type.

o Externals:
----------
+ Force PTL to install its CMake configuration files within the directory
where Geant4 installs its own. Force to install its headers under
CMAKE_INSTALL_INCLUDEDIR/Geant4. Addressing problem report #2298.
+ ptl: apply patch to fix component installs on Windows.

o Geometry:
--------
+ navigation:
o G4ReplicaNavigation: reduced step correction in ComputeStep().
Addressing problem report #2302.
o G4PathFinder: moved debug printout within debug block in Locate().
o G4RegularNavigation: protected within G4DEBUG_NAVIGATION debug printout.
Substituted warning printout with proper G4Exception.
+ solids/Boolean:
o Added protection against using invalid normal
in G4ScaledSolid::DistanceToOut(p,v).
+ solids/CSG:
o G4Trap, G4Para: removed spurious character in printout in StreamInfo().
Addressed problem report #2318.
+ solids/specific:
o Reduce cases of bad speculation in G4PolyhedraSide::Inside() and
G4PolyPhiFace::InsideEdges(), based on profiling analysis.
+ volumes:
o Added creation order index in G4LogicalBorderSurface.
Addressing problem report #2311.
o G4GeometryWorkspace: added protection for thread contention in function
DestroyWorkspace(). Some code cleanup.

o Global:
------
+ Updated date and version for 10.7.p01.

o Intercoms:
---------
+ G4UImanager: introduced flag and access functions for
LastCommandOutputTreated. This flag is set to false at the point
in ApplyCommand() where, if verbosity>0, the command is sent to G4cout.
The treating UI must reset to true when the line has been treated.
Of course, the UI may simply ignore it.

o Interfaces:
----------
+ G4UIQt: Use QPalette to get colour and background from OS;
instead of fixed background <span style='background:#EEEEEE...
use <span style='background:" + pal.highlight().color().name()...
This picks up colour from the OS and even allows for change of
OS display style, e.g., dark mode on MacOS.
Fixed command-line-echo highlighting whereby there could be a crash
in some circumstances: use <span> instead of <div> in HTML wrappers.
+ Introduce choice of output styles:
o /gui/outputStyle
<cout|cerr|warnings|errors|all>
<fixed|proportional>
<highlight|no-highlight>
o Highlighting applies to the echoed command line if echoing is
requested with /control/verbose > 0.

o Persistency - gdml:
------------------
+ Fix for proper treatment of material properties reading for skinsurface
and bordersurface elements; adopt the key of the property vector map as
'name + ref'. Addressing problem report #2305.
+ Fixed parsing of regions in G4GDMLParser::ImportRegions().
Allow for proper deletion of meta-data lists in destructor.
Based on GitHub PR#19.
+ Fixed reading of units for GenericTrap in G4GDMLReadSolids.
Addressing problem report #2317.

o Physics Lists:
-------------
+ builders
o G4HadronicBuilder: replaced 2-body decays of bottom mesons into charmed
mesons and charged rho resonance, with 3-body decays into the same
charmed mesons and charged pion and neutral pion. This allows to get a
more precise numerical treatment of the decay kinematics in the rest
frame, avoiding spurious energy-momentum violations reported by
G4DecayProducts.
o OrderingParameterTable: added forgotten processes (general positron,
surface reflection, DNA) coherently with G4PhysicsListHelper.
+ constructors/electromagnetic
o G4GammaGeneralProcess: changed 1st energy limit from 50 keV to 150 keV
to guarantee K-shell energy for any element to be within 1st energy
area. Changed logic for selection of a concrete process.
Maximally reduced use of 'if' statements; reduced number of 'return'
in run time methods; removed shadowing of base class methods.
Addressing problem report #2309.
+ constructors/hadron_elastic
o G4HadronElasticPhysics: fixed type of builder in all hadron elastic
constructors. Addressing problem report #2183.
o G4IonElasticPhysics, G4ThermalNeutrons: added comments
+ constructors/hadron_inelastic
o G4HadronPhysicsFTFP_BERT, G4HadronPhysicsQGSP_BERT,
G4HadronInelasticQBBC, G4HadronPhysicsQGSP_BIC: fixed type of builder
in all hadron inelatic constructors. Addressing problem report #2296.

o Processes - Electromagnetic:
---------------------------
+ lowenergy
o G4MicroElecSurface, G4MicroElecLOPhononModel: fixed Coverity defects.
+ standard
o G4BetheBlochModel, G4LindhardSorensenIonModel: restore computation of
maximum energy transfer as in Geant4 version 10.4; affecting only
ultra-relativistic ions. Addressing problem report #2312.
+ utils
o G4EmCorrections: fixed 2-D interpolation of shell corrections, which
provides minor change of ranges of charge particles (< 0.1 mm).
Addressing problem report #2308.
o G4VEnergyLossProcess, G4VEmProcess, G4EmExtraParameters and
G4EmExtraParametersMessenger: improved printout.
Addressing problem report #2292.

o Processes - Hadronic:
--------------------
+ cross_sections:
o Drop cache for per-element G4CrossSectionDataStore::GetCrossSection(),
as never used in practice. Note that material, particle, and energy are
still cached by G4CrossSectionDataStore::ComputeCrossSection(). The
condition to check for the cache in that case has been optimized to
minimize unnecessary checks by reordering checked conditions from most
to least discriminant.
o G4ParticleInelasticXS, G4CrossSectionInelastic, G4CrossSectionElastic:
extended maximum energy range for ion cross-sections (QBBC and other
Physics Lists has the same high energy limits).
o G4ParticleInelasticXS, G4NeutronCaptureXS, G4NeutronElasticXS,
G4NeutronInelasticXS: make MAXZ variable static class member.
o G4GammaNuclearXS: fixed duplicated name of static variable.
o G4VCrossSectionRatio: use inheritance from G4VCrossSectionDataSet
in order to guarantee deletion of the object at the end of run.
+ models/particle_hp
o G4ParticleHPThermalScattering: added final state phi-rotation.
Addressing problem reports #1856 and #2290.
+ stopping
o G4MuonicAtomDecay: fixed Coverity defects; removed commented code.

o Processes - Transportation
--------------------------
+ Limit reporting of number of calls to G4Transportation::AlongStepDoIt()
to when either G4VERBOSE or G4DEBUG_TRANSPORT is defined, which allows to
avoid using a thread local variable for a slight performance gain.

o Run:
---
+ G4PhysicsListHelper: added forgotten processes (general positron and
surface reflection).

o Tasking:
-------
+ G4WorkerTaskRunManager: corrected way to count the number of events
processed in a worker thread. This correction also fixes a rare crash
due to accessing to the seed vector more than necessary.
+ G4TaskRunManager: reduce number of events per task to evenly distribute
events to all available threads.

o Visualization:
-------------
+ OpenInventor
o Consolidated all the planned features of the OIQt viewer.
+ Qt3D
o Auxiliary edge suppression and some small improvements.

o Data Sets:
---------
+ G4PARTICLEXS-3.1.1:
o Fixed data for He3 and He4 for few light targets.

o Examples:
--------
+ basic/B4:
o Fixed README: updated visualization tutorial to follow smart parsing.
+ extended/persistency/gdml/G01:
o Fixed auxiliary.gdml sample to define proper Region tags.
o Added scaledSolids.gdml sample setup.

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

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

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

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

Please refer to the Geant4 User Documentation for further information about
using Geant4.
19 changes: 19 additions & 0 deletions cmake/History
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,25 @@ add this in the documentation for the changed file as [BUGFIX #BUGNUMBER].

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

30th January 2021 - Gunter Folger (cmake-V10-06-51)
- Update to patched dataset G4PARTICLEXS 3.1.1 as provided by Vladimir I.

22nd January 2021 - Ben Morgan (cmake-V10-06-50)
- Update for GitHub PR #17: Provide same fix for MacPorts
- Address Bugzilla #2303: Fail configuration if Qt is enabled with CMake < 3.9

15th January 2021 - Ben Morgan (cmake-V10-06-49)
- Apply GitHub PR #17 from Florian Uhlig: Fix installation
error with Homebrew X11/GL.

11th January 2021 - Ben Morgan (cmake-V10-06-48)
- Apply GitHub PR #16 from andriish: Fix configure/build with
system PTL 1.0.0.

14th December 2020 - Ben Morgan (cmake-V10-06-47)
- Install/Use builtin PTL CMake scripts from PTL subdirectory
alongside Geant4Config.cmake

20th November 2020 - Ben Morgan (cmake-V10-06-46)
- Make GEANT4_USE_SYSTEM_PTL option advanced

Expand Down
10 changes: 5 additions & 5 deletions cmake/Modules/FindXQuartzGL.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
FindXQuartzGL
-------------
FindModule for XQuartz implementation of OpenGL/GLU. Specific to Geant4
to allow use of XQuartz only.
FindModule for XQuartz/Homebrew/MacPorts implementation of OpenGL/GLU. Specific
to Geant4 to allow use of XQuartz/Homebrew/MacPorts only.
Use of the module on non-macOS systems will result in a fatal error
Expand Down Expand Up @@ -49,17 +49,17 @@ set(CMAKE_FIND_FRAMEWORK_SAVE ${CMAKE_FIND_FRAMEWORK})
set(CMAKE_FIND_FRAMEWORK NEVER)

find_path(XQuartzGL_INCLUDE_DIR GL/gl.h
PATHS /usr/X11R6/include /opt/X11/include
PATHS /usr/X11R6/include /opt/X11/include /usr/local/include /opt/local/include
NO_DEFAULT_PATH
)

find_library(XQuartzGL_gl_LIBRARY GL
PATHS /usr/X11R6/lib /opt/X11/lib
PATHS /usr/X11R6/lib /opt/X11/lib /usr/local/lib /opt/local/lib
NO_DEFAULT_PATH
)

find_library(XQuartzGL_glu_LIBRARY GLU
PATHS /usr/X11R6/lib /opt/X11/lib
PATHS /usr/X11R6/lib /opt/X11/lib /usr/local/lib /opt/local/lib
NO_DEFAULT_PATH
)

Expand Down
2 changes: 1 addition & 1 deletion cmake/Modules/G4ConfigureCMakeHelpers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ endif()
if(NOT GEANT4_USE_SYSTEM_PTL)
list(APPEND GEANT4_EXTERNALS_TARGETS G4ptl)
set(PTL_BUILDTREE_PREFIX "${PROJECT_BINARY_DIR}/source/externals/ptl")
set(PTL_INSTALLTREE_PREFIX "\${_geant4_thisdir}/../PTL")
set(PTL_INSTALLTREE_PREFIX "\${_geant4_thisdir}/PTL")
endif()

# - USolids
Expand Down
4 changes: 2 additions & 2 deletions cmake/Modules/G4DatasetDefinitions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,11 @@ geant4_add_dataset(
# - Particle XS - replaces Neutron XS
geant4_add_dataset(
NAME G4PARTICLEXS
VERSION 3.1
VERSION 3.1.1
FILENAME G4PARTICLEXS
EXTENSION tar.gz
ENVVAR G4PARTICLEXSDATA
MD5SUM 35a3fe5cf0a29d453e6805e2cfacacee
MD5SUM 98b766fa2c447b541834cc9bf5206c05
)

# - PII
Expand Down
5 changes: 5 additions & 0 deletions cmake/Modules/G4InterfaceOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,11 @@ endif()

# - Qt5
if(GEANT4_USE_QT)
# Must have CMake > 3.8 to support automoc (Bugzilla 2303)
if(CMAKE_VERSION VERSION_LESS 3.9)
message(FATAL_ERROR "GEANT4_USE_QT requires CMake 3.9 or newer to support automatic MOC for UI/Vis libraries")
endif()

find_package(Qt5Core REQUIRED)
find_package(Qt5Gui REQUIRED)
find_package(Qt5Widgets REQUIRED)
Expand Down
2 changes: 1 addition & 1 deletion cmake/Modules/G4OptionalComponents.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ option(GEANT4_USE_SYSTEM_PTL "Use system zlib library" OFF)
if(GEANT4_USE_SYSTEM_PTL)
find_package(PTL REQUIRED)
# Backward compatibility for sources.cmake using the variable
set(PTL_LIBRARIES PTL::PTL)
set(PTL_LIBRARIES PTL::ptl)
geant4_save_package_variables(PTL PTL_DIR)
else()
set(PTL_USE_TBB ${GEANT4_USE_TBB})
Expand Down
3 changes: 3 additions & 0 deletions config/History
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------

11th December 2020 Gabriele Cosmo (config-V10-06-08)
- Updated Qt5 settings in Linux targets.

22nd October 2020 Gabriele Cosmo (config-V10-06-07)
- Added configuration for Qt3D visualization driver.

Expand Down
Loading

0 comments on commit 460fe6d

Please sign in to comment.