Skip to content

Commit

Permalink
Import Geant4 10.0.3 source tree
Browse files Browse the repository at this point in the history
  • Loading branch information
gcosmo committed Jun 10, 2016
1 parent 412b899 commit 8276762
Show file tree
Hide file tree
Showing 257 changed files with 3,758 additions and 14,780 deletions.
31 changes: 28 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#
# 21st September 2010 Ben Morgan
#
# $Id: CMakeLists.txt 82139 2014-06-11 10:58:09Z gcosmo $
# $Id: CMakeLists.txt 84874 2014-10-22 06:41:21Z gcosmo $
#

#------------------------------------------------------------------------------
Expand All @@ -23,6 +23,31 @@ endif()
# - Define CMake requirements and override make rules as needed
#
cmake_minimum_required(VERSION 2.6.4 FATAL_ERROR)

# If Policy CMP0022 exists, use OLD because Geant4 still needs
# to support versions < 2.8.12.
# This relates to LINK_INTERFACE_LIBRARIES and can be removed once
# minimum required CMake version reaches 2.8.12
if(POLICY CMP0022)
cmake_policy(SET CMP0022 OLD)
endif()

# If Policy CMP0038 exists, use OLD because Geant4 still needs
# to support versions < 2.8.4.
# This relates to LINK_INTERFACE_LIBRARIES and can be removed once
# minimum required CMake version reaches 2.8.4
if(POLICY CMP0038)
cmake_policy(SET CMP0038 OLD)
endif()

# If Policy CMP0043 exists, use OLD because Geant4 still needs
# to support Geant4 =< 2.8.12.
# This relates to the use of generator expressions to set COMPILE_DEFINITIONS
# and can be removed once the minimum required CMake version reaches 2.8.10.
if(POLICY CMP0043)
cmake_policy(SET CMP0043 OLD)
endif()

set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX
${CMAKE_SOURCE_DIR}/cmake/Modules/Geant4MakeRules_cxx.cmake)

