Import Geant4 10.2.0 source tree
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
//$Id$
|
||||
|
||||
///\file "persistency/.README"
|
||||
///\file "persistency/.README.txt"
|
||||
///\brief Examples persistency README page
|
||||
|
||||
/*! \page Examples_persistency Category "persistency"
|
||||
@@ -9,17 +9,20 @@ include(${Geant4_USE_FILE})
|
||||
# P01, P02 examples require ROOT, GCCXML, BUILD_SHARED_LIBS
|
||||
#
|
||||
find_package(ROOT QUIET)
|
||||
if(ROOT_FOUND AND GCCXML AND Geant4_shared_FOUND)
|
||||
#if(ROOT_FOUND AND GCCXML)
|
||||
add_subdirectory(P01)
|
||||
add_subdirectory(P02)
|
||||
if(ROOT_FOUND AND Geant4_shared_FOUND)
|
||||
#if(ROOT_FOUND AND GCCXML)
|
||||
STRING(REGEX MATCH "6.*" VERSION6MATCH ${ROOT_VERSION})
|
||||
if(NOT VERSION6MATCH)
|
||||
message("-- G4 Examples : This example requires root6, disabled")
|
||||
return()
|
||||
else()
|
||||
add_subdirectory(P01)
|
||||
add_subdirectory(P02)
|
||||
endif()
|
||||
else()
|
||||
if(NOT ROOT_FOUND)
|
||||
message(STATUS "G4 Examples: ROOT package not found. ")
|
||||
endif()
|
||||
if(NOT GCCXML)
|
||||
message(STATUS "G4 Examples: GCCXML not found.")
|
||||
endif()
|
||||
if(NOT Geant4_shared_FOUND)
|
||||
message(STATUS "G4 Examples: Shared Libraires not available.")
|
||||
endif()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 70248 2013-05-27 15:43:20Z gcosmo $
|
||||
$Id: History 94340 2015-11-12 10:07:47Z gcosmo $
|
||||
--------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -16,6 +16,12 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
November 11, 2015 W. Pokorski (exPersistency-V10-01-01)
|
||||
- Adding ROOT6 as minimal version
|
||||
|
||||
November 02, 2015 W. Pokorski (exPersistency-V10-01-00)
|
||||
- Removing obsolete check for GCCXML
|
||||
|
||||
May 27th, 2013 I. Hrivnacova (exPersistency-V09-06-01)
|
||||
- Fixed handling required packages/options in CMake files
|
||||
|
||||
|
||||
+12
-14
@@ -1,6 +1,6 @@
|
||||
//$Id$
|
||||
|
||||
///\file "persistency/P01/.README"
|
||||
///\file "persistency/P01/.README.txt"
|
||||
///\brief Example P01 README page
|
||||
|
||||
/*! \page ExampleP01 Example P01
|
||||
@@ -10,9 +10,9 @@
|
||||
|
||||
This example shows how to store produced hits in a file using
|
||||
the 'reflection' technique for persistency provided by the Reflex tool
|
||||
included in ROOT. The Reflex tool allows to create a dictionary for
|
||||
the hit class, making then possible to save hit objects in a .root
|
||||
file. The general simulation setup (geometry, physics list, user
|
||||
included in ROOT. The Reflex tool allows to create a dictionary
|
||||
for the hit class, making then possible to save hit objects in a .root
|
||||
file. The general simulation setup (geometry, physics list, user
|
||||
actions, etc...) is taken from ExampleN02.
|
||||
|
||||
The provided makefile produces two executables: 'exampleP01' and
|
||||
@@ -24,11 +24,10 @@ file as argument).
|
||||
|
||||
\section P01_s2 Building and running the example
|
||||
|
||||
This examples requires the ROOT toolkit to be installed in the
|
||||
system as well as GCCXML package which is used by the Reflex tool. The
|
||||
provided CMake file checks for the existance of those packages.
|
||||
This examples requires the ROOT toolkit of version 6 to be installed. The
|
||||
provided CMake file checks for the existence of the package and its version.
|
||||
Once the CMake configuration has been succesfully done, the two executables
|
||||
for this example (exampleP01, readHits) should be build using make
|
||||
for this example (exampleP01, readHits) should be built using make
|
||||
(in your CMake build directory):
|
||||
\verbatim
|
||||
make
|
||||
@@ -40,8 +39,7 @@ the hits.root file. In addition, the hits will be printed out on the
|
||||
screen so one can then compare them with the 'reader' output.
|
||||
|
||||
In order to read the persistified hits, a small 'reader' application
|
||||
has been implemented. It is build by the same makefile as the example
|
||||
executable. It can be run in the following way:
|
||||
has been implemented. It can be run in the following way:
|
||||
|
||||
\verbatim
|
||||
<my_binary_directory>/readHits hits.root
|
||||
@@ -67,17 +65,17 @@ to genreflex manual for more details concerning the usage of that
|
||||
tool.
|
||||
|
||||
Concerning generating dictionary for the Geant4 objects, there are
|
||||
also two technical remarks that need to be made here. The gccxml tool
|
||||
(version 0.6.0_patch1) requires all the templated classes to be
|
||||
also two technical remarks that need to be made here.
|
||||
The Reflex tool requires all the templated classes to be
|
||||
explicitely used somewhere in the included header files in order for
|
||||
the generation of the dictionary to be possible. For those templated
|
||||
classes for which it is not the case, the problem can be very easily
|
||||
solved by instaciating them in the headerfile which is given to
|
||||
genreflex (see includes/Classes.h) as argument.
|
||||
genreflex (see includes/ExP01Classes.hh) as argument.
|
||||
The second remark is that there is an unfortunate clash of names as
|
||||
far as G4String class is concerned. The header of G4String class
|
||||
defines __G4String which happens to be the name of a variable used
|
||||
within the generated dictionary code. The solution for that is to do
|
||||
#undef __G4String in include/Classes.h file.
|
||||
#undef __G4String in include/ExP01Classes.hh file.
|
||||
|
||||
*/
|
||||
@@ -25,12 +25,13 @@ include(${Geant4_USE_FILE})
|
||||
#
|
||||
find_package(ROOT REQUIRED)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# P01 requires GCCXML
|
||||
#
|
||||
if(NOT GCCXML)
|
||||
message(FATAL_ERROR "P01 requires GCCXML")
|
||||
endif()
|
||||
# ROOT version 6 required
|
||||
if(ROOT_FOUND)
|
||||
STRING(REGEX MATCH "6.*" VERSION6MATCH ${ROOT_VERSION})
|
||||
if(NOT VERSION6MATCH)
|
||||
message(FATAL_ERROR "P01 requires ROOT 6")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# P01 requires shared libraries
|
||||
@@ -51,20 +52,20 @@ file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh)
|
||||
#----------------------------------------------------------------------------
|
||||
# Generate dictionaries, add ROOT libraries properties
|
||||
#
|
||||
REFLEX_GENERATE_DICTIONARY(ExP01Classes include/ExP01Classes.hh SELECTION xml/selection.xml) # OPTIONS --gccxmlopt="--gccxml-compiler g++")
|
||||
REFLEX_GENERATE_DICTIONARY(ExP01Classes include/ExP01Classes.hh SELECTION xml/selection.xml)
|
||||
add_library(ExP01ClassesDict SHARED ${sources} ExP01Classes.cpp)
|
||||
set(libsuffix .so)
|
||||
set(ROOT_LIBRARY_PROPERTIES ${ROOT_LIBRARY_PROPERTIES} SUFFIX ${libsuffix})
|
||||
set_target_properties(ExP01ClassesDict PROPERTIES ${ROOT_LIBRARY_PROPERTIES})
|
||||
target_link_libraries(ExP01ClassesDict ${Geant4_LIBRARIES} ${ROOT_LIBRARIES} Cintex Reflex)
|
||||
target_link_libraries(ExP01ClassesDict ${Geant4_LIBRARIES} ${ROOT_LIBRARIES})
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add the executable, and link it to the Geant4 libraries
|
||||
#
|
||||
add_executable(exampleP01 exampleP01.cc ${sources} ${headers})
|
||||
target_link_libraries(exampleP01 ExP01ClassesDict ${Geant4_LIBRARIES} ${ROOT_LIBRARIES} Cintex)
|
||||
target_link_libraries(exampleP01 ExP01ClassesDict ${Geant4_LIBRARIES} ${ROOT_LIBRARIES})
|
||||
add_executable(readHits readHits.cc ${sources} ${headers})
|
||||
target_link_libraries(readHits ExP01ClassesDict ${Geant4_LIBRARIES} ${ROOT_LIBRARIES} Cintex)
|
||||
target_link_libraries(readHits ExP01ClassesDict ${Geant4_LIBRARIES} ${ROOT_LIBRARIES})
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Copy all scripts to the build directory, i.e. the directory in which we
|
||||
@@ -95,4 +96,4 @@ add_custom_target(P01 DEPENDS exampleP01 readHits )
|
||||
install(TARGETS exampleP01 DESTINATION bin)
|
||||
install(TARGETS readHits DESTINATION bin)
|
||||
install(TARGETS ExP01ClassesDict DESTINATION lib)
|
||||
|
||||
install(FILES ${PROJECT_BINARY_DIR}/ExP01Classes_rdict.pcm DESTINATION lib)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 82709 2014-07-07 09:21:04Z gcosmo $
|
||||
$Id: History 94557 2015-11-24 09:15:09Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -15,6 +15,12 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
November 23rd, 2015 I. Hrivnacova (exampleP01-V10-01-02)
|
||||
- Updated documentation and CMakeLists.tx (requiring ROOT 6)
|
||||
|
||||
October 15th, 2015 W. Pokorski (exampleP01-V10-01-00)
|
||||
- changes for ROOT6
|
||||
|
||||
July 4th, 2014 W. Pokorski (exampleP01-V10-00-02,03)
|
||||
- adding ExP01ClassesDict to the install targets so it is copied to the right place
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
ExampleP01
|
||||
----------
|
||||
|
||||
General description
|
||||
-------------------
|
||||
General description
|
||||
-------------------
|
||||
|
||||
This example shows how to store produced hits in a file using
|
||||
This example shows how to store produced hits in a file using
|
||||
the 'reflection' technique for persistency provided by the Reflex tool
|
||||
included in ROOT. The Reflex tool allows to create a dictionary
|
||||
for the hit class, making then possible to save hit objects in a .root
|
||||
@@ -23,15 +23,14 @@ the produced .root file (you need to specify the name of the .root
|
||||
file as argument).
|
||||
|
||||
|
||||
Building and running the example
|
||||
--------------------------------
|
||||
Building and running the example
|
||||
--------------------------------
|
||||
|
||||
This examples requires the ROOT toolkit to be installed in the
|
||||
system as well as GCCXML package which is used by the Reflex tool. The
|
||||
provided CMake file checks for the existance of those packages.
|
||||
This examples requires the ROOT toolkit of version 6 to be installed. The
|
||||
provided CMake file checks for the existence of the package and its version.
|
||||
Once the CMake configuration has been succesfully done, the two executables
|
||||
for this example (exampleP01, readHits) should be build using make (in your
|
||||
CMake build directory):
|
||||
for this example (exampleP01, readHits) should be built using make
|
||||
(in your CMake build directory):
|
||||
|
||||
make
|
||||
|
||||
@@ -53,10 +52,10 @@ illustrates how one can read the hits file directly from the ROOT
|
||||
prompt.
|
||||
|
||||
|
||||
Remark on dictionary generation
|
||||
-------------------------------
|
||||
Remark on dictionary generation
|
||||
-------------------------------
|
||||
|
||||
The dictionary is generated by ${ROOTSYS}/bin/genreflex
|
||||
The dictionary is generated by ${ROOTSYS}/bin/genreflex
|
||||
tool. The header file including headers for all the classes we want to
|
||||
generate the dictionary for should be given as argument. Additionally,
|
||||
a so called selection file (xml) should be provided (with -s flag) to
|
||||
@@ -67,17 +66,17 @@ to genreflex manual for more details concerning the usage of that
|
||||
tool.
|
||||
|
||||
Concerning generating dictionary for the Geant4 objects, there are
|
||||
also two technical remarks that need to be made here. The gccxml tool
|
||||
(version 0.6.0_patch1) requires all the templated classes to be
|
||||
also two technical remarks that need to be made here.
|
||||
The Reflex tool requires all the templated classes to be
|
||||
explicitely used somewhere in the included header files in order for
|
||||
the generation of the dictionary to be possible. For those templated
|
||||
classes for which it is not the case, the problem can be very easily
|
||||
solved by instaciating them in the headerfile which is given to
|
||||
genreflex (see includes/Classes.h) as argument.
|
||||
genreflex (see includes/ExP01Classes.hh) as argument.
|
||||
The second remark is that there is an unfortunate clash of names as
|
||||
far as G4String class is concerned. The header of G4String class
|
||||
defines __G4String which happens to be the name of a variable used
|
||||
within the generated dictionary code. The solution for that is to do
|
||||
#undef __G4String in include/Classes.h file.
|
||||
#undef __G4String in include/ExP01Classes.hh file.
|
||||
|
||||
|
||||
|
||||
@@ -6,9 +6,7 @@
|
||||
//*****************************************************************************
|
||||
// To run this macro in cint do (after replacing the location_of_your_libraries below):
|
||||
// .include $G4INCLUDE
|
||||
// gSystem->Load("libCintex.so");
|
||||
// gSystem->Load("<location_of_your_libraries>/libExP01ClassesDict.so");
|
||||
// ROOT::Cintex::Cintex::Enable();
|
||||
// .L hits.C++
|
||||
// hits();
|
||||
//*****************************************************************************
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: readHits.cc 68025 2013-03-13 13:43:46Z gcosmo $
|
||||
// $Id: readHits.cc 93305 2015-10-16 07:34:53Z gcosmo $
|
||||
//
|
||||
/// \file persistency/P01/readHits.cc
|
||||
/// \brief Main program of the persistency/P01 example
|
||||
@@ -34,8 +34,6 @@
|
||||
#include "TSystem.h"
|
||||
#include "TKey.h"
|
||||
//
|
||||
#include "Cintex/Cintex.h"
|
||||
//
|
||||
#include "include/ExP01TrackerHit.hh"
|
||||
|
||||
|
||||
@@ -43,10 +41,7 @@ int main(int argc,char** argv)
|
||||
{
|
||||
// initialize ROOT
|
||||
TSystem ts;
|
||||
gSystem->Load("libCintex");
|
||||
gSystem->Load("libExP01ClassesDict");
|
||||
// ROOT::Cintex::Cintex::SetDebug(2);
|
||||
ROOT::Cintex::Cintex::Enable();
|
||||
if(argc<2) G4cout << "Missing name of the file to read!" << G4endl;
|
||||
|
||||
TFile fo(argv[1]);
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file persistency/P01/src/RootIO.cc
|
||||
/// \brief Implementation of the RootIO class
|
||||
//
|
||||
// $Id: RootIO.cc 82130 2014-06-11 09:26:44Z gcosmo $
|
||||
// $Id: RootIO.cc 93305 2015-10-16 07:34:53Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -35,7 +35,6 @@
|
||||
|
||||
#include "RootIO.hh"
|
||||
//
|
||||
#include "Cintex/Cintex.h"
|
||||
#include "G4SDManager.hh"
|
||||
#include "G4HCofThisEvent.hh"
|
||||
#include "G4EventManager.hh"
|
||||
@@ -54,8 +53,6 @@ RootIO::RootIO():fNevents(0)
|
||||
TSystem ts;
|
||||
gSystem->Load("libExP01ClassesDict");
|
||||
|
||||
ROOT::Cintex::Cintex::SetDebug(0);
|
||||
ROOT::Cintex::Cintex::Enable();
|
||||
//gDebug = 1;
|
||||
|
||||
fFile = new TFile("hits.root","RECREATE");
|
||||
|
||||
+9
-10
@@ -1,6 +1,6 @@
|
||||
//$Id$
|
||||
|
||||
///\file "persistency/P02/.README"
|
||||
///\file "persistency/P02/.README.txt"
|
||||
///\brief Example P02 README page
|
||||
|
||||
/*! \page ExampleP02 Example P02
|
||||
@@ -23,12 +23,11 @@ the geometry is read from geo.root file.
|
||||
|
||||
\section P02_s2 Building and running the example
|
||||
|
||||
This example requires the ROOT toolkit to be installed in the
|
||||
system as well as GCCXML package which is used by the Reflex tool. The
|
||||
provided CMake file checks for the existance of those packages.
|
||||
This examples requires the ROOT toolkit of version 6 to be installed. The
|
||||
provided CMake file checks for the existence of the package and its version.
|
||||
Once the CMake configuration has been succesfully done, the executable
|
||||
for this example should be build using make (in your CMake build
|
||||
directory):
|
||||
for this example should be built using make
|
||||
(in your CMake build directory):
|
||||
\verbatim
|
||||
make
|
||||
\endverbatim
|
||||
@@ -46,18 +45,18 @@ to genreflex manual for more details concerning the usage of that
|
||||
tool.
|
||||
|
||||
Concerning generating dictionary for the Geant4 objects, there are
|
||||
also two technical remarks that need to be made here. The gccxml tool
|
||||
(version 0.6.0_patch1) requires all the templated classes to be
|
||||
also two technical remarks that need to be made here.
|
||||
The Reflex tool requires all the templated classes to be
|
||||
explicitely used somewhere in the included header files in order for
|
||||
the generation of the dictionary to be possible. For those templated
|
||||
classes for which it is not the case, the problem can be very easily
|
||||
solved by instaciating them in the headerfile which is given to
|
||||
genreflex (see includes/Classes.h) as argument.
|
||||
genreflex (see includes/ExP02Classes.hh) as argument.
|
||||
The second remark is that there is an unfortunate clash of names as
|
||||
far as G4String class is concerned. The header of G4String class
|
||||
defines __G4String which happens to be the name of a variable used
|
||||
within the generated dictionary code. The solution for that is to do
|
||||
#undef __G4String in include/Classes.h file.
|
||||
#undef __G4String in include/ExP02Classes.hh file.
|
||||
|
||||
|
||||
*/
|
||||
@@ -25,12 +25,13 @@ include(${Geant4_USE_FILE})
|
||||
#
|
||||
find_package(ROOT REQUIRED)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# P01 requires GCCXML
|
||||
#
|
||||
if(NOT GCCXML)
|
||||
message(FATAL_ERROR "P02 requires GCCXML")
|
||||
endif()
|
||||
# ROOT version 6 required
|
||||
if(ROOT_FOUND)
|
||||
STRING(REGEX MATCH "6.*" VERSION6MATCH ${ROOT_VERSION})
|
||||
if(NOT VERSION6MATCH)
|
||||
message(FATAL_ERROR "P02 requires ROOT 6")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# P01 requires shared libraries
|
||||
@@ -57,13 +58,13 @@ add_library(ExP02ClassesDict SHARED ${sources} ExP02Classes.cpp)
|
||||
set(libsuffix .so)
|
||||
set(ROOT_LIBRARY_PROPERTIES ${ROOT_LIBRARY_PROPERTIES} SUFFIX ${libsuffix})
|
||||
set_target_properties(ExP02ClassesDict PROPERTIES ${ROOT_LIBRARY_PROPERTIES})
|
||||
target_link_libraries(ExP02ClassesDict ${Geant4_LIBRARIES} ${ROOT_LIBRARIES} Cintex Reflex)
|
||||
target_link_libraries(ExP02ClassesDict ${Geant4_LIBRARIES} ${ROOT_LIBRARIES})
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add the executable, and link it to the Geant4 libraries
|
||||
#
|
||||
add_executable(exampleP02 exampleP02.cc ${sources} ${headers})
|
||||
target_link_libraries(exampleP02 ExP02ClassesDict ${Geant4_LIBRARIES} ${ROOT_LIBRARIES} Cintex )
|
||||
target_link_libraries(exampleP02 ExP02ClassesDict ${Geant4_LIBRARIES} ${ROOT_LIBRARIES})
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Copy all scripts to the build directory, i.e. the directory in which we
|
||||
@@ -92,4 +93,7 @@ add_custom_target(P02 DEPENDS exampleP02)
|
||||
# Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX
|
||||
#
|
||||
install(TARGETS exampleP02 DESTINATION bin)
|
||||
install(TARGETS ExP02ClassesDict DESTINATION lib)
|
||||
install(FILES ${PROJECT_BINARY_DIR}/ExP02Classes_rdict.pcm DESTINATION lib)
|
||||
|
||||
|
||||
|
||||
@@ -14,6 +14,12 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
November 23rd, 2015 I. Hrivnacova (exampleP02-V10-01-02)
|
||||
- Updated documentation and CMakeLists.tx (requiring ROOT 6)
|
||||
|
||||
October 15th, 2015 W. Pokorski (exampleP02-V10-01-00)
|
||||
- changes for ROOT6
|
||||
|
||||
June 13th, 2014 W. Pokorski (exampleP02-V10-00-01)
|
||||
- adding missing line in selection.xml
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
ExampleP02
|
||||
----------
|
||||
|
||||
General description
|
||||
-------------------
|
||||
General description
|
||||
-------------------
|
||||
|
||||
This example shows how to store in a binary file and how to
|
||||
This example shows how to store in a binary file and how to
|
||||
read back the geometry tree using the 'reflection' technique for
|
||||
persistency provided by the Reflex tool also included in ROOT. The
|
||||
Reflex tool allows to create a dictionary for the geometry classes,
|
||||
@@ -22,22 +22,21 @@ way and then saved into the root file (geo.root). In the second case,
|
||||
the geometry is read from geo.root file.
|
||||
|
||||
|
||||
Building and running the example
|
||||
--------------------------------
|
||||
Building and running the example
|
||||
--------------------------------
|
||||
|
||||
This example requires the ROOT toolkit to be installed in the
|
||||
system as well as GCCXML package which is used by the Reflex tool. The
|
||||
provided CMake file checks for the existance of those packages.
|
||||
This examples requires the ROOT toolkit of version 6 to be installed. The
|
||||
provided CMake file checks for the existence of the package and its version.
|
||||
Once the CMake configuration has been succesfully done, the executable
|
||||
for this example should be build using make (in your CMake build
|
||||
directory):
|
||||
for this example should be built using make
|
||||
(in your CMake build directory):
|
||||
|
||||
make
|
||||
|
||||
Remark on dictionary generation
|
||||
-------------------------------
|
||||
Remark on dictionary generation
|
||||
-------------------------------
|
||||
|
||||
The dictionary is generated by ${ROOTSYS}/bin/genreflex
|
||||
The dictionary is generated by ${ROOTSYS}/bin/genreflex
|
||||
tool. The header file including headers for all the classes we want to
|
||||
generate the dictionary for should be given as argument. Additionally,
|
||||
a so called selection file (xml) should be provided (with -s flag) to
|
||||
@@ -48,17 +47,15 @@ to genreflex manual for more details concerning the usage of that
|
||||
tool.
|
||||
|
||||
Concerning generating dictionary for the Geant4 objects, there are
|
||||
also two technical remarks that need to be made here. The gccxml tool
|
||||
(version 0.6.0_patch1) requires all the templated classes to be
|
||||
also two technical remarks that need to be made here.
|
||||
The Reflex tool requires all the templated classes to be
|
||||
explicitely used somewhere in the included header files in order for
|
||||
the generation of the dictionary to be possible. For those templated
|
||||
classes for which it is not the case, the problem can be very easily
|
||||
solved by instaciating them in the headerfile which is given to
|
||||
genreflex (see includes/Classes.h) as argument.
|
||||
genreflex (see includes/ExP02Classes.hh) as argument.
|
||||
The second remark is that there is an unfortunate clash of names as
|
||||
far as G4String class is concerned. The header of G4String class
|
||||
defines __G4String which happens to be the name of a variable used
|
||||
within the generated dictionary code. The solution for that is to do
|
||||
#undef __G4String in include/Classes.h file.
|
||||
|
||||
|
||||
#undef __G4String in include/ExP02Classes.hh file.
|
||||
|
||||
@@ -26,13 +26,12 @@
|
||||
/// \file persistency/P02/src/ExP02DetConstrReader.cc
|
||||
/// \brief Implementation of the ExP02DetConstrReader class
|
||||
//
|
||||
// $Id: ExP02DetConstrReader.cc 71727 2013-06-21 07:55:45Z gcosmo $
|
||||
// $Id: ExP02DetConstrReader.cc 93306 2015-10-16 07:38:07Z gcosmo $
|
||||
//
|
||||
//ROOT
|
||||
#include "TROOT.h"
|
||||
#include "TFile.h"
|
||||
#include "TSystem.h"
|
||||
#include "Cintex/Cintex.h"
|
||||
|
||||
//G4
|
||||
#include "G4Element.hh"
|
||||
@@ -50,11 +49,6 @@ ExP02DetConstrReader::ExP02DetConstrReader()
|
||||
// initialize ROOT
|
||||
TSystem ts;
|
||||
gSystem->Load("libExP02ClassesDict");
|
||||
|
||||
// ROOT::Cintex::Cintex::SetDebug(2);
|
||||
ROOT::Cintex::Cintex::Enable();
|
||||
// gDebug = 1;
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file persistency/P02/src/ExP02DetectorConstruction.cc
|
||||
/// \brief Implementation of the ExP02DetectorConstruction class
|
||||
//
|
||||
// $Id: ExP02DetectorConstruction.cc 71727 2013-06-21 07:55:45Z gcosmo $
|
||||
// $Id: ExP02DetectorConstruction.cc 93306 2015-10-16 07:38:07Z gcosmo $
|
||||
//
|
||||
//
|
||||
#include "ExP02DetectorConstruction.hh"
|
||||
@@ -44,7 +44,6 @@
|
||||
#include "TROOT.h"
|
||||
#include "TFile.h"
|
||||
#include "TSystem.h"
|
||||
#include "Cintex/Cintex.h"
|
||||
|
||||
#include "ExP02GeoTree.hh"
|
||||
|
||||
@@ -161,8 +160,6 @@ G4VPhysicalVolume* ExP02DetectorConstruction::Construct()
|
||||
|
||||
gSystem->Load("libExP02ClassesDict");
|
||||
|
||||
// ROOT::Cintex::Cintex::SetDebug(2);
|
||||
ROOT::Cintex::Cintex::Enable();
|
||||
// gDebug = 1;
|
||||
|
||||
const G4ElementTable* eltab = G4Element::GetElementTable();
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<field name="fMassFractionVector" comment="[fNumberOfElements]" />
|
||||
<field name="fAtomsVector" comment="[fNumberOfElements]" />
|
||||
<field name="VecNbOfAtomsPerVolume" comment="[fNumberOfElements]" />
|
||||
<field name="fSandiaTable" transient="true"/>
|
||||
<!-- <field name="fSandiaTable" transient="true"/> -->
|
||||
</class>
|
||||
|
||||
<class name="G4IonisParamElm">
|
||||
@@ -39,11 +39,11 @@
|
||||
<field name="fShellCorrectionVector" transient="true"/>
|
||||
</class>
|
||||
|
||||
<!--
|
||||
|
||||
<class name="G4SandiaTable">
|
||||
<field name="fPhotoAbsorptionCof" transient="true"/>
|
||||
<field name="fPhotoAbsorptionCof" transient="true"/>
|
||||
</class>
|
||||
-->
|
||||
|
||||
|
||||
<class name="G4MaterialPropertyVector"/>
|
||||
<class name="G4MaterialPropertiesTable"/>
|
||||
@@ -150,9 +150,9 @@
|
||||
<class name="G4MaterialCutsCouple"/>
|
||||
|
||||
<class name="G4ProductionCuts">
|
||||
<field name="gammaDef" transient="true"/>
|
||||
<!-- <field name="gammaDef" transient="true"/>
|
||||
<field name="electDef" transient="true"/>
|
||||
<field name="positDef" transient="true"/>
|
||||
<field name="positDef" transient="true"/> -->
|
||||
</class>
|
||||
|
||||
<class name="G4VUserRegionInformation"/>
|
||||
@@ -168,6 +168,33 @@
|
||||
<class name="G4VPVParameterisation"/>
|
||||
<class name="std::vector<G4VPhysicalVolume*>"/>
|
||||
|
||||
<class name="G4LVData">
|
||||
<field name="fFieldManager" transient="true"/>
|
||||
<field name="fSensitiveDetector" transient="true"/>
|
||||
</class>
|
||||
<class name="G4PVData"/>
|
||||
|
||||
<class name="G4GeomSplitter<G4LVData>"/>
|
||||
|
||||
<class name="std::map<G4Material*,G4double>" />
|
||||
|
||||
<ioread sourceClass="G4LogicalVolume"
|
||||
version="[1-]"
|
||||
targetClass="G4LogicalVolume"
|
||||
source="G4LVData* lvdata;"
|
||||
target=""
|
||||
>
|
||||
<![CDATA[newObj->SetSolid(onfile.lvdata->fSolid);newObj->SetMaterial(onfile.lvdata->fMaterial);]]>
|
||||
</ioread>
|
||||
|
||||
|
||||
<ioread sourceClass="G4VPhysicalVolume"
|
||||
version="[1-]"
|
||||
targetClass="G4VPhysicalVolume"
|
||||
source="G4PVData* pvdata;"
|
||||
target=""
|
||||
>
|
||||
<![CDATA[newObj->SetRotation(onfile.pvdata->frot);newObj->SetTranslation(onfile.pvdata->ftrans);]]>
|
||||
</ioread>
|
||||
|
||||
</lcgdict>
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
//$Id$
|
||||
|
||||
///\file "persistency/P03/.README"
|
||||
///\file "persistency/P03/.README.txt"
|
||||
///\brief ExampleP03 README page
|
||||
|
||||
/*! \page ExampleP03 Example P03
|
||||
@@ -14,6 +14,10 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
17 September 2015 P. Arce (exampleP03-V10-01-01)
|
||||
--------------------------
|
||||
- Remove ExTGPhysicsList
|
||||
|
||||
29 July 2014 P. Arce (exampleP03-V10-00-03)
|
||||
--------------------------
|
||||
- Remove ExTGPhysicsList
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
############################################
|
||||
|
||||
*************************************************************
|
||||
Geant4 version Name: geant4-10-01-ref-00 (5-December-2014)
|
||||
Geant4 version Name: geant4-10-02-ref-00 (4-December-2015)
|
||||
Copyright : Geant4 Collaboration
|
||||
Reference : NIM A 506 (2003), 250-303
|
||||
WWW : http://cern.ch/geant4
|
||||
@@ -18,19 +18,21 @@ Registering graphics systems...
|
||||
|
||||
You have successfully registered the following graphics systems.
|
||||
Current available graphics systems are:
|
||||
ASCIITree (ATree)
|
||||
DAWNFILE (DAWNFILE)
|
||||
G4HepRep (HepRepXML)
|
||||
G4HepRepFile (HepRepFile)
|
||||
OpenGLImmediateX (OGLIX)
|
||||
OpenGLImmediateXm (OGLI, OGLIXm)
|
||||
OpenGLStoredX (OGLSX)
|
||||
OpenGLStoredXm (OGL, OGLS, OGLSXm)
|
||||
RayTracer (RayTracer)
|
||||
RayTracerX (RayTracerX)
|
||||
VRML1FILE (VRML1FILE)
|
||||
VRML2FILE (VRML2FILE)
|
||||
gMocrenFile (gMocrenFile)
|
||||
ASCIITree (ATree)
|
||||
DAWNFILE (DAWNFILE)
|
||||
G4HepRep (HepRepXML)
|
||||
G4HepRepFile (HepRepFile)
|
||||
RayTracer (RayTracer)
|
||||
VRML1FILE (VRML1FILE)
|
||||
VRML2FILE (VRML2FILE)
|
||||
gMocrenFile (gMocrenFile)
|
||||
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)
|
||||
|
||||
Registering model factories...
|
||||
|
||||
@@ -170,8 +172,20 @@ EventManager deleted.
|
||||
Units table cleared.
|
||||
Total navigation history collections cleaned: 7
|
||||
================== Deleting memory pools ===================
|
||||
Pool ID '20G4NavigationLevelRep', size : 0.00769 MB
|
||||
Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB
|
||||
Pool ID '7G4Event', size : 0.000961 MB
|
||||
Pool ID '15G4PrimaryVertex', size : 0.000961 MB
|
||||
Pool ID '17G4PrimaryParticle', size : 0.00192 MB
|
||||
Pool ID '17G4DynamicParticle', size : 0.000961 MB
|
||||
Pool ID '7G4Track', size : 0.000961 MB
|
||||
Pool ID '18G4TouchableHistory', size : 0.000961 MB
|
||||
Pool ID '15G4CountedObjectIvE', size : 0.000961 MB
|
||||
Pool ID '18G4SmoothTrajectory', size : 0.000961 MB
|
||||
Pool ID '23G4SmoothTrajectoryPoint', size : 0.00288 MB
|
||||
Pool ID '21G4TrajectoryContainer', size : 0.000961 MB
|
||||
Number of memory pools allocated: 12 of which, static: 0
|
||||
Dynamic pools deleted: 12 / Total memory freed: 0.016 Mb
|
||||
Dynamic pools deleted: 12 / Total memory freed: 0.021 MB
|
||||
============================================================
|
||||
G4Allocator objects are deleted.
|
||||
UImanager deleted.
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file persistency/P03/include/ExTGPrimaryGeneratorAction.hh
|
||||
/// \brief Definition of the ExTGPrimaryGeneratorAction class
|
||||
//
|
||||
// $Id: ExTGPrimaryGeneratorAction.hh 68025 2013-03-13 13:43:46Z gcosmo $
|
||||
// $Id: ExTGPrimaryGeneratorAction.hh 92819 2015-09-17 15:21:25Z gcosmo $
|
||||
|
||||
#ifndef ExTGPrimaryGeneratorAction_h
|
||||
#define ExTGPrimaryGeneratorAction_h 1
|
||||
@@ -55,5 +55,3 @@ class ExTGPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -50,7 +50,6 @@ void ExTGActionInitialization::BuildForMaster() const
|
||||
SetUserAction(new ExTGRunAction);
|
||||
}
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void ExTGActionInitialization::Build() const
|
||||
|
||||
@@ -24,12 +24,11 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExTGDetectorConstructionWithSD.cc 76943 2013-11-19 09:57:34Z gcosmo $
|
||||
// $Id: ExTGDetectorConstructionWithSD.cc 92819 2015-09-17 15:21:25Z gcosmo $
|
||||
//
|
||||
/// \file persistency/P03/src/ExTGDetectorConstructionWithSD.cc
|
||||
/// \brief Implementation of the ExTGDetectorConstructionWithSD class
|
||||
|
||||
|
||||
#include "ExTGDetectorConstructionWithSD.hh"
|
||||
#include "ExTGTrackerSD.hh"
|
||||
|
||||
@@ -90,5 +89,4 @@ void ExTGDetectorConstructionWithSD::ConstructSDandField()
|
||||
"Volume does not exists in geometry: Chamber");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -23,12 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: ExTGRCRegionData.cc 76943 2013-11-19 09:57:34Z gcosmo $
|
||||
// $Id: ExTGRCRegionData.cc 92819 2015-09-17 15:21:25Z gcosmo $
|
||||
//
|
||||
/// \file persistency/P03/src/ExTGRCRegionData.cc
|
||||
/// \brief Implementation of the ExTGRCRegionData class
|
||||
|
||||
|
||||
#include "ExTGRCRegionData.hh"
|
||||
#include "G4tgrUtils.hh"
|
||||
#include "G4UIcommand.hh"
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExTGTrackerHit.cc 76943 2013-11-19 09:57:34Z gcosmo $
|
||||
// $Id: ExTGTrackerHit.cc 92819 2015-09-17 15:21:25Z gcosmo $
|
||||
//
|
||||
/// \file persistency/P03/src/ExTGTrackerHit.cc
|
||||
/// \brief Implementation of the ExTGTrackerHit class
|
||||
@@ -97,5 +97,3 @@ void ExTGTrackerHit::Print()
|
||||
<< " energy deposit: " << G4BestUnit(fEdep,"Energy")
|
||||
<< " position: " << G4BestUnit(fPos,"Length") << G4endl;
|
||||
}
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
//$Id$
|
||||
|
||||
///\file "persistency/gdml/.README"
|
||||
///\file "persistency/gdml/.README.txt"
|
||||
///\brief Examples gdml README page
|
||||
|
||||
/*! \page Examples_gdml Category "persistency/gdml"
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
//$Id$
|
||||
|
||||
///\file "persistency/gdml/G01/.README"
|
||||
///\file "persistency/gdml/G01/.README.txt"
|
||||
///\brief Example G01 README page
|
||||
|
||||
/*! \page ExampleG01 Example G01
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 82923 2014-07-18 15:58:22Z gcosmo $
|
||||
$Id: History 89264 2015-03-30 08:18:11Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,12 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
March 30th, 2014 Gabriele Cosmo G01-V10-01-01
|
||||
- Activate flag in parser for enabling export of geometrical regions.
|
||||
|
||||
March 27th, 2014 Witold Pokorski G01-V10-01-00
|
||||
- Added example code showing how to import and export auxiliary information.
|
||||
|
||||
July 18th, 2014 Gabriele Cosmo G01-V10-00-04
|
||||
- Added multiUnion.gdml sample demonstrating import and export of a
|
||||
Multi-Union structure.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd">
|
||||
<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="/Users/witoldp/GEANT4/10.01.ref01/geant4/source/persistency/gdml/schema/gdml.xsd">
|
||||
|
||||
<define>
|
||||
<position name="R" unit="mm" x="0" y="0" z="0" />
|
||||
@@ -33,7 +33,10 @@
|
||||
<materialref ref="Air" />
|
||||
<solidref ref="Box" />
|
||||
<auxiliary auxtype="SensDet" auxvalue="veloSD"/>
|
||||
</volume>
|
||||
<auxiliary auxtype="sometype" auxvalue="somevalue">
|
||||
<auxiliary auxtype="somesubtype" auxvalue="somesubvalue"/>
|
||||
</auxiliary>
|
||||
</volume>
|
||||
<volume name="World" >
|
||||
<materialref ref="Air" />
|
||||
<solidref ref="WorldBox" />
|
||||
@@ -45,6 +48,35 @@
|
||||
</volume>
|
||||
</structure>
|
||||
|
||||
<userinfo>
|
||||
<auxiliary auxtype="region" auxvalue="myregion1">
|
||||
|
||||
<auxiliary auxtype="RootLogicalVolume" auxvalue="Boxvol1">
|
||||
<auxiliary auxtype="sometype" auxvalue="somevalue"/>
|
||||
</auxiliary>
|
||||
|
||||
<auxiliary auxtype="RootLogicalVolume" auxvalue="Boxvol2"/>
|
||||
<auxiliary auxtype="proton_cut_legth" auxvalue="2" auxunit="mm"/>
|
||||
<auxiliary auxtype="proton_cut_energy" auxvalue="900" auxunit="KeV"/>
|
||||
<auxiliary auxtype="electron_cut_length" auxvalue="1" auxunit="mm"/>
|
||||
<auxiliary auxtype="electron_cut_energy" auxvalue="1" auxunit="MeV"/>
|
||||
|
||||
<auxiliary auxtype="cut" auxvalue="electron">
|
||||
<auxiliary auxtype="energy" auxvalue="900" auxunit="keV"/>
|
||||
</auxiliary>
|
||||
|
||||
<auxiliary auxtype="userlimit_electron" auxvalue="1" auxunit="keV"/>
|
||||
</auxiliary>
|
||||
|
||||
<auxiliary auxtype="region" auxvalue="myregion2">
|
||||
<auxiliary auxtype="RootLogicalVolume" auxvalue="vol1"/>
|
||||
<auxiliary auxtype="RootLogicalVolume" auxvalue="vol2"/>
|
||||
<auxiliary auxtype="electron_cut_length" auxvalue="1.5" auxunit="mm"/>
|
||||
<auxiliary auxtype="proton_cut_length" auxvalue="2.5" auxunit="mm"/>
|
||||
</auxiliary>
|
||||
</userinfo>
|
||||
|
||||
|
||||
<setup name="Default" version="1.0" >
|
||||
<world ref="World" />
|
||||
</setup>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
|
||||
Usage: load_gdml <intput_gdml_file:mandatory> <output_gdml_file:optional>
|
||||
|
||||
G4GDML: Reading '/ec/G4-builds/release/slc6-gcc49-RelWithDebInfo/10-01-ref-00_branch/examples/extended/persistency/gdml/G01/solids.gdml'...
|
||||
G4GDML: Reading '/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/10-02-ref-00_branch/examples/extended/persistency/gdml/G01/solids.gdml'...
|
||||
G4GDML: Reading definitions...
|
||||
G4GDML: Reading materials...
|
||||
G4GDML: Reading solids...
|
||||
G4GDML: Reading structure...
|
||||
G4GDML: Reading setup...
|
||||
G4GDML: Reading '/ec/G4-builds/release/slc6-gcc49-RelWithDebInfo/10-01-ref-00_branch/examples/extended/persistency/gdml/G01/solids.gdml' done!
|
||||
G4GDML: Reading '/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/10-02-ref-00_branch/examples/extended/persistency/gdml/G01/solids.gdml' done!
|
||||
Stripping off GDML names of materials, solids and volumes ...
|
||||
|
||||
############################################
|
||||
@@ -15,7 +15,7 @@ Stripping off GDML names of materials, solids and volumes ...
|
||||
############################################
|
||||
|
||||
*************************************************************
|
||||
Geant4 version Name: geant4-10-01-ref-00 (5-December-2014)
|
||||
Geant4 version Name: geant4-10-02-ref-00 (4-December-2015)
|
||||
Copyright : Geant4 Collaboration
|
||||
Reference : NIM A 506 (2003), 250-303
|
||||
WWW : http://cern.ch/geant4
|
||||
@@ -24,11 +24,17 @@ Stripping off GDML names of materials, solids and volumes ...
|
||||
<<< Geant4 Physics List simulation engine: FTFP_BERT 2.0
|
||||
|
||||
### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0
|
||||
|
||||
|
||||
Global auxiliary info:
|
||||
|
||||
|
||||
G4GDML: Writing 'g01.gdml'...
|
||||
G4GDML: Writing definitions...
|
||||
G4GDML: Writing materials...
|
||||
G4GDML: Writing solids...
|
||||
G4GDML: Writing structure...
|
||||
G4GDML: Writing userinfo...
|
||||
G4GDML: Writing setup...
|
||||
G4GDML: Writing surfaces...
|
||||
G4GDML: Writing 'g01.gdml' done !
|
||||
@@ -68,7 +74,7 @@ eIoni: for e- SubType= 2
|
||||
eBrem: for e- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV
|
||||
LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen
|
||||
eBremLPM : Emin= 1 GeV Emax= 10 TeV DipBustGen
|
||||
@@ -95,7 +101,7 @@ eIoni: for e+ SubType= 2
|
||||
eBrem: for e+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV
|
||||
LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen
|
||||
eBremLPM : Emin= 1 GeV Emax= 10 TeV DipBustGen
|
||||
@@ -111,7 +117,7 @@ CoulombScat: for e+, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
msc: for proton SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -137,6 +143,7 @@ hPairProd: for proton SubType= 4
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for proton, integral: 1 SubType= 1 BuildTable= 1
|
||||
Used Lambda table of anti_proton
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
@@ -169,7 +176,7 @@ ionIoni: for alpha SubType= 2
|
||||
BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV
|
||||
|
||||
msc: for anti_proton SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -201,7 +208,7 @@ CoulombScat: for anti_proton, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for kaon+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -233,7 +240,7 @@ CoulombScat: for kaon+, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for kaon- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -259,13 +266,13 @@ hPairProd: for kaon- SubType= 4
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for kaon-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
Used Lambda table of kaon+
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for mu+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -298,7 +305,7 @@ CoulombScat: for mu+, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for mu- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -325,13 +332,13 @@ muPairProd: for mu- SubType= 4
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for mu-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
Used Lambda table of mu+
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for pi+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -363,7 +370,7 @@ CoulombScat: for pi+, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for pi- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -389,7 +396,7 @@ hPairProd: for pi- SubType= 4
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
Used Lambda table of pi+
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
@@ -402,7 +409,7 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsNeutronElasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: neutronInelastic
|
||||
@@ -423,8 +430,8 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for GenericIon
|
||||
|
||||
Process: ionInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -432,8 +439,8 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for He3
|
||||
|
||||
Process: He3Inelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -441,12 +448,12 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for alpha
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: alphaInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -454,13 +461,13 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for anti_He3
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_He3Inelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -470,13 +477,13 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for anti_alpha
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_alphaInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -486,13 +493,13 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for anti_deuteron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_deuteronInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -530,13 +537,13 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for anti_triton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_tritonInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -546,12 +553,12 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for deuteron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: dInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -590,7 +597,7 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Process: kaon+Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: ChipsKaonPlusInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
@@ -603,7 +610,7 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Process: kaon-Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: ChipsKaonMinusInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hBertiniCaptureAtRest
|
||||
@@ -691,12 +698,12 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for triton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: tInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -1080,7 +1087,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 20
|
||||
User=0.01s Real=0.01s Sys=0.01s
|
||||
User=0.01s Real=0.01s Sys=0s
|
||||
/gun/direction 0 0 -1
|
||||
/run/beamOn 20
|
||||
|
||||
@@ -1447,7 +1454,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 20
|
||||
User=0.01s Real=0.01s Sys=0s
|
||||
User=0.01s Real=0s Sys=0.01s
|
||||
/tracking/verbose 0
|
||||
/gun/direction 0.3 0.2 1
|
||||
/run/beamOn 20
|
||||
@@ -1487,7 +1494,7 @@ Index : 1 used in the geometry : Yes
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 20
|
||||
User=0s Real=0s Sys=0s
|
||||
User=0s Real=0.01s Sys=0s
|
||||
/gun/direction 0.3 -0.2 1
|
||||
/run/beamOn 20
|
||||
|
||||
@@ -1526,7 +1533,7 @@ Index : 1 used in the geometry : Yes
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 20
|
||||
User=0.01s Real=0.01s Sys=0s
|
||||
User=0.01s Real=0s Sys=0s
|
||||
/gun/direction -0.3 0.2 0.6
|
||||
/run/beamOn 20
|
||||
|
||||
@@ -1575,8 +1582,17 @@ EventManager deleted.
|
||||
Units table cleared.
|
||||
Total navigation history collections cleaned: 8
|
||||
================== Deleting memory pools ===================
|
||||
Pool ID '20G4NavigationLevelRep', size : 0.00961 MB
|
||||
Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB
|
||||
Pool ID '17G4DynamicParticle', size : 0.000961 MB
|
||||
Pool ID '7G4Event', size : 0.000961 MB
|
||||
Pool ID '15G4PrimaryVertex', size : 0.000961 MB
|
||||
Pool ID '17G4PrimaryParticle', size : 0.000961 MB
|
||||
Pool ID '7G4Track', size : 0.000961 MB
|
||||
Pool ID '18G4TouchableHistory', size : 0.000961 MB
|
||||
Pool ID '15G4CountedObjectIvE', size : 0.000961 MB
|
||||
Number of memory pools allocated: 9 of which, static: 0
|
||||
Dynamic pools deleted: 9 / Total memory freed: 0.011 Mb
|
||||
Dynamic pools deleted: 9 / Total memory freed: 0.017 MB
|
||||
============================================================
|
||||
G4Allocator objects are deleted.
|
||||
UImanager deleted.
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Main program of the persistency/gdml/G01 example
|
||||
//
|
||||
//
|
||||
// $Id: load_gdml.cc 82284 2014-06-13 14:50:49Z gcosmo $
|
||||
// $Id: load_gdml.cc 89264 2015-03-30 08:18:11Z gcosmo $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -57,6 +57,23 @@
|
||||
|
||||
#include "G4GDMLParser.hh"
|
||||
|
||||
void print_aux(const G4GDMLAuxListType* auxInfoList, G4String prepend="|")
|
||||
{
|
||||
for(std::vector<G4GDMLAuxStructType>::const_iterator iaux = auxInfoList->begin();
|
||||
iaux != auxInfoList->end(); iaux++ )
|
||||
{
|
||||
G4String str=iaux->type;
|
||||
G4String val=iaux->value;
|
||||
G4String unit=iaux->unit;
|
||||
|
||||
G4cout << prepend << str << " : " << val << " " << unit << G4endl;
|
||||
|
||||
if (iaux->auxList) print_aux(iaux->auxList, prepend + "|");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
int main(int argc,char **argv)
|
||||
{
|
||||
G4cout << G4endl;
|
||||
@@ -94,39 +111,68 @@ int main(int argc,char **argv)
|
||||
|
||||
runManager->Initialize();
|
||||
|
||||
if (argc>=3)
|
||||
{
|
||||
parser.Write(argv[2], G4TransportationManager::GetTransportationManager()
|
||||
->GetNavigatorForTracking()->GetWorldVolume()->GetLogicalVolume());
|
||||
}
|
||||
|
||||
G4UImanager* UImanager = G4UImanager::GetUIpointer();
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Example how to retrieve Auxiliary Information
|
||||
//
|
||||
|
||||
std::cout << std::endl;
|
||||
|
||||
const G4LogicalVolumeStore* lvs = G4LogicalVolumeStore::GetInstance();
|
||||
std::vector<G4LogicalVolume*>::const_iterator lvciter;
|
||||
for( lvciter = lvs->begin(); lvciter != lvs->end(); lvciter++ )
|
||||
{
|
||||
G4GDMLAuxListType auxInfo = parser.GetVolumeAuxiliaryInformation(*lvciter);
|
||||
std::vector<G4GDMLAuxPairType>::const_iterator ipair = auxInfo.begin();
|
||||
for( ipair = auxInfo.begin(); ipair != auxInfo.end(); ipair++ )
|
||||
{
|
||||
G4String str=ipair->type;
|
||||
G4String val=ipair->value;
|
||||
G4cout << " Auxiliary Information is found for Logical Volume : "
|
||||
|
||||
if (auxInfo.size()>0)
|
||||
G4cout << "Auxiliary Information is found for Logical Volume : "
|
||||
<< (*lvciter)->GetName() << G4endl;
|
||||
G4cout << " Name of Auxiliary type is : " << str << G4endl;
|
||||
G4cout << " Associated Auxiliary value is : " << val << G4endl;
|
||||
}
|
||||
|
||||
print_aux(&auxInfo);
|
||||
}
|
||||
|
||||
// now the 'global' auxiliary info
|
||||
std::cout << std::endl;
|
||||
std::cout << "Global auxiliary info:" << std::endl;
|
||||
std::cout << std::endl;
|
||||
|
||||
print_aux(parser.GetAuxList());
|
||||
|
||||
std::cout << std::endl;
|
||||
|
||||
//
|
||||
// End of Auxiliary Information block
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// example of writing out
|
||||
|
||||
if (argc>=3)
|
||||
{
|
||||
/*
|
||||
G4GDMLAuxStructType mysubaux = {"mysubtype", "mysubvalue", "mysubunit", 0};
|
||||
G4GDMLAuxListType* myauxlist = new G4GDMLAuxListType();
|
||||
myauxlist->push_back(mysubaux);
|
||||
|
||||
G4GDMLAuxStructType myaux = {"mytype", "myvalue", "myunit", myauxlist};
|
||||
parser.AddAuxiliary(myaux);
|
||||
|
||||
|
||||
// example of setting auxiliary info for world volume (can be set for any volume)
|
||||
|
||||
G4GDMLAuxStructType mylocalaux = {"sometype", "somevalue", "someunit", 0};
|
||||
|
||||
parser.AddVolumeAuxiliary(mylocalaux, G4TransportationManager::GetTransportationManager()
|
||||
->GetNavigatorForTracking()->GetWorldVolume()->GetLogicalVolume());
|
||||
*/
|
||||
parser.SetRegionExport(true);
|
||||
parser.Write(argv[2], G4TransportationManager::GetTransportationManager()
|
||||
->GetNavigatorForTracking()->GetWorldVolume()->GetLogicalVolume());
|
||||
}
|
||||
|
||||
|
||||
if (argc==4) // batch mode
|
||||
{
|
||||
G4String command = "/control/execute ";
|
||||
@@ -154,3 +200,5 @@ int main(int argc,char **argv)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
//$Id$
|
||||
|
||||
///\file "persistency/gdml/G02/.README"
|
||||
///\file "persistency/gdml/G02/.README.txt"
|
||||
///\brief Example G02 README page
|
||||
|
||||
/*! \page ExampleG02 Example G02
|
||||
@@ -41,6 +41,7 @@ target_link_libraries(geotest ${Geant4_LIBRARIES} )
|
||||
#
|
||||
set(G02_SCRIPTS
|
||||
read_gdml.mac read_step.mac test.gdml vis.mac write_gdml.mac
|
||||
mbb.geom mbb.tree
|
||||
)
|
||||
|
||||
foreach(_script ${G02_SCRIPTS})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 73394 2013-08-27 09:23:26Z gcosmo $
|
||||
$Id: History 92201 2015-08-21 10:04:19Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,9 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
August 20th, 2015 John Allison G02-V10-01-00
|
||||
- CMakeLists.txt: Added mbb.geom mbb.tree to G02_SCRIPTS.
|
||||
|
||||
August 27th, 2013 Gabriele Cosmo G02-V09-06-00
|
||||
- Added G4Ellipsoid among solids for parameterisation.
|
||||
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
//$Id$
|
||||
|
||||
///\file "persistency/gdml/G03/.README"
|
||||
///\file "persistency/gdml/G03/.README.txt"
|
||||
///\brief Example G03 README page
|
||||
|
||||
/*! \page ExampleG03 Example G03
|
||||
@@ -32,7 +32,7 @@
|
||||
as well as the -DXERCESC_ROOT_DIR=<path_to_xercesc> flag pointing to
|
||||
the path where the XercesC XML parser package is installed in your system.
|
||||
|
||||
- Compile and link to generate the executable (in your CMAKE build directory)::
|
||||
- Compile and link to generate the executable (in your CMAKE build directory):
|
||||
\verbatim
|
||||
% make
|
||||
\endverbatim
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 69987 2013-05-21 12:33:52Z gcosmo $
|
||||
$Id: History 89110 2015-03-20 08:18:27Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,8 +17,12 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
Mar 19th, 2015 Gabriele Cosmo G03-V10-01-00
|
||||
- Corrected visualization commands in read/write input macros.
|
||||
- Updated README.
|
||||
|
||||
May 17th, 2013 Witek Pokorski G03-V09-06-00
|
||||
- changes to comply to coding rule 2.1
|
||||
- Changes to comply to coding rule 2.1
|
||||
|
||||
July 27th, 2012 Witek Pokorski G03-V09-05-00
|
||||
- Adding cmake and cosmetic changes to comply to coding conventions
|
||||
|
||||
@@ -8,26 +8,76 @@
|
||||
# reading extended GDML Geometry from file
|
||||
/mydet/readFile color_extension.gdml
|
||||
/run/initialize
|
||||
|
||||
# Create a scene handler for a specific graphics system
|
||||
/vis/open OGL
|
||||
|
||||
# draw scene
|
||||
/vis/viewer/zoom 1.5
|
||||
#/vis/viewer/set/viewpointThetaPhi 45 45 deg
|
||||
#/vis/viewer/set/viewpointThetaPhi 90 -25 deg
|
||||
#/vis/viewer/flush
|
||||
#
|
||||
# Use this open statement to create an OpenGL view:
|
||||
/vis/open OGL 600x600-0+0
|
||||
#
|
||||
# Use this open statement to create a .prim file suitable for
|
||||
# viewing in DAWN:
|
||||
#/vis/open DAWNFILE
|
||||
#
|
||||
# Use this open statement to create a .heprep file suitable for
|
||||
# viewing in HepRApp:
|
||||
#/vis/open HepRepFile
|
||||
#
|
||||
# Use this open statement to create a .wrl file suitable for
|
||||
# viewing in a VRML viewer:
|
||||
#/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 geometry:
|
||||
/vis/drawVolume
|
||||
|
||||
#if you want to see trajectories and hits points
|
||||
/vis/scene/add/trajectories
|
||||
#
|
||||
# Specify view angle:
|
||||
#/vis/viewer/set/viewpointThetaPhi 90. 0.
|
||||
#
|
||||
# Specify zoom value:
|
||||
/vis/viewer/zoom 1.5
|
||||
#
|
||||
# Specify style (surface or wireframe):
|
||||
#/vis/viewer/set/style wireframe
|
||||
#
|
||||
# Draw coordinate axes:
|
||||
#/vis/scene/add/axes 0 0 0 1 m
|
||||
#
|
||||
# Draw smooth trajectories at end of event, showing trajectory points
|
||||
# as markers 2 pixels wide:
|
||||
/vis/scene/add/trajectories smooth
|
||||
/vis/modeling/trajectories/create/drawByCharge
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 5
|
||||
|
||||
# (if you prefer not refreshing each event, uncomment next line)
|
||||
/vis/scene/endOfEventAction accumulate
|
||||
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2
|
||||
# (if too many tracks cause core dump => /tracking/storeTrajectory 0)
|
||||
#
|
||||
# Draw hits at end of event:
|
||||
#/vis/scene/add/hits
|
||||
#
|
||||
# To draw only gammas:
|
||||
#/vis/filtering/trajectories/create/particleFilter
|
||||
#/vis/filtering/trajectories/particleFilter-0/add gamma
|
||||
#
|
||||
# To invert the above, drawing all particles except gammas,
|
||||
# keep the above two lines but also add:
|
||||
#/vis/filtering/trajectories/particleFilter-0/invert true
|
||||
#
|
||||
# Many other options are available with /vis/modeling and /vis/filtering.
|
||||
# For example, to select colour by particle ID:
|
||||
#/vis/modeling/trajectories/create/drawByParticleID
|
||||
#/vis/modeling/trajectories/drawByParticleID-0/set e- blue
|
||||
#
|
||||
# To superimpose all of the events from a given run:
|
||||
/vis/scene/endOfEventAction accumulate
|
||||
#
|
||||
# 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
|
||||
#
|
||||
#hard coded position and direction for gun
|
||||
/gun/position 0 0 -0.1 mm
|
||||
/gun/direction 1 0 0
|
||||
@@ -36,4 +86,3 @@
|
||||
#/tracking/verbose 1
|
||||
/run/beamOn 10
|
||||
#
|
||||
|
||||
|
||||
@@ -9,25 +9,76 @@
|
||||
/mydet/writeFile color_extension_test.gdml
|
||||
/run/initialize
|
||||
|
||||
# Create a scene handler for a specific graphics system
|
||||
/vis/open OGL
|
||||
|
||||
# draw scene
|
||||
/vis/viewer/zoom 1.5
|
||||
#/vis/viewer/set/viewpointThetaPhi 45 45 deg
|
||||
#/vis/viewer/set/viewpointThetaPhi 90 -25 deg
|
||||
#/vis/viewer/flush
|
||||
#
|
||||
# Use this open statement to create an OpenGL view:
|
||||
/vis/open OGL 600x600-0+0
|
||||
#
|
||||
# Use this open statement to create a .prim file suitable for
|
||||
# viewing in DAWN:
|
||||
#/vis/open DAWNFILE
|
||||
#
|
||||
# Use this open statement to create a .heprep file suitable for
|
||||
# viewing in HepRApp:
|
||||
#/vis/open HepRepFile
|
||||
#
|
||||
# Use this open statement to create a .wrl file suitable for
|
||||
# viewing in a VRML viewer:
|
||||
#/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 geometry:
|
||||
/vis/drawVolume
|
||||
|
||||
#if you want to see trajectories and hits points
|
||||
/vis/scene/add/trajectories
|
||||
#
|
||||
# Specify view angle:
|
||||
#/vis/viewer/set/viewpointThetaPhi 90. 0.
|
||||
#
|
||||
# Specify zoom value:
|
||||
/vis/viewer/zoom 1.5
|
||||
#
|
||||
# Specify style (surface or wireframe):
|
||||
#/vis/viewer/set/style wireframe
|
||||
#
|
||||
# Draw coordinate axes:
|
||||
#/vis/scene/add/axes 0 0 0 1 m
|
||||
#
|
||||
# Draw smooth trajectories at end of event, showing trajectory points
|
||||
# as markers 2 pixels wide:
|
||||
/vis/scene/add/trajectories smooth
|
||||
/vis/modeling/trajectories/create/drawByCharge
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 5
|
||||
|
||||
# (if you prefer not refreshing each event, uncomment next line)
|
||||
/vis/scene/endOfEventAction accumulate
|
||||
|
||||
/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2
|
||||
# (if too many tracks cause core dump => /tracking/storeTrajectory 0)
|
||||
#
|
||||
# Draw hits at end of event:
|
||||
#/vis/scene/add/hits
|
||||
#
|
||||
# To draw only gammas:
|
||||
#/vis/filtering/trajectories/create/particleFilter
|
||||
#/vis/filtering/trajectories/particleFilter-0/add gamma
|
||||
#
|
||||
# To invert the above, drawing all particles except gammas,
|
||||
# keep the above two lines but also add:
|
||||
#/vis/filtering/trajectories/particleFilter-0/invert true
|
||||
#
|
||||
# Many other options are available with /vis/modeling and /vis/filtering.
|
||||
# For example, to select colour by particle ID:
|
||||
#/vis/modeling/trajectories/create/drawByParticleID
|
||||
#/vis/modeling/trajectories/drawByParticleID-0/set e- blue
|
||||
#
|
||||
# To superimpose all of the events from a given run:
|
||||
/vis/scene/endOfEventAction accumulate
|
||||
#
|
||||
# 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
|
||||
#
|
||||
#hard coded position and direction for gun
|
||||
/gun/position 0 0 -0.1 mm
|
||||
/gun/direction 1 0 0
|
||||
@@ -36,4 +87,3 @@
|
||||
#/tracking/verbose 1
|
||||
/run/beamOn 10
|
||||
#
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
//$Id$
|
||||
|
||||
///\file "persistency/gdml/G04/.README"
|
||||
///\file "persistency/gdml/G04/.README.txt"
|
||||
///\brief Example G04 README page
|
||||
|
||||
/*! \page ExampleG04 Example G04
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 82285 2014-06-13 14:56:02Z gcosmo $
|
||||
$Id: History 93506 2015-10-23 12:30:58Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,12 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
October 23, 2015 I. Hrivnacova (G04-V10-01-01)
|
||||
- Finished MT migration
|
||||
|
||||
October 16, 2015 W. Pokorski (G04-V10-01-00)
|
||||
- MT migration
|
||||
|
||||
June 11, 2014 W. Pokorski (G04-V10-00-00)
|
||||
- changes to comply with coding conventions
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
|
||||
Usage: gdml_det <intput_gdml_file:mandatory>
|
||||
|
||||
G4GDML: Reading '/ec/G4-builds/release/slc6-gcc49-RelWithDebInfo/10-01-ref-00_branch/examples/extended/persistency/gdml/G04/auxiliary.gdml'...
|
||||
G4GDML: Reading '/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/10-02-ref-00_branch/examples/extended/persistency/gdml/G04/auxiliary.gdml'...
|
||||
G4GDML: Reading definitions...
|
||||
G4GDML: Reading materials...
|
||||
G4GDML: Reading solids...
|
||||
G4GDML: Reading structure...
|
||||
G4GDML: Reading setup...
|
||||
G4GDML: Reading '/ec/G4-builds/release/slc6-gcc49-RelWithDebInfo/10-01-ref-00_branch/examples/extended/persistency/gdml/G04/auxiliary.gdml' done!
|
||||
G4GDML: Reading '/mnt/build/jenkins/workspace/g4-slc6/COMPILER/gcc49/LABEL/slc6/THREAD/Seq/release/RelWithDebInfo/UseGranularCLHEP/10-02-ref-00_branch/10-02-ref-00_branch/examples/extended/persistency/gdml/G04/auxiliary.gdml' done!
|
||||
Stripping off GDML names of materials, solids and volumes ...
|
||||
|
||||
############################################
|
||||
@@ -15,7 +15,7 @@ Stripping off GDML names of materials, solids and volumes ...
|
||||
############################################
|
||||
|
||||
*************************************************************
|
||||
Geant4 version Name: geant4-10-01-ref-00 (5-December-2014)
|
||||
Geant4 version Name: geant4-10-02-ref-00 (4-December-2015)
|
||||
Copyright : Geant4 Collaboration
|
||||
Reference : NIM A 506 (2003), 250-303
|
||||
WWW : http://cern.ch/geant4
|
||||
@@ -23,7 +23,6 @@ Stripping off GDML names of materials, solids and volumes ...
|
||||
|
||||
<<< Geant4 Physics List simulation engine: FTFP_BERT 2.0
|
||||
|
||||
### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0
|
||||
Found 1 volume(s) with auxiliary information.
|
||||
|
||||
Volume Boxvol has the following list of auxiliary information:
|
||||
@@ -35,25 +34,28 @@ Volume Boxvol has the following list of auxiliary information:
|
||||
|
||||
Attaching sensitive detector Tracker to volume Boxvol
|
||||
|
||||
### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0
|
||||
Visualization Manager instantiating with verbosity "warnings (3)"...
|
||||
Visualization Manager initialising...
|
||||
Registering graphics systems...
|
||||
|
||||
You have successfully registered the following graphics systems.
|
||||
Current available graphics systems are:
|
||||
ASCIITree (ATree)
|
||||
DAWNFILE (DAWNFILE)
|
||||
G4HepRep (HepRepXML)
|
||||
G4HepRepFile (HepRepFile)
|
||||
OpenGLImmediateX (OGLIX)
|
||||
OpenGLImmediateXm (OGLI, OGLIXm)
|
||||
OpenGLStoredX (OGLSX)
|
||||
OpenGLStoredXm (OGL, OGLS, OGLSXm)
|
||||
RayTracer (RayTracer)
|
||||
RayTracerX (RayTracerX)
|
||||
VRML1FILE (VRML1FILE)
|
||||
VRML2FILE (VRML2FILE)
|
||||
gMocrenFile (gMocrenFile)
|
||||
ASCIITree (ATree)
|
||||
DAWNFILE (DAWNFILE)
|
||||
G4HepRep (HepRepXML)
|
||||
G4HepRepFile (HepRepFile)
|
||||
RayTracer (RayTracer)
|
||||
VRML1FILE (VRML1FILE)
|
||||
VRML2FILE (VRML2FILE)
|
||||
gMocrenFile (gMocrenFile)
|
||||
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)
|
||||
|
||||
Registering model factories...
|
||||
|
||||
@@ -116,7 +118,7 @@ eIoni: for e- SubType= 2
|
||||
eBrem: for e- SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV
|
||||
LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen
|
||||
eBremLPM : Emin= 1 GeV Emax= 10 TeV DipBustGen
|
||||
@@ -143,7 +145,7 @@ eIoni: for e+ SubType= 2
|
||||
eBrem: for e+ SubType= 3
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV
|
||||
LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen
|
||||
eBremLPM : Emin= 1 GeV Emax= 10 TeV DipBustGen
|
||||
@@ -159,7 +161,7 @@ CoulombScat: for e+, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
msc: for proton SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -185,6 +187,7 @@ hPairProd: for proton SubType= 4
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for proton, integral: 1 SubType= 1 BuildTable= 1
|
||||
Used Lambda table of anti_proton
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
@@ -217,7 +220,7 @@ ionIoni: for alpha SubType= 2
|
||||
BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV
|
||||
|
||||
msc: for anti_proton SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -249,7 +252,7 @@ CoulombScat: for anti_proton, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for kaon+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -281,7 +284,7 @@ CoulombScat: for kaon+, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for kaon- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -307,13 +310,13 @@ hPairProd: for kaon- SubType= 4
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for kaon-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
Used Lambda table of kaon+
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for mu+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -346,7 +349,7 @@ CoulombScat: for mu+, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for mu- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -373,13 +376,13 @@ muPairProd: for mu- SubType= 4
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for mu-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
Used Lambda table of mu+
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for pi+ SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -411,7 +414,7 @@ CoulombScat: for pi+, integral: 1 SubType= 1 BuildTable= 1
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for pi- SubType= 10
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
|
||||
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
@@ -437,7 +440,7 @@ hPairProd: for pi- SubType= 4
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Lambda table from threshold to 10 TeV, 7 bins per decade, spline: 1
|
||||
Used Lambda table of pi+
|
||||
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
|
||||
@@ -450,7 +453,7 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsNeutronElasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: neutronInelastic
|
||||
@@ -471,8 +474,8 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for GenericIon
|
||||
|
||||
Process: ionInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -480,8 +483,8 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for He3
|
||||
|
||||
Process: He3Inelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -489,12 +492,12 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for alpha
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: alphaInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -502,13 +505,13 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for anti_He3
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_He3Inelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -518,13 +521,13 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for anti_alpha
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_alphaInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -534,13 +537,13 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for anti_deuteron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_deuteronInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -578,13 +581,13 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for anti_triton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: anti_tritonInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Model: FTFP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -594,12 +597,12 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for deuteron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: dInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -638,7 +641,7 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Process: kaon+Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: ChipsKaonPlusInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
@@ -651,7 +654,7 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Process: kaon-Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: ChipsKaonMinusInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: hBertiniCaptureAtRest
|
||||
@@ -739,12 +742,12 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
|
||||
Hadronic Processes for triton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: tInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
|
||||
Model: FTFP: 2 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
@@ -1003,7 +1006,7 @@ Processing hits ....
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 20
|
||||
User=0s Real=0.01s Sys=0s
|
||||
User=0.01s Real=0s Sys=0s
|
||||
/gun/direction 0 0 -1
|
||||
/run/beamOn 20
|
||||
|
||||
@@ -1255,7 +1258,7 @@ Processing hits ....
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 20
|
||||
User=0.01s Real=0.01s Sys=0s
|
||||
User=0s Real=0s Sys=0s
|
||||
/tracking/verbose 0
|
||||
/gun/direction 0.3 0.2 1
|
||||
/run/beamOn 20
|
||||
@@ -1418,6 +1421,7 @@ Visualization Manager deleting...
|
||||
G4 kernel has come to Quit state.
|
||||
UserDetectorConstruction deleted.
|
||||
UserPhysicsList deleted.
|
||||
UserActionInitialization deleted.
|
||||
UserPrimaryGenerator deleted.
|
||||
RunManager is deleting RunManagerKernel.
|
||||
G4SDManager deleted.
|
||||
@@ -1425,8 +1429,18 @@ EventManager deleted.
|
||||
Units table cleared.
|
||||
Total navigation history collections cleaned: 8
|
||||
================== Deleting memory pools ===================
|
||||
Pool ID '20G4NavigationLevelRep', size : 0.00961 MB
|
||||
Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB
|
||||
Pool ID '17G4DynamicParticle', size : 0.000961 MB
|
||||
Pool ID '7G4Event', size : 0.000961 MB
|
||||
Pool ID '15G4PrimaryVertex', size : 0.000961 MB
|
||||
Pool ID '17G4PrimaryParticle', size : 0.000961 MB
|
||||
Pool ID '15G4HCofThisEvent', size : 0.000961 MB
|
||||
Pool ID '7G4Track', size : 0.000961 MB
|
||||
Pool ID '18G4TouchableHistory', size : 0.000961 MB
|
||||
Pool ID '15G4CountedObjectIvE', size : 0.000961 MB
|
||||
Number of memory pools allocated: 10 of which, static: 0
|
||||
Dynamic pools deleted: 10 / Total memory freed: 0.011 Mb
|
||||
Dynamic pools deleted: 10 / Total memory freed: 0.018 MB
|
||||
============================================================
|
||||
G4Allocator objects are deleted.
|
||||
UImanager deleted.
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Main program of the persistency/gdml/G04 example
|
||||
//
|
||||
//
|
||||
// $Id: gdml_det.cc 82285 2014-06-13 14:56:02Z gcosmo $
|
||||
// $Id: gdml_det.cc 93506 2015-10-23 12:30:58Z gcosmo $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -37,26 +37,20 @@
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4UImanager.hh"
|
||||
|
||||
#include "G4LogicalVolumeStore.hh"
|
||||
#include "G4TransportationManager.hh"
|
||||
#include "G4SDManager.hh"
|
||||
|
||||
#include "G04PrimaryGeneratorAction.hh"
|
||||
#include "G04ActionInitialization.hh"
|
||||
#include "G04DetectorConstruction.hh"
|
||||
#include "FTFP_BERT.hh"
|
||||
#include "G04SensitiveDetector.hh"
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
#ifdef G4MULTITHREADED
|
||||
#include "G4MTRunManager.hh"
|
||||
#else
|
||||
#include "G4RunManager.hh"
|
||||
#endif
|
||||
|
||||
#include "FTFP_BERT.hh"
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4VisExecutive.hh"
|
||||
#endif
|
||||
|
||||
#ifdef G4UI_USE
|
||||
#include "G4UIExecutive.hh"
|
||||
#endif
|
||||
|
||||
#include "G4GDMLParser.hh"
|
||||
|
||||
int main(int argc,char **argv)
|
||||
@@ -73,98 +67,38 @@ int main(int argc,char **argv)
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Detect interactive mode (if only one argument) and define UI session
|
||||
//
|
||||
G4UIExecutive* ui = 0;
|
||||
if ( argc == 2 ) {
|
||||
ui = new G4UIExecutive(argc, argv);
|
||||
}
|
||||
|
||||
G4GDMLParser parser;
|
||||
parser.Read(argv[1]);
|
||||
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
G4MTRunManager* runManager = new G4MTRunManager;
|
||||
#else
|
||||
G4RunManager* runManager = new G4RunManager;
|
||||
|
||||
runManager->SetUserInitialization(new G04DetectorConstruction(
|
||||
parser.GetWorldVolume()));
|
||||
runManager->SetUserInitialization(new FTFP_BERT);
|
||||
runManager->SetUserAction(new G04PrimaryGeneratorAction);
|
||||
|
||||
runManager->Initialize();
|
||||
|
||||
G4UImanager* UImanager = G4UImanager::GetUIpointer();
|
||||
|
||||
//------------------------------------------------
|
||||
// Sensitive detectors
|
||||
//------------------------------------------------
|
||||
|
||||
G4SDManager* SDman = G4SDManager::GetSDMpointer();
|
||||
|
||||
G4String trackerChamberSDname = "Tracker";
|
||||
G04SensitiveDetector* aTrackerSD =
|
||||
new G04SensitiveDetector(trackerChamberSDname);
|
||||
SDman->AddNewDetector( aTrackerSD );
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Example how to retrieve Auxiliary Information for sensitive detector
|
||||
//
|
||||
const G4GDMLAuxMapType* auxmap = parser.GetAuxMap();
|
||||
G4cout << "Found " << auxmap->size()
|
||||
<< " volume(s) with auxiliary information."
|
||||
<< G4endl << G4endl;
|
||||
for(G4GDMLAuxMapType::const_iterator iter=auxmap->begin();
|
||||
iter!=auxmap->end(); iter++)
|
||||
{
|
||||
G4cout << "Volume " << ((*iter).first)->GetName()
|
||||
<< " has the following list of auxiliary information: "
|
||||
<< G4endl << G4endl;
|
||||
for (G4GDMLAuxListType::const_iterator vit=(*iter).second.begin();
|
||||
vit!=(*iter).second.end(); vit++)
|
||||
{
|
||||
G4cout << "--> Type: " << (*vit).type
|
||||
<< " Value: " << (*vit).value << G4endl;
|
||||
}
|
||||
}
|
||||
G4cout << G4endl;
|
||||
|
||||
// The same as above, but now we are looking for
|
||||
// sensitive detectors setting them for the volumes
|
||||
|
||||
for(G4GDMLAuxMapType::const_iterator iter=auxmap->begin();
|
||||
iter!=auxmap->end(); iter++)
|
||||
{
|
||||
G4cout << "Volume " << ((*iter).first)->GetName()
|
||||
<< " has the following list of auxiliary information: "
|
||||
<< G4endl << G4endl;
|
||||
for (G4GDMLAuxListType::const_iterator vit=(*iter).second.begin();
|
||||
vit!=(*iter).second.end();vit++)
|
||||
{
|
||||
if ((*vit).type=="SensDet")
|
||||
{
|
||||
G4cout << "Attaching sensitive detector " << (*vit).value
|
||||
<< " to volume " << ((*iter).first)->GetName()
|
||||
<< G4endl << G4endl;
|
||||
|
||||
G4VSensitiveDetector* mydet =
|
||||
SDman->FindSensitiveDetector((*vit).value);
|
||||
if(mydet)
|
||||
{
|
||||
G4LogicalVolume* myvol = (*iter).first;
|
||||
myvol->SetSensitiveDetector(mydet);
|
||||
}
|
||||
else
|
||||
{
|
||||
G4cout << (*vit).value << " detector not found" << G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
// End of Auxiliary Information block
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
G4VisManager* visManager = new G4VisExecutive;
|
||||
visManager->Initialize();
|
||||
#endif
|
||||
|
||||
if (argc==3) // batch mode
|
||||
runManager->SetUserInitialization(new G04DetectorConstruction(parser));
|
||||
runManager->SetUserInitialization(new FTFP_BERT);
|
||||
|
||||
// User action initialization
|
||||
runManager->SetUserInitialization(new G04ActionInitialization());
|
||||
runManager->Initialize();
|
||||
|
||||
// Initialize visualization
|
||||
G4VisManager* visManager = new G4VisExecutive;
|
||||
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[2];
|
||||
@@ -172,20 +106,11 @@ int main(int argc,char **argv)
|
||||
}
|
||||
else // interactive mode
|
||||
{
|
||||
#ifdef G4UI_USE
|
||||
G4UIExecutive* ui = new G4UIExecutive(argc, argv);
|
||||
#ifdef G4VIS_USE
|
||||
UImanager->ApplyCommand("/control/execute vis.mac");
|
||||
#endif
|
||||
ui->SessionStart();
|
||||
delete ui;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
delete visManager;
|
||||
#endif
|
||||
delete runManager;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G04ActionInitialization.hh 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file G04ActionInitialization.hh
|
||||
/// \brief Definition of the G04ActionInitialization class
|
||||
|
||||
#ifndef G04ActionInitialization_h
|
||||
#define G04ActionInitialization_h 1
|
||||
|
||||
#include "G4VUserActionInitialization.hh"
|
||||
|
||||
/// Action initialization class.
|
||||
|
||||
class G04ActionInitialization : public G4VUserActionInitialization
|
||||
{
|
||||
public:
|
||||
G04ActionInitialization();
|
||||
virtual ~G04ActionInitialization();
|
||||
|
||||
virtual void BuildForMaster() const;
|
||||
virtual void Build() const;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the G04DetectorConstruction class
|
||||
//
|
||||
//
|
||||
// $Id: G04DetectorConstruction.hh 69988 2013-05-21 12:36:24Z gcosmo $
|
||||
// $Id: G04DetectorConstruction.hh 93506 2015-10-23 12:30:58Z gcosmo $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -36,25 +36,20 @@
|
||||
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
|
||||
class G4GDMLParser;
|
||||
|
||||
/// Detector construction for laoding GDML geometry
|
||||
|
||||
class G04DetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
public:
|
||||
|
||||
G04DetectorConstruction(G4VPhysicalVolume *setWorld = 0)
|
||||
{
|
||||
fWorld = setWorld;
|
||||
}
|
||||
|
||||
virtual G4VPhysicalVolume *Construct()
|
||||
{
|
||||
return fWorld;
|
||||
}
|
||||
public:
|
||||
G04DetectorConstruction(const G4GDMLParser& parser);
|
||||
|
||||
virtual G4VPhysicalVolume *Construct();
|
||||
virtual void ConstructSDandField();
|
||||
|
||||
private:
|
||||
|
||||
G4VPhysicalVolume *fWorld;
|
||||
const G4GDMLParser& fParser;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G04ActionInitialization.cc 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file G04ActionInitialization.cc
|
||||
/// \brief Implementation of the G04ActionInitialization class
|
||||
|
||||
#include "G04ActionInitialization.hh"
|
||||
#include "G04PrimaryGeneratorAction.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G04ActionInitialization::G04ActionInitialization()
|
||||
: G4VUserActionInitialization()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G04ActionInitialization::~G04ActionInitialization()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G04ActionInitialization::BuildForMaster() const
|
||||
{
|
||||
// SetUserAction(new G04RunAction);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G04ActionInitialization::Build() const
|
||||
{
|
||||
SetUserAction(new G04PrimaryGeneratorAction);
|
||||
// SetUserAction(new G04RunAction);
|
||||
|
||||
// G04EventAction* eventAction = new G04EventAction;
|
||||
// SetUserAction(eventAction);
|
||||
|
||||
// SetUserAction(new G04SteppingAction(eventAction));
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -0,0 +1,121 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G04DetectorConstruction.cc 87359 2014-12-01 16:04:27Z gcosmo $
|
||||
//
|
||||
/// \file G04DetectorConstruction.cc
|
||||
/// \brief Implementation of the G04DetectorConstruction class
|
||||
|
||||
#include "G04DetectorConstruction.hh"
|
||||
#include "G04SensitiveDetector.hh"
|
||||
#include "G4SDManager.hh"
|
||||
#include "G4GDMLParser.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G04DetectorConstruction::G04DetectorConstruction(const G4GDMLParser& parser)
|
||||
: G4VUserDetectorConstruction(),
|
||||
fParser(parser)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4VPhysicalVolume* G04DetectorConstruction::Construct()
|
||||
{
|
||||
return fParser.GetWorldVolume();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G04DetectorConstruction::ConstructSDandField()
|
||||
{
|
||||
//------------------------------------------------
|
||||
// Sensitive detectors
|
||||
//------------------------------------------------
|
||||
|
||||
G4SDManager* SDman = G4SDManager::GetSDMpointer();
|
||||
|
||||
G4String trackerChamberSDname = "Tracker";
|
||||
G04SensitiveDetector* aTrackerSD =
|
||||
new G04SensitiveDetector(trackerChamberSDname);
|
||||
SDman->AddNewDetector( aTrackerSD );
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Example how to retrieve Auxiliary Information for sensitive detector
|
||||
//
|
||||
const G4GDMLAuxMapType* auxmap = fParser.GetAuxMap();
|
||||
G4cout << "Found " << auxmap->size()
|
||||
<< " volume(s) with auxiliary information."
|
||||
<< G4endl << G4endl;
|
||||
for(G4GDMLAuxMapType::const_iterator iter=auxmap->begin();
|
||||
iter!=auxmap->end(); iter++)
|
||||
{
|
||||
G4cout << "Volume " << ((*iter).first)->GetName()
|
||||
<< " has the following list of auxiliary information: "
|
||||
<< G4endl << G4endl;
|
||||
for (G4GDMLAuxListType::const_iterator vit=(*iter).second.begin();
|
||||
vit!=(*iter).second.end(); vit++)
|
||||
{
|
||||
G4cout << "--> Type: " << (*vit).type
|
||||
<< " Value: " << (*vit).value << G4endl;
|
||||
}
|
||||
}
|
||||
G4cout << G4endl;
|
||||
|
||||
// The same as above, but now we are looking for
|
||||
// sensitive detectors setting them for the volumes
|
||||
|
||||
for(G4GDMLAuxMapType::const_iterator iter=auxmap->begin();
|
||||
iter!=auxmap->end(); iter++)
|
||||
{
|
||||
G4cout << "Volume " << ((*iter).first)->GetName()
|
||||
<< " has the following list of auxiliary information: "
|
||||
<< G4endl << G4endl;
|
||||
for (G4GDMLAuxListType::const_iterator vit=(*iter).second.begin();
|
||||
vit!=(*iter).second.end();vit++)
|
||||
{
|
||||
if ((*vit).type=="SensDet")
|
||||
{
|
||||
G4cout << "Attaching sensitive detector " << (*vit).value
|
||||
<< " to volume " << ((*iter).first)->GetName()
|
||||
<< G4endl << G4endl;
|
||||
|
||||
G4VSensitiveDetector* mydet =
|
||||
SDman->FindSensitiveDetector((*vit).value);
|
||||
if(mydet)
|
||||
{
|
||||
G4LogicalVolume* myvol = (*iter).first;
|
||||
myvol->SetSensitiveDetector(mydet);
|
||||
}
|
||||
else
|
||||
{
|
||||
G4cout << (*vit).value << " detector not found" << G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user