Import Geant4 10.3.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-12-09 12:35:28 +01:00
parent 4ec577e5c4
commit a3452e42ac
3514 changed files with 210500 additions and 89628 deletions
+1 -1
View File
@@ -1 +1 @@
See ReleaseNotes
ReleaseNotes
File diff suppressed because it is too large Load Diff
+106
View File
@@ -31,6 +31,112 @@ add this in the documentation for the changed file as [BUGFIX #BUGNUMBER].
----------------------------------------------------------
24th November 2016 - Gunter Folger (cmake-V10-02-37)
- Switch to PhotonEvaporation 4.3
22nd November 2016 - Ben Morgan (cmake-V10-02-36)
- Modules/Geant4MakeRules_cxx.cmake : Change optimization level for MSVC in
Release mode to -Ox for consistentcy with GNUmake system.
18th November 2016 - Ben Morgan (cmake-V10-02-35)
- Modules/Geant4BuildModes.cmake : Change default build type to Release
when using single mode tools like Make/Ninja.
- Modules/Geant4InstallData.cmake : Always convert exported data paths to
native CMake paths. Prevents parse errors on Windows, where native
paths are exported (reported by Brian Smith)
17th November 2016 - Ben Morgan (cmake-V10-02-34)
- Fix bug in Qt4/5 handling on Windows
- Templates/Geant4Config.cmake.in : Move re-find of Qt4 inside overall
Qt4/5 setup section.
- Modules/Geant4BuildProjectConfig.cmake : Remove setting of GEANT4_THIRD_PARTY_IMPORT_SETUP
variable, and replace with dedicated GEANT4_QT4_IMPORT_SETUP variable for Qt
- Export Qt library path to dynamic loader path in Geant4GNUmake environment setup
- Modules/Geant4ToolchainBackwardCompatibility.cmake :
Prepend Qt library path to dynamic loader path, noting obselescense on
macOS.
- Templates/geant4make-skeleton.in : Add expansion variable for Qt dynamic
loader setup.
15th November 2016 - Ben Morgan (cmake-V10-02-33)
- Export USolids/VecGeom compile defs to Geant4GNUmake environment setup scripts
- Modules/Geant4ToolchainBackwardCompatibility.cmake :
Configure export variables based on choice of USolids full/partial
replacement
- Templates/geant4make-skeleton.in : Add entries for required env vars
9th November 2016 - Ivana Hrivnacova (cmake-V10-02-32)
- Added FindDCMTK.cmake needed for extended/medical/DICOM example
8th November 2016 - Gunter Folger (cmake-V10-02-31)
- switch to RadioactiveDecay5.1, PhotonEvaporation4.2, G4ENSDFSTATE2.1
3rd November 2016 - Gunter Folger (cmake-V10-02-30)
- switch to PhotonEvaporation 4.1
31st October 2016 - Ben Morgan (cmake-V10-02-29)
- Modules/Geant4MakeRules_cxx.cmake : fix bug - use correct
CMAKE_CXX_FLAGS_INIT variable to add -pipe argument to.
31st October 2016 - Ben Morgan (cmake-V10-02-28)
- Bugfix #1877
- Templates/geant4-env-skeleton.in : Provide placeholder
variable for adding setting of XercesC libpath
- Modules/Geant4ToolchainBackwardCompatibility.cmake
Extract and export XercesC library directory to geant4.(c)sh
scripts. Add new _g4tc_append_path function to allow appending
of entries to a path-like variable. This ensures paths to third
party libraries appear after the core Geant4 library path which
should prevent clashes.
27th October 2016 - Gunter Folger (cmake-V10-02-27)
- switch to G4EMLOW 6.50
6th October 2016 - Ben Morgan (cmake-V10-02-26)
- Modules/Geant4MakeRules_cxx.cmake : Move all -f optimization options
to Release mode only. Add -fno-math-errno and -ftree-vectorize.
6th October 2016 - Ben Morgan (cmake-V10-02-25)
- Modules/Geant4MakeRules_cxx.cmake : Add -fno-trapping-math to default
flags of GCC/Clang compielrs to assist in auto-vectorization (recommended
by CMS/GCC). Bump optimization level in Release mode to O3 on all supported
compilers.
3rd October 2016- Gunter Folger (cmake-V10-02-24)
- switch to use G4ENSDFSTATE 2.0
(requires tag particles-V10-02-28)
29th September 2016 - Robert Hatcher (cmake-V10-02-23)
- Templates/Geant4Config.cmake.in : No longer use --whole-archive for
G4physicslists on static builds; this was never possible for _WIN32 and recent
physics list factory work makes this untenable on some build platforms.
28th September 2016 - Andrea Dotti (cmake-V10-02-22)
- add option for TEXT output file in FindStatTest.cmake script
19th September 2016 - Gunter Folger (cmake-V10-02-21)
- switch to PhotonEvaporation 4.0
7th September 2016 - Gunter Folger (cmake-V10-02-20)
- switch to G4RadioactiveDecay.5.0
22nd August 2016 - Ben Morgan (cmake-V10-02-19)
- Templates/UseGeant4.cmake : Force core and per-mode flags to those used to
build Geant4. When Geant4 is built with a single mode generator, default
CMAKE_BUILD_TYPE for the client to that used to build this install. This
guarantees matching of librayr/application optimization for most use cases.
NB: No default mode can be provided if Geant4 itself was built/installed using
multimode tool like Xcode/VS. This is because multiple modes may be installed
at once so a sensible default cannot be set (to be looked at further).
- Templates/Geant4Config.cmake.in : Add new Geant4_BUILD_TYPE variable to hold
build type of install when Geant4 is installed using a single mode tool.
- Modules/Geant4BuildProjectConfig.cmake : Set Geant4_BUILD_TYPE to CMAKE_BUILD_TYPE
when building with a single mode tool.
15th August 2016 - Gunter Folger (cmake-V10-02-18)
- switch to G4EMLOW.6.49
17th June 2016 - Gabriele Cosmo (cmake-V10-02-17)
- Modules/Geant4OptionalComponents.cmake: set CLHEP-2.3.3.0 as the required
version for external CLHEP library.
+35
View File
@@ -0,0 +1,35 @@
# Locate DCMTK package
# in a directory defined via DCMTK_DIR CMake or environment variable
# Defines:
#
# DCMTK_INCLUDE_DIRS
# DCMTK_LIBRARIES
# DCMTK_FOUND
# includes
#
find_path(DCMTK_INCLUDE_DIR dcmtk/dcmdata/dcfilefo.h
HINTS $ENV{DCMTK_DIR}/include ${DCMTK_DIR}/include)
set(DCMTK_INCLUDE_DIRS ${DCMTK_INCLUDE_DIR})
# libraries
#
find_library(DCMTK_DCMPSTAT_LIBRARY
NAMES dcmpstat
HINTS "$ENV{DCMTK_DIR}/lib" "${DCMTK_DIR}/lib")
get_filename_component(DCMTK_LIBRARY_DIR
${DCMTK_DCMPSTAT_LIBRARY} DIRECTORY)
set(DCMTK_LIBRARIES
-L${DCMTK_LIBRARY_DIR} -ldcmpstat -ldcmwlm -lijg8 -ldcmdata -ldcmjpeg -ldcmqrdb
-li2d -loflog -ldcmdsig -ldcmjpls -ldcmsr -lijg12 -lofstd -ldcmimage -ldcmnet
-ldcmtls -lijg16 -ldcmjpeg -ldcmrt -lcharls -ldcmimgle)
# handle the QUIETLY and REQUIRED arguments and set DCMTK_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(DCMTK DEFAULT_MSG DCMTK_INCLUDE_DIRS DCMTK_LIBRARIES)
mark_as_advanced(DCMTK_FOUND DCMTK_INCLUDE_DIRS DCMTK_LIBRARIES)
+7 -2
View File
@@ -1,3 +1,4 @@
# Copied from Geant4 installation, need patch
# - Find StatTest
# This module tries to find the StatTest application
# Once done this will define
@@ -13,7 +14,6 @@
#
# STATTEST_ROOT_DIR Root directory to StatTest package
#
#Search application
#Note that the second suggested path is G4 specific...
find_path(STATTEST_APP_DIR
@@ -69,11 +69,12 @@ if(STATTEST_FOUND)
# CONFIG conffile
# INPUT inputfile
# [DEBUG]
# [TEXT] #Input is text file instead of root
# [REFERENCE reference]
# [LABELS label1 label2 ...]
# [IMG filename])
function(STATTEST_ADD_TEST stattest)
CMAKE_PARSE_ARGUMENTS(ARG "DEBUG"
CMAKE_PARSE_ARGUMENTS(ARG "DEBUG;TEXT"
"CONFIG;INPUT;REFERENCE;G4TEST;IMG"
"LABELS" ${ARGN}
)
@@ -101,6 +102,10 @@ if(STATTEST_FOUND)
set(_command ${STATTEST_CMD})
endif()
if(ARG_TEXT)
set(_command ${_command} "-T")
endif()
#Mandatory parameters
set(_command ${_command} ${ARG_CONFIG} ${ARG_INPUT})
if(ARG_REFERENCE)
+1 -1
View File
@@ -70,7 +70,7 @@ endif()
if(NOT CMAKE_CONFIGURATION_TYPES)
if(NOT CMAKE_BUILD_TYPE)
# Default to a Release build if nothing else...
set(CMAKE_BUILD_TYPE RelWithDebInfo
set(CMAKE_BUILD_TYPE Release
CACHE STRING "Choose the type of build, options are: None Release TestRelease MinSizeRel Debug RelWithDebInfo MinSizeRel Maintainer."
FORCE
)
+6 -1
View File
@@ -17,6 +17,11 @@ foreach(_mode DEBUG MINSIZEREL RELEASE RELWITHDEBINFO)
set(Geant4_CXX_FLAGS_${_mode} \"${CMAKE_CXX_FLAGS_${_mode}}\")")
endforeach()
if(NOT CMAKE_CONFIGURATION_TYPES)
set(GEANT4_COMPILER_FLAG_HINTS "${GEANT4_COMPILER_FLAG_HINTS}
set(Geant4_BUILD_TYPE \"${CMAKE_BUILD_TYPE}\")")
endif()
# Core compile definitions...
set(GEANT4_CORE_DEFINITIONS )
@@ -88,7 +93,7 @@ if(GEANT4_USE_QT)
# On WIN32, re-import the Qt targets.
if(WIN32)
set(GEANT4_THIRD_PARTY_IMPORT_SETUP "${GEANT4_THIRD_PARTY_IMPORT_SETUP}
set(GEANT4_QT4_IMPORT_SETUP "
# Qt reimport on WIN32
set(QT_QMAKE_EXECUTABLE ${QT_QMAKE_EXECUTABLE})
set(QT_USE_IMPORTED_TARGETS ON)
+8 -8
View File
@@ -18,31 +18,31 @@ geant4_add_dataset(
# - Low energy electromagnetics
geant4_add_dataset(
NAME G4EMLOW
VERSION 6.48
VERSION 6.50
FILENAME G4EMLOW
EXTENSION tar.gz
ENVVAR G4LEDATA
MD5SUM 844064faa16a063a6a08406dc7895b68
MD5SUM 2a0dbeb2dd57158919c149f33675cce5
)
# - Photon evaporation
geant4_add_dataset(
NAME PhotonEvaporation
VERSION 3.2
VERSION 4.3
FILENAME G4PhotonEvaporation
EXTENSION tar.gz
ENVVAR G4LEVELGAMMADATA
MD5SUM 01d5ba17f615d3def01f7c0c6b19bd69
MD5SUM 012fcdeaa517efebba5770e6c1cbd882
)
# - Radioisotopes
geant4_add_dataset(
NAME RadioactiveDecay
VERSION 4.4.1
VERSION 5.1
FILENAME G4RadioactiveDecay
EXTENSION tar.gz
ENVVAR G4RADIOACTIVEDATA
MD5SUM 0aa6c879c17b26f1ca85d3ac915fc30e
MD5SUM 994853b153c6f805e60e2b83b9ac10e0
)
# - Neutron XS
@@ -98,10 +98,10 @@ geant4_add_dataset(
# - ENSDFSTATE
geant4_add_dataset(
NAME G4ENSDFSTATE
VERSION 1.3.1
VERSION 2.1
FILENAME G4ENSDFSTATE
EXTENSION tar.gz
ENVVAR G4ENSDFSTATEDATA
MD5SUM eddd153110184256a57ce6b753f0d527
MD5SUM 95d970b97885aeafaa8909f29997b0df
)
+2
View File
@@ -185,6 +185,8 @@ function(geant4_export_datasets _type _output)
else()
message(FATAL_ERROR "incorrect argument to geant4_export_datasets")
endif()
# Ensure CMake paths
file(TO_CMAKE_PATH "${_tmpprop}" _tmpprop)
list(APPEND _tuple ${_tmpprop})
get_property(_fname GLOBAL PROPERTY ${_ds}_FILENAME)
+11 -4
View File
@@ -24,9 +24,16 @@ endfunction()
#-----------------------------------------------------------------------
# GNU C++ or Clang/AppleClang Compiler on all(?) platforms
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 -pipe")
# 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")
# 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 -DG4FPE_DEBUG")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "-O2 -DNDEBUG")
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")
@@ -60,7 +67,7 @@ if(MSVC)
# best for native build.
set(CMAKE_CXX_FLAGS_INIT "-GR -EHsc -Zm200 -nologo -D_CONSOLE -D_WIN32 -DWIN32 -DOS -DXPNET -D_CRT_SECURE_NO_DEPRECATE")
set(CMAKE_CXX_FLAGS_DEBUG_INIT "-MDd -Od -Zi")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "-MD -O2 -DNDEBUG")
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")
@@ -77,7 +84,7 @@ endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
set(CMAKE_CXX_FLAGS_INIT "-w1 -Wno-non-virtual-dtor -Wpointer-arith -Wwrite-strings -fp-model precise")
set(CMAKE_CXX_FLAGS_DEBUG_INIT "-g")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "-O2 -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "-O3 -DNDEBUG")
set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -g")
@@ -256,6 +256,43 @@ endif
endif()
endfunction()
#-----------------------------------------------------------------------
# function _g4tc_append_path(<output> <shell> <name> <value>)
# Set output to a string whose value is the shell command to
# append supplied value to the path style environment variable
# name (e.g. 'PATH')
#
function(_g4tc_append_path TEMPLATE_NAME SHELL_FAMILY PATH_VARIABLE
APPEND_VARIABLE)
# -- bourne block
if(${SHELL_FAMILY} STREQUAL "bourne")
# We have to make this section verbatim
set(${TEMPLATE_NAME}
"
if test \"x\$${PATH_VARIABLE}\" = \"x\" ; then
export ${PATH_VARIABLE}=${APPEND_VARIABLE}
else
export ${PATH_VARIABLE}=\${${PATH_VARIABLE}}:${APPEND_VARIABLE}
fi
"
PARENT_SCOPE
)
# -- cshell block
elseif(${SHELL_FAMILY} STREQUAL "cshell")
# Again, this is verbatim so final output is formatted correctly
set(${TEMPLATE_NAME}
"
if ( ! \${?${PATH_VARIABLE}} ) then
setenv ${PATH_VARIABLE} ${APPEND_VARIABLE}
else
setenv ${PATH_VARIABLE} \${${PATH_VARIABLE}}:${APPEND_VARIABLE}
endif
"
PARENT_SCOPE
)
endif()
endfunction()
#-----------------------------------------------------------------------
# MACRO(_g4tc_configure_tc_variables)
# Macro to perform the actual setting of the low level toolchain variables
@@ -408,6 +445,28 @@ macro(_g4tc_configure_tc_variables SHELL_FAMILY SCRIPT_NAME)
set(GEANT4_TC_G4LIB_USE_G3TOG4 "# NOT BUILT WITH G3TOG4 SUPPORT")
endif()
# - USolids/VecGeom
if(GEANT4_USE_USOLIDS)
# Derive base dir from include path, NB, not 100% robust as Geant4GNUmake makes
# significant assumptions about how USolids was installed
get_filename_component(_USOLIDS_INCLUDE_DIR "${USOLIDS_INCLUDE_DIRS}" REALPATH)
get_filename_component(_USOLIDS_BASE_DIR "${_USOLIDS_INCLUDE_DIR}" DIRECTORY)
_g4tc_setenv_command(GEANT4_TC_USOLIDS_BASE_DIR ${SHELL_FAMILY} USOLIDS_BASE_DIR "${_USOLIDS_BASE_DIR}")
if(GEANT4_USE_ALL_USOLIDS)
_g4tc_setenv_command(GEANT4_TC_G4GEOM_USE_USOLIDS ${SHELL_FAMILY} G4GEOM_USE_USOLIDS 1)
set(GEANT4_TC_G4GEOM_USE_PARTIAL_USOLIDS "# FULL USOLIDS REPLACEMENT")
else()
set(GEANT4_TC_G4GEOM_USE_USOLIDS "# PARTIAL USOLIDS REPLACEMENT")
_g4tc_setenv_command(GEANT4_TC_G4GEOM_USE_PARTIAL_USOLIDS ${SHELL_FAMILY} G4GEOM_USE_PARTIAL_USOLIDS 1)
foreach(__g4_usolid_shape ${GEANT4_USE_PARTIAL_USOLIDS_SHAPE_LIST})
_g4tc_setenv_command(GEANT4_TC_G4GEOM_USE_U${__g4_usolid_shape} ${SHELL_FAMILY} G4GEOM_USE_U${__g4_usolid_shape} 1)
endforeach()
endif()
else()
set(GEANT4_TC_USOLIDS_BASE_DIR "# NOT BUILT WITH USOLIDS SUPPORT")
endif()
# - USER INTERFACE AND VISUALIZATION MODULES...
# - Terminals
if(NOT WIN32)
@@ -433,7 +492,12 @@ macro(_g4tc_configure_tc_variables SHELL_FAMILY SCRIPT_NAME)
_g4tc_setenv_command(GEANT4_TC_G4UI_USE_QT ${SHELL_FAMILY} G4UI_USE_QT 1)
_g4tc_setenv_command(GEANT4_TC_G4VIS_USE_OPENGLQT ${SHELL_FAMILY} G4VIS_USE_OPENGLQT 1)
# Might need library setup, but for now recommend system install....
# Dynamic loader path (NB Darwin section is obsolete on El Capitan and higher)
if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
_g4tc_prepend_path(GEANT4_TC_QT_LIB_PATH_SETUP ${SHELL_FAMILY} DYLD_LIBRARY_PATH \${QTLIBPATH})
else()
_g4tc_prepend_path(GEANT4_TC_QT_LIB_PATH_SETUP ${SHELL_FAMILY} LD_LIBRARY_PATH \${QTLIBPATH})
endif()
else()
set(GEANT4_TC_G4UI_USE_QT "# NOT BUILT WITH QT INTERFACE")
endif()
@@ -769,13 +833,26 @@ foreach(_shell bourne;cshell)
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" REALPATH)
get_filename_component(_CLHEP_LIB_DIR "${_CLHEP_LIB_DIR}" DIRECTORY)
_g4tc_prepend_path(GEANT4_TC_CLHEP_LIB_PATH_SETUP
_g4tc_append_path(GEANT4_TC_CLHEP_LIB_PATH_SETUP
${_shell}
${_libpathname}
"${_CLHEP_LIB_DIR}"
)
endif()
# - XercesC
set(GEANT4_TC_XERCESC_LIB_PATH_SETUP "# 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)
_g4tc_append_path(GEANT4_TC_XERCESC_LIB_PATH_SETUP
${_shell}
${_libpathname}
"${_XERCESC_LIB_DIR}"
)
endif()
# - Set data paths
set(GEANT4_ENV_DATASETS )
foreach(_ds ${GEANT4_EXPORTED_DATASETS})
@@ -786,7 +863,7 @@ foreach(_shell bourne;cshell)
# - Set Font Path
set(GEANT4_ENV_TOOLS_FONT_PATH "# FREETYPE SUPPORT NOT AVAILABLE")
if(GEANT4_USE_FREETYPE)
_g4tc_prepend_path(GEANT4_ENV_TOOLS_FONT_PATH
_g4tc_append_path(GEANT4_ENV_TOOLS_FONT_PATH
${_shell}
TOOLS_FONT_PATH
"${TOOLS_FONT_PATH}"
+17 -5
View File
@@ -6,6 +6,9 @@
# Geant4_INCLUDE_DIRS - include directories for Geant4
# Geant4_DEFINITIONS - compile definitions needed to use Geant4
# Geant4_LIBRARIES - libraries to link against
# Geant4_BUILD_TYPE - Build type (e.g. "Release") used to build this
# install. Only set if Geant4 was installed using
# a single mode tool (e.g. make, ninja).
# Geant4_CXX_FLAGS - Recommended CXX flags for the compiler used to
# build the Geant4 libraries.
# Geant4_CXX_FLAGS_<CONFIG> - Recommended CXX flags for build mode CONFIG.
@@ -216,7 +219,7 @@ endif()
# to find the actual package we were built against.
# THIS IS NOT PERFECT, AS IT CANNOT GUARANTEE A BINARY COMPATIBLE
# PACKAGE IS FOUND.
@GEANT4_THIRD_PARTY_IMPORT_SETUP@
#@GEANT4_THIRD_PARTY_IMPORT_SETUP@
#-----------------------------------------------------------------------
# Configure the path(s) to third party headers.
@@ -384,13 +387,12 @@ if(Geant4_qt_FOUND)
find_package(Qt5Widgets REQUIRED PATHS "@Qt5Widgets_DIR@")
find_package(Qt5OpenGL REQUIRED PATHS "@Qt5OpenGL_DIR@")
find_package(Qt5PrintSupport REQUIRED PATHS "@Qt5PrintSupport_DIR@")
else()
# On Windows, must refind Qt4 because this always uses imported targets
@GEANT4_QT4_IMPORT_SETUP@
endif()
if(Geant4_FIND_REQUIRED_qt OR Geant4_FIND_REQUIRED_ui_all OR Geant4_FIND_REQUIRED_vis_all)
# If we have Qt5, we need to refind the components because they use
# imported targets, so linking will not work unless we recreate
# them
list(APPEND
Geant4_DEFINITIONS
-DG4INTY_USE_QT
@@ -561,7 +563,14 @@ endif()
# - Factory registration mechanism in physics_lists requires whole
# archive to be linked when using static libs, so requires wrapping
# with suitable compiler dependent flags
# 2016-05-24: use an alternate means of forcing linking of references for
# static builds. --whole-archive never was implemented for _WIN32
# (appears not to even be possible)
# In order re-implement whole-archive, switch Geant4_FORCE_WHOLE_ARCHIVE ON
set(_geant4_physicslists_library G4physicslists${_geant4_lib_use_suffix})
set(Geant4_FORCE_WHOLE_ARCHIVE OFF)
if( Geant4_FORCE_WHOLE_ARCHIVE )
if(_geant4_lib_use_suffix STREQUAL "-static")
# - Use CMAKE_CXX_COMPILER_ID, which should be reliable enough...
# Though the GNU/Clang/Intel compilers/linkers *should* use identical
@@ -576,9 +585,12 @@ if(_geant4_lib_use_suffix STREQUAL "-static")
else()
# Needs determination of other compiler options.
# NB: MSVC has /OPT:NOREF, but may apply globally...
# reading up on this ... doesn't seem that it applies for subtle reasons
# only real way is to actually reference the static variables
set(_geant4_physicslists_library G4physicslists${_geant4_lib_use_suffix})
endif()
endif()
endif()
# - 'Kernel' libraries
list(APPEND _geant4_internal_libraries
+33 -10
View File
@@ -37,18 +37,41 @@ add_definitions(${Geant4_DEFINITIONS})
include_directories(AFTER SYSTEM ${Geant4_INCLUDE_DIRS})
#-----------------------------------------------------------------------
# Because Geant4 is sensitive to the compiler flags, let's set the base
# 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. However, we append any existing CMake flags in
# case the user wishes to override these (at their own risk).
# Though this may lead to duplication, that should not affect behaviour.
# original makefile system. Users requiring additional flags must append them
# *after* inclusion of this file
#
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}")
set(CMAKE_CXX_FLAGS "${Geant4_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${Geant4_CXX_FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_MINSIZEREL "${Geant4_CXX_FLAGS_MINSIZEREL}")
set(CMAKE_CXX_FLAGS_RELEASE "${Geant4_CXX_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${Geant4_CXX_FLAGS_RELWITHDEBINFO}")
set(CMAKE_EXE_LINKER_FLAGS "${Geant4_EXE_LINKER_FLAGS}")
#-----------------------------------------------------------------------
# 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
+3
View File
@@ -29,6 +29,9 @@
# - CLHEP
@GEANT4_TC_CLHEP_LIB_PATH_SETUP@
# - XercesC
@GEANT4_TC_XERCESC_LIB_PATH_SETUP@
#-----------------------------------------------------------------------
# Resource file paths
# - Datasets
+44
View File
@@ -58,6 +58,26 @@
@GEANT4_TC_UNSET_COMMAND@ G4LIB_BUILD_G3TOG4
@GEANT4_TC_UNSET_COMMAND@ G4LIB_USE_G3TOG4
# - USolids/VecGeom
@GEANT4_TC_UNSET_COMMAND@ USOLIDS_BASE_DIR
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_USOLIDS
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_PARTIAL_USOLIDS
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_UBOX
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_UCONS
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_UEXTRUDEDSOLID
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_UGENERICPOLYCONE
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_UGENERICTRAP
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_UORB
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_UPARABOLOID
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_UPOLYCONE
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_UPOLYHEDRA
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_USPHERE
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_UTET
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_UTRAP
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_UTRD
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_UTORUS
@GEANT4_TC_UNSET_COMMAND@ G4GEOM_USE_UTUBS
# - UI Build and Use options
# USE options only for applications.
@GEANT4_TC_UNSET_COMMAND@ G4UI_NONE
@@ -183,6 +203,29 @@
#
@GEANT4_TC_G4LIB_USE_G3TOG4@
#-----------------------------------------------------------------------
# USolids/VecGeom Setup
#
@GEANT4_TC_USOLIDS_BASE_DIR@
@GEANT4_TC_G4GEOM_USE_USOLIDS@
@GEANT4_TC_G4GEOM_USE_PARTIAL_USOLIDS@
@GEANT4_TC_G4GEOM_USE_UBOX@
@GEANT4_TC_G4GEOM_USE_UCONS@
@GEANT4_TC_G4GEOM_USE_UEXTRUDEDSOLID@
@GEANT4_TC_G4GEOM_USE_UGENERICPOLYCONE@
@GEANT4_TC_G4GEOM_USE_UGENERICTRAP@
@GEANT4_TC_G4GEOM_USE_UORB@
@GEANT4_TC_G4GEOM_USE_UPARABOLOID@
@GEANT4_TC_G4GEOM_USE_UPOLYCONE@
@GEANT4_TC_G4GEOM_USE_UPOLYHEDRA@
@GEANT4_TC_G4GEOM_USE_USPHERE@
@GEANT4_TC_G4GEOM_USE_UTET@
@GEANT4_TC_G4GEOM_USE_UTRAP@
@GEANT4_TC_G4GEOM_USE_UTRD@
@GEANT4_TC_G4GEOM_USE_UTORUS@
@GEANT4_TC_G4GEOM_USE_UTUBS@
#-----------------------------------------------------------------------
# USER INTERFACE AND VISUALIZATION MODULES
#
@@ -200,6 +243,7 @@
@GEANT4_TC_GLQTLIBS@
@GEANT4_TC_G4UI_USE_QT@
@GEANT4_TC_G4VIS_USE_OPENGLQT@
@GEANT4_TC_QT_LIB_PATH_SETUP@
#-----------------------------------------------------------------------
# Wt UI/Vis
+18 -4
View File
@@ -1,4 +1,4 @@
svn log $Id: History 97771 2016-06-09 15:15:27Z gcosmo $
svn log $Id: History 101512 2016-11-18 15:28:47Z gcosmo $
-------------------------------------------------------------------
=========================================================
@@ -16,12 +16,26 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
18th November 2016 Gunter Folger (config-V10-02-07)
- add include for analysis/accumulables
- revert change forcing load of libraries
9th November 2016 Gunter Folger (config-V10-02-06) *tag REJECTED*
- Force loading of symbols for physics_lists/constructor and builders
libraries in granular mode for static libs
17th October 2016 Gabriele Cosmo (config-V10-02-05)
- Changed default optimisation settings to -O3 for g++, clang and icc.
- Added -fno-trapping-math -ftree-vectorize -fno-math-errno to g++ and
clang settings.
- Better factorise -std options in scripts.
8th June 2016 Gunter Folger (config-V10-02-04)
- revert previous change for G4{,NO}STATIC_MODE
- Reverted previous change for G4{,NO}STATIC_MODE
8th June 2016 Gunter Folger (config-V10-02-03)
- delete G4STATIC_MODE and G4NOSTATIC_MODE options in sys/Darwin* and sys/linux*
This is not a complete removal of the option yet...
- Deleted G4STATIC_MODE and G4NOSTATIC_MODE options in sys/Darwin*
and sys/linux*. This is not a complete removal of the option yet...
25th April 2016 Gabriele Cosmo (config-V10-02-02)
- Added Linux-clang.gmk script for use of clang compiler on Linux system.
+2 -1
View File
@@ -1,4 +1,4 @@
# $Id: binmake.gmk 94578 2015-11-25 08:11:03Z gcosmo $
# $Id: binmake.gmk 101512 2016-11-18 15:28:47Z gcosmo $
# ----------------------------------------------------------
# Script defining rules and paths for making binaries.
# First implementation: Gabriele Cosmo, 25/06/1998.
@@ -52,6 +52,7 @@ ifndef INCFLAGS
-I$(G4BASE)/analysis/root/include \
-I$(G4BASE)/analysis/xml/include \
-I$(G4BASE)/analysis/parameters/include \
-I$(G4BASE)/analysis/accumulables/include \
-I$(G4BASE)/global/management/include \
-I$(G4BASE)/global/HEPRandom/include \
-I$(G4BASE)/global/HEPGeometry/include \
+10 -9
View File
@@ -9,26 +9,27 @@ ifeq ($(G4SYSTEM),Darwin-clang)
CXXFLAGS := -Wall -Wno-non-virtual-dtor -Wno-long-long
CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual
CXXFLAGS += -Wno-variadic-macros -Wshadow -pipe
ifdef G4USE_STD11
CXXFLAGS += -std=c++11
endif
ifdef G4USE_STD14
CXXFLAGS += -fno-trapping-math -ftree-vectorize -fno-math-errno
G4USE_STD11 := 1
ifdef G4USE_STD14
CPPFLAGS += -std=c++14
CXXFLAGS += -std=c++14
endif
else
ifdef G4USE_STD17
G4USE_STD11 := 1
CPPFLAGS += -std=c++17
CXXFLAGS += -std=c++17
else
CXXFLAGS += -std=c++11
CPPFLAGS += -std=c++11
endif
endif
ifdef G4MULTITHREADED
CXXFLAGS += -ftls-model=initial-exec -pthread
endif
ifdef G4OPTIMISE
CXXFLAGS += -O2
FCFLAGS := -O2
CCFLAGS := -O2
CXXFLAGS += -O3
FCFLAGS := -O3
CCFLAGS := -O3
else
ifdef G4DEBUG
CXXFLAGS += -g
+10 -10
View File
@@ -10,27 +10,27 @@
ifeq ($(G4SYSTEM),Darwin-g++)
CXX := g++
CXXFLAGS := -Wall -Wno-non-virtual-dtor -Wno-long-long
# CXXFLAGS += -Wunused-parameter -Winline -Wunreachable-code
CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual
CXXFLAGS += -Wno-variadic-macros -Wshadow -pipe
ifdef G4USE_STD11
CXXFLAGS += -std=c++11
endif
ifdef G4USE_STD14
CXXFLAGS += -fno-trapping-math -ftree-vectorize -fno-math-errno
G4USE_STD11 := 1
ifdef G4USE_STD14
CPPFLAGS += -std=c++14
CXXFLAGS += -std=c++14
endif
else
ifdef G4USE_STD17
G4USE_STD11 := 1
CPPFLAGS += -std=c++17
CXXFLAGS += -std=c++17
else
CXXFLAGS += -std=c++11
CPPFLAGS += -std=c++11
endif
endif
# CXXFLAGS += -stdlib=libstdc++
ifdef G4OPTIMISE
CXXFLAGS += -O2
FCFLAGS := -O2
CCFLAGS := -O2
CXXFLAGS += -O3
FCFLAGS := -O3
CCFLAGS := -O3
else
ifdef G4DEBUG
CXXFLAGS += -g
+13 -13
View File
@@ -8,27 +8,27 @@ ifeq ($(G4SYSTEM),Linux-clang)
CXXFLAGS := -Wall -Wno-non-virtual-dtor -Wno-long-long
CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual
CXXFLAGS += -Wno-variadic-macros -Wshadow -pipe
ifdef G4USE_STD11
CXXFLAGS += -fno-trapping-math -ftree-vectorize -fno-math-errno
G4USE_STD11 := 1
ifdef G4USE_STD14
CPPFLAGS += -std=c++14
CXXFLAGS += -std=c++14
else
ifdef G4USE_STD17
CPPFLAGS += -std=c++17
CXXFLAGS += -std=c++17
else
CXXFLAGS += -std=c++11
CPPFLAGS += -std=c++11
endif
ifdef G4USE_STD14
G4USE_STD11 := 1
CPPFLAGS += -std=c++14
CXXFLAGS += -std=c++14
endif
ifdef G4USE_STD17
G4USE_STD11 := 1
CPPFLAGS += -std=c++17
CXXFLAGS += -std=c++17
endif
ifdef G4MULTITHREADED
CXXFLAGS += -ftls-model=initial-exec -pthread
endif
ifdef G4OPTIMISE
CXXFLAGS += -O2
FCFLAGS := -O2
CCFLAGS := -O2
CXXFLAGS += -O3
FCFLAGS := -O3
CCFLAGS := -O3
else
ifdef G4DEBUG
CXXFLAGS += -g
+12 -21
View File
@@ -4,38 +4,29 @@
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 -pipe
CXXFLAGS += -Wshadow
ifdef G4USE_STD11
CPPFLAGS += -std=c++11
CXXFLAGS += -std=c++11
endif
ifdef G4USE_STD14
CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual
CXXFLAGS += -Wno-variadic-macros -Wshadow -pipe
CXXFLAGS += -fno-trapping-math -ftree-vectorize -fno-math-errno
G4USE_STD11 := 1
ifdef G4USE_STD14
CPPFLAGS += -std=c++14
CXXFLAGS += -std=c++14
endif
else
ifdef G4USE_STD17
G4USE_STD11 := 1
CPPFLAGS += -std=c++17
CXXFLAGS += -std=c++17
else
CXXFLAGS += -std=c++11
CPPFLAGS += -std=c++11
endif
endif
#
# Uncomment the following options to activate Pentium4 chip specific
# floating-point operations on the SSE unit. It will allow for more stable
# results (no output differences between debug/optimised runs) and little
# performance improvement (in the order of 2%).
# NOTE: binaries built using these options will NOT be portable cross
# platforms. Will only run on Pentium4-based architectures !
#
# CXXFLAGS += -march=pentium4 -mfpmath=sse
ifdef G4MULTITHREADED
CXXFLAGS += -ftls-model=initial-exec -pthread
endif
ifdef G4OPTIMISE
CXXFLAGS += -O2
FCFLAGS := -O2
CCFLAGS := -O2
CXXFLAGS += -O3
FCFLAGS := -O3
CCFLAGS := -O3
else
ifdef G4DEBUG
CXXFLAGS += -g
+9 -10
View File
@@ -4,27 +4,26 @@
ifeq ($(G4SYSTEM),Linux-icc)
CXX := icc
CXXFLAGS := -ansi -fp-model precise -w1
ifdef G4USE_STD11
CPPFLAGS += -std=c++11
CXXFLAGS += -std=c++11
endif
ifdef G4USE_STD14
G4USE_STD11 := 1
ifdef G4USE_STD14
CPPFLAGS += -std=c++14
CXXFLAGS += -std=c++14
endif
else
ifdef G4USE_STD17
G4USE_STD11 := 1
CPPFLAGS += -std=c++17
CXXFLAGS += -std=c++17
else
CXXFLAGS += -std=c++11
CPPFLAGS += -std=c++11
endif
endif
ifdef G4MULTITHREADED
CXXFLAGS += -ftls-model=initial-exec -pthread
endif
ifdef G4OPTIMISE
CXXFLAGS += -O2
FCFLAGS := -O2
CCFLAGS := -O2
CXXFLAGS += -O3
FCFLAGS := -O3
CCFLAGS := -O3
else
ifdef G4DEBUG
CXXFLAGS += -g
+13 -12
View File
@@ -7,26 +7,27 @@
#
ifeq ($(G4SYSTEM),WIN32-g++)
CXX := g++
CXXFLAGS := -W -Wall -ansi -pedantic -Wno-non-virtual-dtor -Wno-long-long
CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -pipe
ifdef G4USE_STD11
CPPFLAGS += -std=c++11
CXXFLAGS += -std=c++11
endif
ifdef G4USE_STD14
CXXFLAGS := -Wall -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
G4USE_STD11 := 1
ifdef G4USE_STD14
CPPFLAGS += -std=c++14
CXXFLAGS += -std=c++14
endif
else
ifdef G4USE_STD17
G4USE_STD11 := 1
CPPFLAGS += -std=c++17
CXXFLAGS += -std=c++17
else
CXXFLAGS += -std=c++11
CPPFLAGS += -std=c++11
endif
endif
ifdef G4OPTIMISE
CXXFLAGS += -O
FCFLAGS := -O
CCFLAGS := -O
CXXFLAGS += -O3
FCFLAGS := -O3
CCFLAGS := -O3
else
ifdef G4DEBUG
CXXFLAGS += -g
+11 -1
View File
@@ -1,4 +1,4 @@
$Id: History 94509 2015-11-20 10:14:44Z gcosmo $
$Id: History 101892 2016-12-07 08:07:30Z gcosmo $
-------------------------------------------------------------------
=========================================================
@@ -18,6 +18,16 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
envs-V10-02-02 / 7 Dec. 2016 K.Murakami
- remove G4VisAttributes::Invisible as deprecated
envs-V10-02-01 / 21 Nov. 2016 K.Murakami
- fixed version strings in __init_.py
envs-V10-02-00 / 18 Nov. 2016 K.Murakami
- update for 10.3 release
- CMake modified for unit/integration tests with CTest
envs-V10-01-01 / 20 Nov. 2015 K. Murakami
- update CMakeLists.txt, change minimum version requirement to 3.3
- add exported methods requested by enhansment-id 1613
+3 -1
View File
@@ -11,6 +11,8 @@ set(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR})
# debug mode
set(DEBUG FALSE CACHE BOOL "Debug Mode (Debug On)")
enable_testing()
#------------------------------------------------------------------------------
# Do not edit below
#------------------------------------------------------------------------------
@@ -66,4 +68,4 @@ add_subdirectory(site-modules)
add_subdirectory(examples)
# tests
add_subdirectory(tests EXCLUDE_FROM_ALL)
add_subdirectory(tests)
+12
View File
@@ -11,6 +11,18 @@ Geant4Py is a Geant4-Python bridge.
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
7 Dec. 2016 K. Murakami
- remove G4VisAttributes::Invisible as deprecated
21 Nov. 2016 K. Murakami
- fix version strings in __init__.py
18 Nov. 2016 K. Murakami
- update for 10.3 release
- CMake modified for unit/integration tests with CTest
- remove ExN03 physics list
19 Nov. 2015 K. Murakami
- update CMakeLists.txt, change minimum version requirement to 3.3
- add exported methods requested by enhansment-id 1613
File diff suppressed because one or more lines are too long
+12 -10
View File
@@ -24,8 +24,8 @@ ROOT for histogramming/analysis
### Tested Platforms
* CentOS6 (RH6 clones)
* OSX Yosemite
* CentOS7 (RH7 clones)
* OSX (Sierra)
How to Install
@@ -44,13 +44,16 @@ then
# make
# make install
If you want to run the testing component,
# cd build/tests
# make; make install
By default, g4py is installed in \<g4py\>/lib(64) directory.
Before doing tests with CTest, you have to set environment variables
for Geant4 data.
# make
# make install
# ctest
performs automatic unit/integration tests with CTest.
How to Use:
-----------
@@ -61,8 +64,8 @@ Some environment variables are required at run time.
Python module search directories, given by a colon-separated list of directories, like
# export PYTHONPATH=<g4py>/lib64:<g4py>/examples:<g4py>/tests (zsh, bash)
# setenv PYTHONPATH <g4py>/lib64:<g4py>/examples:<g4py>/tests (csh)
# export PYTHONPATH=<g4py>/lib64:<g4py>/lib64/examples:<g4py>/lib64/tests (zsh, bash)
# setenv PYTHONPATH <g4py>/lib64:<g4py>/lib64/examples:<g4py>/lib64/tests (csh)
@@ -70,4 +73,3 @@ Python module search directories, given by a colon-separated list of directories
You can import Geant4Py modules in Python just like
>>> import Geant4
@@ -8,7 +8,8 @@
from Geant4 import *
import g4py.Qmaterials, g4py.NISTmaterials
import g4py.ExN03geom
import g4py.ExN03pl
#import g4py.ExN03pl
import g4py.EMSTDpl
import g4py.ParticleGun, g4py.MedicalBeam
import sys
from time import *
@@ -37,7 +38,6 @@ HepRandom.setTheSeed(20050830L)
# ------------------------------------------------------------------
# normal way for constructing user geometry
exN03geom= g4py.ExN03geom.ExN03DetectorConstruction()
gRunManager.SetUserInitialization(exN03geom)
@@ -53,7 +53,7 @@ gRunManager.SetUserInitialization(exN03geom)
# setup for physics list
# ------------------------------------------------------------------
# normal way for constructing user physics list
exN03PL= g4py.ExN03pl.PhysicsList()
exN03PL= g4py.EMSTDpl.PhysicsListEMstd()
gRunManager.SetUserInitialization(exN03PL)
# 2nd way, short-cut way
@@ -53,7 +53,7 @@ gRunManager.SetUserInitialization(exN03geom)
# setup for physics list
# ------------------------------------------------------------------
# normal way for constructing user physics list
exN03PL= g4py.ExN03pl.PhysicsList()
exN03PL= g4py.EMSTDpl.PhysicsListEMstd()
gRunManager.SetUserInitialization(exN03PL)
# 2nd way, short-cut way
@@ -7,7 +7,7 @@
# Koichi Murakami (KEK/CRC)
# ==================================================================
from Geant4 import *
import g4py.ExN03pl
import g4py.EMSTDpl
import g4py.emcalculator
import EmPlot
import ROOT
@@ -19,7 +19,7 @@ from cStringIO import StringIO
# ==================================================================
def g4_configure() :
EmPlot.Configure()
g4py.ExN03pl.Construct()
g4py.EMSTDpl.Construct()
# -------------------------------------------------------------------
# plot for chaged particles
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: ExN03DetectorConstruction.cc 66892 2013-01-17 10:57:59Z gunter $
// $Id: ExN03DetectorConstruction.cc 101905 2016-12-07 11:34:39Z gunter $
//
//
@@ -344,7 +344,7 @@ G4VPhysicalVolume* ExN03DetectorConstruction::ConstructCalorimeter()
//
// Visualization attributes
//
logicWorld->SetVisAttributes (G4VisAttributes::Invisible);
logicWorld->SetVisAttributes (G4VisAttributes::GetInvisible());
G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0));
simpleBoxVisAtt->SetVisibility(true);
@@ -2,4 +2,3 @@
add_subdirectory(EMSTDpl)
add_subdirectory(ExN01pl)
add_subdirectory(ExN03pl)
@@ -0,0 +1,136 @@
"""
Python module
This module provides classes and functions for scoring reactions
[C] MCVertex:
[C] MCParticle:
[f] read_next_vertex(stream):
Q, 2006
"""
import string
from Geant4.hepunit import *
# ==================================================================
# public symbols
# ==================================================================
__all__ = [ 'MCParticle', 'MCVertex', 'read_next_vertex' ]
# ==================================================================
# class definition
# ==================================================================
# ------------------------------------------------------------------
# MCParticle
# ------------------------------------------------------------------
class MCParticle:
"MC particle"
def __init__(self, aname, aZ, aA, akE, apx, apy, apz):
self.name = aname
self.Z = aZ
self.A = aA
self.kineticE = akE
self.px = apx
self.py = apy
self.pz = apz
def printout(self):
print "--- particle: %s, Z=%2d, A=%2d, kE=%g" % \
(self.name, self.Z, self.A, self.kineticE/MeV)
# ------------------------------------------------------------------
# MCVertex
# ------------------------------------------------------------------
class MCVertex :
"MC vertex"
def __init__(self, ax, ay, az):
self.x = ax
self.y = ay
self.z = az
self.nparticle = 0
self.particle_list = []
def append_particle(self, aparticle):
self.particle_list.append(aparticle)
self.nparticle= self.nparticle+1
def printout(self):
print "@@@ vertex: x=(%g,%g,%g) Nsec=%3d" % \
(self.x/cm, self.y/cm, self.z/cm, self.nparticle)
for p in self.particle_list:
p.printout()
def dump_vertex(self, stream):
aline = "%g %g %g %d\n" % \
(self.x/m, self.y/m, self.z/m, self.nparticle)
stream.write(aline)
for p in self.particle_list:
aline = " %s %d %d %g %g %g %g\n" % \
(p.name, p.Z, p.A, p.kineticE/MeV, p.px/MeV, p.py/MeV, p.pz/MeV)
stream.write(aline)
def __del__(self):
np = len(self.particle_list)
del self.particle_list[0:np]
# ==================================================================
# I/O interface
# ==================================================================
def read_next_vertex(stream):
"read next vertex from a file stream"
line= stream.readline()
if line == "": # EOF
return 0
# reading vertex
data = line.split()
x = string.atof(data[0]) * m
y = string.atof(data[1]) * m
z = string.atof(data[2]) * m
nsec = string.atoi(data[3])
vertex = MCVertex(x,y,z)
# reading particles
for p in range(0, nsec):
data = stream.readline().split()
pname = data[0]
Z = string.atoi(data[1])
A = string.atoi(data[2])
kE = string.atof(data[3]) * MeV
px = string.atof(data[4]) * MeV
py = string.atof(data[5]) * MeV
pz = string.atof(data[6]) * MeV
particle = MCParticle(pname, Z, A, kE, px, py, pz)
vertex.append_particle(particle)
return vertex
# ==================================================================
# test
# ==================================================================
def test():
f = open("reaction.dat")
f.seek(0)
while(1):
vertex = read_next_vertex(f)
if vertex == 0:
break
vertex.printout()
del vertex
f.close()
print ">>> EOF"
# ==================================================================
# main
# ==================================================================
if __name__ == "__main__":
test()
@@ -0,0 +1,189 @@
"""
Python module
This module provides ROOT IO interface for MCScore data
[C] MCScoreROOTIO
[f] loop_tree(tfile, analyze_vertex):
Q, 2006
"""
from array import array
import string
from Geant4.hepunit import *
import mcscore
import ROOT
# ==================================================================
# public symbols
# ==================================================================
__all__ = [ 'MCScoreROOTIO', 'loop_tree' ]
# ==================================================================
# class definition
# ==================================================================
# ------------------------------------------------------------------
# MCScoreROOTIO
# ------------------------------------------------------------------
class MCScoreROOTIO:
"ROOT IO interface for MCScore"
def __init__(self, bsize=250):
self.maxparticle = bsize # buffer size for #particles/vertex
# ------------------------------------------------------------------
def define_tree(self):
"define ROOT tree"
# defining tree header...
self.vtree = ROOT.TTree('vertex', 'mc vertex')
self.ptree = ROOT.TTree('particle', 'mc particle')
# vertex...
self.a_x = array('d', [0.]); self.vtree.Branch('x', self.a_x, 'x/d')
self.a_y = array('d', [0.]); self.vtree.Branch('y', self.a_y, 'y/d')
self.a_z = array('d', [0.]); self.vtree.Branch('z', self.a_z, 'z/d')
#global a_np, a_namelist, a_Z, a_A, a_ke, a_px, a_py, a_pz
self.a_np = array('i', [0]); self.ptree.Branch('np', self.a_np, 'np/i')
self.a_namelist = array('c', self.maxparticle*10*['\0'])
# 10 characters/particle
self.ptree.Branch('namelist', self.a_namelist, 'namelist/C')
self.a_Z = array('i', self.maxparticle*[0])
self.ptree.Branch('Z', self.a_Z, 'Z[np]/I')
self.a_A = array('i', self.maxparticle*[0])
self.ptree.Branch('A', self.a_A, 'A[np]/i')
self.a_ke = array('d', self.maxparticle*[0.])
self.ptree.Branch('kE', self.a_ke, 'kE[np]/d')
self.a_px = array('d', self.maxparticle*[0.])
self.ptree.Branch('px', self.a_px, 'px[np]/d')
self.a_py = array('d', self.maxparticle*[0.])
self.ptree.Branch('py', self.a_py, 'py[np]/d')
self.a_pz = array('d', self.maxparticle*[0.])
self.ptree.Branch('pz', self.a_pz, 'pz[np]/d')
# ------------------------------------------------------------------
def fill_tree(self, vertex):
"fill vertex information to ROOT tree"
# ------------------------------------------------------------------
def push_pname(i0, pname): # local function
n = len(pname)
for i in xrange(n):
self.a_namelist[i0+i] = pname[i]
self.a_namelist[i0+n] = ' '
self.a_x[0] = vertex.x
self.a_y[0] = vertex.y
self.a_z[0] = vertex.z
self.vtree.Fill()
if vertex.nparticle > self.maxparticle:
raise """
*** buffer overflow in #particles/vertex.
*** please increment buffersize in MCScoreROOTIO(bsize).
""", self.maxparticle
idx_namelist = 0
self.a_np[0] = vertex.nparticle
for ip in range(vertex.nparticle):
particle = vertex.particle_list[ip]
push_pname(idx_namelist, particle.name)
idx_namelist += (len(particle.name)+1)
self.a_Z[ip] = particle.Z
self.a_A[ip] = particle.A
self.a_ke[ip] = particle.kineticE
self.a_px[ip] = particle.px
self.a_py[ip] = particle.py
self.a_pz[ip] = particle.pz
self.a_namelist[idx_namelist] = '\0'
self.ptree.Fill()
# ==================================================================
# functions
# ==================================================================
def loop_tree(tfile, analyze_vertex):
"""
loop ROOT tree in a ROOT file.
* analyze_vertex: user function : analyze_vertex(MCVertex)
"""
avtree = tfile.Get("vertex")
aptree = tfile.Get("particle")
# reading vertex...
n_vertex = avtree.GetEntries()
for ivtx in xrange(n_vertex):
avtree.GetEntry(ivtx)
aptree.GetEntry(ivtx)
# vertex
vertex = MCScore.MCVertex(avtree.x, avtree.y, avtree.z)
# reading secondary particles...
nsec = aptree.np
namelist = aptree.namelist
pname = namelist.split()
for ip in xrange(nsec):
particle = MCScore.MCParticle(pname[ip], aptree.Z[ip], aptree.A[ip],
aptree.kE[ip], aptree.px[ip],
aptree.py[ip], aptree.pz[ip])
vertex.append_particle(particle)
analyze_vertex(vertex)
return n_vertex
# ==================================================================
# test
# ==================================================================
def test_t2root():
g = ROOT.TFile("reaction.root", 'recreate')
rootio = MCScoreROOTIO()
rootio.define_tree()
f = open("reaction.dat")
f.seek(0)
while(1):
vertex = MCScore.read_next_vertex(f)
if vertex == 0:
break
# filling ...
rootio.fill_tree(vertex)
del vertex
print ">>> EOF"
f.close()
# closing ROOT file
g.Write()
g.Close()
# ------------------------------------------------------------------
def test_loop():
def my_analysis(vertex):
vertex.printout()
f = ROOT.TFile("reaction.root", 'read')
nv = loop_tree(f, my_analysis)
print "*** # of vertex= ", nv
# ==================================================================
# main
# ==================================================================
if __name__ == "__main__":
test_t2root()
test_loop()
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: pyG4VisAttributes.cc 76884 2013-11-18 12:54:03Z gcosmo $
// $Id: pyG4VisAttributes.cc 101892 2016-12-07 08:07:30Z gcosmo $
// ====================================================================
// pyG4VisAttributes.cc
//
@@ -75,7 +75,6 @@ void export_G4VisAttributes()
.def(init<const G4Colour&>())
.def(init<G4bool, const G4Colour&>())
// ---
.def_readonly("Invisible", &G4VisAttributes::Invisible)
.def("GetInvisible", &G4VisAttributes::GetInvisible,
return_value_policy<reference_existing_object>())
.staticmethod("GetInvisible")
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: pyG4AtomicShells.cc 66892 2013-01-17 10:57:59Z gunter $
// $Id: pyG4AtomicShells.cc 101514 2016-11-18 15:30:57Z gcosmo $
// ====================================================================
// pyG4AtomicShells.cc
//
@@ -40,7 +40,7 @@ using namespace boost::python;
void export_G4AtomicShells()
{
class_<G4AtomicShells, boost::noncopyable>
("G4AtomicShells", "Atomic subshell binding energy table")
("G4AtomicShells", "Atomic subshell binding energy table", no_init)
.def("GetNumberOfShells", &G4AtomicShells::GetNumberOfShells)
.staticmethod("GetNumberOfShells")
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: pyG4Element.cc 76884 2013-11-18 12:54:03Z gcosmo $
// $Id: pyG4Element.cc 101514 2016-11-18 15:30:57Z gcosmo $
// ====================================================================
// pyG4Element.cc
//
@@ -105,8 +105,5 @@ void export_G4Element()
return_internal_reference<>())
// ---
.def("Print", Print)
.def(self == self)
.def(self != self)
;
}
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: pyG4NistManager.cc 76884 2013-11-18 12:54:03Z gcosmo $
// $Id: pyG4NistManager.cc 101514 2016-11-18 15:30:57Z gcosmo $
// ====================================================================
// pyG4NistManager.cc
//
@@ -52,9 +52,9 @@ BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_FindOrBuildElement,
FindOrBuildElement, 1, 2)
// PrintElement
void(G4NistManager::*f1_PrintElement)(const G4String&)
void(G4NistManager::*f1_PrintElement)(const G4String&) const
= &G4NistManager::PrintElement;
void(G4NistManager::*f2_PrintElement)(G4int)
void(G4NistManager::*f2_PrintElement)(G4int) const
= &G4NistManager::PrintElement;
// FindOrBuildMaterial
@@ -148,4 +148,3 @@ void export_G4NistManager()
;
#endif
}
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: pyPhysicsLists.cc 76884 2013-11-18 12:54:03Z gcosmo $
// $Id: pyPhysicsLists.cc 101514 2016-11-18 15:30:57Z gcosmo $
// ====================================================================
// pyPhysicsLists.cc
//
@@ -32,24 +32,28 @@
#include <boost/python.hpp>
#include <vector>
#include <algorithm>
#include "FTF_BIC.hh"
#include "FTFP_BERT.hh"
#include "FTFP_BERT_ATL.hh"
#include "FTFP_BERT_HP.hh"
#include "FTFP_BERT_TRV.hh"
#include "FTFP_INCLXX.hh"
#include "FTFP_INCLXX_HP.hh"
#include "FTF_BIC.hh"
#include "LBE.hh"
#include "NuBeam.hh"
#include "QBBC.hh"
#include "QGS_BIC.hh"
#include "QGSP_BERT.hh"
#include "QGSP_BERT_HP.hh"
#include "QGSP_BIC.hh"
#include "QGSP_BIC_AllHP.hh"
#include "QGSP_BIC_HP.hh"
#include "QGSP_FTFP_BERT.hh"
#include "QGSP_INCLXX.hh"
#include "QGSP_INCLXX_HP.hh"
#include "QGS_BIC.hh"
#include "Shielding.hh"
// macro for adding physics lists
#define ADD_PHYSICS_LIST(plname) \
class_<plname, plname*, bases<G4VUserPhysicsList>, boost::noncopyable> \
@@ -87,22 +91,25 @@ void export_PhysicsLists()
{
def("ListPhysicsList", ListPhysicsList);
ADD_PHYSICS_LIST(FTF_BIC);
ADD_PHYSICS_LIST(FTFP_BERT);
ADD_PHYSICS_LIST(FTFP_BERT_ATL);
ADD_PHYSICS_LIST(FTFP_BERT_HP);
ADD_PHYSICS_LIST(FTFP_BERT_TRV);
ADD_PHYSICS_LIST(FTFP_INCLXX);
ADD_PHYSICS_LIST(FTFP_INCLXX_HP);
ADD_PHYSICS_LIST(FTF_BIC);
ADD_PHYSICS_LIST(LBE);
ADD_PHYSICS_LIST(NuBeam);
ADD_PHYSICS_LIST(QBBC);
ADD_PHYSICS_LIST(QGS_BIC);
ADD_PHYSICS_LIST(QGSP_BERT);
ADD_PHYSICS_LIST(QGSP_BERT_HP);
ADD_PHYSICS_LIST(QGSP_BIC);
ADD_PHYSICS_LIST(QGSP_BIC_AllHP);
ADD_PHYSICS_LIST(QGSP_BIC_HP);
ADD_PHYSICS_LIST(QGSP_FTFP_BERT);
ADD_PHYSICS_LIST(QGSP_INCLXX);
ADD_PHYSICS_LIST(QGSP_INCLXX_HP);
ADD_PHYSICS_LIST(QGS_BIC);
ADD_PHYSICS_LIST(Shielding);
// sort PL vector
@@ -6,7 +6,6 @@ add_library(
${_TARGET} SHARED
pyG4CrossSectionHandler.cc
pyG4EmCalculator.cc
pyG4LossTableManager.cc
pyG4ProcVector.cc
pyG4ProcessManager.cc
pyG4ProcessTable.cc
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: pymodG4processes.cc 66892 2013-01-17 10:57:59Z gunter $
// $Id: pymodG4processes.cc 101514 2016-11-18 15:30:57Z gcosmo $
// ====================================================================
// pymodG4processes.cc
//
@@ -42,7 +42,6 @@ void export_G4VProcess();
void export_G4ProcVector();
void export_G4ProcessType();
void export_G4EmCalculator();
void export_G4LossTableManager();
void export_G4ProductionCutsTable();
void export_G4VCrossSectionHandler();
void export_G4CrossSectionHandler();
@@ -55,7 +54,6 @@ BOOST_PYTHON_MODULE(G4processes)
export_G4ProcVector();
export_G4ProcessType();
export_G4EmCalculator();
export_G4LossTableManager();
export_G4ProductionCutsTable();
export_G4VCrossSectionHandler();
export_G4CrossSectionHandler();
+3 -8
View File
@@ -7,9 +7,9 @@
# This package contains a set of Python interface with Geant4.
# ==================================================================
"""
# $Id: __init__.py 94382 2015-11-13 10:18:01Z gcosmo $
__version__ ='10.2'
__date__ = 'November/2015'
# $Id: __init__.py 101648 2016-11-21 08:42:14Z gcosmo $
__version__ ='10.3'
__date__ = 'November/2016'
__author__ = 'K.Murakami (Koichi.Murakami@kek.jp)'
# import submodules
@@ -87,9 +87,6 @@ gParticleIterator = PyG4ParticleList()
# gProcessTable
gProcessTable = G4ProcessTable.GetProcessTable()
# gLossTableManager
gLossTableManager = G4LossTableManager.Instance()
# gProductionCutsTable
gProductionCutsTable = G4ProductionCutsTable.GetProductionCutsTable()
@@ -243,5 +240,3 @@ def _run_abort(signum, frame):
if (threading.activeCount() == 1):
signal.signal(signal.SIGINT, _run_abort)
+308
View File
@@ -0,0 +1,308 @@
"""
# ==================================================================
# Python module
#
# This module defines physical units and constants used in HEP,
# which are imported from CLHEP library.
#
# Q, 2005
# ==================================================================
"""
#$Id: hepunit.py 66892 2013-01-17 10:57:59Z gunter $
# ==================================================================
# imported from "SystemOfUnits.h"
# ==================================================================
millimeter = 1.
millimeter2 = millimeter*millimeter
millimeter3 = millimeter*millimeter*millimeter
centimeter = 10.*millimeter
centimeter2 = centimeter*centimeter
centimeter3 = centimeter*centimeter*centimeter
meter = 1000.*millimeter
meter2 = meter*meter
meter3 = meter*meter*meter
kilometer = 1000.*meter
kilometer2 = kilometer*kilometer
kilometer3 = kilometer*kilometer*kilometer
parsec = 3.0856775807e+16*meter
micrometer = 1.e-6 *meter
nanometer = 1.e-9 *meter
angstrom = 1.e-10*meter
fermi = 1.e-15*meter
barn = 1.e-28*meter2
millibarn = 1.e-3 *barn
microbarn = 1.e-6 *barn
nanobarn = 1.e-9 *barn
picobarn = 1.e-12*barn
# symbols
mm = millimeter
mm2 = millimeter2
mm3 = millimeter3
cm = centimeter
cm2 = centimeter2
cm3 = centimeter3
m = meter
m2 = meter2
m3 = meter3
km = kilometer
km2 = kilometer2
km3 = kilometer3
pc = parsec
#
# Angle
#
radian = 1.
milliradian = 1.e-3*radian
degree = (3.14159265358979323846/180.0)*radian
steradian = 1.
# symbols
rad = radian
mrad = milliradian
sr = steradian
deg = degree
#
# Time [T]
#
nanosecond = 1.
second = 1.e+9 *nanosecond
millisecond = 1.e-3 *second
microsecond = 1.e-6 *second
picosecond = 1.e-12*second
hertz = 1./second
kilohertz = 1.e+3*hertz
megahertz = 1.e+6*hertz
# symbols
ns = nanosecond
s = second
ms = millisecond
#
# Electric charge [Q]
#
eplus = 1. # positron charge
e_SI = 1.60217733e-19 # positron charge in coulomb
coulomb = eplus/e_SI # coulomb = 6.24150 e+18 * eplus
#
# Energy [E]
#
megaelectronvolt = 1.
electronvolt = 1.e-6*megaelectronvolt
kiloelectronvolt = 1.e-3*megaelectronvolt
gigaelectronvolt = 1.e+3*megaelectronvolt
teraelectronvolt = 1.e+6*megaelectronvolt
petaelectronvolt = 1.e+9*megaelectronvolt
joule = electronvolt/e_SI # joule = 6.24150 e+12 * MeV
# symbols
MeV = megaelectronvolt
eV = electronvolt
keV = kiloelectronvolt
GeV = gigaelectronvolt
TeV = teraelectronvolt
PeV = petaelectronvolt
#
# Mass [E][T^2][L^-2]
#
kilogram = joule*second*second/(meter*meter)
gram = 1.e-3*kilogram
milligram = 1.e-3*gram
# symbols
kg = kilogram
g = gram
mg = milligram
#
# Power [E][T^-1]
#
watt = joule/second # watt = 6.24150 e+3 * MeV/ns
#
# Force [E][L^-1]
#
newton = joule/meter # newton = 6.24150 e+9 * MeV/mm
#
# Pressure [E][L^-3]
#
pascal = newton/m2 # pascal = 6.24150 e+3 * MeV/mm3
bar = 100000*pascal # bar = 6.24150 e+8 * MeV/mm3
atmosphere = 101325*pascal # atm = 6.32420 e+8 * MeV/mm3
#
# Electric current [Q][T^-1]
#
ampere = coulomb/second # ampere = 6.24150 e+9 * eplus/ns
milliampere = 1.e-3*ampere
microampere = 1.e-6*ampere
nanoampere = 1.e-9*ampere
#
# Electric potential [E][Q^-1]
#
megavolt = megaelectronvolt/eplus
kilovolt = 1.e-3*megavolt
volt = 1.e-6*megavolt
#
# Electric resistance [E][T][Q^-2]
#
ohm = volt/ampere # ohm = 1.60217e-16*(MeV/eplus)/(eplus/ns)
#
# Electric capacitance [Q^2][E^-1]
#
farad = coulomb/volt # farad = 6.24150e+24 * eplus/Megavolt
millifarad = 1.e-3*farad
microfarad = 1.e-6*farad
nanofarad = 1.e-9*farad
picofarad = 1.e-12*farad
#
# Magnetic Flux [T][E][Q^-1]
#
weber = volt*second # weber = 1000*megavolt*ns
#
# Magnetic Field [T][E][Q^-1][L^-2]
#
tesla = volt*second/meter2 # tesla =0.001*megavolt*ns/mm2
gauss = 1.e-4*tesla
kilogauss = 1.e-1*tesla
#
# Inductance [T^2][E][Q^-2]
#
henry = weber/ampere # henry = 1.60217e-7*MeV*(ns/eplus)**2
#
# Temperature
#
kelvin = 1.
#
# Amount of substance
#
mole = 1.
#
# Activity [T^-1]
#
becquerel = 1./second
curie = 3.7e+10 * becquerel
#
# Absorbed dose [L^2][T^-2]
#
gray = joule/kilogram
#
# Luminous intensity [I]
#
candela = 1.
#
# Luminous flux [I]
#
lumen = candela*steradian
#
# Illuminance [I][L^-2]
#
lux = lumen/meter2
#
# Miscellaneous
#
perCent = 0.01
perThousand = 0.001
perMillion = 0.000001
# ==================================================================
# imported from "PhysicalConstants.h"
# ==================================================================
pi = 3.14159265358979323846
twopi = 2.*pi
halfpi = pi/2.
pi2 = pi*pi
#
Avogadro = 6.0221367e+23/mole
# c = 299.792458 mm/ns
# c^2 = 898.7404 (mm/ns)^2
c_light = 2.99792458e+8 * m/s
c_squared = c_light * c_light
# h = 4.13566e-12 MeV*ns
# hbar = 6.58212e-13 MeV*ns
# hbarc = 197.32705e-12 MeV*mm
h_Planck = 6.6260755e-34 * joule*s
hbar_Planck = h_Planck/twopi
hbarc = hbar_Planck * c_light
hbarc_squared = hbarc * hbarc
#
electron_charge = - eplus # see SystemOfUnits.h
e_squared = eplus * eplus
# amu_c2 - atomic equivalent mass unit
# amu - atomic mass unit
electron_mass_c2 = 0.51099906 * MeV
proton_mass_c2 = 938.27231 * MeV
neutron_mass_c2 = 939.56563 * MeV
amu_c2 = 931.49432 * MeV
amu = amu_c2/c_squared
# permeability of free space mu0 = 2.01334e-16 Mev*(ns*eplus)^2/mm
# permittivity of free space epsil0 = 5.52636e+10 eplus^2/(MeV*mm)
mu0 = 4*pi*1.e-7 * henry/m
epsilon0 = 1./(c_squared*mu0)
# electromagnetic coupling = 1.43996e-12 MeV*mm/(eplus^2)
elm_coupling = e_squared/(4*pi*epsilon0)
fine_structure_const = elm_coupling/hbarc
classic_electr_radius = elm_coupling/electron_mass_c2
electron_Compton_length = hbarc/electron_mass_c2
Bohr_radius = electron_Compton_length/fine_structure_const
alpha_rcl2 = fine_structure_const * classic_electr_radius \
* classic_electr_radius
twopi_mc2_rcl2 = twopi * electron_mass_c2 \
* classic_electr_radius \
* classic_electr_radius
#
k_Boltzmann = 8.617385e-11 * MeV/kelvin
#
STP_Temperature = 273.15*kelvin
STP_Pressure = 1.*atmosphere
kGasThreshold = 10.*mg/cm3
#
universe_mean_density = 1.e-25*g/cm3
+3 -3
View File
@@ -7,9 +7,9 @@
# This package contains a set of Python interface with Geant4.
# ==================================================================
"""
# $Id: __init__.py 94382 2015-11-13 10:18:01Z gcosmo $
__version__ ='10.2.0'
__date__ = 'November/2015'
# $Id: __init__.py 101648 2016-11-21 08:42:14Z gcosmo $
__version__ ='10.3'
__date__ = 'November/2016'
__author__ = 'K.Murakami (Koichi.Murakami@kek.jp)'
# import submodules
+25 -1
View File
@@ -6,7 +6,7 @@ set(TEST_MODULES_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/tests)
add_subdirectory(test00/module)
add_subdirectory(test01/module)
add_subdirectory(test02/module)
#add_subdirectory(test03/module EXCLUDE_FROM_ALL)
add_subdirectory(test03/module EXCLUDE_FROM_ALL)
add_subdirectory(test04/module)
add_subdirectory(test05/module)
add_subdirectory(test06/module)
@@ -20,3 +20,27 @@ add_subdirectory(test13/module)
# tests for g4py
add_subdirectory(gtest01/module)
# testing
add_subdirectory(test00)
add_subdirectory(test01)
add_subdirectory(test02)
add_subdirectory(test03)
add_subdirectory(test04)
add_subdirectory(test05)
add_subdirectory(test06)
add_subdirectory(test07)
add_subdirectory(test08)
add_subdirectory(test09)
add_subdirectory(test10)
add_subdirectory(test11)
add_subdirectory(test12)
add_subdirectory(test13)
#
add_subdirectory(gtest01)
add_subdirectory(gtest02)
add_subdirectory(gtest03)
add_subdirectory(gtest04)
add_subdirectory(gtest05)
add_subdirectory(gtest06)
add_subdirectory(gtest07)
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
# add teting
add_test(gtest01 python test.py)
configure_file(test.py test.py)
set_property(TEST gtest01
PROPERTY ENVIRONMENT
PYTHONPATH=./module:${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
)
+123
View File
@@ -0,0 +1,123 @@
#!/usr/bin/python
# ==================================================================
# python script for Geant4Py test
#
# gtest01
# - check basic control flow
# ==================================================================
from Geant4 import *
import gtest01
import random
#import thread
# ==================================================================
# user actions in python
# ==================================================================
class MyPrimaryGeneratorAction(G4VUserPrimaryGeneratorAction):
"My Primary Generator Action"
def __init__(self):
G4VUserPrimaryGeneratorAction.__init__(self)
self.particleGun= G4ParticleGun(1)
def GeneratePrimaries(self, event):
#dx= random.gauss(0., 0.1)
dx=0.
self.particleGun.SetParticleMomentumDirection(G4ThreeVector(dx, 0., 1.))
self.particleGun.GeneratePrimaryVertex(event)
# ------------------------------------------------------------------
class MyRunAction(G4UserRunAction):
"My Run Action"
def BeginOfRunAction(self, run):
print "*** #event to be processed (BRA)=",
run.GetNumberOfEventToBeProcessed()
def EndOfRunAction(self, run):
print "*** run end run(ERA)=", run.GetRunID()
# ------------------------------------------------------------------
class MyEventAction(G4UserEventAction):
"My Event Action"
#def BeginOfEventAction(self, event):
#print "*** current event (BEA)=", event.GetEventID()
# pass
#def EndOfEventAction(self, event):
# print "*** current event (EEA)=", event.GetEventID()
# ------------------------------------------------------------------
class MySteppingAction(G4UserSteppingAction):
"My Stepping Action"
def UserSteppingAction(self, step):
#print "*** dE/dx in current step=", step.GetTotalEnergyDeposit()
track= step.GetTrack()
touchable= track.GetTouchable()
pv= touchable.GetVolume()
#print pv.GetCopyNo()
#print touchable.GetReplicaNumber(0)
# ------------------------------------------------------------------
class MyField(G4MagneticField):
"My Magnetic Field"
def GetFieldValue(self, pos, time):
bfield= G4ThreeVector()
bfield.x= 0.
bfield.y= 5.*tesla
bfield.z= 0.
return bfield
# ==================================================================
# main
# ==================================================================
qMaterials= gtest01.QMaterials()
qMaterials.Construct()
qDC= gtest01.QDetectorConstruction()
gRunManager.SetUserInitialization(qDC)
qPL= gtest01.QPhysicsList()
gRunManager.SetUserInitialization(qPL)
# set user actions...
#qPGA= gtest01.QPrimaryGeneratorAction()
myPGA= MyPrimaryGeneratorAction()
gRunManager.SetUserAction(myPGA)
#myRA= MyRunAction()
#gRunManager.SetUserAction(myRA)
myEA= MyEventAction()
gRunManager.SetUserAction(myEA)
mySA= MySteppingAction()
gRunManager.SetUserAction(mySA)
# set particle gun
#ApplyUICommand("/control/execute gun.mac")
#pg= qPGA.GetParticleGun()
pg= myPGA.particleGun
pg.SetParticleByName("e-")
pg.SetParticleEnergy(200.*MeV)
pg.SetParticlePosition(G4ThreeVector(0.,0.,-14.9)*cm)
# magnetic field
fieldMgr= gTransportationManager.GetFieldManager()
myField= G4UniformMagField(G4ThreeVector(0.,10.*tesla,0.))
#myField= MyField()
fieldMgr.SetDetectorField(myField)
fieldMgr.CreateChordFinder(myField)
gRunManager.Initialize()
# visualization
gControlExecute("vis.mac")
# beamOn
gRunManager.BeamOn(10)
#thread.start_new_thread(gRunManager.BeamOn, (100000))
-6
View File
@@ -8,7 +8,6 @@
from Geant4 import *
import gtest01
import random
#import thread
# ==================================================================
# user actions in python
@@ -114,10 +113,5 @@ fieldMgr.CreateChordFinder(myField)
gRunManager.Initialize()
# visualization
gControlExecute("vis.mac")
# beamOn
gRunManager.BeamOn(10)
#thread.start_new_thread(gRunManager.BeamOn, (100000))
@@ -0,0 +1,8 @@
# add teting
add_test(gtest02 python test.py)
configure_file(test.py test.py)
set_property(TEST gtest02
PROPERTY ENVIRONMENT
PYTHONPATH=./module:${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
)
+133
View File
@@ -0,0 +1,133 @@
#!/usr/bin/python
# ==================================================================
# python script for Geant4Py test
#
# gtest02
# - test for using site-module packages
# ==================================================================
from Geant4 import *
import g4py.Qmaterials, g4py.NISTmaterials
import g4py.Qgeom, g4py.ExN01geom, g4py.ExN03geom
import g4py.ExN01pl, g4py.EMSTDpl
import g4py.ParticleGun, g4py.MedicalBeam
# ==================================================================
# user setup
# ==================================================================
# ------------------------------------------------------------------
# Setup-0 (Q)
# ------------------------------------------------------------------
def Setup0():
# simple materials for Qgeom
g4py.Qmaterials.Construct()
# NIST materials
#g4py.NISTmaterials.Construct()
# normal way for constructing user geometry
#qDC= g4py.Qgeom.QDetectorConstruction()
#gRunManager.SetUserInitialization(qDC)
# 2nd way, short-cut way
g4py.Qgeom.Construct()
# primary
global primary_position, primary_direction
primary_position= G4ThreeVector(0.,0., -14.9*cm)
primary_direction= G4ThreeVector(0.2, 0., 1.)
# ------------------------------------------------------------------
# Setup-1 (ExampleN01)
# ------------------------------------------------------------------
def Setup1():
g4py.ExN01geom.Construct()
global primary_position, primary_direction
primary_position= G4ThreeVector(-2.5*m, 0., 0.)
primary_direction= G4ThreeVector(1., 0., 0.)
# ------------------------------------------------------------------
# Setup-3 (ExampleN03)
# ------------------------------------------------------------------
def Setup3():
#exN03geom= g4py.ExN03geom.ExN03DetectorConstruction()
#gRunManager.SetUserInitialization(exN03geom)
g4py.ExN03geom.Construct()
global primary_position, primary_direction
primary_position= G4ThreeVector(-1.*m, 0., 0.)
primary_direction= G4ThreeVector(1., 0., 0.)
# ==================================================================
# main
# ==================================================================
# ------------------------------------------------------------------
# randum number
# ------------------------------------------------------------------
rand_engine= Ranlux64Engine()
HepRandom.setTheEngine(rand_engine)
HepRandom.setTheSeed(20050830L)
# ------------------------------------------------------------------
# user setup
# ------------------------------------------------------------------
Setup0()
#Setup1()
#Setup3()
# ------------------------------------------------------------------
# setup for physics list
# ------------------------------------------------------------------
# normal way for constructing user physics list
#exN01PL= ExN01PhysicsList.ExN01PhysicsList()
#gRunManager.SetUserInitialization(exN01PL)
# 2nd way, short-cut way
# geantino + transportation
#g4py.ExN01pl.Construct()
# electron/gamma standard EM
g4py.EMSTDpl.Construct()
# ------------------------------------------------------------------
# setup for primary generator action
# ------------------------------------------------------------------
# ------------
# Particle Gun
# ------------
# normal way for constructing user physics list
#pgPGA= g4py.ParticleGun.ParticleGunAction()
#gRunManager.SetUserAction(pgPGA)
#pg= pgPGA.GetParticleGun()
# 2nd way, short-cut way
pg= g4py.ParticleGun.Construct()
# set parameters of particle gun
pg.SetParticleByName("e-")
pg.SetParticleEnergy(300.*MeV)
pg.SetParticlePosition(primary_position)
pg.SetParticleMomentumDirection(primary_direction)
# ------------
# Medical Beam
# ------------
#beam= g4py.MedicalBeam.Construct()
# ------------------------------------------------------------------
# go...
# ------------------------------------------------------------------
gRunManager.Initialize()
# visualization
gApplyUICommand("/control/execute vis.mac")
# beamOn
#gRunManager.BeamOn(3)
+1 -5
View File
@@ -125,9 +125,5 @@ pg.SetParticleMomentumDirection(primary_direction)
# ------------------------------------------------------------------
gRunManager.Initialize()
# visualization
gApplyUICommand("/control/execute vis.mac")
# beamOn
#gRunManager.BeamOn(3)
gRunManager.BeamOn(10)
@@ -0,0 +1,8 @@
# add teting
add_test(gtest03 python test.py)
configure_file(test.py test.py)
set_property(TEST gtest03
PROPERTY ENVIRONMENT
PYTHONPATH=./module:${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
)
+100
View File
@@ -0,0 +1,100 @@
#!/usr/bin/python
# ==================================================================
# python script for Geant4Py test
#
# gtest02
# - test for using site-module packages
# ==================================================================
from Geant4 import *
import g4py.NISTmaterials
import g4py.ezgeom
from g4py.ezgeom import G4EzVolume
import g4py.EMSTDpl
import g4py.ParticleGun
# ==================================================================
# intialize
# ==================================================================
def Configure():
# ------------------------------------------------------------------
# setup for materials
# ------------------------------------------------------------------
# simple materials for Qgeom
g4py.NISTmaterials.Construct()
# ------------------------------------------------------------------
# setup for geometry
# ------------------------------------------------------------------
#g4py.Qgeom.Construct()
g4py.ezgeom.Construct() # initialize
# ------------------------------------------------------------------
# setup for physics list
# ------------------------------------------------------------------
g4py.EMSTDpl.Construct()
# ------------------------------------------------------------------
# setup for primary generator action
# ------------------------------------------------------------------
g4py.ParticleGun.Construct()
gControlExecute("gun.mac")
# ==================================================================
# constructing geometry
# ==================================================================
def ConstructGeom():
print "* Constructing geometry..."
# reset world material
air= G4Material.GetMaterial("G4_AIR")
g4py.ezgeom.SetWorldMaterial(air)
# target
global target
target= G4EzVolume("Target")
au= G4Material.GetMaterial("G4_Au")
target.CreateTubeVolume(au, 0., 1.*cm, 1.*mm)
target.PlaceIt(G4ThreeVector(0.,0.,-10.*cm))
# dummy box
global detector_box, detector_box_pv
detector_box= G4EzVolume("DetectorBox")
detector_box.CreateBoxVolume(air, 20.*cm, 20.*cm, 40.*cm)
detector_box_pv= detector_box.PlaceIt(G4ThreeVector(0.,0.,20.*cm))
# calorimeter
global cal
cal= G4EzVolume("Calorimeter")
nai= G4Material.GetMaterial("G4_SODIUM_IODIDE")
cal.CreateBoxVolume(nai, 5.*cm, 5.*cm, 30.*cm)
dd= 5.*cm
for ical in range(-1, 2):
calPos= G4ThreeVector(dd*ical, 0., 0.)
print calPos
cal.PlaceIt(calPos, ical+1, detector_box)
# ==================================================================
# main
# ==================================================================
# ------------------------------------------------------------------
# randum number
# ------------------------------------------------------------------
rand_engine= Ranlux64Engine()
HepRandom.setTheEngine(rand_engine)
HepRandom.setTheSeed(20050830L)
# setup...
Configure()
ConstructGeom()
# ------------------------------------------------------------------
# go...
# ------------------------------------------------------------------
gRunManager.Initialize()
# visualization
gControlExecute("vis.mac")
# beamOn
#gRunManager.BeamOn(3)
+1 -5
View File
@@ -92,9 +92,5 @@ ConstructGeom()
# ------------------------------------------------------------------
gRunManager.Initialize()
# visualization
gControlExecute("vis.mac")
# beamOn
#gRunManager.BeamOn(3)
gRunManager.BeamOn(10)
@@ -0,0 +1,8 @@
# add teting
add_test(gtest04 python test.py)
configure_file(test.py test.py)
set_property(TEST gtest04
PROPERTY ENVIRONMENT
PYTHONPATH=./module:${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
)
@@ -0,0 +1,8 @@
# add teting
add_test(gtest05 python test.py)
configure_file(test.py test.py)
set_property(TEST gtest05
PROPERTY ENVIRONMENT
PYTHONPATH=./module:${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
)
@@ -0,0 +1,8 @@
# add teting
add_test(gtest06 python test.py)
configure_file(test.py test.py)
set_property(TEST gtest06
PROPERTY ENVIRONMENT
PYTHONPATH=./module:${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
)
@@ -0,0 +1,8 @@
# add teting
add_test(gtest07 python test.py)
configure_file(test.py test.py)
set_property(TEST gtest07
PROPERTY ENVIRONMENT
PYTHONPATH=./module:${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
)
@@ -0,0 +1,5 @@
# add teting
add_test(test00 python test.py)
configure_file(test.py test.py)
set_property(TEST test00 PROPERTY ENVIRONMENT PYTHONPATH=./module)
@@ -0,0 +1,5 @@
# add teting
add_test(test01 python test.py)
configure_file(test.py test.py)
set_property(TEST test01 PROPERTY ENVIRONMENT PYTHONPATH=./module)
@@ -0,0 +1,5 @@
# add teting
add_test(test02 python test.py)
configure_file(test.py test.py)
set_property(TEST test02 PROPERTY ENVIRONMENT PYTHONPATH=./module)
@@ -0,0 +1,3 @@
# add teting
add_test(test03 echo ok)
@@ -0,0 +1,9 @@
# add teting
add_test(test04-1 python test1.py)
configure_file(test1.py test1.py)
set_property(TEST test04-1 PROPERTY ENVIRONMENT PYTHONPATH=./module)
#
add_test(test04-2 python test2.py)
configure_file(test2.py test2.py)
set_property(TEST test04-2 PROPERTY ENVIRONMENT PYTHONPATH=./module)
@@ -0,0 +1,5 @@
# add teting
add_test(test05 python test.py)
configure_file(test.py test.py)
set_property(TEST test05 PROPERTY ENVIRONMENT PYTHONPATH=./module)
+3 -5
View File
@@ -33,9 +33,7 @@ print "CMethod(1,10.)=", a.CMethod(1,10.)
print "CMethod(1,10.,100.)=", a.CMethod(1,10.,100.)
print ""
print "*** ERRORS!! ***"
try:
a.AMethod(1,2,3) # error
except:
print "*** ERRORS!! ***"
@@ -0,0 +1,5 @@
# add teting
add_test(test06 python test.py)
configure_file(test.py test.py)
set_property(TEST test06 PROPERTY ENVIRONMENT PYTHONPATH=./module)
+4 -4
View File
@@ -48,8 +48,8 @@ print myx.PVMethod()
print ""
x= test06.XBase()
print "*** Runtime ERROR will occur!" \
" because pure virtual function is called."
try:
x.PVMethod()
except:
print "*** Runtime ERROR occured!" \
" because pure virtual function is called."
@@ -0,0 +1,5 @@
# add teting
add_test(test07 python test.py)
configure_file(test.py test.py)
set_property(TEST test07 PROPERTY ENVIRONMENT PYTHONPATH=./module)
@@ -0,0 +1,5 @@
# add teting
add_test(test08 python test.py)
configure_file(test.py test.py)
set_property(TEST test08 PROPERTY ENVIRONMENT PYTHONPATH=./module)
@@ -0,0 +1,5 @@
# add teting
add_test(test09 python test.py)
configure_file(test.py test.py)
set_property(TEST test09 PROPERTY ENVIRONMENT PYTHONPATH=./module)
@@ -0,0 +1,5 @@
# add teting
add_test(test10 python test.py)
configure_file(test.py test.py)
set_property(TEST test10 PROPERTY ENVIRONMENT PYTHONPATH=./module)
@@ -0,0 +1,5 @@
# add teting
add_test(test11 python test.py)
configure_file(test.py test.py)
set_property(TEST test11 PROPERTY ENVIRONMENT PYTHONPATH=./module)
+4 -1
View File
@@ -7,5 +7,8 @@
import test11
a= test11.AClass(1)
b= test11.AClass()
try:
b = test11.AClass()
except:
print "AClass default constructor is not allowed."
@@ -0,0 +1,5 @@
# add teting
add_test(test12 python test.py)
configure_file(test.py test.py)
set_property(TEST test12 PROPERTY ENVIRONMENT PYTHONPATH=./module)
@@ -0,0 +1,5 @@
# add teting
add_test(test13 python test.py)
configure_file(test.py test.py)
set_property(TEST test13 PROPERTY ENVIRONMENT PYTHONPATH=./module)
+124 -124
View File
@@ -1,14 +1,14 @@
10
dir
97991
svn+ssh://svn.cern.ch/reps/geant4/branches/geant4/_symbols/geant4-10-03-beta-01_branch/examples/.doxygen
101938
svn+ssh://svn.cern.ch/reps/geant4/branches/geant4/_symbols/geant4-10-03_branch/examples/.doxygen
svn+ssh://svn.cern.ch/reps/geant4
2015-11-30T08:17:35.478525Z
94627
2016-11-24T13:36:54.897332Z
101752
gcosmo
has-props
@@ -66,10 +66,10 @@ file
2015-11-30T08:17:04.871201Z
043891e899a909487e5a9ec59b570b0f
2015-11-24T09:17:12.168368Z
94561
2016-11-24T13:36:55.732050Z
245b372a0f7da4f2adf396e4014ae4fb
2016-11-24T13:36:54.897332Z
101752
gcosmo
has-props
@@ -92,7 +92,7 @@ has-props
4594
5947
Doxymodules_exoticphysics.h
file
@@ -100,7 +100,7 @@ file
2015-11-30T08:17:04.876201Z
2016-11-24T13:36:09.909638Z
1fccc265e8952ba57a0c9bc7830b187b
2014-11-13T09:10:24.787758Z
86514
@@ -202,10 +202,10 @@ file
2015-11-30T08:17:04.902202Z
f4f839507de57a84a357edb72cb97ce9
2015-11-30T08:17:35.478525Z
94627
2016-11-24T13:36:09.947638Z
339126c2f3fc3aafed359daf2136eee8
2016-11-24T13:36:54.897332Z
101752
gcosmo
@@ -228,7 +228,7 @@ gcosmo
119439
120436
Doxyfile_standalone
file
@@ -304,10 +304,10 @@ file
2015-11-30T08:17:04.915202Z
2aaae73a7f76b05f476a4345b5b0cc49
2015-11-30T08:17:35.478525Z
94627
2016-11-24T13:36:09.999639Z
9c69e0ec99b2d5b329861ee3b5c43916
2016-11-24T13:36:54.897332Z
101752
gcosmo
@@ -330,7 +330,7 @@ gcosmo
2159
2652
Doxymodules_basic.h
file
@@ -338,7 +338,7 @@ file
2015-11-30T08:17:04.921202Z
2016-11-24T13:36:10.011639Z
c3f936644d698bb8db99a7fb57ff7ad4
2015-11-24T09:17:12.168368Z
94561
@@ -375,10 +375,10 @@ file
2015-11-30T08:17:04.927202Z
e3e3bab25517cbcc9eb9c34cbfdb7b01
2014-11-13T09:10:24.787758Z
86514
2016-11-24T13:36:10.016639Z
4dafdd370ccbc0fe040a51ec31124883
2016-11-14T15:38:27.414883Z
101330
gcosmo
has-props
@@ -401,7 +401,7 @@ has-props
2146
2590
generate_standalone.sh
file
@@ -409,10 +409,10 @@ file
2015-11-24T09:16:34.503894Z
6ea799bf1f8a0b33af751f881452d121
2015-11-24T09:17:12.168368Z
94561
2016-11-24T13:36:10.022639Z
02f96a2798610eaa57fcbb7b6f1aa46d
2016-11-24T13:36:54.897332Z
101752
gcosmo
has-props
@@ -435,7 +435,7 @@ has-props
3061
3159
Doxymodules_parameterisations.h
file
@@ -443,7 +443,7 @@ file
2015-11-30T08:17:04.936202Z
2016-11-24T13:36:10.026639Z
e5a5e3aa3b3c38f9f7173d38b39c664c
2015-11-24T09:17:12.168368Z
94561
@@ -477,7 +477,7 @@ file
2015-11-30T08:17:04.941202Z
2016-11-24T13:36:10.030639Z
ccf55358d6548960dc4713de8ee37733
2013-11-11T10:35:14.738616Z
76473
@@ -511,7 +511,7 @@ file
2015-11-30T08:17:04.945202Z
2016-11-24T13:36:10.038639Z
01b807b20c72f5c4fc242e66307f8688
2014-11-26T09:25:51.113566Z
87170
@@ -579,10 +579,10 @@ file
2015-11-18T11:05:40.096893Z
eb634c4430bc4a4e275a77efb4518ad9
2013-11-11T10:35:14.738616Z
76473
2016-07-05T13:54:18.382631Z
49460cbed52ae78ebea49eaaed7f90c9
2016-07-05T13:54:27.324581Z
98299
gcosmo
@@ -681,7 +681,7 @@ file
2015-11-30T08:17:04.958202Z
2016-11-24T13:36:10.059639Z
4a7e1b175a8674b21f5cbbca729e29eb
2013-11-11T10:35:14.738616Z
76473
@@ -715,7 +715,7 @@ file
2015-11-30T08:17:04.965202Z
2016-11-24T13:36:10.080640Z
18ee4d3fa6fc1bd457c1f232294d54b8
2014-11-13T09:10:24.787758Z
86514
@@ -749,10 +749,10 @@ file
2015-11-18T11:05:40.097893Z
3d918b350cfee4176516a730e4ed25b8
2015-01-23T11:32:10.495249Z
88001
2016-07-05T13:54:18.423632Z
7b417f6eff4f8fca5629cc5154d3b90c
2016-07-05T13:54:27.324581Z
98299
gcosmo
@@ -775,7 +775,7 @@ gcosmo
636
951
Doxymodules_biasing.h
file
@@ -783,10 +783,10 @@ file
2015-11-30T08:17:04.972202Z
c5819f28d614774ad4cc2058389764bf
2014-11-13T09:10:24.787758Z
86514
2016-11-24T13:36:10.091640Z
e2b7f8321040c6e6708279e6741a61bf
2016-11-14T15:38:27.414883Z
101330
gcosmo
has-props
@@ -809,7 +809,7 @@ has-props
3427
4159
footer.html
file
@@ -845,13 +845,47 @@ gcosmo
1543
Doxymodules_field.h
file
2016-11-24T13:36:10.099640Z
9fd64face912a5375fa3659391b6e5f3
2016-07-05T13:54:27.324581Z
98299
gcosmo
has-props
3707
Doxymodules_analysis.h
file
2015-11-30T08:17:04.986202Z
2016-11-24T13:36:10.105640Z
c54b4b3511ebcc6a00808528cca336e8
2014-11-13T09:10:24.787758Z
86514
@@ -879,40 +913,6 @@ has-props
1332
Doxymodules_field.h
file
2015-11-30T08:17:04.980202Z
dc42e815f6f769481b02b2af13d79c59
2013-11-11T10:35:14.738616Z
76473
gcosmo
has-props
4021
.README.HowToNavigate.txt
file
@@ -947,47 +947,13 @@ gcosmo
2215
Doxymodules_common.h
file
2015-11-30T08:17:04.997202Z
5728969bfe41fcae3ecf39f4de2f9b5b
2015-01-23T11:32:10.495249Z
88001
gcosmo
has-props
731
Doxymodules_eventgenerator.h
file
2015-11-30T08:17:04.992202Z
2016-11-24T13:36:10.119640Z
0c63d1b29908c72f0c612d55bc41ecff
2015-11-24T09:17:12.168368Z
94561
@@ -1015,13 +981,47 @@ has-props
3604
Doxymodules_common.h
file
2016-11-24T13:36:10.132640Z
5728969bfe41fcae3ecf39f4de2f9b5b
2015-01-23T11:32:10.495249Z
88001
gcosmo
has-props
731
Doxymodules_new.h
file
2015-11-30T08:17:05.002202Z
2016-11-24T13:36:10.161640Z
41ef50a74350d0608f0637c609ec6e42
2012-06-27T13:00:49.943577Z
60059
@@ -1055,7 +1055,7 @@ file
2015-11-30T08:17:05.007202Z
2016-11-24T13:36:10.167640Z
6a15afd64d62e02356ede2702bad50dc
2013-11-11T10:35:14.738616Z
76473
@@ -1123,7 +1123,7 @@ file
2015-11-30T08:17:05.015202Z
2016-11-24T13:36:10.180640Z
4e99f716d85f3a39fc0ce32e6807d006
2013-11-11T10:35:14.738616Z
76473
@@ -1157,7 +1157,7 @@ file
2015-11-30T08:17:36.783418Z
2016-11-24T13:36:10.190641Z
24e78a97bed897922ca67e73e2d83a79
2015-11-30T08:17:35.478525Z
94627
@@ -848,7 +848,9 @@ INPUT = Doxymain.h \
../extended/hadronic/Hadr04/.README.txt \
../extended/hadronic/Hadr05/.README.txt \
../extended/hadronic/Hadr06/.README.txt \
../extended/hadronic/Hadr07/.README.txt \
../extended/hadronic/FissionFragment \
../extended/hadronic/NeutronSource/.README.txt \
../extended/medical/.README.txt \
../extended/medical/DICOM \
../extended/medical/electronScattering/.README.txt \
@@ -860,10 +862,13 @@ INPUT = Doxymain.h \
../extended/medical/dna/chem1/.README.txt \
../extended/medical/dna/chem2/.README.txt \
../extended/medical/dna/chem3/.README.txt \
../extended/medical/dna/chem4/.README.txt \
../extended/medical/dna/clustering/.README.txt \
../extended/medical/dna/dnaphysics/.README.txt \
../extended/medical/dna/microdosimetry/.README.txt \
../extended/medical/dna/microyz/.README.txt \
../extended/medical/dna/pdb4dna/.README.txt \
../extended/medical/dna/range/.README.txt \
../extended/medical/dna/svalue/.README.txt \
../extended/medical/dna/wholeNuclearDNA/.README.txt \
../extended/medical/dna/wvalue/.README.txt \
@@ -944,6 +949,14 @@ EXCLUDE = ../basic/B2/B2b/include/B2ActionInitialization.hh \
../basic/B2/B2b/src/B2RunAction.cc \
../basic/B2/B2b/src/B2TrackerHit.cc \
../basic/B2/B2b/src/B2TrackerSD.cc \
../basic/B3/B3b/include/B3DetectorConstruction.hh \
../basic/B3/B3b/include/B3PhysicsList.hh \
../basic/B3/B3b/include/B3PrimaryGeneratorAction.hh \
../basic/B3/B3b/include/B3StackingAction.hh \
../basic/B3/B3b/src/B3DetectorConstruction.cc \
../basic/B3/B3b/src/B3PhysicsList.cc \
../basic/B3/B3b/src/B3PrimaryGeneratorAction.cc \
../basic/B3/B3b/src/B3StackingAction.cc \
../basic/B4/B4b/include/B4Analysis.hh \
../basic/B4/B4c/include/B4Analysis.hh \
../basic/B4/B4d/include/B4Analysis.hh \
@@ -991,6 +1004,7 @@ EXCLUDE = ../basic/B2/B2b/include/B2ActionInitialization.hh \
../extended/eventgenerator/HepMC/MCTruth/src/PhysicsList.cc \
../extended/eventgenerator/HepMC/MCTruth/src/PrimaryGeneratorAction.cc \
../extended/eventgenerator/pythia/decayer6/common \
../extended/parallel/TBB/B2b/exampleB2b.cc \
../extended/parallel/TBB/B2b/include/B2ActionInitialization.hh \
../extended/parallel/TBB/B2b/include/B2bChamberParameterisation.hh \
../extended/parallel/TBB/B2b/include/B2bDetectorConstruction.hh \
@@ -120,6 +120,37 @@
/** @} */
/** @defgroup extended_biasing_GB05 GB05
* Biasing example GB05
* @ingroup extended_biasing
* @{
*/
class GB05ActionInitialization {};
class GB05BOptnSplitAndKillByCrossSection {};
class GB05BOptrSplitAndKillByCrossSection {};
class GB05DetectorConstruction {};
class GB05PrimaryGeneratorAction {};
class GB05SD {};
/** @} */
/** @defgroup extended_biasing_GB06 GB06
* Biasing example GB06
* @ingroup extended_biasing
* @{
*/
class GB06ActionInitialization {};
class GB06BOptnSplitAndKillByImportance {};
class GB06BOptrSplitAndKillByImportance {};
class GB06DetectorConstruction {};
class GB06ParallelWorldForSlices {};
class GB06PrimaryGeneratorAction {};
class GB06SD {};
/** @} */
/** @defgroup extended_biasing_ReverseMC01 ReverseMC01
* Biasing example ReverseMC01
* @ingroup extended_biasing
@@ -39,13 +39,10 @@
class F01EventActionMessenger {};
class F01FieldMessenger {};
class F01FieldSetup {};
class F01PhysicsList {};
class F01PhysicsListMessenger {};
class F01PrimaryGeneratorAction {};
class F01PrimaryGeneratorMessenger {};
class F01RunAction {};
class F01RunMessenger {};
class F01StepCut {};
class F01SteppingVerbose {};
/** @} */
@@ -64,13 +61,10 @@
class F02EventAction {};
class F02EventActionMessenger {};
class F02FieldMessenger {};
class F02PhysicsList {};
class F02PhysicsListMessenger {};
class F02PrimaryGeneratorAction {};
class F02PrimaryGeneratorMessenger {};
class F02RunAction {};
class F02RunMessenger {};
class F02StepCut {};
class F02SteppingVerbose {};
/** @} */
@@ -88,13 +82,10 @@
class F03EventActionMessenger {};
class F03FieldMessenger {};
class F03FieldSetup {};
class F03PhysicsList {};
class F03PhysicsListMessenger {};
class F03PrimaryGeneratorAction {};
class F03PrimaryGeneratorMessenger {};
class F03RunAction {};
class F03RunMessenger {};
class F03StepCut {};
class F03SteppingVerbose {};
/** @} */
@@ -141,7 +132,6 @@
class F05ActionInitialization {};
class F05DetectorConstruction {};
class F05ExtraPhysics {};
class F05Field {};
class F05PhysicsList {};
class F05PrimaryGeneratorAction {};
@@ -157,7 +147,6 @@
class F06ActionInitialization {};
class F06DetectorConstruction {};
class F06ExtraPhysics {};
class F06PhysicsList {};
class F06PrimaryGeneratorAction {};
@@ -10,6 +10,74 @@
* @{
*/
/** @defgroup extended_hadronic_Hadr00 Hadr00
* The Hadr00 hadronic classes have their
* <a href="../html_Hadr00/html/index.html">standalone documentation </a>
* @ingroup extended_hadronic
* @{
*/
/** @} */
/** @defgroup extended_hadronic_Hadr01 Hadr01
* The Hadr01 hadronic classes have their
* <a href="../html_Hadr01/html/index.html">standalone documentation </a>
* @ingroup extended_hadronic
* @{
*/
/** @} */
/** @defgroup extended_hadronic_Hadr02 Hadr02
* The Hadr02 hadronic classes have their
* <a href="../html_Hadr02/html/index.html">standalone documentation </a>
* @ingroup extended_hadronic
* @{
*/
/** @} */
/** @defgroup extended_hadronic_Hadr03 Hadr03
* The Hadr03 hadronic classes have their
* <a href="../html_Hadr03/html/index.html">standalone documentation </a>
* @ingroup extended_hadronic
* @{
*/
/** @} */
/** @defgroup extended_hadronic_Hadr04 Hadr04
* The Hadr04 hadronic classes have their
* <a href="../html_Hadr04/html/index.html">standalone documentation </a>
* @ingroup extended_hadronic
* @{
*/
/** @} */
/** @defgroup extended_hadronic_Hadr05 Hadr05
* The Hadr05 hadronic classes have their
* <a href="../html_Hadr05/html/index.html">standalone documentation </a>
* @ingroup extended_hadronic
* @{
*/
/** @} */
/** @defgroup extended_hadronic_Hadr06 Hadr06
* The Hadr06 hadronic classes have their
* <a href="../html_Hadr06/html/index.html">standalone documentation </a>
* @ingroup extended_hadronic
* @{
*/
/** @defgroup extended_hadronic_Hadr07 Hadr07
* The Hadr07 hadronic classes have their
* <a href="../html_Hadr05/html/index.html">standalone documentation </a>
* @ingroup extended_hadronic
* @{
*/
/** @defgroup extended_hadronic_FissionFragment FissionFragment
* Hadronic example FissionFragment
* @ingroup extended_hadronic
@@ -23,66 +91,13 @@
/** @} */
/** @defgroup extended_hadronic_Hadr00 Hadr00
* The shared hadronic classes have their
* <a href="../html_Hadr00/html/index.html">standalone documentation </a>
/** @defgroup extended_hadronic_NeutronSource NeutronSource
* The NeutronSource hadronic classes have their
* <a href="../html_NeutronSource/html/index.html">standalone documentation </a>
* @ingroup extended_hadronic
* @{
*/
/** @} */
/** @defgroup extended_hadronic_Hadr01 Hadr01
* The shared hadronic classes have their
* <a href="../html_Hadr01/html/index.html">standalone documentation </a>
* @ingroup extended_hadronic
* @{
*/
/** @} */
/** @defgroup extended_hadronic_Hadr02 Hadr02
* The shared hadronic classes have their
* <a href="../html_Hadr02/html/index.html">standalone documentation </a>
* @ingroup extended_hadronic
* @{
*/
/** @} */
/** @defgroup extended_hadronic_Hadr03 Hadr03
* The shared hadronic classes have their
* <a href="../html_Hadr03/html/index.html">standalone documentation </a>
* @ingroup extended_hadronic
* @{
*/
/** @} */
/** @defgroup extended_hadronic_Hadr04 Hadr04
* The shared hadronic classes have their
* <a href="../html_Hadr04/html/index.html">standalone documentation </a>
* @ingroup extended_hadronic
* @{
*/
/** @} */
/** @defgroup extended_hadronic_Hadr05 Hadr05
* The shared hadronic classes have their
* <a href="../html_Hadr05/html/index.html">standalone documentation </a>
* @ingroup extended_hadronic
* @{
*/
/** @} */
/** @defgroup extended_hadronic_Hadr06 Hadr06
* The shared hadronic classes have their
* <a href="../html_Hadr05/html/index.html">standalone documentation </a>
* @ingroup extended_hadronic
* @{
*/
/** @} */
/** @} */
@@ -32,6 +32,34 @@
class DicomRunAction {};
class DicomRun {};
/** @defgroup extended_medical_DICOM_dicomReader dicomReader
* dicomReader in medical example DICOM
* @ingroup extended_medical_DICOM
* @{
*/
class DicomBeam {};
class DicomBeamBlock {};
class DicomBeamCompensator {};
class DicomBeamControlPoint {};
class DicomBeamDevice {};
class DicomBeamDevicePos {};
class DicomBeamDeviceRef {};
class DicomBeamWedge {};
class DicomFileCT {};
class DicomFileCT_NOdcmrt {};
class DicomFileMgr {};
class DicomFilePET {};
class DicomFilePlan {};
class DicomFileStructure {};
class DicomROI {};
class DicomROIContour {};
class DicomVBeamDevice {};
class DicomVFile {};
class DicomVFileImage {};
/** @} */
/** @} */
/** @defgroup extended_medical_electronScattering electronScattering
@@ -94,7 +122,7 @@
/** @} */
/** @defgroup extended_medical_dna_chem2 chem2
* Medical dna chem1 example has its
* Medical dna chem2 example has its
* <a href="../html_chem2/html/index.html">standalone documentation </a>
* @ingroup extended_medical_dna
* @{
@@ -103,7 +131,7 @@
/** @} */
/** @defgroup extended_medical_dna_chem3 chem3
* Medical dna chem1 example has its
* Medical dna chem3 example has its
* <a href="../html_chem3/html/index.html">standalone documentation </a>
* @ingroup extended_medical_dna
* @{
@@ -111,6 +139,24 @@
/** @} */
/** @defgroup extended_medical_dna_chem4 chem4
* Medical dna chem4 example has its
* <a href="../html_chem4/html/index.html">standalone documentation </a>
* @ingroup extended_medical_dna
* @{
*/
/** @} */
/** @defgroup extended_medical_dna_clustering clustering
* Medical dna chem4 example has its
* <a href="../html_clustering/html/index.html">standalone documentation </a>
* @ingroup extended_medical_dna
* @{
*/
/** @} */
/** @defgroup extended_medical_dna_dnaphysics dnaphysics
* Medical dna dnaphysics example has its
* <a href="../html_dnaphysics/html/index.html">standalone documentation </a>
@@ -147,6 +193,15 @@
/** @} */
/** @defgroup extended_medical_dna_range range
* Medical dna range example has its
* <a href="../html_range/html/index.html">standalone documentation </a>
* @ingroup extended_medical_dna
* @{
*/
/** @} */
/** @defgroup extended_medical_dna_svalue svalue
* Medical dna svalue example has its
* <a href="../html_svalue/html/index.html">standalone documentation </a>
@@ -18,6 +18,21 @@ track of all tags.
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
24/11/16 I.Hrivnacova (doxygen-V10-02-03)
- Added new examples extended/medical/dna/clustering,range
14/11/16 I.Hrivnacova (doxygen-V10-02-02)
- Updated Doxymodules_medical.h for new dicomReader
28/09/16 I.Hrivnacova (doxygen-V10-02-01)
- Added new examples:
extended/hadronic/NeutronSource
extended/medical/dna/chem4
05/07/16 I.Hrivnacova (doxygen-V10-02-00)
- Updated configuration files (suppressed warnings from files present in more examples)
- Added new example hadronic/Hadr07
27/11/15 I.Hrivnacova (doxygen-V10-01-03)
- Added extended/parallel/MPI/source classes in the documentation
@@ -18,3 +18,9 @@ To generate Doxygen documentation for all examples:
(a standalone documentation will be generated for each example)
./generate_standalone.sh
To extract coding guildelines violations from Doxygen output
(requires using patched Doxygen):
cat doxygen*.out | grep "### Geant4 guidelines violation: data member" >> data_members_violations.txt
cat doxygen*.out | grep "### Geant4 guidelines violation: function member" >> function_members_violations.txt
@@ -34,8 +34,8 @@ h1 {
font-size: 130%;
}
h2 {
font-size: 120%;
}
h3 {
font-size: 110%;
}
h3 {
font-size: 100%;
}
@@ -45,12 +45,12 @@ generate() {
}
# process examples in second level directory in extended
for DIR in analysis/shared analysis/AnaEx01 analysis/AnaEx02 analysis/AnaEx03 electromagnetic/TestEm0 electromagnetic/TestEm1 electromagnetic/TestEm2 electromagnetic/TestEm3 electromagnetic/TestEm4 electromagnetic/TestEm5 electromagnetic/TestEm6 electromagnetic/TestEm7 electromagnetic/TestEm8 electromagnetic/TestEm9 electromagnetic/TestEm10 electromagnetic/TestEm11 electromagnetic/TestEm12 electromagnetic/TestEm13 electromagnetic/TestEm14 electromagnetic/TestEm15 electromagnetic/TestEm16 electromagnetic/TestEm17 electromagnetic/TestEm18 eventgenerator/particleGun eventgenerator/exgps eventgenerator/userPrimaryGenerator exoticphysics/monopole geometry/transforms hadronic/Hadr00 hadronic/Hadr01 hadronic/Hadr02 hadronic/Hadr03 hadronic/Hadr04 hadronic/Hadr05 hadronic/Hadr06 medical/electronScattering medical/electronScattering2 medical/fanoCavity medical/fanoCavity2 medical/GammaTherapy polarisation/Pol01 radioactivedecay/rdecay01 radioactivedecay/rdecay02; do
for DIR in analysis/shared analysis/AnaEx01 analysis/AnaEx02 analysis/AnaEx03 electromagnetic/TestEm0 electromagnetic/TestEm1 electromagnetic/TestEm2 electromagnetic/TestEm3 electromagnetic/TestEm4 electromagnetic/TestEm5 electromagnetic/TestEm6 electromagnetic/TestEm7 electromagnetic/TestEm8 electromagnetic/TestEm9 electromagnetic/TestEm10 electromagnetic/TestEm11 electromagnetic/TestEm12 electromagnetic/TestEm13 electromagnetic/TestEm14 electromagnetic/TestEm15 electromagnetic/TestEm16 electromagnetic/TestEm17 electromagnetic/TestEm18 eventgenerator/particleGun eventgenerator/exgps eventgenerator/userPrimaryGenerator exoticphysics/monopole geometry/transforms hadronic/Hadr00 hadronic/Hadr01 hadronic/Hadr02 hadronic/Hadr03 hadronic/Hadr04 hadronic/Hadr05 hadronic/Hadr06 hadronic/Hadr07 hadronic/NeutronSource medical/electronScattering medical/electronScattering2 medical/fanoCavity medical/fanoCavity2 medical/GammaTherapy polarisation/Pol01 radioactivedecay/rdecay01 radioactivedecay/rdecay02; do
generate ${DIR} ${BACK_PATH2}
done
# process examples in third level directory in extended
for DIR in parallel/TopC/ParN02 parallel/TopC/ParN04 medical/dna/chem1 medical/dna/chem2 medical/dna/chem3 medical/dna/dnaphysics medical/dna/microdosimetry medical/dna/microyz medical/dna/pdb4dna medical/dna/svalue medical/dna/wholeNuclearDNA medical/dna/wvalue; do
for DIR in parallel/TopC/ParN02 parallel/TopC/ParN04 medical/dna/chem1 medical/dna/chem2 medical/dna/chem3 medical/dna/chem4 medical/dna/clustering medical/dna/dnaphysics medical/dna/microdosimetry medical/dna/microyz medical/dna/pdb4dna medical/dna/range medical/dna/svalue medical/dna/wholeNuclearDNA medical/dna/wvalue; do
generate ${DIR} ${BACK_PATH3}
done
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,53 @@
// $Id$
/// \file Doxymain.h
/// \brief The main page for Geant4 Examples code documenation
/*! \mainpage Geant4 Examples
This module collects four sets of user examples aimed to demonstrate to
the user how to make correct use of the GEANT4 toolkit by implementing
in a correct way those user-classes which the user is supposed to
customize in order to define his/her own simulation setup.
The <b>"basic"</b> set of examples is oriented to novice users and covering
the most typical use-cases of a Geant4 application with keeping simplicity
and ease of use.
An <b>"extended"</b> set of examples may require some additional libraries besides
of Geant4. This set covers many specific use cases for actual detector
simulation.
An <b>"advanced"</b> set of examples covers the use-cases typical of a
"toolkit"-oriented kind of development, where real complete applications
for different simulation studies are provided; may require additional third
party products to be built.
Most of the examples can be run both in interactive and batch mode, and
input macro files (*.in) and reference output files (*.out) are provided.
Basic and most of the extended examples are considered part of the
system testing suite for validation of the official releases of the
GEANT4 toolkit. Basic and some of the extended and advanced
examples are also used as "acceptance"-tests for the release process.
See more on each examples category pages:
- \ref README_basic
- \ref README_extended
- <a href="https://twiki.cern.ch/twiki/bin/view/Geant4/AdvancedExamples">
<b>Advanced Examples </b></a>
The previous set of examples oriented to novice users, <b>"novice"</b>,
has been refactored in "basic" and "extended" examples sets in Geant4 10.0.
The information about the original set of these examples can be found at
\link README_novice this page \endlink.
And more on what is common for all examples:
- \ref README_HowToRun
- \ref README_HowToRunMT
- \ref README_HowToNavigate
*/
@@ -0,0 +1,53 @@
// $Id$
/// \file Doxymain.h
/// \brief The main page for Geant4 Examples code documenation
/*! \mainpage Geant4 Examples
This module collects four sets of user examples aimed to demonstrate to
the user how to make correct use of the GEANT4 toolkit by implementing
in a correct way those user-classes which the user is supposed to
customize in order to define his/her own simulation setup.
The <b>"basic"</b> set of examples is oriented to novice users and covering
the most typical use-cases of a Geant4 application with keeping simplicity
and ease of use.
An <b>"extended"</b> set of examples may require some additional libraries besides
of Geant4. This set covers many specific use cases for actual detector
simulation.
An <b>"advanced"</b> set of examples covers the use-cases typical of a
"toolkit"-oriented kind of development, where real complete applications
for different simulation studies are provided; may require additional third
party products to be built.
Most of the examples can be run both in interactive and batch mode, and
input macro files (*.in) and reference output files (*.out) are provided.
Basic and most of the extended examples are considered part of the
system testing suite for validation of the official releases of the
GEANT4 toolkit. Basic and some of the extended and advanced
examples are also used as "acceptance"-tests for the release process.
See more on each examples category pages:
- \ref README_basic
- \ref README_extended
- <a href="https://twiki.cern.ch/twiki/bin/view/Geant4/AdvancedExamples">
<b>Advanced Examples </b></a>
The previous set of examples oriented to novice users, <b>"novice"</b>,
has been refactored in "basic" and "extended" examples sets in Geant4 10.0.
The information about the original set of these examples can be found at
\link README_novice this page \endlink.
And more on what is common for all examples:
- \ref README_HowToRun
- \ref README_HowToRunMT
- \ref README_HowToNavigate
*/
@@ -0,0 +1,53 @@
// $Id$
/// \file Doxymain.h
/// \brief The main page for Geant4 Examples code documenation
/*! \mainpage Geant4 Examples
This module collects four sets of user examples aimed to demonstrate to
the user how to make correct use of the GEANT4 toolkit by implementing
in a correct way those user-classes which the user is supposed to
customize in order to define his/her own simulation setup.
The <b>"basic"</b> set of examples is oriented to novice users and covering
the most typical use-cases of a Geant4 application with keeping simplicity
and ease of use.
An <b>"extended"</b> set of examples may require some additional libraries besides
of Geant4. This set covers many specific use cases for actual detector
simulation.
An <b>"advanced"</b> set of examples covers the use-cases typical of a
"toolkit"-oriented kind of development, where real complete applications
for different simulation studies are provided; may require additional third
party products to be built.
Most of the examples can be run both in interactive and batch mode, and
input macro files (*.in) and reference output files (*.out) are provided.
Basic and most of the extended examples are considered part of the
system testing suite for validation of the official releases of the
GEANT4 toolkit. Basic and some of the extended and advanced
examples are also used as "acceptance"-tests for the release process.
See more on each examples category pages:
- \ref README_basic
- \ref README_extended
- <a href="https://twiki.cern.ch/twiki/bin/view/Geant4/AdvancedExamples">
<b>Advanced Examples </b></a>
The previous set of examples oriented to novice users, <b>"novice"</b>,
has been refactored in "basic" and "extended" examples sets in Geant4 10.0.
The information about the original set of these examples can be found at
\link README_novice this page \endlink.
And more on what is common for all examples:
- \ref README_HowToRun
- \ref README_HowToRunMT
- \ref README_HowToNavigate
*/
@@ -0,0 +1,53 @@
// $Id$
/// \file Doxymain.h
/// \brief The main page for Geant4 Examples code documenation
/*! \mainpage Geant4 Examples
This module collects four sets of user examples aimed to demonstrate to
the user how to make correct use of the GEANT4 toolkit by implementing
in a correct way those user-classes which the user is supposed to
customize in order to define his/her own simulation setup.
The <b>"basic"</b> set of examples is oriented to novice users and covering
the most typical use-cases of a Geant4 application with keeping simplicity
and ease of use.
An <b>"extended"</b> set of examples may require some additional libraries besides
of Geant4. This set covers many specific use cases for actual detector
simulation.
An <b>"advanced"</b> set of examples covers the use-cases typical of a
"toolkit"-oriented kind of development, where real complete applications
for different simulation studies are provided; may require additional third
party products to be built.
Most of the examples can be run both in interactive and batch mode, and
input macro files (*.in) and reference output files (*.out) are provided.
Basic and most of the extended examples are considered part of the
system testing suite for validation of the official releases of the
GEANT4 toolkit. Basic and some of the extended and advanced
examples are also used as "acceptance"-tests for the release process.
See more on each examples category pages:
- \ref README_basic
- \ref README_extended
- <a href="https://twiki.cern.ch/twiki/bin/view/Geant4/AdvancedExamples">
<b>Advanced Examples </b></a>
The previous set of examples oriented to novice users, <b>"novice"</b>,
has been refactored in "basic" and "extended" examples sets in Geant4 10.0.
The information about the original set of these examples can be found at
\link README_novice this page \endlink.
And more on what is common for all examples:
- \ref README_HowToRun
- \ref README_HowToRunMT
- \ref README_HowToNavigate
*/
@@ -0,0 +1,58 @@
// $Id$
// The example class categories definitions for Doxygen
/// \file Doxymodules_analysis.h
/// \brief The page that defines the extended/analysis examples modules
/** @defgroup extended_analysis analysis
* Extended examples analysis classes
* @{
*/
/** @defgroup extended_analysis_AnaEx01 AnaEx01
* Analysis AnaEx01 example has its
* <a href="../html_AnaEx01/html/index.html">standalone documentation </a>
* @ingroup extended_analysis
* @{
*/
/** @} */
/** @defgroup extended_analysis_AnaEx02 AnaEx02
* Analysis AnaEx02 example has its
* <a href="../html_AnaEx02/html/index.html">standalone documentation </a>
* @ingroup extended_analysis
* @{
*/
/** @} */
/** @defgroup extended_analysis_AnaEx03 AnaEx03
* Analysis AnaEx03 example has its
* <a href="../html_AnaEx03/html/index.html">standalone documentation </a>
* @ingroup extended_analysis
* @{
*/
/** @} */
/** @defgroup extended_analysis_B1Con B1Con
* Analysis example B1Con
* @ingroup extended_analysis
* @{
*/
class B1ConActionInitialization{};
class B1ConRunAction{};
class B1ConRun{};
class B1DetectorConstruction{};
class B1EventAction{};
class B1PrimaryGeneratorAction{};
class B1Run{};
class B1SteppingAction{};
/** @} */
/** @} */

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