Expand Down Expand Up @@ -51,10 +76,10 @@ set(CMAKE_MODULE_PATH
# See the documentation in each of these modules for further details.
#
# - Versioning. We do this here for now
set(${PROJECT_NAME}_VERSION "10.0.2")
set(${PROJECT_NAME}_VERSION "10.0.3")
set(${PROJECT_NAME}_VERSION_MAJOR "10")
set(${PROJECT_NAME}_VERSION_MINOR "0")
set(${PROJECT_NAME}_VERSION_PATCH "2")
set(${PROJECT_NAME}_VERSION_PATCH "3")

# - Provide dependent options as these are needed for some Geant4 features
include(CMakeDependentOption)
Expand Down
174 changes: 174 additions & 0 deletions ReleaseNotes/Patch4.10.0-3.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@

Geant4 10.0 - patch-03 Release Notes
------------------------------------

31 October 2014

List of fixes included in this public patch since the public release 10.0.p02:

o Configuration:
-------------
+ CMake:
o Append existing CMake CXX/EXE_LINKER flags to Geant4 flags when
setting overall CMake flags. This allows users to override the base
set if needed, at their own risk.
Addressing problem report #1663.

o Analysis:
--------
+ Fixed applying unit to min, max values in H1, H2 managers.
+ Fixed createH2/setH2 commands implementation.

o Geometry:
--------
+ management:
o Fixed possible data-race condition among threads in G4GeomSplitter.
+ navigation:
o Fix in G4MultiNavigator to properly set 'fIdNavLimiting' index to
navigator limiting the step, if only one navigator limits the step.
o Removed unnecessary thread_local data specifications in
G4ReplicaNavigation.
+ solids/Boolean:
o Fixed use of polyhedron pointer, to avoid race condition in MT
when parameterised volumes are visualised.
+ solids/CSG:
o G4Cons: fixed typo error in GetPointOnSurface() in the call
to GetRadiusInRing(). Responsible for occasionally wrong reports
when checking for overlaps.
o G4Cons: fix in DistanceToIn(p,v) for points on the Surface, to resolve
error reported in unit testing by the OpticalEscape test.
o Fixed use of polyhedron pointer, to avoid race condition in MT
when parameterised volumes are visualised.
+ solids/specific:
o Fixed use of polyhedron pointer, to avoid race condition in MT
when parameterised volumes are visualised.
+ solids/usolids:
o UCons: fixed typo error in GetPointOnSurface() in the call
to GetRadiusInRing(). Responsible for occasionally wrong reports
when checking for overlaps.
Fix in DistanceToIn(p,v) for points on the Surface, to resolve
error reported in unit testing by the OpticalEscape test.
o USphere: fixed typo in SafetyFromInside().
o Minor fix in UVector2 for variable shadowing.
+ volumes:
o Corrected possible MT data race in G4PVReplica::InitialiseWorker().

o Global:
------
+ Added symbol to exclusion list in windefs.h.
+ Use G4Exp, G4Log and G4Pow to speedup G4JTPolynomialSolver.
+ Updated date and version for 10.0.p03.

o Graphics Representations:
------------------------
+ HepPolyhedron::SetReferences(): added protection against a null pointer.
+ BooleanProcessor::execute(): corrected spelling mistake in message.

o Particles:
---------
+ G4ElectronOccupancy: added G4Exception to protect against unphysical
orbits.
+ G4NuclideTable : Fix missing Cl35 ground state in NuclideTable2 and
missing "*std::log(2.0)" in some comparison of threshold time.
+ G4IonTable: fill decay channels when an ion is created on the fly to
avoid race condition issue in multi-threaded mode.
Addressing problem report #1651.
+ Fix for possible race condition among threads in G4PDefSplitter.

o Physics Lists:
-------------
+ constructors/limiters:
o Fixed possible data-race condition among threads in
G4NeutronTrackingCut when calling G4MTcout (defect spotted with DRD).
o G4NeutronTrackingCut: register G4NeutronKiller in
G4HadronicProcessStore; improved log and process deleted at exit.
o G4StepLimiterPhysics: fixed minor memory leak reported by Coverity.

o Processes - Electromagnetic :
---------------------------
+ High Energy:
o Verified and updated positron annihilation models (G4Vee2hadrons,
G4ee2KChargedModel, G4ee2KNeutralModel, G4eeTo3PiModel,
G4eeToHadronsMultiModel, G4eeToPGammaModel, G4eeToTwoPiModel,
G4eeToHadronsModel) and process G4eeToHadrons.
This includes addition of extra inline methods to convert from Lab
to CM, to initialise models with more correct thresholds.
o G4eeTo3PiModel: fixed sampling algorithm.
+ Low Energy:
o Fixed cases of energy violation in G4LivermoreComptonModel and
atomic de-excitation. Addressing problem report #1612.
+ Standard:
o G4PAIxSection: added protection to avoid division by zero.
Addressing problem report #1677.

o Processes - Hadronic:
--------------------
+ models/de_excitation:
o Converted G4FermiFragmentsPool to be a G4ThreadLocalSingleton, to fix
cases of data race due to lazy initialisation. Effects: sligthly
increase of memory per thread; no effects in physics.
+ models/im_r_matrix:
o Fixed out of bound error in G4DetailedBalancePhaseSpaceIntegral,
reported by Coverity.
+ models/inclxx:
o Fix a bug in Coulomb deflection for negative incident particles.
o Fix: avoid negative Fermi energies for delta resonances.
+ models/pre_equilibrium:
o G4PreCompoundAlpha: fixed integer overflow.
Addressing problem report #1646.
+ models/quasi_elastic:
o Removed potential data-race condition among threads.
Addressing problem report #1652.
+ models/radioactive_decay:
o Fixed memory leak in destructor of G4RIsotopeTable.
Addressing problem report #1617.

o Run:
-------
+ Fixed data-race condition among threads when creating RNG for workers.
+ Fixed '/random/setSeeds' command not working properly.
Addressing problem report #1657.
+ Fixed potential race condition among threads in G4VUPLSplitter class.
+ G4PhysicsListHelper: minor fix in the default list of processes:
positron annihilation in muons and hadrons cannot be AtRest; these are
rare high energy discrete processes. Equivalent fix done for
OrderingParameterTable().
Addressiong problem report #1598.
+ Clear root logical volume pointers in G4Region when geometry is
rebuilt from scratch. Addressing problem report #1665.
+ G4MTRunManager: make sure G4RunManager::TerminateEventLoop() is
invoked at the end of run.
+ Addressing possible data-race in G4RunManagerKernel::SetupPhysics()
when calling G4ParticleTable::SetReadiness().

o Visualization:
-------------
+ gMocren:
o Fixed memory leak in G4GMocrenFile. Addressing problem report #1585.


o Examples:
--------
+ Updated reference outputs.
+ extended/runAndEvent/RE05:
o Reduced amount of print-out.
+ extended/runAndEvent/RE06:
o Added Boolean protection in ConstructSD methods for MT.


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

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

o This patch should be applied on top of release 10.0, 10.0.p01 or 10.0.p02.
o Technical notes distributed for release 10.0 are also applicable and
valid for this patch.

The code and rebuilt binary libraries for release 10.0.p03 are available
through our "Download" Web page:
http://cern.ch/geant4/support/download.shtml

Please refer to the Geant4 User Documentation:
http://cern.ch/geant4/support/userdocuments.shtml
for further information about using Geant4.
6 changes: 6 additions & 0 deletions cmake/History
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@ add this in the documentation for the changed file as [BUGFIX #BUGNUMBER].

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

08th October 2014 - Ben Morgan (cmake-V09-06-50)
- Templates/UseGeant4.cmake : BUGFIX #1663, Append existing CMake
CXX/EXE_LINKER flags to Geant4 flags when setting overall CMake flags.
This allows users to override the base set if needed, at their own
risk.

06th June 2014 - Ben Morgan (cmake-V09-06-49)
- Templates/geant4-config.in : Add zlib and g3tog4 to list of features
that --has-feature recognizes and can query (Patch from Ivana
Expand Down
40 changes: 22 additions & 18 deletions cmake/Templates/UseGeant4.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,23 @@
# Geant4 installation.
#
# Inclusion of this file, e.g. via
#
#
# include(${Geant4_USE_FILE})
#
# results in the addition of the Geant4 compile definitions and
# include directories to those of the directory in which this file is
# results in the addition of the Geant4 compile definitions and
# include directories to those of the directory in which this file is
# included.
#
# The recommended Geant4 compiler flags are also added to CMAKE_CXX_FLAGS
# but duplicated flags are NOT removed.
# The recommended Geant4 compiler flags are also prepended to
# CMAKE_CXX_FLAGS but duplicated flags are NOT removed. This permits
# client of UseGeant4 to override Geant4's recommended flags if required
# and at their own risk.
#
# Advanced users requiring special sets of flags, or the removal of
# duplicate flags should therefore *not* use this file, preferring the
# Advanced users requiring special sets of flags, or the removal of
# duplicate flags should therefore *not* use this file, preferring the
# direct use of the Geant4_XXXX variables set by the Geant4Config file.
#
# The last thing the module does is to optionally include an internal Use
# The last thing the module does is to optionally include an internal Use
# file. This file can contain variables, functions and macros for strict
# internal use in Geant4, such as building and running validation tests.
#
Expand All @@ -33,16 +35,18 @@ add_definitions(${Geant4_DEFINITIONS})
include_directories(${Geant4_INCLUDE_DIRS})

#-----------------------------------------------------------------------
# Because Geant4 is sensitive to the compiler flags, let's set the base
# set here. This reproduces as far as possible the behaviour of the
# original makefile system.
#
set(CMAKE_CXX_FLAGS "${Geant4_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${Geant4_CXX_FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_MINSIZEREL "${Geant4_CXX_FLAGS_MINSIZEREL}")
set(CMAKE_CXX_FLAGS_RELEASE "${Geant4_CXX_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${Geant4_CXX_FLAGS_RELWITHDEBINFO}")
set(CMAKE_EXE_LINKER_FLAGS "${Geant4_EXE_LINKER_FLAGS}")
# Because Geant4 is sensitive to the compiler flags, let's set the base
# set here. This reproduces as far as possible the behaviour of the
# original makefile system. However, we append any existing CMake flags in
# case the user wishes to override these (at their own risk).
# Though this may lead to duplication, that should not affect behaviour.
#
set(CMAKE_CXX_FLAGS "${Geant4_CXX_FLAGS} ${CMAKE_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${Geant4_CXX_FLAGS_DEBUG} ${CMAKE_CXX_FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_MINSIZEREL "${Geant4_CXX_FLAGS_MINSIZEREL} ${CMAKE_CXX_FLAGS_MINSIZEREL}")
set(CMAKE_CXX_FLAGS_RELEASE "${Geant4_CXX_FLAGS_RELEASE} ${CMAKE_CXX_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${Geant4_CXX_FLAGS_RELWITHDEBINFO} ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
set(CMAKE_EXE_LINKER_FLAGS "${Geant4_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}")

#-----------------------------------------------------------------------
# Locate ourselves
Expand Down
4 changes: 2 additions & 2 deletions examples/advanced/amsEcal/run1.out
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
############################################

*************************************************************
Geant4 version Name: geant4-10-00-patch-02 (13-June-2014)
Geant4 version Name: geant4-10-00-patch-03 (31-October-2014)
Copyright : Geant4 Collaboration
Reference : NIM A 506 (2003), 250-303
WWW : http://cern.ch/geant4
Expand Down Expand Up @@ -189,7 +189,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Run terminated.
Run Summary
Number of events processed : 10000
User=27.3s Real=65.83s Sys=0.6s
User=23.83s Real=25.14s Sys=0.51s

-------------------------------------------------------------
---> The calorimeter is 9 Modules
Expand Down
6 changes: 3 additions & 3 deletions examples/advanced/dnaphysics/dna.out
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
############################################

*************************************************************
Geant4 version Name: geant4-10-00-patch-02 (13-June-2014)
Geant4 version Name: geant4-10-00-patch-03 (31-October-2014)
Copyright : Geant4 Collaboration
Reference : NIM A 506 (2003), 250-303
WWW : http://cern.ch/geant4
Expand Down Expand Up @@ -216,13 +216,13 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Total memory consumed for geometry optimisation: 0 kByte
Total CPU time elapsed for geometry optimisation: 0 seconds
### Run 0 starts.
##### Create analysis manager 0x89de90
##### Create analysis manager 0xbc7eb0
Using Root analysis manager
... open Root analysis file : dna.root - done
Run terminated.
Run Summary
Number of events processed : 100
User=13.71s Real=34.65s Sys=0.13s
User=12.89s Real=14.2s Sys=0.12s
... write Root file : dna.root - done
... close Root file : dna.root - done
Graphics systems deleted.
Expand Down
Loading

0 comments on commit 8276762

Please sign in to comment.