Import Geant4 11.3.0 source tree
This commit is contained in:
@@ -9,7 +9,10 @@
|
||||
|
||||
\link Examplechanneling channeling \endlink
|
||||
|
||||
This example simulates channeling of 400 GeV/c protons in a bent crystal.
|
||||
Channeling examples are dedicated to various coherent effects
|
||||
in oriented crystals, in particular, channeling, channeling radiation,
|
||||
coherent bremsstrahlung, coherent pair production etc. as well as their
|
||||
various applications.
|
||||
|
||||
\link Exampledmparticle dmparticle \endlink
|
||||
|
||||
|
||||
@@ -4,6 +4,10 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
|
||||
which **must** added in reverse chronological order (newest at the top). It must **not**
|
||||
be used as a substitute for writing good git commit messages!
|
||||
|
||||
## 2024-10-30 A. Sytov (exExoticPhysics-V11-02-00)
|
||||
-Updated README related to channeling (added information about
|
||||
channeling examples instead of old channeling exampled which
|
||||
was moved in channeling/ch0 folder)
|
||||
|
||||
## 2023-11-15 I. Hrivnacova (exExoticPhysics-V11-01-01)
|
||||
- Updated vis.mac macros:
|
||||
|
||||
@@ -8,7 +8,10 @@
|
||||
channeling
|
||||
----------
|
||||
|
||||
This example simulates channeling of 400 GeV/c protons in a bent crystal.
|
||||
Channeling examples are dedicated to various coherent effects
|
||||
in oriented crystals, in particular, channeling, channeling radiation,
|
||||
coherent bremsstrahlung, coherent pair production etc. as well as their
|
||||
various applications.
|
||||
|
||||
dmparticle
|
||||
---------
|
||||
|
||||
@@ -1,92 +1,46 @@
|
||||
|
||||
///\file "exoticphysics/channeling/.README.txt"
|
||||
///\brief Example channeling README page
|
||||
///\brief Examples channeling README page
|
||||
|
||||
/*! \page Examplechanneling Example channeling
|
||||
/*! \page Examples Category "channeling"
|
||||
|
||||
\author Enrico Bagli - INFN and University Ferrara (Italy) \n
|
||||
bagli@fe.infn.it
|
||||
Examples in this directory are dedicated to various coherent effects
|
||||
in oriented crystals, in particular, channeling, channeling radiation,
|
||||
coherent bremsstrahlung, coherent pair production etc. as well as their
|
||||
various applications.
|
||||
|
||||
This example shows how channeling in bent crystal can be simulated
|
||||
in Geant4
|
||||
\link Examplech0 ch0 \endlink
|
||||
|
||||
\section channeling_s1 INTRODUCTION
|
||||
This example shows how channeling in bent crystal can be simulated
|
||||
in Geant4 using G4Channeling process. The example simulates the channeling
|
||||
of 400 GeV/c protons in bent Si crystal. It has been moved into channeling/ch0
|
||||
from the channeling folder.
|
||||
|
||||
The example simulates the channeling of 400 GeV/c protons in bent
|
||||
Si crystal. Channeling occurs when particles enter a crystal aligned
|
||||
with atomic planes or axes. In bent crystals, the particles are
|
||||
trapped between atomic planes and follow the crystal curvature
|
||||
being deflected. If the particle direction is tangent to a bent
|
||||
crystal plane is reflected to the opposite direction with respect
|
||||
to channeling, i.e., it suffer ‘volume reflection’. The example
|
||||
provides the physical model for planar channeling and volume
|
||||
reflection in bent crystals.
|
||||
\link Examplech1 ch1 \endlink
|
||||
|
||||
\section channeling_s2 GEOMETRY
|
||||
This example is an easy demonstration of the minimum requirements necessary
|
||||
to integrate the G4ChannelingFastSimModel and the G4BaierKatkov model
|
||||
into a project in order to simulate the physics of channeling and
|
||||
channeling radiation/coherent bremsstrahlung.
|
||||
|
||||
The geometry is a bent Si crystal with three Si detectors placed at
|
||||
-9.998 m, -0.320 m and 10.756 m with respect to bent crystal position.
|
||||
The Si detectors allows to measure incoming and outgoing angle
|
||||
after the interaction with the Si bent crystal. The
|
||||
geometry is all under vacuum.
|
||||
\link Examplech2 ch2 \endlink
|
||||
|
||||
\section channeling_s3 PRIMARY EVENT
|
||||
This example is an enhanced version of ch1, providing the user with
|
||||
the full functionality of both the G4ChannelingFastSimModel and G4BaierKatkov,
|
||||
with parameters set up via a macro, in order to simulate the physics of
|
||||
channeling and channeling radiation/coherent bremsstrahlung, and enhanced output.
|
||||
The example can be exploited for a wide range of cases to study coherent effects in
|
||||
a straight, bent or periodically bent crystal (crystalline undulator).
|
||||
|
||||
\link Examplech3 ch3 \endlink
|
||||
|
||||
The primary events are 400 GeV/c protons at -1.05 m from the
|
||||
crystal with 13.36 microrad x 11.25 microrad divergence.
|
||||
This example is an easy demonstration of the minimum requirements necessary
|
||||
to integrate the G4CoherentPairProduction process along with G4ChannelingFastSimModel
|
||||
and G4BaierKatkov into a project in order to simulate the physics of electromagnetic
|
||||
shower in an oriented crystal. The simulation includes the physics of channeling,
|
||||
channeling radiation/coherent bremsstrahlung and coherent pair production.
|
||||
The structure of this example is based on ch1, but with the G4CoherentPairProductionPhysics
|
||||
process included, as well as different output, a different crystal material, alignment and
|
||||
geometry parameters, and a photon beam as the incoming source instead of charged particles.
|
||||
|
||||
\section channeling_s4 PHYSICS
|
||||
|
||||
In the example the physics of channeling and volume reflection
|
||||
has been added to the standard Geant4 physics. The description
|
||||
of the used model can be found in the paper ‘A model for the
|
||||
interaction of high-energy particles in straight and bent
|
||||
crystals implemented in Geant4’ by E. Bagli et al., available
|
||||
online at http://arxiv.org/abs/1403.5819
|
||||
|
||||
\section channeling_s5 EXECUTION & OUTPUT
|
||||
|
||||
The executable must be run from within the source directory of the example
|
||||
to ensure that it can find the path for crystal data files.
|
||||
|
||||
Data files for Si crystal interplanar potential, nuclei and electron density
|
||||
are stored in a named subdirectory’data’
|
||||
|
||||
Upon execution, the macro
|
||||
\verbatim
|
||||
2009_PLB680_129.mac
|
||||
\endverbatim
|
||||
will automatically run the
|
||||
example with 1000 protons.
|
||||
|
||||
Use
|
||||
\verbatim
|
||||
/xtal/setBR XXX 0. 0. m
|
||||
\endverbatim
|
||||
To change crystal bending to XXX meters
|
||||
|
||||
Use
|
||||
\verbatim
|
||||
/xtal/setSize 1.0 70. XXX mm
|
||||
\endverbatim
|
||||
To change crystal length to XXX millimeter
|
||||
|
||||
Use
|
||||
\verbatim
|
||||
/xtal/setEC data/Si220
|
||||
\endverbatim
|
||||
To select the (110) Si crystal plane of channeling
|
||||
|
||||
GPS commands are used for the primary generator.
|
||||
|
||||
\subsection channeling_s5_sub1 ExExhCh.root
|
||||
|
||||
The output is the ExExhCh.root file with the TTree ExExChTree
|
||||
has the leaves:
|
||||
- angXin : incoming particle X angle at the crystal
|
||||
- angYin : incoming particle Y angle at the crystal
|
||||
- posXin : hitting X position of the particle at the crystal
|
||||
- posYin : hitting Y position of the particle at the crystal
|
||||
- angXout: outgoing particle X angle out of the the crystal
|
||||
- angYout: outgoing particle Y angle out of the the crystal
|
||||
*/
|
||||
*/
|
||||
|
||||
@@ -1,81 +1,8 @@
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup the project
|
||||
#
|
||||
#---Adding all channeling examples subdirectories explicitly
|
||||
|
||||
cmake_minimum_required(VERSION 3.16...3.27)
|
||||
project(channeling)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Find Geant4 package, activating all available UI and Vis drivers by default
|
||||
# You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui
|
||||
# to build a batch mode only executable
|
||||
#
|
||||
|
||||
option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON)
|
||||
if(WITH_GEANT4_UIVIS)
|
||||
find_package(Geant4 REQUIRED ui_all vis_all)
|
||||
else()
|
||||
find_package(Geant4 REQUIRED)
|
||||
endif()
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup Geant4 include directories and compile definitions
|
||||
# Setup include directory for this project
|
||||
#
|
||||
include(${Geant4_USE_FILE})
|
||||
include_directories(${PROJECT_SOURCE_DIR}/include)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Locate sources and headers for this project
|
||||
# NB: headers are included so they will show up in IDEs
|
||||
#
|
||||
file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc)
|
||||
file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Install data
|
||||
#
|
||||
file(GLOB _data RELATIVE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/data/*.txt)
|
||||
foreach(_dat ${_data})
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/${_dat}
|
||||
${PROJECT_BINARY_DIR}/${_dat}
|
||||
COPYONLY
|
||||
)
|
||||
endforeach()
|
||||
file(GLOB _data RELATIVE ${PROJECT_SOURCE_DIR}/mac ${PROJECT_SOURCE_DIR}/mac/*.mac)
|
||||
foreach(_dat ${_data})
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/mac/${_dat}
|
||||
${PROJECT_BINARY_DIR}/${_dat}
|
||||
COPYONLY
|
||||
)
|
||||
endforeach()
|
||||
file(GLOB _data RELATIVE ${PROJECT_SOURCE_DIR}/analysis ${PROJECT_SOURCE_DIR}/analysis/*.sh ${PROJECT_SOURCE_DIR}/analysis/*.C)
|
||||
foreach(_dat ${_data})
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/analysis/${_dat}
|
||||
${PROJECT_BINARY_DIR}/${_dat}
|
||||
COPYONLY
|
||||
)
|
||||
endforeach()
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add the executable, and link it to the Geant4 libraries
|
||||
#
|
||||
add_executable(channeling channeling.cc ${sources} ${headers})
|
||||
target_link_libraries(channeling ${Geant4_LIBRARIES})
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# For internal Geant4 use - but has no effect if you build this
|
||||
# example standalone
|
||||
#
|
||||
add_custom_target(channeling_custom DEPENDS channeling)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX
|
||||
#
|
||||
install(TARGETS channeling DESTINATION bin)
|
||||
|
||||
|
||||
add_subdirectory(ch0)
|
||||
add_subdirectory(ch1)
|
||||
add_subdirectory(ch2)
|
||||
add_subdirectory(ch3)
|
||||
@@ -4,6 +4,23 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
|
||||
which **must** added in reverse chronological order (newest at the top). It must **not**
|
||||
be used as a substitute for writing good git commit messages!
|
||||
|
||||
## 2024-11-29 I. Hrivnacova (channelingExamples-V11-02-03)
|
||||
- Fixes Doxygen pages names & links
|
||||
|
||||
## 2024-10-30 A. Sytov (channelingExamples-V11-02-02)
|
||||
-added the ch3 example; readme of channeling folder updated
|
||||
-added the CMakeLists.txt for the channeling examples
|
||||
|
||||
## 2024-09-25 A. Sytov (channelingExamples-V11-02-01)
|
||||
-added the ch2 example; readme of channeling folder updated
|
||||
-small updates in ch1 example: README updated, deletion of some comments
|
||||
in DetectorConstruction, {nullptr} added in PrimaryGeneratorAction.
|
||||
|
||||
## 2024-09-02 A. Sytov (channelingExamples-V11-02-00)
|
||||
-moved the channeling example into channeling/ch0
|
||||
-added the ch1 example
|
||||
-updated tests/ctests_examples/CMakeLists.txt
|
||||
(added new test for ch1 and updated a test for ch0)
|
||||
|
||||
## 2022-11-02 Vladimir Ivanchenko (channelingExample-V11-00-01)
|
||||
- Use SS EM physics instead of Opt4 and disable Coulomb scattering
|
||||
@@ -145,4 +162,3 @@ May 19, 2014 E. Bagli (channelingExample-V10-00-01)
|
||||
|
||||
May 9, 2014, E. Bagli (channelingExample-V10-00-00)
|
||||
- First import.
|
||||
|
||||
|
||||
@@ -1,71 +1,46 @@
|
||||
=================================================================
|
||||
Channeling effect in Geant4
|
||||
=================================================================
|
||||
Enrico Bagli - INFN and University Ferrara (Italy)
|
||||
bagli@fe.infn.it
|
||||
|
||||
This example shows how channeling in bent crystal can be simulated
|
||||
in Geant4
|
||||
Geant4 extended examples - channeling
|
||||
----------------------------------------------
|
||||
|
||||
1.INTRODUCTION
|
||||
The example simulates the channeling of 400 GeV/c protons in bent
|
||||
Si crystal. Channeling occurs when particles enter a crystal aligned
|
||||
with atomic planes or axes. In bent crystals, the particles are
|
||||
trapped between atomic planes and follow the crystal curvature
|
||||
being deflected. If the particle direction is tangent to a bent
|
||||
crystal plane is reflected to the opposite direction with respect
|
||||
to channeling, i.e., it suffer ‘volume reflection’. The example
|
||||
provides the physical model for planar channeling and volume
|
||||
reflection in bent crystals.
|
||||
Examples in this directory are dedicated to various coherent effects
|
||||
in oriented crystals, in particular, channeling, channeling radiation,
|
||||
coherent bremsstrahlung, coherent pair production etc. as well as their
|
||||
various applications.
|
||||
|
||||
2.GEOMETRY
|
||||
The geometry is a bent Si crystal with three Si detectors placed at
|
||||
-9.998 m, -0.320 m and 10.756 m with respect to the position of
|
||||
the bent crystal itself. The Si detectors allows to measure
|
||||
incoming and outgoing angle after the interaction with the Si bent crystal.
|
||||
The geometry is all under vacuum.
|
||||
ch0
|
||||
-------
|
||||
|
||||
3.PRIMARY EVENT
|
||||
The primary events are 400 GeV/c protons launched at -10.5 m from the
|
||||
crystal with 13.36 microrad x 11.25 microrad divergence.
|
||||
This example shows how channeling in bent crystal can be simulated
|
||||
in Geant4 using G4Channeling process. The example simulates the channeling
|
||||
of 400 GeV/c protons in bent Si crystal. It has been moved into channeling/ch0
|
||||
from the channeling folder.
|
||||
|
||||
4.PHYSICS
|
||||
In the example the physics of channeling and volume reflection
|
||||
has been added to the standard Geant4 physics. The description
|
||||
of the used model can be found in the paper ‘A model for the
|
||||
interaction of high-energy particles in straight and bent
|
||||
crystals implemented in Geant4’ by E. Bagli et al., available
|
||||
online at http://arxiv.org/abs/1403.5819
|
||||
ch1
|
||||
-------
|
||||
|
||||
This example is an easy demonstration of the minimum requirements necessary
|
||||
to integrate the G4ChannelingFastSimModel and the G4BaierKatkov model
|
||||
into a project in order to simulate the physics of channeling and
|
||||
channeling radiation/coherent bremsstrahlung.
|
||||
|
||||
5.EXECUTION & OUTPUT
|
||||
The executable must be run from within the source directory of the example
|
||||
to ensure that it can find the path for crystal data files.
|
||||
ch2
|
||||
-------
|
||||
|
||||
This example is an enhanced version of ch1, providing the user with
|
||||
the full functionality of both the G4ChannelingFastSimModel and G4BaierKatkov,
|
||||
with parameters set up via a macro, in order to simulate the physics of
|
||||
channeling and channeling radiation/coherent bremsstrahlung, and enhanced output.
|
||||
The example can be exploited for a wide range of cases to study coherent effects in
|
||||
a straight, bent or periodically bent crystal (crystalline undulator).
|
||||
|
||||
Data files for Si crystal interplanar potential, nuclei and electron density
|
||||
are stored in a subdirectory named ’data’
|
||||
ch3
|
||||
-------
|
||||
|
||||
Upon execution, the 2009_PLB680_129.mac macro will automatically run the
|
||||
example with 1000 protons.
|
||||
|
||||
Use
|
||||
/xtal/setBR XXX 0. 0. m
|
||||
To change crystal bending to XXX meters
|
||||
|
||||
Use
|
||||
/xtal/setSize 1.0 70. XXX mm
|
||||
To change crystal length to XXX millimeter
|
||||
|
||||
Use
|
||||
/xtal/potfilename data/Si220pl
|
||||
To select the (110) Si crystal plane of channeling
|
||||
|
||||
GPS commands are used for the primary generator.
|
||||
|
||||
The output is the ExExhCh.root file with the TTree ExExChTree
|
||||
has the leaves:
|
||||
- angXin : incoming particle X angle at the crystal
|
||||
- angYin : incoming particle Y angle at the crystal
|
||||
- posXin : hitting X position of the particle at the crystal
|
||||
- posYin : hitting Y position of the particle at the crystal
|
||||
- angXout: outgoing particle X angle out of the the crystal
|
||||
- angYout: outgoing particle Y angle out of the the crystal
|
||||
This example is an easy demonstration of the minimum requirements necessary
|
||||
to integrate the G4CoherentPairProduction process along with G4ChannelingFastSimModel
|
||||
and G4BaierKatkov into a project in order to simulate the physics of electromagnetic
|
||||
shower in an oriented crystal. The simulation includes the physics of channeling,
|
||||
channeling radiation/coherent bremsstrahlung and coherent pair production.
|
||||
The structure of this example is based on ch1, but with the G4CoherentPairProductionPhysics
|
||||
process included, as well as different output, a different crystal material, alignment and
|
||||
geometry parameters, and a photon beam as the incoming source instead of charged particles.
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
|
||||
///\file "exoticphysics/channeling/ch0/.README.txt"
|
||||
///\brief Example ch0 README page
|
||||
|
||||
/*! \page Examplech0 Example ch0
|
||||
|
||||
\author Enrico Bagli - INFN and University Ferrara (Italy) \n
|
||||
bagli@fe.infn.it
|
||||
|
||||
This example shows how channeling in bent crystal can be simulated
|
||||
in Geant4
|
||||
|
||||
\section channeling_s1 INTRODUCTION
|
||||
|
||||
The example simulates the channeling of 400 GeV/c protons in bent
|
||||
Si crystal. Channeling occurs when particles enter a crystal aligned
|
||||
with atomic planes or axes. In bent crystals, the particles are
|
||||
trapped between atomic planes and follow the crystal curvature
|
||||
being deflected. If the particle direction is tangent to a bent
|
||||
crystal plane is reflected to the opposite direction with respect
|
||||
to channeling, i.e., it suffer ‘volume reflection’. The example
|
||||
provides the physical model for planar channeling and volume
|
||||
reflection in bent crystals.
|
||||
|
||||
\section channeling_s2 GEOMETRY
|
||||
|
||||
The geometry is a bent Si crystal with three Si detectors placed at
|
||||
-9.998 m, -0.320 m and 10.756 m with respect to bent crystal position.
|
||||
The Si detectors allows to measure incoming and outgoing angle
|
||||
after the interaction with the Si bent crystal. The
|
||||
geometry is all under vacuum.
|
||||
|
||||
\section channeling_s3 PRIMARY EVENT
|
||||
|
||||
The primary events are 400 GeV/c protons at -1.05 m from the
|
||||
crystal with 13.36 microrad x 11.25 microrad divergence.
|
||||
|
||||
\section channeling_s4 PHYSICS
|
||||
|
||||
In the example the physics of channeling and volume reflection
|
||||
has been added to the standard Geant4 physics. The description
|
||||
of the used model can be found in the paper ‘A model for the
|
||||
interaction of high-energy particles in straight and bent
|
||||
crystals implemented in Geant4’ by E. Bagli et al., available
|
||||
online at http://arxiv.org/abs/1403.5819
|
||||
|
||||
\section channeling_s5 EXECUTION & OUTPUT
|
||||
|
||||
The executable must be run from within the source directory of the example
|
||||
to ensure that it can find the path for crystal data files.
|
||||
|
||||
Data files for Si crystal interplanar potential, nuclei and electron density
|
||||
are stored in a named subdirectory’data’
|
||||
|
||||
Upon execution, the macro
|
||||
\verbatim
|
||||
2009_PLB680_129.mac
|
||||
\endverbatim
|
||||
will automatically run the
|
||||
example with 1000 protons.
|
||||
|
||||
Use
|
||||
\verbatim
|
||||
/xtal/setBR XXX 0. 0. m
|
||||
\endverbatim
|
||||
To change crystal bending to XXX meters
|
||||
|
||||
Use
|
||||
\verbatim
|
||||
/xtal/setSize 1.0 70. XXX mm
|
||||
\endverbatim
|
||||
To change crystal length to XXX millimeter
|
||||
|
||||
Use
|
||||
\verbatim
|
||||
/xtal/setEC data/Si220
|
||||
\endverbatim
|
||||
To select the (110) Si crystal plane of channeling
|
||||
|
||||
GPS commands are used for the primary generator.
|
||||
|
||||
\subsection channeling_s5_sub1 ExExhCh.root
|
||||
|
||||
The output is the ExExhCh.root file with the TTree ExExChTree
|
||||
has the leaves:
|
||||
- angXin : incoming particle X angle at the crystal
|
||||
- angYin : incoming particle Y angle at the crystal
|
||||
- posXin : hitting X position of the particle at the crystal
|
||||
- posYin : hitting Y position of the particle at the crystal
|
||||
- angXout: outgoing particle X angle out of the the crystal
|
||||
- angYout: outgoing particle Y angle out of the the crystal
|
||||
*/
|
||||
@@ -0,0 +1,79 @@
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup the project
|
||||
#
|
||||
cmake_minimum_required(VERSION 3.16...3.27)
|
||||
project(ch0)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Find Geant4 package, activating all available UI and Vis drivers by default
|
||||
# You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui
|
||||
# to build a batch mode only executable
|
||||
#
|
||||
|
||||
option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON)
|
||||
if(WITH_GEANT4_UIVIS)
|
||||
find_package(Geant4 REQUIRED ui_all vis_all)
|
||||
else()
|
||||
find_package(Geant4 REQUIRED)
|
||||
endif()
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup Geant4 include directories and compile definitions
|
||||
# Setup include directory for this project
|
||||
#
|
||||
include(${Geant4_USE_FILE})
|
||||
include_directories(${PROJECT_SOURCE_DIR}/include)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Locate sources and headers for this project
|
||||
# NB: headers are included so they will show up in IDEs
|
||||
#
|
||||
file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc)
|
||||
file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Install data
|
||||
#
|
||||
file(GLOB _data RELATIVE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/data/*.txt)
|
||||
foreach(_dat ${_data})
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/${_dat}
|
||||
${PROJECT_BINARY_DIR}/${_dat}
|
||||
COPYONLY
|
||||
)
|
||||
endforeach()
|
||||
file(GLOB _data RELATIVE ${PROJECT_SOURCE_DIR}/mac ${PROJECT_SOURCE_DIR}/mac/*.mac)
|
||||
foreach(_dat ${_data})
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/mac/${_dat}
|
||||
${PROJECT_BINARY_DIR}/${_dat}
|
||||
COPYONLY
|
||||
)
|
||||
endforeach()
|
||||
file(GLOB _data RELATIVE ${PROJECT_SOURCE_DIR}/analysis ${PROJECT_SOURCE_DIR}/analysis/*.sh ${PROJECT_SOURCE_DIR}/analysis/*.C)
|
||||
foreach(_dat ${_data})
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/analysis/${_dat}
|
||||
${PROJECT_BINARY_DIR}/${_dat}
|
||||
COPYONLY
|
||||
)
|
||||
endforeach()
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add the executable, and link it to the Geant4 libraries
|
||||
#
|
||||
add_executable(ch0 ch0.cc ${sources} ${headers})
|
||||
target_link_libraries(ch0 ${Geant4_LIBRARIES})
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# For internal Geant4 use - but has no effect if you build this
|
||||
# example standalone
|
||||
#
|
||||
add_custom_target(ch0_custom DEPENDS ch0)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX
|
||||
#
|
||||
install(TARGETS ch0 DESTINATION bin)
|
||||
@@ -0,0 +1,153 @@
|
||||
# Example channeling History
|
||||
|
||||
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
|
||||
which **must** added in reverse chronological order (newest at the top). It must **not**
|
||||
be used as a substitute for writing good git commit messages!
|
||||
|
||||
## 2024-09-02 Alexei Sytov (ch0-V11-02-00)
|
||||
- moved into the folder channeling/ch0
|
||||
- renamed to ch0
|
||||
- root file removed
|
||||
- output file removed
|
||||
|
||||
## 2022-11-02 Vladimir Ivanchenko (channelingExample-V11-00-01)
|
||||
- Use SS EM physics instead of Opt4 and disable Coulomb scattering
|
||||
|
||||
## 2021-12-10 Ben Morgan (channelingExample-V11-00-00)
|
||||
- Change to new Markdown History format
|
||||
|
||||
---
|
||||
|
||||
# History entries prior to 11.0
|
||||
|
||||
October 06, 2021 I. Hrivnacova (channelingExample-V10-07-03)
|
||||
- Migration to new G4AnalysisManager.hh header;
|
||||
removed Analysis.hh,
|
||||
define the output file name with an extension.
|
||||
|
||||
August 03, 2021 B. Morgan (channelingExample-V10-07-02)
|
||||
- Move test definition to test category
|
||||
|
||||
July 19, 2021 I. Hrivnacova (channelingExample-V10-07-01)
|
||||
- Updated for changes in the analysis category:
|
||||
removed deleting of the analysis manager,
|
||||
as this is now done by the Geant4 kernel.
|
||||
|
||||
March 19, 2021 V. Ivanchenko (channelingExample-V10-07-00)
|
||||
- removed local option4 physics
|
||||
|
||||
November 10, 2020 B. Morgan (channelingExample-V10-06-00)
|
||||
- Migration to G4RunManagerFactory.
|
||||
|
||||
May 08, 2018 B. Morgan (channelingExample-V10-04-00)
|
||||
- Include G4Types before use of G4MULTITHREADED. For forward
|
||||
compatibility with move to #defines over -D for G4 preprocessor
|
||||
symbols.
|
||||
|
||||
August 22, 2017 E. Bagli (channelingExample-V10-03-03)
|
||||
- Modified sdht_ID to fSDHT_ID
|
||||
- Removed G4VIS_USE, G4UI_USE
|
||||
- Removed double blank lines
|
||||
|
||||
May 05,2017 E. Bagli (channelingExample-V10-03-00)
|
||||
- Added the support to the G4Crystal package implemented in V10-03
|
||||
- Added the support to G4Channeling process implemented in V10-03-01
|
||||
|
||||
November 02, 2016 I. Hrivnacova (channelingExample-V10-02-04)
|
||||
- Added file descriptions for Doxygen documentation
|
||||
|
||||
October 17, 2016 E. Bagli (channelingExample-V10-02-03)
|
||||
- Removed GPS initialization
|
||||
|
||||
October 14, 2016 G.Folger (channelingExample-V10-02-02)
|
||||
- remove direct use of {a,the}ParticleIterator, use GetParticleTableIterator().
|
||||
fix required by clang39 on Linux and MAC
|
||||
|
||||
October 6, 2016 E. Bagli (channelingExample-V10-02-01)
|
||||
- Fixed coding guideline violations
|
||||
|
||||
May 19, 2016 G. Cosmo (channelingExample-V10-02-00)
|
||||
- Fixed compilation warning on gcc-6.1 in XLatticeManager3.
|
||||
|
||||
June 16, 2015 E. Bagli (channelingExample-V10-01-05)
|
||||
- bug fix passing arguments
|
||||
|
||||
June 11, 2015 E. Bagli (channelingExample-V10-01-04)
|
||||
- bug fix on analysis macro
|
||||
|
||||
June 11, 2015 E. Bagli (channelingExample-V10-01-03)
|
||||
- further protection against zero division
|
||||
|
||||
June 3, 2015 E. Bagli (channelingExample-V10-01-02)
|
||||
- prevent division by zero in ProcessChanneling and Wrappers classes
|
||||
|
||||
May 27, 2015 E. Bagli (channeling-Example-V10-01-01)
|
||||
- added full integration of particle trajectory into the channeling process
|
||||
- added beampipe and detector box to the detector construction
|
||||
- modified the wrapper classes to correct bugs in energy loss calculation under channeling
|
||||
- added to the wrapper class the InCrystal parameter in order to be completely transparent if the particle is outside a volume with a lattice
|
||||
- added the InCrystal parameter to the user info to switch between single and multiple scattering
|
||||
- single and multiple scattering are enabled/disabled if the volume has or not a lattice
|
||||
- added data files for Si110 and Si111 planar nuclei density, planar electron density and planar electric field
|
||||
- minor modification to XPhysicalLattice
|
||||
- minor modification to the macro to analyze the output data
|
||||
|
||||
Mar 6, 2015 A. Dotti (channelingExample-V10-01-00)
|
||||
- Initialization of GPS defaults moved to master
|
||||
|
||||
October 16, 2014 E. Bagli (channelingExample-V10-00-15)
|
||||
- minor modification to condition for vr
|
||||
- minor modification to computation of channeling outgoing angle
|
||||
- changed nuclei density to electron and nuclei density for ss cross section computation
|
||||
|
||||
July 1, 2014 G.Folger (channelingExample-V10-00-14)
|
||||
- revert change introduced with tag ...-12, CMakeLists.txt rev.82513
|
||||
|
||||
June 30, 2014 E. Bagli (channelingExample-V10-00-13)
|
||||
- erf function modified to CLHEP::HepStat::erfQ
|
||||
|
||||
June 26, 2014 G.Folger (channelingExample-V10-00-12)
|
||||
- Build example only if erf() is available on system.
|
||||
erf function misses on Windows up to VC11 (studio 2012) included.
|
||||
|
||||
June 22, 2014 E. Bagli (channelingExample-V10-00-11)
|
||||
- CLHEP/Random/Stat.h added to XCrystalPlanarMoliereTempPotential.cc
|
||||
|
||||
June 21, 2014 E. Bagli (channelingExample-V10-00-10)
|
||||
- Changed erfc(x) to 1.-erf(x)
|
||||
|
||||
June 20, 2014 E. Bagli (channelingExample-V10-00-09)
|
||||
- Modified channelling to channeling in CMakeLists.txt
|
||||
|
||||
June 10, 2014 E. Bagli (channelingExample-V10-00-08)
|
||||
- Moved Channeling to channeling in CMakeLists.txt and CTestDefinitions.txt
|
||||
|
||||
June 4, 2014 A. Dotti (channelingExample-V10-00-07)
|
||||
- New GPS MT ready migration
|
||||
|
||||
June 2, 2014 E. Bagli (channelingExample-v10-00-06)
|
||||
- Modified M_PI to CLHEP::pi
|
||||
|
||||
May 30, 2014 E. Bagli (channelingExample-v10-00-05)
|
||||
- Removed measurement of time elapsed into channeling.c
|
||||
|
||||
May 28, 2014 E. Bagli (channelingExample-v10-00-04)
|
||||
- Corrected conversions between data types.
|
||||
- Added root reference file (physical/ExExCh.root).
|
||||
|
||||
May 27, 2014 A. Dotti (channelingExample-V10-00-03)
|
||||
- First version of CTest introduced, via extenral
|
||||
file CTestDefinitions.txt
|
||||
|
||||
May 20, 2014 E. Bagli (channelingExample-V10-00-02)
|
||||
- Removed src/G4Channeling*.
|
||||
- Removed include/G4Channeling*.
|
||||
- Removed analysis/merge.sh
|
||||
- Wrote History and inserted reference to channeling model adopted
|
||||
|
||||
May 19, 2014 E. Bagli (channelingExample-V10-00-01)
|
||||
- Class names modified.
|
||||
|
||||
May 9, 2014, E. Bagli (channelingExample-V10-00-00)
|
||||
- First import.
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
=================================================================
|
||||
Channeling effect in Geant4
|
||||
=================================================================
|
||||
Enrico Bagli - INFN and University Ferrara (Italy)
|
||||
bagli@fe.infn.it
|
||||
|
||||
This example shows how channeling in bent crystal can be simulated
|
||||
in Geant4
|
||||
|
||||
1.INTRODUCTION
|
||||
The example simulates the channeling of 400 GeV/c protons in bent
|
||||
Si crystal. Channeling occurs when particles enter a crystal aligned
|
||||
with atomic planes or axes. In bent crystals, the particles are
|
||||
trapped between atomic planes and follow the crystal curvature
|
||||
being deflected. If the particle direction is tangent to a bent
|
||||
crystal plane is reflected to the opposite direction with respect
|
||||
to channeling, i.e., it suffer ‘volume reflection’. The example
|
||||
provides the physical model for planar channeling and volume
|
||||
reflection in bent crystals.
|
||||
|
||||
2.GEOMETRY
|
||||
The geometry is a bent Si crystal with three Si detectors placed at
|
||||
-9.998 m, -0.320 m and 10.756 m with respect to the position of
|
||||
the bent crystal itself. The Si detectors allows to measure
|
||||
incoming and outgoing angle after the interaction with the Si bent crystal.
|
||||
The geometry is all under vacuum.
|
||||
|
||||
3.PRIMARY EVENT
|
||||
The primary events are 400 GeV/c protons launched at -10.5 m from the
|
||||
crystal with 13.36 microrad x 11.25 microrad divergence.
|
||||
|
||||
4.PHYSICS
|
||||
In the example the physics of channeling and volume reflection
|
||||
has been added to the standard Geant4 physics. The description
|
||||
of the used model can be found in the paper ‘A model for the
|
||||
interaction of high-energy particles in straight and bent
|
||||
crystals implemented in Geant4’ by E. Bagli et al., available
|
||||
online at http://arxiv.org/abs/1403.5819
|
||||
|
||||
5.EXECUTION & OUTPUT
|
||||
The executable must be run from within the source directory of the example
|
||||
to ensure that it can find the path for crystal data files.
|
||||
|
||||
Data files for Si crystal interplanar potential, nuclei and electron density
|
||||
are stored in a subdirectory named ’data’
|
||||
|
||||
Upon execution, the 2009_PLB680_129.mac macro will automatically run the
|
||||
example with 1000 protons.
|
||||
|
||||
Use
|
||||
/xtal/setBR XXX 0. 0. m
|
||||
To change crystal bending to XXX meters
|
||||
|
||||
Use
|
||||
/xtal/setSize 1.0 70. XXX mm
|
||||
To change crystal length to XXX millimeter
|
||||
|
||||
Use
|
||||
/xtal/potfilename data/Si220pl
|
||||
To select the (110) Si crystal plane of channeling
|
||||
|
||||
GPS commands are used for the primary generator.
|
||||
|
||||
The output is the ExExhCh.root file with the TTree ExExChTree
|
||||
has the leaves:
|
||||
- angXin : incoming particle X angle at the crystal
|
||||
- angYin : incoming particle Y angle at the crystal
|
||||
- posXin : hitting X position of the particle at the crystal
|
||||
- posYin : hitting Y position of the particle at the crystal
|
||||
- angXout: outgoing particle X angle out of the the crystal
|
||||
- angYout: outgoing particle Y angle out of the the crystal
|
||||
+8
-8
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
|
||||
|
||||
|
||||
**************************************************************
|
||||
Geant4 version Name: geant4-11-02-ref-06 (28-June-2024)
|
||||
Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
|
||||
Copyright : Geant4 Collaboration
|
||||
References : NIM A 506 (2003), 250-303
|
||||
: IEEE-TNS 53 (2006), 270-278
|
||||
@@ -34,7 +34,6 @@ Registered graphics systems are:
|
||||
RayTracer (RayTracer)
|
||||
VRML2FILE (VRML2FILE)
|
||||
gMocrenFile (gMocrenFile)
|
||||
TOOLSSG_OFFSCREEN (TSG_OFFSCREEN)
|
||||
TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE)
|
||||
OpenGLImmediateQt (OGLIQt, OGLI)
|
||||
OpenGLStoredQt (OGLSQt, OGL, OGLS)
|
||||
@@ -149,10 +148,13 @@ Bremsstrahlung energy threshold above which
|
||||
primary e+- is added to the list of secondary 100 TeV
|
||||
Bremsstrahlung energy threshold above which primary
|
||||
muon/hadron is added to the list of secondary 100 TeV
|
||||
Positron annihilation at rest model SimplePositronium
|
||||
Enable 3 gamma annihilation on fly 0
|
||||
Lowest triplet kinetic energy 1 MeV
|
||||
Enable sampling of gamma linear polarisation 0
|
||||
5D gamma conversion model type 0
|
||||
5D gamma conversion model on isolated ion 0
|
||||
Use Ricardo-Gerardo pair production model 0
|
||||
Livermore data directory epics_2017
|
||||
=======================================================================
|
||||
====== Ionisation Parameters ========
|
||||
@@ -783,7 +785,7 @@ CoulombScat: for pi- XStype:2 SubType=1 BuildTable=1
|
||||
=======================================================================
|
||||
====== Geant4 Native Pre-compound Model Parameters ========
|
||||
=======================================================================
|
||||
Type of pre-compound inverse x-section 3
|
||||
Type of pre-compound inverse x-section 1
|
||||
Pre-compound model active 1
|
||||
Pre-compound excitation low energy 100 keV
|
||||
Pre-compound excitation high energy 30 MeV
|
||||
@@ -808,7 +810,7 @@ Use discrete excitation energy of the residual 0
|
||||
Time limit for long lived isomeres 1 ns
|
||||
Isomer production flag 1
|
||||
Internal e- conversion flag 1
|
||||
Store e- internal conversion data 0
|
||||
Store e- internal conversion data 1
|
||||
Correlated gamma emission flag 0
|
||||
Max 2J for sampling of angular correlations 10
|
||||
=======================================================================
|
||||
@@ -838,8 +840,6 @@ Index : 2 used in the geometry : Yes
|
||||
|
||||
==================================================================
|
||||
|
||||
G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model.
|
||||
See commands in /vis/modeling/trajectories/ for other options.
|
||||
### Run 0 starts.
|
||||
... set ntuple merging row mode : row-wise - done
|
||||
... create file : ExExCh.root - done
|
||||
@@ -1849,12 +1849,12 @@ Using
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 1000
|
||||
User=85.490000s Real=101.831163s Sys=0.040000s
|
||||
User=84.840000s Real=95.287506s Sys=0.010000s
|
||||
... write file : ExExCh.root - done
|
||||
... close file : ExExCh.root - done
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
================== Deleting memory pools ===================
|
||||
Number of memory pools allocated: 14 of which, static: 1
|
||||
Dynamic pools deleted: 13 / Total memory freed: 0.061 MB
|
||||
Dynamic pools deleted: 13 / Total memory freed: 0.055 MB
|
||||
============================================================
|
||||
@@ -0,0 +1,56 @@
|
||||
|
||||
///\file "exoticphysics/channeling/ch1/.README.txt"
|
||||
///\brief Example ch1 README page
|
||||
|
||||
/*! \page Examplech1 Example ch1
|
||||
|
||||
\author Alexei Sytov - INFN Ferrara Division (Italy) \n
|
||||
sytov@fe.infn.it
|
||||
|
||||
\section ch1_s1 INTRODUCTION
|
||||
Example ch1 is an easy demonstration of the minimum requirements necessary
|
||||
to integrate the G4ChannelingFastSimModel and the G4BaierKatkov model into a project
|
||||
in order to simulate the physics of channeling and
|
||||
channeling radiation/coherent bremsstrahlung.
|
||||
|
||||
This example serves as a guideline for users on how to add this physics
|
||||
to their existing Geant4 projects. It includes the minimum necessary options
|
||||
to incorporate this physics. Specifically, it requires registering
|
||||
G4FastSimulationPhysics in the main routine and
|
||||
adding a few lines of code in DetectorConstruction.
|
||||
|
||||
\section ch1_s2 DESCRIPTION
|
||||
The example is based on the following experiments on channeling [1] and
|
||||
channeling radiation [2] in a bent crystal, carried out at Mainz Mikrotron MAMI with
|
||||
855 MeV electrons. The experimental validation of G4ChannelingFastSimModel is
|
||||
described in [3].
|
||||
|
||||
This example includes a bent crystal and a detector positioned behind it.
|
||||
The incoming beam is set up in macro run.mac.
|
||||
|
||||
The example does not include any input of the model or geometry parameters
|
||||
from the macro to keep it as straightforward as possible. The output is recorded
|
||||
into the file results.root. It consists of
|
||||
the charged particle distribution at the detector in the x-plane
|
||||
(the plane of crystal bending and perpendicular to the crystal planes) as well as
|
||||
the spectrum of photons arriving to the detector. To build these plots, one has to
|
||||
open this file in root and use
|
||||
\verbatim
|
||||
x_out->Draw()
|
||||
\endverbatim
|
||||
|
||||
and
|
||||
|
||||
\verbatim
|
||||
Spectrum->Draw()
|
||||
\endverbatim
|
||||
|
||||
for the coordinates and the spectrum, respectively.
|
||||
|
||||
\section ch1_s3 REFERENCES
|
||||
|
||||
-# A. Mazzolari et al. <a href="https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.112.135503">Phys. Rev. Lett. 112, 135503 (2014).</a>
|
||||
-# L. Bandiera et al. <a href="https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.115.025504">Phys. Rev. Lett. 115, 025504 (2015).</a>
|
||||
-# A. Sytov et al. <a href="https://link.springer.com/article/10.1007/s40042-023-00834-6"> Journal of the Korean Physical Society 83, 132–139 (2023).</a>
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,55 @@
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup the project
|
||||
cmake_minimum_required(VERSION 3.16...3.21)
|
||||
project(ch1)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Find Geant4 package, activating all available UI and Vis drivers by default
|
||||
# You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui
|
||||
# to build a batch mode only executable
|
||||
#
|
||||
option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON)
|
||||
if(WITH_GEANT4_UIVIS)
|
||||
find_package(Geant4 REQUIRED ui_all vis_all)
|
||||
else()
|
||||
find_package(Geant4 REQUIRED)
|
||||
endif()
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup Geant4 include directories and compile definitions
|
||||
#
|
||||
include(${Geant4_USE_FILE})
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Copy all scripts to the build directory, i.e. the directory in which we
|
||||
# build ch1. This is so that we can run the executable directly because it
|
||||
# relies on these scripts being in the current working directory.
|
||||
#
|
||||
set(TESTch1_SCRIPTS
|
||||
init_vis.mac
|
||||
vis.mac
|
||||
run.mac
|
||||
)
|
||||
|
||||
foreach(_script ${TESTch1_SCRIPTS})
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/${_script}
|
||||
${PROJECT_BINARY_DIR}/${_script}
|
||||
COPYONLY
|
||||
)
|
||||
endforeach()
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add the executable, and link it to the Geant4 libraries
|
||||
#
|
||||
# Locate sources and headers for this project
|
||||
file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc)
|
||||
file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add the executable, and link it to the Geant4 libraries
|
||||
#
|
||||
add_executable(ch1 ch1.cc ${sources} ${headers})
|
||||
target_include_directories(ch1 PRIVATE include)
|
||||
target_link_libraries(ch1 PRIVATE ${Geant4_LIBRARIES})
|
||||
@@ -0,0 +1,15 @@
|
||||
# Category ch1 History
|
||||
|
||||
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
|
||||
which **must** added in reverse chronological order (newest at the top). It must **not**
|
||||
be used as a substitute for writing good git commit messages!
|
||||
|
||||
## 2024-09-25 Alexei Sytov (ch1-V11-02-01)
|
||||
- Some comments deleted in DetectorConstruction
|
||||
- Added {nullptr} in PrimaryGeneratorAction.hh and DetectorConstruction.hh
|
||||
- redundant modules deleted
|
||||
- CLHEP units added
|
||||
- README updated
|
||||
|
||||
## 2024-09-02 Alexei Sytov (ch1-V11-02-00)
|
||||
- First implementation
|
||||
@@ -0,0 +1,46 @@
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
|
||||
=========================================================
|
||||
|
||||
Example ch1
|
||||
-----------
|
||||
A. Sytov
|
||||
INFN Ferrara Division, sytov@fe.infn.it
|
||||
|
||||
INTRODUCTION
|
||||
Example ch1 is an easy demonstration of the minimum requirements necessary
|
||||
to integrate the G4ChannelingFastSimModel and the G4BaierKatkov model into a project
|
||||
in order to simulate the physics of channeling and
|
||||
channeling radiation/coherent bremsstrahlung.
|
||||
|
||||
This example serves as a guideline for users on how to add this physics
|
||||
to their existing Geant4 projects. It includes the minimum necessary options
|
||||
to incorporate this physics. Specifically, it requires registering
|
||||
G4FastSimulationPhysics in the main routine and
|
||||
adding a few lines of code in DetectorConstruction.
|
||||
|
||||
DESCRIPTION
|
||||
|
||||
The example is based on the following experiments on channeling [1] and
|
||||
channeling radiation [2] in a bent crystal, carried out at Mainz Mikrotron MAMI with
|
||||
855 MeV electrons. The experimental validation of G4ChannelingFastSimModel is
|
||||
described in [3].
|
||||
|
||||
This example includes a bent crystal and a detector positioned behind it.
|
||||
The incoming beam is set up in macro run.mac.
|
||||
|
||||
The example does not include any input of the model or geometry parameters
|
||||
from the macro to keep it as straightforward as possible. The output is recorded
|
||||
into the file results.root. It consists of
|
||||
the charged particle distribution at the detector in the x-plane
|
||||
(the plane of crystal bending and perpendicular to the crystal planes) as well as
|
||||
the spectrum of photons arriving to the detector. To build these plots, one has to
|
||||
open this file in root and use x_out->Draw() and Spectrum->Draw() for the coordinates
|
||||
and the spectrum, respectively.
|
||||
|
||||
REFERENCES
|
||||
[1] A. Mazzolari et al. Phys. Rev. Lett. 112, 135503 (2014).
|
||||
[2] L. Bandiera et al. Phys. Rev. Lett. 115, 025504 (2015).
|
||||
[3] A. Sytov et al. Journal of the Korean Physical Society 83, 132–139 (2023).
|
||||
@@ -0,0 +1,146 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file ch1.cc
|
||||
/// \brief Main program of the ch1 example
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "DetectorConstruction.hh"
|
||||
#include "ActionInitialization.hh"
|
||||
|
||||
#include "G4RunManagerFactory.hh"
|
||||
#include "G4SteppingVerbose.hh"
|
||||
#include "G4UImanager.hh"
|
||||
#include "FTFP_BERT.hh"
|
||||
#include "G4FastSimulationPhysics.hh"
|
||||
|
||||
#include "G4VisExecutive.hh"
|
||||
#include "G4UIExecutive.hh"
|
||||
|
||||
#include "Randomize.hh"
|
||||
#include "G4Timer.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
int main(int argc,char** argv)
|
||||
{
|
||||
// Get current time
|
||||
G4Timer* theTimer = new G4Timer();
|
||||
theTimer->Start();
|
||||
|
||||
// Choose the Random engine
|
||||
G4Random::setTheEngine(new CLHEP::RanecuEngine);
|
||||
CLHEP::HepRandom::setTheSeed(0.);
|
||||
|
||||
//use G4SteppingVerboseWithUnits
|
||||
G4int precision = 4;
|
||||
G4SteppingVerbose::UseBestUnit(precision);
|
||||
|
||||
// Detect interactive mode (if no arguments) and define UI session
|
||||
G4UIExecutive* ui = nullptr;
|
||||
if ( argc == 1 ) { ui = new G4UIExecutive(argc, argv); }
|
||||
|
||||
// Construct the default run manager
|
||||
auto* runManager =
|
||||
G4RunManagerFactory::CreateRunManager(G4RunManagerType::Default);
|
||||
|
||||
// Set mandatory initialization classes
|
||||
//
|
||||
// Detector construction
|
||||
runManager->SetUserInitialization(new DetectorConstruction());
|
||||
|
||||
// Physics list
|
||||
G4VModularPhysicsList* physicsList = new FTFP_BERT;
|
||||
|
||||
// -- Create helper tool, used to activate the fast simulation:
|
||||
G4FastSimulationPhysics* fastSimulationPhysics = new G4FastSimulationPhysics();
|
||||
fastSimulationPhysics->BeVerbose();
|
||||
// -- activation of fast simulation for particles having fast simulation models
|
||||
// -- attached in the mass geometry:
|
||||
// you may add any charged particles here
|
||||
// CAUTION: for the particles other then e+- you would likely want
|
||||
// to switch off the radiation
|
||||
fastSimulationPhysics->ActivateFastSimulation("e-");
|
||||
fastSimulationPhysics->ActivateFastSimulation("e+");
|
||||
//fastSimulationPhysics->ActivateFastSimulation("proton");
|
||||
//fastSimulationPhysics->ActivateFastSimulation("anti_proton");
|
||||
//fastSimulationPhysics->ActivateFastSimulation("mu+");
|
||||
//fastSimulationPhysics->ActivateFastSimulation("mu-");
|
||||
//fastSimulationPhysics->ActivateFastSimulation("pi+");
|
||||
//fastSimulationPhysics->ActivateFastSimulation("pi-");
|
||||
//fastSimulationPhysics->ActivateFastSimulation("GenericIon");
|
||||
// ...
|
||||
// you may activate this model for any charged particle
|
||||
// a neutral particle will not enter the model
|
||||
|
||||
// -- Attach the fast simulation physics constructor to the physics list:
|
||||
physicsList->RegisterPhysics( fastSimulationPhysics );
|
||||
physicsList->SetVerboseLevel(1);
|
||||
runManager->SetUserInitialization(physicsList);
|
||||
|
||||
// User action initialization
|
||||
runManager->SetUserInitialization(new ActionInitialization());
|
||||
|
||||
// Initialize visualization
|
||||
G4VisManager* visManager = new G4VisExecutive;
|
||||
// G4VisExecutive can take a verbosity argument - see /vis/verbose guidance.
|
||||
// G4VisManager* visManager = new G4VisExecutive("Quiet");
|
||||
visManager->Initialize();
|
||||
|
||||
// Get the pointer to the User Interface manager
|
||||
G4UImanager* UImanager = G4UImanager::GetUIpointer();
|
||||
|
||||
// Process macro or start UI session
|
||||
if ( ! ui ) {
|
||||
// batch mode
|
||||
G4String command = "/control/execute ";
|
||||
G4String fileName = argv[1];
|
||||
UImanager->ApplyCommand(command+fileName);
|
||||
}
|
||||
else {
|
||||
// interactive mode
|
||||
UImanager->ApplyCommand("/control/execute init_vis.mac");
|
||||
ui->SessionStart();
|
||||
delete ui;
|
||||
}
|
||||
|
||||
// Job termination
|
||||
// Free the store: user actions, physics_list and detector_description are
|
||||
// owned and deleted by the run manager, so they should not be deleted
|
||||
// in the main() program !
|
||||
|
||||
delete visManager;
|
||||
delete runManager;
|
||||
|
||||
theTimer->Stop();
|
||||
G4cout << "Execution terminated" << G4endl;
|
||||
G4cout << (*theTimer) << G4endl;
|
||||
delete theTimer;
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
@@ -0,0 +1,932 @@
|
||||
Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type...
|
||||
|
||||
############################################
|
||||
!!! WARNING - FPE detection is activated !!!
|
||||
############################################
|
||||
|
||||
|
||||
################################
|
||||
!!! G4Backtrace is activated !!!
|
||||
################################
|
||||
|
||||
|
||||
**************************************************************
|
||||
Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
|
||||
Copyright : Geant4 Collaboration
|
||||
References : NIM A 506 (2003), 250-303
|
||||
: IEEE-TNS 53 (2006), 270-278
|
||||
: NIM A 835 (2016), 186-225
|
||||
WWW : http://geant4.org/
|
||||
**************************************************************
|
||||
|
||||
<<< Geant4 Physics List simulation engine: FTFP_BERT
|
||||
|
||||
Visualization Manager instantiating with verbosity "warnings (3)"...
|
||||
Visualization Manager initialising...
|
||||
Registering graphics systems...
|
||||
|
||||
You have successfully registered the following graphics systems.
|
||||
Registered graphics systems are:
|
||||
ASCIITree (ATree)
|
||||
DAWNFILE (DAWNFILE)
|
||||
G4HepRepFile (HepRepFile)
|
||||
RayTracer (RayTracer)
|
||||
VRML2FILE (VRML2FILE)
|
||||
gMocrenFile (gMocrenFile)
|
||||
TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE)
|
||||
OpenGLImmediateQt (OGLIQt, OGLI)
|
||||
OpenGLStoredQt (OGLSQt, OGL, OGLS)
|
||||
OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK)
|
||||
OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK)
|
||||
OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK)
|
||||
OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK)
|
||||
RayTracerX (RayTracerX)
|
||||
Qt3D (Qt3D)
|
||||
TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK)
|
||||
TOOLSSG_X11_ZB (TSG_X11_ZB, TSGX11ZB)
|
||||
TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK)
|
||||
TOOLSSG_XT_ZB (TSG_XT_ZB, TSGXtZB)
|
||||
TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG)
|
||||
TOOLSSG_QT_ZB (TSG_QT_ZB, TSGQtZB)
|
||||
You may choose a graphics system (driver) with a parameter of
|
||||
the command "/vis/open" or "/vis/sceneHandler/create",
|
||||
or you may omit the driver parameter and choose at run time:
|
||||
- by argument in the construction of G4VisExecutive
|
||||
- by environment variable "G4VIS_DEFAULT_DRIVER"
|
||||
- by entry in "~/.g4session"
|
||||
- by build flags.
|
||||
- Note: This feature is not allowed in batch mode.
|
||||
For further information see "examples/basic/B1/exampleB1.cc"
|
||||
and "vis.mac".
|
||||
|
||||
Registering model factories...
|
||||
|
||||
You have successfully registered the following model factories.
|
||||
Registered model factories:
|
||||
generic
|
||||
drawByAttribute
|
||||
drawByCharge
|
||||
drawByOriginVolume
|
||||
drawByParticleID
|
||||
drawByEncounteredVolume
|
||||
|
||||
Registered models:
|
||||
None
|
||||
|
||||
Registered filter factories:
|
||||
attributeFilter
|
||||
chargeFilter
|
||||
originVolumeFilter
|
||||
particleFilter
|
||||
encounteredVolumeFilter
|
||||
|
||||
Registered filters:
|
||||
None
|
||||
|
||||
You have successfully registered the following user vis actions.
|
||||
Run Duration User Vis Actions: none
|
||||
End of Event User Vis Actions: none
|
||||
End of Run User Vis Actions: none
|
||||
|
||||
Some /vis commands (optionally) take a string to specify colour.
|
||||
"/vis/list" to see available colours.
|
||||
*** /run/numberOfThreads command is issued in sequential mode.
|
||||
Command is ignored.
|
||||
Checking overlaps for volume Crystal:0 (G4Box) ... OK!
|
||||
Crystal size: 20 20 0.0305 mm3
|
||||
Crystal bending angle: 0.000905 rad
|
||||
Crystal angleX: 0 rad
|
||||
Checking overlaps for volume Detector:0 (G4Box) ... OK!
|
||||
=======================================================================
|
||||
====== Crystal lattice data ========
|
||||
=======================================================================
|
||||
Crystal material: Si
|
||||
Crystal planes: (111)
|
||||
|
||||
G4BaierKatkov model is activated.
|
||||
|
||||
Radiation model activated
|
||||
|
||||
hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval
|
||||
for pions : 3 to 6 GeV
|
||||
for kaons : 3 to 6 GeV
|
||||
for proton : 3 to 6 GeV
|
||||
for neutron : 3 to 6 GeV
|
||||
|
||||
### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0
|
||||
e+ : fastSimProcess_massGeom[geom:World]
|
||||
e- : fastSimProcess_massGeom[geom:World]
|
||||
=======================================================================
|
||||
====== Electromagnetic Physics Parameters ========
|
||||
=======================================================================
|
||||
LPM effect enabled 1
|
||||
Enable creation and use of sampling tables 0
|
||||
Apply cuts on all EM processes 0
|
||||
Use combined TransportationWithMsc Disabled
|
||||
Use general process 1
|
||||
Enable linear polarisation for gamma 0
|
||||
Enable photoeffect sampling below K-shell 1
|
||||
Enable sampling of quantum entanglement 0
|
||||
X-section factor for integral approach 0.8
|
||||
Min kinetic energy for tables 100 eV
|
||||
Max kinetic energy for tables 100 TeV
|
||||
Number of bins per decade of a table 7
|
||||
Verbose level 1
|
||||
Verbose level for worker thread 0
|
||||
Bremsstrahlung energy threshold above which
|
||||
primary e+- is added to the list of secondary 100 TeV
|
||||
Bremsstrahlung energy threshold above which primary
|
||||
muon/hadron is added to the list of secondary 100 TeV
|
||||
Positron annihilation at rest model SimplePositronium
|
||||
Enable 3 gamma annihilation on fly 0
|
||||
Lowest triplet kinetic energy 1 MeV
|
||||
Enable sampling of gamma linear polarisation 0
|
||||
5D gamma conversion model type 0
|
||||
5D gamma conversion model on isolated ion 0
|
||||
Use Ricardo-Gerardo pair production model 0
|
||||
Livermore data directory epics_2017
|
||||
=======================================================================
|
||||
====== Ionisation Parameters ========
|
||||
=======================================================================
|
||||
Step function for e+- (0.2, 1 mm)
|
||||
Step function for muons/hadrons (0.2, 0.1 mm)
|
||||
Step function for light ions (0.2, 0.1 mm)
|
||||
Step function for general ions (0.2, 0.1 mm)
|
||||
Lowest e+e- kinetic energy 1 keV
|
||||
Lowest muon/hadron kinetic energy 1 keV
|
||||
Use ICRU90 data 0
|
||||
Fluctuations of dE/dx are enabled 1
|
||||
Type of fluctuation model for leptons and hadrons Urban
|
||||
Use built-in Birks satuaration 0
|
||||
Build CSDA range enabled 0
|
||||
Use cut as a final range enabled 0
|
||||
Enable angular generator interface 0
|
||||
Max kinetic energy for CSDA tables 1 GeV
|
||||
Max kinetic energy for NIEL computation 0 eV
|
||||
Linear loss limit 0.01
|
||||
Read data from file for e+e- pair production by mu 0
|
||||
=======================================================================
|
||||
====== Multiple Scattering Parameters ========
|
||||
=======================================================================
|
||||
Type of msc step limit algorithm for e+- 1
|
||||
Type of msc step limit algorithm for muons/hadrons 0
|
||||
Msc lateral displacement for e+- enabled 1
|
||||
Msc lateral displacement for muons and hadrons 0
|
||||
Urban msc model lateral displacement alg96 1
|
||||
Range factor for msc step limit for e+- 0.04
|
||||
Range factor for msc step limit for muons/hadrons 0.2
|
||||
Geometry factor for msc step limitation of e+- 2.5
|
||||
Safety factor for msc step limit for e+- 0.6
|
||||
Skin parameter for msc step limitation of e+- 1
|
||||
Lambda limit for msc step limit for e+- 1 mm
|
||||
Use Mott correction for e- scattering 0
|
||||
Factor used for dynamic computation of angular
|
||||
limit between single and multiple scattering 1
|
||||
Fixed angular limit between single
|
||||
and multiple scattering 3.1416 rad
|
||||
Upper energy limit for e+- multiple scattering 100 MeV
|
||||
Type of electron single scattering model 0
|
||||
Type of nuclear form-factor 1
|
||||
Screening factor 1
|
||||
=======================================================================
|
||||
|
||||
phot: for gamma SubType=12 BuildTable=0
|
||||
LambdaPrime table from 200 keV to 100 TeV in 61 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo
|
||||
|
||||
compt: for gamma SubType=13 BuildTable=1
|
||||
Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1
|
||||
LambdaPrime table from 1 MeV to 100 TeV in 56 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Klein-Nishina : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
conv: for gamma SubType=14 BuildTable=1
|
||||
Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai
|
||||
|
||||
Rayl: for gamma SubType=11 BuildTable=1
|
||||
Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0
|
||||
LambdaPrime table from 150 keV to 100 TeV in 62 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator
|
||||
|
||||
msc: for e- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV
|
||||
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
|
||||
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
|
||||
|
||||
eIoni: for e- XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MollerBhabha : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
eBrem: for e- XStype:4 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai
|
||||
|
||||
CoulombScat: for e- XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
|
||||
|
||||
msc: for e+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV
|
||||
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
|
||||
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
|
||||
|
||||
eIoni: for e+ XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MollerBhabha : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
eBrem: for e+ XStype:4 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai
|
||||
|
||||
annihil: for e+ XStype:2 SubType=5 AtRestModel:Simple BuildTable=0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eplus2gg : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
|
||||
|
||||
msc: for proton SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for proton XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV
|
||||
|
||||
hBrems: for proton XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for proton XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for proton XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
ionIoni: for GenericIon XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV
|
||||
|
||||
msc: for alpha SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
ionIoni: for alpha XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BraggIon : Emin= 0 eV Emax=7.9452 MeV
|
||||
BetheBloch : Emin=7.9452 MeV Emax= 100 TeV
|
||||
|
||||
msc: for anti_proton SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for anti_proton XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV
|
||||
|
||||
hBrems: for anti_proton XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for anti_proton XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for kaon+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for kaon+ XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax=1.05231 MeV
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
|
||||
|
||||
hBrems: for kaon+ XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for kaon+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for kaon- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for kaon- XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax=1.05231 MeV
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
|
||||
|
||||
hBrems: for kaon- XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for kaon- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1
|
||||
Used Lambda table of kaon+
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for mu+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
muIoni: for mu+ XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 200 keV
|
||||
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
|
||||
|
||||
muBrems: for mu+ XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
muPairProd: for mu+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 0.85 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for mu- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
muIoni: for mu- XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 200 keV
|
||||
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
|
||||
|
||||
muBrems: for mu- XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
muPairProd: for mu- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 0.85 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1
|
||||
Used Lambda table of mu+
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for pi+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for pi+ XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax=297.505 keV
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV
|
||||
|
||||
hBrems: for pi+ XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for pi+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for pi- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for pi- XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax=297.505 keV
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV
|
||||
|
||||
hBrems: for pi- XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for pi- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
|
||||
Used Lambda table of pi+
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
====================================================================
|
||||
HADRONIC PROCESSES SUMMARY (verbose level 1)
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for neutron
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV
|
||||
Process: neutronInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
|
||||
Process: nCapture
|
||||
Model: nRadCapture: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV
|
||||
Process: nKiller
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for B-
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: B-Inelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for D-
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: D-Inelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for GenericIon
|
||||
Process: ionInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for He3
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
Process: He3Inelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for alpha
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
Process: alphaInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_He3
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_He3Inelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_alpha
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_alphaInelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_deuteron
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_deuteronInelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-------------------------------------------------------------------------
|
||||
Hadronic Processes for anti_hypertriton
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_lambda
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: anti_lambdaInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_neutron
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_neutronInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_proton
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_protonInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_triton
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_tritonInelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for deuteron
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
Process: dInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for e+
|
||||
Process: positronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for e-
|
||||
Process: electronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for gamma
|
||||
Process: photonNuclear
|
||||
Model: GammaNPreco: 0 eV ---> 200 MeV
|
||||
Model: BertiniCascade: 199 MeV ---> 6 GeV
|
||||
Model: TheoFSGenerator: 3 GeV ---> 100 TeV
|
||||
Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for kaon+
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: kaon+Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for kaon-
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: kaon-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: hBertiniCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for lambda
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: lambdaInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for mu+
|
||||
Process: muonNuclear
|
||||
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for mu-
|
||||
Process: muonNuclear
|
||||
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
|
||||
Process: muMinusCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for pi+
|
||||
Process: hadElastic
|
||||
Model: hElasticGlauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
Process: pi+Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for pi-
|
||||
Process: hadElastic
|
||||
Model: hElasticGlauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
Process: pi-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
Process: hBertiniCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for proton
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
Process: protonInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for sigma-
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: sigma-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: hBertiniCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for triton
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
Process: tInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
=======================================================================
|
||||
====== Geant4 Native Pre-compound Model Parameters ========
|
||||
=======================================================================
|
||||
Type of pre-compound inverse x-section 1
|
||||
Pre-compound model active 1
|
||||
Pre-compound excitation low energy 100 keV
|
||||
Pre-compound excitation high energy 30 MeV
|
||||
Angular generator for pre-compound model 1
|
||||
Use NeverGoBack option for pre-compound model 0
|
||||
Use SoftCutOff option for pre-compound model 0
|
||||
Use CEM transitions for pre-compound model 1
|
||||
Use GNASH transitions for pre-compound model 0
|
||||
Use HETC submodel for pre-compound model 0
|
||||
=======================================================================
|
||||
====== Nuclear De-excitation Module Parameters ========
|
||||
=======================================================================
|
||||
Type of de-excitation inverse x-section 3
|
||||
Type of de-excitation factory Evaporation+GEM
|
||||
Number of de-excitation channels 68
|
||||
Min excitation energy 10 eV
|
||||
Min energy per nucleon for multifragmentation 200 GeV
|
||||
Limit excitation energy for Fermi BreakUp 20 MeV
|
||||
Level density (1/MeV) 0.075
|
||||
Use simple level density model 1
|
||||
Use discrete excitation energy of the residual 0
|
||||
Time limit for long lived isomeres 1 ns
|
||||
Isomer production flag 1
|
||||
Internal e- conversion flag 1
|
||||
Store e- internal conversion data 1
|
||||
Correlated gamma emission flag 0
|
||||
Max 2J for sampling of angular correlations 10
|
||||
=======================================================================
|
||||
### Run 0 starts.
|
||||
--> Event 0 starts.
|
||||
--> Event 10 starts.
|
||||
--> Event 20 starts.
|
||||
--> Event 30 starts.
|
||||
--> Event 40 starts.
|
||||
--> Event 50 starts.
|
||||
--> Event 60 starts.
|
||||
--> Event 70 starts.
|
||||
--> Event 80 starts.
|
||||
--> Event 90 starts.
|
||||
--> Event 100 starts.
|
||||
--> Event 110 starts.
|
||||
--> Event 120 starts.
|
||||
--> Event 130 starts.
|
||||
--> Event 140 starts.
|
||||
--> Event 150 starts.
|
||||
--> Event 160 starts.
|
||||
--> Event 170 starts.
|
||||
--> Event 180 starts.
|
||||
--> Event 190 starts.
|
||||
--> Event 200 starts.
|
||||
--> Event 210 starts.
|
||||
--> Event 220 starts.
|
||||
--> Event 230 starts.
|
||||
--> Event 240 starts.
|
||||
--> Event 250 starts.
|
||||
--> Event 260 starts.
|
||||
--> Event 270 starts.
|
||||
--> Event 280 starts.
|
||||
--> Event 290 starts.
|
||||
--> Event 300 starts.
|
||||
--> Event 310 starts.
|
||||
--> Event 320 starts.
|
||||
--> Event 330 starts.
|
||||
--> Event 340 starts.
|
||||
--> Event 350 starts.
|
||||
--> Event 360 starts.
|
||||
--> Event 370 starts.
|
||||
--> Event 380 starts.
|
||||
--> Event 390 starts.
|
||||
--> Event 400 starts.
|
||||
--> Event 410 starts.
|
||||
--> Event 420 starts.
|
||||
--> Event 430 starts.
|
||||
--> Event 440 starts.
|
||||
--> Event 450 starts.
|
||||
--> Event 460 starts.
|
||||
--> Event 470 starts.
|
||||
--> Event 480 starts.
|
||||
--> Event 490 starts.
|
||||
--> Event 500 starts.
|
||||
--> Event 510 starts.
|
||||
--> Event 520 starts.
|
||||
--> Event 530 starts.
|
||||
--> Event 540 starts.
|
||||
--> Event 550 starts.
|
||||
--> Event 560 starts.
|
||||
--> Event 570 starts.
|
||||
--> Event 580 starts.
|
||||
--> Event 590 starts.
|
||||
--> Event 600 starts.
|
||||
--> Event 610 starts.
|
||||
--> Event 620 starts.
|
||||
--> Event 630 starts.
|
||||
--> Event 640 starts.
|
||||
--> Event 650 starts.
|
||||
--> Event 660 starts.
|
||||
--> Event 670 starts.
|
||||
--> Event 680 starts.
|
||||
--> Event 690 starts.
|
||||
--> Event 700 starts.
|
||||
--> Event 710 starts.
|
||||
--> Event 720 starts.
|
||||
--> Event 730 starts.
|
||||
--> Event 740 starts.
|
||||
--> Event 750 starts.
|
||||
--> Event 760 starts.
|
||||
--> Event 770 starts.
|
||||
--> Event 780 starts.
|
||||
--> Event 790 starts.
|
||||
--> Event 800 starts.
|
||||
--> Event 810 starts.
|
||||
--> Event 820 starts.
|
||||
--> Event 830 starts.
|
||||
--> Event 840 starts.
|
||||
--> Event 850 starts.
|
||||
--> Event 860 starts.
|
||||
--> Event 870 starts.
|
||||
--> Event 880 starts.
|
||||
--> Event 890 starts.
|
||||
--> Event 900 starts.
|
||||
--> Event 910 starts.
|
||||
--> Event 920 starts.
|
||||
--> Event 930 starts.
|
||||
--> Event 940 starts.
|
||||
--> Event 950 starts.
|
||||
--> Event 960 starts.
|
||||
--> Event 970 starts.
|
||||
--> Event 980 starts.
|
||||
--> Event 990 starts.
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
Execution terminated
|
||||
User=59.720000s Real=80.855503s Sys=0.060000s
|
||||
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file ActionInitialization.cc
|
||||
/// \brief Implementation of the ActionInitialization class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef B1ActionInitialization_h
|
||||
#define B1ActionInitialization_h 1
|
||||
|
||||
#include "G4VUserActionInitialization.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// Action initialization class.
|
||||
|
||||
class ActionInitialization : public G4VUserActionInitialization
|
||||
{
|
||||
public:
|
||||
ActionInitialization();
|
||||
~ActionInitialization() override = default;
|
||||
|
||||
void BuildForMaster() const override;
|
||||
void Build() const override;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,70 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file DetectorConstruction.cc
|
||||
/// \brief Implementation of the DetectorConstruction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef B1DetectorConstruction_h
|
||||
#define B1DetectorConstruction_h 1
|
||||
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include <vector>
|
||||
|
||||
#include "G4Region.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
|
||||
#include "G4ChannelingFastSimModel.hh"
|
||||
|
||||
class G4VPhysicalVolume;
|
||||
class G4LogicalVolume;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// Detector construction class to define materials and geometry.
|
||||
|
||||
class DetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
public:
|
||||
DetectorConstruction();
|
||||
~DetectorConstruction() override = default;
|
||||
|
||||
G4VPhysicalVolume* Construct() override;
|
||||
void ConstructSDandField() override;
|
||||
|
||||
private:
|
||||
|
||||
//variables to remember
|
||||
G4Material* fCrystalMaterial{nullptr};
|
||||
G4LogicalVolume* fLogicCrystal{nullptr};
|
||||
G4double fBendingAngle = 0.;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,60 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file PrimaryGeneratorAction.hh
|
||||
/// \brief Definition of the B1::PrimaryGeneratorAction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef B1PrimaryGeneratorAction_h
|
||||
#define B1PrimaryGeneratorAction_h 1
|
||||
|
||||
#include "G4VUserPrimaryGeneratorAction.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4GeneralParticleSource.hh"
|
||||
|
||||
class G4ParticleGun;
|
||||
class G4Event;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// The primary generator action class with GeneralParticleSource.
|
||||
|
||||
class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
|
||||
{
|
||||
public:
|
||||
PrimaryGeneratorAction();
|
||||
~PrimaryGeneratorAction() override;
|
||||
|
||||
// method from the base class
|
||||
void GeneratePrimaries(G4Event*) override;
|
||||
|
||||
private:
|
||||
G4GeneralParticleSource* fGPS{nullptr};
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file RunAction.hh
|
||||
/// \brief Definition of the RunAction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef RunAction_h
|
||||
#define RunAction_h 1
|
||||
|
||||
#include "G4UserRunAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4Run;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// Run action class.
|
||||
|
||||
class RunAction : public G4UserRunAction
|
||||
{
|
||||
public:
|
||||
RunAction();
|
||||
~RunAction() override;
|
||||
|
||||
void BeginOfRunAction(const G4Run*) override;
|
||||
void EndOfRunAction(const G4Run*) override;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file SteppingAction.hh
|
||||
/// \brief Definition of the SteppingAction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef B1SteppingAction_h
|
||||
#define B1SteppingAction_h 1
|
||||
|
||||
#include "G4UserSteppingAction.hh"
|
||||
#include "globals.hh"
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
class G4LogicalVolume;
|
||||
|
||||
class EventAction;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// Stepping action class.
|
||||
|
||||
class SteppingAction : public G4UserSteppingAction
|
||||
{
|
||||
public:
|
||||
SteppingAction();
|
||||
~SteppingAction() override = default;
|
||||
|
||||
// method from the base class
|
||||
void UserSteppingAction(const G4Step*) override;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,32 @@
|
||||
# Macro file for the initialization of example ch01
|
||||
# in interactive session
|
||||
#
|
||||
# Set some default verbose
|
||||
/control/verbose 2
|
||||
/control/saveHistory
|
||||
/run/verbose 2
|
||||
#
|
||||
# Change the default number of threads (in multi-threaded mode)
|
||||
#/run/numberOfThreads 4
|
||||
#
|
||||
#Initialize kernel
|
||||
/run/initialize
|
||||
#
|
||||
# Initialize kernel
|
||||
/run/initialize
|
||||
#
|
||||
#coordinate distribution (radial Gauss)
|
||||
/gps/pos/centre 0. 0. -1. cm
|
||||
/gps/pos/type Beam
|
||||
/gps/pos/sigma_x 0.07 mm
|
||||
/gps/pos/sigma_y 0.2 mm
|
||||
#
|
||||
#angular distribution (radial Gauss)
|
||||
/gps/ang/type beam2d
|
||||
/gps/ang/rot1 1 0 0
|
||||
/gps/ang/rot2 0 -1 0
|
||||
/gps/ang/sigma_x 30.E-6 rad
|
||||
/gps/ang/sigma_y 30.E-6 rad
|
||||
#
|
||||
# Visualization setting
|
||||
/control/execute vis.mac
|
||||
@@ -0,0 +1,33 @@
|
||||
/random/setSeeds 19577794 424238336
|
||||
#setting number of cores
|
||||
/run/numberOfThreads 2
|
||||
|
||||
/run/initialize
|
||||
|
||||
#settings
|
||||
/control/verbose 0
|
||||
/run/verbose 0
|
||||
/tracking/verbose 0
|
||||
|
||||
#beam
|
||||
/gps/particle e-
|
||||
|
||||
#coordinate distribution (radial Gauss)
|
||||
/gps/pos/centre 0. 0. -1. cm
|
||||
/gps/pos/type Beam
|
||||
/gps/pos/sigma_x 0.07 mm
|
||||
/gps/pos/sigma_y 0.2 mm
|
||||
|
||||
#angular distribution (radial Gauss)
|
||||
/gps/ang/type beam2d
|
||||
/gps/ang/rot1 1 0 0
|
||||
/gps/ang/rot2 0 -1 0
|
||||
/gps/ang/sigma_x 30.E-6 rad
|
||||
/gps/ang/sigma_y 30.E-6 rad
|
||||
|
||||
#energy distribution (constant)
|
||||
/gps/ene/mono 0.855 GeV
|
||||
|
||||
#statistics
|
||||
/run/printProgress 10
|
||||
/run/beamOn 1000
|
||||
@@ -0,0 +1,60 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file ActionInitialization.cc
|
||||
/// \brief Implementation of the ActionInitialization class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "ActionInitialization.hh"
|
||||
#include "PrimaryGeneratorAction.hh"
|
||||
#include "RunAction.hh"
|
||||
#include "SteppingAction.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
ActionInitialization::ActionInitialization()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void ActionInitialization::BuildForMaster() const
|
||||
{
|
||||
SetUserAction(new RunAction);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void ActionInitialization::Build() const
|
||||
{
|
||||
SetUserAction(new PrimaryGeneratorAction);
|
||||
|
||||
SetUserAction(new RunAction);
|
||||
|
||||
SetUserAction(new SteppingAction);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,205 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file DetectorConstruction.cc
|
||||
/// \brief Implementation of the DetectorConstruction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "DetectorConstruction.hh"
|
||||
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4NistManager.hh"
|
||||
#include "G4Box.hh"
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4RegionStore.hh"
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "PrimaryGeneratorAction.hh"
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
DetectorConstruction::DetectorConstruction()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4VPhysicalVolume* DetectorConstruction::Construct()
|
||||
{
|
||||
//Check overlap option
|
||||
G4bool checkOverlaps = true;
|
||||
|
||||
//Materials
|
||||
G4NistManager* nist = G4NistManager::Instance();
|
||||
G4Material* world_mat = nist->FindOrBuildMaterial("G4_Galactic");
|
||||
G4Material* silicon = nist->FindOrBuildMaterial("G4_Si");
|
||||
|
||||
//World
|
||||
G4Box* solidWorld = new G4Box("World", 0.2*CLHEP::m, 0.2*CLHEP::m, 10.*CLHEP::m);
|
||||
G4LogicalVolume* logicWorld = new G4LogicalVolume(solidWorld, world_mat, "World");
|
||||
G4VPhysicalVolume* physWorld = new G4PVPlacement
|
||||
(0, // no rotation
|
||||
G4ThreeVector(), // centre position
|
||||
logicWorld, // its logical volume
|
||||
"World", // its name
|
||||
0, // its mother volume
|
||||
false, // no boolean operation
|
||||
0, // copy number
|
||||
checkOverlaps); // overlaps checking
|
||||
logicWorld->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
|
||||
|
||||
// --------------- Crystal ------------------------------------
|
||||
|
||||
/*parameters of the following experiment:
|
||||
Only channeling: A. Mazzolari et al. Phys. Rev. Lett. 112, 135503 (2014)
|
||||
Radition: L. Bandiera et al. Phys. Rev. Lett. 115, 025504 (2015)
|
||||
Published experimental validation of G4ChannelingFastSimModel (only channeling):
|
||||
A. Sytov et al. Journal of the Korean Physical Society 83, 132–139 (2023)
|
||||
*/
|
||||
|
||||
//Select crystal material
|
||||
fCrystalMaterial = nist->FindOrBuildMaterial("G4_Si");
|
||||
|
||||
//Setting crystal rotation angle (also the angle of crystal planes vs the beam)
|
||||
//Crystal rotation angle (also the angle of crystal planes vs the beam)
|
||||
G4double angleX = 0.*1e-6; //rad
|
||||
G4RotationMatrix* crystalRotationMatrix = new G4RotationMatrix;
|
||||
crystalRotationMatrix->rotateY(-angleX);
|
||||
|
||||
//Crystal bending angle
|
||||
fBendingAngle = 0.905*CLHEP::mrad;
|
||||
|
||||
//setting crystal dimensions:
|
||||
G4ThreeVector crystalSize = G4ThreeVector(20.*CLHEP::mm,
|
||||
20.*CLHEP::mm,
|
||||
0.0305*CLHEP::mm);
|
||||
|
||||
//Setting crystal position
|
||||
G4ThreeVector posCrystal = G4ThreeVector(0., 0., crystalSize.z()/2.);
|
||||
|
||||
//crystal volume
|
||||
G4Box* solidCrystal = new G4Box("Crystal",
|
||||
crystalSize.x()/2,
|
||||
crystalSize.y()/2,
|
||||
crystalSize.z()/2.);
|
||||
|
||||
fLogicCrystal = new G4LogicalVolume(solidCrystal,
|
||||
fCrystalMaterial,
|
||||
"Crystal");
|
||||
new G4PVPlacement(crystalRotationMatrix,
|
||||
posCrystal,
|
||||
fLogicCrystal,
|
||||
"Crystal",
|
||||
logicWorld,
|
||||
false,
|
||||
0,
|
||||
checkOverlaps);
|
||||
|
||||
//crystal region (necessary for the FastSim model)
|
||||
G4Region* regionCh = new G4Region("Crystal");
|
||||
regionCh->AddRootLogicalVolume(fLogicCrystal);
|
||||
|
||||
//visualization attributes
|
||||
G4VisAttributes* crystalVisAttribute =
|
||||
new G4VisAttributes(G4Colour(1., 0., 0.));
|
||||
crystalVisAttribute->SetForceSolid(true);
|
||||
fLogicCrystal->SetVisAttributes(crystalVisAttribute);
|
||||
|
||||
//print crystal info
|
||||
G4cout << "Crystal size: " << crystalSize.x()/CLHEP::mm
|
||||
<< " " << crystalSize.y()/CLHEP::mm
|
||||
<< " " << crystalSize.z()/CLHEP::mm << " mm3" << G4endl;
|
||||
G4cout << "Crystal bending angle: " << fBendingAngle << " rad" << G4endl;
|
||||
G4cout << "Crystal angleX: " << angleX << " rad" << G4endl;
|
||||
|
||||
// --------------- Detector -----------------------------------
|
||||
//Setting detector position
|
||||
G4ThreeVector posDetector = G4ThreeVector(0, 0, 5973*CLHEP::mm);
|
||||
|
||||
//particle detector volume
|
||||
G4Box* detector = new G4Box("Detector",
|
||||
10*CLHEP::cm/2,
|
||||
10*CLHEP::cm/2,
|
||||
0.3*CLHEP::mm/2);
|
||||
|
||||
G4LogicalVolume* logicDetector = new G4LogicalVolume(detector,
|
||||
silicon,
|
||||
"Detector");
|
||||
new G4PVPlacement(0,
|
||||
posDetector,
|
||||
logicDetector,
|
||||
"Detector",
|
||||
logicWorld,
|
||||
false,
|
||||
0,
|
||||
checkOverlaps);
|
||||
|
||||
//visualization attributes
|
||||
G4VisAttributes* detectorVisAttribute =
|
||||
new G4VisAttributes(G4Colour(0., 0., 1));
|
||||
detectorVisAttribute->SetForceSolid(true);
|
||||
logicDetector->SetVisAttributes(detectorVisAttribute);
|
||||
|
||||
//always return the physical World
|
||||
return physWorld;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void DetectorConstruction::ConstructSDandField()
|
||||
{
|
||||
// --------------- fast simulation ----------------------------
|
||||
//extract the region of the crystal from the store
|
||||
G4RegionStore* regionStore = G4RegionStore::GetInstance();
|
||||
G4Region* regionCh = regionStore->GetRegion("Crystal");
|
||||
|
||||
///create the channeling model for this region
|
||||
G4ChannelingFastSimModel* channelingModel =
|
||||
new G4ChannelingFastSimModel("ChannelingModel", regionCh);
|
||||
|
||||
///Crystal planes or axes considered
|
||||
///Use brackets (...) for planes and <...> for axes
|
||||
G4String lattice = "(111)";
|
||||
|
||||
///activate the channeling model
|
||||
channelingModel->Input(fCrystalMaterial, lattice);
|
||||
///setting bending angle of the crystal planes (default is 0)
|
||||
channelingModel->GetCrystalData()->SetBendingAngle(fBendingAngle,fLogicCrystal);
|
||||
|
||||
/*
|
||||
activate radiation model (do it only when you want to take into account the
|
||||
radiation production in an oriented crystal; it reduces simulation speed.)
|
||||
*/
|
||||
G4bool activateRadiationModel = true;
|
||||
if (activateRadiationModel)
|
||||
{
|
||||
channelingModel->RadiationModelActivate();
|
||||
G4cout << "Radiation model activated" << G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file PrimaryGeneratorAction.cc
|
||||
/// \brief Implementation of the PrimaryGeneratorAction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "PrimaryGeneratorAction.hh"
|
||||
#include "G4Event.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PrimaryGeneratorAction::PrimaryGeneratorAction()
|
||||
{
|
||||
fGPS = new G4GeneralParticleSource();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PrimaryGeneratorAction::~PrimaryGeneratorAction()
|
||||
{
|
||||
delete fGPS;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
|
||||
{
|
||||
fGPS->GeneratePrimaryVertex(anEvent);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file RunAction.cc
|
||||
/// \brief Implementation of the RunAction class
|
||||
|
||||
#include "RunAction.hh"
|
||||
#include "G4AnalysisManager.hh"
|
||||
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4Run.hh"
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
RunAction::RunAction()
|
||||
: G4UserRunAction()
|
||||
{
|
||||
//using analysis manager for output
|
||||
auto analysisManager = G4AnalysisManager::Instance();
|
||||
|
||||
//setting our histogram
|
||||
//a true range and bin number is set up in BeginOfRunAction
|
||||
analysisManager->CreateH1("x_out","Detector",100,-10,10);
|
||||
analysisManager->CreateH1("Spectrum","Spectrum",20,0,100);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
RunAction::~RunAction()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void RunAction::BeginOfRunAction(const G4Run*)
|
||||
{
|
||||
//opening output file
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
G4String fileName = "results.root";
|
||||
analysisManager->OpenFile(fileName);
|
||||
|
||||
//histogram range in X
|
||||
G4double rangeX = 100*CLHEP::mm/2;
|
||||
//setting histograms
|
||||
G4double binNumber = 500;
|
||||
analysisManager->SetH1(0,binNumber,-rangeX,rangeX,"mm");
|
||||
analysisManager->SetH1XAxisTitle(0,"x [mm]");
|
||||
analysisManager->SetH1YAxisTitle(0,"Count");
|
||||
|
||||
analysisManager->SetH1(1,20,0,100,"MeV");
|
||||
analysisManager->SetH1XAxisTitle(1,"Egamma [MeV]");
|
||||
analysisManager->SetH1YAxisTitle(1,"Count");
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void RunAction::EndOfRunAction(const G4Run*)
|
||||
{
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
analysisManager->Write();
|
||||
analysisManager->CloseFile();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -0,0 +1,84 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file SteppingAction.cc
|
||||
/// \brief Implementation of the SteppingAction class
|
||||
|
||||
#include "SteppingAction.hh"
|
||||
#include "DetectorConstruction.hh"
|
||||
|
||||
#include "G4Step.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
#include "G4AnalysisManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
SteppingAction::SteppingAction()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void SteppingAction::UserSteppingAction(const G4Step* step)
|
||||
{
|
||||
|
||||
G4String volumeName = step->GetPreStepPoint()->GetTouchableHandle()
|
||||
->GetVolume()->GetName();
|
||||
|
||||
//if a particle enters the detector volume
|
||||
if (step->GetPreStepPoint()-> GetStepStatus()==G4StepStatus::fGeomBoundary&&
|
||||
volumeName=="Detector")
|
||||
{
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
|
||||
//we are writing only charged particles
|
||||
if(std::abs(step->GetTrack()->GetDefinition()->GetPDGCharge())>DBL_EPSILON)
|
||||
{
|
||||
//coordinate in the horizontal plane
|
||||
G4double x0 = step->GetPreStepPoint()->GetPosition().getX()/CLHEP::mm;
|
||||
|
||||
//filling histogram
|
||||
analysisManager->FillH1(0, x0);
|
||||
}
|
||||
|
||||
//gamma spectrum
|
||||
if(step->GetTrack()->GetDefinition()->GetParticleName()=="gamma")
|
||||
{
|
||||
//coordinate in the horizontal plane
|
||||
G4double eGamma0 = step->GetPreStepPoint()->GetTotalEnergy()/CLHEP::MeV;
|
||||
|
||||
//filling histogram
|
||||
analysisManager->FillH1(1, eGamma0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
//}
|
||||
@@ -0,0 +1,69 @@
|
||||
#Macro for the visualization
|
||||
|
||||
#Create an empty scene
|
||||
/vis/scene/create
|
||||
|
||||
#Create a scene handler for a specific graphics system
|
||||
/vis/open OGL
|
||||
#/vis/open DAWNFILE
|
||||
#/vis/open VRML2FILE
|
||||
|
||||
#Disable auto refresh and quieten vis messages whilst scene and
|
||||
#trajectories are established:
|
||||
/vis/viewer/set/autoRefresh false
|
||||
/vis/verbose errors
|
||||
|
||||
#Draw the scene
|
||||
/vis/drawVolume
|
||||
/vis/viewer/flush
|
||||
|
||||
#Set the camera
|
||||
/vis/viewer/reset
|
||||
/vis/viewer/set/viewpointThetaPhi 135. 45. deg
|
||||
/vis/viewer/zoom 2
|
||||
|
||||
#Specify style (surface, wireframe, auxiliary edges,...)
|
||||
/vis/viewer/set/style wireframe
|
||||
/vis/viewer/set/lineSegmentsPerCircle 100
|
||||
|
||||
#Geometry
|
||||
#/vis/geometry/set/lineWidth all 1 3
|
||||
|
||||
#Decoration
|
||||
#Axes
|
||||
/vis/set/lineWidth 3
|
||||
#/vis/scene/add/axes 0 0 0 1.0 m #Simple axes: x=red, y=green, z=blue.
|
||||
#Name
|
||||
#/vis/set/textColour red
|
||||
#/vis/set/textLayout right
|
||||
#/vis/scene/add/text2D 0.8 -0.85 24 ! ! FastSimChannelingRad
|
||||
#Frame
|
||||
#/vis/set/colour red
|
||||
#/vis/set/lineWidth 2
|
||||
#/vis/scene/add/frame #Simple frame around the view
|
||||
#/vis/set/colour #Revert to default colour (white)
|
||||
#/vis/set/lineWidth #Revert to default line width (1.)
|
||||
|
||||
#Commands for the drawing the tracks
|
||||
/vis/scene/add/eventID #Drawn at end of event
|
||||
/tracking/storeTrajectory 0 #(if too many tracks cause core dumped => storeTrajectory 0)
|
||||
/vis/scene/endOfEventAction accumulate
|
||||
/vis/scene/add/trajectories smooth rich
|
||||
#/vis/modeling/trajectories/create/drawByParticleID
|
||||
/vis/modeling/trajectories/create/drawByCharge
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2
|
||||
|
||||
#Draw hits at end of event:
|
||||
/vis/scene/add/hits
|
||||
|
||||
#Geometry test (it can cause a "core dumped")
|
||||
/geometry/navigator/reset
|
||||
/geometry/test/run
|
||||
|
||||
#Re-establish auto refreshing and verbosity:
|
||||
/vis/viewer/set/autoRefresh true
|
||||
/vis/verbose warnings
|
||||
|
||||
#For file-based drivers, use this to create an empty detector view:
|
||||
#/vis/viewer/flush
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
///\file "exoticphysics/channeling/ch2/.README.txt"
|
||||
///\brief Example ch2 README page
|
||||
|
||||
/*! \page Examplech2 Example ch2
|
||||
|
||||
\author Alexei Sytov, Gianfranco Paternò - INFN Ferrara Division (Italy) \n
|
||||
sytov@fe.infn.it, paterno@fe.infn.it
|
||||
|
||||
\section ch2_s1 INTRODUCTION
|
||||
Example ch2 is an enhanced version of ch1, providing the user with the full functionality of
|
||||
both the G4ChannelingFastSimModel and G4BaierKatkov, with parameters set up via a macro,
|
||||
in order to simulate the physics of channeling and channeling radiation/coherent bremsstrahlung.
|
||||
|
||||
The example can be exploited for a wide range of cases to study coherent effects in
|
||||
a straight, bent or periodically bent crystal (crystalline undulator). Channeling
|
||||
physics in ch2 is active for protons, ions, muons, pions, electrons and their antiparticles.
|
||||
Any other charged particle can also be activated.
|
||||
|
||||
\section ch2_s2 DESCRIPTION
|
||||
The setup of the example ch2 is identical to ch1. As ch1, this example includes a bent crystal
|
||||
and a detector positioned behind it. Like ch1, it is based on the experiments on
|
||||
channeling [1] and channeling radiation [2] in a bent crystal, carried out at
|
||||
Mainz Mikrotron MAMI with 855 MeV electrons. The experimental validation of
|
||||
G4ChannelingFastSimModel is described in [3].
|
||||
|
||||
However, since ch2 parameters are fully set up in the macro run.mac, this example
|
||||
is quite flexible and can be easily adapted for entirely different cases.
|
||||
|
||||
A description of all the available options is provided in run.mac.
|
||||
It includes crystal and detector geometry, activation flags for
|
||||
G4ChannelingFastSimModel and G4BaierKatkov and various options.
|
||||
|
||||
The example also provides detailed descriptions of various options for
|
||||
G4ChannelingFastSimModel and G4BaierKatkov, which can adjust model parameters
|
||||
depending on the specific case (see ConstructSDandField in DetectorConstruction).
|
||||
|
||||
The front surface of the crystal is placed at z=0 (with z as the beam direction),
|
||||
while the front position of the detector can be set up via run.mac.
|
||||
|
||||
The output is recorded into the file results.root as a set of root ntuples.
|
||||
These ntuples include:
|
||||
-# crystal: particles recorded at the crystal entrance,
|
||||
-# detector: all particles (except photons) recorded at the detector entrance,
|
||||
-# detector_photons: photons recorded at the detector entrance.
|
||||
|
||||
The format of every ntuple includes the following 10 variables (columns):
|
||||
|
||||
"eventID", "volume", "x", "y", "angle_x", "angle_y", "Ekin", "particle", "particleID", "parentID"
|
||||
|
||||
The variables represent:
|
||||
-# the event number within the run (column 0),
|
||||
-# the volume, either the crystal or the detector (column 1),
|
||||
-# the coordinate (x,y) and the angles (x'=dx/dz, y'=dy/dz) of the impinging particles (columns 2-6),
|
||||
-# the kinetic energy of the particle (column 7),
|
||||
-# the particle name (column 8),
|
||||
-# the particle ID (column 9),
|
||||
-# the parent ID of the particle (column 10).
|
||||
|
||||
To visualize these data, one should either open results.root using root TBrowser or use the python script analysis_ch2.py.
|
||||
|
||||
\section ch1_s3 REFERENCES
|
||||
|
||||
-# A. Mazzolari et al. <a href="https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.112.135503">Phys. Rev. Lett. 112, 135503 (2014).</a>
|
||||
-# L. Bandiera et al. <a href="https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.115.025504">Phys. Rev. Lett. 115, 025504 (2015).</a>
|
||||
-# A. Sytov et al. <a href="https://link.springer.com/article/10.1007/s40042-023-00834-6"> Journal of the Korean Physical Society 83, 132–139 (2023).</a>
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,56 @@
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup the project
|
||||
cmake_minimum_required(VERSION 3.16...3.21)
|
||||
project(ch2)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Find Geant4 package, activating all available UI and Vis drivers by default
|
||||
# You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui
|
||||
# to build a batch mode only executable
|
||||
#
|
||||
option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON)
|
||||
if(WITH_GEANT4_UIVIS)
|
||||
find_package(Geant4 REQUIRED ui_all vis_all)
|
||||
else()
|
||||
find_package(Geant4 REQUIRED)
|
||||
endif()
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup Geant4 include directories and compile definitions
|
||||
#
|
||||
include(${Geant4_USE_FILE})
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Copy all scripts to the build directory, i.e. the directory in which we
|
||||
# build ch2. This is so that we can run the executable directly because it
|
||||
# relies on these scripts being in the current working directory.
|
||||
#
|
||||
set(TESTch2_SCRIPTS
|
||||
init_vis.mac
|
||||
vis.mac
|
||||
run.mac
|
||||
analysis_ch2.py
|
||||
)
|
||||
|
||||
foreach(_script ${TESTch2_SCRIPTS})
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/${_script}
|
||||
${PROJECT_BINARY_DIR}/${_script}
|
||||
COPYONLY
|
||||
)
|
||||
endforeach()
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add the executable, and link it to the Geant4 libraries
|
||||
#
|
||||
# Locate sources and headers for this project
|
||||
file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc)
|
||||
file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add the executable, and link it to the Geant4 libraries
|
||||
#
|
||||
add_executable(ch2 ch2.cc ${sources} ${headers})
|
||||
target_include_directories(ch2 PRIVATE include)
|
||||
target_link_libraries(ch2 PRIVATE ${Geant4_LIBRARIES})
|
||||
@@ -0,0 +1,9 @@
|
||||
# Category ch1 History
|
||||
|
||||
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
|
||||
which **must** added in reverse chronological order (newest at the top). It must **not**
|
||||
be used as a substitute for writing good git commit messages!
|
||||
|
||||
|
||||
## 2024-09-25 Alexei Sytov (ch2-V11-02-00)
|
||||
- First implementation
|
||||
@@ -0,0 +1,68 @@
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
|
||||
=========================================================
|
||||
|
||||
Example ch2
|
||||
-----------
|
||||
A. Sytov, G. Paternò
|
||||
INFN Ferrara Division, sytov@fe.infn.it, paterno@fe.infn.it
|
||||
|
||||
INTRODUCTION
|
||||
Example ch2 is an enhanced version of ch1, providing the user with the full functionality of
|
||||
both the G4ChannelingFastSimModel and G4BaierKatkov, with parameters set up via a macro,
|
||||
in order to simulate the physics of channeling and channeling radiation/coherent bremsstrahlung.
|
||||
|
||||
The example can be exploited for a wide range of cases to study coherent effects in
|
||||
a straight, bent or periodically bent crystal (crystalline undulator). Channeling
|
||||
physics in ch2 is active for protons, ions, muons, pions, electrons and their antiparticles.
|
||||
Any other charged particle can also be activated.
|
||||
|
||||
DESCRIPTION
|
||||
|
||||
The setup of the example ch2 is identical to ch1. As ch1, this example includes a bent crystal
|
||||
and a detector positioned behind it. Like ch1, it is based on the experiments on
|
||||
channeling [1] and channeling radiation [2] in a bent crystal, carried out at
|
||||
Mainz Mikrotron MAMI with 855 MeV electrons. The experimental validation of
|
||||
G4ChannelingFastSimModel is described in [3].
|
||||
|
||||
However, since ch2 parameters are fully set up in the macro run.mac, this example
|
||||
is quite flexible and can be easily adapted for entirely different cases.
|
||||
|
||||
A description of all the available options is provided in run.mac.
|
||||
It includes crystal and detector geometry, activation flags for
|
||||
G4ChannelingFastSimModel and G4BaierKatkov and various options.
|
||||
|
||||
The example also provides detailed descriptions of various options for
|
||||
G4ChannelingFastSimModel and G4BaierKatkov, which can adjust model parameters
|
||||
depending on the specific case (see ConstructSDandField in DetectorConstruction).
|
||||
|
||||
The front surface of the crystal is placed at z=0 (with z as the beam direction),
|
||||
while the front position of the detector can be set up via run.mac.
|
||||
|
||||
The output is recorded into the file results.root as a set of root ntuples.
|
||||
These ntuples include:
|
||||
- crystal: particles recorded at the crystal entrance,
|
||||
- detector: all particles (except photons) recorded at the detector entrance,
|
||||
- detector_photons: photons recorded at the detector entrance.
|
||||
|
||||
The format of every ntuple includes the following 10 variables (columns):
|
||||
|
||||
"eventID", "volume", "x", "y", "angle_x", "angle_y", "Ekin", "particle", "particleID", "parentID"
|
||||
|
||||
The variables represent:
|
||||
- the event number within the run (column 0),
|
||||
- the volume, either the crystal or the detector (column 1),
|
||||
- the coordinate (x,y) and the angles (x'=dx/dz, y'=dy/dz) of the impinging particles (columns 2-6),
|
||||
- the kinetic energy of the particle (column 7),
|
||||
- the particle name (column 8),
|
||||
- the particle ID (column 9),
|
||||
- the parent ID of the particle (column 10).
|
||||
|
||||
To visualize these data, one should either open results.root using root TBrowser or use the python script analysis_ch2.py.
|
||||
|
||||
REFERENCES
|
||||
[1] A. Mazzolari et al. Phys. Rev. Lett. 112, 135503 (2014).
|
||||
[2] L. Bandiera et al. Phys. Rev. Lett. 115, 025504 (2015).
|
||||
[3] A. Sytov et al. Journal of the Korean Physical Society 83, 132–139 (2023).
|
||||
@@ -0,0 +1,113 @@
|
||||
#!/usr/bin/env python
|
||||
# coding: utf-8
|
||||
|
||||
# Read and plot the simulation results of particle interactions in Oriented Crystals
|
||||
# obatined through example ch2, which is baed on G4ChannelingFastSimModel.
|
||||
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
import matplotlib.pyplot as plt
|
||||
import os
|
||||
import uproot
|
||||
|
||||
################################### INPUT ############################################
|
||||
# Set path and filename of the simulation file
|
||||
G4_sim_path = ""
|
||||
root_file = "results"
|
||||
|
||||
Nmax = 1e5 #max number of events to elaborate
|
||||
|
||||
save_fig = True
|
||||
fig_path = G4_sim_path
|
||||
|
||||
apply_collimation = False
|
||||
coll_angle = 20/8627 #rad
|
||||
NbinE = 25
|
||||
rangeE = [0, 10] #MeV
|
||||
|
||||
NbinTheta = 100
|
||||
rangeTheta = [-1, 2] #mrad
|
||||
######################################################################################
|
||||
|
||||
# Create figure directory if it does not exist
|
||||
if fig_path != '' and not os.path.exists(fig_path):
|
||||
os.makedirs(fig_path)
|
||||
print('created fig_path:', fig_path)
|
||||
|
||||
# Open the simulation output root file
|
||||
rf = uproot.open(G4_sim_path + root_file + '.root')
|
||||
rf_content = [item.split(';')[0] for item in rf.keys()]
|
||||
print('rf_content:', rf_content, '\n')
|
||||
|
||||
# Import the scoring ntuples and convert them into pandas dataframes
|
||||
branches = ["eventID", "volume", "x", "y", "angle_x", "angle_y",
|
||||
"Ekin" , "particle", "particleID", "parentID"]
|
||||
df_in = rf['crystal'].arrays(branches, library='pd')
|
||||
df_out = rf['detector'].arrays(branches, library='pd')
|
||||
df_ph = rf['detector_photons'].arrays(branches, library='pd')
|
||||
|
||||
# Define in and out dataframes
|
||||
df_in_all_primary = df_in[df_in.parentID == 0]
|
||||
df_out_all_primary = df_out[df_out.parentID == 0]
|
||||
Nmax = min([int(Nmax), len(df_out_all_primary)])
|
||||
df_in_primary = df_in_all_primary[:Nmax]
|
||||
df_out_primary = df_out_all_primary[:Nmax]
|
||||
|
||||
# Select only the columns useful for deflection
|
||||
df_in_primary_sel = df_in_primary[["eventID", "angle_x", "angle_y"]]
|
||||
df_out_primary_sel = df_out_primary[["eventID", "angle_x", "angle_y"]]
|
||||
del df_in_primary, df_out_primary
|
||||
|
||||
# Array with photon energies and angles
|
||||
Eph = df_ph['Ekin'].values #MeV
|
||||
Nph = len(Eph)
|
||||
print("number of emitted photons:", Nph)
|
||||
thetaX_ph = df_ph['angle_x'].values*1e3 #rad -> mrad
|
||||
thetaY_ph = df_ph['angle_y'].values*1e3 #rad -> mrad
|
||||
|
||||
# Take only the photons inside the collimator acceptance
|
||||
theta_ph = np.sqrt(thetaX_ph**2 + thetaY_ph**2)
|
||||
if apply_collimation:
|
||||
thetaX_ph = thetaX_ph[theta_ph <= coll_angle]
|
||||
thetaY_ph = thetaY_ph[theta_ph <= coll_angle]
|
||||
Eph = Eph[theta_ph <= coll_angle]
|
||||
theta_ph = theta_ph[theta_ph <= coll_angle]
|
||||
|
||||
# Calculate the scored photon energy spectrum
|
||||
spectrum, EbinEdges = np.histogram(Eph, bins=NbinE, range=rangeE, density=True)
|
||||
Ebin = EbinEdges[:-1] + (EbinEdges[1]-EbinEdges[0])*0.5
|
||||
spectral_intensity = Ebin * spectrum
|
||||
|
||||
# Plot the photon energy spectrum
|
||||
fig = plt.figure(figsize=(13, 6))
|
||||
fs = 16
|
||||
lw = 2
|
||||
bw = 0.6
|
||||
plt.subplot(1,2,1)
|
||||
plt.bar(Ebin, spectrum, width=bw, linewidth=lw, alpha=1, label='')
|
||||
plt.title('Emitted photon spectrum')
|
||||
plt.xlabel('E [MeV]', fontsize=fs)
|
||||
plt.ylabel('1/N$\\times$dN/dE', fontsize=fs)
|
||||
plt.yscale('log')
|
||||
plt.subplot(1,2,2)
|
||||
plt.bar(Ebin, spectral_intensity, width=bw, linewidth=lw, alpha=1, label='')
|
||||
plt.title('Emitted photon spectral intensity')
|
||||
plt.xlabel('E [MeV]', fontsize=fs)
|
||||
plt.ylabel('1/N$\\times$dW/dE', fontsize=fs)
|
||||
plt.yscale('log')
|
||||
if save_fig:
|
||||
plt.savefig(fig_path + 'spectrum.jpg')
|
||||
plt.close()
|
||||
|
||||
# Plot angle_x distribution at the detector
|
||||
thetaXdistrib, thetaEdges = np.histogram(df_out_primary_sel["angle_x"].values*1e3, \
|
||||
bins=NbinTheta, range=rangeTheta, density=True)
|
||||
thetabin = thetaEdges[:-1] + (thetaEdges[1]-thetaEdges[0])*0.5
|
||||
plt.figure(figsize=(9, 6))
|
||||
plt.plot(thetabin, thetaXdistrib, linewidth=lw, alpha=1, label='')
|
||||
plt.xlabel('$\\theta_X$ [mrad]', fontsize=fs)
|
||||
plt.ylabel('1/N$\\times$dN/d$\\theta_X$', fontsize=fs)
|
||||
if save_fig:
|
||||
plt.savefig(fig_path + 'thetaXdistribution.jpg')
|
||||
plt.close()
|
||||
|
||||
@@ -0,0 +1,146 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file ch2.cc
|
||||
/// \brief Main program of the ch2 example
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "DetectorConstruction.hh"
|
||||
#include "ActionInitialization.hh"
|
||||
|
||||
#include "G4RunManagerFactory.hh"
|
||||
#include "G4SteppingVerbose.hh"
|
||||
#include "G4UImanager.hh"
|
||||
#include "FTFP_BERT.hh"
|
||||
#include "G4FastSimulationPhysics.hh"
|
||||
|
||||
#include "G4VisExecutive.hh"
|
||||
#include "G4UIExecutive.hh"
|
||||
|
||||
#include "Randomize.hh"
|
||||
#include "G4Timer.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
int main(int argc,char** argv)
|
||||
{
|
||||
// Get current time
|
||||
G4Timer* theTimer = new G4Timer();
|
||||
theTimer->Start();
|
||||
|
||||
// Choose the Random engine
|
||||
G4Random::setTheEngine(new CLHEP::RanecuEngine);
|
||||
CLHEP::HepRandom::setTheSeed(0.);
|
||||
|
||||
//use G4SteppingVerboseWithUnits
|
||||
G4int precision = 4;
|
||||
G4SteppingVerbose::UseBestUnit(precision);
|
||||
|
||||
// Detect interactive mode (if no arguments) and define UI session
|
||||
G4UIExecutive* ui = nullptr;
|
||||
if ( argc == 1 ) { ui = new G4UIExecutive(argc, argv); }
|
||||
|
||||
// Construct the default run manager
|
||||
auto* runManager =
|
||||
G4RunManagerFactory::CreateRunManager(G4RunManagerType::Default);
|
||||
|
||||
// Set mandatory initialization classes
|
||||
//
|
||||
// Detector construction
|
||||
runManager->SetUserInitialization(new DetectorConstruction());
|
||||
|
||||
// Physics list
|
||||
G4VModularPhysicsList* physicsList = new FTFP_BERT;
|
||||
|
||||
// -- Create helper tool, used to activate the fast simulation:
|
||||
G4FastSimulationPhysics* fastSimulationPhysics = new G4FastSimulationPhysics();
|
||||
fastSimulationPhysics->BeVerbose();
|
||||
// -- activation of fast simulation for particles having fast simulation models
|
||||
// -- attached in the mass geometry:
|
||||
// you may add any charged particles here
|
||||
// CAUTION: for the particles other then e+- you would likely want
|
||||
// to switch off the radiation
|
||||
fastSimulationPhysics->ActivateFastSimulation("e-");
|
||||
fastSimulationPhysics->ActivateFastSimulation("e+");
|
||||
fastSimulationPhysics->ActivateFastSimulation("proton");
|
||||
fastSimulationPhysics->ActivateFastSimulation("anti_proton");
|
||||
fastSimulationPhysics->ActivateFastSimulation("mu+");
|
||||
fastSimulationPhysics->ActivateFastSimulation("mu-");
|
||||
fastSimulationPhysics->ActivateFastSimulation("pi+");
|
||||
fastSimulationPhysics->ActivateFastSimulation("pi-");
|
||||
fastSimulationPhysics->ActivateFastSimulation("GenericIon");
|
||||
//fastSimulationPhysics->ActivateFastSimulation("your_particle");
|
||||
// you may activate this model for any charged particle
|
||||
// a neutral particle will not enter the model
|
||||
|
||||
// -- Attach the fast simulation physics constructor to the physics list:
|
||||
physicsList->RegisterPhysics( fastSimulationPhysics );
|
||||
physicsList->SetVerboseLevel(1);
|
||||
runManager->SetUserInitialization(physicsList);
|
||||
|
||||
// User action initialization
|
||||
runManager->SetUserInitialization(new ActionInitialization());
|
||||
|
||||
// Initialize visualization
|
||||
G4VisManager* visManager = new G4VisExecutive;
|
||||
// G4VisExecutive can take a verbosity argument - see /vis/verbose guidance.
|
||||
// G4VisManager* visManager = new G4VisExecutive("Quiet");
|
||||
visManager->Initialize();
|
||||
|
||||
// Get the pointer to the User Interface manager
|
||||
G4UImanager* UImanager = G4UImanager::GetUIpointer();
|
||||
|
||||
// Process macro or start UI session
|
||||
if ( ! ui ) {
|
||||
// batch mode
|
||||
G4String command = "/control/execute ";
|
||||
G4String fileName = argv[1];
|
||||
UImanager->ApplyCommand(command+fileName);
|
||||
}
|
||||
else {
|
||||
// interactive mode
|
||||
UImanager->ApplyCommand("/control/execute init_vis.mac");
|
||||
ui->SessionStart();
|
||||
delete ui;
|
||||
}
|
||||
|
||||
// Job termination
|
||||
// Free the store: user actions, physics_list and detector_description are
|
||||
// owned and deleted by the run manager, so they should not be deleted
|
||||
// in the main() program !
|
||||
|
||||
delete visManager;
|
||||
delete runManager;
|
||||
|
||||
theTimer->Stop();
|
||||
G4cout << "Execution terminated" << G4endl;
|
||||
G4cout << (*theTimer) << G4endl;
|
||||
delete theTimer;
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
@@ -0,0 +1,945 @@
|
||||
Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type...
|
||||
|
||||
############################################
|
||||
!!! WARNING - FPE detection is activated !!!
|
||||
############################################
|
||||
|
||||
|
||||
################################
|
||||
!!! G4Backtrace is activated !!!
|
||||
################################
|
||||
|
||||
|
||||
**************************************************************
|
||||
Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
|
||||
Copyright : Geant4 Collaboration
|
||||
References : NIM A 506 (2003), 250-303
|
||||
: IEEE-TNS 53 (2006), 270-278
|
||||
: NIM A 835 (2016), 186-225
|
||||
WWW : http://geant4.org/
|
||||
**************************************************************
|
||||
|
||||
<<< Geant4 Physics List simulation engine: FTFP_BERT
|
||||
|
||||
Visualization Manager instantiating with verbosity "warnings (3)"...
|
||||
Visualization Manager initialising...
|
||||
Registering graphics systems...
|
||||
|
||||
You have successfully registered the following graphics systems.
|
||||
Registered graphics systems are:
|
||||
ASCIITree (ATree)
|
||||
DAWNFILE (DAWNFILE)
|
||||
G4HepRepFile (HepRepFile)
|
||||
RayTracer (RayTracer)
|
||||
VRML2FILE (VRML2FILE)
|
||||
gMocrenFile (gMocrenFile)
|
||||
TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE)
|
||||
OpenGLImmediateQt (OGLIQt, OGLI)
|
||||
OpenGLStoredQt (OGLSQt, OGL, OGLS)
|
||||
OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK)
|
||||
OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK)
|
||||
OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK)
|
||||
OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK)
|
||||
RayTracerX (RayTracerX)
|
||||
Qt3D (Qt3D)
|
||||
TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK)
|
||||
TOOLSSG_X11_ZB (TSG_X11_ZB, TSGX11ZB)
|
||||
TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK)
|
||||
TOOLSSG_XT_ZB (TSG_XT_ZB, TSGXtZB)
|
||||
TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG)
|
||||
TOOLSSG_QT_ZB (TSG_QT_ZB, TSGQtZB)
|
||||
You may choose a graphics system (driver) with a parameter of
|
||||
the command "/vis/open" or "/vis/sceneHandler/create",
|
||||
or you may omit the driver parameter and choose at run time:
|
||||
- by argument in the construction of G4VisExecutive
|
||||
- by environment variable "G4VIS_DEFAULT_DRIVER"
|
||||
- by entry in "~/.g4session"
|
||||
- by build flags.
|
||||
- Note: This feature is not allowed in batch mode.
|
||||
For further information see "examples/basic/B1/exampleB1.cc"
|
||||
and "vis.mac".
|
||||
|
||||
Registering model factories...
|
||||
|
||||
You have successfully registered the following model factories.
|
||||
Registered model factories:
|
||||
generic
|
||||
drawByAttribute
|
||||
drawByCharge
|
||||
drawByOriginVolume
|
||||
drawByParticleID
|
||||
drawByEncounteredVolume
|
||||
|
||||
Registered models:
|
||||
None
|
||||
|
||||
Registered filter factories:
|
||||
attributeFilter
|
||||
chargeFilter
|
||||
originVolumeFilter
|
||||
particleFilter
|
||||
encounteredVolumeFilter
|
||||
|
||||
Registered filters:
|
||||
None
|
||||
|
||||
You have successfully registered the following user vis actions.
|
||||
Run Duration User Vis Actions: none
|
||||
End of Event User Vis Actions: none
|
||||
End of Run User Vis Actions: none
|
||||
|
||||
Some /vis commands (optionally) take a string to specify colour.
|
||||
"/vis/list" to see available colours.
|
||||
*** /run/numberOfThreads command is issued in sequential mode.
|
||||
Command is ignored.
|
||||
Checking overlaps for volume Crystal:0 (G4Box) ... OK!
|
||||
Crystal material: G4_Si
|
||||
Crystal size: 20x20x0.0305 mm3
|
||||
G4ChannelingFastSimModel activated
|
||||
Crystal bending angle: 0.000905 rad
|
||||
Crystal Lattice: (111)
|
||||
Crystal angleX: 0 rad
|
||||
Crystal angleY: 0 rad
|
||||
ActivateRadiationModel: 1
|
||||
|
||||
Checking overlaps for volume Detector:0 (G4Box) ... OK!
|
||||
=======================================================================
|
||||
====== Crystal lattice data ========
|
||||
=======================================================================
|
||||
Crystal material: Si
|
||||
Crystal planes: (111)
|
||||
|
||||
G4BaierKatkov model is activated.
|
||||
|
||||
Radiation model activated
|
||||
|
||||
hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval
|
||||
for pions : 3 to 6 GeV
|
||||
for kaons : 3 to 6 GeV
|
||||
for proton : 3 to 6 GeV
|
||||
for neutron : 3 to 6 GeV
|
||||
|
||||
### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0
|
||||
GenericIon : fastSimProcess_massGeom[geom:World]
|
||||
anti_proton : fastSimProcess_massGeom[geom:World]
|
||||
e+ : fastSimProcess_massGeom[geom:World]
|
||||
e- : fastSimProcess_massGeom[geom:World]
|
||||
mu+ : fastSimProcess_massGeom[geom:World]
|
||||
mu- : fastSimProcess_massGeom[geom:World]
|
||||
pi+ : fastSimProcess_massGeom[geom:World]
|
||||
pi- : fastSimProcess_massGeom[geom:World]
|
||||
proton : fastSimProcess_massGeom[geom:World]
|
||||
=======================================================================
|
||||
====== Electromagnetic Physics Parameters ========
|
||||
=======================================================================
|
||||
LPM effect enabled 1
|
||||
Enable creation and use of sampling tables 0
|
||||
Apply cuts on all EM processes 0
|
||||
Use combined TransportationWithMsc Disabled
|
||||
Use general process 1
|
||||
Enable linear polarisation for gamma 0
|
||||
Enable photoeffect sampling below K-shell 1
|
||||
Enable sampling of quantum entanglement 0
|
||||
X-section factor for integral approach 0.8
|
||||
Min kinetic energy for tables 100 eV
|
||||
Max kinetic energy for tables 100 TeV
|
||||
Number of bins per decade of a table 7
|
||||
Verbose level 1
|
||||
Verbose level for worker thread 0
|
||||
Bremsstrahlung energy threshold above which
|
||||
primary e+- is added to the list of secondary 100 TeV
|
||||
Bremsstrahlung energy threshold above which primary
|
||||
muon/hadron is added to the list of secondary 100 TeV
|
||||
Positron annihilation at rest model SimplePositronium
|
||||
Enable 3 gamma annihilation on fly 0
|
||||
Lowest triplet kinetic energy 1 MeV
|
||||
Enable sampling of gamma linear polarisation 0
|
||||
5D gamma conversion model type 0
|
||||
5D gamma conversion model on isolated ion 0
|
||||
Use Ricardo-Gerardo pair production model 0
|
||||
Livermore data directory epics_2017
|
||||
=======================================================================
|
||||
====== Ionisation Parameters ========
|
||||
=======================================================================
|
||||
Step function for e+- (0.2, 1 mm)
|
||||
Step function for muons/hadrons (0.2, 0.1 mm)
|
||||
Step function for light ions (0.2, 0.1 mm)
|
||||
Step function for general ions (0.2, 0.1 mm)
|
||||
Lowest e+e- kinetic energy 1 keV
|
||||
Lowest muon/hadron kinetic energy 1 keV
|
||||
Use ICRU90 data 0
|
||||
Fluctuations of dE/dx are enabled 1
|
||||
Type of fluctuation model for leptons and hadrons Urban
|
||||
Use built-in Birks satuaration 0
|
||||
Build CSDA range enabled 0
|
||||
Use cut as a final range enabled 0
|
||||
Enable angular generator interface 0
|
||||
Max kinetic energy for CSDA tables 1 GeV
|
||||
Max kinetic energy for NIEL computation 0 eV
|
||||
Linear loss limit 0.01
|
||||
Read data from file for e+e- pair production by mu 0
|
||||
=======================================================================
|
||||
====== Multiple Scattering Parameters ========
|
||||
=======================================================================
|
||||
Type of msc step limit algorithm for e+- 1
|
||||
Type of msc step limit algorithm for muons/hadrons 0
|
||||
Msc lateral displacement for e+- enabled 1
|
||||
Msc lateral displacement for muons and hadrons 0
|
||||
Urban msc model lateral displacement alg96 1
|
||||
Range factor for msc step limit for e+- 0.04
|
||||
Range factor for msc step limit for muons/hadrons 0.2
|
||||
Geometry factor for msc step limitation of e+- 2.5
|
||||
Safety factor for msc step limit for e+- 0.6
|
||||
Skin parameter for msc step limitation of e+- 1
|
||||
Lambda limit for msc step limit for e+- 1 mm
|
||||
Use Mott correction for e- scattering 0
|
||||
Factor used for dynamic computation of angular
|
||||
limit between single and multiple scattering 1
|
||||
Fixed angular limit between single
|
||||
and multiple scattering 3.1416 rad
|
||||
Upper energy limit for e+- multiple scattering 100 MeV
|
||||
Type of electron single scattering model 0
|
||||
Type of nuclear form-factor 1
|
||||
Screening factor 1
|
||||
=======================================================================
|
||||
|
||||
phot: for gamma SubType=12 BuildTable=0
|
||||
LambdaPrime table from 200 keV to 100 TeV in 61 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo
|
||||
|
||||
compt: for gamma SubType=13 BuildTable=1
|
||||
Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1
|
||||
LambdaPrime table from 1 MeV to 100 TeV in 56 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Klein-Nishina : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
conv: for gamma SubType=14 BuildTable=1
|
||||
Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai
|
||||
|
||||
Rayl: for gamma SubType=11 BuildTable=1
|
||||
Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0
|
||||
LambdaPrime table from 150 keV to 100 TeV in 62 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator
|
||||
|
||||
msc: for e- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV
|
||||
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
|
||||
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
|
||||
|
||||
eIoni: for e- XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MollerBhabha : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
eBrem: for e- XStype:4 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai
|
||||
|
||||
CoulombScat: for e- XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
|
||||
|
||||
msc: for e+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV
|
||||
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
|
||||
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
|
||||
|
||||
eIoni: for e+ XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MollerBhabha : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
eBrem: for e+ XStype:4 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai
|
||||
|
||||
annihil: for e+ XStype:2 SubType=5 AtRestModel:Simple BuildTable=0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eplus2gg : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
|
||||
|
||||
msc: for proton SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for proton XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV
|
||||
|
||||
hBrems: for proton XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for proton XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for proton XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
ionIoni: for GenericIon XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV
|
||||
|
||||
msc: for alpha SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
ionIoni: for alpha XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BraggIon : Emin= 0 eV Emax=7.9452 MeV
|
||||
BetheBloch : Emin=7.9452 MeV Emax= 100 TeV
|
||||
|
||||
msc: for anti_proton SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for anti_proton XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV
|
||||
|
||||
hBrems: for anti_proton XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for anti_proton XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for kaon+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for kaon+ XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax=1.05231 MeV
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
|
||||
|
||||
hBrems: for kaon+ XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for kaon+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for kaon- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for kaon- XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax=1.05231 MeV
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
|
||||
|
||||
hBrems: for kaon- XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for kaon- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1
|
||||
Used Lambda table of kaon+
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for mu+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
muIoni: for mu+ XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 200 keV
|
||||
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
|
||||
|
||||
muBrems: for mu+ XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
muPairProd: for mu+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 0.85 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for mu- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
muIoni: for mu- XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 200 keV
|
||||
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
|
||||
|
||||
muBrems: for mu- XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
muPairProd: for mu- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 0.85 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1
|
||||
Used Lambda table of mu+
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for pi+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for pi+ XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax=297.505 keV
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV
|
||||
|
||||
hBrems: for pi+ XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for pi+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for pi- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for pi- XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax=297.505 keV
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV
|
||||
|
||||
hBrems: for pi- XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for pi- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
|
||||
Used Lambda table of pi+
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
====================================================================
|
||||
HADRONIC PROCESSES SUMMARY (verbose level 1)
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for neutron
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV
|
||||
Process: neutronInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
|
||||
Process: nCapture
|
||||
Model: nRadCapture: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV
|
||||
Process: nKiller
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for B-
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: B-Inelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for D-
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: D-Inelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for GenericIon
|
||||
Process: ionInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for He3
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
Process: He3Inelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for alpha
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
Process: alphaInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_He3
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_He3Inelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_alpha
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_alphaInelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_deuteron
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_deuteronInelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-------------------------------------------------------------------------
|
||||
Hadronic Processes for anti_hypertriton
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_lambda
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: anti_lambdaInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_neutron
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_neutronInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_proton
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_protonInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_triton
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_tritonInelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for deuteron
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
Process: dInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for e+
|
||||
Process: positronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for e-
|
||||
Process: electronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for gamma
|
||||
Process: photonNuclear
|
||||
Model: GammaNPreco: 0 eV ---> 200 MeV
|
||||
Model: BertiniCascade: 199 MeV ---> 6 GeV
|
||||
Model: TheoFSGenerator: 3 GeV ---> 100 TeV
|
||||
Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for kaon+
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: kaon+Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for kaon-
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: kaon-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: hBertiniCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for lambda
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: lambdaInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for mu+
|
||||
Process: muonNuclear
|
||||
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for mu-
|
||||
Process: muonNuclear
|
||||
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
|
||||
Process: muMinusCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for pi+
|
||||
Process: hadElastic
|
||||
Model: hElasticGlauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
Process: pi+Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for pi-
|
||||
Process: hadElastic
|
||||
Model: hElasticGlauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
Process: pi-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
Process: hBertiniCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for proton
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
Process: protonInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for sigma-
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: sigma-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: hBertiniCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for triton
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
Process: tInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
=======================================================================
|
||||
====== Geant4 Native Pre-compound Model Parameters ========
|
||||
=======================================================================
|
||||
Type of pre-compound inverse x-section 1
|
||||
Pre-compound model active 1
|
||||
Pre-compound excitation low energy 100 keV
|
||||
Pre-compound excitation high energy 30 MeV
|
||||
Angular generator for pre-compound model 1
|
||||
Use NeverGoBack option for pre-compound model 0
|
||||
Use SoftCutOff option for pre-compound model 0
|
||||
Use CEM transitions for pre-compound model 1
|
||||
Use GNASH transitions for pre-compound model 0
|
||||
Use HETC submodel for pre-compound model 0
|
||||
=======================================================================
|
||||
====== Nuclear De-excitation Module Parameters ========
|
||||
=======================================================================
|
||||
Type of de-excitation inverse x-section 3
|
||||
Type of de-excitation factory Evaporation+GEM
|
||||
Number of de-excitation channels 68
|
||||
Min excitation energy 10 eV
|
||||
Min energy per nucleon for multifragmentation 200 GeV
|
||||
Limit excitation energy for Fermi BreakUp 20 MeV
|
||||
Level density (1/MeV) 0.075
|
||||
Use simple level density model 1
|
||||
Use discrete excitation energy of the residual 0
|
||||
Time limit for long lived isomeres 1 ns
|
||||
Isomer production flag 1
|
||||
Internal e- conversion flag 1
|
||||
Store e- internal conversion data 1
|
||||
Correlated gamma emission flag 0
|
||||
Max 2J for sampling of angular correlations 10
|
||||
=======================================================================
|
||||
### Run 0 starts.
|
||||
--> Event 0 starts.
|
||||
--> Event 10 starts.
|
||||
--> Event 20 starts.
|
||||
--> Event 30 starts.
|
||||
--> Event 40 starts.
|
||||
--> Event 50 starts.
|
||||
--> Event 60 starts.
|
||||
--> Event 70 starts.
|
||||
--> Event 80 starts.
|
||||
--> Event 90 starts.
|
||||
--> Event 100 starts.
|
||||
--> Event 110 starts.
|
||||
--> Event 120 starts.
|
||||
--> Event 130 starts.
|
||||
--> Event 140 starts.
|
||||
--> Event 150 starts.
|
||||
--> Event 160 starts.
|
||||
--> Event 170 starts.
|
||||
--> Event 180 starts.
|
||||
--> Event 190 starts.
|
||||
--> Event 200 starts.
|
||||
--> Event 210 starts.
|
||||
--> Event 220 starts.
|
||||
--> Event 230 starts.
|
||||
--> Event 240 starts.
|
||||
--> Event 250 starts.
|
||||
--> Event 260 starts.
|
||||
--> Event 270 starts.
|
||||
--> Event 280 starts.
|
||||
--> Event 290 starts.
|
||||
--> Event 300 starts.
|
||||
--> Event 310 starts.
|
||||
--> Event 320 starts.
|
||||
--> Event 330 starts.
|
||||
--> Event 340 starts.
|
||||
--> Event 350 starts.
|
||||
--> Event 360 starts.
|
||||
--> Event 370 starts.
|
||||
--> Event 380 starts.
|
||||
--> Event 390 starts.
|
||||
--> Event 400 starts.
|
||||
--> Event 410 starts.
|
||||
--> Event 420 starts.
|
||||
--> Event 430 starts.
|
||||
--> Event 440 starts.
|
||||
--> Event 450 starts.
|
||||
--> Event 460 starts.
|
||||
--> Event 470 starts.
|
||||
--> Event 480 starts.
|
||||
--> Event 490 starts.
|
||||
--> Event 500 starts.
|
||||
--> Event 510 starts.
|
||||
--> Event 520 starts.
|
||||
--> Event 530 starts.
|
||||
--> Event 540 starts.
|
||||
--> Event 550 starts.
|
||||
--> Event 560 starts.
|
||||
--> Event 570 starts.
|
||||
--> Event 580 starts.
|
||||
--> Event 590 starts.
|
||||
--> Event 600 starts.
|
||||
--> Event 610 starts.
|
||||
--> Event 620 starts.
|
||||
--> Event 630 starts.
|
||||
--> Event 640 starts.
|
||||
--> Event 650 starts.
|
||||
--> Event 660 starts.
|
||||
--> Event 670 starts.
|
||||
--> Event 680 starts.
|
||||
--> Event 690 starts.
|
||||
--> Event 700 starts.
|
||||
--> Event 710 starts.
|
||||
--> Event 720 starts.
|
||||
--> Event 730 starts.
|
||||
--> Event 740 starts.
|
||||
--> Event 750 starts.
|
||||
--> Event 760 starts.
|
||||
--> Event 770 starts.
|
||||
--> Event 780 starts.
|
||||
--> Event 790 starts.
|
||||
--> Event 800 starts.
|
||||
--> Event 810 starts.
|
||||
--> Event 820 starts.
|
||||
--> Event 830 starts.
|
||||
--> Event 840 starts.
|
||||
--> Event 850 starts.
|
||||
--> Event 860 starts.
|
||||
--> Event 870 starts.
|
||||
--> Event 880 starts.
|
||||
--> Event 890 starts.
|
||||
--> Event 900 starts.
|
||||
--> Event 910 starts.
|
||||
--> Event 920 starts.
|
||||
--> Event 930 starts.
|
||||
--> Event 940 starts.
|
||||
--> Event 950 starts.
|
||||
--> Event 960 starts.
|
||||
--> Event 970 starts.
|
||||
--> Event 980 starts.
|
||||
--> Event 990 starts.
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
Execution terminated
|
||||
User=63.440000s Real=75.771604s Sys=0.230000s
|
||||
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file ActionInitialization.cc
|
||||
/// \brief Implementation of the ActionInitialization class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef B1ActionInitialization_h
|
||||
#define B1ActionInitialization_h 1
|
||||
|
||||
#include "G4VUserActionInitialization.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// Action initialization class.
|
||||
|
||||
class ActionInitialization : public G4VUserActionInitialization
|
||||
{
|
||||
public:
|
||||
ActionInitialization();
|
||||
~ActionInitialization() override = default;
|
||||
|
||||
void BuildForMaster() const override;
|
||||
void Build() const override;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,170 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file DetectorConstruction.cc
|
||||
/// \brief Implementation of the DetectorConstruction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef B1DetectorConstruction_h
|
||||
#define B1DetectorConstruction_h 1
|
||||
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
#include <vector>
|
||||
|
||||
#include "G4Region.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
|
||||
#include "G4ChannelingFastSimModel.hh"
|
||||
|
||||
#include "DetectorConstructionMessenger.hh"
|
||||
|
||||
class G4VPhysicalVolume;
|
||||
class G4LogicalVolume;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// Detector construction class to define materials and geometry.
|
||||
|
||||
class DetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
public:
|
||||
DetectorConstruction();
|
||||
~DetectorConstruction() override = default;
|
||||
|
||||
G4VPhysicalVolume* Construct() override;
|
||||
void ConstructSDandField() override;
|
||||
|
||||
//methods to set the Crystal features
|
||||
void SetCrystalMaterial(const G4String& val) {fCrystalMaterialStr = val;}
|
||||
void SetCrystalSize(G4ThreeVector val) {fCrystalSize = val;}
|
||||
void SetCrystalBendingAngle(G4double val) {fBendingAngle = val;}
|
||||
void SetCrystalLattice(const G4String& val) {fLattice = val;}
|
||||
void SetCrystalAngleX(G4double val) {fAngleX = val;}
|
||||
void SetCrystalAngleY(G4double val) {fAngleY = val;}
|
||||
void SetRadiationModel(G4bool val) {fActivateRadiationModel = val;}
|
||||
void SetChannelingModel(G4bool val) {fActivateChannelingModel = val;}
|
||||
|
||||
void SetCrystallineUndulatorAmplitude(G4double val)
|
||||
{fCrystallineUndulatorAmplitude = val;}
|
||||
void SetCrystallineUndulatorPeriod(G4double val)
|
||||
{fCrystallineUndulatorPeriod = val;}
|
||||
void SetCrystallineUndulatorPhase(G4double val)
|
||||
{fCrystallineUndulatorPhase = val;}
|
||||
|
||||
void SetPotentialPath(const G4String& path){fPotentialPath = path;}
|
||||
void SetMinPhotonEnergy(G4double val) {fMinPhotonEnergy = val;}
|
||||
void SetSamplingPhotonsNumber(G4int val) {fSamplingPhotonsNumber = val;}
|
||||
void SetNSmallTrajectorySteps(G4int val) {fNSmallTrajectorySteps = val;}
|
||||
void SetRadiationAngleFactor(G4double val) {fRadiationAngleFactor = val;}
|
||||
|
||||
void SetMinPhotonEnergyAddStat(G4double val) {fMinPhotonEnergyAddStat = val;}
|
||||
void SetMaxPhotonEnergyAddStat(G4double val) {fMaxPhotonEnergyAddStat = val;}
|
||||
void SetMultiplePhotonStatistics(G4int val) {fTimesPhotonStatistics = val;}
|
||||
|
||||
void SetDetectorSize(G4ThreeVector val) {fDetectorSize = val;}
|
||||
void SetDetectorFrontPositionZ(G4double val) {fDetectorFrontPosZ = val;}
|
||||
|
||||
void SetParticleMinKinEnergy(G4double val) {fParticleMinKinEnergy = val;}
|
||||
void SetProtonMinKinEnergy(G4double val) {fProtonMinKinEnergy = val;}
|
||||
void SetAntiprotonMinKinEnergy(G4double val) {fAntiprotonMinKinEnergy = val;}
|
||||
void SetPiPlusMinKinEnergy(G4double val) {fPiPlusMinKinEnergy = val;}
|
||||
void SetPiMinusMinKinEnergy(G4double val) {fPiMinusMinKinEnergy = val;}
|
||||
void SetElectronMinKinEnergy(G4double val) {fElectronMinKinEnergy = val;}
|
||||
void SetPositronMinKinEnergy(G4double val) {fPositronMinKinEnergy = val;}
|
||||
void SetMuPlusMinKinEnergy(G4double val) {fMuPlusMinKinEnergy = val;}
|
||||
void SetMuMinusMinKinEnergy(G4double val) {fMuMinusMinKinEnergy = val;}
|
||||
|
||||
void SetLindhardAngles(G4double val) {fLindhardAngles = val;}
|
||||
void SetLindhardAnglesProton(G4double val) {fLindhardAnglesProton = val;}
|
||||
void SetLindhardAnglesAntiproton(G4double val) {fLindhardAnglesAntiproton = val;}
|
||||
void SetLindhardAnglesPiPlus(G4double val) {fLindhardAnglesPiPlus = val;}
|
||||
void SetLindhardAnglesPiMinus(G4double val) {fLindhardAnglesPiMinus = val;}
|
||||
void SetLindhardAnglesElectron(G4double val) {fLindhardAnglesElectron = val;}
|
||||
void SetLindhardAnglesPositron(G4double val) {fLindhardAnglesPositron = val;}
|
||||
void SetLindhardAnglesMuPlus(G4double val) {fLindhardAnglesMuPlus = val;}
|
||||
void SetLindhardAnglesMuMinus(G4double val) {fLindhardAnglesMuMinus = val;}
|
||||
|
||||
private:
|
||||
DetectorConstructionMessenger* fMessenger;
|
||||
|
||||
//crystal features
|
||||
G4LogicalVolume* fLogicCrystal{nullptr};
|
||||
G4String fCrystalMaterialStr = "G4_Si";
|
||||
G4Material* fCrystalMaterial{nullptr};
|
||||
G4ThreeVector fCrystalSize;
|
||||
G4double fBendingAngle = 0.;
|
||||
G4String fLattice;
|
||||
G4double fAngleX = 0.;
|
||||
G4double fAngleY = 0.;
|
||||
G4bool fActivateRadiationModel = false;
|
||||
G4bool fActivateChannelingModel = true;
|
||||
|
||||
//Crystal undulator parameters; default 0 => no undulator
|
||||
G4double fCrystallineUndulatorAmplitude = 0.;
|
||||
G4double fCrystallineUndulatorPeriod = 0.;
|
||||
G4double fCrystallineUndulatorPhase = 0.;
|
||||
|
||||
G4ThreeVector fDetectorSize;
|
||||
G4double fDetectorFrontPosZ = 1*CLHEP::m;
|
||||
|
||||
G4String fPotentialPath = "";
|
||||
|
||||
G4double fMinPhotonEnergy = 1*CLHEP::MeV; //G4BaierKatkov default value
|
||||
G4int fSamplingPhotonsNumber = 150; //G4BaierKatkov default value
|
||||
G4int fNSmallTrajectorySteps = 10000; //G4BaierKatkov default value
|
||||
G4double fRadiationAngleFactor = 4; //G4BaierKatkov default value
|
||||
|
||||
G4double fMinPhotonEnergyAddStat = 1*CLHEP::MeV;
|
||||
G4double fMaxPhotonEnergyAddStat = 20*CLHEP::MeV;
|
||||
G4int fTimesPhotonStatistics = 1;
|
||||
|
||||
G4double fParticleMinKinEnergy = 200.*CLHEP::MeV;//G4ChannelingFastSimModel default value
|
||||
G4double fProtonMinKinEnergy = 200.*CLHEP::MeV;
|
||||
G4double fAntiprotonMinKinEnergy = 200.*CLHEP::MeV;
|
||||
G4double fPiPlusMinKinEnergy = 200.*CLHEP::MeV;
|
||||
G4double fPiMinusMinKinEnergy = 200.*CLHEP::MeV;
|
||||
G4double fElectronMinKinEnergy = 200.*CLHEP::MeV;
|
||||
G4double fPositronMinKinEnergy = 200.*CLHEP::MeV;
|
||||
G4double fMuPlusMinKinEnergy = 200.*CLHEP::MeV;
|
||||
G4double fMuMinusMinKinEnergy = 200.*CLHEP::MeV;
|
||||
|
||||
G4double fLindhardAngles = 100; //G4ChannelingFastSimModel default value
|
||||
G4double fLindhardAnglesProton = 100;
|
||||
G4double fLindhardAnglesAntiproton = 100;
|
||||
G4double fLindhardAnglesPiPlus = 100;
|
||||
G4double fLindhardAnglesPiMinus = 100;
|
||||
G4double fLindhardAnglesElectron = 100;
|
||||
G4double fLindhardAnglesPositron = 100;
|
||||
G4double fLindhardAnglesMuPlus = 100;
|
||||
G4double fLindhardAnglesMuMinus = 100;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
+116
@@ -0,0 +1,116 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file DetectorConstructionMessenger.hh
|
||||
/// \brief Description of the DetectorConstruction messenger class
|
||||
//
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef DetectorConstructionMessenger_h
|
||||
#define DetectorConstructionMessenger_h 1
|
||||
|
||||
#include "G4UImessenger.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class DetectorConstruction;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
class G4UIcmdWithAnInteger;
|
||||
class G4UIcmdWithADouble;
|
||||
class G4UIcmdWithABool;
|
||||
class G4UIcmdWith3VectorAndUnit;
|
||||
class G4UIcmdWithAString;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// Detector construction messenger class to define custom commands
|
||||
/// to control the geometry and other settings.
|
||||
|
||||
class DetectorConstructionMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
DetectorConstructionMessenger(DetectorConstruction* mpga);
|
||||
~DetectorConstructionMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand* command, G4String newValues) override;
|
||||
|
||||
private:
|
||||
DetectorConstruction* fDetector{nullptr};
|
||||
|
||||
G4UIdirectory* fCmdDir{nullptr};
|
||||
G4UIcmdWithAString* fCrystalMaterialCmd{nullptr};
|
||||
G4UIcmdWith3VectorAndUnit* fCrystalSizeCmd{nullptr};
|
||||
G4UIcmdWithAString* fCrystalLatticeCmd{nullptr};
|
||||
G4UIcmdWithADoubleAndUnit* fCrystalAngleXCmd{nullptr};
|
||||
G4UIcmdWithADoubleAndUnit* fCrystalAngleYCmd{nullptr};
|
||||
G4UIcmdWithADoubleAndUnit* fCrystalBendingAngleCmd{nullptr};
|
||||
G4UIcmdWithABool* fRadModelCmd{nullptr};
|
||||
G4UIcmdWithABool* fChannelingModelCmd{nullptr};
|
||||
|
||||
G4UIcmdWith3VectorAndUnit* fDetectorSizeCmd{nullptr};
|
||||
G4UIcmdWithADoubleAndUnit* fDetectorFrontPosZCmd{nullptr};
|
||||
|
||||
G4UIcmdWithADoubleAndUnit* fCrystallineUndulatorAmplitudeCmd{nullptr};
|
||||
G4UIcmdWithADoubleAndUnit* fCrystallineUndulatorPeriodCmd{nullptr};
|
||||
G4UIcmdWithADouble* fCrystallineUndulatorPhaseCmd{nullptr};
|
||||
|
||||
G4UIcmdWithAString* fPotentialPathCmd{nullptr};
|
||||
|
||||
G4UIcmdWithADoubleAndUnit* fMinPhotonEnergyCmd{nullptr};
|
||||
G4UIcmdWithAnInteger* fSamplingPhotonsNumberCmd{nullptr};
|
||||
G4UIcmdWithAnInteger* fNSmallTrajectoryStepsCmd{nullptr};
|
||||
G4UIcmdWithADouble* fRadiationAngleFactorCmd{nullptr};
|
||||
G4UIcmdWithADoubleAndUnit* fMinPhotonEnergyAddStatCmd{nullptr};
|
||||
G4UIcmdWithADoubleAndUnit* fMaxPhotonEnergyAddStatCmd{nullptr};
|
||||
G4UIcmdWithAnInteger* fTimesPhotonStatisticsCmd{nullptr};
|
||||
|
||||
G4UIcmdWithADoubleAndUnit* fParticleMinKinEnergyCmd{nullptr};
|
||||
G4UIcmdWithADoubleAndUnit* fProtonMinKinEnergyCmd{nullptr};
|
||||
G4UIcmdWithADoubleAndUnit* fAntiprotonMinKinEnergyCmd{nullptr};
|
||||
G4UIcmdWithADoubleAndUnit* fPiPlusMinKinEnergyCmd{nullptr};
|
||||
G4UIcmdWithADoubleAndUnit* fPiMinusMinKinEnergyCmd{nullptr};
|
||||
G4UIcmdWithADoubleAndUnit* fElectronMinKinEnergyCmd{nullptr};
|
||||
G4UIcmdWithADoubleAndUnit* fPositronMinKinEnergyCmd{nullptr};
|
||||
G4UIcmdWithADoubleAndUnit* fMuPlusMinKinEnergyCmd{nullptr};
|
||||
G4UIcmdWithADoubleAndUnit* fMuMinusMinKinEnergyCmd{nullptr};
|
||||
|
||||
G4UIcmdWithADouble* fLindhardAnglesCmd{nullptr};
|
||||
G4UIcmdWithADouble* fLindhardAnglesProtonCmd{nullptr};
|
||||
G4UIcmdWithADouble* fLindhardAnglesAntiprotonCmd{nullptr};
|
||||
G4UIcmdWithADouble* fLindhardAnglesPiPlusCmd{nullptr};
|
||||
G4UIcmdWithADouble* fLindhardAnglesPiMinusCmd{nullptr};
|
||||
G4UIcmdWithADouble* fLindhardAnglesElectronCmd{nullptr};
|
||||
G4UIcmdWithADouble* fLindhardAnglesPositronCmd{nullptr};
|
||||
G4UIcmdWithADouble* fLindhardAnglesMuPlusCmd{nullptr};
|
||||
G4UIcmdWithADouble* fLindhardAnglesMuMinusCmd{nullptr};
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file PrimaryGeneratorAction.hh
|
||||
/// \brief Definition of the B1::PrimaryGeneratorAction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef B1PrimaryGeneratorAction_h
|
||||
#define B1PrimaryGeneratorAction_h 1
|
||||
|
||||
#include "G4VUserPrimaryGeneratorAction.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4GeneralParticleSource.hh"
|
||||
|
||||
class G4ParticleGun;
|
||||
class G4Event;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// The primary generator action class with GeneralParticleSource.
|
||||
|
||||
class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
|
||||
{
|
||||
public:
|
||||
PrimaryGeneratorAction();
|
||||
~PrimaryGeneratorAction() override;
|
||||
|
||||
// method from the base class
|
||||
void GeneratePrimaries(G4Event*) override;
|
||||
|
||||
private:
|
||||
G4GeneralParticleSource* fGPS{nullptr};
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file RunAction.hh
|
||||
/// \brief Definition of the RunAction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef RunAction_h
|
||||
#define RunAction_h 1
|
||||
|
||||
#include "G4UserRunAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4Run;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// Run action class.
|
||||
|
||||
class RunAction : public G4UserRunAction
|
||||
{
|
||||
public:
|
||||
RunAction();
|
||||
~RunAction() override = default;
|
||||
|
||||
void BeginOfRunAction(const G4Run*) override;
|
||||
void EndOfRunAction(const G4Run*) override;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file SteppingAction.hh
|
||||
/// \brief Definition of the SteppingAction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef B1SteppingAction_h
|
||||
#define B1SteppingAction_h 1
|
||||
|
||||
#include "G4UserSteppingAction.hh"
|
||||
#include "globals.hh"
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
class G4LogicalVolume;
|
||||
|
||||
class EventAction;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// Stepping action class.
|
||||
|
||||
class SteppingAction : public G4UserSteppingAction
|
||||
{
|
||||
public:
|
||||
SteppingAction();
|
||||
~SteppingAction() override = default;
|
||||
|
||||
// method from the base class
|
||||
void UserSteppingAction(const G4Step*) override;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,32 @@
|
||||
# Macro file for the initialization of example ch2
|
||||
# in interactive session
|
||||
#
|
||||
# Set some default verbose
|
||||
/control/verbose 2
|
||||
/control/saveHistory
|
||||
/run/verbose 2
|
||||
#
|
||||
# Change the default number of threads (in multi-threaded mode)
|
||||
#/run/numberOfThreads 4
|
||||
#
|
||||
#Initialize kernel
|
||||
/run/initialize
|
||||
#
|
||||
# Initialize kernel
|
||||
/run/initialize
|
||||
#
|
||||
#coordinate distribution (radial Gauss)
|
||||
/gps/pos/centre 0. 0. -1. cm
|
||||
/gps/pos/type Beam
|
||||
/gps/pos/sigma_x 0.07 mm
|
||||
/gps/pos/sigma_y 0.2 mm
|
||||
#
|
||||
#angular distribution (radial Gauss)
|
||||
/gps/ang/type beam2d
|
||||
/gps/ang/rot1 1 0 0
|
||||
/gps/ang/rot2 0 -1 0
|
||||
/gps/ang/sigma_x 30.E-6 rad
|
||||
/gps/ang/sigma_y 30.E-6 rad
|
||||
#
|
||||
# Visualization setting
|
||||
/control/execute vis.mac
|
||||
@@ -0,0 +1,109 @@
|
||||
/random/setSeeds 19577794 424238336
|
||||
#setting number of cores
|
||||
/run/numberOfThreads 2
|
||||
|
||||
#crystal geometry
|
||||
#change it as you want
|
||||
/crystal/setCrystalSize 20. 20. 0.0305 mm
|
||||
/crystal/setCrystalBendingAngle 0.905 mrad #default is 0
|
||||
/crystal/setCrystalAngleX 0 mrad #default is 0
|
||||
/crystal/setCrystalAngleY 0 mrad #default is 0
|
||||
|
||||
#crystal undulator parameters
|
||||
#CAUTION: incompatible with bent crystal
|
||||
#CAUTION: needs small detector size (1/gamma) and high photon statistics to observe the effect
|
||||
#(see also comments in ConstructSDandField in DetectorConstruction)
|
||||
#use if necessary:
|
||||
#/crystal/setCrystallineUndulatorAmplitude 1 nm
|
||||
#/crystal/setCrystallineUndulatorPeriod 100 um
|
||||
#/crystal/setCrystallineUndulatorPhase 0.
|
||||
|
||||
#crystal lattice parameters
|
||||
#change it according to the data available in G4CHANNELINGDATA
|
||||
/crystal/setCrystalMaterial G4_Si # check G4CHANNELINGDATA dataset
|
||||
/crystal/setCrystalLattice (111) # check G4CHANNELINGDATA dataset
|
||||
|
||||
#detector parameters
|
||||
#change it as you want
|
||||
/crystal/setDetectorSize 10 10 0.03 cm
|
||||
/crystal/setFrontPositionZ 5973 mm
|
||||
|
||||
#G4ChannelingFastSimModel parameters
|
||||
#change it as you want
|
||||
/crystal/setChannelingModel true #switch on/off G4ChannelingFastSimModel
|
||||
/crystal/setRadiationModel true #switch on/off G4BaierKatkov
|
||||
#(G4ChannelingFastSimModel must be switched on)
|
||||
#the pass to channeling data if different from the default:
|
||||
#/crystal/setChannelingDataPath your_path
|
||||
|
||||
#the following can be changed or commented:
|
||||
#the low energy threshold for particle to enter the G4ChannelingFastSimModel:
|
||||
/crystal/setParticleMinKinEnergy 200 MeV # default value for all charged particles
|
||||
#the same for specific particles (has priority vs default)
|
||||
/crystal/setParticleMinKinEnergy/proton 200 MeV
|
||||
/crystal/setParticleMinKinEnergy/anti_proton 200 MeV
|
||||
/crystal/setParticleMinKinEnergy/pi+ 200 MeV
|
||||
/crystal/setParticleMinKinEnergy/pi- 200 MeV
|
||||
/crystal/setParticleMinKinEnergy/e+ 200 MeV
|
||||
/crystal/setParticleMinKinEnergy/e- 200 MeV
|
||||
/crystal/setParticleMinKinEnergy/mu+ 200 MeV
|
||||
/crystal/setParticleMinKinEnergy/mu- 200 MeV
|
||||
|
||||
#the following can be changed or commented:
|
||||
#high angular threshold for particle to enter the G4ChannelingFastSimModel expressed in Lindhard angles:
|
||||
/crystal/setLindhardAngles 100. # default value for all charged particles
|
||||
#the same for specific particles (has priority vs default)
|
||||
/crystal/setLindhardAngles/proton 100.
|
||||
/crystal/setLindhardAngles/anti_proton 100.
|
||||
/crystal/setLindhardAngles/pi+ 100.
|
||||
/crystal/setLindhardAngles/pi- 100.
|
||||
/crystal/setLindhardAngles/e+ 100.
|
||||
/crystal/setLindhardAngles/e- 100.
|
||||
/crystal/setLindhardAngles/mu+ 100.
|
||||
/crystal/setLindhardAngles/mu- 100.
|
||||
|
||||
#the following can be changed or commented:
|
||||
#G4BaierKatkov parameters
|
||||
#(see also comments in ConstructSDandField in DetectorConstruction):
|
||||
/crystal/setMinPhotonEnergy 1 MeV # G4BaierKatkov default
|
||||
/crystal/setSamplingPhotonsNumber 150 # G4BaierKatkov default
|
||||
/crystal/setNSmallTrajectorySteps 10000 # G4BaierKatkov default
|
||||
/crystal/setRadiationAngleFactor 4. # G4BaierKatkov default
|
||||
|
||||
#add statistics of sampling photons in G4BaierKatkov in specific energy range
|
||||
#use if necessary (usually in the crystalline undulator case):
|
||||
#CAUTION: this energy range must not be below minimum photon energy
|
||||
#(see also comments in ConstructSDandField in DetectorConstruction)
|
||||
#/crystal/AddPhotonStatistics/setMinPhotonEnergy 1 MeV
|
||||
#/crystal/AddPhotonStatistics/setMaxPhotonEnergy 20 MeV
|
||||
#/crystal/AddPhotonStatistics/setMultiplePhotonStatistics 10
|
||||
|
||||
/run/initialize
|
||||
|
||||
#settings
|
||||
/control/verbose 0
|
||||
/run/verbose 0
|
||||
/tracking/verbose 0
|
||||
|
||||
#beam
|
||||
/gps/particle e-
|
||||
|
||||
#coordinate distribution (radial Gauss)
|
||||
/gps/pos/centre 0. 0. -1. cm
|
||||
/gps/pos/type Beam
|
||||
/gps/pos/sigma_x 0.07 mm
|
||||
/gps/pos/sigma_y 0.2 mm
|
||||
|
||||
#angular distribution (radial Gauss)
|
||||
/gps/ang/type beam2d
|
||||
/gps/ang/rot1 1 0 0
|
||||
/gps/ang/rot2 0 -1 0
|
||||
/gps/ang/sigma_x 30.E-6 rad
|
||||
/gps/ang/sigma_y 30.E-6 rad
|
||||
|
||||
#energy distribution (constant)
|
||||
/gps/ene/mono 0.855 GeV
|
||||
|
||||
#statistics
|
||||
/run/printProgress 10
|
||||
/run/beamOn 1000
|
||||
@@ -0,0 +1,60 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file ActionInitialization.cc
|
||||
/// \brief Implementation of the ActionInitialization class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "ActionInitialization.hh"
|
||||
#include "PrimaryGeneratorAction.hh"
|
||||
#include "RunAction.hh"
|
||||
#include "SteppingAction.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
ActionInitialization::ActionInitialization()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void ActionInitialization::BuildForMaster() const
|
||||
{
|
||||
SetUserAction(new RunAction);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void ActionInitialization::Build() const
|
||||
{
|
||||
SetUserAction(new PrimaryGeneratorAction);
|
||||
|
||||
SetUserAction(new RunAction);
|
||||
|
||||
SetUserAction(new SteppingAction);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,357 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file DetectorConstruction.cc
|
||||
/// \brief Implementation of the DetectorConstruction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "DetectorConstruction.hh"
|
||||
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4NistManager.hh"
|
||||
#include "G4Box.hh"
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4RegionStore.hh"
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "PrimaryGeneratorAction.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
DetectorConstruction::DetectorConstruction()
|
||||
{
|
||||
//instantiate the messenger
|
||||
fMessenger = new DetectorConstructionMessenger(this);
|
||||
|
||||
//Crystal size
|
||||
fCrystalSize.setX(20*CLHEP::mm);
|
||||
fCrystalSize.setY(20*CLHEP::mm);
|
||||
fCrystalSize.setZ(0.0305*CLHEP::mm);
|
||||
|
||||
//Crystal planes or axes considered
|
||||
fLattice = "(111)";
|
||||
|
||||
//Detector size
|
||||
fDetectorSize.setX(10*CLHEP::cm);
|
||||
fDetectorSize.setY(10*CLHEP::cm);
|
||||
fDetectorSize.setZ(0.1*CLHEP::mm);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4VPhysicalVolume* DetectorConstruction::Construct()
|
||||
{
|
||||
//Check overlap option
|
||||
G4bool checkOverlaps = true;
|
||||
|
||||
//Materials
|
||||
G4NistManager* nist = G4NistManager::Instance();
|
||||
G4Material* world_mat = nist->FindOrBuildMaterial("G4_Galactic");
|
||||
G4Material* silicon = nist->FindOrBuildMaterial("G4_Si");
|
||||
|
||||
//World
|
||||
G4Box* solidWorld = new G4Box("World", 0.2*CLHEP::m, 0.2*CLHEP::m, 10.*CLHEP::m);
|
||||
G4LogicalVolume* logicWorld = new G4LogicalVolume(solidWorld, world_mat, "World");
|
||||
G4VPhysicalVolume* physWorld = new G4PVPlacement
|
||||
(0, // no rotation
|
||||
G4ThreeVector(), // centre position
|
||||
logicWorld, // its logical volume
|
||||
"World", // its name
|
||||
0, // its mother volume
|
||||
false, // no boolean operation
|
||||
0, // copy number
|
||||
checkOverlaps); // overlaps checking
|
||||
logicWorld->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
|
||||
|
||||
// --------------- Crystal ------------------------------------
|
||||
|
||||
//Select crystal material
|
||||
fCrystalMaterial = nist->FindOrBuildMaterial(fCrystalMaterialStr);
|
||||
|
||||
//Crystal rotation angle (also the angle of crystal planes vs the beam)
|
||||
G4RotationMatrix* crystalRotationMatrix = new G4RotationMatrix;
|
||||
crystalRotationMatrix->rotateY(-fAngleX);
|
||||
crystalRotationMatrix->rotateX(-fAngleY);
|
||||
|
||||
//Setting crystal position
|
||||
G4ThreeVector posCrystal = G4ThreeVector(0., 0., fCrystalSize.z()/2.);
|
||||
|
||||
//crystal volume
|
||||
G4Box* solidCrystal = new G4Box("Crystal",
|
||||
fCrystalSize.x()/2,
|
||||
fCrystalSize.y()/2,
|
||||
fCrystalSize.z()/2.);
|
||||
|
||||
fLogicCrystal = new G4LogicalVolume(solidCrystal,
|
||||
fCrystalMaterial,
|
||||
"Crystal");
|
||||
new G4PVPlacement(crystalRotationMatrix,
|
||||
posCrystal,
|
||||
fLogicCrystal,
|
||||
"Crystal",
|
||||
logicWorld,
|
||||
false,
|
||||
0,
|
||||
checkOverlaps);
|
||||
|
||||
if (fActivateChannelingModel)
|
||||
{
|
||||
//crystal region (necessary for the FastSim model)
|
||||
G4Region* regionCh = new G4Region("Crystal");
|
||||
regionCh->AddRootLogicalVolume(fLogicCrystal);
|
||||
}
|
||||
|
||||
//visualization attributes
|
||||
G4VisAttributes* crystalVisAttribute =
|
||||
new G4VisAttributes(G4Colour(1., 0., 0.));
|
||||
crystalVisAttribute->SetForceSolid(true);
|
||||
fLogicCrystal->SetVisAttributes(crystalVisAttribute);
|
||||
|
||||
//print Crystal info
|
||||
G4cout << "Crystal material: " << fCrystalMaterial->GetName() << G4endl;
|
||||
G4cout << "Crystal size: " << fCrystalSize.x()/CLHEP::mm
|
||||
<< "x" << fCrystalSize.y()/CLHEP::mm
|
||||
<< "x" << fCrystalSize.z()/CLHEP::mm << " mm3" << G4endl;
|
||||
if (fActivateChannelingModel)
|
||||
{
|
||||
G4cout << "G4ChannelingFastSimModel activated" << G4endl;
|
||||
G4cout << "Crystal bending angle: " << fBendingAngle << " rad" << G4endl;
|
||||
G4cout << "Crystal Lattice: " << fLattice << G4endl;
|
||||
G4cout << "Crystal angleX: " << fAngleX << " rad" << G4endl;
|
||||
G4cout << "Crystal angleY: " << fAngleY << " rad" << G4endl;
|
||||
G4cout << "ActivateRadiationModel: " << fActivateRadiationModel << G4endl;
|
||||
|
||||
if (fCrystallineUndulatorAmplitude > DBL_EPSILON &&
|
||||
fCrystallineUndulatorPeriod > DBL_EPSILON) {
|
||||
G4cout << "Crystalline undulator activated: " << G4endl;
|
||||
G4cout << "undulator amplitude: "
|
||||
<< fCrystallineUndulatorAmplitude/CLHEP::nm
|
||||
<< " nm" << G4endl;
|
||||
G4cout << "undulator period: "
|
||||
<< fCrystallineUndulatorPeriod/CLHEP::mm
|
||||
<< " mm" << G4endl;
|
||||
G4cout << "undulator phase: "
|
||||
<< fCrystallineUndulatorPhase
|
||||
<< " rad" << G4endl;
|
||||
}
|
||||
|
||||
G4cout << G4endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
G4cout << "G4ChannelingFastSimModel is not activated" << G4endl << G4endl;
|
||||
}
|
||||
|
||||
// --------------- Detector -----------------------------------
|
||||
//Setting detector position
|
||||
G4ThreeVector posDetector =
|
||||
G4ThreeVector(0, 0, fDetectorFrontPosZ+fDetectorSize.z()/2.);
|
||||
|
||||
//particle detector volume
|
||||
G4Box* detector = new G4Box("Detector",
|
||||
fDetectorSize.x()/2,
|
||||
fDetectorSize.y()/2,
|
||||
fDetectorSize.z()/2.);
|
||||
|
||||
G4LogicalVolume* logicDetector = new G4LogicalVolume(detector,
|
||||
silicon,
|
||||
"Detector");
|
||||
new G4PVPlacement(0,
|
||||
posDetector,
|
||||
logicDetector,
|
||||
"Detector",
|
||||
logicWorld,
|
||||
false,
|
||||
0,
|
||||
checkOverlaps);
|
||||
|
||||
//visualization attributes
|
||||
G4VisAttributes* detectorVisAttribute =
|
||||
new G4VisAttributes(G4Colour(1., 0., 1., 0.3));
|
||||
detectorVisAttribute->SetForceSolid(true);
|
||||
logicDetector->SetVisAttributes(detectorVisAttribute);
|
||||
|
||||
//always return the physical World
|
||||
return physWorld;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void DetectorConstruction::ConstructSDandField()
|
||||
{
|
||||
if (fActivateChannelingModel)
|
||||
{
|
||||
// --------------- fast simulation ----------------------------
|
||||
//extract the region of the crystal from the store
|
||||
G4RegionStore* regionStore = G4RegionStore::GetInstance();
|
||||
G4Region* regionCh = regionStore->GetRegion("Crystal");
|
||||
|
||||
//create the channeling model for this region
|
||||
G4ChannelingFastSimModel* channelingModel =
|
||||
new G4ChannelingFastSimModel("ChannelingModel", regionCh);
|
||||
|
||||
//activate the channeling model
|
||||
channelingModel->Input(fCrystalMaterial, fLattice, fPotentialPath);
|
||||
//setting bending angle of the crystal planes (default is 0)
|
||||
channelingModel->GetCrystalData()->SetBendingAngle(fBendingAngle, fLogicCrystal);
|
||||
|
||||
//setting crystalline undulator parameters
|
||||
//NOTE: they are incompatible with a bent crystal
|
||||
if (fCrystallineUndulatorAmplitude > DBL_EPSILON &&
|
||||
fCrystallineUndulatorPeriod > DBL_EPSILON)
|
||||
{
|
||||
channelingModel->GetCrystalData()->SetCrystallineUndulatorParameters(
|
||||
fCrystallineUndulatorAmplitude,
|
||||
fCrystallineUndulatorPeriod,
|
||||
fCrystallineUndulatorPhase,
|
||||
fLogicCrystal);
|
||||
}
|
||||
|
||||
/*
|
||||
Set the multiple of critical channeling angles (Lindhard angles) which defines
|
||||
the angular cut of the model (otherwise standard Geant4 is active):
|
||||
a number too low reduces the accuracy of the model;
|
||||
a number too high sometimes drastically reduces the simulation speed.
|
||||
The default value is 100, while for many problems 10-20 is ok.
|
||||
CAUTION: If you set this value to 1 meaning the angular cut = 1*Lindhard angle,
|
||||
this will cut off the physics of overbarrier motion, still important even if
|
||||
the particle is not in channeling. This will provide incorrect results.
|
||||
*/
|
||||
channelingModel->SetDefaultLindhardAngleNumberHighLimit(fLindhardAngles);
|
||||
//you may set a particular limit for a certain particle type
|
||||
//(has a priority vs default):
|
||||
channelingModel->SetLindhardAngleNumberHighLimit(fLindhardAnglesProton,"proton");
|
||||
channelingModel->SetLindhardAngleNumberHighLimit(fLindhardAnglesAntiproton,
|
||||
"anti_proton");
|
||||
channelingModel->SetLindhardAngleNumberHighLimit(fLindhardAnglesPiPlus,"pi+");
|
||||
channelingModel->SetLindhardAngleNumberHighLimit(fLindhardAnglesPiMinus,"pi-");
|
||||
channelingModel->SetLindhardAngleNumberHighLimit(fLindhardAnglesPositron,"e+");
|
||||
channelingModel->SetLindhardAngleNumberHighLimit(fLindhardAnglesElectron,"e-");
|
||||
channelingModel->SetLindhardAngleNumberHighLimit(fLindhardAnglesMuPlus,"mu+");
|
||||
channelingModel->SetLindhardAngleNumberHighLimit(fLindhardAnglesMuMinus,"mu-");
|
||||
//channelingModel->SetLindhardAngleNumberHighLimit(your_value,"your_particle");
|
||||
|
||||
/*
|
||||
Set the low kinetic energy cut for the model:
|
||||
too low energy may reduce the simulation speed (sometimes drastically),
|
||||
too high energy can cut off a useful physics for radiation losses.
|
||||
A recommended value depends a lot on the case. Usually it should be above 100 MeV,
|
||||
since below quantum channeling effects may become important, though lower energies
|
||||
are not forbidden. For energies considerably above 1 GeV and a crystal thick enough
|
||||
for multiphoton radiation emission,a lower energy limit of 300-500 MeV is recommended.
|
||||
*/
|
||||
channelingModel->SetDefaultLowKineticEnergyLimit(fParticleMinKinEnergy);
|
||||
//you may set a particular limit for a certain particle type
|
||||
//(has a priority vs default):
|
||||
channelingModel->SetLowKineticEnergyLimit(fProtonMinKinEnergy,"proton");
|
||||
channelingModel->SetLowKineticEnergyLimit(fAntiprotonMinKinEnergy,"anti_proton");
|
||||
channelingModel->SetLowKineticEnergyLimit(fPiPlusMinKinEnergy,"pi+");
|
||||
channelingModel->SetLowKineticEnergyLimit(fPiMinusMinKinEnergy,"pi-");
|
||||
channelingModel->SetLowKineticEnergyLimit(fPositronMinKinEnergy,"e+");
|
||||
channelingModel->SetLowKineticEnergyLimit(fElectronMinKinEnergy,"e-");
|
||||
channelingModel->SetLowKineticEnergyLimit(fMuPlusMinKinEnergy,"mu+");
|
||||
channelingModel->SetLowKineticEnergyLimit(fMuMinusMinKinEnergy,"mu-");
|
||||
//channelingModel->SetLowKineticEnergyLimit(your_value,"your_particle");
|
||||
|
||||
/*
|
||||
activate the radiation model (do it only when you want to take into account the
|
||||
radiation production in an oriented crystal; it reduces simulation speed.)
|
||||
*/
|
||||
if (fActivateRadiationModel)
|
||||
{
|
||||
channelingModel->RadiationModelActivate();
|
||||
G4cout << "Radiation model activated" << G4endl;
|
||||
|
||||
/*
|
||||
Set the number of the photons used in Monte Carlo integral in Baier-Katkov:
|
||||
too low number reduces the accuracy of the model;
|
||||
too high number reduces the calculation speed.
|
||||
In most of the cases 150 is a minimal secure number.
|
||||
*/
|
||||
channelingModel->GetRadiationModel()->
|
||||
SetSamplingPhotonsNumber(fSamplingPhotonsNumber);
|
||||
|
||||
/*
|
||||
Increase the statistics of sampling photons in a certain energy range.
|
||||
By default it is not active! In many cases it is not necessary.
|
||||
It is very useful for a soft spectrum part, when it is considerably below
|
||||
the charged particle energy, in order to increase the accuracy. It is possible
|
||||
to apply as many ranges as you want.
|
||||
NOTE: usually important for crystalline undulator
|
||||
CAUTION: insert only an integer number as a multiple of a photon statistics
|
||||
and ONLY > 1 .
|
||||
CAUTION: this energy range must not be beyond the range of radiation energies
|
||||
(i.e. below minimum photon energy (see below)) and must not intersect another
|
||||
range with an increased statistics if any.
|
||||
CAUTION: this is a multiple of the statistics of sampling photons randomly get in
|
||||
this energy range => make sure the total number of sampling photons is high enough
|
||||
to regularly get in this energy range, otherwise the statistics will not increase.
|
||||
*/
|
||||
if(fTimesPhotonStatistics>1)
|
||||
{channelingModel->GetRadiationModel()->
|
||||
AddStatisticsInPhotonEnergyRegion(fMinPhotonEnergyAddStat,
|
||||
fMaxPhotonEnergyAddStat,
|
||||
fTimesPhotonStatistics);}
|
||||
|
||||
/*
|
||||
Adjust the angular distribution of the sampling photons by
|
||||
changing the multiple of the opening radiation angle 1/gamma:
|
||||
the model should work correctly in the range 2-5;
|
||||
too small multiple reduces the accuracy;
|
||||
too high value requires more sampling photons.
|
||||
*/
|
||||
channelingModel->GetRadiationModel()->
|
||||
SetRadiationAngleFactor(fRadiationAngleFactor);
|
||||
|
||||
/*
|
||||
Set the minimal energy of radiated photon: generally it depends on which part
|
||||
of the spectrum you are interested in:
|
||||
too low number vs the charged particle energy may require more sampling photons
|
||||
in a total or in a particular energy range;
|
||||
too high number may reduce the accuracy in radiation energy loss.
|
||||
Generally 1 MeV is a recommended value.
|
||||
*/
|
||||
channelingModel->GetRadiationModel()->SetMinPhotonEnergy(fMinPhotonEnergy);
|
||||
|
||||
/*
|
||||
Set the number of trajectory steps after which the radiation probability
|
||||
check (whether the probability is below or above of the threshold) is performed;
|
||||
at the first iteration also the sampling photons are generated by using
|
||||
the angles of this first part of the trajectory as an argument:
|
||||
too higher number of steps reduces the accuracy due to considerable excess
|
||||
of the single radiation probability threshold;
|
||||
too low number may reduce the accuracy of the angular distribution of
|
||||
sampling photons.
|
||||
Generally the range between 1000-10000 steps is recommended.
|
||||
*/
|
||||
channelingModel->GetRadiationModel()->
|
||||
SetNSmallTrajectorySteps(fNSmallTrajectorySteps);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,555 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file DetectorConstructionMessenger.cc
|
||||
/// \brief Implementation of the DetectorConstruction messenger class
|
||||
//
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "DetectorConstructionMessenger.hh"
|
||||
#include "DetectorConstruction.hh"
|
||||
|
||||
#include "G4UIdirectory.hh"
|
||||
#include "G4UIcmdWithADoubleAndUnit.hh"
|
||||
#include "G4UIcmdWithADouble.hh"
|
||||
#include "G4UIcmdWithAnInteger.hh"
|
||||
#include "G4UIcmdWith3VectorAndUnit.hh"
|
||||
#include "G4UIcmdWithABool.hh"
|
||||
#include "G4UIcmdWithAString.hh"
|
||||
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
DetectorConstructionMessenger::DetectorConstructionMessenger(DetectorConstruction* det):
|
||||
fDetector(det)
|
||||
{
|
||||
fCmdDir = new G4UIdirectory("/crystal/");
|
||||
fCmdDir->SetGuidance("crystal Control");
|
||||
|
||||
fCrystalMaterialCmd = new G4UIcmdWithAString("/crystal/setCrystalMaterial",this);
|
||||
fCrystalMaterialCmd->SetGuidance("Set Crystal Material");
|
||||
fCrystalMaterialCmd->SetParameterName("matname",false);
|
||||
fCrystalMaterialCmd->SetDefaultValue("G4_Si");
|
||||
|
||||
fCrystalSizeCmd = new G4UIcmdWith3VectorAndUnit("/crystal/setCrystalSize",this);
|
||||
fCrystalSizeCmd->SetGuidance("Set Crystal size");
|
||||
fCrystalSizeCmd->SetParameterName("dimCrX","dimCrY","dimCrZ",false);
|
||||
fCrystalSizeCmd->SetUnitCategory("Length");
|
||||
fCrystalSizeCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fCrystalLatticeCmd = new G4UIcmdWithAString("/crystal/setCrystalLattice",this);
|
||||
fCrystalLatticeCmd->
|
||||
SetGuidance("Set Crystal Lattice, use brackets (...) for planes and <...> for axes");
|
||||
fCrystalLatticeCmd->SetParameterName("lattice",false);
|
||||
fCrystalLatticeCmd->SetDefaultValue("(111)");
|
||||
|
||||
fCrystalAngleXCmd = new G4UIcmdWithADoubleAndUnit("/crystal/setCrystalAngleX",this);
|
||||
fCrystalAngleXCmd->SetGuidance("Set crystal orientation with respect to the beam");
|
||||
fCrystalAngleXCmd->SetUnitCategory("Angle");
|
||||
fCrystalAngleXCmd->SetParameterName("angX",false);
|
||||
fCrystalAngleXCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fCrystalAngleYCmd = new G4UIcmdWithADoubleAndUnit("/crystal/setCrystalAngleY",this);
|
||||
fCrystalAngleYCmd->SetGuidance("Set crystal orientation with respect to the beam");
|
||||
fCrystalAngleYCmd->SetUnitCategory("Angle");
|
||||
fCrystalAngleYCmd->SetParameterName("angY",false);
|
||||
fCrystalAngleYCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fCrystalBendingAngleCmd =
|
||||
new G4UIcmdWithADoubleAndUnit("/crystal/setCrystalBendingAngle",this);
|
||||
fCrystalBendingAngleCmd->SetGuidance("Set crystal bending angle");
|
||||
fCrystalBendingAngleCmd->SetParameterName("bendingAngle",false);
|
||||
fCrystalBendingAngleCmd->SetUnitCategory("Angle");
|
||||
fCrystalBendingAngleCmd->SetRange("bendingAngle >= 0");
|
||||
fCrystalBendingAngleCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fCrystallineUndulatorAmplitudeCmd =
|
||||
new G4UIcmdWithADoubleAndUnit
|
||||
("/crystal/setCrystallineUndulatorAmplitude",this);
|
||||
fCrystallineUndulatorAmplitudeCmd->
|
||||
SetGuidance("Set crystalline undulator amplitude");
|
||||
fCrystallineUndulatorAmplitudeCmd->SetUnitCategory("Length");
|
||||
fCrystallineUndulatorAmplitudeCmd->
|
||||
SetParameterName("CrystallineUndulatorAmplitude",false);
|
||||
fCrystallineUndulatorAmplitudeCmd->
|
||||
SetRange("CrystallineUndulatorAmplitude > 0");
|
||||
fCrystallineUndulatorAmplitudeCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fCrystallineUndulatorPeriodCmd =
|
||||
new G4UIcmdWithADoubleAndUnit("/crystal/setCrystallineUndulatorPeriod",this);
|
||||
fCrystallineUndulatorPeriodCmd->
|
||||
SetGuidance("Set crystalline undulator Period");
|
||||
fCrystallineUndulatorPeriodCmd->SetUnitCategory("Length");
|
||||
fCrystallineUndulatorPeriodCmd->
|
||||
SetParameterName("CrystallineUndulatorPeriod",false);
|
||||
fCrystallineUndulatorPeriodCmd->
|
||||
SetRange("CrystallineUndulatorPeriod > 0");
|
||||
fCrystallineUndulatorPeriodCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fCrystallineUndulatorPhaseCmd =
|
||||
new G4UIcmdWithADouble("/crystal/setCrystallineUndulatorPhase",this);
|
||||
fCrystallineUndulatorPhaseCmd->
|
||||
SetGuidance("Set crystalline undulator phase");
|
||||
fCrystallineUndulatorPhaseCmd->
|
||||
SetParameterName("CrystallineUndulatorPhase",false);
|
||||
fCrystallineUndulatorPhaseCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fDetectorSizeCmd = new G4UIcmdWith3VectorAndUnit("/crystal/setDetectorSize",this);
|
||||
fDetectorSizeCmd->SetGuidance("Set detector size");
|
||||
fDetectorSizeCmd->SetParameterName("dimDetX","dimDetY","dimDetZ",false);
|
||||
fDetectorSizeCmd->SetUnitCategory("Length");
|
||||
fDetectorSizeCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fDetectorFrontPosZCmd =
|
||||
new G4UIcmdWithADoubleAndUnit("/crystal/setFrontPositionZ",this);
|
||||
fDetectorFrontPosZCmd->SetGuidance("Set detector front position Z");
|
||||
fDetectorFrontPosZCmd->SetParameterName("frontPosDetZ",false);
|
||||
fDetectorFrontPosZCmd->SetUnitCategory("Length");
|
||||
fDetectorFrontPosZCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fPotentialPathCmd = new G4UIcmdWithAString("/crystal/setChannelingDataPath",this);
|
||||
fPotentialPathCmd->
|
||||
SetGuidance("Set the path where to find the available data "
|
||||
"for the G4ChannelingFastSimModel "
|
||||
"if different from G4CHANNELINGDATA");
|
||||
fPotentialPathCmd->SetParameterName("channelingDataPath",false);
|
||||
fPotentialPathCmd->SetDefaultValue("");
|
||||
|
||||
fChannelingModelCmd = new G4UIcmdWithABool("/crystal/setChannelingModel", this);
|
||||
fChannelingModelCmd->SetGuidance("Activate/deactivate G4ChannelingFastSimModel");
|
||||
fChannelingModelCmd->SetParameterName("ChannelingModel",true);
|
||||
fChannelingModelCmd->SetDefaultValue(false);
|
||||
|
||||
fRadModelCmd = new G4UIcmdWithABool("/crystal/setRadiationModel", this);
|
||||
fRadModelCmd->SetGuidance("Activate/deactivate G4BaierKatkov");
|
||||
fRadModelCmd->SetParameterName("ActivateRadiationModel",true);
|
||||
fRadModelCmd->SetDefaultValue(false);
|
||||
|
||||
fMinPhotonEnergyCmd =
|
||||
new G4UIcmdWithADoubleAndUnit("/crystal/setMinPhotonEnergy",this);
|
||||
fMinPhotonEnergyCmd->
|
||||
SetGuidance("Set the low energy threshold for "
|
||||
"the photons emitted in G4BaierKatkov");
|
||||
fMinPhotonEnergyCmd->SetParameterName("MinPhotonEnergy",false);
|
||||
fMinPhotonEnergyCmd->SetUnitCategory("Energy");
|
||||
fMinPhotonEnergyCmd->SetRange("MinPhotonEnergy > 0");
|
||||
fMinPhotonEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fSamplingPhotonsNumberCmd =
|
||||
new G4UIcmdWithAnInteger("/crystal/setSamplingPhotonsNumber",this);
|
||||
fSamplingPhotonsNumberCmd->
|
||||
SetGuidance("Set SamplingPhotonsNumber in G4BaierKatkov");
|
||||
fSamplingPhotonsNumberCmd->SetParameterName("SamplingPhotonsNumber",false);
|
||||
fSamplingPhotonsNumberCmd->SetRange("SamplingPhotonsNumber>1");
|
||||
fSamplingPhotonsNumberCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fNSmallTrajectoryStepsCmd =
|
||||
new G4UIcmdWithAnInteger("/crystal/setNSmallTrajectorySteps",this);
|
||||
fNSmallTrajectoryStepsCmd->
|
||||
SetGuidance("Set NSmallTrajectorySteps in G4BaierKatkov");
|
||||
fNSmallTrajectoryStepsCmd->SetParameterName("NSmallTrajectorySteps",false);
|
||||
fNSmallTrajectoryStepsCmd->SetRange("NSmallTrajectorySteps>1");
|
||||
fNSmallTrajectoryStepsCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fRadiationAngleFactorCmd =
|
||||
new G4UIcmdWithADouble("/crystal/setRadiationAngleFactor",this);
|
||||
fRadiationAngleFactorCmd->SetGuidance("Set Radiation Angle Factor");
|
||||
fRadiationAngleFactorCmd->SetParameterName("RadiationAngleFactor",false);
|
||||
fRadiationAngleFactorCmd->SetRange("RadiationAngleFactor > 0");
|
||||
fRadiationAngleFactorCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fMinPhotonEnergyAddStatCmd =
|
||||
new G4UIcmdWithADoubleAndUnit("/crystal/AddPhotonStatistics/setMinPhotonEnergy",this);
|
||||
fMinPhotonEnergyAddStatCmd->
|
||||
SetGuidance("Set the min energy in the range to increase "
|
||||
"the sampling photon statistics in G4BaierKatkov");
|
||||
fMinPhotonEnergyAddStatCmd->SetParameterName("addStatMinPhotonEnergy",false);
|
||||
fMinPhotonEnergyAddStatCmd->SetUnitCategory("Energy");
|
||||
fMinPhotonEnergyAddStatCmd->SetRange("addStatMinPhotonEnergy > 0");
|
||||
fMinPhotonEnergyAddStatCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fMaxPhotonEnergyAddStatCmd =
|
||||
new G4UIcmdWithADoubleAndUnit("/crystal/AddPhotonStatistics/setMaxPhotonEnergy",this);
|
||||
fMaxPhotonEnergyAddStatCmd->
|
||||
SetGuidance("Set the max energy in the range to increase "
|
||||
"the sampling photon statistics in G4BaierKatkov");
|
||||
fMaxPhotonEnergyAddStatCmd->SetParameterName("addStatMaxPhotonEnergy",false);
|
||||
fMaxPhotonEnergyAddStatCmd->SetUnitCategory("Energy");
|
||||
fMaxPhotonEnergyAddStatCmd->SetRange("addStatMaxPhotonEnergy > 0");
|
||||
fMaxPhotonEnergyAddStatCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fTimesPhotonStatisticsCmd =
|
||||
new G4UIcmdWithAnInteger("/crystal/AddPhotonStatistics/setMultiplePhotonStatistics",
|
||||
this);
|
||||
fTimesPhotonStatisticsCmd->
|
||||
SetGuidance("Set multiple of the sampling photon statistics in G4BaierKatkov");
|
||||
fTimesPhotonStatisticsCmd->SetParameterName("timesPhotonStatistics",false);
|
||||
fTimesPhotonStatisticsCmd->SetRange("timesPhotonStatistics > 1");
|
||||
fTimesPhotonStatisticsCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fParticleMinKinEnergyCmd =
|
||||
new G4UIcmdWithADoubleAndUnit("/crystal/setParticleMinKinEnergy",this);
|
||||
fParticleMinKinEnergyCmd->
|
||||
SetGuidance("Set the low energy threshold for particle "
|
||||
"to enter the G4ChannelingFastSimModel");
|
||||
fParticleMinKinEnergyCmd->SetParameterName("partLEth",false);
|
||||
fParticleMinKinEnergyCmd->SetUnitCategory("Energy");
|
||||
fParticleMinKinEnergyCmd->SetRange("partLEth > 0");
|
||||
fParticleMinKinEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fProtonMinKinEnergyCmd =
|
||||
new G4UIcmdWithADoubleAndUnit("/crystal/setParticleMinKinEnergy/proton",this);
|
||||
fProtonMinKinEnergyCmd->
|
||||
SetGuidance("Set the low energy threshold for proton "
|
||||
"to enter the G4ChannelingFastSimModel");
|
||||
fProtonMinKinEnergyCmd->SetParameterName("protonLEth",false);
|
||||
fProtonMinKinEnergyCmd->SetUnitCategory("Energy");
|
||||
fProtonMinKinEnergyCmd->SetRange("protonLEth > 0");
|
||||
fProtonMinKinEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fAntiprotonMinKinEnergyCmd =
|
||||
new G4UIcmdWithADoubleAndUnit("/crystal/setParticleMinKinEnergy/anti_proton",this);
|
||||
fAntiprotonMinKinEnergyCmd->SetGuidance("Set the low energy threshold for anti_proton"
|
||||
" to enter the G4ChannelingFastSimModel");
|
||||
fAntiprotonMinKinEnergyCmd->SetParameterName("anti_protonLEth",false);
|
||||
fAntiprotonMinKinEnergyCmd->SetUnitCategory("Energy");
|
||||
fAntiprotonMinKinEnergyCmd->SetRange("anti_protonLEth > 0");
|
||||
fAntiprotonMinKinEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fPiPlusMinKinEnergyCmd =
|
||||
new G4UIcmdWithADoubleAndUnit("/crystal/setParticleMinKinEnergy/pi+",this);
|
||||
fPiPlusMinKinEnergyCmd->
|
||||
SetGuidance("Set the low energy threshold for pi+ "
|
||||
"to enter the G4ChannelingFastSimModel");
|
||||
fPiPlusMinKinEnergyCmd->SetParameterName("piPlusLEth",false);
|
||||
fPiPlusMinKinEnergyCmd->SetUnitCategory("Energy");
|
||||
fPiPlusMinKinEnergyCmd->SetRange("piPlusLEth > 0");
|
||||
fPiPlusMinKinEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fPiMinusMinKinEnergyCmd =
|
||||
new G4UIcmdWithADoubleAndUnit("/crystal/setParticleMinKinEnergy/pi-",this);
|
||||
fPiMinusMinKinEnergyCmd->SetGuidance("Set the low energy threshold for pi- "
|
||||
"to enter the G4ChannelingFastSimModel");
|
||||
fPiMinusMinKinEnergyCmd->SetParameterName("piMinusLEth",false);
|
||||
fPiMinusMinKinEnergyCmd->SetUnitCategory("Energy");
|
||||
fPiMinusMinKinEnergyCmd->SetRange("piMinusLEth > 0");
|
||||
fPiMinusMinKinEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fPositronMinKinEnergyCmd =
|
||||
new G4UIcmdWithADoubleAndUnit("/crystal/setParticleMinKinEnergy/e+",this);
|
||||
fPositronMinKinEnergyCmd->SetGuidance("Set the low energy threshold for e+ "
|
||||
"to enter the G4ChannelingFastSimModel");
|
||||
fPositronMinKinEnergyCmd->SetParameterName("ePlusLEth",false);
|
||||
fPositronMinKinEnergyCmd->SetUnitCategory("Energy");
|
||||
fPositronMinKinEnergyCmd->SetRange("ePlusLEth > 0");
|
||||
fPositronMinKinEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fElectronMinKinEnergyCmd =
|
||||
new G4UIcmdWithADoubleAndUnit("/crystal/setParticleMinKinEnergy/e-",this);
|
||||
fElectronMinKinEnergyCmd->SetGuidance("Set the low energy threshold for e- "
|
||||
"to enter the G4ChannelingFastSimModel");
|
||||
fElectronMinKinEnergyCmd->SetParameterName("eMinusLEth",false);
|
||||
fElectronMinKinEnergyCmd->SetUnitCategory("Energy");
|
||||
fElectronMinKinEnergyCmd->SetRange("eMinusLEth > 0");
|
||||
fElectronMinKinEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fMuPlusMinKinEnergyCmd =
|
||||
new G4UIcmdWithADoubleAndUnit("/crystal/setParticleMinKinEnergy/mu+",this);
|
||||
fMuPlusMinKinEnergyCmd->SetGuidance("Set the low energy threshold for mu+ "
|
||||
"to enter the G4ChannelingFastSimModel");
|
||||
fMuPlusMinKinEnergyCmd->SetParameterName("muPlusLEth",false);
|
||||
fMuPlusMinKinEnergyCmd->SetUnitCategory("Energy");
|
||||
fMuPlusMinKinEnergyCmd->SetRange("muPlusLEth > 0");
|
||||
fMuPlusMinKinEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fMuMinusMinKinEnergyCmd =
|
||||
new G4UIcmdWithADoubleAndUnit("/crystal/setParticleMinKinEnergy/mu-",this);
|
||||
fMuMinusMinKinEnergyCmd->SetGuidance("Set the low energy threshold for mu- "
|
||||
"to enter the G4ChannelingFastSimModel");
|
||||
fMuMinusMinKinEnergyCmd->SetParameterName("muMinusLEth",false);
|
||||
fMuMinusMinKinEnergyCmd->SetUnitCategory("Energy");
|
||||
fMuMinusMinKinEnergyCmd->SetRange("muMinusLEth > 0");
|
||||
fMuMinusMinKinEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fLindhardAnglesCmd = new G4UIcmdWithADouble("/crystal/setLindhardAngles",this);
|
||||
fLindhardAnglesCmd->
|
||||
SetGuidance("Set high angular threshold for particle to enter "
|
||||
"the G4ChannelingFastSimModel expressed in Lindhard angles");
|
||||
fLindhardAnglesCmd->SetParameterName("LindhardAngles",false);
|
||||
fLindhardAnglesCmd->SetRange("LindhardAngles >= 0");
|
||||
fLindhardAnglesCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fLindhardAnglesProtonCmd =
|
||||
new G4UIcmdWithADouble("/crystal/setLindhardAngles/proton",this);
|
||||
fLindhardAnglesProtonCmd->
|
||||
SetGuidance("Set high angular threshold for proton to enter "
|
||||
"the G4ChannelingFastSimModel expressed in Lindhard angles");
|
||||
fLindhardAnglesProtonCmd->SetParameterName("LindhardAnglesProton",false);
|
||||
fLindhardAnglesProtonCmd->SetRange("LindhardAnglesProton >= 0");
|
||||
fLindhardAnglesProtonCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fLindhardAnglesAntiprotonCmd =
|
||||
new G4UIcmdWithADouble("/crystal/setLindhardAngles/anti_proton",this);
|
||||
fLindhardAnglesAntiprotonCmd->
|
||||
SetGuidance("Set high angular threshold for anti_proton to enter "
|
||||
"the G4ChannelingFastSimModel expressed in Lindhard angles");
|
||||
fLindhardAnglesAntiprotonCmd->SetParameterName("LindhardAnglesAnti_proton",false);
|
||||
fLindhardAnglesAntiprotonCmd->SetRange("LindhardAnglesAnti_proton >= 0");
|
||||
fLindhardAnglesAntiprotonCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fLindhardAnglesPiPlusCmd =
|
||||
new G4UIcmdWithADouble("/crystal/setLindhardAngles/pi+",this);
|
||||
fLindhardAnglesPiPlusCmd->
|
||||
SetGuidance("Set high angular threshold for pi+ to enter "
|
||||
"the G4ChannelingFastSimModel expressed in Lindhard angles");
|
||||
fLindhardAnglesPiPlusCmd->SetParameterName("LindhardAnglesPiPlus",false);
|
||||
fLindhardAnglesPiPlusCmd->SetRange("LindhardAnglesPiPlus >= 0");
|
||||
fLindhardAnglesPiPlusCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fLindhardAnglesPiMinusCmd =
|
||||
new G4UIcmdWithADouble("/crystal/setLindhardAngles/pi-",this);
|
||||
fLindhardAnglesPiMinusCmd->
|
||||
SetGuidance("Set high angular threshold for pi- to enter "
|
||||
"the G4ChannelingFastSimModel expressed in Lindhard angles");
|
||||
fLindhardAnglesPiMinusCmd->SetParameterName("LindhardAnglesPiMinus",false);
|
||||
fLindhardAnglesPiMinusCmd->SetRange("LindhardAnglesPiMinus >= 0");
|
||||
fLindhardAnglesPiMinusCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fLindhardAnglesPositronCmd =
|
||||
new G4UIcmdWithADouble("/crystal/setLindhardAngles/e+",this);
|
||||
fLindhardAnglesPositronCmd->
|
||||
SetGuidance("Set high angular threshold for e+ to enter "
|
||||
"the G4ChannelingFastSimModel expressed in Lindhard angles");
|
||||
fLindhardAnglesPositronCmd->SetParameterName("LindhardAnglesPositron",false);
|
||||
fLindhardAnglesPositronCmd->SetRange("LindhardAnglesPositron >= 0");
|
||||
fLindhardAnglesPositronCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fLindhardAnglesElectronCmd =
|
||||
new G4UIcmdWithADouble("/crystal/setLindhardAngles/e-",this);
|
||||
fLindhardAnglesElectronCmd->
|
||||
SetGuidance("Set high angular threshold for e- to enter "
|
||||
"the G4ChannelingFastSimModel expressed in Lindhard angles");
|
||||
fLindhardAnglesElectronCmd->SetParameterName("LindhardAnglesElectron",false);
|
||||
fLindhardAnglesElectronCmd->SetRange("LindhardAnglesElectron >= 0");
|
||||
fLindhardAnglesElectronCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fLindhardAnglesMuPlusCmd =
|
||||
new G4UIcmdWithADouble("/crystal/setLindhardAngles/mu+",this);
|
||||
fLindhardAnglesMuPlusCmd->
|
||||
SetGuidance("Set high angular threshold for mu+ to enter "
|
||||
"the G4ChannelingFastSimModel expressed in Lindhard angles");
|
||||
fLindhardAnglesMuPlusCmd->SetParameterName("LindhardAnglesMuPlus",false);
|
||||
fLindhardAnglesMuPlusCmd->SetRange("LindhardAnglesMuPlus >= 0");
|
||||
fLindhardAnglesMuPlusCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
fLindhardAnglesMuMinusCmd =
|
||||
new G4UIcmdWithADouble("/crystal/setLindhardAngles/mu-",this);
|
||||
fLindhardAnglesMuMinusCmd->
|
||||
SetGuidance("Set high angular threshold for mu- to enter "
|
||||
"the G4ChannelingFastSimModel expressed in Lindhard angles");
|
||||
fLindhardAnglesMuMinusCmd->SetParameterName("LindhardAnglesMuMinus",false);
|
||||
fLindhardAnglesMuMinusCmd->SetRange("LindhardAnglesMuMinus >= 0");
|
||||
fLindhardAnglesMuMinusCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
DetectorConstructionMessenger::~DetectorConstructionMessenger()
|
||||
{
|
||||
delete fCmdDir;
|
||||
delete fCrystalMaterialCmd;
|
||||
delete fCrystalSizeCmd;
|
||||
delete fCrystalLatticeCmd;
|
||||
delete fCrystalAngleXCmd;
|
||||
delete fCrystalAngleYCmd;
|
||||
delete fCrystalBendingAngleCmd;
|
||||
delete fRadModelCmd;
|
||||
delete fChannelingModelCmd;
|
||||
|
||||
delete fCrystallineUndulatorAmplitudeCmd;
|
||||
delete fCrystallineUndulatorPeriodCmd;
|
||||
delete fCrystallineUndulatorPhaseCmd;
|
||||
|
||||
delete fDetectorSizeCmd;
|
||||
delete fDetectorFrontPosZCmd;
|
||||
|
||||
delete fPotentialPathCmd;
|
||||
|
||||
delete fMinPhotonEnergyCmd;
|
||||
delete fSamplingPhotonsNumberCmd;
|
||||
delete fNSmallTrajectoryStepsCmd;
|
||||
delete fRadiationAngleFactorCmd;
|
||||
delete fMinPhotonEnergyAddStatCmd;
|
||||
delete fMaxPhotonEnergyAddStatCmd;
|
||||
delete fTimesPhotonStatisticsCmd;
|
||||
|
||||
delete fParticleMinKinEnergyCmd;
|
||||
delete fProtonMinKinEnergyCmd;
|
||||
delete fAntiprotonMinKinEnergyCmd;
|
||||
delete fPiPlusMinKinEnergyCmd;
|
||||
delete fPiMinusMinKinEnergyCmd;
|
||||
delete fElectronMinKinEnergyCmd;
|
||||
delete fPositronMinKinEnergyCmd;
|
||||
delete fMuPlusMinKinEnergyCmd;
|
||||
delete fMuMinusMinKinEnergyCmd;
|
||||
|
||||
delete fLindhardAnglesCmd;
|
||||
delete fLindhardAnglesProtonCmd;
|
||||
delete fLindhardAnglesAntiprotonCmd;
|
||||
delete fLindhardAnglesPiPlusCmd;
|
||||
delete fLindhardAnglesPiMinusCmd;
|
||||
delete fLindhardAnglesElectronCmd;
|
||||
delete fLindhardAnglesPositronCmd;
|
||||
delete fLindhardAnglesMuPlusCmd;
|
||||
delete fLindhardAnglesMuMinusCmd;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void DetectorConstructionMessenger::SetNewValue(G4UIcommand* command, G4String newValue)
|
||||
{
|
||||
if (command == fCrystalMaterialCmd)
|
||||
{fDetector->SetCrystalMaterial(newValue);}
|
||||
if (command == fCrystalSizeCmd)
|
||||
{fDetector->SetCrystalSize(fCrystalSizeCmd->GetNew3VectorValue(newValue));}
|
||||
if (command == fCrystalLatticeCmd)
|
||||
{fDetector->SetCrystalLattice(newValue);}
|
||||
if (command == fCrystalAngleXCmd)
|
||||
{fDetector->SetCrystalAngleX(fCrystalAngleXCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fCrystalAngleYCmd)
|
||||
{fDetector->SetCrystalAngleY(fCrystalAngleYCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fCrystalBendingAngleCmd)
|
||||
{fDetector->SetCrystalBendingAngle(
|
||||
fCrystalBendingAngleCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fRadModelCmd)
|
||||
{fDetector->SetRadiationModel(fRadModelCmd->GetNewBoolValue(newValue));}
|
||||
if (command == fChannelingModelCmd)
|
||||
{fDetector->SetChannelingModel(fChannelingModelCmd->GetNewBoolValue(newValue));}
|
||||
|
||||
if (command == fCrystallineUndulatorAmplitudeCmd)
|
||||
{fDetector->SetCrystallineUndulatorAmplitude
|
||||
(fCrystallineUndulatorAmplitudeCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fCrystallineUndulatorPeriodCmd)
|
||||
{fDetector->SetCrystallineUndulatorPeriod
|
||||
(fCrystallineUndulatorPeriodCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fCrystallineUndulatorPhaseCmd)
|
||||
{fDetector->SetCrystallineUndulatorPhase
|
||||
(fCrystallineUndulatorPhaseCmd->GetNewDoubleValue(newValue));}
|
||||
|
||||
if (command == fDetectorSizeCmd)
|
||||
{fDetector->SetDetectorSize(fDetectorSizeCmd->GetNew3VectorValue(newValue));}
|
||||
if (command == fDetectorFrontPosZCmd)
|
||||
{fDetector->SetDetectorFrontPositionZ(
|
||||
fDetectorFrontPosZCmd->GetNewDoubleValue(newValue));}
|
||||
|
||||
if (command == fPotentialPathCmd)
|
||||
{fDetector->SetPotentialPath(newValue);}
|
||||
|
||||
if (command == fMinPhotonEnergyCmd)
|
||||
{fDetector->SetMinPhotonEnergy(
|
||||
fMinPhotonEnergyCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fSamplingPhotonsNumberCmd)
|
||||
{fDetector->SetSamplingPhotonsNumber(
|
||||
fSamplingPhotonsNumberCmd->GetNewIntValue(newValue));}
|
||||
if (command == fNSmallTrajectoryStepsCmd)
|
||||
{fDetector->SetNSmallTrajectorySteps(
|
||||
fNSmallTrajectoryStepsCmd->GetNewIntValue(newValue));}
|
||||
if (command == fRadiationAngleFactorCmd)
|
||||
{fDetector->SetRadiationAngleFactor(
|
||||
fRadiationAngleFactorCmd->GetNewDoubleValue(newValue));}
|
||||
|
||||
if (command == fMinPhotonEnergyAddStatCmd)
|
||||
{fDetector->SetMinPhotonEnergyAddStat(
|
||||
fMinPhotonEnergyAddStatCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fMaxPhotonEnergyAddStatCmd)
|
||||
{fDetector->SetMaxPhotonEnergyAddStat(
|
||||
fMaxPhotonEnergyAddStatCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fTimesPhotonStatisticsCmd)
|
||||
{fDetector->SetMultiplePhotonStatistics(
|
||||
fTimesPhotonStatisticsCmd->GetNewIntValue(newValue));}
|
||||
|
||||
if (command == fParticleMinKinEnergyCmd)
|
||||
{fDetector->SetParticleMinKinEnergy(
|
||||
fParticleMinKinEnergyCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fProtonMinKinEnergyCmd)
|
||||
{fDetector->SetProtonMinKinEnergy(
|
||||
fProtonMinKinEnergyCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fAntiprotonMinKinEnergyCmd)
|
||||
{fDetector->SetAntiprotonMinKinEnergy(
|
||||
fAntiprotonMinKinEnergyCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fPiPlusMinKinEnergyCmd)
|
||||
{fDetector->SetPiPlusMinKinEnergy(
|
||||
fPiPlusMinKinEnergyCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fPiMinusMinKinEnergyCmd)
|
||||
{fDetector->SetPiMinusMinKinEnergy(
|
||||
fPiMinusMinKinEnergyCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fElectronMinKinEnergyCmd)
|
||||
{fDetector->SetElectronMinKinEnergy(
|
||||
fElectronMinKinEnergyCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fPositronMinKinEnergyCmd)
|
||||
{fDetector->SetPositronMinKinEnergy(
|
||||
fPositronMinKinEnergyCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fMuPlusMinKinEnergyCmd)
|
||||
{fDetector->SetMuPlusMinKinEnergy(
|
||||
fMuPlusMinKinEnergyCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fMuMinusMinKinEnergyCmd)
|
||||
{fDetector->SetMuMinusMinKinEnergy(
|
||||
fMuMinusMinKinEnergyCmd->GetNewDoubleValue(newValue));}
|
||||
|
||||
if (command == fLindhardAnglesCmd)
|
||||
{fDetector->SetLindhardAngles(
|
||||
fLindhardAnglesCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fLindhardAnglesProtonCmd)
|
||||
{fDetector->SetLindhardAnglesProton(
|
||||
fLindhardAnglesProtonCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fLindhardAnglesAntiprotonCmd)
|
||||
{fDetector->SetLindhardAnglesAntiproton(
|
||||
fLindhardAnglesAntiprotonCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fLindhardAnglesPiPlusCmd)
|
||||
{fDetector->SetLindhardAnglesPiPlus(
|
||||
fLindhardAnglesPiPlusCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fLindhardAnglesPiMinusCmd)
|
||||
{fDetector->SetLindhardAnglesPiMinus(
|
||||
fLindhardAnglesPiMinusCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fLindhardAnglesElectronCmd)
|
||||
{fDetector->SetLindhardAnglesElectron(
|
||||
fLindhardAnglesElectronCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fLindhardAnglesPositronCmd)
|
||||
{fDetector->SetLindhardAnglesPositron(
|
||||
fLindhardAnglesPositronCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fLindhardAnglesMuPlusCmd)
|
||||
{fDetector->SetLindhardAnglesMuPlus(
|
||||
fLindhardAnglesMuPlusCmd->GetNewDoubleValue(newValue));}
|
||||
if (command == fLindhardAnglesMuMinusCmd)
|
||||
{fDetector->SetLindhardAnglesMuMinus(
|
||||
fLindhardAnglesMuMinusCmd->GetNewDoubleValue(newValue));}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file PrimaryGeneratorAction.cc
|
||||
/// \brief Implementation of the PrimaryGeneratorAction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "PrimaryGeneratorAction.hh"
|
||||
#include "G4Event.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PrimaryGeneratorAction::PrimaryGeneratorAction()
|
||||
{
|
||||
fGPS = new G4GeneralParticleSource();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PrimaryGeneratorAction::~PrimaryGeneratorAction()
|
||||
{
|
||||
delete fGPS;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
|
||||
{
|
||||
fGPS->GeneratePrimaryVertex(anEvent);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file RunAction.cc
|
||||
/// \brief Implementation of the RunAction class
|
||||
|
||||
#include "RunAction.hh"
|
||||
#include "G4AnalysisManager.hh"
|
||||
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4Run.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
RunAction::RunAction()
|
||||
: G4UserRunAction()
|
||||
{
|
||||
//using analysis manager for output
|
||||
auto analysisManager = G4AnalysisManager::Instance();
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
analysisManager->SetNtupleMerging(true);
|
||||
#else
|
||||
analysisManager->SetNtupleMerging(false);
|
||||
#endif
|
||||
|
||||
//Creating the ntuple to score the deflection of particles and
|
||||
//the emitted radiation
|
||||
|
||||
G4String nTupleName[3] =
|
||||
{"crystal", "detector", "detector_photons"};
|
||||
for(G4int i=0; i<3; i++)
|
||||
{
|
||||
analysisManager->CreateNtuple(nTupleName[i],nTupleName[i]);
|
||||
analysisManager->CreateNtupleIColumn("eventID");
|
||||
analysisManager->CreateNtupleSColumn("volume");
|
||||
analysisManager->CreateNtupleDColumn("x");
|
||||
analysisManager->CreateNtupleDColumn("y");
|
||||
analysisManager->CreateNtupleDColumn("angle_x");
|
||||
analysisManager->CreateNtupleDColumn("angle_y");
|
||||
analysisManager->CreateNtupleDColumn("Ekin");
|
||||
analysisManager->CreateNtupleSColumn("particle");
|
||||
analysisManager->CreateNtupleIColumn("particleID");
|
||||
analysisManager->CreateNtupleIColumn("parentID");
|
||||
|
||||
analysisManager->FinishNtuple();
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void RunAction::BeginOfRunAction(const G4Run*)
|
||||
{
|
||||
//opening output file
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
G4String fileName = "results.root";
|
||||
analysisManager->OpenFile(fileName);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void RunAction::EndOfRunAction(const G4Run*)
|
||||
{
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
analysisManager->Write();
|
||||
analysisManager->CloseFile();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -0,0 +1,138 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file SteppingAction.cc
|
||||
/// \brief Implementation of the SteppingAction class
|
||||
|
||||
#include "SteppingAction.hh"
|
||||
#include "DetectorConstruction.hh"
|
||||
|
||||
#include "G4Step.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4LogicalVolume.hh"
|
||||
|
||||
#include "G4AnalysisManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
SteppingAction::SteppingAction()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void SteppingAction::UserSteppingAction(const G4Step* step)
|
||||
{
|
||||
|
||||
G4String volumeName = step->GetPreStepPoint()->GetTouchableHandle()
|
||||
->GetVolume()->GetName();
|
||||
|
||||
//if a particle enters the detector volume
|
||||
if (step->GetPreStepPoint()-> GetStepStatus()==G4StepStatus::fGeomBoundary&&
|
||||
(volumeName=="Crystal"||volumeName=="Detector"))
|
||||
{
|
||||
|
||||
//coordinates
|
||||
G4double x0 = step->GetPreStepPoint()->GetPosition().getX()/CLHEP::mm;
|
||||
G4double y0 = step->GetPreStepPoint()->GetPosition().getY()/CLHEP::mm;
|
||||
|
||||
//angles
|
||||
G4ThreeVector momentumDirection =
|
||||
step->GetPreStepPoint()->GetMomentumDirection();
|
||||
G4double angle_x =
|
||||
std::atan(momentumDirection.getX()/momentumDirection.getZ());
|
||||
G4double angle_y =
|
||||
std::atan(momentumDirection.getY()/momentumDirection.getZ());
|
||||
if (momentumDirection.getZ() < 0)
|
||||
{
|
||||
if (momentumDirection.getX() > 0)
|
||||
{
|
||||
angle_x += CLHEP::pi;
|
||||
}
|
||||
else
|
||||
{
|
||||
angle_x -= CLHEP::pi;
|
||||
}
|
||||
if (momentumDirection.getY() > 0)
|
||||
{
|
||||
angle_y += CLHEP::pi;
|
||||
}
|
||||
else
|
||||
{
|
||||
angle_y -= CLHEP::pi;
|
||||
}
|
||||
}
|
||||
|
||||
//kinetic energy
|
||||
G4double ekin = step->GetPreStepPoint()->GetKineticEnergy()/CLHEP::MeV;
|
||||
|
||||
//particle name, ID and parentID
|
||||
G4String particleName =
|
||||
step->GetTrack()->GetDefinition()->GetParticleName();
|
||||
G4int particleID = step->GetTrack()->GetTrackID();
|
||||
G4int parentID = step->GetTrack()->GetParentID();
|
||||
|
||||
//event ID
|
||||
G4int eventID =
|
||||
G4RunManager::GetRunManager()->GetCurrentEvent()->GetEventID();
|
||||
|
||||
//ntuple index
|
||||
G4int iTuple = 0;
|
||||
if(volumeName=="Crystal")
|
||||
{
|
||||
iTuple = 0;
|
||||
}
|
||||
else if(volumeName=="Detector")
|
||||
{
|
||||
if(particleName=="gamma")
|
||||
{
|
||||
iTuple = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
iTuple = 1;
|
||||
}
|
||||
}
|
||||
|
||||
//saving result to root
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
analysisManager->FillNtupleIColumn(iTuple,0,eventID);
|
||||
analysisManager->FillNtupleSColumn(iTuple,1,volumeName);
|
||||
analysisManager->FillNtupleDColumn(iTuple,2,x0);
|
||||
analysisManager->FillNtupleDColumn(iTuple,3,y0);
|
||||
analysisManager->FillNtupleDColumn(iTuple,4,angle_x);
|
||||
analysisManager->FillNtupleDColumn(iTuple,5,angle_y);
|
||||
analysisManager->FillNtupleDColumn(iTuple,6,ekin);
|
||||
analysisManager->FillNtupleSColumn(iTuple,7,particleName);
|
||||
analysisManager->FillNtupleIColumn(iTuple,8,particleID);
|
||||
analysisManager->FillNtupleIColumn(iTuple,9,parentID);
|
||||
analysisManager->AddNtupleRow(iTuple);
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
//}
|
||||
@@ -0,0 +1,69 @@
|
||||
#Macro for the visualization
|
||||
|
||||
#Create an empty scene
|
||||
/vis/scene/create
|
||||
|
||||
#Create a scene handler for a specific graphics system
|
||||
/vis/open OGL
|
||||
#/vis/open DAWNFILE
|
||||
#/vis/open VRML2FILE
|
||||
|
||||
#Disable auto refresh and quieten vis messages whilst scene and
|
||||
#trajectories are established:
|
||||
/vis/viewer/set/autoRefresh false
|
||||
/vis/verbose errors
|
||||
|
||||
#Draw the scene
|
||||
/vis/drawVolume
|
||||
/vis/viewer/flush
|
||||
|
||||
#Set the camera
|
||||
/vis/viewer/reset
|
||||
/vis/viewer/set/viewpointThetaPhi 135. 45. deg
|
||||
/vis/viewer/zoom 2
|
||||
|
||||
#Specify style (surface, wireframe, auxiliary edges,...)
|
||||
/vis/viewer/set/style wireframe
|
||||
/vis/viewer/set/lineSegmentsPerCircle 100
|
||||
|
||||
#Geometry
|
||||
#/vis/geometry/set/lineWidth all 1 3
|
||||
|
||||
#Decoration
|
||||
#Axes
|
||||
/vis/set/lineWidth 3
|
||||
#/vis/scene/add/axes 0 0 0 1.0 m #Simple axes: x=red, y=green, z=blue.
|
||||
#Name
|
||||
#/vis/set/textColour red
|
||||
#/vis/set/textLayout right
|
||||
#/vis/scene/add/text2D 0.8 -0.85 24 ! ! ch2
|
||||
#Frame
|
||||
#/vis/set/colour red
|
||||
#/vis/set/lineWidth 2
|
||||
#/vis/scene/add/frame #Simple frame around the view
|
||||
#/vis/set/colour #Revert to default colour (white)
|
||||
#/vis/set/lineWidth #Revert to default line width (1.)
|
||||
|
||||
#Commands for the drawing the tracks
|
||||
/vis/scene/add/eventID #Drawn at end of event
|
||||
/tracking/storeTrajectory 0 #(if too many tracks cause core dumped => storeTrajectory 0)
|
||||
/vis/scene/endOfEventAction accumulate
|
||||
/vis/scene/add/trajectories smooth rich
|
||||
#/vis/modeling/trajectories/create/drawByParticleID
|
||||
/vis/modeling/trajectories/create/drawByCharge
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2
|
||||
|
||||
#Draw hits at end of event:
|
||||
/vis/scene/add/hits
|
||||
|
||||
#Geometry test (it can cause a "core dumped")
|
||||
/geometry/navigator/reset
|
||||
/geometry/test/run
|
||||
|
||||
#Re-establish auto refreshing and verbosity:
|
||||
/vis/viewer/set/autoRefresh true
|
||||
/vis/verbose warnings
|
||||
|
||||
#For file-based drivers, use this to create an empty detector view:
|
||||
#/vis/viewer/flush
|
||||
@@ -0,0 +1,74 @@
|
||||
|
||||
///\file "exoticphysics/channeling/ch3/.README.txt"
|
||||
///\brief Example ch3 README page
|
||||
|
||||
/*! \page Examplech3 Example ch3
|
||||
|
||||
\author Alexei Sytov - INFN Ferrara Division (Italy) \n
|
||||
sytov@fe.infn.it
|
||||
|
||||
\section ch3_s1 INTRODUCTION
|
||||
Example ch3 demonstrates the minimum requirements necessary to integrate the
|
||||
G4CoherentPairProduction process into a project, along with the G4ChannelingFastSimModel
|
||||
and G4BaierKatkov models, to simulate the physics of electromagnetic showers in
|
||||
an oriented crystal.
|
||||
|
||||
The key concept is the acceleration of electromagnetic processes (both radiation and
|
||||
pair production) in an oriented crystal, which can significantly reduce the effective
|
||||
radiation length [1,2]. Potential applications include electron/positron sources for
|
||||
accelerator experiments, as well as crystalline oriented calorimeters for collider and
|
||||
space applications [1,2].
|
||||
|
||||
This example serves as a guideline for users on how to add this physics
|
||||
to their existing Geant4 projects. It includes the minimum necessary options
|
||||
to incorporate this physics. Specifically, it requires registering
|
||||
G4FastSimulationPhysics and G4CoherentPairProductionPhysics in the main routine and
|
||||
adding a few lines of code in DetectorConstruction.
|
||||
|
||||
All of this physics does not depend on the physics list. In particular, the
|
||||
process G4CoherentPairProduction simulates only coherent part of pair production in
|
||||
the crystal volume, while the incoherent one should be simulated with
|
||||
standard Geant4 processes.
|
||||
|
||||
\section ch3_s2 DESCRIPTION
|
||||
|
||||
The example simulates high energy photon interaction (typically above 10 GeV) with
|
||||
an oriented W crystal with <111> crystal axes aligned along the photon beam direction.
|
||||
|
||||
The structure of this example is very similar to the example ch1.
|
||||
ch3 includes a straight W crystal and a detector positioned behind it.
|
||||
The incoming photon beam is set up in macro run.mac.
|
||||
|
||||
One can also use the Geant4 GUI by launching the code without specifying a macro file.
|
||||
In this case, the visualization setup is automatically loaded through the vis.mac and
|
||||
init_vis.mac macro files. The initial beam distribution in this setup will be identical
|
||||
to that in run.mac.
|
||||
|
||||
The example does not include any input of the model or geometry parameters
|
||||
from the macro to keep it as straightforward as possible. The output is recorded
|
||||
into the file results.root. It consists of the spectrums of e-, e+
|
||||
and gamma arriving to the detector. To build these plots, one has to
|
||||
open this file in root and use
|
||||
\verbatim
|
||||
Spectrum_electrons->Draw()
|
||||
\endverbatim
|
||||
|
||||
\verbatim
|
||||
Spectrum_positrons->Draw()
|
||||
\endverbatim
|
||||
|
||||
and
|
||||
|
||||
\verbatim
|
||||
Spectrum_gamma->Draw()
|
||||
\endverbatim
|
||||
|
||||
for e-, e+ and gamma, respectively.
|
||||
|
||||
\section ch3_s3 REFERENCES
|
||||
|
||||
-# V. N. Baier, V. M. Katkov, V. M. Strakhovenko. <a href="https://www.worldscientific.com/worldscibooks/10.1142/2216?srsltid=AfmBOopiXOyx7OWz8aPSFSC5kIKSJQs6wGF512V05177LJ_xX3mDfA7s#t=aboutBook">Electromagnetic Processes
|
||||
at High Energies in Oriented Single Crystals (World Scientific, Singapore, 1998).</a>
|
||||
-# L. Bandiera, V.V. Tikhomirov et al. <a href="https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.121.021603">Phys. Rev. Lett. 121, 021603 (2018).</a>
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,55 @@
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup the project
|
||||
cmake_minimum_required(VERSION 3.16...3.21)
|
||||
project(ch3)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Find Geant4 package, activating all available UI and Vis drivers by default
|
||||
# You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui
|
||||
# to build a batch mode only executable
|
||||
#
|
||||
option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON)
|
||||
if(WITH_GEANT4_UIVIS)
|
||||
find_package(Geant4 REQUIRED ui_all vis_all)
|
||||
else()
|
||||
find_package(Geant4 REQUIRED)
|
||||
endif()
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup Geant4 include directories and compile definitions
|
||||
#
|
||||
include(${Geant4_USE_FILE})
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Copy all scripts to the build directory, i.e. the directory in which we
|
||||
# build ch3. This is so that we can run the executable directly because it
|
||||
# relies on these scripts being in the current working directory.
|
||||
#
|
||||
set(TESTch3_SCRIPTS
|
||||
init_vis.mac
|
||||
vis.mac
|
||||
run.mac
|
||||
)
|
||||
|
||||
foreach(_script ${TESTch3_SCRIPTS})
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/${_script}
|
||||
${PROJECT_BINARY_DIR}/${_script}
|
||||
COPYONLY
|
||||
)
|
||||
endforeach()
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add the executable, and link it to the Geant4 libraries
|
||||
#
|
||||
# Locate sources and headers for this project
|
||||
file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc)
|
||||
file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add the executable, and link it to the Geant4 libraries
|
||||
#
|
||||
add_executable(ch3 ch3.cc ${sources} ${headers})
|
||||
target_include_directories(ch3 PRIVATE include)
|
||||
target_link_libraries(ch3 PRIVATE ${Geant4_LIBRARIES})
|
||||
@@ -0,0 +1,8 @@
|
||||
# Category ch3 History
|
||||
|
||||
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
|
||||
which **must** added in reverse chronological order (newest at the top). It must **not**
|
||||
be used as a substitute for writing good git commit messages!
|
||||
|
||||
## 2024-10-30 Alexei Sytov (ch3-V11-02-00)
|
||||
- First implementation
|
||||
@@ -0,0 +1,59 @@
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
|
||||
=========================================================
|
||||
|
||||
Example ch3
|
||||
-----------
|
||||
A. Sytov
|
||||
INFN Ferrara Division, sytov@fe.infn.it
|
||||
|
||||
INTRODUCTION
|
||||
Example ch3 demonstrates the minimum requirements necessary to integrate the
|
||||
G4CoherentPairProduction process into a project, along with the G4ChannelingFastSimModel
|
||||
and G4BaierKatkov models, to simulate the physics of electromagnetic showers in
|
||||
an oriented crystal.
|
||||
|
||||
The key concept is the acceleration of electromagnetic processes (both radiation and
|
||||
pair production) in an oriented crystal, which can significantly reduce the effective
|
||||
radiation length [1,2]. Potential applications include electron/positron sources for
|
||||
accelerator experiments, as well as crystalline oriented calorimeters for collider and
|
||||
space applications [1,2].
|
||||
|
||||
This example serves as a guideline for users on how to add this physics
|
||||
to their existing Geant4 projects. It includes the minimum necessary options
|
||||
to incorporate this physics. Specifically, it requires registering
|
||||
G4FastSimulationPhysics and G4CoherentPairProductionPhysics in the main routine and
|
||||
adding a few lines of code in DetectorConstruction.
|
||||
|
||||
All of this physics does not depend on the physics list. In particular, the
|
||||
process G4CoherentPairProduction simulates only coherent part of pair production in
|
||||
the crystal volume, while the incoherent one should be simulated with
|
||||
standard Geant4 processes.
|
||||
|
||||
DESCRIPTION
|
||||
|
||||
The example simulates high energy photon interaction (typically above 10 GeV) with
|
||||
an oriented W crystal with <111> crystal axes aligned along the photon beam direction.
|
||||
|
||||
The structure of this example is very similar to the example ch1.
|
||||
ch3 includes a straight W crystal and a detector positioned behind it.
|
||||
The incoming photon beam is set up in macro run.mac.
|
||||
|
||||
One can also use the Geant4 GUI by launching the code without specifying a macro file.
|
||||
In this case, the visualization setup is automatically loaded through the vis.mac and
|
||||
init_vis.mac macro files. The initial beam distribution in this setup will be identical
|
||||
to that in run.mac.
|
||||
|
||||
The example does not include any input of the model or geometry parameters
|
||||
from the macro to keep it as straightforward as possible. The output is recorded
|
||||
into the file results.root. It consists of the spectrums of e-, e+
|
||||
and gamma arriving to the detector. To build these plots, one has to
|
||||
open this file in root and use Spectrum_electrons->Draw(), Spectrum_positrons->Draw()
|
||||
and Spectrum_gamma->Draw() for e-, e+ and gamma, respectively.
|
||||
|
||||
REFERENCES
|
||||
[1] V. N. Baier, V. M. Katkov, V. M. Strakhovenko, Electromagnetic Processes
|
||||
at High Energies in Oriented Single Crystals (World Scientific, Singapore, 1998).
|
||||
[2] L. Bandiera, V.V. Tikhomirov et al. Phys. Rev. Lett. 121, 021603 (2018).
|
||||
@@ -0,0 +1,142 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file ch3.cc
|
||||
/// \brief Main program of the ch3 example
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "DetectorConstruction.hh"
|
||||
#include "ActionInitialization.hh"
|
||||
|
||||
#include "G4RunManagerFactory.hh"
|
||||
#include "G4SteppingVerbose.hh"
|
||||
#include "G4UImanager.hh"
|
||||
#include "FTFP_BERT.hh"
|
||||
#include "G4FastSimulationPhysics.hh"
|
||||
#include "G4CoherentPairProductionPhysics.hh"
|
||||
|
||||
#include "G4VisExecutive.hh"
|
||||
#include "G4UIExecutive.hh"
|
||||
|
||||
#include "Randomize.hh"
|
||||
#include "G4Timer.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
int main(int argc,char** argv)
|
||||
{
|
||||
// Get current time
|
||||
G4Timer* theTimer = new G4Timer();
|
||||
theTimer->Start();
|
||||
|
||||
// Choose the Random engine
|
||||
G4Random::setTheEngine(new CLHEP::RanecuEngine);
|
||||
CLHEP::HepRandom::setTheSeed(0.);
|
||||
|
||||
//use G4SteppingVerboseWithUnits
|
||||
G4int precision = 4;
|
||||
G4SteppingVerbose::UseBestUnit(precision);
|
||||
|
||||
// Detect interactive mode (if no arguments) and define UI session
|
||||
G4UIExecutive* ui = nullptr;
|
||||
if ( argc == 1 ) { ui = new G4UIExecutive(argc, argv); }
|
||||
|
||||
// Construct the default run manager
|
||||
auto* runManager =
|
||||
G4RunManagerFactory::CreateRunManager(G4RunManagerType::Default);
|
||||
|
||||
// Set mandatory initialization classes
|
||||
//
|
||||
// Detector construction
|
||||
runManager->SetUserInitialization(new DetectorConstruction());
|
||||
|
||||
// Physics list
|
||||
G4VModularPhysicsList* physicsList = new FTFP_BERT;
|
||||
|
||||
// -- Create helper tool, used to activate the fast simulation:
|
||||
G4FastSimulationPhysics* fastSimulationPhysics = new G4FastSimulationPhysics();
|
||||
fastSimulationPhysics->BeVerbose();
|
||||
// -- activation of fast simulation for particles having fast simulation models
|
||||
fastSimulationPhysics->ActivateFastSimulation("e-");
|
||||
fastSimulationPhysics->ActivateFastSimulation("e+");
|
||||
// -- Attach the fast simulation physics constructor to the physics list:
|
||||
physicsList->RegisterPhysics( fastSimulationPhysics );
|
||||
|
||||
// Create coherent pair production physics
|
||||
G4CoherentPairProductionPhysics* coherentPairProductionPhysics =
|
||||
new G4CoherentPairProductionPhysics();
|
||||
// CAUTION: using default for channeling model name "ChannelingModel" and
|
||||
// the region name "Crystal" (see DetectorConstruction).
|
||||
|
||||
// Register coherentPairProductionPhysics to the physics list:
|
||||
physicsList->RegisterPhysics(coherentPairProductionPhysics);
|
||||
|
||||
physicsList->SetVerboseLevel(1);
|
||||
runManager->SetUserInitialization(physicsList);
|
||||
|
||||
// User action initialization
|
||||
runManager->SetUserInitialization(new ActionInitialization());
|
||||
|
||||
// Initialize visualization
|
||||
G4VisManager* visManager = new G4VisExecutive;
|
||||
// G4VisExecutive can take a verbosity argument - see /vis/verbose guidance.
|
||||
// G4VisManager* visManager = new G4VisExecutive("Quiet");
|
||||
visManager->Initialize();
|
||||
|
||||
// Get the pointer to the User Interface manager
|
||||
G4UImanager* UImanager = G4UImanager::GetUIpointer();
|
||||
|
||||
// Process macro or start UI session
|
||||
if ( ! ui ) {
|
||||
// batch mode
|
||||
G4String command = "/control/execute ";
|
||||
G4String fileName = argv[1];
|
||||
UImanager->ApplyCommand(command+fileName);
|
||||
}
|
||||
else {
|
||||
// interactive mode
|
||||
UImanager->ApplyCommand("/control/execute init_vis.mac");
|
||||
ui->SessionStart();
|
||||
delete ui;
|
||||
}
|
||||
|
||||
// Job termination
|
||||
// Free the store: user actions, physics_list and detector_description are
|
||||
// owned and deleted by the run manager, so they should not be deleted
|
||||
// in the main() program !
|
||||
|
||||
delete visManager;
|
||||
delete runManager;
|
||||
|
||||
theTimer->Stop();
|
||||
G4cout << "Execution terminated" << G4endl;
|
||||
G4cout << (*theTimer) << G4endl;
|
||||
delete theTimer;
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
@@ -0,0 +1,932 @@
|
||||
Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type...
|
||||
|
||||
############################################
|
||||
!!! WARNING - FPE detection is activated !!!
|
||||
############################################
|
||||
|
||||
|
||||
################################
|
||||
!!! G4Backtrace is activated !!!
|
||||
################################
|
||||
|
||||
|
||||
**************************************************************
|
||||
Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
|
||||
Copyright : Geant4 Collaboration
|
||||
References : NIM A 506 (2003), 250-303
|
||||
: IEEE-TNS 53 (2006), 270-278
|
||||
: NIM A 835 (2016), 186-225
|
||||
WWW : http://geant4.org/
|
||||
**************************************************************
|
||||
|
||||
<<< Geant4 Physics List simulation engine: FTFP_BERT
|
||||
|
||||
Visualization Manager instantiating with verbosity "warnings (3)"...
|
||||
Visualization Manager initialising...
|
||||
Registering graphics systems...
|
||||
|
||||
You have successfully registered the following graphics systems.
|
||||
Registered graphics systems are:
|
||||
ASCIITree (ATree)
|
||||
DAWNFILE (DAWNFILE)
|
||||
G4HepRepFile (HepRepFile)
|
||||
RayTracer (RayTracer)
|
||||
VRML2FILE (VRML2FILE)
|
||||
gMocrenFile (gMocrenFile)
|
||||
TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE)
|
||||
OpenGLImmediateQt (OGLIQt, OGLI)
|
||||
OpenGLStoredQt (OGLSQt, OGL, OGLS)
|
||||
OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK)
|
||||
OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK)
|
||||
OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK)
|
||||
OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK)
|
||||
RayTracerX (RayTracerX)
|
||||
Qt3D (Qt3D)
|
||||
TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK)
|
||||
TOOLSSG_X11_ZB (TSG_X11_ZB, TSGX11ZB)
|
||||
TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK)
|
||||
TOOLSSG_XT_ZB (TSG_XT_ZB, TSGXtZB)
|
||||
TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG)
|
||||
TOOLSSG_QT_ZB (TSG_QT_ZB, TSGQtZB)
|
||||
You may choose a graphics system (driver) with a parameter of
|
||||
the command "/vis/open" or "/vis/sceneHandler/create",
|
||||
or you may omit the driver parameter and choose at run time:
|
||||
- by argument in the construction of G4VisExecutive
|
||||
- by environment variable "G4VIS_DEFAULT_DRIVER"
|
||||
- by entry in "~/.g4session"
|
||||
- by build flags.
|
||||
- Note: This feature is not allowed in batch mode.
|
||||
For further information see "examples/basic/B1/exampleB1.cc"
|
||||
and "vis.mac".
|
||||
|
||||
Registering model factories...
|
||||
|
||||
You have successfully registered the following model factories.
|
||||
Registered model factories:
|
||||
generic
|
||||
drawByAttribute
|
||||
drawByCharge
|
||||
drawByOriginVolume
|
||||
drawByParticleID
|
||||
drawByEncounteredVolume
|
||||
|
||||
Registered models:
|
||||
None
|
||||
|
||||
Registered filter factories:
|
||||
attributeFilter
|
||||
chargeFilter
|
||||
originVolumeFilter
|
||||
particleFilter
|
||||
encounteredVolumeFilter
|
||||
|
||||
Registered filters:
|
||||
None
|
||||
|
||||
You have successfully registered the following user vis actions.
|
||||
Run Duration User Vis Actions: none
|
||||
End of Event User Vis Actions: none
|
||||
End of Run User Vis Actions: none
|
||||
|
||||
Some /vis commands (optionally) take a string to specify colour.
|
||||
"/vis/list" to see available colours.
|
||||
*** /run/numberOfThreads command is issued in sequential mode.
|
||||
Command is ignored.
|
||||
Checking overlaps for volume Crystal:0 (G4Box) ... OK!
|
||||
Crystal size: 10 10 0.1 mm3
|
||||
Crystal angleX: 0 rad
|
||||
Checking overlaps for volume Detector:0 (G4Box) ... OK!
|
||||
=======================================================================
|
||||
====== Crystal lattice data ========
|
||||
=======================================================================
|
||||
Crystal material: W
|
||||
Crystal axes: <111>
|
||||
|
||||
G4BaierKatkov model is activated.
|
||||
|
||||
Radiation model activated
|
||||
|
||||
hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval
|
||||
for pions : 3 to 6 GeV
|
||||
for kaons : 3 to 6 GeV
|
||||
for proton : 3 to 6 GeV
|
||||
for neutron : 3 to 6 GeV
|
||||
|
||||
### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0
|
||||
e+ : fastSimProcess_massGeom[geom:World]
|
||||
e- : fastSimProcess_massGeom[geom:World]
|
||||
G4CoherentPairProductionPhysics::ConstructProcess
|
||||
=======================================================================
|
||||
====== Electromagnetic Physics Parameters ========
|
||||
=======================================================================
|
||||
LPM effect enabled 1
|
||||
Enable creation and use of sampling tables 0
|
||||
Apply cuts on all EM processes 0
|
||||
Use combined TransportationWithMsc Disabled
|
||||
Use general process 1
|
||||
Enable linear polarisation for gamma 0
|
||||
Enable photoeffect sampling below K-shell 1
|
||||
Enable sampling of quantum entanglement 0
|
||||
X-section factor for integral approach 0.8
|
||||
Min kinetic energy for tables 100 eV
|
||||
Max kinetic energy for tables 100 TeV
|
||||
Number of bins per decade of a table 7
|
||||
Verbose level 1
|
||||
Verbose level for worker thread 0
|
||||
Bremsstrahlung energy threshold above which
|
||||
primary e+- is added to the list of secondary 100 TeV
|
||||
Bremsstrahlung energy threshold above which primary
|
||||
muon/hadron is added to the list of secondary 100 TeV
|
||||
Positron annihilation at rest model SimplePositronium
|
||||
Enable 3 gamma annihilation on fly 0
|
||||
Lowest triplet kinetic energy 1 MeV
|
||||
Enable sampling of gamma linear polarisation 0
|
||||
5D gamma conversion model type 0
|
||||
5D gamma conversion model on isolated ion 0
|
||||
Use Ricardo-Gerardo pair production model 0
|
||||
Livermore data directory epics_2017
|
||||
=======================================================================
|
||||
====== Ionisation Parameters ========
|
||||
=======================================================================
|
||||
Step function for e+- (0.2, 1 mm)
|
||||
Step function for muons/hadrons (0.2, 0.1 mm)
|
||||
Step function for light ions (0.2, 0.1 mm)
|
||||
Step function for general ions (0.2, 0.1 mm)
|
||||
Lowest e+e- kinetic energy 1 keV
|
||||
Lowest muon/hadron kinetic energy 1 keV
|
||||
Use ICRU90 data 0
|
||||
Fluctuations of dE/dx are enabled 1
|
||||
Type of fluctuation model for leptons and hadrons Urban
|
||||
Use built-in Birks satuaration 0
|
||||
Build CSDA range enabled 0
|
||||
Use cut as a final range enabled 0
|
||||
Enable angular generator interface 0
|
||||
Max kinetic energy for CSDA tables 1 GeV
|
||||
Max kinetic energy for NIEL computation 0 eV
|
||||
Linear loss limit 0.01
|
||||
Read data from file for e+e- pair production by mu 0
|
||||
=======================================================================
|
||||
====== Multiple Scattering Parameters ========
|
||||
=======================================================================
|
||||
Type of msc step limit algorithm for e+- 1
|
||||
Type of msc step limit algorithm for muons/hadrons 0
|
||||
Msc lateral displacement for e+- enabled 1
|
||||
Msc lateral displacement for muons and hadrons 0
|
||||
Urban msc model lateral displacement alg96 1
|
||||
Range factor for msc step limit for e+- 0.04
|
||||
Range factor for msc step limit for muons/hadrons 0.2
|
||||
Geometry factor for msc step limitation of e+- 2.5
|
||||
Safety factor for msc step limit for e+- 0.6
|
||||
Skin parameter for msc step limitation of e+- 1
|
||||
Lambda limit for msc step limit for e+- 1 mm
|
||||
Use Mott correction for e- scattering 0
|
||||
Factor used for dynamic computation of angular
|
||||
limit between single and multiple scattering 1
|
||||
Fixed angular limit between single
|
||||
and multiple scattering 3.1416 rad
|
||||
Upper energy limit for e+- multiple scattering 100 MeV
|
||||
Type of electron single scattering model 0
|
||||
Type of nuclear form-factor 1
|
||||
Screening factor 1
|
||||
=======================================================================
|
||||
|
||||
phot: for gamma SubType=12 BuildTable=0
|
||||
LambdaPrime table from 200 keV to 100 TeV in 61 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo
|
||||
|
||||
compt: for gamma SubType=13 BuildTable=1
|
||||
Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1
|
||||
LambdaPrime table from 1 MeV to 100 TeV in 56 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Klein-Nishina : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
conv: for gamma SubType=14 BuildTable=1
|
||||
Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai
|
||||
|
||||
Rayl: for gamma SubType=11 BuildTable=1
|
||||
Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0
|
||||
LambdaPrime table from 150 keV to 100 TeV in 62 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator
|
||||
|
||||
msc: for e- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV
|
||||
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
|
||||
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
|
||||
|
||||
eIoni: for e- XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MollerBhabha : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
eBrem: for e- XStype:4 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai
|
||||
|
||||
CoulombScat: for e- XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
|
||||
|
||||
msc: for e+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV
|
||||
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV
|
||||
StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm
|
||||
|
||||
eIoni: for e+ XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MollerBhabha : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
eBrem: for e+ XStype:4 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai
|
||||
|
||||
annihil: for e+ XStype:2 SubType=5 AtRestModel:Simple BuildTable=0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eplus2gg : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
|
||||
|
||||
msc: for proton SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for proton XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV
|
||||
|
||||
hBrems: for proton XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for proton XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for proton XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
ionIoni: for GenericIon XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV
|
||||
|
||||
msc: for alpha SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
ionIoni: for alpha XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BraggIon : Emin= 0 eV Emax=7.9452 MeV
|
||||
BetheBloch : Emin=7.9452 MeV Emax= 100 TeV
|
||||
|
||||
msc: for anti_proton SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for anti_proton XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 2 MeV
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV
|
||||
|
||||
hBrems: for anti_proton XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for anti_proton XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for kaon+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for kaon+ XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax=1.05231 MeV
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
|
||||
|
||||
hBrems: for kaon+ XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for kaon+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for kaon- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for kaon- XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax=1.05231 MeV
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV
|
||||
|
||||
hBrems: for kaon- XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for kaon- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1
|
||||
Used Lambda table of kaon+
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for mu+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
muIoni: for mu+ XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax= 200 keV
|
||||
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
|
||||
|
||||
muBrems: for mu+ XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
muPairProd: for mu+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 0.85 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for mu- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
muIoni: for mu- XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax= 200 keV
|
||||
MuBetheBloch : Emin= 200 keV Emax= 100 TeV
|
||||
|
||||
muBrems: for mu- XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
muPairProd: for mu- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 0.85 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1
|
||||
Used Lambda table of mu+
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for pi+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for pi+ XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 eV Emax=297.505 keV
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV
|
||||
|
||||
hBrems: for pi+ XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for pi+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
msc: for pi- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm
|
||||
|
||||
hIoni: for pi- XStype:3 SubType=2
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 eV Emax=297.505 keV
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV
|
||||
|
||||
hBrems: for pi- XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for pi- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
|
||||
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
|
||||
Used Lambda table of pi+
|
||||
ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
|
||||
|
||||
====================================================================
|
||||
HADRONIC PROCESSES SUMMARY (verbose level 1)
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for neutron
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV
|
||||
Process: neutronInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
|
||||
Process: nCapture
|
||||
Model: nRadCapture: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV
|
||||
Process: nKiller
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for B-
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: B-Inelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for D-
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: D-Inelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for GenericIon
|
||||
Process: ionInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for He3
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
Process: He3Inelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for alpha
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
Process: alphaInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_He3
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_He3Inelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_alpha
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_alphaInelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_deuteron
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_deuteronInelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-------------------------------------------------------------------------
|
||||
Hadronic Processes for anti_hypertriton
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_lambda
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: anti_lambdaInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_neutron
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_neutronInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_proton
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_protonInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for anti_triton
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: anti_tritonInelastic
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV
|
||||
Process: hFritiofCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for deuteron
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
Process: dInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for e+
|
||||
Process: positronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for e-
|
||||
Process: electronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for gamma
|
||||
Process: photonNuclear
|
||||
Model: GammaNPreco: 0 eV ---> 200 MeV
|
||||
Model: BertiniCascade: 199 MeV ---> 6 GeV
|
||||
Model: TheoFSGenerator: 3 GeV ---> 100 TeV
|
||||
Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for kaon+
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: kaon+Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for kaon-
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: kaon-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: hBertiniCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for lambda
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: lambdaInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for mu+
|
||||
Process: muonNuclear
|
||||
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for mu-
|
||||
Process: muonNuclear
|
||||
Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV
|
||||
Process: muMinusCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for pi+
|
||||
Process: hadElastic
|
||||
Model: hElasticGlauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
Process: pi+Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for pi-
|
||||
Process: hadElastic
|
||||
Model: hElasticGlauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
Process: pi-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
Process: hBertiniCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for proton
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
Process: protonInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for sigma-
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: sigma-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV
|
||||
Process: hBertiniCaptureAtRest
|
||||
-----------------------------------------------------------------------
|
||||
Hadronic Processes for triton
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
Process: tInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
|
||||
=======================================================================
|
||||
====== Geant4 Native Pre-compound Model Parameters ========
|
||||
=======================================================================
|
||||
Type of pre-compound inverse x-section 1
|
||||
Pre-compound model active 1
|
||||
Pre-compound excitation low energy 100 keV
|
||||
Pre-compound excitation high energy 30 MeV
|
||||
Angular generator for pre-compound model 1
|
||||
Use NeverGoBack option for pre-compound model 0
|
||||
Use SoftCutOff option for pre-compound model 0
|
||||
Use CEM transitions for pre-compound model 1
|
||||
Use GNASH transitions for pre-compound model 0
|
||||
Use HETC submodel for pre-compound model 0
|
||||
=======================================================================
|
||||
====== Nuclear De-excitation Module Parameters ========
|
||||
=======================================================================
|
||||
Type of de-excitation inverse x-section 3
|
||||
Type of de-excitation factory Evaporation+GEM
|
||||
Number of de-excitation channels 68
|
||||
Min excitation energy 10 eV
|
||||
Min energy per nucleon for multifragmentation 200 GeV
|
||||
Limit excitation energy for Fermi BreakUp 20 MeV
|
||||
Level density (1/MeV) 0.075
|
||||
Use simple level density model 1
|
||||
Use discrete excitation energy of the residual 0
|
||||
Time limit for long lived isomeres 1 ns
|
||||
Isomer production flag 1
|
||||
Internal e- conversion flag 1
|
||||
Store e- internal conversion data 1
|
||||
Correlated gamma emission flag 0
|
||||
Max 2J for sampling of angular correlations 10
|
||||
=======================================================================
|
||||
### Run 0 starts.
|
||||
--> Event 0 starts.
|
||||
--> Event 10 starts.
|
||||
--> Event 20 starts.
|
||||
--> Event 30 starts.
|
||||
--> Event 40 starts.
|
||||
--> Event 50 starts.
|
||||
--> Event 60 starts.
|
||||
--> Event 70 starts.
|
||||
--> Event 80 starts.
|
||||
--> Event 90 starts.
|
||||
--> Event 100 starts.
|
||||
--> Event 110 starts.
|
||||
--> Event 120 starts.
|
||||
--> Event 130 starts.
|
||||
--> Event 140 starts.
|
||||
--> Event 150 starts.
|
||||
--> Event 160 starts.
|
||||
--> Event 170 starts.
|
||||
--> Event 180 starts.
|
||||
--> Event 190 starts.
|
||||
--> Event 200 starts.
|
||||
--> Event 210 starts.
|
||||
--> Event 220 starts.
|
||||
--> Event 230 starts.
|
||||
--> Event 240 starts.
|
||||
--> Event 250 starts.
|
||||
--> Event 260 starts.
|
||||
--> Event 270 starts.
|
||||
--> Event 280 starts.
|
||||
--> Event 290 starts.
|
||||
--> Event 300 starts.
|
||||
--> Event 310 starts.
|
||||
--> Event 320 starts.
|
||||
--> Event 330 starts.
|
||||
--> Event 340 starts.
|
||||
--> Event 350 starts.
|
||||
--> Event 360 starts.
|
||||
--> Event 370 starts.
|
||||
--> Event 380 starts.
|
||||
--> Event 390 starts.
|
||||
--> Event 400 starts.
|
||||
--> Event 410 starts.
|
||||
--> Event 420 starts.
|
||||
--> Event 430 starts.
|
||||
--> Event 440 starts.
|
||||
--> Event 450 starts.
|
||||
--> Event 460 starts.
|
||||
--> Event 470 starts.
|
||||
--> Event 480 starts.
|
||||
--> Event 490 starts.
|
||||
--> Event 500 starts.
|
||||
--> Event 510 starts.
|
||||
--> Event 520 starts.
|
||||
--> Event 530 starts.
|
||||
--> Event 540 starts.
|
||||
--> Event 550 starts.
|
||||
--> Event 560 starts.
|
||||
--> Event 570 starts.
|
||||
--> Event 580 starts.
|
||||
--> Event 590 starts.
|
||||
--> Event 600 starts.
|
||||
--> Event 610 starts.
|
||||
--> Event 620 starts.
|
||||
--> Event 630 starts.
|
||||
--> Event 640 starts.
|
||||
--> Event 650 starts.
|
||||
--> Event 660 starts.
|
||||
--> Event 670 starts.
|
||||
--> Event 680 starts.
|
||||
--> Event 690 starts.
|
||||
--> Event 700 starts.
|
||||
--> Event 710 starts.
|
||||
--> Event 720 starts.
|
||||
--> Event 730 starts.
|
||||
--> Event 740 starts.
|
||||
--> Event 750 starts.
|
||||
--> Event 760 starts.
|
||||
--> Event 770 starts.
|
||||
--> Event 780 starts.
|
||||
--> Event 790 starts.
|
||||
--> Event 800 starts.
|
||||
--> Event 810 starts.
|
||||
--> Event 820 starts.
|
||||
--> Event 830 starts.
|
||||
--> Event 840 starts.
|
||||
--> Event 850 starts.
|
||||
--> Event 860 starts.
|
||||
--> Event 870 starts.
|
||||
--> Event 880 starts.
|
||||
--> Event 890 starts.
|
||||
--> Event 900 starts.
|
||||
--> Event 910 starts.
|
||||
--> Event 920 starts.
|
||||
--> Event 930 starts.
|
||||
--> Event 940 starts.
|
||||
--> Event 950 starts.
|
||||
--> Event 960 starts.
|
||||
--> Event 970 starts.
|
||||
--> Event 980 starts.
|
||||
--> Event 990 starts.
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
Execution terminated
|
||||
User=122.950000s Real=140.672899s Sys=0.590000s
|
||||
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file ActionInitialization.cc
|
||||
/// \brief Implementation of the ActionInitialization class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef B1ActionInitialization_h
|
||||
#define B1ActionInitialization_h 1
|
||||
|
||||
#include "G4VUserActionInitialization.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// Action initialization class.
|
||||
|
||||
class ActionInitialization : public G4VUserActionInitialization
|
||||
{
|
||||
public:
|
||||
ActionInitialization() = default;
|
||||
~ActionInitialization() override = default;
|
||||
|
||||
void BuildForMaster() const override;
|
||||
void Build() const override;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,69 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file DetectorConstruction.cc
|
||||
/// \brief Implementation of the DetectorConstruction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef B1DetectorConstruction_h
|
||||
#define B1DetectorConstruction_h 1
|
||||
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include <vector>
|
||||
|
||||
#include "G4Region.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
|
||||
#include "G4ChannelingFastSimModel.hh"
|
||||
|
||||
class G4VPhysicalVolume;
|
||||
class G4LogicalVolume;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// Detector construction class to define materials and geometry.
|
||||
|
||||
class DetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
public:
|
||||
DetectorConstruction() = default;
|
||||
~DetectorConstruction() override = default;
|
||||
|
||||
G4VPhysicalVolume* Construct() override;
|
||||
void ConstructSDandField() override;
|
||||
|
||||
private:
|
||||
|
||||
//variables to remember
|
||||
G4Material* fCrystalMaterial{nullptr};
|
||||
G4LogicalVolume* fLogicCrystal{nullptr};
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,60 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file PrimaryGeneratorAction.hh
|
||||
/// \brief Definition of the B1::PrimaryGeneratorAction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef B1PrimaryGeneratorAction_h
|
||||
#define B1PrimaryGeneratorAction_h 1
|
||||
|
||||
#include "G4VUserPrimaryGeneratorAction.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4GeneralParticleSource.hh"
|
||||
|
||||
class G4ParticleGun;
|
||||
class G4Event;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// The primary generator action class with GeneralParticleSource.
|
||||
|
||||
class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
|
||||
{
|
||||
public:
|
||||
PrimaryGeneratorAction();
|
||||
~PrimaryGeneratorAction() override;
|
||||
|
||||
// method from the base class
|
||||
void GeneratePrimaries(G4Event*) override;
|
||||
|
||||
private:
|
||||
G4GeneralParticleSource* fGPS{nullptr};
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file RunAction.hh
|
||||
/// \brief Definition of the RunAction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef RunAction_h
|
||||
#define RunAction_h 1
|
||||
|
||||
#include "G4UserRunAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4Run;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// Run action class.
|
||||
|
||||
class RunAction : public G4UserRunAction
|
||||
{
|
||||
public:
|
||||
RunAction();
|
||||
~RunAction() override;
|
||||
|
||||
void BeginOfRunAction(const G4Run*) override;
|
||||
void EndOfRunAction(const G4Run*) override;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file SteppingAction.hh
|
||||
/// \brief Definition of the SteppingAction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef B1SteppingAction_h
|
||||
#define B1SteppingAction_h 1
|
||||
|
||||
#include "G4UserSteppingAction.hh"
|
||||
#include "globals.hh"
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
class G4LogicalVolume;
|
||||
|
||||
class EventAction;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
/// Stepping action class.
|
||||
|
||||
class SteppingAction : public G4UserSteppingAction
|
||||
{
|
||||
public:
|
||||
SteppingAction() = default;
|
||||
~SteppingAction() override = default;
|
||||
|
||||
// method from the base class
|
||||
void UserSteppingAction(const G4Step*) override;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,38 @@
|
||||
# Macro file for the initialization of example ch3
|
||||
# in interactive session
|
||||
#
|
||||
# Set some default verbose
|
||||
/control/verbose 2
|
||||
/control/saveHistory
|
||||
/run/verbose 2
|
||||
#
|
||||
# Change the default number of threads (in multi-threaded mode)
|
||||
#/run/numberOfThreads 4
|
||||
#
|
||||
#Initialize kernel
|
||||
/run/initialize
|
||||
#
|
||||
# Initialize kernel
|
||||
/run/initialize
|
||||
#
|
||||
#beam
|
||||
/gps/particle gamma
|
||||
#
|
||||
#coordinate distribution (radial Gauss)
|
||||
/gps/pos/centre 0. 0. -1. cm
|
||||
/gps/pos/type Beam
|
||||
/gps/pos/sigma_x 1 mm
|
||||
/gps/pos/sigma_y 1 mm
|
||||
#
|
||||
#angular distribution (radial Gauss)
|
||||
/gps/ang/type beam2d
|
||||
/gps/ang/rot1 1 0 0
|
||||
/gps/ang/rot2 0 -1 0
|
||||
/gps/ang/sigma_x 1.E-3 rad
|
||||
/gps/ang/sigma_y 1.E-3 rad
|
||||
#
|
||||
#energy distribution (constant)
|
||||
/gps/ene/mono 100 GeV
|
||||
#
|
||||
# Visualization setting
|
||||
/control/execute vis.mac
|
||||
@@ -0,0 +1,33 @@
|
||||
/random/setSeeds 19577794 424238336
|
||||
#setting number of cores
|
||||
/run/numberOfThreads 2
|
||||
|
||||
/run/initialize
|
||||
|
||||
#settings
|
||||
/control/verbose 0
|
||||
/run/verbose 0
|
||||
/tracking/verbose 0
|
||||
|
||||
#beam
|
||||
/gps/particle gamma
|
||||
|
||||
#coordinate distribution (radial Gauss)
|
||||
/gps/pos/centre 0. 0. -1. cm
|
||||
/gps/pos/type Beam
|
||||
/gps/pos/sigma_x 1 mm
|
||||
/gps/pos/sigma_y 1 mm
|
||||
|
||||
#angular distribution (radial Gauss)
|
||||
/gps/ang/type beam2d
|
||||
/gps/ang/rot1 1 0 0
|
||||
/gps/ang/rot2 0 -1 0
|
||||
/gps/ang/sigma_x 1.E-3 rad
|
||||
/gps/ang/sigma_y 1.E-3 rad
|
||||
|
||||
#energy distribution (constant)
|
||||
/gps/ene/mono 100 GeV
|
||||
|
||||
#statistics
|
||||
/run/printProgress 10
|
||||
/run/beamOn 1000
|
||||
@@ -0,0 +1,55 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file ActionInitialization.cc
|
||||
/// \brief Implementation of the ActionInitialization class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "ActionInitialization.hh"
|
||||
#include "PrimaryGeneratorAction.hh"
|
||||
#include "RunAction.hh"
|
||||
#include "SteppingAction.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void ActionInitialization::BuildForMaster() const
|
||||
{
|
||||
SetUserAction(new RunAction);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void ActionInitialization::Build() const
|
||||
{
|
||||
SetUserAction(new PrimaryGeneratorAction);
|
||||
|
||||
SetUserAction(new RunAction);
|
||||
|
||||
SetUserAction(new SteppingAction);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,191 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file DetectorConstruction.cc
|
||||
/// \brief Implementation of the DetectorConstruction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "DetectorConstruction.hh"
|
||||
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4NistManager.hh"
|
||||
#include "G4Box.hh"
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4RegionStore.hh"
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "PrimaryGeneratorAction.hh"
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4VPhysicalVolume* DetectorConstruction::Construct()
|
||||
{
|
||||
//Check overlap option
|
||||
G4bool checkOverlaps = true;
|
||||
|
||||
//Materials
|
||||
G4NistManager* nist = G4NistManager::Instance();
|
||||
G4Material* world_mat = nist->FindOrBuildMaterial("G4_Galactic");
|
||||
G4Material* silicon = nist->FindOrBuildMaterial("G4_Si");
|
||||
|
||||
//World
|
||||
G4Box* solidWorld = new G4Box("World", 0.2*CLHEP::m, 0.2*CLHEP::m, 0.3*CLHEP::m);
|
||||
G4LogicalVolume* logicWorld = new G4LogicalVolume(solidWorld, world_mat, "World");
|
||||
G4VPhysicalVolume* physWorld = new G4PVPlacement
|
||||
(0, // no rotation
|
||||
G4ThreeVector(), // centre position
|
||||
logicWorld, // its logical volume
|
||||
"World", // its name
|
||||
0, // its mother volume
|
||||
false, // no boolean operation
|
||||
0, // copy number
|
||||
checkOverlaps); // overlaps checking
|
||||
logicWorld->SetVisAttributes(G4VisAttributes::GetInvisible());
|
||||
|
||||
|
||||
// --------------- Crystal ------------------------------------
|
||||
|
||||
//Select crystal material
|
||||
fCrystalMaterial = nist->FindOrBuildMaterial("G4_W");
|
||||
|
||||
//Setting crystal rotation angle (also the angle of crystal planes vs the beam)
|
||||
//Crystal rotation angle (also the angle of crystal planes vs the beam)
|
||||
G4double angleX = 0.*1e-6; //rad
|
||||
G4RotationMatrix* crystalRotationMatrix = new G4RotationMatrix;
|
||||
crystalRotationMatrix->rotateY(-angleX);
|
||||
|
||||
//setting crystal dimensions
|
||||
/*at high energies the electromagnetic shower in
|
||||
oriented tungsten should behave similarly to the
|
||||
e.m. shower in several times thicker amorphous tungsten
|
||||
(several times reduction of the effective radiation length)*/
|
||||
G4ThreeVector crystalSize = G4ThreeVector(10.*CLHEP::mm,
|
||||
10.*CLHEP::mm,
|
||||
0.1*CLHEP::mm);
|
||||
|
||||
//Setting crystal position
|
||||
G4ThreeVector posCrystal = G4ThreeVector(0., 0., crystalSize.z()/2.);
|
||||
|
||||
//crystal volume
|
||||
G4Box* solidCrystal = new G4Box("Crystal",
|
||||
crystalSize.x()/2,
|
||||
crystalSize.y()/2,
|
||||
crystalSize.z()/2.);
|
||||
|
||||
fLogicCrystal = new G4LogicalVolume(solidCrystal,
|
||||
fCrystalMaterial,
|
||||
"Crystal");
|
||||
new G4PVPlacement(crystalRotationMatrix,
|
||||
posCrystal,
|
||||
fLogicCrystal,
|
||||
"Crystal",
|
||||
logicWorld,
|
||||
false,
|
||||
0,
|
||||
checkOverlaps);
|
||||
|
||||
//crystal region (necessary for the FastSim model)
|
||||
G4Region* regionCh = new G4Region("Crystal");
|
||||
regionCh->AddRootLogicalVolume(fLogicCrystal);
|
||||
|
||||
//visualization attributes
|
||||
G4VisAttributes* crystalVisAttribute =
|
||||
new G4VisAttributes(G4Colour(1., 0., 0.));
|
||||
crystalVisAttribute->SetForceSolid(true);
|
||||
fLogicCrystal->SetVisAttributes(crystalVisAttribute);
|
||||
|
||||
//print crystal info
|
||||
G4cout << "Crystal size: " << crystalSize.x()/CLHEP::mm
|
||||
<< " " << crystalSize.y()/CLHEP::mm
|
||||
<< " " << crystalSize.z()/CLHEP::mm << " mm3" << G4endl;
|
||||
G4cout << "Crystal angleX: " << angleX << " rad" << G4endl;
|
||||
|
||||
// --------------- Detector -----------------------------------
|
||||
//Setting detector position
|
||||
G4ThreeVector posDetector = G4ThreeVector(0, 0, 0.1*CLHEP::m);
|
||||
|
||||
//particle detector volume
|
||||
G4Box* detector = new G4Box("Detector",
|
||||
10*CLHEP::cm/2,
|
||||
10*CLHEP::cm/2,
|
||||
0.3*CLHEP::mm/2);
|
||||
|
||||
G4LogicalVolume* logicDetector = new G4LogicalVolume(detector,
|
||||
silicon,
|
||||
"Detector");
|
||||
new G4PVPlacement(0,
|
||||
posDetector,
|
||||
logicDetector,
|
||||
"Detector",
|
||||
logicWorld,
|
||||
false,
|
||||
0,
|
||||
checkOverlaps);
|
||||
|
||||
//visualization attributes
|
||||
G4VisAttributes* detectorVisAttribute =
|
||||
new G4VisAttributes(G4Colour(0., 0., 1));
|
||||
detectorVisAttribute->SetForceSolid(true);
|
||||
logicDetector->SetVisAttributes(detectorVisAttribute);
|
||||
|
||||
//always return the physical World
|
||||
return physWorld;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void DetectorConstruction::ConstructSDandField()
|
||||
{
|
||||
// --------------- fast simulation ----------------------------
|
||||
//extract the region of the crystal from the store
|
||||
G4RegionStore* regionStore = G4RegionStore::GetInstance();
|
||||
G4Region* regionCh = regionStore->GetRegion("Crystal");
|
||||
|
||||
//create the channeling model for this region
|
||||
G4ChannelingFastSimModel* channelingModel =
|
||||
new G4ChannelingFastSimModel("ChannelingModel", regionCh);
|
||||
|
||||
//Crystal planes or axes considered
|
||||
//Use brackets (...) for planes and <...> for axes
|
||||
G4String lattice = "<111>";
|
||||
|
||||
//activate the channeling model
|
||||
channelingModel->Input(fCrystalMaterial, lattice);
|
||||
|
||||
/*
|
||||
activate radiation model (do it only when you want to take into account the
|
||||
radiation production in an oriented crystal; it reduces simulation speed.)
|
||||
*/
|
||||
G4bool activateRadiationModel = true;
|
||||
if (activateRadiationModel)
|
||||
{
|
||||
channelingModel->RadiationModelActivate();
|
||||
G4cout << "Radiation model activated" << G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file PrimaryGeneratorAction.cc
|
||||
/// \brief Implementation of the PrimaryGeneratorAction class
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "PrimaryGeneratorAction.hh"
|
||||
#include "G4Event.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PrimaryGeneratorAction::PrimaryGeneratorAction()
|
||||
{
|
||||
fGPS = new G4GeneralParticleSource();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
PrimaryGeneratorAction::~PrimaryGeneratorAction()
|
||||
{
|
||||
delete fGPS;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
|
||||
{
|
||||
fGPS->GeneratePrimaryVertex(anEvent);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file RunAction.cc
|
||||
/// \brief Implementation of the RunAction class
|
||||
|
||||
#include "RunAction.hh"
|
||||
#include "G4AnalysisManager.hh"
|
||||
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4Run.hh"
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
RunAction::RunAction()
|
||||
: G4UserRunAction()
|
||||
{
|
||||
//using analysis manager for output
|
||||
auto analysisManager = G4AnalysisManager::Instance();
|
||||
|
||||
//setting our histogram
|
||||
//a true range and bin number is set up in BeginOfRunAction
|
||||
analysisManager->CreateH1("Spectrum_electrons","Spectrum_e-",20,0,100);
|
||||
analysisManager->CreateH1("Spectrum_positrons","Spectrum_e+",20,0,100);
|
||||
analysisManager->CreateH1("Spectrum_gamma","Spectrum_gamma",25,0,125);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
RunAction::~RunAction()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void RunAction::BeginOfRunAction(const G4Run*)
|
||||
{
|
||||
//opening output file
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
G4String fileName = "results.root";
|
||||
analysisManager->OpenFile(fileName);
|
||||
|
||||
//setting histograms
|
||||
analysisManager->SetH1(0,20,0,100);
|
||||
analysisManager->SetH1XAxisTitle(0,"E_e- [GeV]");
|
||||
analysisManager->SetH1YAxisTitle(0,"Count");
|
||||
|
||||
analysisManager->SetH1(1,20,0,100);
|
||||
analysisManager->SetH1XAxisTitle(1,"E_e+ [GeV]");
|
||||
analysisManager->SetH1YAxisTitle(1,"Count");
|
||||
|
||||
analysisManager->SetH1(2,25,0,125);
|
||||
analysisManager->SetH1XAxisTitle(2,"E_gamma [GeV]");
|
||||
analysisManager->SetH1YAxisTitle(2,"Count");
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void RunAction::EndOfRunAction(const G4Run*)
|
||||
{
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
analysisManager->Write();
|
||||
analysisManager->CloseFile();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -0,0 +1,89 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
/// \file SteppingAction.cc
|
||||
/// \brief Implementation of the SteppingAction class
|
||||
|
||||
#include "SteppingAction.hh"
|
||||
#include "DetectorConstruction.hh"
|
||||
|
||||
#include "G4Step.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
#include "G4AnalysisManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void SteppingAction::UserSteppingAction(const G4Step* step)
|
||||
{
|
||||
|
||||
G4String volumeName = step->GetPreStepPoint()->GetTouchableHandle()
|
||||
->GetVolume()->GetName();
|
||||
|
||||
//if a particle enters the detector volume
|
||||
if (step->GetPreStepPoint()-> GetStepStatus()==G4StepStatus::fGeomBoundary&&
|
||||
volumeName=="Detector")
|
||||
{
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
|
||||
//e- spectrum
|
||||
if(step->GetTrack()->GetDefinition()->GetParticleName()=="e-")
|
||||
{
|
||||
//coordinate in the horizontal plane
|
||||
G4double eElectron = step->GetPreStepPoint()->GetTotalEnergy()/CLHEP::GeV;
|
||||
|
||||
//filling histogram
|
||||
analysisManager->FillH1(0, eElectron);
|
||||
}
|
||||
|
||||
//e+ spectrum
|
||||
if(step->GetTrack()->GetDefinition()->GetParticleName()=="e+")
|
||||
{
|
||||
//coordinate in the horizontal plane
|
||||
G4double ePositron = step->GetPreStepPoint()->GetTotalEnergy()/CLHEP::GeV;
|
||||
|
||||
//filling histogram
|
||||
analysisManager->FillH1(1, ePositron);
|
||||
}
|
||||
|
||||
//gamma spectrum
|
||||
if(step->GetTrack()->GetDefinition()->GetParticleName()=="gamma")
|
||||
{
|
||||
//coordinate in the horizontal plane
|
||||
G4double eGamma = step->GetPreStepPoint()->GetTotalEnergy()/CLHEP::GeV;
|
||||
|
||||
//filling histogram
|
||||
analysisManager->FillH1(2, eGamma);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
//}
|
||||
@@ -0,0 +1,69 @@
|
||||
#Macro for the visualization
|
||||
|
||||
#Create an empty scene
|
||||
/vis/scene/create
|
||||
|
||||
#Create a scene handler for a specific graphics system
|
||||
/vis/open OGL
|
||||
#/vis/open DAWNFILE
|
||||
#/vis/open VRML2FILE
|
||||
|
||||
#Disable auto refresh and quieten vis messages whilst scene and
|
||||
#trajectories are established:
|
||||
/vis/viewer/set/autoRefresh false
|
||||
/vis/verbose errors
|
||||
|
||||
#Draw the scene
|
||||
/vis/drawVolume
|
||||
/vis/viewer/flush
|
||||
|
||||
#Set the camera
|
||||
/vis/viewer/reset
|
||||
/vis/viewer/set/viewpointThetaPhi 135. 45. deg
|
||||
/vis/viewer/zoom 1
|
||||
|
||||
#Specify style (surface, wireframe, auxiliary edges,...)
|
||||
/vis/viewer/set/style wireframe
|
||||
/vis/viewer/set/lineSegmentsPerCircle 100
|
||||
|
||||
#Geometry
|
||||
#/vis/geometry/set/lineWidth all 1 3
|
||||
|
||||
#Decoration
|
||||
#Axes
|
||||
/vis/set/lineWidth 3
|
||||
#/vis/scene/add/axes 0 0 0 1.0 m #Simple axes: x=red, y=green, z=blue.
|
||||
#Name
|
||||
#/vis/set/textColour red
|
||||
#/vis/set/textLayout right
|
||||
#/vis/scene/add/text2D 0.8 -0.85 24 ! ! FastSimChannelingRad
|
||||
#Frame
|
||||
#/vis/set/colour red
|
||||
#/vis/set/lineWidth 2
|
||||
#/vis/scene/add/frame #Simple frame around the view
|
||||
#/vis/set/colour #Revert to default colour (white)
|
||||
#/vis/set/lineWidth #Revert to default line width (1.)
|
||||
|
||||
#Commands for the drawing the tracks
|
||||
/vis/scene/add/eventID #Drawn at end of event
|
||||
/tracking/storeTrajectory 0 #(if too many tracks cause core dumped => storeTrajectory 0)
|
||||
/vis/scene/endOfEventAction accumulate
|
||||
/vis/scene/add/trajectories smooth rich
|
||||
#/vis/modeling/trajectories/create/drawByParticleID
|
||||
/vis/modeling/trajectories/create/drawByCharge
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2
|
||||
|
||||
#Draw hits at end of event:
|
||||
/vis/scene/add/hits
|
||||
|
||||
#Geometry test (it can cause a "core dumped")
|
||||
/geometry/navigator/reset
|
||||
/geometry/test/run
|
||||
|
||||
#Re-establish auto refreshing and verbosity:
|
||||
/vis/viewer/set/autoRefresh true
|
||||
/vis/verbose warnings
|
||||
|
||||
#For file-based drivers, use this to create an empty detector view:
|
||||
#/vis/viewer/flush
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user