Import Geant4 10.7.0 source tree

This commit is contained in:
Gabriele Cosmo
2020-12-04 12:30:43 +01:00
parent 67ba86d073
commit dab42d2018
3770 changed files with 226369 additions and 286486 deletions
+10 -8
View File
@@ -1,8 +1,10 @@
#----------------------------------------------------------------------------
# Setup the project
#
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
cmake_minimum_required(VERSION 3.8...3.18)
if(${CMAKE_VERSION} VERSION_LESS 3.12)
cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
endif()
project(doiPET)
#----------------------------------------------------------------------------
@@ -17,7 +19,7 @@ else()
find_package(Geant4 REQUIRED)
endif()
# Setup of ROOT ANALYSIS : optional.
# Setup of ROOT ANALYSIS : optional.
option(WITH_ANALYSIS_USE "Build example with analysis objects" OFF)
if(WITH_ANALYSIS_USE)
add_definitions(-DUSEROOT)
@@ -37,7 +39,7 @@ find_package(ROOT REQUIRED)
if(WITH_ANALYSIS_USE)
EXECUTE_PROCESS(COMMAND root-config --cflags OUTPUT_VARIABLE ROOT_CXX_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ROOT_CXX_FLAGS}")
endif(WITH_ANALYSIS_USE)
endif(WITH_ANALYSIS_USE)
#----------------------------------------------------------------------------
# Locate sources and headers for this project
# NB: headers are included so they will show up in IDEs
@@ -45,8 +47,8 @@ endif(WITH_ANALYSIS_USE)
#file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc)
#file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh)
include_directories(${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/shared/include
include_directories(${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/shared/include
${Geant4_INCLUDE_DIR}
${ROOT_INCLUDE_DIR})
file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc
@@ -77,8 +79,8 @@ set(DOIPET_SCRIPTS
run_imageQualityPhantom_smallAnimal.mac
run_NECR.mac
run_spatialResolution.mac
run_sensitivity.mac
run_normalization.mac
run_sensitivity.mac
run_normalization.mac
run.mac
inputParameter.txt
)
+3
View File
@@ -5,6 +5,9 @@
Category History file
---------------------
02.11.2020 - B.Morgan; doiPET-V10-06-00
Support same CMake version range as core Geant4
29.08.2019 - S. Guatelli;doiPET-V10-05-01
G4VIS_USE and G4_UI removed
+8 -8
View File
@@ -10,8 +10,8 @@
(1) Australian Nuclear Science and Technology Organisation, Australia
(2) University of Wollongong, Australia
(3) National Institute of Radiological Sciences, Japan
================================================================================================
================================================================================================
This example is for simulating depth-of-interaction enabled positron emission tomography (PET) scanner
@@ -82,16 +82,16 @@ Anger Logic calculation
In PET analysis, the lines of response (LOR) needed for the image reconstruction is drawn between two opposing crystals. In simulation, these crystals are identified based on the highest energy deposition. In reality, however, errors are introduced in identifying the crystals which includes the Anger Logic calculation. Without additional blurring of the crystal, simulation results will always have a better spatial resolution than experimental measurements. To include the blurring in identifying the crystals, we included the Anger Logic calculation method. The steps in identifying the crystals are as follows:
Crystal ID in 3D (tangential, axial and DOI directions) are identified with the highest energy deposition and this information along with energy deposition and position interaction is passed into the AngerLogic(c) function.
Crystal ID in 3D (tangential, axial and DOI directions) are identified with the highest energy deposition and this information along with energy deposition and position interaction is passed into the AngerLogic(c) function.
Signals (energy deposition) on the PMTs are obtained based on the lateral distance of the PMTs from the interaction position.
Anger Logic position calculation is performed based on the signals on each PMT to obtain position interaction in 2D. The response of the PMTs are then shifted based on whether reflector exists between crystals or not. Note that, each layer has different reflector pattern.
The new crystal ID is then calculated by comparing the look-up-table which is provided in the code based on a publication from NIRS.
***** ROOT ANALYSIS
***** ROOT ANALYSIS
To have ROOT Analysis, Be in the build director
/Path/doiPET/build/ and type:
cmake -DWITH_ANALYSIS_USE=ON -DGeant4_DIR=.... ../
/Path/doiPET/build/ and type:
cmake -DWITH_ANALYSIS_USE=ON -DGeant4_DIR=.... ../
***** How to run a simulation: