Import Geant4 10.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-10 14:11:04 +02:00
parent c9b32a6c0a
commit d4af681f38
4886 changed files with 420149 additions and 1023309 deletions
@@ -1,6 +1,6 @@
//$Id$
///\file "persistency/.README"
///\file "persistency/.README.txt"
///\brief Examples persistency README page
/*! \page Examples_persistency Category "persistency"
+10 -7
View File
@@ -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()
+7 -1
View File
@@ -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
@@ -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)
+7 -1
View File
@@ -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
+16 -17
View File
@@ -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");
@@ -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
+16 -19
View File
@@ -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,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
+29 -15
View File
@@ -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,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,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>
+65 -49
View File
@@ -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,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.
@@ -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,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
+75 -61
View File
@@ -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;
}
}
}
}
}