Import Geant4 11.1.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2022-07-01 10:44:02 +02:00
parent b3bf75a2a1
commit c07cea1fe0
2172 changed files with 183300 additions and 123938 deletions
+4 -4
View File
@@ -9,10 +9,10 @@
/source/global/ @gcosmo @drbenmorgan @gunterfolger
# Run, Event, and Detector Response
/source/run/ @makotoasai @jrmadsen
/source/event/ @makotoasai @jrmadsen
/source/digits_hits/ @makotoasai @jrmadsen
/source/processes/scoring @makotoasai @jrmadsen
/source/run/ @makotoasai @drbenmorgan
/source/event/ @makotoasai @drbenmorgan
/source/digits_hits/ @makotoasai @drbenmorgan
/source/processes/scoring @makotoasai @drbenmorgan
# Tracking
/source/tracking/ @ts-kek @shogo0416 @makotoasai
+4 -4
View File
@@ -10,10 +10,10 @@
/source/global/ @gcosmo @bmorgan @gunter
# Run, Event, and Detector Response
/source/run/ @asaim @jmadsen
/source/event/ @asaim @jmadsen
/source/digits_hits/ @asaim @jmadsen
/source/processes/scoring @asaim @jmadsen
/source/run/ @asaim @bmorgan
/source/event/ @asaim @bmorgan
/source/digits_hits/ @asaim @bmorgan
/source/processes/scoring @asaim @bmorgan
# Tracking
/source/tracking/ @tsasaki @shokada @asaim
+2 -2
View File
@@ -31,8 +31,8 @@ project(Geant4
DESCRIPTION "C++ toolkit for simulating the passage of particles through matter"
HOMEPAGE_URL "https://geant4.cern.ch")
set(${PROJECT_NAME}_VERSION_MAJOR 11)
set(${PROJECT_NAME}_VERSION_MINOR 0)
set(${PROJECT_NAME}_VERSION_PATCH 2)
set(${PROJECT_NAME}_VERSION_MINOR 1)
set(${PROJECT_NAME}_VERSION_PATCH 0)
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
File diff suppressed because it is too large Load Diff
+122 -24
View File
@@ -1,47 +1,145 @@
-------------------------------------------------------------------
# Category cmake History
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top).
It must **not** be used as a substitute for writing good git commit messages!
Category History file
---------------------
-------------------------------------------------------------------------------
History file for Geant4 CMake build scripts.
It DOES NOT substitute the SVN log-message one should put at every
committal in the SVN repository !
## 2022-06-09 Igor Semeniouk (cmake-V11-00-32)
- G4ConfigureGNUMakeHelpers.cmake (geant4.[c]sh, geant4.bat generation )
- use the environment variable GEANT4_DATA_DIR as top data dir
- the environment variables for individual dataset commented in scripts
Entries MUST use the following format:
## 2022-06-07 Ben Morgan (cmake-V11-00-31)
- Rationalize interlinked PTL/TBB build options
## 2022-05-30 Guilherme Amadio (cmake-V11-00-30)
- Add options --sh and --csh to geant4-config script
MONTH DAY YEAR - INITIAL.SURNAME (TAG)
- FILECHANGED : Document changes made.
## 2022-05-18 Guilherme Amadio (cmake-V11-00-29)
- Use more standard install location for CMake files
- Remove version from default installation directories
- Add required configuration to be able to generate DEB/RPM packages with CPack
- OTHERFILECHANGED : Document changes made.
## 2022-05-16 Guilherme Amadio (cmake-V11-00-28)
- Add source validation exception for G4FindDataDir.hh generated header
## 2022-05-03 Ben Morgan (cmake-V11-00-27)
- Preliminary configuration support for Qt5 and Qt6
You should keep two lines between each date.
TAG is optional. If your changes fix a bug listed in the Geant4 Bugzilla,
add this in the documentation for the changed file as [BUGFIX #BUGNUMBER].
## 2022-04-27 Gunter Folger (cmake-V11-00-26)
- add new dataset G4NDL 4.7 with new TermalScattering data
## 2022-04-11 Ben Morgan (cmake-V11-00-25)
- Allow library composition to be overriden in developer builds
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
## 2022-04-11 Ben Morgan (cmake-V11-00-24)
- Do not use "readlink -f" to support pre-Monterey macOS systems
06 April 2022 - Ben Morgan (cmake-V10-07-56)
## 2022-04-08 Ben Morgan (cmake-V11-00-23)
- Add -Og to GNU/Clang default debug flags
## 2022-04-06 Ben Morgan (cmake-V11-00-22)
- Don't add CLHEP_INCLUDE_DIRS directly through include_directories to prevent potential
issues with it holding relative paths (reported by Seth Johnson)
7 March 2022 - Gunter Folger (cmake-V10-07-55)
## 2022-04-05 Ben Morgan (cmake-V11-00-21)
- Copy .clang-tidy file to build directory to assist run-clang-tidy reporting.
## 2022-04-04 Igor Semeniouk (cmake-V11-00-20)
- In G4ConfigurePkgConfigHelpers.cmake, geant4-config.in (geant4-config generation)
- new flag "--features", add vtk and qt3d feature
- allow use md5sun if openssl missing
- canonicalize prefix path
- In G4ConfigureGNUMakeHelpers.cmake (geant4.[c]sh, geant4.bat generation )
- allow full path source in zsh, sh
- unset local variables at the end
- introduced GEANT4_DATA_DIR, all DS path relative to this
## 2022-03-25 Ben Morgan (cmake-V11-00-19)
- Add commands for working with categories analagous to module commands
## 2022-03-28 Ben Morgan (cmake-V11-00-18)
- Remove retired G4tasking library from configuration files
## 2022-03-28 Ben Morgan (cmake-V11-00-17)
- Fix typo in G4DeveloperAPI that prevented install of headers
## 2022-03-25 Ben Morgan (cmake-V11-00-16)
- Do not use CMAKE_VERBOSE_MAKEFILE when building tests
## 2022-03-22 Ben Morgan (cmake-V11-00-15)
- Add geant4_module_sources command to enable appending of headers/sources
to a module after creation
## 2022-03-18 Ben Morgan (cmake-V11-00-14)
- Change default value of GEANT4_BUILD_BUILTIN_BACKTRACE to OFF
## 2022-03-15 Ben Morgan (cmake-V11-00-13)
- Rationalize declaration and use of internal builds of required externals CLHEP,
zlib, expat, PTL and tools libraries.
## 2022-03-10 Ben Morgan (cmake-V11-00-12)
- Remove deprecated functions in G4DeveloperAPI
- Support declaration and composition of header-only modules and libraries
## 2022-03-03 Ben Morgan (cmake-V11-00-11)
- Provide GEANT4_BUILD_ENABLE_ASSERTIONS option to enable assert() in all
release build modes (Release, RelWithDebInfo, MinSizeRel)
- Addresses GitLab Issue #104
- Forward `CMAKE_<LANG>_FLAGS[_<MODE>]` flags to `geant4_add_test` so that
a consistent set is used through the project.
## 2022-03-07 Gunter Folger (cmake-V11-00-10)
- fix in CMakeCPackOptions.cmake.in to avoid PATH with only /, without \, for g4_small.bmp
11 February 2022 - Ben Morgan (cmake-V10-07-54)
## 2022-02-11 Gunter Folger (cmake-V11-00-09)
- add new dataset G4EMLOW 8.1
## 2022-02-11 Igor Semeniouk (cmake-V11-00-08)
- Bug fix introduced in cmake-V11-00-06
- G4ConfigureGNUMakeHelpers.cmake - Fix for _g4tc_prepend_path on geant4.bat genaration ( Windows only)
- History - fix comment syntax
## 2022-02-11 Ben Morgan (cmake-V11-00-07)
- Apply [GitHub PR 37](https://github.com/Geant4/geant4/pull/37) from gondiaz.
- Add G4ptl and G4tasking libraries to link list in geant4-config
- Fixup: place G4tasking in correct location in dependency list
- Fixup: Update order of G4analysis for ALICE patch:
- https://github.com/alisw/geant4/commit/ee32bad38f5ccfac458869d8c546e0df474f5529
## 2022-02-11 Igor Semeniouk (cmake-V11-00-06)
- Bug fix in functions _g4tc_prepend_path, _g4tc_apppend_path on geant4.bat genaration ( Windows only)
## 2022-02-10 Igor Semeniouk (cmake-V11-00-05)
- In G4ConfigureGNUMakeHelpers.cmake
- not set LD_LIBRARY_PATH configuration on MacOS (Darwin)
- add paths to DLL into PATH on Windows
## 2022-02-08 Ben Morgan (cmake-V11-00-04)
- Enable ToolsSG and backends based on use of external libraries (Qt, X11, Xm, Win32)
- Backends made non-mutally exclusive
- Remove GEANT4_USE_TOOLSSG public CMake option
- Addresses #117
## 2022-02-06 Gabriele Cosmo (cmake-V11-00-03)
- Updated compilation flags for Intel icc/icx compilers.
## 2022-02-05 Gunter Folger (cmake-V11-00-02)
- Add icpx/icx compiler to G4ConfigureGNUMakeHelpers.cmake
## 2022-01-28 Ben Morgan (cmake-V11-00-01)
- Correct logic error in checking whether module is already composed
- **DEPRECATIONS**
- `geant4_define_module`
- `geant4_global_library_target`
- Implementation reduced to emitting a CMake warning message on what to replace with
## 2021-12-10 Ben Morgan (cmake-V11-00-00)
- Change to new Markdown History format
---
# History entries prior to 11.0
09 November 2021 - Ben Morgan (cmake-V10-07-53)
- Only configure public release contribution guide if present
+425 -315
View File
@@ -1,350 +1,460 @@
# Module for locating Intel's Threading Building Blocks (TBB).
# - Find ThreadingBuildingBlocks include dirs and libraries
# Use this module by invoking find_package with the form:
# find_package(TBB
# [REQUIRED] # Fail with error if TBB is not found
# ) #
# Once done, this will define
#
# Customizable variables:
# TBB_ROOT_DIR
# Specifies TBB's root directory.
# TBB_FOUND - system has TBB
# TBB_INCLUDE_DIRS - the TBB include directories
# TBB_LIBRARIES - TBB libraries to be lined, doesn't include malloc or
# malloc proxy
# TBB::tbb - imported target for the TBB library
#
# Read-only variables:
# TBB_FOUND
# Indicates whether the library has been found.
# TBB_VERSION_MAJOR - Major Product Version Number
# TBB_VERSION_MINOR - Minor Product Version Number
# TBB_INTERFACE_VERSION - Engineering Focused Version Number
# TBB_COMPATIBLE_INTERFACE_VERSION - The oldest major interface version
# still supported. This uses the engineering
# focused interface version numbers.
#
# TBB_INCLUDE_DIRS
# Specifies TBB's include directory.
# TBB_MALLOC_FOUND - system has TBB malloc library
# TBB_MALLOC_INCLUDE_DIRS - the TBB malloc include directories
# TBB_MALLOC_LIBRARIES - The TBB malloc libraries to be lined
# TBB::malloc - imported target for the TBB malloc library
#
# TBB_LIBRARIES
# Specifies TBB libraries that should be passed to target_link_libararies.
#
# TBB_<COMPONENT>_LIBRARIES
# Specifies the libraries of a specific <COMPONENT>.
#
# TBB_<COMPONENT>_FOUND
# Indicates whether the specified <COMPONENT> was found.
# TBB_MALLOC_PROXY_FOUND - system has TBB malloc proxy library
# TBB_MALLOC_PROXY_INCLUDE_DIRS = the TBB malloc proxy include directories
# TBB_MALLOC_PROXY_LIBRARIES - The TBB malloc proxy libraries to be lined
# TBB::malloc_proxy - imported target for the TBB malloc proxy library
#
#
# Copyright (c) 2012 Sergiu Dotenco
# This module reads hints about search locations from variables:
# ENV TBB_ARCH_PLATFORM - for eg. set it to "mic" for Xeon Phi builds
# ENV TBB_ROOT or just TBB_ROOT - root directory of tbb installation
# ENV TBB_BUILD_PREFIX - specifies the build prefix for user built tbb
# libraries. Should be specified with ENV TBB_ROOT
# and optionally...
# ENV TBB_BUILD_DIR - if build directory is different than ${TBB_ROOT}/build
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
# Modified by Robert Maynard from the original OGRE source
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTTBBLAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#-------------------------------------------------------------------
# This file is part of the CMake build system for OGRE
# (Object-oriented Graphics Rendering Engine)
# For the latest info, see http://www.ogre3d.org/
#
# The contents of this file are placed in the public domain. Feel
# free to make use of it in any way you like.
#-------------------------------------------------------------------
#
#=============================================================================
# Copyright 2010-2012 Kitware, Inc.
# Copyright 2012 Rolf Eike Beer <eike@sf-mail.de>
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file COPYING-CMAKE-SCRIPTS for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
INCLUDE (FindPackageHandleStandardArgs)
#------------------------------------------------------------------------------#
#=============================================================================
# FindTBB helper functions and macros
#
# Paths
# Use TBBConfig.cmake if possible.
set(_tbb_find_quiet)
if (TBB_FIND_QUIETLY)
set(_tbb_find_quiet QUIET)
endif ()
set(_tbb_find_components)
set(_tbb_find_optional_components)
foreach (_tbb_find_component IN LISTS TBB_FIND_COMPONENTS)
if (TBB_FIND_REQUIRED_${_tbb_find_component})
list(APPEND _tbb_find_components "${_tbb_find_component}")
else ()
list(APPEND _tbb_find_optional_components "${_tbb_find_component}")
endif ()
endforeach ()
unset(_tbb_find_component)
find_package(TBB CONFIG ${_tbb_find_quiet}
COMPONENTS ${_tbb_find_components}
OPTIONAL_COMPONENTS ${_tbb_find_optional_components})
unset(_tbb_find_quiet)
unset(_tbb_find_components)
unset(_tbb_find_optional_components)
if (TBB_FOUND)
return ()
endif ()
#====================================================
# Fix the library path in case it is a linker script
#====================================================
function(tbb_extract_real_library library real_library)
if(NOT UNIX OR NOT EXISTS ${library})
set(${real_library} "${library}" PARENT_SCOPE)
return()
endif()
#Read in the first 4 bytes and see if they are the ELF magic number
set(_elf_magic "7f454c46")
file(READ ${library} _hex_data OFFSET 0 LIMIT 4 HEX)
if(_hex_data STREQUAL _elf_magic)
#we have opened a elf binary so this is what
#we should link to
set(${real_library} "${library}" PARENT_SCOPE)
return()
endif()
file(READ ${library} _data OFFSET 0 LIMIT 1024)
if("${_data}" MATCHES "INPUT \\(([^(]+)\\)")
#extract out the .so name from REGEX MATCH command
set(_proper_so_name "${CMAKE_MATCH_1}")
#construct path to the real .so which is presumed to be in the same directory
#as the input file
get_filename_component(_so_dir "${library}" DIRECTORY)
set(${real_library} "${_so_dir}/${_proper_so_name}" PARENT_SCOPE)
else()
#unable to determine what this library is so just hope everything works
#and pass it unmodified.
set(${real_library} "${library}" PARENT_SCOPE)
endif()
endfunction()
#===============================================
# Do the final processing for the package find.
#===============================================
macro(findpkg_finish PREFIX TARGET_NAME)
if (${PREFIX}_INCLUDE_DIR AND ${PREFIX}_LIBRARY)
set(${PREFIX}_FOUND TRUE)
set (${PREFIX}_INCLUDE_DIRS ${${PREFIX}_INCLUDE_DIR})
set (${PREFIX}_LIBRARIES ${${PREFIX}_LIBRARY})
else ()
if (${PREFIX}_FIND_REQUIRED AND NOT ${PREFIX}_FIND_QUIETLY)
message(FATAL_ERROR "Required library ${PREFIX} not found.")
endif ()
endif ()
if (NOT TARGET "TBB::${TARGET_NAME}")
if (${PREFIX}_LIBRARY_RELEASE)
tbb_extract_real_library(${${PREFIX}_LIBRARY_RELEASE} real_release)
endif ()
if (${PREFIX}_LIBRARY_DEBUG)
tbb_extract_real_library(${${PREFIX}_LIBRARY_DEBUG} real_debug)
endif ()
add_library(TBB::${TARGET_NAME} UNKNOWN IMPORTED)
set_target_properties(TBB::${TARGET_NAME} PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${${PREFIX}_INCLUDE_DIR}")
if (${PREFIX}_LIBRARY_DEBUG AND ${PREFIX}_LIBRARY_RELEASE)
set_target_properties(TBB::${TARGET_NAME} PROPERTIES
IMPORTED_LOCATION "${real_release}"
IMPORTED_LOCATION_DEBUG "${real_debug}"
IMPORTED_LOCATION_RELEASE "${real_release}")
elseif (${PREFIX}_LIBRARY_RELEASE)
set_target_properties(TBB::${TARGET_NAME} PROPERTIES
IMPORTED_LOCATION "${real_release}")
elseif (${PREFIX}_LIBRARY_DEBUG)
set_target_properties(TBB::${TARGET_NAME} PROPERTIES
IMPORTED_LOCATION "${real_debug}")
endif ()
endif ()
#mark the following variables as internal variables
mark_as_advanced(${PREFIX}_INCLUDE_DIR
${PREFIX}_LIBRARY
${PREFIX}_LIBRARY_DEBUG
${PREFIX}_LIBRARY_RELEASE)
endmacro()
#===============================================
# Generate debug names from given release names
#===============================================
macro(get_debug_names PREFIX)
foreach(i ${${PREFIX}})
set(${PREFIX}_DEBUG ${${PREFIX}_DEBUG} ${i}d ${i}D ${i}_d ${i}_D ${i}_debug ${i})
endforeach()
endmacro()
#===============================================
# See if we have env vars to help us find tbb
#===============================================
macro(getenv_path VAR)
set(ENV_${VAR} $ENV{${VAR}})
# replace won't work if var is blank
if (ENV_${VAR})
string( REGEX REPLACE "\\\\" "/" ENV_${VAR} ${ENV_${VAR}} )
endif ()
endmacro()
#===============================================
# Couple a set of release AND debug libraries
#===============================================
macro(make_library_set PREFIX)
if (${PREFIX}_RELEASE AND ${PREFIX}_DEBUG)
set(${PREFIX} optimized ${${PREFIX}_RELEASE} debug ${${PREFIX}_DEBUG})
elseif (${PREFIX}_RELEASE)
set(${PREFIX} ${${PREFIX}_RELEASE})
elseif (${PREFIX}_DEBUG)
set(${PREFIX} ${${PREFIX}_DEBUG})
endif ()
endmacro()
#=============================================================================
# Now to actually find TBB
#
#------------------------------------------------------------------------------#
IF(CMAKE_VERSION VERSION_GREATER 2.8.7)
SET(_TBB_CHECK_COMPONENTS ON)
ELSE()
SET(_TBB_CHECK_COMPONENTS OFF)
ENDIF()
# Get path, convert backslashes as ${ENV_${var}}
getenv_path(TBB_ROOT)
FIND_PATH(TBB_ROOT_DIR
NAMES include/tbb/tbb.h
PATHS ENV TBBROOT
ENV TBB40_INSTALL_DIR
ENV TBB30_INSTALL_DIR
ENV TBB22_INSTALL_DIR
ENV TBB21_INSTALL_DIR
ENV TBB_ROOT_DIR
DOC "TBB root directory")
# initialize search paths
set(TBB_PREFIX_PATH ${TBB_ROOT} ${ENV_TBB_ROOT})
set(TBB_INC_SEARCH_PATH "")
set(TBB_LIB_SEARCH_PATH "")
FIND_PATH(TBB_INCLUDE_DIR
# If user built from sources
set(TBB_BUILD_PREFIX $ENV{TBB_BUILD_PREFIX})
if (TBB_BUILD_PREFIX AND ENV_TBB_ROOT)
getenv_path(TBB_BUILD_DIR)
if (NOT ENV_TBB_BUILD_DIR)
set(ENV_TBB_BUILD_DIR ${ENV_TBB_ROOT}/build)
endif ()
# include directory under ${ENV_TBB_ROOT}/include
list(APPEND TBB_LIB_SEARCH_PATH
${ENV_TBB_BUILD_DIR}/${TBB_BUILD_PREFIX}_release
${ENV_TBB_BUILD_DIR}/${TBB_BUILD_PREFIX}_debug)
endif ()
# For Windows, let's assume that the user might be using the precompiled
# TBB packages from the main website. These use a rather awkward directory
# structure (at least for automatically finding the right files) depending
# on platform and compiler, but we'll do our best to accommodate it.
# Not adding the same effort for the precompiled linux builds, though. Those
# have different versions for CC compiler versions and linux kernels which
# will never adequately match the user's setup, so there is no feasible way
# to detect the "best" version to use. The user will have to manually
# select the right files. (Chances are the distributions are shipping their
# custom version of tbb, anyway, so the problem is probably nonexistent.)
if (WIN32 AND MSVC)
set(COMPILER_PREFIX "vc7.1")
if (MSVC_VERSION EQUAL 1400)
set(COMPILER_PREFIX "vc8")
elseif(MSVC_VERSION EQUAL 1500)
set(COMPILER_PREFIX "vc9")
elseif(MSVC_VERSION EQUAL 1600)
set(COMPILER_PREFIX "vc10")
elseif(MSVC_VERSION EQUAL 1700)
set(COMPILER_PREFIX "vc11")
elseif(MSVC_VERSION EQUAL 1800)
set(COMPILER_PREFIX "vc12")
elseif(MSVC_VERSION GREATER_EQUAL 1900)
set(COMPILER_PREFIX "vc14")
endif ()
# for each prefix path, add ia32/64\${COMPILER_PREFIX}\lib to the lib search path
foreach (dir IN LISTS TBB_PREFIX_PATH)
if (CMAKE_CL_64)
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/ia64/${COMPILER_PREFIX}/lib)
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/ia64/${COMPILER_PREFIX})
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/intel64/${COMPILER_PREFIX}/lib)
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/intel64/${COMPILER_PREFIX})
else ()
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/ia32/${COMPILER_PREFIX}/lib)
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/ia32/${COMPILER_PREFIX})
endif ()
endforeach ()
endif ()
# For OS X binary distribution, choose libc++ based libraries for Mavericks (10.9)
# and above and AppleClang
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND
NOT CMAKE_SYSTEM_VERSION VERSION_LESS 13.0)
set (USE_LIBCXX OFF)
cmake_policy(GET CMP0025 POLICY_VAR)
if (POLICY_VAR STREQUAL "NEW")
if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
set (USE_LIBCXX ON)
endif ()
else ()
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set (USE_LIBCXX ON)
endif ()
endif ()
if (USE_LIBCXX)
foreach (dir IN LISTS TBB_PREFIX_PATH)
list (APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/libc++ ${dir}/libc++/lib)
endforeach ()
endif ()
endif ()
# check compiler ABI
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(COMPILER_PREFIX)
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
list(APPEND COMPILER_PREFIX "gcc4.8")
endif()
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
list(APPEND COMPILER_PREFIX "gcc4.7")
endif()
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.4)
list(APPEND COMPILER_PREFIX "gcc4.4")
endif()
list(APPEND COMPILER_PREFIX "gcc4.1")
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(COMPILER_PREFIX)
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.0) # Complete guess
list(APPEND COMPILER_PREFIX "gcc4.8")
endif()
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.6)
list(APPEND COMPILER_PREFIX "gcc4.7")
endif()
list(APPEND COMPILER_PREFIX "gcc4.4")
else() # Assume compatibility with 4.4 for other compilers
list(APPEND COMPILER_PREFIX "gcc4.4")
endif ()
# if platform architecture is explicitly specified
set(TBB_ARCH_PLATFORM $ENV{TBB_ARCH_PLATFORM})
if (TBB_ARCH_PLATFORM)
foreach (dir IN LISTS TBB_PREFIX_PATH)
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/${TBB_ARCH_PLATFORM}/lib)
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/${TBB_ARCH_PLATFORM})
endforeach ()
endif ()
foreach (dir IN LISTS TBB_PREFIX_PATH)
foreach (prefix IN LISTS COMPILER_PREFIX)
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/intel64)
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/intel64/${prefix})
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/intel64/lib)
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/intel64/${prefix}/lib)
else ()
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/ia32)
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/ia32/${prefix})
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/ia32/lib)
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/ia32/${prefix}/lib)
endif ()
endforeach()
endforeach ()
# add general search paths
foreach (dir IN LISTS TBB_PREFIX_PATH)
list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib ${dir}/Lib ${dir}/lib/tbb
${dir}/Libs)
list(APPEND TBB_INC_SEARCH_PATH ${dir}/include ${dir}/Include
${dir}/include/tbb)
endforeach ()
set(TBB_LIBRARY_NAMES tbb)
get_debug_names(TBB_LIBRARY_NAMES)
find_path(TBB_INCLUDE_DIR
NAMES tbb/tbb.h
HINTS ${TBB_ROOT_DIR}
PATH_SUFFIXES include
DOC "TBB include directory")
PATHS ${TBB_INC_SEARCH_PATH})
#------------------------------------------------------------------------------#
#
# Library suffixes
#
#------------------------------------------------------------------------------#
find_library(TBB_LIBRARY_RELEASE
NAMES ${TBB_LIBRARY_NAMES}
PATHS ${TBB_LIB_SEARCH_PATH})
find_library(TBB_LIBRARY_DEBUG
NAMES ${TBB_LIBRARY_NAMES_DEBUG}
PATHS ${TBB_LIB_SEARCH_PATH})
make_library_set(TBB_LIBRARY)
IF(MSVC11)
SET(_TBB_COMPILER vc11)
ELSEIF(MSVC10)
SET(_TBB_COMPILER vc10)
ELSEIF(MSVC90)
SET(_TBB_COMPILER vc9)
ELSEIF(MSVC80)
SET(_TBB_COMPILER vc8)
ELSEIF(WIN32)
SET(_TBB_COMPILER vc_mt)
ENDIF(MSVC11)
findpkg_finish(TBB tbb)
IF(CMAKE_SIZEOF_VOID_P EQUAL 8)
SET(_TBB_POSSIBLE_LIB_SUFFIXES lib/intel64/${_TBB_COMPILER})
SET(_TBB_POSSIBLE_BIN_SUFFIXES bin/intel64/${_TBB_COMPILER})
ELSE(CMAKE_SIZEOF_VOID_P EQUAL 8)
SET(_TBB_POSSIBLE_LIB_SUFFIXES lib/ia32/${_TBB_COMPILER})
SET(_TBB_POSSIBLE_BIN_SUFFIXES bin/ia32/${_TBB_COMPILER})
ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8)
#if we haven't found TBB no point on going any further
if (NOT TBB_FOUND)
return()
endif ()
LIST(APPEND _TBB_POSSIBLE_LIB_SUFFIXES lib/$ENV{TBB_ARCH_PLATFORM})
#=============================================================================
# Look for TBB's malloc package
set(TBB_MALLOC_LIBRARY_NAMES tbbmalloc)
get_debug_names(TBB_MALLOC_LIBRARY_NAMES)
IF(UNIX)
FOREACH(_VERSION 4.7 4.4 4.1)
IF(CMAKE_SIZEOF_VOID_P EQUAL 8)
LIST(APPEND _TBB_POSSIBLE_LIB_SUFFIXES lib/intel64/gcc${_VERSION})
ELSE()
LIST(APPEND _TBB_POSSIBLE_LIB_SUFFIXES lib/ia32/gcc${_VERSION})
ENDIF()
ENDFOREACH()
ENDIF()
find_path(TBB_MALLOC_INCLUDE_DIR
NAMES tbb/tbb.h
PATHS ${TBB_INC_SEARCH_PATH})
#------------------------------------------------------------------------------#
#
# TBB library
#
#------------------------------------------------------------------------------#
find_library(TBB_MALLOC_LIBRARY_RELEASE
NAMES ${TBB_MALLOC_LIBRARY_NAMES}
PATHS ${TBB_LIB_SEARCH_PATH})
find_library(TBB_MALLOC_LIBRARY_DEBUG
NAMES ${TBB_MALLOC_LIBRARY_NAMES_DEBUG}
PATHS ${TBB_LIB_SEARCH_PATH})
make_library_set(TBB_MALLOC_LIBRARY)
FIND_LIBRARY(TBB_LIBRARY_RELEASE
NAMES tbb
HINTS ${TBB_ROOT_DIR}
PATH_SUFFIXES ${_TBB_POSSIBLE_LIB_SUFFIXES}
DOC "TBB release library")
findpkg_finish(TBB_MALLOC tbbmalloc)
FIND_LIBRARY(TBB_LIBRARY_DEBUG
NAMES tbb_debug
HINTS ${TBB_ROOT_DIR}
PATH_SUFFIXES ${_TBB_POSSIBLE_LIB_SUFFIXES}
DOC "TBB debug library")
#=============================================================================
# Look for TBB's malloc proxy package
set(TBB_MALLOC_PROXY_LIBRARY_NAMES tbbmalloc_proxy)
get_debug_names(TBB_MALLOC_PROXY_LIBRARY_NAMES)
IF(TBB_LIBRARY_RELEASE AND TBB_LIBRARY_DEBUG)
IF(NOT TBB_LIBRARY)
SET(TBB_LIBRARY optimized ${TBB_LIBRARY_RELEASE} debug ${TBB_LIBRARY_DEBUG}
CACHE DOC "TBB library" FORCE)
ENDIF(NOT TBB_LIBRARY)
LIST(APPEND _TBB_ALL_LIBS optimized ${TBB_LIBRARY_RELEASE} debug ${TBB_LIBRARY_DEBUG})
ELSE()
IF(TBB_LIBRARY_DEBUG)
IF(NOT TBB_LIBRARY)
SET(TBB_LIBRARY ${TBB_LIBRARY_DEBUG} CACHE FILEPATH "TBB library" FORCE)
ENDIF(NOT TBB_LIBRARY)
LIST(APPEND _TBB_ALL_LIBS ${TBB_LIBRARY_DEBUG})
ENDIF(TBB_LIBRARY_DEBUG)
find_path(TBB_MALLOC_PROXY_INCLUDE_DIR
NAMES tbb/tbbmalloc_proxy.h
PATHS ${TBB_INC_SEARCH_PATH})
IF(TBB_LIBRARY_RELEASE)
IF(NOT TBB_LIBRARY)
SET(TBB_LIBRARY ${TBB_LIBRARY_RELEASE} CACHE FILEPATH "TBB library" FORCE)
ENDIF(NOT TBB_LIBRARY)
LIST(APPEND _TBB_ALL_LIBS ${TBB_LIBRARY_RELEASE})
ENDIF()
ENDIF(TBB_LIBRARY_RELEASE AND TBB_LIBRARY_DEBUG)
find_library(TBB_MALLOC_PROXY_LIBRARY_RELEASE
NAMES ${TBB_MALLOC_PROXY_LIBRARY_NAMES}
PATHS ${TBB_LIB_SEARCH_PATH})
find_library(TBB_MALLOC_PROXY_LIBRARY_DEBUG
NAMES ${TBB_MALLOC_PROXY_LIBRARY_NAMES_DEBUG}
PATHS ${TBB_LIB_SEARCH_PATH})
make_library_set(TBB_MALLOC_PROXY_LIBRARY)
findpkg_finish(TBB_MALLOC_PROXY tbbmalloc_proxy)
#------------------------------------------------------------------------------#
#
# Components
#
#------------------------------------------------------------------------------#
#=============================================================================
#parse all the version numbers from tbb
if(NOT TBB_VERSION)
if (EXISTS "${TBB_INCLUDE_DIR}/oneapi/tbb/version.h")
file(STRINGS
"${TBB_INCLUDE_DIR}/oneapi/tbb/version.h"
TBB_VERSION_CONTENTS
REGEX "VERSION")
else()
#only read the start of the file
file(STRINGS
"${TBB_INCLUDE_DIR}/tbb/tbb_stddef.h"
TBB_VERSION_CONTENTS
REGEX "VERSION")
endif()
SET(_TBB_POSSIBLE_COMPONENTS preview malloc malloc_proxy)
string(REGEX REPLACE
".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1"
TBB_VERSION_MAJOR "${TBB_VERSION_CONTENTS}")
FOREACH(_TBB_COMPONENT ${TBB_FIND_COMPONENTS})
string(REGEX REPLACE
".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1"
TBB_VERSION_MINOR "${TBB_VERSION_CONTENTS}")
STRING(REPLACE "_debug" "" _TBB_COMPONENT ${_TBB_COMPONENT})
STRING(TOUPPER ${_TBB_COMPONENT} _TBB_COMPONENT_UPPER)
SET(_TBB_LIBRARY_BASE TBB_${_TBB_COMPONENT_UPPER}_LIBRARY)
string(REGEX REPLACE
".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1"
TBB_INTERFACE_VERSION "${TBB_VERSION_CONTENTS}")
IF(${_TBB_COMPONENT} MATCHES "malloc*")
SET(_TBB_LIBRARY_NAME tbb${_TBB_COMPONENT})
ELSE()
SET(_TBB_LIBRARY_NAME tbb_${_TBB_COMPONENT})
ENDIF()
string(REGEX REPLACE
".*#define TBB_COMPATIBLE_INTERFACE_VERSION ([0-9]+).*" "\\1"
TBB_COMPATIBLE_INTERFACE_VERSION "${TBB_VERSION_CONTENTS}")
FIND_LIBRARY(${_TBB_LIBRARY_BASE}_RELEASE
NAMES ${_TBB_LIBRARY_NAME}
HINTS ${TBB_ROOT_DIR}
PATH_SUFFIXES ${_TBB_POSSIBLE_LIB_SUFFIXES}
DOC "TBB ${_TBB_COMPONENT} release library")
set(TBB_VERSION "${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR}")
FIND_LIBRARY(${_TBB_LIBRARY_BASE}_DEBUG
NAMES ${_TBB_LIBRARY_NAME}_debug
HINTS ${TBB_ROOT_DIR}
PATH_SUFFIXES ${_TBB_POSSIBLE_LIB_SUFFIXES}
DOC "TBB ${_TBB_COMPONENT} debug library")
endif()
MARK_AS_ADVANCED (${_TBB_LIBRARY_BASE} ${_TBB_LIBRARY_BASE}_DEBUG)
# default assumption
SET(TBB_${_TBB_COMPONENT_UPPER}_FOUND ON)
SET(TBB_${_TBB_COMPONENT}_FOUND ON)
IF(${_TBB_LIBRARY_BASE}_DEBUG AND ${_TBB_LIBRARY_BASE}_RELEASE)
SET(${_TBB_LIBRARY_BASE}
debug ${${_TBB_LIBRARY_BASE}_DEBUG}
optimized ${${_TBB_LIBRARY_BASE}_RELEASE} CACHE STRING
"TBB ${_TBB_COMPONENT} library")
LIST(APPEND _TBB_ALL_LIBS
optimized ${${_TBB_LIBRARY_BASE}_RELEASE}
debug ${${_TBB_LIBRARY_BASE}_DEBUG})
LIST(APPEND TBB_FOUND_COMPONENTS ${_TBB_LIBRARY_BASE} ${_TBB_LIBRARY_BASE}_debug)
SET(TBB_${_TBB_COMPONENT_UPPER}_LIBRARY ${${_TBB_LIBRARY_BASE}_RELEASE})
ELSEIF(${_TBB_LIBRARY_BASE}_DEBUG)
SET(${_TBB_LIBRARY_BASE} ${${_TBB_LIBRARY_BASE}_DEBUG})
LIST(APPEND _TBB_ALL_LIBS ${${_TBB_LIBRARY_BASE}_DEBUG})
LIST(APPEND TBB_FOUND_COMPONENTS ${_TBB_LIBRARY_BASE})
SET(TBB_${_TBB_COMPONENT_UPPER}_LIBRARY ${${_TBB_LIBRARY_BASE}_DEBUG})
ELSEIF(${_TBB_LIBRARY_BASE}_RELEASE)
SET(${_TBB_LIBRARY_BASE} ${${_TBB_LIBRARY_BASE}_RELEASE}
CACHE FILEPATH "TBB ${_TBB_COMPONENT} library")
LIST(APPEND _TBB_ALL_LIBS ${${_TBB_LIBRARY_BASE}_RELEASE})
LIST(APPEND TBB_FOUND_COMPONENTS ${_TBB_LIBRARY_BASE}_debug)
SET(TBB_${_TBB_COMPONENT_UPPER}_LIBRARY ${${_TBB_LIBRARY_BASE}_RELEASE})
ELSE()
# Component missing: record it for a later report
LIST(APPEND _TBB_MISSING_COMPONENTS ${_TBB_COMPONENT})
SET(TBB_${_TBB_COMPONENT}_FOUND OFF)
SET(TBB_${_TBB_COMPONENT_UPPER}_FOUND OFF)
ENDIF()
IF(${_TBB_LIBRARY_BASE})
# setup the TBB_<COMPONENT>_LIBRARIES variable
SET(TBB_${_TBB_COMPONENT_UPPER}_LIBRARIES ${${_TBB_LIBRARY_BASE}})
ELSE()
LIST(APPEND _TBB_MISSING_LIBRARIES ${_TBB_LIBRARY_BASE})
ENDIF()
ENDFOREACH(_TBB_COMPONENT ${TBB_FIND_COMPONENTS})
#------------------------------------------------------------------------------#
#
# Standard variables
#
#------------------------------------------------------------------------------#
IF(_TBB_ALL_LIBS)
SET(TBB_LIBRARIES ${_TBB_ALL_LIBS})
ENDIF()
IF(TBB_INCLUDE_DIR)
SET(TBB_INCLUDE_DIRS ${TBB_INCLUDE_DIR})
ENDIF()
IF(DEFINED _TBB_MISSING_COMPONENTS AND _TBB_CHECK_COMPONENTS)
IF(NOT TBB_FIND_QUIETLY)
MESSAGE(STATUS "One or more TBB components were not found:")
# Display missing components indented, each on a separate line
FOREACH(_TBB_MISSING_COMPONENT ${_TBB_MISSING_COMPONENTS})
MESSAGE(STATUS " " ${_TBB_MISSING_COMPONENT})
ENDFOREACH(_TBB_MISSING_COMPONENT ${_TBB_MISSING_COMPONENTS})
ENDIF(NOT TBB_FIND_QUIETLY)
ENDIF(DEFINED _TBB_MISSING_COMPONENTS AND _TBB_CHECK_COMPONENTS)
#------------------------------------------------------------------------------#
#
# Library's version
#
#------------------------------------------------------------------------------#
SET(_TBB_VERSION_HEADER ${TBB_INCLUDE_DIR}/tbb/tbb_stddef.h)
IF(EXISTS ${_TBB_VERSION_HEADER})
FILE(READ ${_TBB_VERSION_HEADER} _TBB_VERSION_CONTENTS)
STRING(REGEX REPLACE ".*#define TBB_VERSION_MAJOR[ \t]+([0-9]+).*" "\\1"
TBB_VERSION_MAJOR "${_TBB_VERSION_CONTENTS}")
STRING(REGEX REPLACE ".*#define TBB_VERSION_MINOR[ \t]+([0-9]+).*" "\\1"
TBB_VERSION_MINOR "${_TBB_VERSION_CONTENTS}")
SET(TBB_VERSION ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR})
SET(TBB_VERSION_COMPONENTS 2)
ENDIF()
IF(WIN32)
FIND_PROGRAM(LIB_EXECUTABLE NAMES lib
HINTS
"$ENV{VS110COMNTOOLS}/../../VC/bin"
"$ENV{VS100COMNTOOLS}/../../VC/bin"
"$ENV{VS90COMNTOOLS}/../../VC/bin"
"$ENV{VS71COMNTOOLS}/../../VC/bin"
"$ENV{VS80COMNTOOLS}/../../VC/bin"
DOC "Library manager")
MARK_AS_ADVANCED (LIB_EXECUTABLE)
ENDIF()
MACRO(GET_LIB_REQUISITES LIB REQUISITES)
IF(LIB_EXECUTABLE)
GET_FILENAME_COMPONENT(_LIB_PATH ${LIB_EXECUTABLE} PATH)
IF(MSVC)
# Do not redirect the output
UNSET(ENV{VS_UNICODE_OUTPUT})
ENDIF()
EXECUTE_PROCESS(COMMAND ${LIB_EXECUTABLE} /nologo /list ${LIB}
WORKING_DIRECTORY ${_LIB_PATH}/../../Common7/IDE
OUTPUT_VARIABLE _LIB_OUTPUT ERROR_QUIET)
STRING(REPLACE "\n" ";" "${REQUISITES}" "${_LIB_OUTPUT}")
LIST(REMOVE_DUPLICATES ${REQUISITES})
ENDIF()
ENDMACRO()
IF(_TBB_ALL_LIBS)
# collect lib requisites using the lib tool
FOREACH(_TBB_COMPONENT ${_TBB_ALL_LIBS})
GET_LIB_REQUISITES(${_TBB_COMPONENT} _TBB_REQUISITES)
ENDFOREACH(_TBB_COMPONENT)
ENDIF()
IF(NOT TBB_BINARY_DIR)
SET(_TBB_UPDATE_BINARY_DIR ON)
ELSE()
SET(_TBB_UPDATE_BINARY_DIR OFF)
ENDIF()
SET(_TBB_BINARY_DIR_HINTS ${_TBB_POSSIBLE_BIN_SUFFIXES})
IF(_TBB_REQUISITES)
FIND_FILE(TBB_BINARY_DIR NAMES ${_TBB_REQUISITES}
HINTS ${TBB_ROOT_DIR}
PATH_SUFFIXES ${_TBB_BINARY_DIR_HINTS} NO_DEFAULT_PATH)
ENDIF()
IF(TBB_BINARY_DIR AND _TBB_UPDATE_BINARY_DIR)
SET(_TBB_BINARY_DIR ${TBB_BINARY_DIR})
UNSET(TBB_BINARY_DIR CACHE)
IF(_TBB_BINARY_DIR)
GET_FILENAME_COMPONENT(TBB_BINARY_DIR ${_TBB_BINARY_DIR} PATH)
ENDIF()
ENDIF()
SET(TBB_BINARY_DIR ${TBB_BINARY_DIR} CACHE PATH "TBB binary directory")
MARK_AS_ADVANCED(TBB_INCLUDE_DIR TBB_LIBRARY TBB_LIBRARY_RELEASE
TBB_LIBRARY_DEBUG TBB_BINARY_DIR)
IF(NOT _TBB_CHECK_COMPONENTS)
SET(_TBB_FPHSA_ADDITIONAL_ARGS HANDLE_COMPONENTS)
ENDIF()
LIST(APPEND _TBB_FPHSA_ADDITIONAL_ARGS VERSION_VAR TBB_VERSION)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(TBB
REQUIRED_VARS
TBB_ROOT_DIR
TBB_INCLUDE_DIR
TBB_LIBRARY
${_TBB_MISSING_LIBRARIES}
HANDLE_COMPONENTS
${_TBB_FPHSA_ADDITIONAL_ARGS})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(TBB
REQUIRED_VARS TBB_INCLUDE_DIR TBB_LIBRARY
VERSION_VAR TBB_VERSION)
+36 -1
View File
@@ -276,6 +276,41 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|.*Clang")
geant4_add_feature(GEANT4_BUILD_SANITIZER "Compiling/linking with sanitizer '${GEANT4_BUILD_SANITIZER}'")
endif()
endif()
#.rst:
# - ``GEANT4_BUILD_ENABLE_ASSERTIONS``
# - Build libraries with assertions enabled even in release build types (Release, RelWithDebInfo, MinSizeRel)
#
option(GEANT4_BUILD_ENABLE_ASSERTIONS "Enable assertions regardless of build mode" OFF)
geant4_add_feature(GEANT4_BUILD_ENABLE_ASSERTIONS "Compiling Geant4 with assertions enabled in all build types")
mark_as_advanced(GEANT4_BUILD_ENABLE_ASSERTIONS)
# "Dumb" strip of NDEBUG definition from build type flags
if(GEANT4_BUILD_ENABLE_ASSERTIONS)
foreach(__build_type Release MinSizeRel RelWithDebInfo)
string(TOUPPER ${__build_type} __build_type_uc)
foreach(__lang C CXX)
set(FLAGSET_TO_MODIFY "CMAKE_${__lang}_FLAGS_${__build_type_uc}")
string(REGEX REPLACE "(^| )[/-]D *NDEBUG($| )" " " new_flags "${${FLAGSET_TO_MODIFY}}")
set(${FLAGSET_TO_MODIFY} "${new_flags}")
endforeach()
endforeach()
endif()
# Copy .clang-tidy file to build dir
# - clang-tidy/run-clang-tidy state that by default:
#
# "clang-tidy will attempt to find a file named .clang-tidy for each source file in its parent directories."
#
# Whilst this does appear to be the case, `run-clang-tidy` will report enabled checks
# as the default set, or that of any .clang-tidy found in parent directories of the build dir
# To avoid confusion, copy .clang-tidy into build directory so that run-clang-tidy
# should report correctly
#
if(EXISTS "${PROJECT_SOURCE_DIR}/.clang-tidy")
configure_file("${PROJECT_SOURCE_DIR}/.clang-tidy" "${PROJECT_BINARY_DIR}/.clang-tidy" COPYONLY)
endif()
#-----------------------------------------------------------------------
# Multithreading
#-----------------------------------------------------------------------
@@ -380,7 +415,7 @@ mark_as_advanced(GEANT4_BUILD_VERBOSE_CODE)
if(UNIX)
option(GEANT4_BUILD_BUILTIN_BACKTRACE
"Enable automatic G4Backtrace signal handling in G4RunManager. Switch off for applications implementing their own signal handling"
ON)
OFF)
mark_as_advanced(GEANT4_BUILD_BUILTIN_BACKTRACE)
endif()
+2 -2
View File
@@ -138,8 +138,8 @@ set(CMAKE_INSTALL_DATAROOTDIR "share" CACHE PATH
"Read-only architecture-independent data root (share)")
set(CMAKE_INSTALL_DATADIR
"${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}-${${PROJECT_NAME}_VERSION}" CACHE PATH
"Read-only architecture-independent data (DATAROOTDIR/${PROJECT_NAME}-${${PROJECT_NAME}_VERSION})")
"${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}" CACHE PATH
"Read-only architecture-independent data (DATAROOTDIR/${PROJECT_NAME})")
#
# CMake's builtin `GNUInstallDirs` module is used to set and provide variables
-1
View File
@@ -42,7 +42,6 @@ endif()
#
# This module includes the following modules:
include(CMakeDependentOption)
include(Geant4MacroLibraryTargets)
#-----------------------------------------------------------------------
# CMAKE EXTENSIONS
+10 -1
View File
@@ -45,6 +45,7 @@ configure_file(LICENSE LICENSE.txt COPYONLY) # Suffix must be .txt
#
set(CPACK_PACKAGE_NAME "geant4")
set(CPACK_PACKAGE_VENDOR "Geant4 Collaboration")
set(CPACK_PACKAGE_CONTACT "Geant4 Collaboration <https://geant4.cern.ch/collaboration/contacts>")
set(CPACK_PACKAGE_VERSION ${Geant4_VERSION})
set(CPACK_PACKAGE_VERSION_MAJOR ${Geant4_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${Geant4_VERSION_MINOR})
@@ -54,6 +55,15 @@ set(CPACK_PACKAGE_INSTALL_DIRECTORY "Geant4-${Geant4_VERSION_MAJOR}.${Geant4_VER
set(CPACK_PACKAGE_ICON "${PROJECT_SOURCE_DIR}/cmake/Templates/g4_small.bmp")
set(CPACK_PACKAGE_CHECKSUM "SHA256")
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
set(CPACK_DEBIAN_PACKAGE_SECTION "science")
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS TRUE)
set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS TRUE)
set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY "=")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "cmake, make, g++")
set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "libexpat1-dev, libxerces-c-dev, zlib1g-dev")
set(CPACK_DEBIAN_PACKAGE_SUGGESTS "")
# - Common Resource files
set(CPACK_RESOURCE_FILE_README "${PROJECT_BINARY_DIR}/README.txt")
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_BINARY_DIR}/LICENSE.txt")
@@ -127,7 +137,6 @@ list(APPEND CPACK_INSTALL_SCRIPTS "${CMAKE_CURRENT_BINARY_DIR}/source_package_ex
# Binary package common settings
#
set(CPACK_PACKAGE_RELOCATABLE ${CMAKE_INSTALL_IS_NONRELOCATABLE})
set(CPACK_PACKAGE_INSTALL_DIRECTORY "Geant4-${Geant4_VERSION_MAJOR}.${Geant4_VERSION_MINOR}")
if(WIN32)
set(CPACK_GENERATOR "NSIS;ZIP")
+1 -1
View File
@@ -225,7 +225,7 @@ configure_file(
# - Generate Install Tree Configuration Files
#-----------------------------------------------------------------------
# Set needed variables for the install tree
set(GEANT4_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}-${${PROJECT_NAME}_VERSION})
set(GEANT4_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
# Header path for install tree is dependent on whether we have a relocatable
# install.
+115 -46
View File
@@ -119,6 +119,8 @@ elseif(MSVC)
set(GEANT4_COMPILER "VC")
elseif(CMAKE_CXX_COMPILER MATCHES "icpc.*|icc.*")
set(GEANT4_COMPILER "icc")
elseif(CMAKE_CXX_COMPILER MATCHES "icpx.*|icx.*")
set(GEANT4_COMPILER "icx")
else()
set(GEANT4_COMPILER "UNSUPPORTED")
endif()
@@ -174,27 +176,31 @@ function(_g4tc_selflocate TEMPLATE_NAME SHELL_FAMILY SCRIPT_NAME LOCATION_VARIAB
if(${SHELL_FAMILY} STREQUAL "bourne")
set(${TEMPLATE_NAME}
"# Self locate script when sourced
if [ -z \"\$BASH_VERSION\" ]; then
# Not bash, so rely on sourcing from correct location
g4sls_sourced_dir=\$\(dirname \${BASH_SOURCE[0]:-$0}\)
if [ \"\${g4sls_sourced_dir}\" = \".\" ]; then
if [ ! -f ${SCRIPT_NAME}${GEANT4_TC_SHELL_EXTENSION} ]; then
# Not bash, zsh or sh so rely on sourcing from correct location
echo 'ERROR: ${SCRIPT_NAME}${GEANT4_TC_SHELL_EXTENSION} could NOT self-locate Geant4 installation'
echo 'This is most likely because you are using ksh, zsh or similar'
echo 'This is most likely because you are using ksh, dash or similar'
echo 'To fix this issue, cd to the directory containing this script'
echo 'and source it in that directory.'
unset g4sls_sourced_dir
return 1
fi
${LOCATION_VARIABLE}=\$\(pwd\)
else
g4sls_sourced_dir=\$\(dirname \${BASH_ARGV[0]}\)
${LOCATION_VARIABLE}=$\(cd \$g4sls_sourced_dir > /dev/null ; pwd\)
fi
${LOCATION_VARIABLE}=$\(cd \$g4sls_sourced_dir > /dev/null ; pwd\)
"
PARENT_SCOPE
)
# For bourne shell, set the values of the guard variables
set(GEANT4_TC_IF_SELFLOCATED "" PARENT_SCOPE)
set(GEANT4_TC_ENDIF_SELFLOCATED "" PARENT_SCOPE)
set(GEANT4_TC_ENDIF_SELFLOCATED "
# unset local variables
unset g4sls_sourced_dir
unset ${LOCATION_VARIABLE}
"
PARENT_SCOPE)
elseif(${SHELL_FAMILY} STREQUAL "cshell")
set(${TEMPLATE_NAME}
@@ -255,15 +261,21 @@ set ${LOCATION_VARIABLE}=\"`cd \${g4sls_sourced_dir} > /dev/null ; pwd`\"
# For C-shell, set the values of the guard variables
set(GEANT4_TC_IF_SELFLOCATED "" PARENT_SCOPE)
set(GEANT4_TC_ENDIF_SELFLOCATED "" PARENT_SCOPE)
elseif(${SHELL_FAMILY} STREQUAL "cmd")
set(GEANT4_TC_ENDIF_SELFLOCATED "
# unset local variables
unset g4sls_sourced_dir
unset ${LOCATION_VARIABLE}
"
PARENT_SCOPE)
elseif(${SHELL_FAMILY} STREQUAL "cmd")
set(${TEMPLATE_NAME}
"set ${LOCATION_VARIABLE}=
rem Self locate script when sourced
for /F %%i in (\"%0\") do set BINDIR=%%~dpi
set BINDIR=%BINDIR:~0,-1%
set ${LOCATION_VARIABLE}=%BINDIR%
set \"BINDIR=%BINDIR:~0,-1%\"
set \"${LOCATION_VARIABLE}=%BINDIR%\"
rem unset temparary variable
set BINDIR=
"
@@ -271,7 +283,10 @@ set BINDIR=
)
# Set the values of the guard variables
set(GEANT4_TC_IF_SELFLOCATED "" PARENT_SCOPE)
set(GEANT4_TC_ENDIF_SELFLOCATED "" PARENT_SCOPE)
set(GEANT4_TC_ENDIF_SELFLOCATED "
rem unset local variables
set ${LOCATION_VARIABLE}=
" PARENT_SCOPE)
endif()
endfunction()
@@ -293,7 +308,7 @@ function(_g4tc_setenv_command TEMPLATE_NAME SHELL_FAMILY VARIABLE_NAME VARIABLE_
)
elseif(${SHELL_FAMILY} STREQUAL "cmd")
set(${TEMPLATE_NAME}
"set ${VARIABLE_NAME}=${VARIABLE_VALUE}"
"set \"${VARIABLE_NAME}=${VARIABLE_VALUE}\""
PARENT_SCOPE
)
endif()
@@ -334,7 +349,7 @@ endif
set(${TEMPLATE_NAME}
"
IF NOT DEFINED ${VARIABLE_NAME} (
set ${VARIABLE_NAME}=${VARIABLE_VALUE}
set \"${VARIABLE_NAME}=${VARIABLE_VALUE}\"
)
"
PARENT_SCOPE
@@ -378,12 +393,10 @@ endif
)
# -- cmd.exe block
elseif(${SHELL_FAMILY} STREQUAL "cmd")
# Assime verible name passed hire
file(TO_NATIVE_PATH ${APPEND_VARIABLE} APPEND_VARIABLE)
set(${TEMPLATE_NAME}
"
set ${PATH_VARIABLE}=%${APPEND_VARIABLE}%;%${PATH_VARIABLE}%
set ${APPEND_VARIABLE}=
set \"${PATH_VARIABLE}=${APPEND_VARIABLE};%${PATH_VARIABLE}%\"
"
PARENT_SCOPE
)
@@ -426,12 +439,10 @@ endif
)
# -- cmd.exe block
elseif(${SHELL_FAMILY} STREQUAL "cmd")
# Assime verible name passed hire
file(TO_NATIVE_PATH ${APPEND_VARIABLE} APPEND_VARIABLE)
set(${TEMPLATE_NAME}
"
set ${PATH_VARIABLE}=%${PATH_VARIABLE}%;%${APPEND_VARIABLE}%
set ${APPEND_VARIABLE}=
set \"${PATH_VARIABLE}=%${PATH_VARIABLE}%;${APPEND_VARIABLE}\"
"
PARENT_SCOPE
)
@@ -868,22 +879,26 @@ file(RELATIVE_PATH
# Resource Files
# - Data
geant4_get_datasetnames(GEANT4_EXPORTED_DATASETS)
foreach(_ds ${GEANT4_EXPORTED_DATASETS})
geant4_get_dataset_property(${_ds} ENVVAR ${_ds}_ENVVAR)
geant4_get_dataset_property(${_ds} INSTALL_DIR ${_ds}_PATH)
if(NOT IS_ABSOLUTE ${${_ds}_PATH})
if(NOT IS_ABSOLUTE ${GEANT4_INSTALL_DATADIR})
file(RELATIVE_PATH
G4ENV_BINDIR_TO_DATADIR
${CMAKE_INSTALL_FULL_BINDIR}
${${_ds}_PATH}
${GEANT4_INSTALL_FULL_DATADIR}
)
set(${_ds}_PATH "\"`cd \$geant4_envbindir/${G4ENV_BINDIR_TO_DATADIR} > /dev/null \; pwd`\"")
set(GEANT4_DATA_DIR "\"`cd \$geant4_envbindir/${G4ENV_BINDIR_TO_DATADIR} > /dev/null \; pwd`\"")
file(TO_NATIVE_PATH ${G4ENV_BINDIR_TO_DATADIR} G4ENV_BINDIR_TO_DATADIR)
set(GEANT4_DATA_DIRW "\%geant4_envbindir\%\\${G4ENV_BINDIR_TO_DATADIR}")
else()
set(${_ds}_PATH "\"${${_ds}_PATH}\"")
set(GEANT4_DATA_DIR "\"${GEANT4_INSTALL_DATADIR}\"")
file(TO_NATIVE_PATH ${GEANT4_INSTALL_DATADIR} GEANT4_INSTALL_DATADIR)
set(GEANT4_DATA_DIRW "${GEANT4_INSTALL_DATADIR}")
endif()
endforeach()
geant4_get_datasetnames(GEANT4_EXPORTED_DATASETS)
foreach(_ds ${GEANT4_EXPORTED_DATASETS})
geant4_get_dataset_property(${_ds} ENVVAR ${_ds}_ENVVAR)
geant4_get_dataset_property(${_ds} DIRECTORY ${_ds}_PATH)
endforeach()
# - Fonts
file(RELATIVE_PATH
@@ -899,6 +914,9 @@ if(WIN32)
list(APPEND shells_list cmd)
endif()
#os which use LD_LIBRARY_PATH
set(_oswithldpath Linux)
# - Configure for each shell
foreach(_shell IN LISTS shells_list)
# Setup the shell
@@ -923,7 +941,7 @@ foreach(_shell IN LISTS shells_list)
)
# Set library path, based on relative paths between bindir and libdir
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
if(${CMAKE_SYSTEM_NAME} IN_LIST _oswithldpath)
_g4tc_prepend_path(GEANT4_ENV_LIBPATH_SETUP
${_shell}
LD_LIBRARY_PATH
@@ -940,7 +958,7 @@ foreach(_shell IN LISTS shells_list)
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" REALPATH)
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" DIRECTORY)
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
if(${CMAKE_SYSTEM_NAME} IN_LIST _oswithldpath)
_g4tc_append_path(GEANT4_TC_CLHEP_LIB_PATH_SETUP
${_shell}
LD_LIBRARY_PATH
@@ -956,7 +974,7 @@ foreach(_shell IN LISTS shells_list)
if(GEANT4_USE_GDML)
get_filename_component(_XERCESC_LIB_DIR "${XercesC_LIBRARY}" REALPATH)
get_filename_component(_XERCESC_LIB_DIR "${XercesC_LIBRARY}" DIRECTORY)
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
if(${CMAKE_SYSTEM_NAME} IN_LIST _oswithldpath)
_g4tc_append_path(GEANT4_TC_XERCESC_LIB_PATH_SETUP
${_shell}
LD_LIBRARY_PATH
@@ -967,12 +985,17 @@ foreach(_shell IN LISTS shells_list)
endif()
endif()
# - Set data paths
set(GEANT4_ENV_DATASETS )
foreach(_ds ${GEANT4_EXPORTED_DATASETS})
_g4tc_setenv_command(_dssetenvcmd ${_shell} ${${_ds}_ENVVAR} ${${_ds}_PATH})
_g4tc_setenv_command(_dssetenvcmd ${_shell} GEANT4_DATA_DIR ${GEANT4_DATA_DIR})
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n")
set(_dssetenvcmd "
# - Variables for individual datasets
# Uncomment the line and edit the path to the dataset if installed in not standard location.")
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n\n")
foreach(_ds ${GEANT4_EXPORTED_DATASETS})
_g4tc_setenv_command(_dssetenvcmd ${_shell} ${${_ds}_ENVVAR} "$GEANT4_DATA_DIR/${${_ds}_PATH}")
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}# ${_dssetenvcmd}\n")
endforeach()
# - Set Font Path
@@ -999,7 +1022,7 @@ foreach(_shell IN LISTS shells_list)
_g4tc_prepend_path(GEANT4_ENV_BINPATH_SETUP
${_shell}
PATH
"geant4_envbindir"
"%geant4_envbindir%"
)
## Set library path, based on relative paths between bindir and libdir
@@ -1013,21 +1036,67 @@ foreach(_shell IN LISTS shells_list)
# Third party lib paths
# - CLHEP, if system
set(GEANT4_TC_CLHEP_LIB_PATH_SETUP "rem no configuration required")
set(GEANT4_TC_CLHEP_LIB_PATH_SETUP "rem # - Builtin CLHEP used")
if(GEANT4_USE_SYSTEM_CLHEP)
# Handle granular vs singular cases
get_target_property(_CLHEP_LIB_DIR CLHEP::CLHEP LOCATION)
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" REALPATH)
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" DIRECTORY)
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
_g4tc_append_path(GEANT4_TC_CLHEP_LIB_PATH_SETUP
${_shell}
PATH
"${_CLHEP_LIB_DIR}"
)
else()
set(GEANT4_TC_CLHEP_LIB_PATH_SETUP "rem # System CLHEP in use, no configuration required")
endif()
endif()
# - XercesC
set(GEANT4_TC_XERCESC_LIB_PATH_SETUP "rem no configuration required")
set(GEANT4_TC_XERCESC_LIB_PATH_SETUP "rem # GDML SUPPORT NOT AVAILABLE")
if(GEANT4_USE_GDML)
get_filename_component(_XERCESC_LIB_DIR "${XercesC_LIBRARY}" REALPATH)
get_filename_component(_XERCESC_LIB_DIR "${XercesC_LIBRARY}" DIRECTORY)
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
_g4tc_append_path(GEANT4_TC_XERCESC_LIB_PATH_SETUP
${_shell}
PATH
"${_XERCESC_LIB_DIR}"
)
else()
set(GEANT4_TC_XERCESC_LIB_PATH_SETUP "rem # GDML Supported, no configuration of Xerces-C required")
endif()
endif()
# - Set data paths
set(GEANT4_ENV_DATASETS )
_g4tc_setenv_command(_dssetenvcmd ${_shell} GEANT4_DATA_DIR ${GEANT4_DATA_DIRW})
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n")
set(_dssetenvcmd "FOR /F %%i IN ( \"%GEANT4_DATA_DIR%\" ) DO set \"GEANT4_DATA_DIR=%%~fi\"")
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n\n")
set(_dssetenvcmd "
rem - Variables for individual datasets
rem Uncomment the line and edit the path to the dataset if installed in not standard location.")
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n\n")
foreach(_ds ${GEANT4_EXPORTED_DATASETS})
file(TO_NATIVE_PATH ${${_ds}_PATH} _native_path)
_g4tc_setenv_command(_dssetenvcmd ${_shell} ${${_ds}_ENVVAR} ${_native_path})
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n")
_g4tc_setenv_command(_dssetenvcmd ${_shell} ${${_ds}_ENVVAR} "%GEANT4_DATA_DIR%\\${_native_path}")
set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}rem ${_dssetenvcmd}\n")
endforeach()
# - Set Font Path
set(GEANT4_ENV_TOOLS_FONT_PATH "rem no configuration required")
# ??? We need this variable ?
# ??? path to freetype2 library ???
set(GEANT4_ENV_TOOLS_FONT_PATH "rem # FREETYPE SUPPORT NOT AVAILABLE")
if(GEANT4_USE_FREETYPE)
_g4tc_append_path(GEANT4_ENV_TOOLS_FONT_PATH
${_shell}
TOOLS_FONT_PATH
"${TOOLS_FONT_PATH}"
)
endif()
configure_file(
${CMAKE_SOURCE_DIR}/cmake/Templates/geant4-bat-skeleton.in
@@ -261,6 +261,13 @@ if(NOT GEANT4_BUILD_GRANULAR_LIBS)
set(G4_BUILTWITH_QT "no")
endif()
# - QT3D
if(GEANT4_USE_QT3D)
set(G4_BUILTWITH_QT3D "yes")
else()
set(G4_BUILTWITH_QT3D "no")
endif()
# - Motif
if(GEANT4_USE_XM)
set(G4_BUILTWITH_MOTIF "yes")
@@ -292,6 +299,13 @@ if(NOT GEANT4_BUILD_GRANULAR_LIBS)
set(G4_BUILTWITH_INVENTOR "no")
endif()
# - VTK
if(GEANT4_USE_VTK)
set(G4_BUILTWITH_VTK "yes")
else()
set(G4_BUILTWITH_VTK "no")
endif()
# If we have a module that uses X11, We have to play with the X11
# paths to get a clean set suitable for inclusion
if(G4_CONFIG_NEEDS_X11)
+4 -4
View File
@@ -8,21 +8,21 @@
# - NDL
geant4_add_dataset(
NAME G4NDL
VERSION 4.6
VERSION 4.7
FILENAME G4NDL
EXTENSION tar.gz
ENVVAR G4NEUTRONHPDATA
MD5SUM d07e43499f607e01f2c1ce06d7a09f3e
MD5SUM b001a2091bf9392e6833830347672ea2
)
# - Low energy electromagnetics
geant4_add_dataset(
NAME G4EMLOW
VERSION 8.0
VERSION 8.1
FILENAME G4EMLOW
EXTENSION tar.gz
ENVVAR G4LEDATA
MD5SUM 6795805f39ac73a71333276756004d99
MD5SUM e4abc7d2cd73a2f6d19837e9bcce984a
)
# - Photon evaporation
File diff suppressed because it is too large Load Diff
+67 -67
View File
@@ -56,37 +56,15 @@ if(GEANT4_USE_INVENTOR_QT)
set(GEANT4_USE_INVENTOR ON)
endif()
# - ToolsSG/Xt/X11/Qt/Win
# Though this option has platform differences, we configure here because it can
# trigger the Qt requirement
if(WIN32)
set(_g4_toolssg_backends "OFF" "WIN32")
else()
# TODO: Difference between X11, XT?
set(_g4_toolssg_backends "OFF" "X11" "XT" "QT")
endif()
enum_option(GEANT4_USE_TOOLSSG
DOC "Build Geant4 ToolsSG Visualization Driver with Backend"
VALUES ${_g4_toolssg_backends}
)
geant4_add_feature(GEANT4_USE_TOOLSSG "Build ToolsSG Visualization Driver with backend '${GEANT4_USE_TOOLSSG}'")
foreach(_tsg_backend IN LISTS _g4_toolssg_backends)
set(GEANT4_USE_TOOLSSG_${_tsg_backend}_GLES OFF)
if(_tsg_backend STREQUAL GEANT4_USE_TOOLSSG)
set(GEANT4_USE_TOOLSSG_${_tsg_backend}_GLES ON)
endif()
endforeach()
# - Qt (may be required by Coin/ToolsSG driver)
# - Qt
# May be required by Coin driver
# Selection also enables ToolsSG driver
option(GEANT4_USE_QT "Build Geant4 with Qt support" OFF)
if((GEANT4_USE_INVENTOR_QT OR GEANT4_USE_TOOLSSG_QT_GLES) AND NOT GEANT4_USE_QT)
if(GEANT4_USE_INVENTOR_QT AND NOT GEANT4_USE_QT)
set(GEANT4_USE_QT ON CACHE BOOL "Build Geant4 with Qt support" FORCE)
message(STATUS "Forcing GEANT4_USE_QT to ON, required by Inventor/ToolsSG Driver(s)")
message(STATUS "Forcing GEANT4_USE_QT to ON, required by selection of GEANT4_USE_INVENTOR_QT as ON")
endif()
geant4_add_feature(GEANT4_USE_QT "Build Geant4 with Qt support")
set(GEANT4_USE_TOOLSSG_QT_GLES ${GEANT4_USE_QT})
# - Vtk
option(GEANT4_USE_VTK "Build Geant4 with VTK visualisation" OFF)
@@ -94,23 +72,26 @@ mark_as_advanced(GEANT4_USE_VTK)
if(GEANT4_USE_VTK)
find_package(VTK 8.2 REQUIRED)
endif()
geant4_add_feature(GEANT4_USE_VTK "Using VTK for visualisation (EXPERIMENTAL)")
# - Unix only
if(UNIX)
# - Motif UI/Vis (may be required by Coin Vis driver)
# - Motif UI/Vis
# May be required by Coin Vis driver
# Selection also enables ToolsSG driver Xt backend
option(GEANT4_USE_XM "Build Geant4 with Motif (X11) support" OFF)
if((GEANT4_USE_INVENTOR AND NOT GEANT4_USE_INVENTOR_QT)
AND NOT GEANT4_USE_XM)
set(GEANT4_USE_XM ON CACHE BOOL "Build Geant4 with Motif (X11) support" FORCE)
message(STATUS "Forcing GEANT4_USE_XM to ON, required by Inventor driver")
endif()
set(GEANT4_USE_TOOLSSG_XT_GLES ${GEANT4_USE_XM})
geant4_add_feature(GEANT4_USE_XM "Build Geant4 with Xm Support")
# OpenGL/X11 Vis Driver
# - OpenGL/X11 Vis Driver
# Selection also enables ToolsSG driver X11 backend
option(GEANT4_USE_OPENGL_X11 "Build Geant4 OpenGL driver with X11 support" OFF)
set(GEANT4_USE_TOOLSSG_X11_GLES ${GEANT4_USE_OPENGL_X11})
geant4_add_feature(GEANT4_USE_OPENGL_X11 "Build Geant4 OpenGL driver with X11 support")
# RayTracer driver with X11 support
@@ -120,10 +101,20 @@ endif()
# Windows only
if(WIN32)
option(GEANT4_USE_OPENGL_WIN32 "Build OpenGL driver with Win32 support")
option(GEANT4_USE_OPENGL_WIN32 "Build OpenGL driver with Win32 support" OFF)
set(GEANT4_USE_TOOLSSG_WINDOWS_GLES ${GEANT4_USE_OPENGL_WIN32})
geant4_add_feature(GEANT4_USE_OPENGL_WIN32 "Build OpenGL driver with Win32 support")
endif()
# Overall ToolsSG enable flag
set(GEANT4_USE_TOOLSSG OFF)
if(GEANT4_USE_TOOLSSG_QT_GLES
OR GEANT4_USE_TOOLSSG_XT_GLES
OR GEANT4_USE_TOOLSSG_X11_GLES
OR GEANT4_USE_TOOLSSG_WINDOWS_GLES)
set(GEANT4_USE_TOOLSSG ON)
endif()
#-----------------------------------------------------------------------
# Find dependencies
#
@@ -151,46 +142,61 @@ if(GEANT4_USE_INVENTOR)
endif()
endif()
# - Qt5
# - Qt5/6
if(GEANT4_USE_QT)
find_package(Qt5Core REQUIRED)
find_package(Qt5Gui REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5OpenGL REQUIRED)
find_package(Qt5PrintSupport REQUIRED)
set(QT_QTCORE_LIBRARY Qt5::Core Qt5::PrintSupport)
set(QT_QTGUI_LIBRARY Qt5::Gui Qt5::Widgets)
set(QT_OPENGL_LIBRARY Qt5::Gui Qt5::OpenGL)
set(QT_LIBRARIES Qt5::OpenGL Qt5::Gui Qt5::PrintSupport Qt5::Widgets)
get_target_property(QT_QMAKE_EXECUTABLE ${Qt5Core_QMAKE_EXECUTABLE} IMPORTED_LOCATION)
geant4_save_package_variables(Qt5 Qt5Core_DIR Qt5Gui_DIR Qt5Widgets_DIR Qt5OpenGL_DIR Qt5PrintSupport_DIR)
# Use versioned targets to support Qt5 < 5.15
# Once 5.15 is the minimum version, the "Qt${QT_VERSION_MAJOR}_..." variables can be dropped
# - https://doc.qt.io/qt-6/cmake-manual.html
find_package(QT NAMES Qt5 Qt6 COMPONENTS Core REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets OpenGL PrintSupport REQUIRED)
if(QT_VERSION_MAJOR VERSION_LESS 6)
get_target_property(QT_QMAKE_EXECUTABLE ${Qt${QT_VERSION_MAJOR}Core_QMAKE_EXECUTABLE} IMPORTED_LOCATION)
else()
get_target_property(QT_QMAKE_EXECUTABLE Qt6::qmake IMPORTED_LOCATION)
endif()
geant4_save_package_variables(Qt${QT_VERSION_MAJOR}
Qt${QT_VERSION_MAJOR}Core_DIR
Qt${QT_VERSION_MAJOR}Gui_DIR
Qt${QT_VERSION_MAJOR}Widgets_DIR
Qt${QT_VERSION_MAJOR}OpenGL_DIR
Qt${QT_VERSION_MAJOR}PrintSupport_DIR)
geant4_add_feature(GEANT4_USE_QT "Build Geant4 with Qt${QT_VERSION_MAJOR} support")
# Qt3D is only supported on 5.15 and above, but always on if available
set(QT3D_MINIMUM_VERSION 5.15.0)
set(GEANT4_USE_QT3D OFF)
if(Qt5Core_VERSION GREATER_EQUAL QT3D_MINIMUM_VERSION)
find_package(Qt53DCore ${QT3D_MINIMUM_VERSION} QUIET)
find_package(Qt53DExtras ${QT3D_MINIMUM_VERSION} QUIET)
find_package(Qt53DRender ${QT3D_MINIMUM_VERSION} QUIET)
if(QT_VERSION GREATER_EQUAL QT3D_MINIMUM_VERSION)
find_package(Qt${QT_VERSION_MAJOR}3DCore ${QT_VERSION} EXACT QUIET)
find_package(Qt${QT_VERSION_MAJOR}3DExtras ${QT_VERSION} EXACT QUIET)
find_package(Qt${QT_VERSION_MAJOR}3DRender ${QT_VERSION} EXACT QUIET)
if(Qt53DCore_FOUND AND Qt53DExtras_FOUND AND Qt53DRender_FOUND)
# Forward correct minimum version to CMake/etc files
set(QT3D_MINIMUM_VERSION ${QT_VERSION})
if(Qt${QT_VERSION_MAJOR}3DCore_FOUND AND Qt${QT_VERSION_MAJOR}3DExtras_FOUND AND Qt${QT_VERSION_MAJOR}3DRender_FOUND)
set(GEANT4_USE_QT3D ON)
geant4_save_package_variables(Qt5 Qt53DCore_DIR Qt53DExtras_DIR Qt53DRender_DIR)
geant4_save_package_variables(Qt${QT_VERSION_MAJOR}
Qt${QT_VERSION_MAJOR}3DCore_DIR
Qt${QT_VERSION_MAJOR}3DExtras_DIR
Qt${QT_VERSION_MAJOR}3DRender_DIR)
geant4_add_feature(GEANT4_USE_QT3D "Build Geant4 Qt3D driver")
else()
set(_g4_qt53d_missing)
if(NOT Qt53DCore_FOUND)
list(APPEND _g4_qt53d_missing "Qt53DCore")
set(_g4_qt3d_missing)
if(NOT Qt${QT_VERSION_MAJOR}3DCore_FOUND)
list(APPEND _g4_qt3d_missing "Qt${QT_VERSION_MAJOR}3DCore")
endif()
if(NOT Qt53DExtras_FOUND)
list(APPEND _g4_qt53d_missing "Qt53DExtras")
if(NOT Qt${QT_VERSION_MAJOR}3DExtras_FOUND)
list(APPEND _g4_qt3d_missing "Qt${QT_VERSION_MAJOR}3DExtras")
endif()
if(NOT Qt53DRender_FOUND)
list(APPEND _g4_qt53d_missing "Qt53DRender")
if(NOT Qt${QT_VERSION_MAJOR}3DRender_FOUND)
list(APPEND _g4_qt3d_missing "Qt${QT_VERSION_MAJOR}3DRender")
endif()
message(STATUS "Disabling Geant4 Qt3D driver, missing Qt5 packages: ${_g4_qt53d_missing}")
message(STATUS "Disabling Geant4 Qt3D driver, missing Qt packages: ${_g4_qt3d_missing}")
endif()
endif()
# Variables for export to GNUmake
@@ -203,7 +209,6 @@ if(GEANT4_USE_INVENTOR
OR GEANT4_USE_QT
OR GEANT4_USE_OPENGL_X11
OR GEANT4_USE_XM
OR GEANT4_USE_TOOLSSG
OR GEANT4_USE_OPENGL_WIN32)
find_package(OpenGL REQUIRED)
geant4_save_package_variables(OpenGL OPENGL_INCLUDE_DIR OPENGL_gl_LIBRARY)
@@ -212,9 +217,7 @@ if(GEANT4_USE_INVENTOR
if(APPLE AND
(GEANT4_USE_INVENTOR_XT
OR GEANT4_USE_OPENGL_X11
OR GEANT4_USE_XM
OR GEANT4_USE_TOOLSSG_X11_GLES
OR GEANT4_USE_TOOLSSG_XT_GLES))
OR GEANT4_USE_XM))
find_package(XQuartzGL REQUIRED)
geant4_save_package_variables(XQuartzGL XQuartzGL_INCLUDE_DIR XQuartzGL_gl_LIBRARY)
endif()
@@ -233,9 +236,7 @@ if(UNIX)
if(GEANT4_USE_OPENGL_X11
OR GEANT4_USE_RAYTRACER_X11
OR GEANT4_USE_XM
OR GEANT4_USE_INVENTOR_XT
OR GEANT4_USE_TOOLSSG_X11_GLES
OR GEANT4_USE_TOOLSSG_XT_GLES)
OR GEANT4_USE_INVENTOR_XT)
find_package(X11 REQUIRED)
include("${CMAKE_CURRENT_LIST_DIR}/G4X11Shim.cmake")
@@ -270,4 +271,3 @@ if(UNIX)
geant4_save_package_variables(Motif MOTIF_INCLUDE_DIR MOTIF_LIBRARIES)
endif()
endif()
+14 -61
View File
@@ -32,20 +32,18 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
set(CMAKE_CXX_FLAGS_INIT "-W -Wall -pedantic -Wno-non-virtual-dtor -Wno-long-long -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -Wno-variadic-macros -Wshadow")
# Use pipes rather than temp files
set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} -pipe")
# Additional per-mode flags
set(CMAKE_CXX_FLAGS_DEBUG_INIT "-g")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "-O3 -DNDEBUG")
# Assist auto-vectorization
set(CMAKE_CXX_FLAGS_RELEASE_INIT "${CMAKE_CXX_FLAGS_RELEASE_INIT} -fno-trapping-math -ftree-vectorize -fno-math-errno")
set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -g")
# Remove superfluous "unused argument" and "GL deprecation" "warnings" from Clang
if(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} -Qunused-arguments -DGL_SILENCE_DEPRECATION")
endif()
# Additional per-mode flags
# Assist auto-vectorization in Release
set(CMAKE_CXX_FLAGS_RELEASE_INIT "${CMAKE_CXX_FLAGS_RELEASE_INIT} -fno-trapping-math -ftree-vectorize -fno-math-errno")
# Use Debug-safe optimization
set(CMAKE_CXX_FLAGS_DEBUG_INIT "${CMAKE_CXX_FLAGS_DEBUG_INIT} -Og")
# Extra Geant4 modes
# - Debug_FPE: Core Debug mode plus FPE)
set(CMAKE_CXX_FLAGS_DEBUG_FPE_INIT "${CMAKE_CXX_FLAGS_DEBUG_INIT} -DG4FPE_DEBUG")
@@ -61,7 +59,6 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
set(GEANT4_MULTITHREADED_CXX_FLAGS "-pthread")
endif()
#-----------------------------------------------------------------------
# MSVC - all (?) versions
if(MSVC)
@@ -71,7 +68,7 @@ if(MSVC)
set(CMAKE_CXX_FLAGS_DEBUG_INIT "-MDd -Od -Zi")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "-MD -Ox -DNDEBUG")
set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-MD -Os -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-MD -O2 -Zi")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-MD -O2 -Zi -DNDEBUG")
# Extra modes
set(CMAKE_CXX_FLAGS_TESTRELEASE_INIT "-MDd -Zi -G4DEBUG_VERBOSE")
@@ -83,11 +80,15 @@ endif()
#
# Sufficient id on all platforms?
if(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
set(CMAKE_CXX_FLAGS_INIT "-w1 -Wno-non-virtual-dtor -Wpointer-arith -Wwrite-strings -fp-model precise")
# Warnings
set(CMAKE_CXX_FLAGS_INIT "-W -Wall -pedantic -Wno-non-virtual-dtor -Wno-long-long -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -Wno-variadic-macros -Wshadow -fp-model precise")
# Use pipes rather than temp files
set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} -pipe")
set(CMAKE_CXX_FLAGS_DEBUG_INIT "-g")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "-O3 -DNDEBUG")
set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -g")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -DNDEBUG")
# Extra modes
set(CMAKE_CXX_FLAGS_TESTRELEASE_INIT "-g -G4DEBUG_VERBOSE")
@@ -100,51 +101,3 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
# Linker flags
set(CMAKE_EXE_LINKER_FLAGS "-limf")
endif()
#-----------------------------------------------------------------------
# Ye Olde *NIX/Compiler Systems
# NB: *NOT* Supported... Only provided as legacy.
# None are tested...
# Whilst these use flags taken from existing Geant4 setup, may want to see if
# CMake defaults on these platforms are good enough...
#
if(UNIX AND NOT CMAKE_COMPILER_IS_GNUCXX)
#---------------------------------------------------------------------
# IBM xlC compiler
#
if(CMAKE_CXX_COMPILER MATCHES "xlC")
set(CMAKE_CXX_FLAGS_INIT "")
set(CMAKE_CXX_FLAGS_DEBUG_INIT "-g -qdbextra -qcheck=all -qfullpath -qtwolink -+")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "-O3 -qtwolink -+")
set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O3 -qtwolink -+")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O3 -g -qdbextra -qcheck=all -qfullpath -qtwolink -+")
endif()
#---------------------------------------------------------------------
# HP aC++ Compiler
#
if(CMAKE_CXX_COMPILER MATCHES "aCC")
set(CMAKE_CXX_FLAGS_INIT "+DAportable +W823")
set(CMAKE_CXX_FLAGS_DEBUG_INIT "-g")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "+O2 +Onolimit")
set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O2 +Onolimit")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 +Onolimit -g")
endif()
#---------------------------------------------------------------------
# IRIX MIPSpro CC Compiler
#
if(CMAKE_CXX_COMPILER MATCHES "CC" AND CMAKE_SYSTEM_NAME MATCHES "IRIX")
set(CMAKE_CXX_FLAGS_INIT "-ptused -DSOCKET_IRIX_SOLARIS")
set(CMAKE_CXX_FLAGS_DEBUG_INIT "-g")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "-O -OPT:Olimit=5000")
set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O -OPT:Olimit=5000")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O -OPT:Olimit=5000 -g")
endif()
#---------------------------------------------------------------------
# SunOS CC Compiler
# - CMake may do a reasonable job on its own here...
endif()
+22 -24
View File
@@ -56,7 +56,6 @@ geant4_add_feature(GEANT4_USE_SYSTEM_CLHEP "Using system CLHEP library")
# to the internal location of expat headers and library target so Geant4
# clients of expat have a consistent interface.
#
# KNOWNISSUE : For internal expat, how to deal with static and shared?
if(WIN32)
set(EXPAT_FOUND TRUE)
set(GEANT4_USE_BUILTIN_EXPAT TRUE)
@@ -117,40 +116,39 @@ endif()
geant4_add_feature(GEANT4_USE_SYSTEM_ZLIB "Using system zlib library")
#-----------------------------------------------------------------------
# TBB support
#
set(_default_use_tbb OFF)
if(TBB_DIR)
set(_default_use_tbb ON)
endif()
# Find required PTL, optional TBB support, defaulting to internal
option(GEANT4_USE_SYSTEM_PTL "Use system PTL library" OFF)
option(GEANT4_USE_TBB "Use TBB as PTL's tasking backend" OFF)
cmake_dependent_option(GEANT4_USE_PTL_LOCKS "Enable mutex locking in PTL task subqueues" OFF "NOT GEANT4_USE_SYSTEM_PTL" OFF)
mark_as_advanced(GEANT4_USE_SYSTEM_PTL GEANT4_USE_PTL_LOCKS GEANT4_USE_TBB)
option(GEANT4_USE_TBB "Enable (optional) use of TBB as a tasking backend" ${_default_use_tbb})
if(GEANT4_USE_TBB)
find_package(TBB REQUIRED)
geant4_save_package_variables(TBB TBB_INCLUDE_DIR TBB_LIBRARY TBB_LIBRARY_DEBUG TBB_LIBRARY_RELEASE TBB_ROOT_DIR)
endif()
geant4_add_feature(GEANT4_USE_TBB "Enable (optional) use of TBB as a tasking backend")
#-----------------------------------------------------------------------
# Find required PTL package, defaulting to internal
option(GEANT4_USE_SYSTEM_PTL "Use system zlib library" OFF)
if(GEANT4_USE_SYSTEM_PTL)
if(GEANT4_USE_TBB)
find_package(PTL 2.0.0 REQUIRED TBB)
else()
find_package(PTL 2.0.0 REQUIRED)
# Backward compatibility for sources.cmake using the variable
if(PTL_TBB_FOUND AND NOT GEANT4_USE_TBB)
set(GEANT4_USE_TBB ON CACHE BOOL "Use TBB as PTL's tasking backend (forced)" FORCE)
message(STATUS "Forcing GEANT4_USE_TBB to ON, required by system PTL: ${PTL_DIR}")
endif()
endif()
set(PTL_LIBRARIES PTL::ptl)
geant4_save_package_variables(PTL PTL_DIR)
else()
# Prempt PTL's find of TBB so we can cache the variables
if(GEANT4_USE_TBB)
find_package(TBB REQUIRED)
endif()
set(PTL_FOUND TRUE)
set(GEANT4_USE_BUILTIN_PTL TRUE)
set(PTL_LIBRARIES G4ptl)
endif()
mark_as_advanced(GEANT4_USE_SYSTEM_PTL)
geant4_add_feature(GEANT4_USE_SYSTEM_PTL "Using system PTL library")
# Internal PTL offers adding locks in task queues to help debugging
cmake_dependent_option(GEANT4_USE_PTL_LOCKS "Enable mutex locking in PTL task subqueues" OFF "NOT GEANT4_USE_SYSTEM_PTL" OFF)
mark_as_advanced(GEANT4_USE_PTL_LOCKS)
geant4_add_feature(GEANT4_USE_SYSTEM_PTL "Using system PTL library")
geant4_add_feature(GEANT4_USE_PTL_LOCKS "Enabled mutex locking in PTL task subqueues")
geant4_add_feature(GEANT4_USE_TBB "Using TBB as PTL's tasking backend")
# Always cache TBB even if not used. Empty vars will not be exported.
geant4_save_package_variables(TBB TBB_DIR TBB_INCLUDE_DIR TBB_LIBRARY TBB_LIBRARY_DEBUG TBB_LIBRARY_RELEASE)
#-----------------------------------------------------------------------
# Optional Support for GDML - requires Xerces-C package
+11 -13
View File
@@ -1,18 +1,16 @@
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
# Category cmake-modules History
Category History file
---------------------
This file should be used by G4 developers and category coordinators
to briefly summarise all major modifications introduced in the code
and keep track of all category-tags.
It DOES NOT substitute the CVS log-message one should put at every
committal in the CVS repository !
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
## 2021-12-10 Ben Morgan (cmake-modules-V11-00-00)
- Change to new Markdown History format
---
# History entries prior to 11.0
24th May 2011 Ben Morgan
- *** All History MUST be reported in the main CMake Category History file ***
+302
View File
@@ -0,0 +1,302 @@
#!/usr/bin/env python3
"""Check Geant4 source code modules
Geant4 organises source code into "Modules", with each Module being a
directory containing headers and sources in `include/` and `src/`
subdirectories respectively. One or more Modules are grouped/compiled
into the actual libraries.
This program can be used to query Modules as declared to the build system to:
- List all declared modules
- Print the list of public headers provided by a module
- Print modules required by a module based on inclusion of headers
- Check consistency between declared dependencies of a module and
those its sources actually use via inclusion of headers
- Check for cycles in the graph of declared module dependencies
"""
import argparse
import csv
import os
import sys
import re
import json
import graphlib
def initdb(filename):
db = {}
with open(filename, 'r') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
db[row[0]] = {'location': row[1],
'headers': set(row[2].split(';')) - set(['']),
'public_deps': set(row[3].split(';')) - set(['']),
'private_deps': set(row[4].split(';')) - set(['']),
'interface_deps': set(row[5].split(';')) - set([''])}
return db
def scan_includes(input_file):
result = set()
lines = open(input_file).readlines()
for line in lines:
m = re.search("^ *# *include *\"(.*)\"", line)
if m:
result.add(m.group(1))
return result
def scan_files(input_path):
used_headers = set()
with os.scandir(input_path) as hdr_it:
for entry in hdr_it:
used_headers |= scan_includes(entry.path)
return used_headers
def find_modules(list_of_headers, module_db):
found_modules = set()
orphan_hdrs = set()
for h in list_of_headers:
ms = [k for k, v in module_db.items() if h in v['headers']]
found_modules |= set(ms)
if not ms:
orphan_hdrs.add(h)
return {'modules': found_modules, 'headers': orphan_hdrs}
def usage_requirements(module_name, module_db):
""" Find modules needed publically and privately by input module
"""
module_path = module_db[module_name]['location']
module_headers = module_db[module_name]['headers']
# Determine public usage reqs
includes_from_headers = scan_files(os.path.join(module_path, "include"))
includes_from_headers -= module_headers
public_deps = find_modules(includes_from_headers, module_db)
# The same for private
includes_from_srcs = scan_files(os.path.join(module_path, "src"))
includes_from_srcs -= module_headers
private_deps = find_modules(includes_from_srcs, module_db)
# Public deps are higher priority
private_deps['modules'] -= public_deps['modules']
private_deps['headers'] -= public_deps['headers']
# Transform results to output dict
d = {'module': module_name,
'dependencies': {
'public': sorted(public_deps['modules']),
'private': sorted(private_deps['modules'])
},
'external_headers': {
'public': sorted(public_deps['headers']),
'private': sorted(private_deps['headers'])
}
}
return d
def check_consistency(module_name, module_db):
""" Check module declared/apparent dependencies for consistency
"""
# NB: Can have false positives from externals G4expat, G4clhep, G4zlib, G4tools (plus imported :: targets)
def filter_dependencies(dep_list):
return set([x for x in dep_list if not re.match("^.+::.+", x)]) - set(['G4expat', 'G4clhep', 'G4zlib', 'G4tools', 'G4ptl'])
ur = usage_requirements(module_name, module_db)
apparent_public_deps = filter_dependencies(ur['dependencies']['public'])
apparent_private_deps = filter_dependencies(ur['dependencies']['private'])
declared_public_deps = filter_dependencies(
module_db[module_name]['public_deps'])
declared_private_deps = filter_dependencies(
module_db[module_name]['private_deps'])
# Collate any consistency errors
report = []
# - Declared dependencies duplicated between public/private
# Later checks will help distinguish what to do with this
duplicated_deps = declared_public_deps & declared_private_deps
if duplicated_deps:
report.append(
f'- has duplicated PUBLIC/PRIVATE dependencies: {duplicated_deps}')
# - Apparent dep not declared
missing_public_deps = apparent_public_deps - declared_public_deps
if missing_public_deps:
report.append(
f'- may require PUBLIC dependencies: {missing_public_deps}')
missing_private_deps = apparent_private_deps - declared_private_deps
if missing_private_deps:
report.append(
f'- may require PRIVATE dependencies: {missing_private_deps}')
# - Declared dep not in apparent (overdeclared)
overdeclared_public_deps = declared_public_deps - apparent_public_deps
if overdeclared_public_deps:
report.append(
f'- may not require PUBLIC dependencies: {overdeclared_public_deps}')
overdeclared_private_deps = declared_private_deps - apparent_private_deps
if overdeclared_private_deps:
report.append(
f'- may not require PRIVATE dependencies: {overdeclared_private_deps}')
return report
def find_cycles(module_db, verbose):
""" Check for any cycles in the complete module dependency graph
"""
# Build adjacency list
adjlist = {}
for k, v in module_db.items():
adjlist[k] = list(v['public_deps'] | v['private_deps']
| v['interface_deps'])
try:
# Topo sort throws cycle error if one occurs during prepare
ts = graphlib.TopologicalSorter(adjlist)
ts.prepare()
# Verbose print of nodes in topological order
# NB: This uses the full graphlib interface in case we want to
# print out nodes grouped by level in the graph.
if verbose:
generation = 0
while ts.is_active():
nodes = ts.get_ready()
print(f'Generation: {generation}')
for n in nodes:
print(f' {n}')
ts.done(*nodes)
generation += 1
print(f"pass: No cycles detected in module dependency graph")
except graphlib.CycleError as err:
print(
f"error: cycles detected in module dependency graph",
file=sys.stderr,
)
cycle = " <- ".join(err.args[1])
print(f"cycle: {cycle}", file=sys.stderr)
sys.exit(1)
if __name__ == "__main__":
# Parse command line to get command to run
parser = argparse.ArgumentParser(
description=str(__doc__), formatter_class=argparse.RawDescriptionHelpFormatter
)
parser.add_argument("-db", default='G4ModuleInterfaceMap.csv',
metavar="FILE", help="module interface map file")
parser.add_argument("-v", "--verbose",
action="store_true", help="verbose output")
query_group = parser.add_mutually_exclusive_group(required=True)
query_group.add_argument(
"-l", "--list",
action='store_true',
help="list declared source code modules"
)
query_group.add_argument(
"-i", "--interface",
metavar="<module>",
help="print public headers of module",
)
query_group.add_argument(
"-p", "--provides",
metavar="<header>",
help="print module that provides this header"
)
query_group.add_argument(
"-u", "--usage-requirements",
metavar="<module>",
help="determine and print usage requirements of module"
)
query_group.add_argument(
"-c", "--check-consistency",
metavar="<module>",
help="check declared and apparent module dependencies for basic consistency"
)
query_group.add_argument(
"--find-cycles",
action="store_true",
help="find cycles in graph of declared modules dependencies"
)
query_group.add_argument(
"--find-inconsistencies",
action="store_true",
help="find inconsistencies in apparent/declared dependencies of all modules"
)
args = parser.parse_args()
# Initialize the module/header "database"
try:
db = initdb(args.db)
except OSError as err:
print(f"Could not initalize module DB: {err}", file=sys.stderr)
sys.exit(1)
# Implementations
if args.list:
print("\n".join(db.keys()))
elif args.interface:
try:
print("\n".join(db[args.interface]['headers']))
except KeyError as err:
print(f"No module named {err}", file=sys.stderr)
sys.exit(1)
elif args.provides:
# find the header, there should not be duplicates!
mods = [k for k, v in db.items() if args.provides in v['headers']]
if len(mods) == 0:
print(
f"No module provides header '{args.provides}'",
file=sys.stderr)
sys.exit(1)
if len(mods) > 1:
print(
f"Header '{args.provides}' is provided by multiple modules: {mods}",
file=sys.stderr)
sys.exit(1)
print(mods[0])
elif args.usage_requirements:
ur = usage_requirements(args.usage_requirements, db)
print(json.dumps(ur, indent=2))
elif args.check_consistency:
cc = check_consistency(args.check_consistency, db)
if cc:
print(f'{args.check_consistency}:', file=sys.stderr)
print("\n".join(cc), file=sys.stderr)
sys.exit(1)
else:
print(
f'{args.check_consistency} appears consistent')
elif args.find_cycles:
find_cycles(db, args.verbose)
elif args.find_inconsistencies:
inconsistent = {}
for m in db.keys():
cc = check_consistency(m, db)
if cc:
inconsistent[m] = "\n".join(cc)
if len(inconsistent) > 0:
print(f'Inconsistent dependencies in modules:', file=sys.stderr)
for k, v in inconsistent.items():
print(f'{k}:\n{v}', file=sys.stderr)
sys.exit(1)
+22 -21
View File
@@ -80,7 +80,7 @@
# ui_win32 (WIN32 Style Application Command Line Interface)
#
# motif (Motif-X11/OpenGL Graphical User Interface)
# qt (Qt5/OpenGL Graphical User Interface)
# qt (Qt/OpenGL Graphical User Interface)
#
# vis_opengl_x11 (OpenGL visualization with X11 interface)
# vis_opengl_win32 (OpenGL visualization with X11 interface)
@@ -264,17 +264,24 @@ if(NOT Geant4_builtin_zlib_FOUND)
find_dependency(ZLIB @ZLIB_VERSION_STRING@)
endif()
# PTL/TBB
# - Refind of PTL will refind TBB
set(Geant4_system_ptl_FOUND @GEANT4_USE_SYSTEM_PTL@)
set(Geant4_TBB_FOUND @GEANT4_USE_TBB@)
if(Geant4_system_ptl_FOUND)
set(Geant4_builtin_ptl_FOUND FALSE)
find_dependency(PTL @PTL_VERSION_STRING@)
if(Geant4_TBB_FOUND)
find_dependency(PTL @PTL_VERSION@ COMPONENTS TBB)
else()
find_dependency(PTL @PTL_VERSION@)
endif()
else()
# We know exactly where PTL is
set(Geant4_builtin_ptl_FOUND TRUE)
if(CMAKE_VERSION VERSION_GREATER 3.8.9999)
find_dependency(PTL @PTL_VERSION_STRING@ NO_DEFAULT_PATH PATHS "@PACKAGE_PTL_PREFIX@")
find_dependency(PTL NO_DEFAULT_PATH PATHS "@PACKAGE_PTL_PREFIX@")
else()
find_package(PTL @PTL_VERSION_STRING@ REQUIRED NO_DEFAULT_PATH PATHS "@PACKAGE_PTL_PREFIX@")
find_package(PTL REQUIRED NO_DEFAULT_PATH PATHS "@PACKAGE_PTL_PREFIX@")
endif()
endif()
@@ -300,12 +307,6 @@ set(Geant4_smartstack_FOUND @GEANT4_USE_SMARTSTACK@)
# - ParticleHP as HP
set(Geant4_php_as_hp_FOUND @GEANT4_BUILD_PHP_AS_HP@)
# - TBB
set(Geant4_TBB_FOUND @GEANT4_USE_TBB@)
if(Geant4_TBB_FOUND)
find_dependency(TBB @TBB_VERSION@)
endif()
# - TiMemory
set(Geant4_timemory_FOUND @GEANT4_USE_TIMEMORY@)
if(Geant4_timemory_FOUND)
@@ -399,18 +400,18 @@ endif()
set(Geant4_qt_FOUND @GEANT4_USE_QT@)
set(Geant4_qt3d_FOUND @GEANT4_USE_QT3D@)
if(Geant4_qt_FOUND)
# Must always refind Qt5 to recreate imported targets. Because these
# Must always refind Qt to recreate imported targets. Because these
# are in the public interface, always need linking.
find_dependency(Qt5Core REQUIRED)
find_dependency(Qt5Gui REQUIRED)
find_dependency(Qt5Widgets REQUIRED)
find_dependency(Qt5OpenGL REQUIRED)
find_dependency(Qt5PrintSupport REQUIRED)
find_dependency(Qt@QT_VERSION_MAJOR@Core REQUIRED)
find_dependency(Qt@QT_VERSION_MAJOR@Gui REQUIRED)
find_dependency(Qt@QT_VERSION_MAJOR@Widgets REQUIRED)
find_dependency(Qt@QT_VERSION_MAJOR@OpenGL REQUIRED)
find_dependency(Qt@QT_VERSION_MAJOR@PrintSupport REQUIRED)
if(Geant4_qt3d_FOUND)
find_dependency(Qt53DCore @QT3D_MINIMUM_VERSION@ REQUIRED)
find_dependency(Qt53DExtras @QT3D_MINIMUM_VERSION@ REQUIRED)
find_dependency(Qt53DRender @QT3D_MINIMUM_VERSION@ REQUIRED)
find_dependency(Qt@QT_VERSION_MAJOR@3DCore @QT3D_MINIMUM_VERSION@ REQUIRED)
find_dependency(Qt@QT_VERSION_MAJOR@3DExtras @QT3D_MINIMUM_VERSION@ REQUIRED)
find_dependency(Qt@QT_VERSION_MAJOR@3DRender @QT3D_MINIMUM_VERSION@ REQUIRED)
endif()
# Also require OpenGL
@@ -712,7 +713,6 @@ list(APPEND _geant4_internal_libraries
${_geant4_physicslists_library}
Geant4::G4run${_geant4_lib_use_suffix}
Geant4::G4event${_geant4_lib_use_suffix}
Geant4::G4tasking${_geant4_lib_use_suffix}
Geant4::G4tracking${_geant4_lib_use_suffix}
Geant4::G4parmodels${_geant4_lib_use_suffix}
Geant4::G4processes${_geant4_lib_use_suffix}
@@ -724,7 +724,8 @@ list(APPEND _geant4_internal_libraries
Geant4::G4graphics_reps${_geant4_lib_use_suffix}
Geant4::G4intercoms${_geant4_lib_use_suffix}
Geant4::G4global${_geant4_lib_use_suffix}
Geant4::G4tools${_geant4_lib_use_suffix}
# G4tools is INTERFACE, so same for both static/shared.
Geant4::G4tools
)
# - Any externals built by Geant4
+8 -90
View File
@@ -1,94 +1,12 @@
# - Use file for Geant4
# This file may be included after a find_package call has successfully
# located Geant4 to set global compile definitions, include directories,
# and compiler flags for building and linking to the Geant4 libraries.
#
# If Geant4 has been located via the Geant4Config.cmake config file, the
# following variable will be set:
#
# Geant4_USE_FILE : Point to the location of the use file for the found
# 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
# included.
#
# Header paths are added via include_directories as SYSTEM type directories
#
# 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
# 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
# file. This file can contain variables, functions and macros for strict
# internal use in Geant4, such as building and running validation tests.
# Optional inclusion of internal Use file. This file can contain
# variables, functions and macros for strict internal use in Geant4,
# such as building and running validation tests.
#
include(${CMAKE_CURRENT_LIST_DIR}/UseGeant4_internal.cmake OPTIONAL)
#-----------------------------------------------------------------------
# We need to set the compile definitions and include directories
#
add_definitions(${Geant4_DEFINITIONS})
include_directories(AFTER SYSTEM ${Geant4_INCLUDE_DIRS})
#-----------------------------------------------------------------------
# Because Geant4 is sensitive to the compiler flags, 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} ${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}")
#-----------------------------------------------------------------------
# Update build type information ONLY for single mode build tools, adding
# type used to build this install if none has been set, but otherwise leaving
# value alone.
# NB: this doesn't allow "None" for the build type - would need something
# more sophisticated using an internal cache variable.
# Good enough for now!
#
if(NOT CMAKE_CONFIGURATION_TYPES)
if(NOT CMAKE_BUILD_TYPE)
# Default to type used to build this install.
set(CMAKE_BUILD_TYPE "${Geant4_BUILD_TYPE}"
CACHE STRING "Choose the type of build, options are: None Release MinSizeRel Debug RelWithDebInfo MinSizeRel."
FORCE
)
else()
# Force to the cache, but use existing value.
set(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}"
CACHE STRING "Choose the type of build, options are: None Release MinSizeRel Debug RelWithDebInfo MinSizeRel."
FORCE
)
endif()
endif()
#-----------------------------------------------------------------------
# Locate ourselves
#
get_filename_component(_use_geant4_dir ${CMAKE_CURRENT_LIST_FILE} PATH)
#-----------------------------------------------------------------------
# Append the local module path to CMAKE_MODULE_PATH to automatically
# make FindXXX modules for examples available
#
list(APPEND CMAKE_MODULE_PATH ${_use_geant4_dir}/Modules)
#-----------------------------------------------------------------------
# Include internal use file if it exists. It should only exist in the
# build tree!
#
include(${_use_geant4_dir}/UseGeant4_internal.cmake OPTIONAL)
# Add Module directory so that examples can use internal "FindXXX"
# modules. Appended to minimize any conflict with consumer project
# settings
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/Modules)
+10
View File
@@ -159,7 +159,17 @@ function(geant4_add_test test)
--no-warn-unused-cli
-DGeant4_DIR=${CMAKE_BINARY_DIR}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
-DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}
-DCMAKE_C_FLAGS_MINSIZEREL=${CMAKE_C_FLAGS_MINSIZEREL}
-DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}
-DCMAKE_C_FLAGS_RELWITHDEBINFO=${CMAKE_C_FLAGS_RELWITHDEBINFO}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
-DCMAKE_CXX_FLAGS_MINSIZEREL=${CMAKE_CXX_FLAGS_MINSIZEREL}
-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
-DCMAKE_DISABLE_FIND_PACKAGE_ROOT=$<BOOL:${CMAKE_DISABLE_FIND_PACKAGE_ROOT}>
)
set_property(TEST ${__build_test_name} PROPERTY ENVIRONMENT Geant4_DIR=${CMAKE_BINARY_DIR})
+108 -7
View File
@@ -48,6 +48,9 @@ scriptloc=`dirname $script`
# Expansion and calculation of all needed variables
#
prefix=@GEANT4_CONFIG_INSTALL_PREFIX@
# canonicalize path
prefix=`cd "$prefix" 2>/dev/null; pwd -P`
exec_prefix=@GEANT4_CONFIG_EXECPREFIX@
libdir=@GEANT4_CONFIG_LIBDIR@
includedirs="@GEANT4_CONFIG_INCLUDE_DIRS@"
@@ -113,16 +116,15 @@ done
libs="-lG4interfaces \
-lG4persistency \
-lG4analysis \
-lG4error_propagation \
-lG4readout \
-lG4physicslists \
-lG4tasking \
-lG4run \
-lG4event \
-lG4tracking \
-lG4parmodels \
-lG4processes \
-lG4analysis \
-lG4digits_hits \
-lG4track \
-lG4particles \
@@ -131,7 +133,6 @@ libs="-lG4interfaces \
-lG4graphics_reps \
-lG4intercoms \
-lG4global \
-lG4tools \
@G4_LINK_CXX_FILESYSTEM@"
#-----------------------------------------------------------------------
@@ -224,6 +225,11 @@ fi
geant4_uses_opengl="yes"
fi
# - QT3D
have_qt3d="@G4_BUILTWITH_QT3D@"
feature_list="${feature_list} qt3d[${have_qt3d}]"
# - Motif
have_motif="@G4_BUILTWITH_MOTIF@"
feature_list="${feature_list} motif[${have_motif}]"
@@ -264,6 +270,11 @@ if test "x${have_openinventor}" = "xyes" ; then
vis_libs="-lG4OpenInventor ${vis_libs}"
fi
# - VTK
have_vtk="@G4_BUILTWITH_VTK@"
feature_list="${feature_list} vtk[${have_vtk}]"
# - If we have any OpenGL based feature, then we need to add in the
# OpenGL global define and the G4OpenGL/G4gl2ps libraries.
if test "x${geant4_uses_opengl}" = "xyes" ; then
@@ -304,6 +315,36 @@ print_datasets()
exit 0
}
#-----------------------------------------------------------------------
# function print_datasets_sh
# print dataset information with one line per dataset and each
# line in the format
# export <ENVVARNAME>="<PATH>"
print_datasets_sh()
{
for ds in ${dataset_list} ; do
dataset_envvar=$(echo $ds | cut -d "|" -f2)
dataset_path=$(echo $ds | cut -d "|" -f3)
echo "export ${dataset_envvar}=\"${dataset_path}\""
done
exit 0
}
#-----------------------------------------------------------------------
# function print_datasets_csh
# print dataset information with one line per dataset and each
# line in the format
# setenv <ENVVARNAME> "<PATH>";
print_datasets_csh()
{
for ds in ${dataset_list} ; do
dataset_envvar=$(echo $ds | cut -d "|" -f2)
dataset_path=$(echo $ds | cut -d "|" -f3)
echo "setenv ${dataset_envvar} \"${dataset_path}\";"
done
exit 0
}
#-----------------------------------------------------------------------
# function check_datasets
# Check whether datasets exist as directories at the expected
@@ -336,8 +377,15 @@ install_datasets()
G4OPENSSL=$(which openssl)
if test "x${G4OPENSSL}" = "x" ; then
echo "- error: no openssl executable found"
G4MD5SUM=$(which md5sum)
if test "x${G4MD5SUM}" = "x" ; then
echo "- error: no openssl or md5sum executable found"
exit 1
else
G4MD5CMD="${G4MD5SUM} --tag"
fi
else
G4MD5CMD="${G4OPENSSL} dgst -md5"
fi
G4TAR=$(which tar)
@@ -390,7 +438,7 @@ install_datasets()
# Validate bundle hash (basic)
dataset_md5=$(echo $ds | cut -d "|" -f5)
actual_md5=$(${G4OPENSSL} dgst -md5 ${g4downloaddir}/${dataset_file} | cut -d" " -f2)
actual_md5=$(${G4MD5CMD} ${g4downloaddir}/${dataset_file} | tr -d ' ' | cut -d"=" -f2)
echo "+ checking md5 of ${dataset_file}"
if [ "${actual_md5}" != "${dataset_md5}" ] ; then
echo "- md5 mismatch for '${dataset_file}' : ${actual_md5}(actual) != ${dataset_md5}(expected)"
@@ -440,6 +488,21 @@ install_datasets()
exit 1
}
#-----------------------------------------------------------------------
# function list_features
# print list of enabled and disabled features.
#
list_features()
{
cat<<EOF
Known Features:
EOF
for f in ${feature_list} ; do
echo " $f"
done
exit 0
}
#-----------------------------------------------------------------------
# function help
# print help on available command line arguments and enabled
@@ -465,6 +528,16 @@ Usage: geant4-config [OPTION...]
--has-feature FEATURE output yes if FEATURE is supported,
or no if not supported
--features print list of features
--sh print shell commands required to set environment
variables for Geant4, which can be evaluated in
the calling shell with "eval \$(geant4-config --sh)"
--csh print C shell commands required to set environment
variables for Geant4, which can be evaluated in
the calling shell with "eval \`geant4-config --csh\`"
--datasets output dataset name, environment variable
and path, with one line per dataset
@@ -514,14 +587,16 @@ fi
while test $# -gt 0 ; do
case "$1" in
-*=*)
optflag=`echo "$1" | sed 's/=[-_a-zA-Z0-9]*//'`
optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
;;
*)
optflag=$1
optarg=
;;
esac
case "$1" in
case "$optflag" in
--prefix)
echo ${prefix}
;;
@@ -555,9 +630,17 @@ while test $# -gt 0 ; do
;;
--has-feature)
if [ x$optarg = x ]; then
if [ $# -gt 1 ]; then
shift
optarg=$1
else
echo "$optflag - missing parameter"
exit 1
fi
fi
case "$1" in
case "$optarg" in
static)
echo ${have_staticlibs}
;;
@@ -594,6 +677,12 @@ while test $# -gt 0 ; do
qt)
echo ${have_qt}
;;
qt3d)
echo ${have_qt3d}
;;
vtk)
echo ${have_vtk}
;;
motif)
echo ${have_motif}
;;
@@ -615,6 +704,10 @@ while test $# -gt 0 ; do
esac
;;
--features)
list_features
;;
--datasets)
print_datasets
;;
@@ -627,6 +720,14 @@ while test $# -gt 0 ; do
install_datasets
;;
--sh)
print_datasets_sh
;;
--csh)
print_datasets_csh
;;
-?)
help
;;
@@ -28,6 +28,7 @@
#
set(GEANT4_FALSEPOSITIVE_SOURCES
# G4{Global,Geom}Config.hh generated
G4FindDataDir.hh
G4GlobalConfig.hh
G4GeomConfig.hh
# - Xaw is deprecated...
+20 -12
View File
@@ -1,19 +1,27 @@
-------------------------------------------------------------------
# Category config History
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top).
It must **not** be used as a substitute for writing good git commit messages!
Category History file
---------------------
--------------------------------------------------------------------------------
History file for Geant4 configuration scripts.
It DOES NOT substitute the CVS log-message one should put at every
committal in the CVS repository !
## 2022-03-25 Ben Morgan (config-V11-00-03)
- Retire G4tasking category and library from build
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
## 2022-02-06 Gabriele Cosmo (config-V11-00-02)
- Updated compilation flags for Intel icc/icx compilers.
- Enable -pthread only for MT builds in other configurations.
## 2022-02-04 Gabriele Cosmo (config-V11-00-01)
- Added Linux-icx.gmk configuration for Intel OneAPI DPC++ compiler.
## 2021-12-10 Ben Morgan (config-V11-00-00)
- Change to new Markdown History format
---
# History entries prior to 11.0
4th November 2021 Gabriele Cosmo (config-V10-07-09)
- Updated default Qt5 include paths for Linux targets.
-2
View File
@@ -154,7 +154,6 @@ ifndef INCFLAGS
-I$(G4BASE)/geometry/navigation/include \
-I$(G4BASE)/geometry/magneticfield/include \
-I$(G4BASE)/geometry/biasing/include \
-I$(G4BASE)/tasking/include \
-I$(G4BASE)/track/include \
-I$(G4BASE)/tracking/include \
-I$(G4BASE)/digits_hits/detector/include \
@@ -236,7 +235,6 @@ ifdef GLOBALLIBS
LDLIBS2 += -lG4error_propagation \
-lG4readout \
-lG4physicslists \
-lG4tasking \
-lG4run \
-lG4event \
-lG4tracking \
+3 -3
View File
@@ -1,6 +1,6 @@
#
# ------ MacOS-X ------
# macOS 11, Apple clang-12 and higher
# ------ macOS ------
# macOS, Apple clang-12 and higher
#
# Original author: Gabriele Cosmo - CERN
#
@@ -15,7 +15,7 @@ ifeq ($(G4SYSTEM),Darwin-clang)
CXXFLAGS += -std=c++17
G4USE_STD17 := 1
ifdef G4MULTITHREADED
CXXFLAGS += -ftls-model=initial-exec
CXXFLAGS += -ftls-model=initial-exec -pthread
endif
ifdef G4OPTIMISE
CXXFLAGS += -O3
+5 -2
View File
@@ -1,6 +1,6 @@
#
# ------ MacOS-X ------
# macOS 11, gcc-9.3 and higher
# ------ macOS ------
# macOS, gcc-9.3 and higher
#
# Original author: Helmut Burkhardt - CERN
# Revisions: Guy Barrand - LAL
@@ -18,6 +18,9 @@ ifeq ($(G4SYSTEM),Darwin-g++)
CXXFLAGS += -std=c++17
# CXXFLAGS += -stdlib=libstdc++
G4USE_STD17 := 1
ifdef G4MULTITHREADED
CXXFLAGS += -ftls-model=initial-exec -pthread
endif
ifdef G4OPTIMISE
CXXFLAGS += -O3
FCFLAGS := -O3
+2 -2
View File
@@ -7,13 +7,13 @@ ifeq ($(G4SYSTEM),Linux-clang)
CXX := clang++
CXXFLAGS := -Wall -Wno-non-virtual-dtor -Wno-long-long
CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual
CXXFLAGS += -Wno-variadic-macros -Wshadow -pipe -pthread
CXXFLAGS += -Wno-variadic-macros -Wshadow -pipe
CXXFLAGS += -fno-trapping-math -ftree-vectorize -fno-math-errno
CPPFLAGS += -std=c++17
CXXFLAGS += -std=c++17
G4USE_STD17 := 1
ifdef G4MULTITHREADED
CXXFLAGS += -ftls-model=initial-exec
CXXFLAGS += -ftls-model=initial-exec -pthread
endif
ifdef G4OPTIMISE
CXXFLAGS += -O3
+2 -2
View File
@@ -5,13 +5,13 @@ ifeq ($(G4SYSTEM),Linux-g++)
CXX := g++
CXXFLAGS := -W -Wall -ansi -pedantic -Wno-non-virtual-dtor -Wno-long-long
CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual
CXXFLAGS += -Wno-variadic-macros -Wshadow -pipe -pthread
CXXFLAGS += -Wno-variadic-macros -Wshadow -pipe
CXXFLAGS += -fno-trapping-math -ftree-vectorize -fno-math-errno
CPPFLAGS += -std=c++17
CXXFLAGS += -std=c++17
G4USE_STD17 := 1
ifdef G4MULTITHREADED
CXXFLAGS += -ftls-model=initial-exec
CXXFLAGS += -ftls-model=initial-exec -pthread
endif
ifdef G4OPTIMISE
CXXFLAGS += -O3
+6 -2
View File
@@ -3,12 +3,15 @@
#
ifeq ($(G4SYSTEM),Linux-icc)
CXX := icc
CXXFLAGS := -ansi -fp-model precise -w1 -pthread
CXXFLAGS := -W -Wall -ansi -pedantic -Wno-non-virtual-dtor -Wno-long-long
CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual
CXXFLAGS += -Wno-variadic-macros -Wshadow -pipe
CXXFLAGS += -fp-model precise
CPPFLAGS += -std=c++17
CXXFLAGS += -std=c++17
G4USE_STD17 := 1
ifdef G4MULTITHREADED
CXXFLAGS += -ftls-model=initial-exec
CXXFLAGS += -ftls-model=initial-exec -pthread
endif
ifdef G4OPTIMISE
CXXFLAGS += -O3
@@ -41,6 +44,7 @@ ifeq ($(G4SYSTEM),Linux-icc)
AR := ar r
ECHO := /bin/echo -e
SHEXT := so
LOADLIBS += -limf
ifndef X11FLAGS
X11FLAGS := -I/usr/include/X11/extensions -I/usr/include/X11
endif
+151
View File
@@ -0,0 +1,151 @@
#
# ------ GNU/LINUX ------ Intel OneAPI DPC++ 2022.x and higher
#
ifeq ($(G4SYSTEM),Linux-icx)
CXX := icpx
CXXFLAGS := -W -Wall -ansi -pedantic -Wno-non-virtual-dtor -Wno-long-long
CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual
CXXFLAGS += -Wno-variadic-macros -Wshadow -pipe
CXXFLAGS += -fno-trapping-math -ftree-vectorize -fno-math-errno
CXXFLAGS += -fp-model precise
CPPFLAGS += -std=c++17
CXXFLAGS += -std=c++17
G4USE_STD17 := 1
ifdef G4MULTITHREADED
CXXFLAGS += -ftls-model=initial-exec -pthread
endif
ifdef G4OPTIMISE
CXXFLAGS += -O3
FCFLAGS := -O3
CCFLAGS := -O3
else
ifdef G4DEBUG
CXXFLAGS += -g
FCFLAGS := -g
CCFLAGS := -g
endif
endif
ifdef G4PROFILE
CXXFLAGS += -qp
FCFLAGS += -qp
CCFLAGS += -pg
endif
ifdef G4LIB_BUILD_SHARED
CXXFLAGS += -fPIC
FCFLAGS += -fPIC
CCFLAGS += -fPIC
endif
G4RUNPATHOPTION := -Wl,-rpath -Wl,
G4STATIC_MODE += -Wl,--whole-archive
G4NOSTATIC_MODE += -Wl,--no-whole-archive
CC := icx
FC := ifx
FCFLAGS += -noautomatic -assume nobscc -assume no2underscores
FCLIBS := -lg2c -lnsl
AR := ar r
ECHO := /bin/echo -e
SHEXT := so
LOADLIBS += -limf
ifndef X11FLAGS
X11FLAGS := -I/usr/include/X11/extensions -I/usr/include/X11
endif
ifndef X11LIBS
X11LIBS := -L/usr/lib -lXmu -lXt -lXext -lX11 -lSM -lICE
endif
ifndef XMFLAGS
XMFLAGS := -I/usr/include
endif
ifndef XMLIBS
XMLIBS := -lXm -lXpm
endif
ifndef XAWFLAGS
XAWFLAGS := -I/usr/include
endif
ifndef XAWLIBS
XAWLIBS := -lXaw
endif
DLDLIBS := -ldl
ifndef OGLFLAGS
OGLFLAGS := -I$(OGLHOME)/include
endif
ifndef OGLHOME
OGLHOME := /usr
endif
ifndef OGLLIBS
OGLLIBS := -L$(OGLHOME)/lib -lGL
endif
# ---- QT Setup block -------------------------------------------------------
ifndef QTHOME
QTHOME := /usr
endif
ifndef QTMOC
QTMOC := $(QTHOME)/bin/moc
endif
ifndef QT_VERSION
QT_VERSION := 5
endif
ifeq ($(QT_VERSION),5)
ifndef QTFLAGS # Qt5
QTFLAGS := -I $(QTHOME)/include -I$(QTHOME)/include/Qt
QTFLAGS += -I $(QTHOME)/include/QtCore
QTFLAGS += -I $(QTHOME)/include/QtGui
QTFLAGS += -I $(QTHOME)/include/QtWidgets
QTFLAGS += -I $(QTHOME)/include/QtOpenGL
QTFLAGS += -I $(QTHOME)/include/Qt3DCore
QTFLAGS += -I $(QTHOME)/include/Qt3DExtras
QTFLAGS += -I $(QTHOME)/include/Qt3DRender
QTFLAGS += -I $(QTHOME)/include/QtPrintSupport
endif
else # Qt4
ifndef QTFLAGS
QTFLAGS := -I$(QTHOME)/include -I$(QTHOME)/include/Qt
QTFLAGS += -I$(QTHOME)/include/QtCore
QTFLAGS += -I$(QTHOME)/include/QtGui
QTFLAGS += -I$(QTHOME)/include/QtOpenGL
endif
endif
ifndef QTLIBPATH
QTLIBPATH := $(QTHOME)/lib
QT_SEARCH_LIB := $(shell ls $(QTLIBPATH)/qt$(QT_VERSION)/libq* 2>/dev/null | wc -l )
ifneq ($(QT_SEARCH_LIB),0)
QTLIBPATH := $(QTHOME)/lib/qt$(QT_VERSION)
endif
endif
ifeq ($(QT_VERSION),5)
ifndef QTLIBS # Qt5
QTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt5PrintSupport
endif
ifndef QT3DLIBS
QT3DLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt53DCore -lQt53DExtras -lQt53DRender -lQt5PrintSupport
endif
ifndef GLQTLIBS
GLQTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt5OpenGL -lQt5PrintSupport
endif
else # Qt4
ifndef QTLIBS
QTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui
endif
ifndef GLQTLIBS
GLQTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui -lQtOpenGL
endif
endif
#----------------------------------------------------------------------------
define build-granular-shared-lib
@libdir=`(cd $(@D);/bin/pwd)`; \
cd $(G4TMPDIR); \
$(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) $(INTYLIBS) *.o
endef
define build-global-shared-lib
@libdir=`(cd $(@D);/bin/pwd)`; \
cd $(G4TMP)/$(G4SYSTEM); \
$(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) $(INTYLIBS) \
$(foreach dir,$(SUBLIBS),$(dir)/*.o);
endef
endif
+9 -14
View File
@@ -1,21 +1,16 @@
-------------------------------------------------------------------
# Category envs History
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
Super-Category History file
---------------------------
This file should be used by G4 developers and category coordinators
to briefly summarize all major modifications introduced in the code
at this level and keep track of all relavant tags.
It DOES NOT substitute the CVS log-message one should put at every
committal in the CVS repository !
## 2021-12-10 Ben Morgan (envs-V11-00-00)
- Change to new Markdown History format
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
---
# History entries prior to 11.0
envs-V10-07-00/ Sep. 25, 2020 B.Morgan
- Remove MOMO
+10 -9
View File
@@ -1,15 +1,16 @@
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
# Category geant4py History
Geant4Py History file
---------------------
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
Geant4Py is a Geant4-Python bridge.
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
## 2021-12-10 Ben Morgan (geant4py-V11-00-00)
- Change to new Markdown History format
---
# History entries prior to 11.0
2 Nov. 2021 B.Morgan (geant4py-V10-07-05)
- Apply GitHub PR #31 from andriish
+9 -10
View File
@@ -1,17 +1,16 @@
-------------------------------------------------------------------
# Category g4py-examples History
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
Category History file
---------------------
A set of examples for Geant4Py.
## 2021-12-10 Ben Morgan (g4py-examples-V11-00-00)
- Change to new Markdown History format
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
---
# History entries prior to 11.0
12 November 2007 K.Murakami
- add GDML I/O examples
@@ -1,3 +1,17 @@
# Category g4py-examples-education History
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
## 2021-12-10 Ben Morgan (g4py-examples-education-V11-00-00)
- Change to new Markdown History format
---
# History entries prior to 11.0
27 Sep. 2006 Hajime Yoshida
- Lesson1.py as before
- Lesson1withN03.py with the physics list of N03
+9 -10
View File
@@ -1,17 +1,16 @@
-------------------------------------------------------------------
# Category g4py-tests History
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
Category History file
---------------------
A set of tests for python wrapping of C++ elements.
## 2021-12-10 Ben Morgan (g4py-tests-V11-00-00)
- Change to new Markdown History format
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
---
# History entries prior to 11.0
Nov.30, 2008 K.Murakami
- gtest01-07: modified with g4py namespace
+10 -9
View File
@@ -1,15 +1,16 @@
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
# Category zmq History
G4ZMQ History file
---------------------
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
ZeroMQ Interface for Geant4
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
## 2021-12-10 Ben Morgan (zmq-V11-00-00)
- Change to new Markdown History format
---
# History entries prior to 11.0
25 Oct. 2021 B. Morgan - zmq-V10-07-00
- Use G4StrUtil functions replacing deprecated G4String member functions
+8 -13
View File
@@ -1,21 +1,16 @@
-------------------------------------------------------------------
# Example Doxygen History
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
Configuration files for Examples Doxygen documentation
----------------------------------------------------------
## 2021-12-10 Ben Morgan (doxygen-V11-00-00)
- Change to new Markdown History format
---
This file should be used by the G4 example coordinator to briefly
summarize all major modifications introduced in the code and keep
track of all tags.
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
# History entries prior to 11.0
06/12/20 I.Hrivnacova (doxygen-V10-07-02)
- Added new extended example RE07 in documentation
+52 -14
View File
@@ -1,20 +1,58 @@
-------------------------------------------------------------------
# Example examples History
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top).
It must **not** be used as a substitute for writing good git commit messages!
Category History file
---------------------
This file should be used by G4 developers and category coordinators
to briefly summarize all major modifications introduced in the code
and keep track of all category-tags.
It DOES NOT substitute the CVS log-message one should put at every
committal in the CVS repository !
-------------------------------------------------------------------------------
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
## 2022-06-30 Gabriele Cosmo (examples-V11-00-06)
- Updated reference outputs according to reference tag geant4-11-00-ref-06.
- Includes tags: brachy-V11-00-01, ICRP110Phantoms-V11-00-01,
iort_therapy-V11-00-01, STCyclotron-V11-00-01,
exHadronic-V11-00-01, exhadrParticleFluence-V11-00-00,
chem6-V11-00-06, microyz-V11-00-02, molecularDNA-V11-00-05.
## 2022-05-31 Gabriele Cosmo (examples-V11-00-05)
- Updated reference outputs according to reference tag geant4-11-00-ref-05.
- Includes tags: ChargeExchangeMC-V11-00-01, eRosita-V11-00-02,
exampleB2-V11-00-01, testem9-V11-00-01, HepMCEx01-V11-00-01,
chem4-V11-00-04, chem5-V11-00-01, chem6-V11-00-05,
microyz-V11-00-01, molecularDNA-V11-00-04, scavenger-V11-00-01,
OpNovice2-V11-00-02, MPI-V11-00-02.
## 2022-04-30 Gabriele Cosmo (examples-V11-00-04)
- Updated reference outputs according to reference tag geant4-11-00-ref-04.
- Includes tags: testem5-V11-00-01, monopole-V11-00-02, rdecay01-V11-00-01,
VecGeomNavigation-V11-00-02, NeutronSource-V11-00-01,
exhadr03-V11-00-01, exhadr05-V11-00-02, exhadr06-V11-00-01,
exhadr07-V11-00-01, molecularDNA-V11-00-03, OpNovice2-V11-00-01,
activation-V11-00-01.
## 2022-03-31 Gabriele Cosmo (examples-V11-00-03)
- Updated reference outputs according to reference tag geant4-11-00-ref-03.
- Includes tags: CaTS-V11-00-01, microbeam-V11-00-01, exampleB3-V11-00-01,
VecGeomNavigation-V11-00-01, dnaphysics-V11-00-01,
chem4-V11-00-03, chem6-V11-00-04, molecularDNA-V11-00-02,
spower-V11-00-01, MPI-V11-00-01, expar04-V11-00-02.
## 2022-02-28 Gabriele Cosmo (examples-V11-00-02)
- Updated reference outputs according to reference tag geant4-11-00-ref-02.
- Includes tags: air_shower-V11-00-01, ccal-V11-00-01, eRosita-V11-00-01,
XRayFluo-V11-00-01, testem6-V11-00-01, testem15-V11-00-02,
exdna-V11-00-01, chem6-V11-00-01, molecularDNA-V11-00-01.
## 2022-01-31 Gabriele Cosmo (examples-V11-00-01)
- Updated reference outputs according to reference tag geant4-11-00-ref-01.
- Includes tags: amsEcal-V11-00-01, hadrontherapy-V11-00-01, testem3-V11-00-01,
testem15-V11-00-01, particleGunExample-V11-00-01,
monopole-V11-00-01, exhadr05-V11-00-01, fano-V11-00-01,
fano2-V11-00-01, OpNovice-V11-00-01, expar04-V11-00-01.
- Changed to new Markdown History format (B.Morgan).
---
# History entries prior to 11.0
6th December 2021 Gabriele Cosmo (examples-V11-00-00)
- Updated reference outputs according to reference tag geant4-11-00-ref-00.
+908
View File
@@ -0,0 +1,908 @@
---------------------------------------------------------------------
* |\___/| *
* ) ( *
* =\ /= *
* )===( Welcome to: *
* / \ CaTS: Calorimeter and Tracker Simulation *
* | | a flexible and extend-able framework *
* / \ for the simulation of various detector *
* \ / systems *
* \__ _/ https://github.com/hanswenzel/CaTS *
* ( ( *
* ) ) Version: CaTS_1_0 *
* (_( Date: (14-October-2021) *
---------------------------------------------------------------------
Warning! no physics configuration specified!
Using default FTFP_BERT+OPTICAL+STEPLIMIT
Usage: CaTS -pl physicsconfiguration
G4PhysListRegistry::GetModularPhysicsList <FTFP_BERT+OPTICAL+STEPLIMIT>, as "FTFP_BERT" with extensions "+OPTICAL+STEPLIMIT"
<<< Geant4 Physics List simulation engine: FTFP_BERT
<<< RegisterPhysics with G4OpticalPhysics "OPTICAL"
<<< RegisterPhysics with G4StepLimiterPhysics "STEPLIMIT"
<<< Reference Physics List FTFP_BERT+OPTICAL+STEPLIMIT is built
Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type...
############################################
!!! WARNING - FPE detection is activated !!!
############################################
################################
!!! G4Backtrace is activated !!!
################################
**************************************************************
Geant4 version Name: geant4-11-01-beta-01 (30-June-2022)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
: NIM A 835 (2016), 186-225
WWW : http://geant4.org/
**************************************************************
RootIO:: Opening File: Hits.root
G4GDML: Reading '/geant4/examples/advanced/CaTS/gdml/simpleLArTPC.gdml'...
G4GDML: Reading definitions...
G4GDML: Reading materials...
G4GDML: Reading solids...
G4GDML: Reading structure...
Treating unknown GDML tag in volume 'colorref' as GDML extension...
Treating unknown GDML tag in volume 'colorref' as GDML extension...
G4GDML: Reading setup...
G4GDML: Reading '/geant4/examples/advanced/CaTS/gdml/simpleLArTPC.gdml' done!
Stripping off GDML names of materials, solids and volumes ...
(0,0,0)
1 PhotonSD name: Det_Photondetector collection Name: Det_Photondetector_HC
hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval
for pions : 3 to 6 GeV
for kaons : 3 to 6 GeV
for proton : 3 to 6 GeV
for neutron : 3 to 6 GeV
### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0
G4OpticalPhysics:: Add Optical Physics Processes
### Birks coefficients used in run time
### Optical physics constructed.
=======================================================================
====== Electromagnetic Physics Parameters ========
=======================================================================
LPM effect enabled 1
Enable creation and use of sampling tables 0
Apply cuts on all EM processes 0
Use combined TransportationWithMsc Disabled
Use general process 1
Enable linear polarisation for gamma 0
Enable sampling of quantum entanglement 0
X-section factor for integral approach 0.8
Min kinetic energy for tables 100 eV
Max kinetic energy for tables 100 TeV
Number of bins per decade of a table 7
Verbose level 1
Verbose level for worker thread 0
Bremsstrahlung energy threshold above which
primary e+- is added to the list of secondary 100 TeV
Bremsstrahlung energy threshold above which primary
muon/hadron is added to the list of secondary 100 TeV
Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
=======================================================================
Step function for e+- (0.2, 1 mm)
Step function for muons/hadrons (0.2, 0.1 mm)
Step function for light ions (0.2, 0.1 mm)
Step function for general ions (0.2, 0.1 mm)
Lowest e+e- kinetic energy 1 keV
Lowest muon/hadron kinetic energy 1 keV
Use ICRU90 data 0
Fluctuations of dE/dx are enabled 1
Type of fluctuation model 2
Use built-in Birks satuaration 1
Build CSDA range enabled 0
Use cut as a final range enabled 0
Enable angular generator interface 0
Max kinetic energy for CSDA tables 1 GeV
Max kinetic energy for NIEL computation 0 eV
Linear loss limit 0.01
Read data from file for e+e- pair production by mu 0
=======================================================================
====== Multiple Scattering Parameters ========
=======================================================================
Type of msc step limit algorithm for e+- 1
Type of msc step limit algorithm for muons/hadrons 0
Msc lateral displacement for e+- enabled 1
Msc lateral displacement for muons and hadrons 0
Urban msc model lateral displacement alg96 1
Range factor for msc step limit for e+- 0.04
Range factor for msc step limit for muons/hadrons 0.2
Geometry factor for msc step limitation of e+- 2.5
Safety factor for msc step limit for e+- 0.6
Skin parameter for msc step limitation of e+- 1
Lambda limit for msc step limit for e+- 1 mm
Use Mott correction for e- scattering 0
Factor used for dynamic computation of angular
limit between single and multiple scattering 1
Fixed angular limit between single
and multiple scattering 3.1416 rad
Upper energy limit for e+- multiple scattering 100 MeV
Type of electron single scattering model 0
Type of nuclear form-factor 1
Screening factor 1
=======================================================================
phot: for gamma SubType=12 BuildTable=0
LambdaPrime table from 200 keV to 100 TeV in 61 bins
===== EM models for the G4Region DefaultRegionForTheWorld ======
LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo
compt: for gamma SubType=13 BuildTable=1
Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1
LambdaPrime table from 1 MeV to 100 TeV in 56 bins
===== EM models for the G4Region DefaultRegionForTheWorld ======
Klein-Nishina : Emin= 0 eV Emax= 100 TeV
conv: for gamma SubType=14 BuildTable=1
Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai
Rayl: for gamma SubType=11 BuildTable=1
Lambda table from 100 eV to 100 keV, 7 bins/decade, spline: 0
LambdaPrime table from 100 keV to 100 TeV in 63 bins
===== EM models for the G4Region DefaultRegionForTheWorld ======
LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator
msc: for e- SubType= 10
===== EM models for the G4Region DefaultRegionForTheWorld ======
UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
eIoni: for e- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV
eBrem: for e- XStype:4 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
===== EM models for the G4Region DefaultRegionForTheWorld ======
eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai
eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai
CoulombScat: for e- XStype:1 SubType=1 BuildTable=1
Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
msc: for e+ SubType= 10
===== EM models for the G4Region DefaultRegionForTheWorld ======
UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
eIoni: for e+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV
eBrem: for e+ XStype:4 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
===== EM models for the G4Region DefaultRegionForTheWorld ======
eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai
eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai
annihil: for e+ XStype:2 SubType=5 BuildTable=0
===== EM models for the G4Region DefaultRegionForTheWorld ======
eplus2gg : Emin= 0 eV Emax= 100 TeV
CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1
Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
msc: for proton SubType= 10
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for proton XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
hBrems: for proton XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
hPairProd: for proton XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
CoulombScat: for proton XStype:1 SubType=1 BuildTable=1
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
msc: for GenericIon SubType= 10
===== EM models for the G4Region DefaultRegionForTheWorld ======
UrbanMsc : Emin= 0 eV Emax= 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
ionIoni: for GenericIon XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
Stopping Power data for 17 ion/material pairs
===== EM models for the G4Region DefaultRegionForTheWorld ======
BraggIon : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
msc: for alpha SubType= 10
===== EM models for the G4Region DefaultRegionForTheWorld ======
UrbanMsc : Emin= 0 eV Emax= 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
ionIoni: for alpha XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
BraggIon : Emin= 0 eV Emax=7.9452 MeV
BetheBloch : Emin=7.9452 MeV Emax= 100 TeV
msc: for anti_proton SubType= 10
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for anti_proton XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
hBrems: for anti_proton XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
hPairProd: for anti_proton XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
msc: for kaon+ SubType= 10
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for kaon+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax=1.05231 MeV
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
hBrems: for kaon+ XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
hPairProd: for kaon+ XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
msc: for kaon- SubType= 10
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for kaon- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax=1.05231 MeV
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
hBrems: for kaon- XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
hPairProd: for kaon- XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1
Used Lambda table of kaon+
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
msc: for mu+ SubType= 10
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
muIoni: for mu+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 200 keV
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
muBrems: for mu+ XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
muPairProd: for mu+ XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
Sampling table 21x1001 from 0.85 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
msc: for mu- SubType= 10
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
muIoni: for mu- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 200 keV
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
muBrems: for mu- XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
muPairProd: for mu- XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
Sampling table 21x1001 from 0.85 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1
Used Lambda table of mu+
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
msc: for pi+ SubType= 10
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for pi+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax=297.505 keV
BetheBloch : Emin=297.505 keV Emax= 100 TeV
hBrems: for pi+ XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
hPairProd: for pi+ XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
msc: for pi- SubType= 10
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for pi- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax=297.505 keV
BetheBloch : Emin=297.505 keV Emax= 100 TeV
hBrems: for pi- XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
hPairProd: for pi- XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Used Lambda table of pi+
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
====================================================================
HADRONIC PROCESSES SUMMARY (verbose level 1)
---------------------------------------------------
Hadronic Processes for neutron
Process: hadElastic
Model: hElasticCHIPS: 0 eV ---> 100 TeV
Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV
Process: neutronInelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
Process: nCapture
Model: nRadCapture: 0 eV ---> 100 TeV
Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV
Process: nKiller
---------------------------------------------------
Hadronic Processes for B-
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: B-Inelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for D-
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: D-Inelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for GenericIon
Process: ionInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for He3
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: He3Inelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for alpha
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: alphaInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for anti_He3
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_He3Inelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
Hadronic Processes for anti_alpha
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_alphaInelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
Hadronic Processes for anti_deuteron
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_deuteronInelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
Hadronic Processes for anti_lambda
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: anti_lambdaInelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
Hadronic Processes for anti_neutron
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
Model: AntiAElastic: 100 MeV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_neutronInelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
Hadronic Processes for anti_proton
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
Model: AntiAElastic: 100 MeV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_protonInelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
Hadronic Processes for anti_triton
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_tritonInelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
Hadronic Processes for deuteron
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: dInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for e+
Process: positronNuclear
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for e-
Process: electronNuclear
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for gamma
Process: photonNuclear
Model: GammaNPreco: 0 eV ---> 200 MeV
Model: BertiniCascade: 199 MeV ---> 6 GeV
Model: TheoFSGenerator: 3 GeV ---> 100 TeV
Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for kaon+
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: kaon+Inelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for kaon-
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: kaon-Inelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: hBertiniCaptureAtRest
---------------------------------------------------
Hadronic Processes for lambda
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: lambdaInelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for mu+
Process: muonNuclear
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for mu-
Process: muonNuclear
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
Process: muMinusCaptureAtRest
---------------------------------------------------
Hadronic Processes for pi+
Process: hadElastic
Model: hElasticGlauber: 0 eV ---> 100 TeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: pi+Inelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for pi-
Process: hadElastic
Model: hElasticGlauber: 0 eV ---> 100 TeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: pi-Inelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: hBertiniCaptureAtRest
---------------------------------------------------
Hadronic Processes for proton
Process: hadElastic
Model: hElasticCHIPS: 0 eV ---> 100 TeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: protonInelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for sigma-
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: sigma-Inelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: hBertiniCaptureAtRest
---------------------------------------------------
Hadronic Processes for triton
Process: hadElastic
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: tInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
================================================================
=======================================================================
====== Pre-compound/De-excitation Physics Parameters ========
=======================================================================
Type of pre-compound inverse x-section 3
Pre-compound model active 1
Pre-compound excitation low energy 100 keV
Pre-compound excitation high energy 30 MeV
Type of de-excitation inverse x-section 3
Type of de-excitation factory Evaporation+GEM
Number of de-excitation channels 68
Min excitation energy 10 eV
Min energy per nucleon for multifragmentation 200 GeV
Limit excitation energy for Fermi BreakUp 20 MeV
Level density (1/MeV) 0.075
Use simple level density model 1
Use discrete excitation energy of the residual 1
Time limit for long lived isomeres 1 ns
Isomer production flag 1
Internal e- conversion flag 1
Store e- internal conversion data 0
Correlated gamma emission flag 0
Max 2J for sampling of angular correlations 10
=======================================================================
writing Event: 0
TimeTotal> 6.953 2.960
+14 -8
View File
@@ -1,16 +1,22 @@
-------------------------------------------------------------------
-------------------------------------------------------------------
# Example CaTS History
=========================================================
Geant4 - CaTS example
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top).
It must **not** be used as a substitute for writing good git commit messages!
Package History file
-------------------------------------------------------------------------------
26 March 2022 - tag CaTS-V10-07-02 - G. Cosmo
## 2022-03-26 Gabriele Cosmo (CaTS-V11-00-01)
- Fixed compilation warnings for unused arguments.
19 November 2021 - tag CaTS-V10-07-01 - I. Hrivnacova
## 2021-12-10 Ben Morgan (CaTS-V11-00-00)
- Change to new Markdown History format
---
# History entries prior to 11.0
19 Novemebr 2021 - tag CaTS-V10-07-01 - I. Hrivnacova
- Fixed PrimaryGeneratorAction destructor
22 October 2021 - tag CaTS-V10-07-00 - H. Wenzel
File diff suppressed because it is too large Load Diff
+15 -7
View File
@@ -1,11 +1,19 @@
-------------------------------------------------------------------------------
History File, 2010/11/18 G.A.P. Cirrone, Created
cirrone@lns.infn.it
-------------------------------------------------------------------------------
# Example ChargeExchangeMC History
====================================================
History file of the ChargeExchangeMC application
====================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
## 2022-05-20 Vladimir Ivanchenko (ChargeExchangeMC-V11-00-01)
- CexmcHadronicProcess - disable integral method not applicable to this test
## 2021-12-10 Ben Morgan (ChargeExchangeMC-V11-00-00)
- Change to new Markdown History format
---
# History entries prior to 11.0
25.10.2021 - B. Morgan (ChargeExchangeMC-V10-07-01)
Use G4StrUtil functions replacing deprecated G4String member functions
@@ -60,6 +60,7 @@ CexmcHadronicProcess::CexmcHadronicProcess( const G4String & name ) :
theTotalResult( NULL ), isInitialized( false )
{
theTotalResult = new G4ParticleChange();
SetIntegral(false);
}
+10 -12
View File
@@ -1,18 +1,16 @@
-------------------------------------------------------------------
# Example HGCal_testbeam History
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
Example HGCal_testbeam History file
---------------------------
This file should be used by the G4 example coordinator to briefly
summarize all major modifications introduced in the code and keep
track of all tags.
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
## 2021-12-10 Ben Morgan (exhgcaltb-V11-00-00)
- Change to new Markdown History format
---
# History entries prior to 11.0
14-November-2021 G. Cosmo (exhgcaltb-V10-07-05)
- Fixed compilation warning for unused private member in PrimaryGeneratorAction.
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
Geant4 version Name: geant4-11-00-patch-02 (25-May-2022)
Geant4 version Name: geant4-11-01-beta-01 (30-June-2022)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -1635,7 +1635,8 @@ Checking overlaps for volume Fe_absorber_AHCAL:42 (G4Box) ... OK!
LPM effect enabled 1
Enable creation and use of sampling tables 0
Apply cuts on all EM processes 0
Use general process 0
Use combined TransportationWithMsc Disabled
Use general process 1
Enable linear polarisation for gamma 0
Enable sampling of quantum entanglement 0
X-section factor for integral approach 0.8
@@ -1652,7 +1653,7 @@ Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
Livermore data directory livermore
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
=======================================================================
@@ -1662,8 +1663,9 @@ Step function for light ions (0.2, 0.1 mm)
Step function for general ions (0.2, 0.1 mm)
Lowest e+e- kinetic energy 1 keV
Lowest muon/hadron kinetic energy 1 keV
Fluctuations of dE/dx are enabled 1
Use ICRU90 data 0
Fluctuations of dE/dx are enabled 1
Type of fluctuation model 2
Use built-in Birks satuaration 0
Build CSDA range enabled 0
Use cut as a final range enabled 0
@@ -1726,10 +1728,10 @@ msc: for e- SubType= 10
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
eIoni: for e- XStype:1 SubType=2
eIoni: for e- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV
@@ -1754,10 +1756,10 @@ msc: for e+ SubType= 10
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
eIoni: for e+ XStype:1 SubType=2
eIoni: for e+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV
@@ -1784,10 +1786,10 @@ msc: for proton SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for proton XStype:1 SubType=2
hIoni: for proton XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
@@ -1816,10 +1818,10 @@ msc: for GenericIon SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
ionIoni: for GenericIon XStype:1 SubType=2
ionIoni: for GenericIon XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.02
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
Stopping Power data for 17 ion/material pairs
===== EM models for the G4Region DefaultRegionForTheWorld ======
BraggIon : Emin= 0 eV Emax= 2 MeV
@@ -1830,10 +1832,10 @@ msc: for alpha SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
ionIoni: for alpha XStype:1 SubType=2
ionIoni: for alpha XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.02
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
BraggIon : Emin= 0 eV Emax=7.9452 MeV
BetheBloch : Emin=7.9452 MeV Emax= 100 TeV
@@ -1843,10 +1845,10 @@ msc: for anti_proton SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for anti_proton XStype:1 SubType=2
hIoni: for anti_proton XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
@@ -1875,10 +1877,10 @@ msc: for kaon+ SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for kaon+ XStype:1 SubType=2
hIoni: for kaon+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax=1.05231 MeV
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
@@ -1907,10 +1909,10 @@ msc: for kaon- SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for kaon- XStype:1 SubType=2
hIoni: for kaon- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax=1.05231 MeV
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
@@ -1939,14 +1941,13 @@ msc: for mu+ SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
muIoni: for mu+ XStype:1 SubType=2
muIoni: for mu+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 200 keV
BetheBloch : Emin= 200 keV Emax= 1 GeV
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
muBrems: for mu+ XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
@@ -1957,7 +1958,7 @@ muBrems: for mu+ XStype:1 SubType=3
muPairProd: for mu+ XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
Sampling table 21x1001 from 1 GeV to 100 TeV
Sampling table 21x1001 from 0.85 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
@@ -1972,14 +1973,13 @@ msc: for mu- SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
muIoni: for mu- XStype:1 SubType=2
muIoni: for mu- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 200 keV
BetheBloch : Emin= 200 keV Emax= 1 GeV
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
muBrems: for mu- XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
@@ -1990,7 +1990,7 @@ muBrems: for mu- XStype:1 SubType=3
muPairProd: for mu- XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
Sampling table 21x1001 from 1 GeV to 100 TeV
Sampling table 21x1001 from 0.85 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
@@ -2005,10 +2005,10 @@ msc: for pi+ SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for pi+ XStype:1 SubType=2
hIoni: for pi+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax=297.505 keV
BetheBloch : Emin=297.505 keV Emax= 100 TeV
@@ -2037,10 +2037,10 @@ msc: for pi- SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for pi- XStype:1 SubType=2
hIoni: for pi- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax=297.505 keV
BetheBloch : Emin=297.505 keV Emax= 100 TeV
@@ -2074,15 +2074,18 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticCHIPS: 0 eV ---> 100 TeV
Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV
Process: neutronInelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
Process: nCapture
Model: nRadCapture: 0 eV ---> 100 TeV
Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV
Process: nKiller
---------------------------------------------------
@@ -2092,10 +2095,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: B-Inelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for D-
@@ -2103,10 +2108,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: D-Inelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for GenericIon
@@ -2115,6 +2122,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for He3
@@ -2122,11 +2130,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: He3Inelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for alpha
@@ -2134,11 +2144,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: alphaInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for anti_He3
@@ -2147,10 +2159,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_He3Inelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -2161,10 +2175,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_alphaInelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -2175,10 +2191,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_deuteronInelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -2188,10 +2206,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: anti_lambdaInelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -2202,10 +2222,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_neutronInelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -2216,10 +2238,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_protonInelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -2230,10 +2254,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_tritonInelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -2243,11 +2269,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: dInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for e+
@@ -2255,6 +2283,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for e-
@@ -2262,6 +2291,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for gamma
@@ -2271,6 +2301,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: TheoFSGenerator: 3 GeV ---> 100 TeV
Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for kaon+
@@ -2278,11 +2309,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: kaon+Inelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for kaon-
@@ -2290,11 +2323,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: kaon-Inelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: hBertiniCaptureAtRest
---------------------------------------------------
@@ -2304,11 +2339,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: lambdaInelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for mu+
@@ -2316,6 +2353,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for mu-
@@ -2323,6 +2361,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
Process: muMinusCaptureAtRest
---------------------------------------------------
@@ -2332,11 +2371,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticGlauber: 0 eV ---> 100 TeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: pi+Inelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for pi-
@@ -2344,11 +2385,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticGlauber: 0 eV ---> 100 TeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: pi-Inelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: hBertiniCaptureAtRest
---------------------------------------------------
@@ -2358,11 +2401,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticCHIPS: 0 eV ---> 100 TeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: protonInelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for sigma-
@@ -2370,11 +2415,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: sigma-Inelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: hBertiniCaptureAtRest
---------------------------------------------------
@@ -2384,29 +2431,31 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: tInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
================================================================
=======================================================================
====== Pre-compound/De-excitation Physics Parameters ========
=======================================================================
Type of pre-compound inverse x-section 3
Pre-compound model active 1
Pre-compound excitation low energy (MeV) 0.1
Pre-compound excitation high energy (MeV) 30
Pre-compound excitation low energy 100 keV
Pre-compound excitation high energy 30 MeV
Type of de-excitation inverse x-section 3
Type of de-excitation factory Evaporation+GEM
Number of de-excitation channels 68
Min excitation energy (keV) 0.01
Min energy per nucleon for multifragmentation (MeV) 2e+05
Limit excitation energy for Fermi BreakUp (MeV) 20
Min excitation energy 10 eV
Min energy per nucleon for multifragmentation 200 GeV
Limit excitation energy for Fermi BreakUp 20 MeV
Level density (1/MeV) 0.075
Use simple level density model 1
Use discrete excitation energy of the residual 0
Time limit for long lived isomeres (ns) 1
Use discrete excitation energy of the residual 1
Time limit for long lived isomeres 1 ns
Isomer production flag 1
Internal e- conversion flag 1
Store e- internal conversion data 0
@@ -1,12 +1,20 @@
-------------------------------------------------------------------
-------------------------------------------------------------------
# Example ICRP110_HumanPhantoms History
=========================================================
Geant4 - ICRP110Phantoms example
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
## 2022-06-02 Susanna Guatelli (ICRP110Phantoms-V11-00-01)
- Error reading the first voxels (in x=0, y=0) corrected
- Migration to features of C++11/14/17
## 2021-12-10 Ben Morgan (ICRP110Phantoms-V11-00-00)
- Change to new Markdown History format
---
# History entries prior to 11.0
Category History file
---------------------
07.10.2021 - I. Hrivnacova; ICRP110Phantoms-V10-07-07
Removed unused ICRP110PhantomAnalysisManager.hh.
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
Geant4 version Name: geant4-11-00-patch-02 (25-May-2022)
Geant4 version Name: geant4-11-01-beta-01 (30-June-2022)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -41,6 +41,10 @@ Registered graphics systems are:
OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK)
OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK)
RayTracerX (RayTracerX)
Qt3D (Qt3D)
TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK)
TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK)
TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG)
Registering model factories...
@@ -120,12 +124,12 @@ Number of X,Y,Z voxels = 254, 127, 30
placing voxel container volume at (0,0,0)
Phantom Material Colours set via ColourMap.dat data file
--- G4CoupledTransportation is used
/cvmfs/geant4.cern.ch/share/data/G4NDL4.6
@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Inelastic
@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.6
NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Capture/CrossSection/6_nat_Carbon
NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Elastic/CrossSection/6_nat_Carbon
NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Inelastic/CrossSection/6_nat_Carbon
/cvmfs/geant4.cern.ch/share/data/G4NDL4.7
@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic
@@@ G4ParticleHPInelasticData instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.7
NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Capture/CrossSection/6_nat_Carbon
NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Elastic/CrossSection/6_nat_Carbon
NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic/CrossSection/6_nat_Carbon
/tracking/verbose 0
/run/verbose 0
/event/verbose 0
@@ -159,7 +163,8 @@ G4ScoringBox : PhantomMesh --- Shape: Box mesh
LPM effect enabled 1
Enable creation and use of sampling tables 0
Apply cuts on all EM processes 0
Use general process 0
Use combined TransportationWithMsc Disabled
Use general process 1
Enable linear polarisation for gamma 0
Enable sampling of quantum entanglement 0
X-section factor for integral approach 0.8
@@ -176,7 +181,7 @@ Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
Livermore data directory livermore
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
=======================================================================
@@ -186,8 +191,9 @@ Step function for light ions (0.1, 0.02 mm)
Step function for general ions (0.1, 0.001 mm)
Lowest e+e- kinetic energy 100 eV
Lowest muon/hadron kinetic energy 1 keV
Fluctuations of dE/dx are enabled 1
Use ICRU90 data 1
Fluctuations of dE/dx are enabled 1
Type of fluctuation model 2
Use built-in Birks satuaration 0
Build CSDA range enabled 0
Use cut as a final range enabled 0
@@ -267,12 +273,12 @@ msc: for e- SubType= 10
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
eIoni: for e- XStype:1 SubType=2
eIoni: for e- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
LowEnergyIoni : Emin= 0 eV Emax= 100 keV deltaVI
PenIoni : Emin= 0 eV Emax= 100 keV
MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI
eBrem: for e- XStype:4 SubType=3
@@ -303,10 +309,10 @@ msc: for e+ SubType= 10
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
eIoni: for e+ XStype:1 SubType=2
eIoni: for e+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
PenIoni : Emin= 0 eV Emax= 100 keV
MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI
@@ -341,10 +347,10 @@ msc: for proton SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
hIoni: for proton XStype:1 SubType=2
hIoni: for proton XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 2 MeV deltaVI
BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
@@ -377,12 +383,12 @@ msc: for GenericIon SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
ionIoni: for GenericIon XStype:1 SubType=2
ionIoni: for GenericIon XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.02
StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
ParamICRU73 : Emin= 0 eV Emax= 100 TeV deltaVI
LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI
nuclearStopping: for GenericIon SubType=8 BuildTable=0
===== EM models for the G4Region DefaultRegionForTheWorld ======
@@ -390,7 +396,8 @@ nuclearStopping: for GenericIon SubType=8 BuildTable=0
======================================================================
====== Radioactive Decay Physics Parameters =======
======================================================================
Max life time 1.4427e+06 ps
min MeanLife (from G4NuclideTable) 1.4427 us
Max life time (from G4DeexPrecoParameters) 1.4427 us
Internal e- conversion flag 1
Stored internal conversion coefficients 1
Enable correlated gamma emission 0
@@ -400,7 +407,7 @@ Auger electron emission enabled 1
Check EM cuts disabled for atomic de-excitation 1
Use Bearden atomic level energies 0
Use ANSTO fluorescence model 0
Threshold for very long decay time at rest 1e+27 ns
Threshold for very long decay time at rest 3.171e+10 y
======================================================================
msc: for alpha SubType= 10
@@ -408,10 +415,10 @@ msc: for alpha SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
ionIoni: for alpha XStype:1 SubType=2
ionIoni: for alpha XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.02
StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
BraggIon : Emin= 0 eV Emax=7.9452 MeV deltaVI
BetheBloch : Emin=7.9452 MeV Emax= 100 TeV deltaVI
@@ -425,10 +432,10 @@ msc: for anti_proton SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
hIoni: for anti_proton XStype:1 SubType=2
hIoni: for anti_proton XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI
BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
@@ -457,10 +464,10 @@ msc: for kaon+ SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
hIoni: for kaon+ XStype:1 SubType=2
hIoni: for kaon+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
@@ -489,10 +496,10 @@ msc: for kaon- SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
hIoni: for kaon- XStype:1 SubType=2
hIoni: for kaon- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
@@ -521,14 +528,13 @@ msc: for mu+ SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
muIoni: for mu+ XStype:1 SubType=2
muIoni: for mu+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 200 keV deltaVI
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
muBrems: for mu+ XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
@@ -539,7 +545,7 @@ muBrems: for mu+ XStype:1 SubType=3
muPairProd: for mu+ XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
Sampling table 21x1001 from 1 GeV to 100 TeV
Sampling table 21x1001 from 0.85 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
@@ -554,14 +560,13 @@ msc: for mu- SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
muIoni: for mu- XStype:1 SubType=2
muIoni: for mu- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
muBrems: for mu- XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
@@ -572,7 +577,7 @@ muBrems: for mu- XStype:1 SubType=3
muPairProd: for mu- XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
Sampling table 21x1001 from 1 GeV to 100 TeV
Sampling table 21x1001 from 0.85 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
@@ -581,10 +586,10 @@ CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Capture/CrossSection/6_nat_Carbon
NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Elastic/CrossSection/6_nat_Carbon
NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Inelastic/CrossSection/6_nat_Carbon
NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Elastic/CrossSection/6_nat_Carbon
NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Capture/CrossSection/6_nat_Carbon
NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Elastic/CrossSection/6_nat_Carbon
NeutronHP: /Inelastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic/CrossSection/6_nat_Carbon
NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Elastic/CrossSection/6_nat_Carbon
=======================================================
====== ParticleHP Physics Parameters ========
@@ -598,18 +603,18 @@ NeutronHP: /Elastic file for Z = 6, A = 12 is not found and NeutronHP will use /
UseNRESP71Model ? 0
=======================================================
@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Inelastic
NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.6/Capture/CrossSection/6_nat_Carbon
@@@ G4ParticleHPInelastic instantiated for particle neutron data directory variable is G4NEUTRONHPDATA pointing to /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Inelastic
NeutronHP: /Capture file for Z = 6, A = 12 is not found and NeutronHP will use /cvmfs/geant4.cern.ch/share/data/G4NDL4.7/Capture/CrossSection/6_nat_Carbon
msc: for pi+ SubType= 10
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
hIoni: for pi+ XStype:1 SubType=2
hIoni: for pi+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax=297.505 keV deltaVI
BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
@@ -638,10 +643,10 @@ msc: for pi- SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
hIoni: for pi- XStype:1 SubType=2
hIoni: for pi- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI
BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
@@ -675,11 +680,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: NNDiffuseElastic: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: ionInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: RadioactiveDecay
---------------------------------------------------
@@ -689,11 +696,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: He3Inelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for alpha
@@ -701,11 +710,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: alphaInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for anti_He3
@@ -714,10 +725,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_He3Inelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -728,10 +741,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_alphaInelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -742,10 +757,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_deuteronInelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -755,11 +772,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: anti_lambdaInelastic
Model: QGSP: 12 GeV ---> 100 TeV
Model: FTFP: 0 eV ---> 25 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -770,10 +789,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_neutronInelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -784,10 +805,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_protonInelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -798,10 +821,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_tritonInelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -811,11 +836,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: dInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for e+
@@ -823,6 +850,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for e-
@@ -830,6 +858,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for gamma
@@ -839,6 +868,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: TheoFSGenerator: 3 GeV ---> 100 TeV
Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for kaon+
@@ -846,12 +876,14 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: kaon+Inelastic
Model: QGSP: 12 GeV ---> 100 TeV
Model: FTFP: 3 GeV ---> 25 GeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for kaon-
@@ -859,12 +891,14 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: kaon-Inelastic
Model: QGSP: 12 GeV ---> 100 TeV
Model: FTFP: 3 GeV ---> 25 GeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: hBertiniCaptureAtRest
---------------------------------------------------
@@ -874,12 +908,14 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: lambdaInelastic
Model: QGSP: 12 GeV ---> 100 TeV
Model: FTFP: 3 GeV ---> 25 GeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for mu+
@@ -887,6 +923,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for mu-
@@ -894,6 +931,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
Process: muMinusCaptureAtRest
---------------------------------------------------
@@ -903,28 +941,36 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticCHIPS: 19.5 MeV ---> 100 TeV
Model: NeutronHPElastic: 0 eV ---> 20 MeV
Cr_sctns: NeutronHPElasticXS: 0 eV ---> 20 MeV
Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV
Process: neutronInelastic
Model: QGSP: 12 GeV ---> 100 TeV
Model: FTFP: 3 GeV ---> 25 GeV
Model: Binary Cascade: 19.9 MeV ---> 6 GeV
Model: NeutronHPInelastic: 0 eV ---> 20 MeV
Cr_sctns: NeutronHPInelasticXS: 0 eV ---> 20 MeV
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
Process: nCapture
Model: NeutronHPCapture: 0 eV ---> 20 MeV
Model: nRadCapture: 19.9 MeV ---> 100 TeV
Cr_sctns: NeutronHPCaptureXS: 0 eV ---> 20 MeV
Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV
Process: nFission
Model: NeutronHPFission: 0 eV ---> 20 MeV
Model: G4LFission: 19.9 MeV ---> 100 TeV
Cr_sctns: NeutronHPFissionXS: 0 eV ---> 20 MeV
Cr_sctns: ZeroXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for pi+
@@ -932,12 +978,14 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticGlauber: 0 eV ---> 100 TeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: pi+Inelastic
Model: QGSP: 12 GeV ---> 100 TeV
Model: FTFP: 3 GeV ---> 25 GeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for pi-
@@ -945,12 +993,14 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticGlauber: 0 eV ---> 100 TeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: pi-Inelastic
Model: QGSP: 12 GeV ---> 100 TeV
Model: FTFP: 3 GeV ---> 25 GeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: hBertiniCaptureAtRest
---------------------------------------------------
@@ -960,12 +1010,14 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticCHIPS: 0 eV ---> 100 TeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: protonInelastic
Model: QGSP: 12 GeV ---> 100 TeV
Model: FTFP: 3 GeV ---> 25 GeV
Model: Binary Cascade: 0 eV ---> 6 GeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for sigma-
@@ -973,12 +1025,14 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: sigma-Inelastic
Model: QGSP: 12 GeV ---> 100 TeV
Model: FTFP: 3 GeV ---> 25 GeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: hBertiniCaptureAtRest
---------------------------------------------------
@@ -988,29 +1042,31 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: tInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
================================================================
=======================================================================
====== Pre-compound/De-excitation Physics Parameters ========
=======================================================================
Type of pre-compound inverse x-section 3
Pre-compound model active 1
Pre-compound excitation low energy (MeV) 0.1
Pre-compound excitation high energy (MeV) 30
Pre-compound excitation low energy 100 keV
Pre-compound excitation high energy 30 MeV
Type of de-excitation inverse x-section 3
Type of de-excitation factory Evaporation+GEM
Number of de-excitation channels 68
Min excitation energy (keV) 0.01
Min energy per nucleon for multifragmentation (MeV) 2e+05
Limit excitation energy for Fermi BreakUp (MeV) 20
Min excitation energy 10 eV
Min energy per nucleon for multifragmentation 200 GeV
Limit excitation energy for Fermi BreakUp 20 MeV
Level density (1/MeV) 0.075
Use simple level density model 1
Use discrete excitation energy of the residual 0
Time limit for long lived isomeres (ns) 1442.7
Use discrete excitation energy of the residual 1
Time limit for long lived isomeres 1.4427 us
Isomer production flag 1
Internal e- conversion flag 1
Store e- internal conversion data 1
@@ -1019,9 +1075,6 @@ Max 2J for sampling of angular correlations 10
=======================================================================
G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model.
See commands in /vis/modeling/trajectories/ for other options.
0 events have been kept for refreshing and/or reviewing.
"/vis/reviewKeptEvents" to review them one by one.
"/vis/enable", then "/vis/viewer/flush" or "/vis/viewer/rebuild" to see them accumulated.
/score/dumpQuantityToFile PhantomMesh energyDeposit PhantomMesh_Edep.txt
ICRP110UserScorer-defined DumpQuantityToFile() method is invoked.
Phantom Sex: male
@@ -1066,7 +1119,7 @@ Reading AM_organs.dat
Reading OrganMasses.dat
NOrganIDs: 142
Writing output to ICRP110.out
Total energy deposited over all Organs within the Phantom is 1.47555e-09 J
Total absorbed dose over all phantom organs is 3.78273e-09 Gy
Total energy deposited over all Organs within the Phantom is 1.42028e-09 J
Total absorbed dose over all phantom organs is 3.57929e-09 Gy
Graphics systems deleted.
Visualization Manager deleting...
@@ -56,7 +56,7 @@ int main(int argc,char** argv)
//====================================================================
// Set mandatory initialization classes
ICRP110PhantomConstruction* userPhantom = new ICRP110PhantomConstruction();
auto userPhantom = new ICRP110PhantomConstruction();
runManager -> SetUserInitialization(userPhantom);
runManager -> SetUserInitialization(new QGSP_BIC_HP());
@@ -68,7 +68,7 @@ int main(int argc,char** argv)
("phantom",new ICRP110PhantomVisAction(userPhantom));
visManager -> Initialize();
ICRP110PhantomActionInitialization* actions = new ICRP110PhantomActionInitialization();
auto actions = new ICRP110PhantomActionInitialization();
runManager -> SetUserInitialization(actions);
G4UImanager* UImanager = G4UImanager::GetUIpointer();
@@ -76,7 +76,7 @@ int main(int argc,char** argv)
if (argc==1) // Define UI session for interactive mode.
{
G4cout << " UI session starts ..." << G4endl;
G4UIExecutive* ui = new G4UIExecutive(argc, argv);
auto ui = new G4UIExecutive(argc, argv);
UImanager -> ApplyCommand("/control/execute vis.mac");
ui -> SessionStart();
delete ui;
@@ -2,40 +2,38 @@
--------------------------------
OrganID Edep (J) Dose (Gy)
--------------------------------
4 | 1.02882e-12 3.62132e-11
26 | 2.6452e-10 4.69965e-10
27 | 2.92057e-10 6.4749e-10
39 | 8.92997e-13 1.17314e-11
40 | 5.15135e-14 6.97071e-13
48 | 2.0245e-12 2.75255e-11
61 | 5.99142e-10 4.13201e-10
106 | 9.34204e-11 7.67118e-11
116 | 1.62453e-10 1.54937e-10
120 | 1.59033e-11 3.74282e-10
121 | 2.3745e-11 5.58838e-10
122 | 1.74463e-11 5.98828e-11
134 | 2.86328e-12 9.51257e-10
26 | 3.45941e-10 6.14624e-10
27 | 2.7459e-10 6.08767e-10
39 | 2.68101e-14 3.52208e-13
47 | 1.88424e-12 1.83078e-11
48 | 1.47002e-12 1.99867e-11
61 | 5.10152e-10 3.51829e-10
106 | 5.5413e-11 4.55022e-11
114 | 3.31986e-13 5.5331e-10
116 | 1.46924e-10 1.40127e-10
120 | 1.65667e-11 3.89897e-10
121 | 3.01801e-11 7.10288e-10
122 | 3.67953e-11 1.26297e-10
----------------------------------------------------------------------------
-------------------------------ORGAN INFO-----------------------------------
-----------------(of organs where edep/dose was recorded)-------------------
----------------------------------------------------------------------------
ID Organ Name Material ID Density (g/cm^3)
4 Posterior nasal passage down to larynx (ET2) 45 1.030
26 Cranium, cortical 2 1.920
27 Cranium, spongiosa 8 1.157
39 Mandible, cortical 2 1.920
40 Mandible, spongiosa 13 1.228
47 Cervical spine, cortical 2 1.920
48 Cervical spine, spongiosa 17 1.050
61 Brain 32 1.050
106 Muscle, head 29 1.050
114 Pituitary gland 45 1.030
116 Residual tissue, head 49 0.950
120 Salivary glands, left 45 1.030
121 Salivary glands, right 45 1.030
122 Skin, head 27 1.090
134 Tonsils 45 1.030
Total Edep over all organs = 1.47555e-09 J
Total dose absorbed over all organs = 3.78273e-09 Gy
Total Edep over all organs = 1.42028e-09 J
Total dose absorbed over all organs = 3.57929e-09 Gy
----------------------------------------------------------------------------
----------------ORGAN ENERGY DEPOSITIONS AND ABSORBED DOSE------------------
@@ -44,11 +42,11 @@ Total dose absorbed over all organs = 3.78273e-09 Gy
----------------------------------------------------------------------------
OrganID Edep (J) Dose (Gy)
-------------------------------
0 | 5.41601e-11 0
0 | 4.63708e-11 0
1 | 0 0
2 | 0 0
3 | 0 0
4 | 1.02882e-12 3.62132e-11
4 | 0 0
5 | 0 0
6 | 0 0
7 | 0 0
@@ -70,8 +68,8 @@ OrganID Edep (J) Dose (Gy)
23 | 0 0
24 | 0 0
25 | 0 0
26 | 2.6452e-10 4.69965e-10
27 | 2.92057e-10 6.4749e-10
26 | 3.45941e-10 6.14624e-10
27 | 2.7459e-10 6.08767e-10
28 | 0 0
29 | 0 0
30 | 0 0
@@ -83,16 +81,16 @@ OrganID Edep (J) Dose (Gy)
36 | 0 0
37 | 0 0
38 | 0 0
39 | 8.92997e-13 1.17314e-11
40 | 5.15135e-14 6.97071e-13
39 | 2.68101e-14 3.52208e-13
40 | 0 0
41 | 0 0
42 | 0 0
43 | 0 0
44 | 0 0
45 | 0 0
46 | 0 0
47 | 0 0
48 | 2.0245e-12 2.75255e-11
47 | 1.88424e-12 1.83078e-11
48 | 1.47002e-12 1.99867e-11
49 | 0 0
50 | 0 0
51 | 0 0
@@ -105,7 +103,7 @@ OrganID Edep (J) Dose (Gy)
58 | 0 0
59 | 0 0
60 | 0 0
61 | 5.99142e-10 4.13201e-10
61 | 5.10152e-10 3.51829e-10
62 | 0 0
63 | 0 0
64 | 0 0
@@ -150,7 +148,7 @@ OrganID Edep (J) Dose (Gy)
103 | 0 0
104 | 0 0
105 | 0 0
106 | 9.34204e-11 7.67118e-11
106 | 5.5413e-11 4.55022e-11
107 | 0 0
108 | 0 0
109 | 0 0
@@ -158,15 +156,15 @@ OrganID Edep (J) Dose (Gy)
111 | 0 0
112 | 0 0
113 | 0 0
114 | 0 0
114 | 3.31986e-13 5.5331e-10
115 | 0 0
116 | 1.62453e-10 1.54937e-10
116 | 1.46924e-10 1.40127e-10
117 | 0 0
118 | 0 0
119 | 0 0
120 | 1.59033e-11 3.74282e-10
121 | 2.3745e-11 5.58838e-10
122 | 1.74463e-11 5.98828e-11
120 | 1.65667e-11 3.89897e-10
121 | 3.01801e-11 7.10288e-10
122 | 3.67953e-11 1.26297e-10
123 | 0 0
124 | 0 0
125 | 0 0
@@ -178,13 +176,13 @@ OrganID Edep (J) Dose (Gy)
131 | 0 0
132 | 0 0
133 | 0 0
134 | 2.86328e-12 9.51257e-10
134 | 0 0
135 | 0 0
136 | 0 0
137 | 0 0
138 | 0 0
139 | 0 0
140 | 2.06191e-11 1.03095e-07
140 | 2.95648e-14 1.47824e-10
141 | 0 0
Total energy depositied over all organs = 1.47555e-09 J
Total absorbed dose over all organs = 3.78273e-09 Gy
Total energy depositied over all organs = 1.42028e-09 J
Total absorbed dose over all organs = 3.57929e-09 Gy
@@ -42,7 +42,7 @@ class ICRP110PhantomPrimaryGeneratorAction : public G4VUserPrimaryGeneratorActio
~ICRP110PhantomPrimaryGeneratorAction();
public:
void GeneratePrimaries(G4Event* anEvent) override;
void GeneratePrimaries(G4Event* anEvent);
private:
G4GeneralParticleSource* fParticleGun;
@@ -48,14 +48,19 @@ public:
(G4PhysicalVolumeModel* // input...the following are outputs
,std::multimap<const G4Material*,G4ThreeVector>& positionByMaterial
,std::map <const G4Material*,G4Colour>& colourByMaterial);
~ICRP110PhantomPseudoScene();
using G4PseudoScene::AddSolid; // except for...
void AddSolid(const G4Box&);
void ProcessVolume(const G4VSolid&);
const std::multimap<const G4Material*,G4ThreeVector>& GetPositionByMaterial()
{return fPositionByMaterial;}
const std::map <const G4Material*,G4Colour>& GetColourByMaterial()
{return fColourByMaterial;}
private:
G4PhysicalVolumeModel* fpPVModel;
std::multimap<const G4Material*,G4ThreeVector>& fPositionByMaterial;
@@ -26,10 +26,6 @@
// Code developed by:
// S.Guatelli, M. Large and A. Malaroda, University of Wollongong
//
#include "ICRP110PhantomConstruction.hh"
#include "ICRP110PhantomNestedParameterisation.hh"
#include "ICRP110PhantomMaterial_Female.hh"
@@ -55,7 +51,7 @@ ICRP110PhantomConstruction::ICRP110PhantomConstruction():
fVoxelHalfDimX(0), fVoxelHalfDimY(0), fVoxelHalfDimZ(0),
fMinX(0),fMaxX(0), fMinY(0), fMaxY(0),
fMinZ(0), fMaxZ(0), fNoFiles(0), fNVoxels(0),
fMateIDs(0)
fMateIDs(nullptr)
{
fMessenger = new ICRP110PhantomMessenger(this);
// the messenger allows to set the sex of the phantom
@@ -81,12 +77,12 @@ G4VPhysicalVolume* ICRP110PhantomConstruction::Construct()
G4double d; // density
A = 14.01*g/mole;
G4Element* elN = new G4Element("Nitrogen","N",Z = 7.,A);
auto elN = new G4Element("Nitrogen","N",Z = 7.,A);
A = 16.00*g/mole;
G4Element* elO = new G4Element("Oxygen","O",Z = 8.,A);
auto elO = new G4Element("Oxygen","O",Z = 8.,A);
d = 0.001 *g/cm3;
G4Material* matAir = new G4Material("Air",d,2);
auto matAir = new G4Material("Air",d,2);
matAir -> AddElement(elN,0.8);
matAir -> AddElement(elO,0.2);
@@ -215,14 +211,14 @@ G4VPhysicalVolume* ICRP110PhantomConstruction::Construct()
G4double worldSize = 2.*m ;
G4Box* world = new G4Box("world", worldSize, worldSize, worldSize);
G4LogicalVolume* logicWorld = new G4LogicalVolume(world,
auto logicWorld = new G4LogicalVolume(world,
matAir,
"logicalWorld", 0, 0,0);
"logicalWorld", nullptr, nullptr,nullptr);
fMotherVolume = new G4PVPlacement(0,G4ThreeVector(),
fMotherVolume = new G4PVPlacement(nullptr,G4ThreeVector(),
"physicalWorld",
logicWorld,
0,
nullptr,
false,
0);
@@ -241,10 +237,10 @@ G4VPhysicalVolume* ICRP110PhantomConstruction::Construct()
fNVoxelY*fVoxelHalfDimY*mm,
fNVoxelZ*fVoxelHalfDimZ*mm);
G4LogicalVolume* fContainer_logic = new G4LogicalVolume( fContainer_solid,
auto fContainer_logic = new G4LogicalVolume( fContainer_solid,
matAir,
"phantomContainer",
0, 0, 0 );
nullptr, nullptr, nullptr);
fMaxX = fNVoxelX*fVoxelHalfDimX*mm; // Max X along X axis of the voxelised geometry
fMaxY = fNVoxelY*fVoxelHalfDimY*mm; // Max Y
@@ -260,7 +256,7 @@ G4VPhysicalVolume* ICRP110PhantomConstruction::Construct()
fPhantomContainer
= new G4PVPlacement(0, // rotation
= new G4PVPlacement(nullptr, // rotation
posCentreVoxels,
fContainer_logic, // The logic volume
"phantomContainer", // Name
@@ -278,7 +274,7 @@ G4VPhysicalVolume* ICRP110PhantomConstruction::Construct()
G4String yRepName("RepY");
G4VSolid* solYRep = new G4Box(yRepName,fNVoxelX*fVoxelHalfDimX,
fVoxelHalfDimY, fNVoxelZ*fVoxelHalfDimZ);
G4LogicalVolume* logYRep = new G4LogicalVolume(solYRep,matAir,yRepName);
auto logYRep = new G4LogicalVolume(solYRep,matAir,yRepName);
new G4PVReplica(yRepName,logYRep,fContainer_logic,kYAxis, fNVoxelY,fVoxelHalfDimY*2.);
logYRep -> SetVisAttributes(new G4VisAttributes(G4VisAttributes::GetInvisible()));
@@ -287,7 +283,7 @@ G4VPhysicalVolume* ICRP110PhantomConstruction::Construct()
G4String xRepName("RepX");
G4VSolid* solXRep = new G4Box(xRepName,fVoxelHalfDimX,fVoxelHalfDimY,
fNVoxelZ*fVoxelHalfDimZ);
G4LogicalVolume* logXRep = new G4LogicalVolume(solXRep,matAir,xRepName);
auto logXRep = new G4LogicalVolume(solXRep,matAir,xRepName);
new G4PVReplica(xRepName,logXRep,logYRep,kXAxis,fNVoxelX,fVoxelHalfDimX*2.);
logXRep -> SetVisAttributes(new G4VisAttributes(G4VisAttributes::GetInvisible()));
@@ -295,14 +291,14 @@ G4VPhysicalVolume* ICRP110PhantomConstruction::Construct()
//----- Voxel solid and logical volumes
//--- Slice along Z axis
G4VSolid* solidVoxel = new G4Box("phantom",fVoxelHalfDimX, fVoxelHalfDimY,fVoxelHalfDimZ);
G4LogicalVolume* logicVoxel = new G4LogicalVolume(solidVoxel,matAir,"phantom");
auto logicVoxel = new G4LogicalVolume(solidVoxel,matAir,"phantom");
logicVoxel -> SetVisAttributes(new G4VisAttributes(G4VisAttributes::GetInvisible()));
// Parameterisation to define the material of each voxel
G4ThreeVector halfVoxelSize(fVoxelHalfDimX,fVoxelHalfDimY,fVoxelHalfDimZ);
ICRP110PhantomNestedParameterisation* param = new ICRP110PhantomNestedParameterisation(halfVoxelSize, pMaterials);
auto param = new ICRP110PhantomNestedParameterisation(halfVoxelSize, pMaterials);
new G4PVParameterised("phantom", // their name
logicVoxel, // their logical volume
@@ -470,7 +466,7 @@ G4String slice;
// Dummy method to skip the first three lines of the files
// which are not used here
}
else{
G4int nnew = ix + (iy)*fNVoxelX + numberFile*fNVoxelX*fNVoxelY;
G4int OrgID;
fin >> OrgID;
@@ -767,7 +763,7 @@ G4String slice;
fMateIDs[nnew] = mateID_out;
}
}
}
}
@@ -68,43 +68,43 @@ void ICRP110PhantomMaterial_Female::DefineMaterials()
// General elements
A = 1.01*g/mole;
G4Element* elH = new G4Element ("Hydrogen","H",Z = 1.,A);
auto elH = new G4Element ("Hydrogen","H",Z = 1.,A);
A = 12.011*g/mole;
G4Element* elC = new G4Element("Carbon","C",Z = 6.,A);
auto elC = new G4Element("Carbon","C",Z = 6.,A);
A = 14.01*g/mole;
G4Element* elN = new G4Element("Nitrogen","N",Z = 7.,A);
auto elN = new G4Element("Nitrogen","N",Z = 7.,A);
A = 16.00*g/mole;
G4Element* elO = new G4Element("Oxygen","O",Z = 8.,A);
auto elO = new G4Element("Oxygen","O",Z = 8.,A);
A = 22.99*g/mole;
G4Element* elNa = new G4Element("Sodium","Na",Z = 11.,A);
auto elNa = new G4Element("Sodium","Na",Z = 11.,A);
A = 24.305*g/mole;
G4Element* elMg = new G4Element("Magnesium","Mg",Z = 12.,A);
auto elMg = new G4Element("Magnesium","Mg",Z = 12.,A);
A = 30.974*g/mole;
G4Element* elP = new G4Element("Phosphorus","P",Z = 15.,A);
auto elP = new G4Element("Phosphorus","P",Z = 15.,A);
A = 32.064*g/mole;
G4Element* elS = new G4Element("Sulfur","S",Z = 16.,A);
auto elS = new G4Element("Sulfur","S",Z = 16.,A);
A = 35.453*g/mole;
G4Element* elCl = new G4Element("Chlorine","Cl",Z = 17.,A);
auto elCl = new G4Element("Chlorine","Cl",Z = 17.,A);
A = 39.098*g/mole;
G4Element* elK = new G4Element("Potassium","K",Z = 19.,A);
auto elK = new G4Element("Potassium","K",Z = 19.,A);
A = 40.08*g/mole;
G4Element* elCa = new G4Element("Calcium","Ca",Z = 20.,A);
auto elCa = new G4Element("Calcium","Ca",Z = 20.,A);
A = 55.85*g/mole;
G4Element* elFe = new G4Element("Iron","Fe",Z = 26.,A);
auto elFe = new G4Element("Iron","Fe",Z = 26.,A);
A = 126.90447 *g/mole;
G4Element*elI = new G4Element("Iodine","I", Z = 53.,A);
auto elI = new G4Element("Iodine","I", Z = 53.,A);
//Added tissues for phantom including their tissue ID
//Teeth -> Tissue ID 1
@@ -67,43 +67,43 @@ void ICRP110PhantomMaterial_Male::DefineMaterials()
// General elements
A = 1.01*g/mole;
G4Element* elH = new G4Element ("Hydrogen","H",Z = 1.,A);
auto elH = new G4Element ("Hydrogen","H",Z = 1.,A);
A = 12.011*g/mole;
G4Element* elC = new G4Element("Carbon","C",Z = 6.,A);
auto elC = new G4Element("Carbon","C",Z = 6.,A);
A = 14.01*g/mole;
G4Element* elN = new G4Element("Nitrogen","N",Z = 7.,A);
auto elN = new G4Element("Nitrogen","N",Z = 7.,A);
A = 16.00*g/mole;
G4Element* elO = new G4Element("Oxygen","O",Z = 8.,A);
auto elO = new G4Element("Oxygen","O",Z = 8.,A);
A = 22.99*g/mole;
G4Element* elNa = new G4Element("Sodium","Na",Z = 11.,A);
auto elNa = new G4Element("Sodium","Na",Z = 11.,A);
A = 24.305*g/mole;
G4Element* elMg = new G4Element("Magnesium","Mg",Z = 12.,A);
auto elMg = new G4Element("Magnesium","Mg",Z = 12.,A);
A = 30.974*g/mole;
G4Element* elP = new G4Element("Phosphorus","P",Z = 15.,A);
auto elP = new G4Element("Phosphorus","P",Z = 15.,A);
A = 32.064*g/mole;
G4Element* elS = new G4Element("Sulfur","S",Z = 16.,A);
auto elS = new G4Element("Sulfur","S",Z = 16.,A);
A = 35.453*g/mole;
G4Element* elCl = new G4Element("Chlorine","Cl",Z = 17.,A);
auto elCl = new G4Element("Chlorine","Cl",Z = 17.,A);
A = 39.098*g/mole;
G4Element* elK = new G4Element("Potassium","K",Z = 19.,A);
auto elK = new G4Element("Potassium","K",Z = 19.,A);
A = 40.08*g/mole;
G4Element* elCa = new G4Element("Calcium","Ca",Z = 20.,A);
auto elCa = new G4Element("Calcium","Ca",Z = 20.,A);
A = 55.85*g/mole;
G4Element* elFe = new G4Element("Iron","Fe",Z = 26.,A);
auto elFe = new G4Element("Iron","Fe",Z = 26.,A);
A = 126.90447 *g/mole;
G4Element*elI = new G4Element("Iodine","I", Z = 53.,A);
auto elI = new G4Element("Iodine","I", Z = 53.,A);
//Added tissues for phantom including their tissue ID
@@ -48,7 +48,7 @@ ICRP110PhantomNestedParameterisation(const G4ThreeVector& halfVoxelSize,
fdX(halfVoxelSize.x()), fdY(halfVoxelSize.y()), fdZ(halfVoxelSize.z()),
fnX(fnX_), fnY(fnY_), fnZ(fnZ_), // number of voxels along X, Y and Z
fMaterials(mat), // vector of defined materials
fMaterialIndices(0) // vector which associates MaterialID to voxels
fMaterialIndices(nullptr) // vector which associates MaterialID to voxels
{
ReadColourData();//Define the color of each material
// from ColourMap.dat
@@ -62,7 +62,7 @@ void ICRP110PhantomNestedParameterisation::ReadColourData()
// By default the tissues are not visible. Then
// the visualisation attributes are defined based on
// ColourMap.dat
G4VisAttributes* blankAtt = new G4VisAttributes;
auto blankAtt = new G4VisAttributes;
blankAtt->SetVisibility( FALSE );
fColours["Default"] = blankAtt;
@@ -74,10 +74,12 @@ void ICRP110PhantomNestedParameterisation::ReadColourData()
G4String mateName;
G4double cred, cgreen, cblue, copacity;
fin >> nMate;
G4VisAttributes* visAtt=nullptr;
for( G4int ii = 0; ii < nMate; ii++ ){
fin >> mateName >> cred >> cgreen >> cblue >> copacity;
G4Colour colour( cred, cgreen, cblue, copacity );
G4VisAttributes* visAtt = new G4VisAttributes( colour );
visAtt = new G4VisAttributes( colour );
visAtt->SetForceSolid(true);
fColours[mateName] = visAtt;
// G4cout << mateName << " colour set : " << colour << G4endl;
@@ -86,7 +86,7 @@ if(!ofile)
// retrieve the map
MeshScoreMap fSMap = fScoringMesh -> GetScoreMap();
MeshScoreMap::const_iterator msMapItr = fSMap.find(psName);
auto msMapItr = fSMap.find(psName);
if(msMapItr == fSMap.end())
{
+13 -7
View File
@@ -1,12 +1,18 @@
-------------------------------------------------------------------
-------------------------------------------------------------------
# Example STCyclotron History
==============================================================
Geant4 - Solid-target cyclotron example
==============================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
Category History file
---------------------
## 2022-06-20 Sergio Losilla (STCyclotron-V11-00-01)
- Removed no-op lines, simplified calls to SetProductionCut.
## 2021-12-10 Ben Morgan (STCyclotron-V11-00-00)
- Change to new Markdown History format
---
# History entries prior to 11.0
07.10.2021 - I. Hrivnacova (STCyclotron-V10-07-07)
- Migration to new G4AnalysisManager.hh header;
+18 -18
View File
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
Geant4 version Name: geant4-11-00-patch-02 (25-May-2022)
Geant4 version Name: geant4-11-01-beta-01 (30-June-2022)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -75,63 +75,63 @@ Region <Target> -- -- appears in <World> world volume
Root logical volume(s) : Target
Pointers : G4VUserRegionInformation[0], G4UserLimits[0], G4FastSimulationManager[0], G4UserSteppingAction[0]
Materials : G4_Ni
Production cuts : gamma 175 um e- 175 um e+ 175 um proton 175 um
Production cuts : gamma 175 um e- 175 um e+ 175 um proton 10 um
Region <Foil> -- -- appears in <World> world volume
This region is in the mass world.
Root logical volume(s) : Foil
Pointers : G4VUserRegionInformation[0], G4UserLimits[0], G4FastSimulationManager[0], G4UserSteppingAction[0]
Materials : G4_Al
Production cuts : gamma 5 Ang e- 5 Ang e+ 5 Ang proton 5 Ang
Production cuts : gamma 5 Ang e- 5 Ang e+ 5 Ang proton 100 um
========= Table of registered couples ============================
Index : 0 used in the geometry : Yes
Material : G4_AIR
Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um
Energy thresholds : gamma 1 keV e- 1 keV e+ 1 keV proton 10 keV
Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 10 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 1 used in the geometry : Yes
Material : G4_Al
Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um
Energy thresholds : gamma 2.34147 keV e- 131.214 keV e+ 128.744 keV proton 10 keV
Energy thresholds : gamma 2.34157 keV e- 131.218 keV e+ 128.746 keV proton 10 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 2 used in the geometry : Yes
Material : vacuumBeam
Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um
Energy thresholds : gamma 1 keV e- 1 keV e+ 1 keV proton 10 keV
Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 10 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 3 used in the geometry : Yes
Material : helium
Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um
Energy thresholds : gamma 1 keV e- 1 keV e+ 1 keV proton 10 keV
Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 10 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 4 used in the geometry : Yes
Material : G4_Pt
Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um
Energy thresholds : gamma 42.2904 keV e- 374.921 keV e+ 359.657 keV proton 10 keV
Energy thresholds : gamma 42.2897 keV e- 374.929 keV e+ 359.669 keV proton 10 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 5 used in the geometry : Yes
Material : G4_Ni
Range cuts : gamma 175 um e- 175 um e+ 175 um proton 175 um
Energy thresholds : gamma 9.71418 keV e- 374.785 keV e+ 361.68 keV proton 17.5 keV
Range cuts : gamma 175 um e- 175 um e+ 175 um proton 10 um
Energy thresholds : gamma 9.71407 keV e- 374.794 keV e+ 361.684 keV proton 1 keV
Region(s) which use this couple :
Target
Index : 6 used in the geometry : Yes
Material : G4_Al
Range cuts : gamma 5 Ang e- 5 Ang e+ 5 Ang proton 5 Ang
Energy thresholds : gamma 1 keV e- 1 keV e+ 1 keV proton 50 meV
Range cuts : gamma 5 Ang e- 5 Ang e+ 5 Ang proton 100 um
Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 10 keV
Region(s) which use this couple :
Foil
@@ -160,7 +160,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Run terminated.
Run Summary
Number of events processed : 10
User=35.760000s Real=36.120555s Sys=0.020000s
User=21.240000s Real=21.718533s Sys=0.000000s
... write file : SolidTargetCyclotron.root - done
... close file : SolidTargetCyclotron.root - done
G4 kernel has come to Quit state.
@@ -176,19 +176,19 @@ G4SDManager deleted.
EventManager deleted.
Units table cleared.
TransportationManager deleted.
Total navigation history collections cleaned: 12
Total navigation history collections cleaned: 10
G4RNGHelper object is deleted.
================== Deleting memory pools ===================
Pool ID '20G4NavigationLevelRep', size : 0.0163 MB
Pool ID '20G4NavigationLevelRep', size : 0.0135 MB
Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB
Pool ID '17G4DynamicParticle', size : 0.522 MB
Pool ID '16G4SmartVoxelNode', size : 0.00192 MB
Pool ID '17G4SmartVoxelProxy', size : 0.000961 MB
Pool ID '7G4Event', size : 0.000961 MB
Pool ID '15G4PrimaryVertex', size : 0.000961 MB
Pool ID '17G4PrimaryParticle', size : 0.258 MB
Pool ID '17G4DynamicParticle', size : 0.517 MB
Pool ID '7G4Track', size : 1.03 MB
Pool ID '18G4TouchableHistory', size : 0.00192 MB
Pool ID '7G4Track', size : 1.04 MB
Pool ID '18G4TouchableHistory', size : 0.000961 MB
Pool ID '15G4CountedObjectIvE', size : 0.000961 MB
Pool ID '17G4ReactionProduct', size : 0.00192 MB
Pool ID '10G4Fragment', size : 0.000961 MB
@@ -52,8 +52,8 @@ public:
void SetCutForGamma(G4double);
void SetCutForElectron(G4double);
void SetCutForPositron(G4double);
void SetCutFoil(G4double cutProton, G4double cutElectron, G4double cutPositron, G4double cutGamma, G4double cutNeutron);
void SetCutTarget(G4double cutProton, G4double cutElectron, G4double cutPositron, G4double cutGamma, G4double cutNeutron);
void SetCutFoil(G4double cutProton, G4double cutElectron, G4double cutPositron, G4double cutGamma);
void SetCutTarget(G4double cutProton, G4double cutElectron, G4double cutPositron, G4double cutGamma);
@@ -77,13 +77,11 @@ private:
G4double fCutTargetElectron;
G4double fCutTargetPositron;
G4double fCutTargetGamma;
G4double fCutTargetNeutron;
G4double fCutFoilProton;
G4double fCutFoilElectron;
G4double fCutFoilPositron;
G4double fCutFoilGamma;
G4double fCutFoilNeutron;
STCyclotronDetectorConstruction* fDetector;
@@ -86,13 +86,11 @@ STCyclotronPhysicsList::STCyclotronPhysicsList(STCyclotronDetectorConstruction*
fCutTargetElectron = fThickness_target;
fCutTargetPositron = fThickness_target;
fCutTargetGamma = fThickness_target;
fCutTargetNeutron = fThickness_target;
fCutFoilProton = fThickness_foil;
fCutFoilElectron = fThickness_foil;
fCutFoilPositron = fThickness_foil;
fCutFoilGamma = fThickness_foil;
fCutFoilNeutron = fThickness_foil;
//EM physics
fEmPhysicsList = new G4EmStandardPhysics_option3(0);
@@ -163,7 +161,7 @@ void STCyclotronPhysicsList::ConstructProcess()
//Update the cuts with the 1/2 of the thickness of the foil/target
//SetCuts();
SetCutTarget(0.01,fThickness_target/2.,fThickness_target/2.,fThickness_target/2.,fThickness_target/2.);
SetCutTarget(0.01,fThickness_target/2.,fThickness_target/2.,fThickness_target/2.);
@@ -184,8 +182,8 @@ void STCyclotronPhysicsList::SetCuts()
SetCutValue(fCutForPositron, "e+");
// Set cuts for detector
SetCutFoil(0.1,fThickness_foil/2.,fThickness_foil/2.,fThickness_foil/2.,fThickness_foil/2.);
SetCutTarget(0.01,fThickness_target/2.,fThickness_target/2.,fThickness_target/2.,fThickness_target/2.);
SetCutFoil(0.1,fThickness_foil/2.,fThickness_foil/2.,fThickness_foil/2.);
SetCutTarget(0.01,fThickness_target/2.,fThickness_target/2.,fThickness_target/2.);
if (verboseLevel>0) DumpCutValuesTable();
}
@@ -207,48 +205,42 @@ void STCyclotronPhysicsList::SetCutForPositron(G4double cut)
SetParticleCuts(fCutForPositron, G4Positron::Positron());
}
void STCyclotronPhysicsList::SetCutTarget(G4double cutProton, G4double cutElectron, G4double cutPositron, G4double cutGamma, G4double cutNeutron){
void STCyclotronPhysicsList::SetCutTarget(G4double cutProton, G4double cutElectron, G4double cutPositron, G4double cutGamma){
fCutTargetProton = cutProton*mm;
fCutTargetElectron = cutElectron*mm;
fCutTargetPositron = cutPositron*mm;
fCutTargetGamma = cutGamma*mm;
fCutTargetNeutron = cutNeutron*mm;
G4String regionNameTarget = "Target";
G4Region* regionTarget = G4RegionStore::GetInstance()->GetRegion(regionNameTarget);
G4ProductionCuts* cutsTarget = new G4ProductionCuts ;
cutsTarget -> SetProductionCut(fCutTargetGamma,G4ProductionCuts::GetIndex("gamma"));
cutsTarget -> SetProductionCut(fCutTargetElectron,G4ProductionCuts::GetIndex("e-"));
cutsTarget -> SetProductionCut(fCutTargetPositron,G4ProductionCuts::GetIndex("e+"));
cutsTarget -> SetProductionCut(fCutTargetProton,G4ProductionCuts::GetIndex("proton"));
cutsTarget->SetProductionCut(fCutTargetProton, G4ProductionCuts::GetIndex("deuteron"));
cutsTarget -> SetProductionCut(fCutTargetNeutron,G4ProductionCuts::GetIndex("neutron"));
cutsTarget -> SetProductionCut(fCutTargetGamma,"gamma");
cutsTarget -> SetProductionCut(fCutTargetElectron,"e-");
cutsTarget -> SetProductionCut(fCutTargetPositron,"e+");
cutsTarget -> SetProductionCut(fCutTargetProton,"proton");
regionTarget -> SetProductionCuts(cutsTarget);
}
void STCyclotronPhysicsList::SetCutFoil(G4double cutProton, G4double cutElectron, G4double cutPositron, G4double cutGamma, G4double cutNeutron){
void STCyclotronPhysicsList::SetCutFoil(G4double cutProton, G4double cutElectron, G4double cutPositron, G4double cutGamma){
fCutFoilProton = cutProton*mm;
fCutFoilElectron = cutElectron*mm;
fCutFoilPositron = cutPositron*mm;
fCutFoilGamma = cutGamma*mm;
fCutFoilNeutron = cutNeutron*mm;
G4RegionStore::GetInstance()->GetRegion("Foil");
G4String regionNameFoil = "Foil";
G4Region* regionFoil = G4RegionStore::GetInstance()->GetRegion(regionNameFoil);
G4ProductionCuts* cutsFoil = new G4ProductionCuts ;
cutsFoil -> SetProductionCut(fCutFoilGamma,G4ProductionCuts::GetIndex("gamma"));
cutsFoil -> SetProductionCut(fCutFoilElectron,G4ProductionCuts::GetIndex("e-"));
cutsFoil -> SetProductionCut(fCutFoilPositron,G4ProductionCuts::GetIndex("e+"));
cutsFoil -> SetProductionCut(fCutFoilProton,G4ProductionCuts::GetIndex("proton"));
cutsFoil->SetProductionCut(fCutFoilProton, G4ProductionCuts::GetIndex("deuteron"));
cutsFoil -> SetProductionCut(fCutFoilNeutron,G4ProductionCuts::GetIndex("neutron"));
cutsFoil -> SetProductionCut(fCutFoilGamma,"gamma");
cutsFoil -> SetProductionCut(fCutFoilElectron,"e-");
cutsFoil -> SetProductionCut(fCutFoilPositron,"e+");
cutsFoil -> SetProductionCut(fCutFoilProton,"proton");
regionFoil -> SetProductionCuts(cutsFoil);
+13 -6
View File
@@ -1,11 +1,18 @@
-------------------------------------------------------------------
# Example air_shower History
=========================================================
Geant4 - Ultra Advanced example
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
History file
------------
## 2022-02-22 Daren Sawkey (air_shower-V11-00-01)
- All material properties in order of increasing energy
## 2021-12-10 Ben Morgan (air_shower-V11-00-00)
- Change to new Markdown History format
---
# History entries prior to 11.0
11.11.2021 - B. Tome (air_shower-V10-07-04)
Start using C++11 guidelines
+52 -50
View File
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
Geant4 version Name: geant4-11-00-patch-02 (25-May-2022)
Geant4 version Name: geant4-11-01-beta-01 (30-June-2022)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -101,6 +101,10 @@ Registered graphics systems are:
OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK)
OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK)
RayTracerX (RayTracerX)
Qt3D (Qt3D)
TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK)
TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK)
TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG)
Registering model factories...
@@ -194,7 +198,8 @@ physicsList->setCut() start.
LPM effect enabled 1
Enable creation and use of sampling tables 0
Apply cuts on all EM processes 0
Use general process 0
Use combined TransportationWithMsc Disabled
Use general process 1
Enable linear polarisation for gamma 0
Enable sampling of quantum entanglement 0
X-section factor for integral approach 0.8
@@ -211,7 +216,7 @@ Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
Livermore data directory livermore
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
=======================================================================
@@ -221,8 +226,9 @@ Step function for light ions (0.2, 0.1 mm)
Step function for general ions (0.2, 0.1 mm)
Lowest e+e- kinetic energy 1 keV
Lowest muon/hadron kinetic energy 1 keV
Fluctuations of dE/dx are enabled 1
Use ICRU90 data 0
Fluctuations of dE/dx are enabled 1
Type of fluctuation model 2
Use built-in Birks satuaration 1
Build CSDA range enabled 0
Use cut as a final range enabled 0
@@ -285,10 +291,10 @@ msc: for e- SubType= 10
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
eIoni: for e- XStype:1 SubType=2
eIoni: for e- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV
@@ -313,10 +319,10 @@ msc: for e+ SubType= 10
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
eIoni: for e+ XStype:1 SubType=2
eIoni: for e+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV
@@ -343,10 +349,10 @@ msc: for proton SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for proton XStype:1 SubType=2
hIoni: for proton XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
@@ -375,10 +381,10 @@ msc: for GenericIon SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
ionIoni: for GenericIon XStype:1 SubType=2
ionIoni: for GenericIon XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.02
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
Stopping Power data for 17 ion/material pairs
===== EM models for the G4Region DefaultRegionForTheWorld ======
BraggIon : Emin= 0 eV Emax= 2 MeV
@@ -389,10 +395,10 @@ msc: for alpha SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
ionIoni: for alpha XStype:1 SubType=2
ionIoni: for alpha XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.02
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
BraggIon : Emin= 0 eV Emax=7.9452 MeV
BetheBloch : Emin=7.9452 MeV Emax= 100 TeV
@@ -402,10 +408,10 @@ msc: for anti_proton SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for anti_proton XStype:1 SubType=2
hIoni: for anti_proton XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
@@ -434,10 +440,10 @@ msc: for kaon+ SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for kaon+ XStype:1 SubType=2
hIoni: for kaon+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax=1.05231 MeV
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
@@ -466,10 +472,10 @@ msc: for kaon- SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for kaon- XStype:1 SubType=2
hIoni: for kaon- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax=1.05231 MeV
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
@@ -498,14 +504,13 @@ msc: for mu+ SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
muIoni: for mu+ XStype:1 SubType=2
muIoni: for mu+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 200 keV
BetheBloch : Emin= 200 keV Emax= 1 GeV
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
muBrems: for mu+ XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
@@ -516,7 +521,7 @@ muBrems: for mu+ XStype:1 SubType=3
muPairProd: for mu+ XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
Sampling table 21x1001 from 1 GeV to 100 TeV
Sampling table 21x1001 from 0.85 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
@@ -531,14 +536,13 @@ msc: for mu- SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
muIoni: for mu- XStype:1 SubType=2
muIoni: for mu- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 200 keV
BetheBloch : Emin= 200 keV Emax= 1 GeV
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
muBrems: for mu- XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
@@ -549,7 +553,7 @@ muBrems: for mu- XStype:1 SubType=3
muPairProd: for mu- XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
Sampling table 21x1001 from 1 GeV to 100 TeV
Sampling table 21x1001 from 0.85 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
@@ -564,10 +568,10 @@ msc: for pi+ SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for pi+ XStype:1 SubType=2
hIoni: for pi+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax=297.505 keV
BetheBloch : Emin=297.505 keV Emax= 100 TeV
@@ -596,10 +600,10 @@ msc: for pi- SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for pi- XStype:1 SubType=2
hIoni: for pi- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax=297.505 keV
BetheBloch : Emin=297.505 keV Emax= 100 TeV
@@ -641,28 +645,28 @@ Region <DefaultRegionForParallelWorld> -- -- is not associated to any world.
Index : 0 used in the geometry : Yes
Material : Air
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
Energy thresholds : gamma 1 keV e- 1 keV e+ 1 keV proton 100 keV
Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 100 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 1 used in the geometry : Yes
Material : Aluminum
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
Energy thresholds : gamma 6.91818 keV e- 597.592 keV e+ 574.294 keV proton 100 keV
Energy thresholds : gamma 6.91691 keV e- 597.603 keV e+ 574.29 keV proton 100 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 2 used in the geometry : Yes
Material : Acrylic
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
Energy thresholds : gamma 2.77808 keV e- 389.117 keV e+ 377.901 keV proton 100 keV
Energy thresholds : gamma 2.77771 keV e- 389.12 keV e+ 377.915 keV proton 100 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 3 used in the geometry : Yes
Material : Quartz
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
Energy thresholds : gamma 6.02652 keV e- 614.656 keV e+ 591.024 keV proton 100 keV
Energy thresholds : gamma 6.02536 keV e- 614.656 keV e+ 591.029 keV proton 100 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
@@ -691,8 +695,8 @@ See commands in /vis/modeling/trajectories/ for other options.
ooo Run 0 starts (global).
--------- Ranlux engine status ---------
Initial seed = 1653387435
float_seed_table[] = 0.679642 0.282378 0.22417 0.9985 0.0862005 0.282983 0.473305 0.903354 0.99085 0.984021 0.808208 0.749773 0.506064 0.683597 0.56733 0.21337 0.914387 0.414573 0.780641 0.711102 0.130292 0.648337 0.56436 0.362236
Initial seed = 1656510677
float_seed_table[] = 0.67537 0.397105 0.895521 0.443124 0.308485 0.864686 0.60293 0.830782 0.0268728 0.345021 0.858085 0.551476 0.960402 0.53388 0.865799 0.105157 0.867925 0.220778 0.235352 0.524966 0.135397 0.857166 0.832263 0.318347
i_lag = 23, j_lag = 9
carry = 0, count24 = 0
luxury = 3 nskip = 199
@@ -703,11 +707,8 @@ mu- Mono Plane
Run terminated.
Run Summary
Number of events processed : 100
User=0.050000s Real=0.049342s Sys=0.000000s
User=2.080000s Real=2.089093s Sys=0.000000s
### Run 0 (global) ended.
0 events have been kept for refreshing and/or reviewing.
"/vis/reviewKeptEvents" to review them one by one.
"/vis/enable", then "/vis/viewer/flush" or "/vis/viewer/rebuild" to see them accumulated.
Graphics systems deleted.
Visualization Manager deleting...
G4 kernel has come to Quit state.
@@ -723,11 +724,12 @@ G4SDManager deleted.
EventManager deleted.
Units table cleared.
TransportationManager deleted.
Total navigation history collections cleaned: 9
Total navigation history collections cleaned: 10
G4RNGHelper object is deleted.
================== Deleting memory pools ===================
Pool ID '20G4NavigationLevelRep', size : 0.0115 MB
Pool ID '20G4NavigationLevelRep', size : 0.0135 MB
Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB
Pool ID '17G4DynamicParticle', size : 0.025 MB
Pool ID '16G4SmartVoxelNode', size : 0.00192 MB
Pool ID '17G4SmartVoxelProxy', size : 0.000961 MB
Pool ID '7G4Event', size : 0.000961 MB
@@ -735,12 +737,12 @@ Pool ID '15G4PrimaryVertex', size : 0.000961 MB
Pool ID '17G4PrimaryParticle', size : 0.000961 MB
Pool ID '15G4HCofThisEvent', size : 0.000961 MB
Pool ID '16G4HitsCollection', size : 0.000961 MB
Pool ID '17G4DynamicParticle', size : 0.0106 MB
Pool ID '7G4Track', size : 0.0202 MB
Pool ID '7G4Track', size : 0.049 MB
Pool ID '18G4TouchableHistory', size : 0.000961 MB
Pool ID '15G4CountedObjectIvE', size : 0.000961 MB
Number of memory pools allocated: 13 of which, static: 0
Dynamic pools deleted: 13 / Total memory freed: 0.053 MB
Pool ID '15UltraOpticalHit', size : 0.00577 MB
Number of memory pools allocated: 14 of which, static: 0
Dynamic pools deleted: 14 / Total memory freed: 0.1 MB
============================================================
G4Allocator objects are deleted.
UImanager deleted.
@@ -271,7 +271,8 @@ void UltraDetectorConstruction::ConstructTableMaterials()
for(auto i=0;i<NENTRIES; ++i){
lambda = lambda_min + i*(lambda_max-lambda_min)/float(NENTRIES-1);
// want energies in increasing order
lambda = lambda_min + (NENTRIES-1-i) * (lambda_max-lambda_min)/float(NENTRIES-1);
RINDEX_ACRYLIC.push_back(0.0);
for (auto jj=0 ; jj<4 ; jj++)
+13 -12
View File
@@ -1,18 +1,19 @@
-------------------------------------------------------------------
# Example amsEcal History
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
amsEcal History file
--------------------
This file should be used by the G4 example coordinator to briefly
summarize all major modifications introduced in the code and keep
track of all tags.
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
## 2022-01-18 Jonas Hahnfeld (amsEcal-V11-00-01)
- Prefer pointer to `const G4Material` if possible
## 2021-12-10 Ben Morgan (amsEcal-V11-00-00)
- Change to new Markdown History format
---
# History entries prior to 11.0
07-10-21 I. Hrivnacova (amsEcal-V10-07-03)
- Migration to new G4AnalysisManager.hh header;
+99 -99
View File
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
Geant4 version Name: geant4-11-00-patch-02 (25-May-2022)
Geant4 version Name: geant4-11-01-beta-01 (30-June-2022)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -128,21 +128,21 @@ Region <DefaultRegionForParallelWorld> -- -- is not associated to any world.
Index : 0 used in the geometry : Yes
Material : Galactic
Range cuts : gamma 1 km e- 1 km e+ 1 km proton 1 km
Energy thresholds : gamma 1 keV e- 1 keV e+ 1 keV proton 100 GeV
Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 100 GeV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 1 used in the geometry : Yes
Material : Lead
Range cuts : gamma 1 km e- 1 km e+ 1 km proton 1 km
Energy thresholds : gamma 9.54993 GeV e- 9.54993 GeV e+ 9.54993 GeV proton 100 GeV
Energy thresholds : gamma 9.54965 GeV e- 9.54965 GeV e+ 9.54965 GeV proton 100 GeV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 2 used in the geometry : Yes
Material : Scintillator
Range cuts : gamma 1 km e- 1 km e+ 1 km proton 1 km
Energy thresholds : gamma 9.54993 GeV e- 9.54993 GeV e+ 9.54993 GeV proton 100 GeV
Energy thresholds : gamma 9.54965 GeV e- 9.54965 GeV e+ 9.54965 GeV proton 100 GeV
Region(s) which use this couple :
DefaultRegionForTheWorld
@@ -186,7 +186,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Run terminated.
Run Summary
Number of events processed : 10000
User=6.340000s Real=6.391310s Sys=0.000000s
User=6.160000s Real=6.248297s Sys=0.000000s
-------------------------------------------------------------
---> The calorimeter is 9 Modules
@@ -209,106 +209,106 @@ Run Summary
total Energy (rms/mean) visible Energy (rms/mean)
layer 1: 1.511 MeV +- 2.251 MeV (1.5e+02 %) 161.26 keV +- 478 keV (3e+02 %)
layer 2: 1.5585 MeV +- 2.669 MeV (1.7e+02 %) 168.13 keV +- 852.5 keV (5.1e+02 %)
layer 3: 1.5052 MeV +- 2.475 MeV (1.6e+02 %) 150.95 keV +- 301.4 keV (2e+02 %)
layer 4: 1.5237 MeV +- 2.487 MeV (1.6e+02 %) 153.41 keV +- 470.7 keV (3.1e+02 %)
layer 5: 1.5354 MeV +- 2.873 MeV (1.9e+02 %) 162.65 keV +- 683.3 keV (4.2e+02 %)
layer 6: 1.5497 MeV +- 2.432 MeV (1.6e+02 %) 160.61 keV +- 772.8 keV (4.8e+02 %)
layer 7: 1.5365 MeV +- 2.78 MeV (1.8e+02 %) 169.32 keV +- 809.4 keV (4.8e+02 %)
layer 8: 1.5535 MeV +- 2.392 MeV (1.5e+02 %) 156.92 keV +- 678.4 keV (4.3e+02 %)
layer 9: 1.4744 MeV +- 1.985 MeV (1.3e+02 %) 162.87 keV +- 987 keV (6.1e+02 %)
layer 10: 1.4969 MeV +- 1.724 MeV (1.2e+02 %) 152.62 keV +- 742.7 keV (4.9e+02 %)
layer 11: 1.523 MeV +- 2.356 MeV (1.5e+02 %) 174.79 keV +- 1.023 MeV (5.9e+02 %)
layer 12: 1.5865 MeV +- 2.659 MeV (1.7e+02 %) 184.74 keV +- 1.37 MeV (7.4e+02 %)
layer 13: 1.5074 MeV +- 2.32 MeV (1.5e+02 %) 156.73 keV +- 756.6 keV (4.8e+02 %)
layer 14: 1.5173 MeV +- 2.283 MeV (1.5e+02 %) 148.85 keV +- 708.6 keV (4.8e+02 %)
layer 15: 1.5396 MeV +- 2.761 MeV (1.8e+02 %) 149.38 keV +- 302.4 keV (2e+02 %)
layer 16: 1.4939 MeV +- 1.776 MeV (1.2e+02 %) 154.77 keV +- 932.1 keV (6e+02 %)
layer 17: 1.491 MeV +- 1.817 MeV (1.2e+02 %) 149.51 keV +- 263.3 keV (1.8e+02 %)
layer 18: 1.5215 MeV +- 2.027 MeV (1.3e+02 %) 160.83 keV +- 803.9 keV (5e+02 %)
layer 19: 1.5422 MeV +- 2.17 MeV (1.4e+02 %) 158.24 keV +- 502.3 keV (3.2e+02 %)
layer 20: 1.5245 MeV +- 2.418 MeV (1.6e+02 %) 167.57 keV +- 1.054 MeV (6.3e+02 %)
layer 21: 1.5339 MeV +- 2.311 MeV (1.5e+02 %) 162.11 keV +- 883.8 keV (5.5e+02 %)
layer 22: 1.5329 MeV +- 2.182 MeV (1.4e+02 %) 159.53 keV +- 741.8 keV (4.7e+02 %)
layer 23: 1.505 MeV +- 1.894 MeV (1.3e+02 %) 154.06 keV +- 475.5 keV (3.1e+02 %)
layer 24: 1.5269 MeV +- 2.263 MeV (1.5e+02 %) 157.18 keV +- 658.4 keV (4.2e+02 %)
layer 25: 1.5007 MeV +- 2.116 MeV (1.4e+02 %) 158.21 keV +- 427.6 keV (2.7e+02 %)
layer 26: 1.5279 MeV +- 2.096 MeV (1.4e+02 %) 145.82 keV +- 377.8 keV (2.6e+02 %)
layer 27: 1.5137 MeV +- 2.525 MeV (1.7e+02 %) 164.63 keV +- 712.5 keV (4.3e+02 %)
layer 28: 1.5355 MeV +- 2.324 MeV (1.5e+02 %) 161.19 keV +- 880 keV (5.5e+02 %)
layer 29: 1.5028 MeV +- 2.115 MeV (1.4e+02 %) 156.29 keV +- 437.1 keV (2.8e+02 %)
layer 30: 1.5224 MeV +- 2.212 MeV (1.5e+02 %) 146.74 keV +- 474.3 keV (3.2e+02 %)
layer 31: 1.5473 MeV +- 2.312 MeV (1.5e+02 %) 157.35 keV +- 715.2 keV (4.5e+02 %)
layer 32: 1.5269 MeV +- 2.532 MeV (1.7e+02 %) 150.17 keV +- 343.1 keV (2.3e+02 %)
layer 33: 1.5281 MeV +- 2.193 MeV (1.4e+02 %) 168.46 keV +- 978.3 keV (5.8e+02 %)
layer 34: 1.5481 MeV +- 2.434 MeV (1.6e+02 %) 174.87 keV +- 1.198 MeV (6.8e+02 %)
layer 35: 1.4957 MeV +- 1.827 MeV (1.2e+02 %) 159.84 keV +- 658.3 keV (4.1e+02 %)
layer 36: 1.537 MeV +- 2.317 MeV (1.5e+02 %) 160.07 keV +- 778 keV (4.9e+02 %)
layer 37: 1.5352 MeV +- 2.287 MeV (1.5e+02 %) 156.35 keV +- 544.6 keV (3.5e+02 %)
layer 38: 1.544 MeV +- 2.322 MeV (1.5e+02 %) 154.21 keV +- 434.1 keV (2.8e+02 %)
layer 39: 1.5263 MeV +- 2.225 MeV (1.5e+02 %) 152.33 keV +- 358.6 keV (2.4e+02 %)
layer 40: 1.5226 MeV +- 2.185 MeV (1.4e+02 %) 152.88 keV +- 529.7 keV (3.5e+02 %)
layer 41: 1.5249 MeV +- 2.609 MeV (1.7e+02 %) 157.07 keV +- 812.1 keV (5.2e+02 %)
layer 42: 1.5329 MeV +- 2.207 MeV (1.4e+02 %) 150.37 keV +- 348.5 keV (2.3e+02 %)
layer 43: 1.539 MeV +- 2.478 MeV (1.6e+02 %) 152.71 keV +- 476.3 keV (3.1e+02 %)
layer 44: 1.5313 MeV +- 2.467 MeV (1.6e+02 %) 152.45 keV +- 500.9 keV (3.3e+02 %)
layer 45: 1.5409 MeV +- 2.313 MeV (1.5e+02 %) 157.96 keV +- 518.6 keV (3.3e+02 %)
layer 46: 1.5479 MeV +- 2.343 MeV (1.5e+02 %) 157.73 keV +- 540.7 keV (3.4e+02 %)
layer 47: 1.5057 MeV +- 2.031 MeV (1.3e+02 %) 157.08 keV +- 655 keV (4.2e+02 %)
layer 48: 1.5057 MeV +- 2.071 MeV (1.4e+02 %) 154.67 keV +- 660.4 keV (4.3e+02 %)
layer 49: 1.5465 MeV +- 2.447 MeV (1.6e+02 %) 170.36 keV +- 1.311 MeV (7.7e+02 %)
layer 50: 1.5164 MeV +- 2.204 MeV (1.5e+02 %) 148.26 keV +- 429.3 keV (2.9e+02 %)
layer 51: 1.5147 MeV +- 2.039 MeV (1.3e+02 %) 163.92 keV +- 690.4 keV (4.2e+02 %)
layer 52: 1.5511 MeV +- 2.487 MeV (1.6e+02 %) 160.62 keV +- 655.1 keV (4.1e+02 %)
layer 53: 1.539 MeV +- 2.404 MeV (1.6e+02 %) 161.92 keV +- 910.4 keV (5.6e+02 %)
layer 54: 1.4969 MeV +- 2.018 MeV (1.3e+02 %) 152.26 keV +- 420.4 keV (2.8e+02 %)
layer 55: 1.5351 MeV +- 2.427 MeV (1.6e+02 %) 161.49 keV +- 648.6 keV (4e+02 %)
layer 56: 1.5048 MeV +- 2.105 MeV (1.4e+02 %) 164.36 keV +- 811.3 keV (4.9e+02 %)
layer 57: 1.5419 MeV +- 2.194 MeV (1.4e+02 %) 155.07 keV +- 642.6 keV (4.1e+02 %)
layer 58: 1.5732 MeV +- 2.838 MeV (1.8e+02 %) 156.53 keV +- 658.7 keV (4.2e+02 %)
layer 59: 1.4961 MeV +- 1.866 MeV (1.2e+02 %) 151.9 keV +- 492.7 keV (3.2e+02 %)
layer 60: 1.5192 MeV +- 1.936 MeV (1.3e+02 %) 158.11 keV +- 773.4 keV (4.9e+02 %)
layer 61: 1.4799 MeV +- 1.801 MeV (1.2e+02 %) 148.99 keV +- 453 keV (3e+02 %)
layer 62: 1.5574 MeV +- 2.56 MeV (1.6e+02 %) 155.26 keV +- 569.2 keV (3.7e+02 %)
layer 63: 1.5121 MeV +- 2.23 MeV (1.5e+02 %) 151.23 keV +- 452.1 keV (3e+02 %)
layer 64: 1.4964 MeV +- 1.911 MeV (1.3e+02 %) 146.56 keV +- 356.6 keV (2.4e+02 %)
layer 65: 1.4984 MeV +- 2.108 MeV (1.4e+02 %) 159.2 keV +- 538.3 keV (3.4e+02 %)
layer 66: 1.5167 MeV +- 2.15 MeV (1.4e+02 %) 164.53 keV +- 837.7 keV (5.1e+02 %)
layer 67: 1.5076 MeV +- 2.205 MeV (1.5e+02 %) 157.69 keV +- 569.9 keV (3.6e+02 %)
layer 68: 1.5049 MeV +- 2.341 MeV (1.6e+02 %) 165.87 keV +- 1.039 MeV (6.3e+02 %)
layer 69: 1.4807 MeV +- 1.813 MeV (1.2e+02 %) 152.46 keV +- 383.3 keV (2.5e+02 %)
layer 70: 1.5309 MeV +- 2.057 MeV (1.3e+02 %) 159.37 keV +- 694.5 keV (4.4e+02 %)
layer 71: 1.4957 MeV +- 1.945 MeV (1.3e+02 %) 153.48 keV +- 392.8 keV (2.6e+02 %)
layer 72: 1.5089 MeV +- 2.201 MeV (1.5e+02 %) 155.04 keV +- 685.9 keV (4.4e+02 %)
layer 73: 1.5263 MeV +- 2.14 MeV (1.4e+02 %) 170.6 keV +- 818.3 keV (4.8e+02 %)
layer 74: 1.4889 MeV +- 1.894 MeV (1.3e+02 %) 144.74 keV +- 244.1 keV (1.7e+02 %)
layer 75: 1.5167 MeV +- 2.306 MeV (1.5e+02 %) 152.65 keV +- 430.5 keV (2.8e+02 %)
layer 76: 1.5257 MeV +- 2.229 MeV (1.5e+02 %) 155.7 keV +- 398.2 keV (2.6e+02 %)
layer 77: 1.5026 MeV +- 2.168 MeV (1.4e+02 %) 165.03 keV +- 914.9 keV (5.5e+02 %)
layer 78: 1.5155 MeV +- 2.221 MeV (1.5e+02 %) 163.46 keV +- 838.3 keV (5.1e+02 %)
layer 79: 1.4881 MeV +- 1.923 MeV (1.3e+02 %) 154.72 keV +- 621.3 keV (4e+02 %)
layer 80: 1.4821 MeV +- 1.789 MeV (1.2e+02 %) 167.57 keV +- 866.7 keV (5.2e+02 %)
layer 81: 1.4854 MeV +- 1.903 MeV (1.3e+02 %) 145.52 keV +- 318.6 keV (2.2e+02 %)
layer 82: 1.5184 MeV +- 2.126 MeV (1.4e+02 %) 144.31 keV +- 235.9 keV (1.6e+02 %)
layer 83: 1.5336 MeV +- 2.332 MeV (1.5e+02 %) 166.65 keV +- 761.1 keV (4.6e+02 %)
layer 84: 1.4842 MeV +- 1.921 MeV (1.3e+02 %) 149.31 keV +- 376.8 keV (2.5e+02 %)
layer 85: 1.5364 MeV +- 2.188 MeV (1.4e+02 %) 157.13 keV +- 684.4 keV (4.4e+02 %)
layer 86: 1.5331 MeV +- 2.438 MeV (1.6e+02 %) 158.38 keV +- 491 keV (3.1e+02 %)
layer 87: 1.49 MeV +- 1.876 MeV (1.3e+02 %) 154.28 keV +- 405.4 keV (2.6e+02 %)
layer 88: 1.5193 MeV +- 2.21 MeV (1.5e+02 %) 157.27 keV +- 575.6 keV (3.7e+02 %)
layer 89: 1.493 MeV +- 1.985 MeV (1.3e+02 %) 155.72 keV +- 603.1 keV (3.9e+02 %)
layer 90: 1.5328 MeV +- 2.203 MeV (1.4e+02 %) 155.93 keV +- 842.2 keV (5.4e+02 %)
layer 1: 1.5863 MeV +- 3.074 MeV (1.9e+02 %) 164.82 keV +- 1.129 MeV (6.9e+02 %)
layer 2: 1.5596 MeV +- 2.499 MeV (1.6e+02 %) 151.77 keV +- 495.4 keV (3.3e+02 %)
layer 3: 1.5195 MeV +- 2.178 MeV (1.4e+02 %) 161.87 keV +- 648.9 keV (4e+02 %)
layer 4: 1.5254 MeV +- 2.204 MeV (1.4e+02 %) 168.06 keV +- 901.7 keV (5.4e+02 %)
layer 5: 1.5383 MeV +- 2.478 MeV (1.6e+02 %) 169.56 keV +- 1.004 MeV (5.9e+02 %)
layer 6: 1.5433 MeV +- 2.264 MeV (1.5e+02 %) 167.06 keV +- 1.007 MeV (6e+02 %)
layer 7: 1.5073 MeV +- 2.445 MeV (1.6e+02 %) 159.39 keV +- 595 keV (3.7e+02 %)
layer 8: 1.5125 MeV +- 2.227 MeV (1.5e+02 %) 155.04 keV +- 683.9 keV (4.4e+02 %)
layer 9: 1.5523 MeV +- 2.679 MeV (1.7e+02 %) 177.31 keV +- 1.14 MeV (6.4e+02 %)
layer 10: 1.5289 MeV +- 2.243 MeV (1.5e+02 %) 155.57 keV +- 581.1 keV (3.7e+02 %)
layer 11: 1.5873 MeV +- 2.917 MeV (1.8e+02 %) 158.89 keV +- 751.5 keV (4.7e+02 %)
layer 12: 1.553 MeV +- 2.423 MeV (1.6e+02 %) 160.96 keV +- 502.9 keV (3.1e+02 %)
layer 13: 1.5199 MeV +- 2.19 MeV (1.4e+02 %) 157.8 keV +- 828.9 keV (5.3e+02 %)
layer 14: 1.5448 MeV +- 2.593 MeV (1.7e+02 %) 158.88 keV +- 509 keV (3.2e+02 %)
layer 15: 1.5587 MeV +- 2.632 MeV (1.7e+02 %) 162.9 keV +- 1.032 MeV (6.3e+02 %)
layer 16: 1.4985 MeV +- 2.019 MeV (1.3e+02 %) 144.08 keV +- 286 keV (2e+02 %)
layer 17: 1.5221 MeV +- 2.21 MeV (1.5e+02 %) 156.61 keV +- 631.8 keV (4e+02 %)
layer 18: 1.5181 MeV +- 2.301 MeV (1.5e+02 %) 150.23 keV +- 330.2 keV (2.2e+02 %)
layer 19: 1.4889 MeV +- 2.015 MeV (1.4e+02 %) 151.8 keV +- 428.6 keV (2.8e+02 %)
layer 20: 1.534 MeV +- 2.157 MeV (1.4e+02 %) 157.92 keV +- 420.3 keV (2.7e+02 %)
layer 21: 1.5643 MeV +- 2.566 MeV (1.6e+02 %) 167.41 keV +- 1.122 MeV (6.7e+02 %)
layer 22: 1.5119 MeV +- 2.048 MeV (1.4e+02 %) 160.78 keV +- 944.9 keV (5.9e+02 %)
layer 23: 1.5166 MeV +- 2.039 MeV (1.3e+02 %) 151.43 keV +- 412.4 keV (2.7e+02 %)
layer 24: 1.5151 MeV +- 1.953 MeV (1.3e+02 %) 153.58 keV +- 622.2 keV (4.1e+02 %)
layer 25: 1.5095 MeV +- 2.175 MeV (1.4e+02 %) 154.65 keV +- 531.5 keV (3.4e+02 %)
layer 26: 1.495 MeV +- 2.05 MeV (1.4e+02 %) 160.13 keV +- 696.3 keV (4.3e+02 %)
layer 27: 1.5732 MeV +- 2.744 MeV (1.7e+02 %) 171.47 keV +- 1.177 MeV (6.9e+02 %)
layer 28: 1.533 MeV +- 2.285 MeV (1.5e+02 %) 157.02 keV +- 564.9 keV (3.6e+02 %)
layer 29: 1.5386 MeV +- 2.278 MeV (1.5e+02 %) 157.14 keV +- 635.3 keV (4e+02 %)
layer 30: 1.5372 MeV +- 2.518 MeV (1.6e+02 %) 157.16 keV +- 436.1 keV (2.8e+02 %)
layer 31: 1.5471 MeV +- 2.493 MeV (1.6e+02 %) 164.82 keV +- 1.045 MeV (6.3e+02 %)
layer 32: 1.4968 MeV +- 1.763 MeV (1.2e+02 %) 171.11 keV +- 961.5 keV (5.6e+02 %)
layer 33: 1.5266 MeV +- 2.165 MeV (1.4e+02 %) 161.95 keV +- 745.2 keV (4.6e+02 %)
layer 34: 1.5132 MeV +- 2.107 MeV (1.4e+02 %) 166.25 keV +- 1.024 MeV (6.2e+02 %)
layer 35: 1.4895 MeV +- 1.756 MeV (1.2e+02 %) 167.36 keV +- 1.068 MeV (6.4e+02 %)
layer 36: 1.5094 MeV +- 1.903 MeV (1.3e+02 %) 158.72 keV +- 561.1 keV (3.5e+02 %)
layer 37: 1.562 MeV +- 2.524 MeV (1.6e+02 %) 165.23 keV +- 919.4 keV (5.6e+02 %)
layer 38: 1.5108 MeV +- 2.138 MeV (1.4e+02 %) 153.62 keV +- 625.6 keV (4.1e+02 %)
layer 39: 1.5184 MeV +- 2.147 MeV (1.4e+02 %) 161.04 keV +- 910.1 keV (5.7e+02 %)
layer 40: 1.5718 MeV +- 2.785 MeV (1.8e+02 %) 168.4 keV +- 973 keV (5.8e+02 %)
layer 41: 1.5246 MeV +- 2.343 MeV (1.5e+02 %) 153.97 keV +- 407.8 keV (2.6e+02 %)
layer 42: 1.5272 MeV +- 2.188 MeV (1.4e+02 %) 164.79 keV +- 951.7 keV (5.8e+02 %)
layer 43: 1.5407 MeV +- 2.618 MeV (1.7e+02 %) 160.51 keV +- 625.1 keV (3.9e+02 %)
layer 44: 1.5215 MeV +- 2.236 MeV (1.5e+02 %) 158.39 keV +- 666.4 keV (4.2e+02 %)
layer 45: 1.5432 MeV +- 2.264 MeV (1.5e+02 %) 157.11 keV +- 576.3 keV (3.7e+02 %)
layer 46: 1.5033 MeV +- 2.067 MeV (1.4e+02 %) 150.38 keV +- 312.9 keV (2.1e+02 %)
layer 47: 1.4749 MeV +- 1.737 MeV (1.2e+02 %) 157.35 keV +- 516.6 keV (3.3e+02 %)
layer 48: 1.5441 MeV +- 2.467 MeV (1.6e+02 %) 174.41 keV +- 902.7 keV (5.2e+02 %)
layer 49: 1.5401 MeV +- 2.339 MeV (1.5e+02 %) 153.42 keV +- 516.7 keV (3.4e+02 %)
layer 50: 1.5045 MeV +- 2.154 MeV (1.4e+02 %) 149.99 keV +- 340.4 keV (2.3e+02 %)
layer 51: 1.5345 MeV +- 2.187 MeV (1.4e+02 %) 162.47 keV +- 873 keV (5.4e+02 %)
layer 52: 1.5163 MeV +- 2.036 MeV (1.3e+02 %) 165.41 keV +- 834.4 keV (5e+02 %)
layer 53: 1.5159 MeV +- 2.107 MeV (1.4e+02 %) 157.26 keV +- 630.8 keV (4e+02 %)
layer 54: 1.5311 MeV +- 2.162 MeV (1.4e+02 %) 155.52 keV +- 573.3 keV (3.7e+02 %)
layer 55: 1.5228 MeV +- 2.16 MeV (1.4e+02 %) 156.19 keV +- 581.6 keV (3.7e+02 %)
layer 56: 1.532 MeV +- 2.192 MeV (1.4e+02 %) 157.56 keV +- 505.1 keV (3.2e+02 %)
layer 57: 1.5365 MeV +- 2.254 MeV (1.5e+02 %) 164.29 keV +- 788.4 keV (4.8e+02 %)
layer 58: 1.5162 MeV +- 2.189 MeV (1.4e+02 %) 163.68 keV +- 686.6 keV (4.2e+02 %)
layer 59: 1.5219 MeV +- 2.056 MeV (1.4e+02 %) 163.47 keV +- 862.5 keV (5.3e+02 %)
layer 60: 1.467 MeV +- 1.708 MeV (1.2e+02 %) 158.27 keV +- 734 keV (4.6e+02 %)
layer 61: 1.5124 MeV +- 2.083 MeV (1.4e+02 %) 163.26 keV +- 635.7 keV (3.9e+02 %)
layer 62: 1.5096 MeV +- 2.12 MeV (1.4e+02 %) 163.55 keV +- 833.3 keV (5.1e+02 %)
layer 63: 1.4956 MeV +- 1.745 MeV (1.2e+02 %) 155.59 keV +- 458 keV (2.9e+02 %)
layer 64: 1.4978 MeV +- 1.96 MeV (1.3e+02 %) 155.54 keV +- 680.7 keV (4.4e+02 %)
layer 65: 1.4971 MeV +- 1.758 MeV (1.2e+02 %) 154.93 keV +- 468.1 keV (3e+02 %)
layer 66: 1.5236 MeV +- 1.989 MeV (1.3e+02 %) 161.81 keV +- 772.2 keV (4.8e+02 %)
layer 67: 1.5035 MeV +- 2.026 MeV (1.3e+02 %) 161.19 keV +- 960.7 keV (6e+02 %)
layer 68: 1.5429 MeV +- 2.453 MeV (1.6e+02 %) 160.36 keV +- 532.5 keV (3.3e+02 %)
layer 69: 1.5305 MeV +- 2.105 MeV (1.4e+02 %) 154.75 keV +- 672.1 keV (4.3e+02 %)
layer 70: 1.4951 MeV +- 1.865 MeV (1.2e+02 %) 150.4 keV +- 484.5 keV (3.2e+02 %)
layer 71: 1.5377 MeV +- 2.392 MeV (1.6e+02 %) 160.08 keV +- 616.9 keV (3.9e+02 %)
layer 72: 1.5049 MeV +- 2.101 MeV (1.4e+02 %) 148.15 keV +- 430.5 keV (2.9e+02 %)
layer 73: 1.5231 MeV +- 2.14 MeV (1.4e+02 %) 149.51 keV +- 416.4 keV (2.8e+02 %)
layer 74: 1.5324 MeV +- 2.313 MeV (1.5e+02 %) 152.98 keV +- 426.6 keV (2.8e+02 %)
layer 75: 1.5608 MeV +- 2.33 MeV (1.5e+02 %) 163.99 keV +- 797 keV (4.9e+02 %)
layer 76: 1.5359 MeV +- 2.343 MeV (1.5e+02 %) 162.78 keV +- 535.5 keV (3.3e+02 %)
layer 77: 1.4973 MeV +- 2.025 MeV (1.4e+02 %) 158.43 keV +- 807.4 keV (5.1e+02 %)
layer 78: 1.4759 MeV +- 1.572 MeV (1.1e+02 %) 146.14 keV +- 254.3 keV (1.7e+02 %)
layer 79: 1.5384 MeV +- 2.385 MeV (1.6e+02 %) 162.86 keV +- 771.1 keV (4.7e+02 %)
layer 80: 1.5079 MeV +- 2.163 MeV (1.4e+02 %) 153.33 keV +- 566.6 keV (3.7e+02 %)
layer 81: 1.5174 MeV +- 2.076 MeV (1.4e+02 %) 151.6 keV +- 478.9 keV (3.2e+02 %)
layer 82: 1.48 MeV +- 1.611 MeV (1.1e+02 %) 152.35 keV +- 322.6 keV (2.1e+02 %)
layer 83: 1.5351 MeV +- 2.243 MeV (1.5e+02 %) 153.91 keV +- 700.2 keV (4.5e+02 %)
layer 84: 1.5436 MeV +- 2.35 MeV (1.5e+02 %) 150.05 keV +- 516.2 keV (3.4e+02 %)
layer 85: 1.4804 MeV +- 1.733 MeV (1.2e+02 %) 156.73 keV +- 577.2 keV (3.7e+02 %)
layer 86: 1.5107 MeV +- 2.002 MeV (1.3e+02 %) 153.42 keV +- 521.3 keV (3.4e+02 %)
layer 87: 1.5117 MeV +- 2.039 MeV (1.3e+02 %) 155.55 keV +- 438.4 keV (2.8e+02 %)
layer 88: 1.5299 MeV +- 2.245 MeV (1.5e+02 %) 174.7 keV +- 1.018 MeV (5.8e+02 %)
layer 89: 1.5103 MeV +- 1.881 MeV (1.2e+02 %) 162.68 keV +- 759.7 keV (4.7e+02 %)
layer 90: 1.5124 MeV +- 2.075 MeV (1.4e+02 %) 152.15 keV +- 547 keV (3.6e+02 %)
total calor : 149.26 MeV +- 21.54 MeV ( 14 %) 14.19 MeV +- 6.392 MeV ( 45 %)
total calor : 149.6 MeV +- 21.42 MeV ( 14 %) 14.307 MeV +- 6.755 MeV ( 47 %)
------------------------------------------------------------
Leakage : 850.74 MeV +- 21.54 MeV
Eleak/Ebeam =85.1 % ( forward =85.1 % backward = 0 % lateral = 0 %)
Leakage : 850.4 MeV +- 21.42 MeV
Eleak/Ebeam = 85 % ( forward = 85 % backward = 0 % lateral = 0 %)
--------- Ranecu engine status ---------
Initial seed (index) = 0
Current couple of seeds = 250019943, 211278469
Current couple of seeds = 1013644840, 1220674325
----------------------------------------
G4 kernel has come to Quit state.
UserDetectorConstruction deleted.
@@ -96,7 +96,7 @@ G4double SteppingAction::BirksAttenuation(const G4Step* aStep)
//Example of Birk attenuation law in organic scintillators.
//adapted from Geant3 PHYS337. See MIN 80 (1970) 239-244
//
G4Material* material = aStep->GetTrack()->GetMaterial();
const G4Material* material = aStep->GetTrack()->GetMaterial();
G4double birk1 = material->GetIonisation()->GetBirksConstant();
G4double destep = aStep->GetTotalEnergyDeposit();
G4double stepl = aStep->GetStepLength();
+3 -3
View File
@@ -84,12 +84,12 @@ int main(int argc ,char ** argv)
pRunManager -> SetUserInitialization(new BrachyPhysicsList);
// Initialize the detector component
BrachyDetectorConstruction *pDetectorConstruction = new BrachyDetectorConstruction();
auto pDetectorConstruction = new BrachyDetectorConstruction();
pRunManager -> SetUserInitialization(pDetectorConstruction);
// User action initialization
BrachyActionInitialization* actions = new BrachyActionInitialization();
auto actions = new BrachyActionInitialization();
pRunManager->SetUserInitialization(actions);
//Initialize G4 kernel
@@ -103,7 +103,7 @@ int main(int argc ,char ** argv)
G4UImanager* UImanager = G4UImanager::GetUIpointer();
if (argc == 1) // Define UI session for interactive mode.
{
G4UIExecutive* ui = new G4UIExecutive(argc, argv);
auto ui = new G4UIExecutive(argc, argv);
G4cout << " UI session starts ..." << G4endl;
UImanager -> ApplyCommand("/control/execute VisualisationMacro.mac");
ui -> SessionStart();
+13 -7
View File
@@ -1,12 +1,18 @@
-------------------------------------------------------------------
-------------------------------------------------------------------
# Example brachytherapy History
=========================================================
Geant4 - Brachytherapy example
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
Category History file
---------------------
## 2022-05-30 Susanna Guatelli (brachy-V11-00-01)
- Migration to c++11/14/17 features
## 2021-12-10 Ben Morgan (brachy-V11-00-00)
- Change to new Markdown History format
---
# History entries prior to 11.0
07.10.2021 - I. Hrivnacova; brachy-V10-07-04
Migration to new G4AnalysisManager.hh header;
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
Geant4 version Name: geant4-11-00-patch-02 (25-May-2022)
Geant4 version Name: geant4-11-01-beta-01 (30-June-2022)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -41,6 +41,10 @@ Registered graphics systems are:
OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK)
OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK)
RayTracerX (RayTracerX)
Qt3D (Qt3D)
TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK)
TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK)
TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG)
Registering model factories...
@@ -246,6 +250,7 @@ G4ScoringBox : boxMesh_4 --- Shape: Box mesh
LPM effect enabled 1
Enable creation and use of sampling tables 0
Apply cuts on all EM processes 0
Use combined TransportationWithMsc Disabled
Use general process 0
Enable linear polarisation for gamma 0
Enable sampling of quantum entanglement 0
@@ -263,7 +268,7 @@ Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
Livermore data directory livermore
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
=======================================================================
@@ -273,8 +278,9 @@ Step function for light ions (0.1, 0.02 mm)
Step function for general ions (0.1, 0.001 mm)
Lowest e+e- kinetic energy 100 eV
Lowest muon/hadron kinetic energy 1 keV
Use ICRU90 data 1
Fluctuations of dE/dx are enabled 1
Use ICRU90 data 0
Type of fluctuation model 2
Use built-in Birks satuaration 0
Build CSDA range enabled 0
Use cut as a final range enabled 0
@@ -354,10 +360,10 @@ msc: for e- SubType= 10
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
eIoni: for e- XStype:1 SubType=2
eIoni: for e- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
LowEnergyIoni : Emin= 0 eV Emax= 100 keV deltaVI
MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI
@@ -390,10 +396,10 @@ msc: for e+ SubType= 10
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
eIoni: for e+ XStype:1 SubType=2
eIoni: for e+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV deltaVI
@@ -427,10 +433,10 @@ msc: for proton SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
hIoni: for proton XStype:1 SubType=2
hIoni: for proton XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 2 MeV deltaVI
BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
@@ -440,6 +446,7 @@ hBrems: for proton XStype:1 SubType=3
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
===== Limit on energy threshold has been applied
hPairProd: for proton XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
@@ -463,12 +470,12 @@ msc: for GenericIon SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
ionIoni: for GenericIon XStype:1 SubType=2
ionIoni: for GenericIon XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.02
StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
ParamICRU73 : Emin= 0 eV Emax= 100 TeV deltaVI
LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI
nuclearStopping: for GenericIon SubType=8 BuildTable=0
===== EM models for the G4Region DefaultRegionForTheWorld ======
@@ -476,7 +483,8 @@ nuclearStopping: for GenericIon SubType=8 BuildTable=0
======================================================================
====== Radioactive Decay Physics Parameters =======
======================================================================
Max life time 1.4427e+06 ps
min MeanLife (from G4NuclideTable) 1.4427 us
Max life time (from G4DeexPrecoParameters) 1.4427 us
Internal e- conversion flag 1
Stored internal conversion coefficients 1
Enable correlated gamma emission 0
@@ -486,7 +494,7 @@ Auger electron emission enabled 1
Check EM cuts disabled for atomic de-excitation 1
Use Bearden atomic level energies 0
Use ANSTO fluorescence model 0
Threshold for very long decay time at rest 1e+27 ns
Threshold for very long decay time at rest 3.171e+10 y
======================================================================
msc: for alpha SubType= 10
@@ -494,10 +502,10 @@ msc: for alpha SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
ionIoni: for alpha XStype:1 SubType=2
ionIoni: for alpha XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.02
StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
BraggIon : Emin= 0 eV Emax=7.9452 MeV deltaVI
BetheBloch : Emin=7.9452 MeV Emax= 100 TeV deltaVI
@@ -511,10 +519,10 @@ msc: for anti_proton SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
hIoni: for anti_proton XStype:1 SubType=2
hIoni: for anti_proton XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI
BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
@@ -524,6 +532,7 @@ hBrems: for anti_proton XStype:1 SubType=3
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
===== Limit on energy threshold has been applied
hPairProd: for anti_proton XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
@@ -543,10 +552,10 @@ msc: for kaon+ SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
hIoni: for kaon+ XStype:1 SubType=2
hIoni: for kaon+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
@@ -556,6 +565,7 @@ hBrems: for kaon+ XStype:1 SubType=3
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
===== Limit on energy threshold has been applied
hPairProd: for kaon+ XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
@@ -575,10 +585,10 @@ msc: for kaon- SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
hIoni: for kaon- XStype:1 SubType=2
hIoni: for kaon- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
@@ -588,6 +598,7 @@ hBrems: for kaon- XStype:1 SubType=3
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
===== Limit on energy threshold has been applied
hPairProd: for kaon- XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
@@ -607,25 +618,25 @@ msc: for mu+ SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
muIoni: for mu+ XStype:1 SubType=2
muIoni: for mu+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 200 keV deltaVI
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
muBrems: for mu+ XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
===== Limit on energy threshold has been applied
muPairProd: for mu+ XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
Sampling table 21x1001 from 1 GeV to 100 TeV
Sampling table 21x1001 from 0.85 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
@@ -640,25 +651,25 @@ msc: for mu- SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
muIoni: for mu- XStype:1 SubType=2
muIoni: for mu- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
muBrems: for mu- XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
===== Limit on energy threshold has been applied
muPairProd: for mu- XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
Sampling table 21x1001 from 1 GeV to 100 TeV
Sampling table 21x1001 from 0.85 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
@@ -673,10 +684,10 @@ msc: for pi+ SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
hIoni: for pi+ XStype:1 SubType=2
hIoni: for pi+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax=297.505 keV deltaVI
BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
@@ -686,6 +697,7 @@ hBrems: for pi+ XStype:1 SubType=3
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
===== Limit on energy threshold has been applied
hPairProd: for pi+ XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
@@ -705,10 +717,10 @@ msc: for pi- SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
hIoni: for pi- XStype:1 SubType=2
hIoni: for pi- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI
BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
@@ -718,6 +730,7 @@ hBrems: for pi- XStype:1 SubType=3
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
===== Limit on energy threshold has been applied
hPairProd: for pi- XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
@@ -737,28 +750,28 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Index : 0 used in the geometry : Yes
Material : G4_AIR
Range cuts : gamma 50 um e- 50 um e+ 50 um proton 50 um
Energy thresholds : gamma 1 keV e- 1 keV e+ 1 keV proton 5 keV
Energy thresholds : gamma 250 eV e- 250 eV e+ 250 eV proton 5 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 1 used in the geometry : Yes
Material : G4_WATER
Range cuts : gamma 50 um e- 50 um e+ 50 um proton 50 um
Energy thresholds : gamma 1 keV e- 57.0166 keV e+ 56.3668 keV proton 5 keV
Energy thresholds : gamma 250 eV e- 57.1127 keV e+ 56.4729 keV proton 5 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 2 used in the geometry : Yes
Material : Stainless steel 304
Range cuts : gamma 50 um e- 50 um e+ 50 um proton 50 um
Energy thresholds : gamma 4.35516 keV e- 154.603 keV e+ 151.164 keV proton 5 keV
Energy thresholds : gamma 4.35412 keV e- 154.671 keV e+ 151.2 keV proton 5 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 3 used in the geometry : Yes
Material : G4_Ir
Range cuts : gamma 50 um e- 50 um e+ 50 um proton 50 um
Energy thresholds : gamma 26.6596 keV e- 242.241 keV e+ 234.176 keV proton 5 keV
Energy thresholds : gamma 26.6603 keV e- 242.289 keV e+ 234.254 keV proton 5 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
@@ -771,9 +784,10 @@ Using
number of events = 5000
... write file : primary.root - done
... close file : primary.root - done
0 events have been kept for refreshing and/or reviewing.
"/vis/reviewKeptEvents" to review them one by one.
"/vis/enable", then "/vis/viewer/flush" or "/vis/viewer/rebuild" to see them accumulated.
There is 1 h1 histogram
0 with 0 entries: energy spectrum
List them with "/analysis/list".
View them with "/vis/plot" or "/vis/reviewPlots".
/score/dumpQuantityToFile boxMesh_4 eDep EnergyDeposition_Flexi.out
... create file : brachytherapy.root - done
... open analysis file : brachytherapy.root - done
@@ -52,7 +52,7 @@ class BrachyDetectorConstructionFlexi
{
public:
explicit BrachyDetectorConstructionFlexi();
~BrachyDetectorConstructionFlexi();
~BrachyDetectorConstructionFlexi()=default;
void ConstructFlexi(G4VPhysicalVolume*);
// Model the Flexi iridium source
@@ -50,7 +50,7 @@ class BrachyDetectorConstructionI
{
public:
explicit BrachyDetectorConstructionI();
~BrachyDetectorConstructionI();
~BrachyDetectorConstructionI() = default;
void ConstructIodine(G4VPhysicalVolume*);// Construct iodine source
void CleanIodine(); // Clean iodine source
private:
@@ -52,7 +52,7 @@ class BrachyDetectorConstructionLeipzig
{
public:
BrachyDetectorConstructionLeipzig();
~BrachyDetectorConstructionLeipzig();
~BrachyDetectorConstructionLeipzig()=default;
void ConstructLeipzig(G4VPhysicalVolume*);
void CleanLeipzigApplicator();
@@ -53,7 +53,7 @@ class BrachyDetectorConstructionOncura6711
{
public:
explicit BrachyDetectorConstructionOncura6711();
~BrachyDetectorConstructionOncura6711();
~BrachyDetectorConstructionOncura6711()=default;
void ConstructOncura6711(G4VPhysicalVolume*);
// Model the Oncura 6711 reference source
@@ -52,7 +52,7 @@ class BrachyDetectorConstructionTG186
{
public:
explicit BrachyDetectorConstructionTG186();
~BrachyDetectorConstructionTG186();
~BrachyDetectorConstructionTG186()=default;
void ConstructTG186(G4VPhysicalVolume*);
// Model the TG186 reference source
@@ -39,8 +39,8 @@ class G4Run;
class BrachyRunAction : public G4UserRunAction
{
public:
explicit BrachyRunAction();
~BrachyRunAction();
explicit BrachyRunAction()=default;
~BrachyRunAction() override =default;
public:
void BeginOfRunAction(const G4Run*) override;
@@ -35,8 +35,8 @@ class BrachySteppingAction: public G4UserSteppingAction
{
public:
explicit BrachySteppingAction();
~BrachySteppingAction();
explicit BrachySteppingAction()=default;
~BrachySteppingAction()override=default;
void UserSteppingAction(const G4Step*) override;
};
@@ -45,12 +45,10 @@ void BrachyActionInitialization::BuildForMaster() const
void BrachyActionInitialization::Build() const
{
BrachyPrimaryGeneratorAction* primary = new BrachyPrimaryGeneratorAction();
SetUserAction(primary);
SetUserAction(new BrachyPrimaryGeneratorAction());
SetUserAction(new BrachyRunAction());
BrachySteppingAction* stepping = new BrachySteppingAction();
SetUserAction(stepping);
SetUserAction(new BrachySteppingAction());
}
@@ -179,17 +179,17 @@ void BrachyDetectorConstruction::ConstructPhantom()
// World volume
fWorld = new G4Box("World", fWorldSizeX, fWorldSizeY, fWorldSizeZ);
fWorldLog = new G4LogicalVolume(fWorld,air,"WorldLog",0,0,0);
fWorldPhys = new G4PVPlacement(0,G4ThreeVector(),"WorldPhys",fWorldLog,0,false,0);
fWorldLog = new G4LogicalVolume(fWorld,air,"WorldLog",nullptr,nullptr,nullptr);
fWorldPhys = new G4PVPlacement(nullptr,G4ThreeVector(),"WorldPhys",fWorldLog,nullptr,false,0);
// Water Box
fPhantom = new G4Box("Phantom", fPhantomSizeX, fPhantomSizeY, fPhantomSizeZ);
// Logical volume
fPhantomLog = new G4LogicalVolume(fPhantom,water,"PhantomLog",0,0,0);
fPhantomLog = new G4LogicalVolume(fPhantom,water,"PhantomLog",nullptr,nullptr,nullptr);
// Physical volume
fPhantomPhys = new G4PVPlacement(0,G4ThreeVector(), // Position: rotation and translation
fPhantomPhys = new G4PVPlacement(nullptr,G4ThreeVector(), // Position: rotation and translation
"PhantomPhys", // Name
fPhantomLog, // Associated logical volume
fWorldPhys, // Mother volume
@@ -198,7 +198,7 @@ void BrachyDetectorConstruction::ConstructPhantom()
fWorldLog -> SetVisAttributes (G4VisAttributes::GetInvisible());
// Visualization attributes of the phantom
G4VisAttributes* simpleBoxVisAtt = new G4VisAttributes(lblue);
auto simpleBoxVisAtt = new G4VisAttributes(lblue);
simpleBoxVisAtt -> SetVisibility(true);
simpleBoxVisAtt -> SetForceWireframe(true);
fPhantomLog -> SetVisAttributes(simpleBoxVisAtt);
@@ -64,9 +64,6 @@ BrachyDetectorConstructionFlexi::BrachyDetectorConstructionFlexi()
fSteelAttributes(nullptr), fEndAttributes(nullptr), fSimpleIridiumVisAtt(nullptr)
{}
BrachyDetectorConstructionFlexi::~BrachyDetectorConstructionFlexi()
{}
void BrachyDetectorConstructionFlexi::ConstructFlexi(G4VPhysicalVolume* mother)
{
G4NistManager* nist = G4NistManager::Instance();
@@ -84,7 +81,7 @@ void BrachyDetectorConstructionFlexi::ConstructFlexi(G4VPhysicalVolume* mother)
G4Element* elNi = nist -> FindOrBuildElement(Z=28);
constexpr G4double d = 7.999*g/cm3;
G4Material* steelMat = new G4Material("Stainless steel 304",d,6);
auto steelMat = new G4Material("Stainless steel 304",d,6);
steelMat -> AddElement(elMn, 0.02);
steelMat -> AddElement(elSi, 0.01);
steelMat -> AddElement(elCr, 0.19);
@@ -98,7 +95,7 @@ void BrachyDetectorConstructionFlexi::ConstructFlexi(G4VPhysicalVolume* mother)
G4double shellr_max = 0.85 * mm;
G4double shell_length = 3.6 * mm;
fSteelShell = new G4Tubs("steel_shell",shellr_min, shellr_max/2, shell_length/2.,0.*deg,360.*deg);
fLogicalSteelShell = new G4LogicalVolume(fSteelShell, steelMat, "steel_shell_log", 0, 0, 0);
fLogicalSteelShell = new G4LogicalVolume(fSteelShell, steelMat, "steel_shell_log", nullptr, nullptr, nullptr);
fPhysicalSteelShell = new G4PVPlacement(nullptr,G4ThreeVector(0,0,0),"phys_steel_shell", fLogicalSteelShell, mother, false, 0, true);
//Define dimensions of the air gap between Steel shell and Iridium core
@@ -106,7 +103,7 @@ void BrachyDetectorConstructionFlexi::ConstructFlexi(G4VPhysicalVolume* mother)
G4double airr_max = 0.67 * mm;
G4double air_length = 3.6 * mm;
fAirGap = new G4Tubs("air_gap", airr_min, airr_max/2, air_length/2, 0.*deg, 360.*deg);
fLogicalAirGap = new G4LogicalVolume(fAirGap, airMat, "air_gap_log", 0, 0, 0);
fLogicalAirGap = new G4LogicalVolume(fAirGap, airMat, "air_gap_log", nullptr, nullptr, nullptr);
fPhysicalAirGap = new G4PVPlacement(nullptr, G4ThreeVector(0,0,0), "phys_air_gap", fLogicalAirGap, fPhysicalSteelShell, false, 0, true);
//Define the non-cable weld end of the Steel shell
@@ -114,7 +111,7 @@ void BrachyDetectorConstructionFlexi::ConstructFlexi(G4VPhysicalVolume* mother)
G4double end1r_max = 0.85 * mm;
G4double end1length = 0.65 * mm;
fEnd1SteelShell = new G4Tubs("End_1_steel_shell", end1r_min, end1r_max/2, end1length/2.,0.*deg,360.*deg);
fLogicalEnd1SteelShell = new G4LogicalVolume(fEnd1SteelShell, steelMat, "End1_steel_shell_log", 0, 0, 0);
fLogicalEnd1SteelShell = new G4LogicalVolume(fEnd1SteelShell, steelMat, "End1_steel_shell_log", nullptr, nullptr, nullptr);
G4double end1offset_x = 0.0 * mm;
G4double end1offset_y = 0.0 * mm;
G4double end1offset_z = 2.125 * mm;
@@ -127,7 +124,7 @@ void BrachyDetectorConstructionFlexi::ConstructFlexi(G4VPhysicalVolume* mother)
G4double end2r_max2 = 0.5 * mm;
G4double end2length = 0.4 * mm;
fEnd2SteelShell = new G4Cons("End_2_steel_shell", end2r_min2, end2r_max2/2, end2r_min1, end2r_max1/2, end2length/2.0, 0.0, 360.0*deg);
fLogicalEnd2SteelShell = new G4LogicalVolume(fEnd2SteelShell, steelMat, "End2_steel_shell_log", 0, 0, 0);
fLogicalEnd2SteelShell = new G4LogicalVolume(fEnd2SteelShell, steelMat, "End2_steel_shell_log", nullptr, nullptr, nullptr);
G4double end2offset_x = 0.0 * mm;
G4double end2offset_y = 0.0 * mm;
G4double end2offset_z = -2.0 * mm;
@@ -138,7 +135,7 @@ void BrachyDetectorConstructionFlexi::ConstructFlexi(G4VPhysicalVolume* mother)
G4double cable_max = 0.5 * mm;
G4double cablelength = 5.0 * mm;
fCable = new G4Tubs("cable",cable_min, cable_max/2, cablelength/2.,0.*deg,360.*deg);
fLogicalCable = new G4LogicalVolume(fCable, steelMat, "cable_log", 0, 0, 0);
fLogicalCable = new G4LogicalVolume(fCable, steelMat, "cable_log", nullptr, nullptr, nullptr);
G4double cableoffset_x = 0.0 * mm;
G4double cableoffset_y = 0.0 * mm;
G4double cableoffset_z = -4.7 * mm;
@@ -149,7 +146,7 @@ void BrachyDetectorConstructionFlexi::ConstructFlexi(G4VPhysicalVolume* mother)
G4double corer_max = 0.6 * mm;
G4double core_length = 3.5 * mm;
fIridiumCore = new G4Tubs("iridium_core",corer_min, corer_max/2,core_length/2.,0.*deg,360.*deg);
fLogicalIridiumCore = new G4LogicalVolume(fIridiumCore, iridiumMat, "iridium_core_log", 0, 0, 0);
fLogicalIridiumCore = new G4LogicalVolume(fIridiumCore, iridiumMat, "iridium_core_log", nullptr, nullptr, nullptr);
fPhysicalIridiumCore = new G4PVPlacement(nullptr,G4ThreeVector(0,0,0), "phys_iridium_core", fLogicalIridiumCore, fPhysicalAirGap, false, 0, true);
// Visualisations
@@ -63,9 +63,6 @@ fCapsulePhys(nullptr),fCapsuleTipPhys1(nullptr),fCapsuleTipPhys2(nullptr), fIodi
fSimpleIodineVisAtt(nullptr), fSimpleCapsuleVisAtt(nullptr), fSimpleCapsuleTipVisAtt(nullptr)
{}
BrachyDetectorConstructionI::~BrachyDetectorConstructionI()
{}
void BrachyDetectorConstructionI::ConstructIodine(G4VPhysicalVolume* mother)
{
// Model of the Bebig Isoseed I-125 brachy source
@@ -116,7 +113,7 @@ void BrachyDetectorConstructionI::ConstructIodine(G4VPhysicalVolume* mother)
false,
0, true);
G4RotationMatrix* rotateMatrix = new G4RotationMatrix();
auto rotateMatrix = new G4RotationMatrix();
rotateMatrix -> rotateX(180.0*deg);
fCapsuleTipPhys2 = new G4PVPlacement(rotateMatrix,
G4ThreeVector(0,0,-1.84*mm),
@@ -62,9 +62,6 @@ fApplicator2Log(nullptr), fCapsulePhys(nullptr), fCapsuleTipPhys(nullptr), fIrid
fApplicator1Phys(nullptr), fApplicator2Phys(nullptr)
{}
BrachyDetectorConstructionLeipzig::~BrachyDetectorConstructionLeipzig()
{}
void BrachyDetectorConstructionLeipzig::ConstructLeipzig(G4VPhysicalVolume* mother)
{
G4Colour red (1.0, 0.0, 0.0) ;
@@ -82,7 +79,7 @@ void BrachyDetectorConstructionLeipzig::ConstructLeipzig(G4VPhysicalVolume* mot
G4Element* elCr = nist -> FindOrBuildElement(Z=24);
G4Element* elFe = nist -> FindOrBuildElement(Z=26);
G4Element* elNi = nist -> FindOrBuildElement(Z=28);
G4Material* steel = new G4Material("Stainless steel",d,5);
auto steel = new G4Material("Stainless steel",d,5);
steel -> AddElement(elMn, 0.02);
steel -> AddElement(elSi, 0.01);
steel -> AddElement(elCr, 0.19);
@@ -72,9 +72,6 @@ BrachyDetectorConstructionOncura6711::BrachyDetectorConstructionOncura6711()
fOncuraSilverCoreVisAtt(nullptr)
{}
BrachyDetectorConstructionOncura6711::~BrachyDetectorConstructionOncura6711()
{}
void BrachyDetectorConstructionOncura6711::ConstructOncura6711(G4VPhysicalVolume* mother)
{
G4Colour red (1.0, 0.0, 0.0) ;
@@ -87,21 +84,21 @@ G4Material* silver = nist -> FindOrBuildMaterial("G4_Ag");
//Capsule shell
fOncuraCapsule = new G4Tubs("OncuraCapsule",0,0.4*mm,1.875*mm,0.*deg,360.*deg);
fOncuraCapsuleLog = new G4LogicalVolume(fOncuraCapsule,titanium,"OncuraCapsuleLog", 0,0,0);
fOncuraCapsuleLog = new G4LogicalVolume(fOncuraCapsule,titanium,"OncuraCapsuleLog", nullptr,nullptr,nullptr);
fOncuraCapsulePhys = new G4PVPlacement(nullptr, G4ThreeVector(0,0,0),
"OncuraCapsulePhys", fOncuraCapsuleLog,
mother, false, 0, true);
//Capsule tips
fOncuraCapsuleTip1 = new G4Sphere("OncuraCapsuleTip1", 0, 0.4*mm, 0., 360*deg, 0., 90*deg);
fOncuraCapsuleTip1Log = new G4LogicalVolume(fOncuraCapsuleTip1, titanium, "OncuraCapsuleTip1Log",0,0,0);
fOncuraCapsuleTip1Log = new G4LogicalVolume(fOncuraCapsuleTip1, titanium, "OncuraCapsuleTip1Log",nullptr,nullptr,nullptr);
fOncuraCapsuleTip1Phys = new G4PVPlacement(nullptr, G4ThreeVector(0,0,1.875*mm),
"OncuraCapsuleTip1Phys", fOncuraCapsuleTip1Log,
mother, false,
0, true);
fOncuraCapsuleTip2 = new G4Sphere("OncuraCapsuleTip2", 0, 0.4*mm, 0., 360*deg, 90*deg, 90*deg);
fOncuraCapsuleTip2Log = new G4LogicalVolume(fOncuraCapsuleTip2, titanium, "OncuraCapsuleTip2Log",0,0,0);
fOncuraCapsuleTip2Log = new G4LogicalVolume(fOncuraCapsuleTip2, titanium, "OncuraCapsuleTip2Log", nullptr,nullptr,nullptr);
fOncuraCapsuleTip2Phys = new G4PVPlacement(nullptr, G4ThreeVector(0,0,-1.875*mm),
"OncuraCapsuleTip2Phys", fOncuraCapsuleTip2Log,
mother, false,
@@ -68,16 +68,13 @@ BrachyDetectorConstructionTG186::BrachyDetectorConstructionTG186():
fTG186simpleCableVisAtt(nullptr)
{}
BrachyDetectorConstructionTG186::~BrachyDetectorConstructionTG186()
{}
void BrachyDetectorConstructionTG186::ConstructTG186(G4VPhysicalVolume* mother)
{
G4Colour red (1.0, 0.0, 0.0) ;
G4Colour magenta (1.0, 0.0, 1.0) ;
G4NistManager* nist = G4NistManager::Instance();
G4Material* iridium = nist -> FindOrBuildMaterial("G4_Ir");
auto iridium = nist -> FindOrBuildMaterial("G4_Ir");
// Stainless steel (Medical Physics, Vol 25, No 10, Oct 1998)
constexpr G4double d = 8.02*g/cm3;
@@ -87,7 +84,7 @@ void BrachyDetectorConstructionTG186::ConstructTG186(G4VPhysicalVolume* mother)
G4Element* elCr = nist -> FindOrBuildElement(Z=24);
G4Element* elFe = nist -> FindOrBuildElement(Z=26);
G4Element* elNi = nist -> FindOrBuildElement(Z=28);
G4Material* capsuleMat = new G4Material("Stainless steel",d,5);
auto capsuleMat = new G4Material("Stainless steel",d,5);
capsuleMat -> AddElement(elMn, 0.02);
capsuleMat -> AddElement(elSi, 0.01);
capsuleMat -> AddElement(elCr, 0.19);
@@ -49,12 +49,6 @@
#include "G4SystemOfUnits.hh"
#include "globals.hh"
BrachyRunAction::BrachyRunAction()
{}
BrachyRunAction::~BrachyRunAction()
{}
void BrachyRunAction::BeginOfRunAction(const G4Run* aRun)
{
G4cout << "### Run " << aRun -> GetRunID() << " start." << G4endl;
@@ -39,11 +39,6 @@
#include "G4Gamma.hh"
#include "G4SystemOfUnits.hh"
BrachySteppingAction::BrachySteppingAction()
{}
BrachySteppingAction::~BrachySteppingAction()
{}
void BrachySteppingAction::UserSteppingAction(const G4Step* aStep)
{
@@ -87,7 +87,7 @@ if(!ofile)
// retrieve the map
MeshScoreMap fSMap = fScoringMesh -> GetScoreMap();
MeshScoreMap::const_iterator msMapItr = fSMap.find(psName);
auto msMapItr = fSMap.find(psName);
if(msMapItr == fSMap.end())
{
@@ -96,7 +96,7 @@ if(msMapItr == fSMap.end())
return;
}
std::map<G4int, G4StatDouble*> * score = msMapItr -> second-> GetMap();
auto score = msMapItr-> second-> GetMap();
ofile << "# primitive scorer name: " << msMapItr -> first << G4endl;
//
@@ -1,17 +1,22 @@
-------------------------------------------------------------------
-------------------------------------------------------------------
# Example composite_calorimeter History
=========================================================
Geant4 - Composite calorimeter example
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top).
It must **not** be used as a substitute for writing good git commit messages!
Example History file
---------------------
-------------------------------------------------------------------------------
24.02.2022 - G. Cosmo (ccal-V10-07-07)
## 2022-02-14 Gabriele Cosmo (ccal-V11-00-01)
- Fixed compilation warnings on Intel-icx compiler for unused variables.
25.10.2021 - B. Morgan (ccal-V10-07-06)
## 2021-12-10 Ben Morgan (ccal-V11-00-00)
- Change to new Markdown History format.
---
# History entries prior to 11.0
25.10.2021 - B.Morgan (ccal-V10-07-06)
- Use G4StrUtil functions replacing deprecated G4String member functions
18.10.2021 - B. Morgan (ccal-V10-07-05)
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
Geant4 version Name: geant4-11-00-patch-02 (25-May-2022)
Geant4 version Name: geant4-11-01-beta-01 (30-June-2022)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -105,7 +105,8 @@ physicsList->setCut() start.
LPM effect enabled 1
Enable creation and use of sampling tables 0
Apply cuts on all EM processes 0
Use general process 0
Use combined TransportationWithMsc Disabled
Use general process 1
Enable linear polarisation for gamma 0
Enable sampling of quantum entanglement 0
X-section factor for integral approach 0.8
@@ -122,7 +123,7 @@ Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
Livermore data directory livermore
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
=======================================================================
@@ -132,8 +133,9 @@ Step function for light ions (0.2, 0.1 mm)
Step function for general ions (0.2, 0.1 mm)
Lowest e+e- kinetic energy 1 keV
Lowest muon/hadron kinetic energy 1 keV
Fluctuations of dE/dx are enabled 1
Use ICRU90 data 0
Fluctuations of dE/dx are enabled 1
Type of fluctuation model 2
Use built-in Birks satuaration 0
Build CSDA range enabled 0
Use cut as a final range enabled 0
@@ -196,10 +198,10 @@ msc: for e- SubType= 10
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
eIoni: for e- XStype:1 SubType=2
eIoni: for e- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV
@@ -224,10 +226,10 @@ msc: for e+ SubType= 10
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
eIoni: for e+ XStype:1 SubType=2
eIoni: for e+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV
@@ -254,10 +256,10 @@ msc: for proton SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for proton XStype:1 SubType=2
hIoni: for proton XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
@@ -286,10 +288,10 @@ msc: for GenericIon SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
ionIoni: for GenericIon XStype:1 SubType=2
ionIoni: for GenericIon XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.02
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
Stopping Power data for 17 ion/material pairs
===== EM models for the G4Region DefaultRegionForTheWorld ======
BraggIon : Emin= 0 eV Emax= 2 MeV
@@ -300,10 +302,10 @@ msc: for alpha SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
ionIoni: for alpha XStype:1 SubType=2
ionIoni: for alpha XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.02
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
BraggIon : Emin= 0 eV Emax=7.9452 MeV
BetheBloch : Emin=7.9452 MeV Emax= 100 TeV
@@ -313,10 +315,10 @@ msc: for anti_proton SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for anti_proton XStype:1 SubType=2
hIoni: for anti_proton XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
@@ -345,10 +347,10 @@ msc: for kaon+ SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for kaon+ XStype:1 SubType=2
hIoni: for kaon+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax=1.05231 MeV
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
@@ -377,10 +379,10 @@ msc: for kaon- SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for kaon- XStype:1 SubType=2
hIoni: for kaon- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax=1.05231 MeV
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
@@ -409,14 +411,13 @@ msc: for mu+ SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
muIoni: for mu+ XStype:1 SubType=2
muIoni: for mu+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 200 keV
BetheBloch : Emin= 200 keV Emax= 1 GeV
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
muBrems: for mu+ XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
@@ -427,7 +428,7 @@ muBrems: for mu+ XStype:1 SubType=3
muPairProd: for mu+ XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
Sampling table 21x1001 from 1 GeV to 100 TeV
Sampling table 21x1001 from 0.85 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
@@ -442,14 +443,13 @@ msc: for mu- SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
muIoni: for mu- XStype:1 SubType=2
muIoni: for mu- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 200 keV
BetheBloch : Emin= 200 keV Emax= 1 GeV
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
muBrems: for mu- XStype:1 SubType=3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
@@ -460,7 +460,7 @@ muBrems: for mu- XStype:1 SubType=3
muPairProd: for mu- XStype:1 SubType=4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 0
Sampling table 21x1001 from 1 GeV to 100 TeV
Sampling table 21x1001 from 0.85 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
@@ -475,10 +475,10 @@ msc: for pi+ SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for pi+ XStype:1 SubType=2
hIoni: for pi+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax=297.505 keV
BetheBloch : Emin=297.505 keV Emax= 100 TeV
@@ -507,10 +507,10 @@ msc: for pi- SubType= 10
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for pi- XStype:1 SubType=2
hIoni: for pi- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax=297.505 keV
BetheBloch : Emin=297.505 keV Emax= 100 TeV
@@ -544,15 +544,18 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticCHIPS: 0 eV ---> 100 TeV
Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV
Process: neutronInelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
Process: nCapture
Model: nRadCapture: 0 eV ---> 100 TeV
Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV
Process: nKiller
---------------------------------------------------
@@ -562,10 +565,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: B-Inelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for D-
@@ -573,10 +578,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: D-Inelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for GenericIon
@@ -585,6 +592,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for He3
@@ -592,11 +600,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: He3Inelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for alpha
@@ -604,11 +614,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: alphaInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for anti_He3
@@ -617,10 +629,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_He3Inelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -631,10 +645,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_alphaInelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -645,10 +661,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_deuteronInelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -658,10 +676,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: anti_lambdaInelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -672,10 +692,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_neutronInelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -686,10 +708,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_protonInelastic
Model: FTFP: 0 eV ---> 100 TeV
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -700,10 +724,12 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: anti_tritonInelastic
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
Process: hFritiofCaptureAtRest
---------------------------------------------------
@@ -713,11 +739,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: dInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
---------------------------------------------------
Hadronic Processes for e+
@@ -725,6 +753,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for e-
@@ -732,6 +761,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for gamma
@@ -741,6 +771,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: TheoFSGenerator: 3 GeV ---> 100 TeV
Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for kaon+
@@ -748,11 +779,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: kaon+Inelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for kaon-
@@ -760,11 +793,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: kaon-Inelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: hBertiniCaptureAtRest
---------------------------------------------------
@@ -774,11 +809,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: lambdaInelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for mu+
@@ -786,6 +823,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for mu-
@@ -793,6 +831,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
Process: muMinusCaptureAtRest
---------------------------------------------------
@@ -802,11 +841,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticGlauber: 0 eV ---> 100 TeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: pi+Inelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for pi-
@@ -814,11 +855,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticGlauber: 0 eV ---> 100 TeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: pi-Inelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: hBertiniCaptureAtRest
---------------------------------------------------
@@ -828,11 +871,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticCHIPS: 0 eV ---> 100 TeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
Process: protonInelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
---------------------------------------------------
Hadronic Processes for sigma-
@@ -840,11 +885,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: sigma-Inelastic
Model: FTFP: 3 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 6 GeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
Process: hBertiniCaptureAtRest
---------------------------------------------------
@@ -854,11 +901,13 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
Process: tInelastic
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
================================================================
### G4LevelReader: broken transition 0 from level 24 to 24 for isotope Z= 89 A= 219 - use ground level
=======================================================================
@@ -866,18 +915,18 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
=======================================================================
Type of pre-compound inverse x-section 3
Pre-compound model active 1
Pre-compound excitation low energy (MeV) 0.1
Pre-compound excitation high energy (MeV) 30
Pre-compound excitation low energy 100 keV
Pre-compound excitation high energy 30 MeV
Type of de-excitation inverse x-section 3
Type of de-excitation factory Evaporation+GEM
Number of de-excitation channels 68
Min excitation energy (keV) 0.01
Min energy per nucleon for multifragmentation (MeV) 2e+05
Limit excitation energy for Fermi BreakUp (MeV) 20
Min excitation energy 10 eV
Min energy per nucleon for multifragmentation 200 GeV
Limit excitation energy for Fermi BreakUp 20 MeV
Level density (1/MeV) 0.075
Use simple level density model 1
Use discrete excitation energy of the residual 0
Time limit for long lived isomeres (ns) 1
Use discrete excitation energy of the residual 1
Time limit for long lived isomeres 1 ns
Isomer production flag 1
Internal e- conversion flag 1
Store e- internal conversion data 0
@@ -903,42 +952,42 @@ Region <DefaultRegionForParallelWorld> -- -- is not associated to any world.
Index : 0 used in the geometry : Yes
Material : Air
Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um
Energy thresholds : gamma 1 keV e- 1 keV e+ 1 keV proton 70 keV
Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 1 used in the geometry : Yes
Material : Aluminium
Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um
Energy thresholds : gamma 5.84837 keV e- 461.336 keV e+ 445.232 keV proton 70 keV
Energy thresholds : gamma 5.84824 keV e- 461.329 keV e+ 445.233 keV proton 70 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 2 used in the geometry : Yes
Material : Polystyrene
Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um
Energy thresholds : gamma 2.09794 keV e- 281.784 keV e+ 274.958 keV proton 70 keV
Energy thresholds : gamma 2.09748 keV e- 281.786 keV e+ 274.951 keV proton 70 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 3 used in the geometry : Yes
Material : Scintillator
Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um
Energy thresholds : gamma 2.09794 keV e- 281.784 keV e+ 274.958 keV proton 70 keV
Energy thresholds : gamma 2.09748 keV e- 281.786 keV e+ 274.951 keV proton 70 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 4 used in the geometry : Yes
Material : Copper
Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um
Energy thresholds : gamma 20.5442 keV e- 1.03402 MeV e+ 979.817 keV proton 70 keV
Energy thresholds : gamma 20.5458 keV e- 1.03402 MeV e+ 979.819 keV proton 70 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 5 used in the geometry : Yes
Material : E_PbWO4
Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um
Energy thresholds : gamma 75.7807 keV e- 842.499 keV e+ 797.838 keV proton 70 keV
Energy thresholds : gamma 75.7771 keV e- 842.498 keV e+ 797.834 keV proton 70 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
@@ -1029,7 +1078,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Run terminated.
Run Summary
Number of events processed : 20
User=19.120000s Real=19.370654s Sys=0.010000s
User=15.890000s Real=16.088186s Sys=0.010000s
### Run 0 end.
... write file : ccal.root - done
... close file : ccal.root - done
@@ -1047,11 +1096,12 @@ G4SDManager deleted.
EventManager deleted.
Units table cleared.
TransportationManager deleted.
Total navigation history collections cleaned: 49
Total navigation history collections cleaned: 52
G4RNGHelper object is deleted.
================== Deleting memory pools ===================
Pool ID '20G4NavigationLevelRep', size : 0.0692 MB
Pool ID '20G4NavigationLevelRep', size : 0.0779 MB
Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB
Pool ID '17G4DynamicParticle', size : 0.0461 MB
Pool ID '16G4SmartVoxelNode', size : 0.00769 MB
Pool ID '17G4SmartVoxelProxy', size : 0.00385 MB
Pool ID '7G4Event', size : 0.000961 MB
@@ -1059,14 +1109,13 @@ Pool ID '15G4PrimaryVertex', size : 0.000961 MB
Pool ID '17G4PrimaryParticle', size : 0.000961 MB
Pool ID '15G4HCofThisEvent', size : 0.000961 MB
Pool ID '16G4HitsCollection', size : 0.000961 MB
Pool ID '17G4DynamicParticle', size : 0.211 MB
Pool ID '7G4Track', size : 0.421 MB
Pool ID '18G4TouchableHistory', size : 0.00577 MB
Pool ID '7G4Track', size : 0.0913 MB
Pool ID '18G4TouchableHistory', size : 0.00673 MB
Pool ID '15G4CountedObjectIvE', size : 0.000961 MB
Pool ID '17G4ReactionProduct', size : 0.0106 MB
Pool ID '10G4Fragment', size : 0.00481 MB
Pool ID '17G4ReactionProduct', size : 0.0144 MB
Pool ID '10G4Fragment', size : 0.00673 MB
Number of memory pools allocated: 15 of which, static: 0
Dynamic pools deleted: 15 / Total memory freed: 0.74 MB
Dynamic pools deleted: 15 / Total memory freed: 0.26 MB
============================================================
G4Allocator objects are deleted.
UImanager deleted.
+11 -5
View File
@@ -1,10 +1,16 @@
# Example doiPET History
=========================================================
Geant4 - doiPET example
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
Category History file
---------------------
## 2021-12-10 Ben Morgan (doiPET-V11-00-00)
- Change to new Markdown History format
---
# History entries prior to 11.0
14.11.2021 - G. Cosmo;doiPET-V10-07-03
- Fixed compilation warnings for unused private variables in
+57 -54
View File
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
Geant4 version Name: geant4-11-00-patch-02 (25-May-2022)
Geant4 version Name: geant4-11-01-beta-01 (30-June-2022)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -240,7 +240,8 @@ Checking overlaps for volume blockDetector_physicalV:159 (G4Box) ... OK!
LPM effect enabled 1
Enable creation and use of sampling tables 0
Apply cuts on all EM processes 0
Use general process 0
Use combined TransportationWithMsc Disabled
Use general process 1
Enable linear polarisation for gamma 0
Enable sampling of quantum entanglement 0
X-section factor for integral approach 0.8
@@ -257,7 +258,7 @@ Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
Livermore data directory livermore
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
=======================================================================
@@ -267,8 +268,9 @@ Step function for light ions (0.1, 0.02 mm)
Step function for general ions (0.1, 0.001 mm)
Lowest e+e- kinetic energy 100 eV
Lowest muon/hadron kinetic energy 1 keV
Fluctuations of dE/dx are enabled 1
Use ICRU90 data 1
Fluctuations of dE/dx are enabled 1
Type of fluctuation model 2
Use built-in Birks satuaration 0
Build CSDA range enabled 0
Use cut as a final range enabled 0
@@ -322,7 +324,8 @@ Type of PIXE cross section for e+- Livermore
LPM effect enabled 1
Enable creation and use of sampling tables 0
Apply cuts on all EM processes 0
Use general process 0
Use combined TransportationWithMsc Disabled
Use general process 1
Enable linear polarisation for gamma 0
Enable sampling of quantum entanglement 0
X-section factor for integral approach 0.8
@@ -339,7 +342,7 @@ Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
Livermore data directory livermore
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
=======================================================================
@@ -349,8 +352,9 @@ Step function for light ions (0.1, 0.02 mm)
Step function for general ions (0.1, 0.001 mm)
Lowest e+e- kinetic energy 100 eV
Lowest muon/hadron kinetic energy 1 keV
Fluctuations of dE/dx are enabled 1
Use ICRU90 data 1
Fluctuations of dE/dx are enabled 1
Type of fluctuation model 2
Use built-in Birks satuaration 0
Build CSDA range enabled 0
Use cut as a final range enabled 0
@@ -427,10 +431,10 @@ msc: for e- SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=SafetyPlus Rfact=0.03 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
eIoni: for e- XStype:1 SubType=2
eIoni: for e- XStype:3 SubType=2
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV deltaVI
@@ -454,10 +458,10 @@ msc: for e+ SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=SafetyPlus Rfact=0.03 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
eIoni: for e+ XStype:1 SubType=2
eIoni: for e+ XStype:3 SubType=2
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV deltaVI
@@ -485,10 +489,10 @@ msc: for proton SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
hIoni: for proton XStype:1 SubType=2
hIoni: for proton XStype:3 SubType=2
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.2, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 2 MeV deltaVI
BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
@@ -512,7 +516,8 @@ nuclearStopping: for proton SubType=8 BuildTable=0
======================================================================
====== Radioactive Decay Physics Parameters =======
======================================================================
Max life time 1.4427e+06 ps
min MeanLife (from G4NuclideTable) 1.4427 us
Max life time (from G4DeexPrecoParameters) 1.4427 us
Internal e- conversion flag 1
Stored internal conversion coefficients 1
Enable correlated gamma emission 0
@@ -522,7 +527,7 @@ Auger electron emission enabled 1
Check EM cuts disabled for atomic de-excitation 1
Use Bearden atomic level energies 0
Use ANSTO fluorescence model 0
Threshold for very long decay time at rest 1e+27 ns
Threshold for very long decay time at rest 3.171e+10 y
======================================================================
msc: for GenericIon SubType= 10
@@ -530,12 +535,12 @@ msc: for GenericIon SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
ionIoni: for GenericIon XStype:1 SubType=2
ionIoni: for GenericIon XStype:3 SubType=2
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.02
StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
ParamICRU73 : Emin= 0 eV Emax= 100 TeV deltaVI
LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI
nuclearStopping: for GenericIon SubType=8 BuildTable=0
===== EM models for the G4Region DefaultRegionForTheWorld ======
@@ -546,10 +551,10 @@ msc: for alpha SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
ionIoni: for alpha XStype:1 SubType=2
ionIoni: for alpha XStype:3 SubType=2
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.02
StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
BraggIon : Emin= 0 eV Emax=7.9452 MeV deltaVI
BetheBloch : Emin=7.9452 MeV Emax= 100 TeV deltaVI
@@ -563,10 +568,10 @@ msc: for anti_proton SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
hIoni: for anti_proton XStype:1 SubType=2
hIoni: for anti_proton XStype:3 SubType=2
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.2, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI
BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
@@ -589,10 +594,10 @@ msc: for kaon+ SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
hIoni: for kaon+ XStype:1 SubType=2
hIoni: for kaon+ XStype:3 SubType=2
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.2, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
@@ -615,10 +620,10 @@ msc: for kaon- SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
hIoni: for kaon- XStype:1 SubType=2
hIoni: for kaon- XStype:3 SubType=2
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.2, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
@@ -641,14 +646,13 @@ msc: for mu+ SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
muIoni: for mu+ XStype:1 SubType=2
muIoni: for mu+ XStype:3 SubType=2
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.2, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 200 keV deltaVI
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
muBrems: for mu+ XStype:1 SubType=3
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
@@ -659,7 +663,7 @@ muBrems: for mu+ XStype:1 SubType=3
muPairProd: for mu+ XStype:1 SubType=4
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
Sampling table 21x1001 from 1 GeV to 100 TeV
Sampling table 21x1001 from 0.85 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
@@ -668,14 +672,13 @@ msc: for mu- SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
muIoni: for mu- XStype:1 SubType=2
muIoni: for mu- XStype:3 SubType=2
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.2, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
muBrems: for mu- XStype:1 SubType=3
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
@@ -686,7 +689,7 @@ muBrems: for mu- XStype:1 SubType=3
muPairProd: for mu- XStype:1 SubType=4
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
Sampling table 21x1001 from 1 GeV to 100 TeV
Sampling table 21x1001 from 0.85 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
@@ -695,10 +698,10 @@ msc: for pi+ SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
hIoni: for pi+ XStype:1 SubType=2
hIoni: for pi+ XStype:3 SubType=2
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.2, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax=297.505 keV deltaVI
BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
@@ -721,10 +724,10 @@ msc: for pi- SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
hIoni: for pi- XStype:1 SubType=2
hIoni: for pi- XStype:3 SubType=2
dE/dx and range tables from 10 eV to 100 TeV in 260 bins
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
StepFunction=(0.2, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI
BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
@@ -760,28 +763,28 @@ Region <DefaultRegionForParallelWorld> -- -- is not associated to any world.
Index : 0 used in the geometry : Yes
Material : G4_AIR
Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um
Energy thresholds : gamma 1 keV e- 1 keV e+ 1 keV proton 10 keV
Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 10 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 1 used in the geometry : Yes
Material : G4_Al
Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um
Energy thresholds : gamma 2.34147 keV e- 131.214 keV e+ 128.744 keV proton 10 keV
Energy thresholds : gamma 2.34157 keV e- 131.218 keV e+ 128.746 keV proton 10 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 2 used in the geometry : Yes
Material : G4_POLYETHYLENE
Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um
Energy thresholds : gamma 1 keV e- 85.2799 keV e+ 84.1824 keV proton 10 keV
Energy thresholds : gamma 990 eV e- 85.2834 keV e+ 84.1805 keV proton 10 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 3 used in the geometry : Yes
Material : GSO
Range cuts : gamma 100 um e- 100 um e+ 100 um proton 100 um
Energy thresholds : gamma 12.1658 keV e- 196.357 keV e+ 191.153 keV proton 10 keV
Energy thresholds : gamma 12.1654 keV e- 196.364 keV e+ 191.144 keV proton 10 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
@@ -796,14 +799,14 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Voxelisation: top CPU users:
Percent Total CPU System CPU Memory Volume
------- ---------- ---------- -------- ----------
100.00 0.01 0.00 69k world_logicalV
0.00 0.00 0.00 406k airBox_logicalV
100.00 0.01 0.00 406k airBox_logicalV
0.00 0.00 0.00 69k world_logicalV
Voxelisation: top memory users:
Percent Memory Heads Nodes Pointers Total CPU Volume
------- -------- ------ ------ -------- ---------- ----------
85.51 406k 931 5788 8898 0.00 airBox_logicalV
14.49 68k 182 683 3080 0.01 world_logicalV
85.51 406k 931 5788 8898 0.01 airBox_logicalV
14.49 68k 182 683 3080 0.00 world_logicalV
### Run 0 starts.
### Begin of Run 0 start.
@@ -844,7 +847,7 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Run terminated.
Run Summary
Number of events processed : 1000000
User=131.630000s Real=136.199126s Sys=1.870000s
User=127.800000s Real=132.225331s Sys=1.910000s
### End of Run (1000000 events)
G4 kernel has come to Quit state.
@@ -860,23 +863,23 @@ G4SDManager deleted.
EventManager deleted.
Units table cleared.
TransportationManager deleted.
Total navigation history collections cleaned: 14
Total navigation history collections cleaned: 13
G4RNGHelper object is deleted.
================== Deleting memory pools ===================
Pool ID '20G4NavigationLevelRep', size : 0.0202 MB
Pool ID '20G4NavigationLevelRep', size : 0.0183 MB
Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB
Pool ID '17G4DynamicParticle', size : 0.0106 MB
Pool ID '16G4SmartVoxelNode', size : 0.201 MB
Pool ID '17G4SmartVoxelProxy', size : 0.116 MB
Pool ID '7G4Event', size : 0.000961 MB
Pool ID '15G4PrimaryVertex', size : 0.000961 MB
Pool ID '17G4PrimaryParticle', size : 0.000961 MB
Pool ID '17G4DynamicParticle', size : 0.0115 MB
Pool ID '19G4ElectronOccupancy', size : 0.000961 MB
Pool ID '7G4Track', size : 0.0221 MB
Pool ID '7G4Track', size : 0.0211 MB
Pool ID '18G4TouchableHistory', size : 0.00192 MB
Pool ID '15G4CountedObjectIvE', size : 0.000961 MB
Number of memory pools allocated: 12 of which, static: 0
Dynamic pools deleted: 12 / Total memory freed: 0.38 MB
Dynamic pools deleted: 12 / Total memory freed: 0.37 MB
============================================================
G4Allocator objects are deleted.
UImanager deleted.
+16 -16
View File
@@ -1,25 +1,25 @@
-------------------------------------------------------------------
# Example eRosita History
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top).
It must **not** be used as a substitute for writing good git commit messages!
Category History file
---------------------
This file should be used by G4 developers and category coordinators
to briefly summarize all major modifications introduced in the code
and keep track of all category-tags.
It DOES NOT substitute the CVS log-message one should put at every
committal in the CVS repository !
-------------------------------------------------------------------------------
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
## 2022-05-16 Guilherme Amadio (eRosita-V11-00-02)
- Replace getenv() calls for data variables with G4FindDataDir()
14.02.2022, G.Cosmo eRosita-V10-07-02
eRositaTrackerSD: fixed compilation warning on Intel-icx compiler
## 2022-02-14 Gabriele Cosmo (eRosita-V11-00-01)
- eRositaTrackerSD: fixed compilation warning on Intel-icx compiler
for unused variable.
## 2021-12-10 Ben Morgan (eRosita-V11-00-00)
- Change to new Markdown History format.
---
# History entries prior to 11.0
12.05.2021, A.Polsini,F.Longo eRosita-V10-07-01
Migration to multithreading (MT) mode
@@ -1,52 +1,29 @@
0.0830964
0.0883819
0.053096
0.0755275
0.0627224
0.0980893
0.0575166
0.0805331
0.0779987
0.0735015
0.0968243
0.0736342
0.00252187
0.0624823
0.00597738
0.0989788
0.0502061
0.0461603
0.0660617
0.0640981
0.0581482
0.10329
0.0415333
0.0732444
0.0469436
0.0830888
0.144989
0.100607
0.100274
0.138546
0.0686158
0.0297888
0.069119
0.00118105
0.108283
0.0245092
0.0605265
0.082284
0.0667456
0.0263688
0.0792581
0.0829509
0.0739482
0.0815875
0.0513099
0.0692553
0.0967222
0.0789805
0.047963
0.076265
0.0556749
0.0917055
0.0708145
0.0450185
0.0951968
0.0935501
0.0845822
0.0448653
0.0420327
0.110209
0.120244
0.152311
0.000292553
0.0584627
0.06141
0.0429524
0.0733428
0.067259
0.0557964
0.0059584
0.0716725
0.0790327
0.0192941
0.118207
0.0545679
0.0771156
0.0075137
0.101648
0.116807
0.00289853
0.0823836
+21 -19
View File
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
Geant4 version Name: geant4-11-00-patch-02 (25-May-2022)
Geant4 version Name: geant4-11-01-beta-01 (30-June-2022)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -92,6 +92,7 @@ New sensitive detector <TrackerChamberSD> is registered at /eRosita/
LPM effect enabled 1
Enable creation and use of sampling tables 0
Apply cuts on all EM processes 0
Use combined TransportationWithMsc Disabled
Use general process 0
Enable linear polarisation for gamma 0
Enable sampling of quantum entanglement 0
@@ -109,7 +110,7 @@ Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
Livermore data directory livermore
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
=======================================================================
@@ -119,8 +120,9 @@ Step function for light ions (0.2, 0.1 mm)
Step function for general ions (0.2, 0.1 mm)
Lowest e+e- kinetic energy 1 keV
Lowest muon/hadron kinetic energy 1 keV
Fluctuations of dE/dx are enabled 1
Use ICRU90 data 0
Fluctuations of dE/dx are enabled 1
Type of fluctuation model 1
Use built-in Birks satuaration 0
Build CSDA range enabled 0
Use cut as a final range enabled 0
@@ -181,10 +183,10 @@ msc: for e- SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
eIoni: for e- XStype:1 SubType=2
eIoni: for e- XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV
@@ -201,10 +203,10 @@ msc: for e+ SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
eIoni: for e+ XStype:1 SubType=2
eIoni: for e+ XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV
@@ -225,10 +227,10 @@ msc: for proton SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for proton XStype:1 SubType=2
hIoni: for proton XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
@@ -238,10 +240,10 @@ msc: for anti_proton SubType= 10
UrbanMsc : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
hIoni: for anti_proton XStype:1 SubType=2
hIoni: for anti_proton XStype:3 SubType=2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 1, fluct: 1, linLossLim= 0.01
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
@@ -264,21 +266,21 @@ Region <DefaultRegionForParallelWorld> -- -- is not associated to any world.
Index : 0 used in the geometry : Yes
Material : Galactic
Range cuts : gamma 1 um e- 1 um e+ 1 um proton 1 um
Energy thresholds : gamma 1 keV e- 1 keV e+ 1 keV proton 100 eV
Energy thresholds : gamma 250 eV e- 250 eV e+ 250 eV proton 100 eV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 1 used in the geometry : Yes
Material : Copper
Range cuts : gamma 1 um e- 1 um e+ 1 um proton 1 um
Energy thresholds : gamma 1 keV e- 6.54829 keV e+ 6.41707 keV proton 100 eV
Energy thresholds : gamma 250 eV e- 6.73228 keV e+ 6.59805 keV proton 100 eV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 2 used in the geometry : Yes
Material : Silicon
Range cuts : gamma 1 um e- 1 um e+ 1 um proton 1 um
Energy thresholds : gamma 1 keV e- 1 keV e+ 1 keV proton 100 eV
Energy thresholds : gamma 250 eV e- 847.163 eV e+ 834.725 eV proton 100 eV
Region(s) which use this couple :
DefaultRegionForTheWorld
@@ -323,9 +325,9 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Run terminated.
Run Summary
Number of events processed : 10000
User=31.090000s Real=31.396474s Sys=0.010000s
User=32.920000s Real=33.790705s Sys=0.230000s
--- Run 0 (master) end.Event total count = 10000.
User=31.090000s Real=31.397076s Sys=0.010000s
User=32.920000s Real=33.791288s Sys=0.230000s
G4 kernel has come to Quit state.
UserDetectorConstruction deleted.
UserPhysicsList deleted.
@@ -351,13 +353,13 @@ Pool ID '15G4PrimaryVertex', size : 0.000961 MB
Pool ID '17G4PrimaryParticle', size : 0.000961 MB
Pool ID '15G4HCofThisEvent', size : 0.000961 MB
Pool ID '16G4HitsCollection', size : 0.000961 MB
Pool ID '17G4DynamicParticle', size : 0.208 MB
Pool ID '7G4Track', size : 0.415 MB
Pool ID '17G4DynamicParticle', size : 0.203 MB
Pool ID '7G4Track', size : 0.405 MB
Pool ID '18G4TouchableHistory', size : 0.000961 MB
Pool ID '15G4CountedObjectIvE', size : 0.000961 MB
Pool ID '17eRositaTrackerHit', size : 0.000961 MB
Number of memory pools allocated: 14 of which, static: 0
Dynamic pools deleted: 14 / Total memory freed: 0.64 MB
Dynamic pools deleted: 14 / Total memory freed: 0.63 MB
============================================================
G4Allocator objects are deleted.
UImanager deleted.
@@ -267,7 +267,7 @@ std::vector<G4RDAugerTransition> G4RDAugerData::LoadData(G4int Z)
}
G4String name(ost.str());
char* path = std::getenv("G4LEDATA");
const char* path = G4FindDataDir("G4LEDATA");
if (!path)
{
G4String excep = "G4LEDATA environment variable not set";
@@ -137,7 +137,7 @@ void G4RDBremsstrahlungParameters::LoadData(const G4String& name)
// Read parameters
char* path = std::getenv("G4LEDATA");
const char* path = G4FindDataDir("G4LEDATA");
if (path == 0)
{
G4String excep("G4LEDATA environment variable not set!");
@@ -121,7 +121,7 @@ void G4RDDopplerProfile::LoadBiggsP(const G4String& fileName)
ost << fileName << ".dat";
G4String name(ost.str());
char* path = std::getenv("G4LEDATA");
const char* path = G4FindDataDir("G4LEDATA");
if (!path)
{
G4String excep("G4LEDATA environment variable not set!");
@@ -163,7 +163,7 @@ void G4RDDopplerProfile::LoadProfile(const G4String& fileName,G4int Z)
ost << fileName << "-" << Z << ".dat";
G4String name(ost.str());
char* path = std::getenv("G4LEDATA");
const char* path = G4FindDataDir("G4LEDATA");
if (!path)
{
G4String excep("G4LEDATA environment variable not set!");
@@ -312,7 +312,7 @@ size_t G4RDEMDataSet::FindLowerBound(G4double x, G4DataVector* values) const
G4String G4RDEMDataSet::FullFileName(const G4String& name) const
{
char* path = std::getenv("G4LEDATA");
const char* path = G4FindDataDir("G4LEDATA");
if (!path)
G4Exception("G4RDEMDataSet::FullFileName()", "InvalidSetup",
FatalException, "G4LEDATA environment variable not set!");

Some files were not shown because too many files have changed in this diff Show More