Blake Leverington
3 years ago
commit
c6150aab97
146 changed files with 15317 additions and 0 deletions
-
113README.md
-
BINSciFiMatG4_v2.pdf
-
56SciFiSim/CMakeFiles/2.8.12.2/CMakeCCompiler.cmake
-
57SciFiSim/CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake
-
BINSciFiSim/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_C.bin
-
BINSciFiSim/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_CXX.bin
-
15SciFiSim/CMakeFiles/2.8.12.2/CMakeSystem.cmake
-
389SciFiSim/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c
-
BINSciFiSim/CMakeFiles/2.8.12.2/CompilerIdC/a.out
-
377SciFiSim/CMakeFiles/2.8.12.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
-
BINSciFiSim/CMakeFiles/2.8.12.2/CompilerIdCXX/a.out
-
63SciFiSim/CMakeFiles/3.3.2/CMakeCCompiler.cmake
-
64SciFiSim/CMakeFiles/3.3.2/CMakeCXXCompiler.cmake
-
BINSciFiSim/CMakeFiles/3.3.2/CMakeDetermineCompilerABI_C.bin
-
BINSciFiSim/CMakeFiles/3.3.2/CMakeDetermineCompilerABI_CXX.bin
-
15SciFiSim/CMakeFiles/3.3.2/CMakeSystem.cmake
-
508SciFiSim/CMakeFiles/3.3.2/CompilerIdC/CMakeCCompilerId.c
-
BINSciFiSim/CMakeFiles/3.3.2/CompilerIdC/a.out
-
498SciFiSim/CMakeFiles/3.3.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
-
BINSciFiSim/CMakeFiles/3.3.2/CompilerIdCXX/a.out
-
777SciFiSim/CMakeFiles/CMakeOutput.log
-
2SciFiSim/CMakeFiles/CMakeRuleHashes.txt
-
8SciFiSim/CMakeFiles/DEPENDS.dir/DependInfo.cmake
-
72SciFiSim/CMakeFiles/DEPENDS.dir/build.make
-
5SciFiSim/CMakeFiles/DEPENDS.dir/cmake_clean.cmake
-
1SciFiSim/CMakeFiles/DEPENDS.dir/progress.make
-
140SciFiSim/CMakeFiles/Makefile2
-
2SciFiSim/CMakeFiles/TargetDirectories.txt
-
1SciFiSim/CMakeFiles/cmake.check_cache
-
BINSciFiSim/CMakeFiles/feature_tests.bin
-
34SciFiSim/CMakeFiles/feature_tests.c
-
405SciFiSim/CMakeFiles/feature_tests.cxx
-
1SciFiSim/CMakeFiles/progress.marks
-
50SciFiSim/CMakeFiles/scifiSim.dir/DependInfo.cmake
-
452SciFiSim/CMakeFiles/scifiSim.dir/build.make
-
21SciFiSim/CMakeFiles/scifiSim.dir/cmake_clean.cmake
-
2SciFiSim/CMakeFiles/scifiSim.dir/depend.make
-
8SciFiSim/CMakeFiles/scifiSim.dir/flags.make
-
1SciFiSim/CMakeFiles/scifiSim.dir/link.txt
-
14SciFiSim/CMakeFiles/scifiSim.dir/progress.make
-
81SciFiSim/CMakeLists.txt
-
160SciFiSim/FindROOT.cmake
-
38SciFiSim/GNUmakefile
-
38SciFiSim/GNUmakefile~
-
558SciFiSim/Makefile
-
15SciFiSim/ParameterExplanation.txt
-
44SciFiSim/cmake_install.cmake
-
25SciFiSim/cmake_uninstall.cmake
-
25SciFiSim/cmake_uninstall.cmake.in
-
152SciFiSim/geant4_validate_sources.cmake
-
152SciFiSim/geant4_validate_sources.cmake~
-
62SciFiSim/include/#SteppingAction.hh#
-
27SciFiSim/include/ActionInitialization.hh
-
203SciFiSim/include/Analysis.hh
-
199SciFiSim/include/Analysis.hh~
-
57SciFiSim/include/Convert.hh
-
100SciFiSim/include/DetectorConstruction.hh
-
96SciFiSim/include/DetectorConstruction.hh~
-
40SciFiSim/include/EventAction.hh
-
170SciFiSim/include/Parameters.hh
-
24SciFiSim/include/PhysicsList.hh
-
29SciFiSim/include/PrimaryGeneratorAction.hh
-
30SciFiSim/include/RunAction.hh
-
23SciFiSim/include/SensitiveDetector.hh
-
35SciFiSim/include/StackingAction.hh
-
51SciFiSim/include/SteppingAction.hh
-
58SciFiSim/include/SteppingAction.hh~
-
2SciFiSim/old.md5
-
61SciFiSim/outFile_32584.root.parameters
-
61SciFiSim/outFile_32703.root.parameters
-
1SciFiSim/randomEngineSeed.txt
-
124SciFiSim/scifiSim.cc
-
37SciFiSim/src/ActionInitialization.cc
-
444SciFiSim/src/Analysis.cc
-
444SciFiSim/src/Analysis.cc~
-
913SciFiSim/src/DetectorConstruction.cc
-
884SciFiSim/src/DetectorConstruction.cc~
-
40SciFiSim/src/EventAction.cc
-
597SciFiSim/src/Parameters.cc
-
68SciFiSim/src/PhysicsList.cc
-
68SciFiSim/src/PhysicsList.cc~
-
88SciFiSim/src/PrimaryGeneratorAction.cc
-
43SciFiSim/src/RunAction.cc
-
90SciFiSim/src/SensitiveDetector.cc
-
91SciFiSim/src/StackingAction.cc
-
211SciFiSim/src/SteppingAction.cc
-
221SciFiSim/src/SteppingAction.cc~
-
BINSciFiSim/src/dose.root
-
72SciFiSim/src/dosehist.C
-
71SciFiSim/src/dosehist.C~
-
93SimulationData/G4History.macro
-
33SimulationData/MyAnalysis/GNUmakefile
-
33SimulationData/MyAnalysis/GNUmakefile~
-
210SimulationData/MyAnalysis/myanalysis.C
-
205SimulationData/MyAnalysis/myanalysis.C~
-
308SimulationData/MyAnalysis/myanalysis.h
-
308SimulationData/MyAnalysis/myanalysis.h~
-
BINSimulationData/MyAnalysis/myanalysis.o
-
96SimulationData/edep.C
-
25SimulationData/muongun.mac
@ -0,0 +1,113 @@ |
|||
This is based on code from Mirco Deckenhoff and modified by Blake Leverington, Peter Stromberger, _et al_. |
|||
### Based on https://gitlab.cern.ch/lhcb-scifi/SciFiSimG4, but now expanded to a fibre mat, rather than a single fibre, with SiPM readout. |
|||
|
|||
|
|||
## How to get SciFiSim running |
|||
_Installation of GEANT4 help is at the bottom of this readme. Check the cmake options for compatibility._ |
|||
|
|||
|
|||
> $ git clone https://$USER@gitlab.cern.ch/lhcb-scifi/SciFiMatG4_v2 |
|||
|
|||
> $ cd SciFiMatG4_v2 |
|||
|
|||
Edit the environment script setup.sh to point to your Geant and ROOT installation and `source` it to add it to your environment: |
|||
|
|||
> $ source setup.sh //(required before running the software too if you open a new terminal.) |
|||
|
|||
Now to cun cmake in the build folder: |
|||
|
|||
> mkdir -p SciFiSim-build //it is safe to delete this folder if you have problems during compilation |
|||
|
|||
> cd SciFiSim-build |
|||
|
|||
> cmake ../SciFiSim |
|||
|
|||
> cmake --build . // or make clean; make |
|||
|
|||
|
|||
To run the Geant4 simulation in batch mode: |
|||
|
|||
> cd ../SimulationData |
|||
|
|||
> ../SciFiSim-build/scifiSim muongun.mac |
|||
|
|||
|
|||
To run the simulation from within the GUI (for visualization only) very slow if optical photon physics are enabled: |
|||
> $ ../SciFiSim-build/scifiSim //opens the gui |
|||
> /control/execute/ vis.mac |
|||
|
|||
|
|||
|
|||
## The Geometry file |
|||
../SciFiSim/src/DetectorConstruction.cc& |
|||
|
|||
- a multi-layer ribbon of fibres with LHCb style SiPM array at the end (no 64ch gap) |
|||
|
|||
*if you make changes to the code, run `make` again in the build folder to recompile with the changes. Sometimes you might need `make clean; make`.* |
|||
|
|||
## Input Parameters |
|||
Various parameters of the simulation are read in from a parameters file in /SimulationData/parameterFiles/ . |
|||
The description is in SciFiSi |
|||
|
|||
## PhysicsList.cc |
|||
The optical photon physics can be turned off by commenting out the OpticalPhyics section with `/* */` in /src/PhysicsList.cc |
|||
if you are only interested in energy deposit in the fibres from the primary track, for example. |
|||
|
|||
|
|||
## The root output |
|||
|
|||
There are 5 different TTrees created. |
|||
|
|||
- DetectedPhotons (information about photons detected at SiPM, each photon is an entry) |
|||
- Trigger(information about trigger) |
|||
- PrimaryParticleTrack |
|||
- InitialParticle(Not sure what the difference is) |
|||
- EnergyTrack (track length in fibres and energy deposited) |
|||
|
|||
## SciFiSimG4_v2 requires installation of Geant4 first |
|||
|
|||
> $ wget http://geant4.web.cern.ch/geant4/support/source/geant4.10.07.p01.tar.gz |
|||
|
|||
> $ tar -xzvf geant4.10.07.p01.tar.gz |
|||
|
|||
> $ mkdir geant4.10.07.p01-build |
|||
|
|||
> $ mkdir geant4.10.07.p01-install |
|||
|
|||
> $ cd geant4.10.07.p01-build/ |
|||
|
|||
|
|||
|
|||
> https://geant4-userdoc.web.cern.ch/UsersGuides/InstallationGuide/html/gettingstarted.html#softwarerequirements |
|||
|
|||
> sudo apt-get install libxerces-c-dev qt4-dev-tools freeglut3-dev libmotif-dev tk-dev cmake libxpm-dev libxmu-dev libxi-dev |
|||
> libqt5opengl5-dev |
|||
>libqt4-dev |
|||
>cmake libx11-dev xorg-dev libglu1-mesa-dev freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev |
|||
>libfontconfig1-dev libfreetype6-dev libx11-dev libxcursor-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxrandr-dev libxrender-dev |
|||
>libxmu-dev expat |
|||
>freeglut3 freeglut3-dev mesa-utils |
|||
|
|||
### add your favourite options. the Granular libraries are required by the code, for some reason. |
|||
|
|||
> cmake -DCMAKE_INSTALL_PREFIX=/home/leverington/software/geant4.10.07.p01-install -DGEANT4_INSTALL_DATA=ON -DGEANT4_BUILD_MULTITHREADED=ON -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_USE_QT=ON -DGEANT4_BUILD_CXXSTD=17 -DGEANT4_USE_FREETYPE=ON -DGEANT4_USE_SYSTEM_CLHEP_GRANULAR=ON ../geant4.10.07.p01 |
|||
|
|||
> fix any missing software that is might complain is missing |
|||
|
|||
> $ make |
|||
|
|||
> $ make install |
|||
|
|||
|
|||
## Cern ROOT must also be installed. Compiled with CXX17 |
|||
currently works with ROOT Version: 6.23/01 |
|||
|
|||
> $ root-config --features |
|||
|
|||
> cxx17 asimage builtin_afterimage builtin_clang builtin_gl2ps builtin_llvm builtin_lz4 builtin_nlohmannjson builtin_openui5 builtin_tbb builtin_vdt builtin_xrootd builtin_xxhash builtin_zstd clad dataframe exceptions fftw3 fitsio gdml http imt mathmore mlp mysql opengl pyroot roofit webgui root7 runtime_cxxmodules shared ssl tmva tmva-cpu tmva-pymva spectrum vdt x11 xml xrootd |
|||
|
|||
> cmake -Dpython=ON -Droofit=ON -DCMAKE_INSTALL_PREFIX:PATH=/home/leverington/software/root-install-cxx17 -DCMAKE_CXX_STANDARD=17 ../root |
|||
|
|||
> make |
|||
|
|||
> make install |
Binary file not shown.
@ -0,0 +1,56 @@ |
|||
set(CMAKE_C_COMPILER "/usr/bin/cc") |
|||
set(CMAKE_C_COMPILER_ARG1 "") |
|||
set(CMAKE_C_COMPILER_ID "GNU") |
|||
set(CMAKE_C_COMPILER_VERSION "4.4.7") |
|||
set(CMAKE_C_PLATFORM_ID "Linux") |
|||
|
|||
set(CMAKE_AR "/usr/bin/ar") |
|||
set(CMAKE_RANLIB "/usr/bin/ranlib") |
|||
set(CMAKE_LINKER "/usr/bin/ld") |
|||
set(CMAKE_COMPILER_IS_GNUCC 1) |
|||
set(CMAKE_C_COMPILER_LOADED 1) |
|||
set(CMAKE_C_COMPILER_WORKS TRUE) |
|||
set(CMAKE_C_ABI_COMPILED TRUE) |
|||
set(CMAKE_COMPILER_IS_MINGW ) |
|||
set(CMAKE_COMPILER_IS_CYGWIN ) |
|||
if(CMAKE_COMPILER_IS_CYGWIN) |
|||
set(CYGWIN 1) |
|||
set(UNIX 1) |
|||
endif() |
|||
|
|||
set(CMAKE_C_COMPILER_ENV_VAR "CC") |
|||
|
|||
if(CMAKE_COMPILER_IS_MINGW) |
|||
set(MINGW 1) |
|||
endif() |
|||
set(CMAKE_C_COMPILER_ID_RUN 1) |
|||
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c) |
|||
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) |
|||
set(CMAKE_C_LINKER_PREFERENCE 10) |
|||
|
|||
# Save compiler ABI information. |
|||
set(CMAKE_C_SIZEOF_DATA_PTR "8") |
|||
set(CMAKE_C_COMPILER_ABI "ELF") |
|||
set(CMAKE_C_LIBRARY_ARCHITECTURE "") |
|||
|
|||
if(CMAKE_C_SIZEOF_DATA_PTR) |
|||
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") |
|||
endif() |
|||
|
|||
if(CMAKE_C_COMPILER_ABI) |
|||
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") |
|||
endif() |
|||
|
|||
if(CMAKE_C_LIBRARY_ARCHITECTURE) |
|||
set(CMAKE_LIBRARY_ARCHITECTURE "") |
|||
endif() |
|||
|
|||
|
|||
|
|||
|
|||
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "c") |
|||
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib") |
|||
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") |
|||
|
|||
|
|||
|
@ -0,0 +1,57 @@ |
|||
set(CMAKE_CXX_COMPILER "/usr/bin/c++") |
|||
set(CMAKE_CXX_COMPILER_ARG1 "") |
|||
set(CMAKE_CXX_COMPILER_ID "GNU") |
|||
set(CMAKE_CXX_COMPILER_VERSION "4.4.7") |
|||
set(CMAKE_CXX_PLATFORM_ID "Linux") |
|||
|
|||
set(CMAKE_AR "/usr/bin/ar") |
|||
set(CMAKE_RANLIB "/usr/bin/ranlib") |
|||
set(CMAKE_LINKER "/usr/bin/ld") |
|||
set(CMAKE_COMPILER_IS_GNUCXX 1) |
|||
set(CMAKE_CXX_COMPILER_LOADED 1) |
|||
set(CMAKE_CXX_COMPILER_WORKS TRUE) |
|||
set(CMAKE_CXX_ABI_COMPILED TRUE) |
|||
set(CMAKE_COMPILER_IS_MINGW ) |
|||
set(CMAKE_COMPILER_IS_CYGWIN ) |
|||
if(CMAKE_COMPILER_IS_CYGWIN) |
|||
set(CYGWIN 1) |
|||
set(UNIX 1) |
|||
endif() |
|||
|
|||
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") |
|||
|
|||
if(CMAKE_COMPILER_IS_MINGW) |
|||
set(MINGW 1) |
|||
endif() |
|||
set(CMAKE_CXX_COMPILER_ID_RUN 1) |
|||
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) |
|||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP) |
|||
set(CMAKE_CXX_LINKER_PREFERENCE 30) |
|||
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) |
|||
|
|||
# Save compiler ABI information. |
|||
set(CMAKE_CXX_SIZEOF_DATA_PTR "8") |
|||
set(CMAKE_CXX_COMPILER_ABI "ELF") |
|||
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") |
|||
|
|||
if(CMAKE_CXX_SIZEOF_DATA_PTR) |
|||
set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") |
|||
endif() |
|||
|
|||
if(CMAKE_CXX_COMPILER_ABI) |
|||
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") |
|||
endif() |
|||
|
|||
if(CMAKE_CXX_LIBRARY_ARCHITECTURE) |
|||
set(CMAKE_LIBRARY_ARCHITECTURE "") |
|||
endif() |
|||
|
|||
|
|||
|
|||
|
|||
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;c") |
|||
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib") |
|||
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") |
|||
|
|||
|
|||
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,15 @@ |
|||
set(CMAKE_HOST_SYSTEM "Linux-3.2.0-40-generic") |
|||
set(CMAKE_HOST_SYSTEM_NAME "Linux") |
|||
set(CMAKE_HOST_SYSTEM_VERSION "3.2.0-40-generic") |
|||
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") |
|||
|
|||
|
|||
|
|||
set(CMAKE_SYSTEM "Linux-3.2.0-40-generic") |
|||
set(CMAKE_SYSTEM_NAME "Linux") |
|||
set(CMAKE_SYSTEM_VERSION "3.2.0-40-generic") |
|||
set(CMAKE_SYSTEM_PROCESSOR "x86_64") |
|||
|
|||
set(CMAKE_CROSSCOMPILING "FALSE") |
|||
|
|||
set(CMAKE_SYSTEM_LOADED 1) |
@ -0,0 +1,389 @@ |
|||
#ifdef __cplusplus |
|||
# error "A C++ compiler has been selected for C." |
|||
#endif |
|||
|
|||
/* Version number components: V=Version, R=Revision, P=Patch |
|||
Version date components: YYYY=Year, MM=Month, DD=Day */ |
|||
|
|||
#if defined(__18CXX) |
|||
# define ID_VOID_MAIN |
|||
#endif |
|||
|
|||
#if defined(__INTEL_COMPILER) || defined(__ICC) |
|||
# define COMPILER_ID "Intel" |
|||
/* __INTEL_COMPILER = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) |
|||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) |
|||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) |
|||
# if defined(__INTEL_COMPILER_BUILD_DATE) |
|||
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ |
|||
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) |
|||
# endif |
|||
|
|||
#elif defined(__PATHCC__) |
|||
# define COMPILER_ID "PathScale" |
|||
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) |
|||
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) |
|||
# if defined(__PATHCC_PATCHLEVEL__) |
|||
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) |
|||
# endif |
|||
|
|||
#elif defined(__clang__) |
|||
# define COMPILER_ID "Clang" |
|||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__) |
|||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__) |
|||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) |
|||
|
|||
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) |
|||
# define COMPILER_ID "Embarcadero" |
|||
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) |
|||
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) |
|||
# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__ & 0xFFFF) |
|||
|
|||
#elif defined(__BORLANDC__) |
|||
# define COMPILER_ID "Borland" |
|||
/* __BORLANDC__ = 0xVRR */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) |
|||
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) |
|||
|
|||
#elif defined(__WATCOMC__) |
|||
# define COMPILER_ID "Watcom" |
|||
/* __WATCOMC__ = VVRR */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) |
|||
# define COMPILER_VERSION_MINOR DEC(__WATCOMC__ % 100) |
|||
|
|||
#elif defined(__SUNPRO_C) |
|||
# define COMPILER_ID "SunPro" |
|||
# if __SUNPRO_C >= 0x5100 |
|||
/* __SUNPRO_C = 0xVRRP */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) |
|||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) |
|||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) |
|||
# else |
|||
/* __SUNPRO_C = 0xVRP */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) |
|||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) |
|||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) |
|||
# endif |
|||
|
|||
#elif defined(__HP_cc) |
|||
# define COMPILER_ID "HP" |
|||
/* __HP_cc = VVRRPP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) |
|||
# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) |
|||
# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) |
|||
|
|||
#elif defined(__DECC) |
|||
# define COMPILER_ID "Compaq" |
|||
/* __DECC_VER = VVRRTPPPP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) |
|||
# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) |
|||
# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) |
|||
|
|||
#elif defined(__IBMC__) |
|||
# if defined(__COMPILER_VER__) |
|||
# define COMPILER_ID "zOS" |
|||
# else |
|||
# if __IBMC__ >= 800 |
|||
# define COMPILER_ID "XL" |
|||
# else |
|||
# define COMPILER_ID "VisualAge" |
|||
# endif |
|||
/* __IBMC__ = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) |
|||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) |
|||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) |
|||
# endif |
|||
|
|||
#elif defined(__PGI) |
|||
# define COMPILER_ID "PGI" |
|||
# define COMPILER_VERSION_MAJOR DEC(__PGIC__) |
|||
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) |
|||
# if defined(__PGIC_PATCHLEVEL__) |
|||
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) |
|||
# endif |
|||
|
|||
#elif defined(_CRAYC) |
|||
# define COMPILER_ID "Cray" |
|||
# define COMPILER_VERSION_MAJOR DEC(_RELEASE) |
|||
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) |
|||
|
|||
#elif defined(__TI_COMPILER_VERSION__) |
|||
# define COMPILER_ID "TI" |
|||
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) |
|||
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) |
|||
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) |
|||
|
|||
#elif defined(__TINYC__) |
|||
# define COMPILER_ID "TinyCC" |
|||
|
|||
#elif defined(__SCO_VERSION__) |
|||
# define COMPILER_ID "SCO" |
|||
|
|||
#elif defined(__GNUC__) |
|||
# define COMPILER_ID "GNU" |
|||
# define COMPILER_VERSION_MAJOR DEC(__GNUC__) |
|||
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) |
|||
# if defined(__GNUC_PATCHLEVEL__) |
|||
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) |
|||
# endif |
|||
|
|||
#elif defined(_MSC_VER) |
|||
# define COMPILER_ID "MSVC" |
|||
/* _MSC_VER = VVRR */ |
|||
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) |
|||
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) |
|||
# if defined(_MSC_FULL_VER) |
|||
# if _MSC_VER >= 1400 |
|||
/* _MSC_FULL_VER = VVRRPPPPP */ |
|||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) |
|||
# else |
|||
/* _MSC_FULL_VER = VVRRPPPP */ |
|||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) |
|||
# endif |
|||
# endif |
|||
# if defined(_MSC_BUILD) |
|||
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) |
|||
# endif |
|||
|
|||
/* Analog VisualDSP++ >= 4.5.6 */ |
|||
#elif defined(__VISUALDSPVERSION__) |
|||
# define COMPILER_ID "ADSP" |
|||
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) |
|||
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) |
|||
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) |
|||
|
|||
/* Analog VisualDSP++ < 4.5.6 */ |
|||
#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) |
|||
# define COMPILER_ID "ADSP" |
|||
|
|||
/* IAR Systems compiler for embedded systems. |
|||
http://www.iar.com */ |
|||
#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) |
|||
# define COMPILER_ID "IAR" |
|||
|
|||
/* sdcc, the small devices C compiler for embedded systems, |
|||
http://sdcc.sourceforge.net */ |
|||
#elif defined(SDCC) |
|||
# define COMPILER_ID "SDCC" |
|||
/* SDCC = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(SDCC/100) |
|||
# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) |
|||
# define COMPILER_VERSION_PATCH DEC(SDCC % 10) |
|||
|
|||
#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) |
|||
# define COMPILER_ID "MIPSpro" |
|||
# if defined(_SGI_COMPILER_VERSION) |
|||
/* _SGI_COMPILER_VERSION = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) |
|||
# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) |
|||
# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) |
|||
# else |
|||
/* _COMPILER_VERSION = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) |
|||
# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) |
|||
# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) |
|||
# endif |
|||
|
|||
/* This compiler is either not known or is too old to define an |
|||
identification macro. Try to identify the platform and guess that |
|||
it is the native compiler. */ |
|||
#elif defined(__sgi) |
|||
# define COMPILER_ID "MIPSpro" |
|||
|
|||
#elif defined(__hpux) || defined(__hpua) |
|||
# define COMPILER_ID "HP" |
|||
|
|||
#else /* unknown compiler */ |
|||
# define COMPILER_ID "" |
|||
|
|||
#endif |
|||
|
|||
/* Construct the string literal in pieces to prevent the source from |
|||
getting matched. Store it in a pointer rather than an array |
|||
because some compilers will just produce instructions to fill the |
|||
array rather than assigning a pointer to a static array. */ |
|||
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; |
|||
|
|||
/* Identify known platforms by name. */ |
|||
#if defined(__linux) || defined(__linux__) || defined(linux) |
|||
# define PLATFORM_ID "Linux" |
|||
|
|||
#elif defined(__CYGWIN__) |
|||
# define PLATFORM_ID "Cygwin" |
|||
|
|||
#elif defined(__MINGW32__) |
|||
# define PLATFORM_ID "MinGW" |
|||
|
|||
#elif defined(__APPLE__) |
|||
# define PLATFORM_ID "Darwin" |
|||
|
|||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) |
|||
# define PLATFORM_ID "Windows" |
|||
|
|||
#elif defined(__FreeBSD__) || defined(__FreeBSD) |
|||
# define PLATFORM_ID "FreeBSD" |
|||
|
|||
#elif defined(__NetBSD__) || defined(__NetBSD) |
|||
# define PLATFORM_ID "NetBSD" |
|||
|
|||
#elif defined(__OpenBSD__) || defined(__OPENBSD) |
|||
# define PLATFORM_ID "OpenBSD" |
|||
|
|||
#elif defined(__sun) || defined(sun) |
|||
# define PLATFORM_ID "SunOS" |
|||
|
|||
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) |
|||
# define PLATFORM_ID "AIX" |
|||
|
|||
#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) |
|||
# define PLATFORM_ID "IRIX" |
|||
|
|||
#elif defined(__hpux) || defined(__hpux__) |
|||
# define PLATFORM_ID "HP-UX" |
|||
|
|||
#elif defined(__HAIKU__) |
|||
# define PLATFORM_ID "Haiku" |
|||
|
|||
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) |
|||
# define PLATFORM_ID "BeOS" |
|||
|
|||
#elif defined(__QNX__) || defined(__QNXNTO__) |
|||
# define PLATFORM_ID "QNX" |
|||
|
|||
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) |
|||
# define PLATFORM_ID "Tru64" |
|||
|
|||
#elif defined(__riscos) || defined(__riscos__) |
|||
# define PLATFORM_ID "RISCos" |
|||
|
|||
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) |
|||
# define PLATFORM_ID "SINIX" |
|||
|
|||
#elif defined(__UNIX_SV__) |
|||
# define PLATFORM_ID "UNIX_SV" |
|||
|
|||
#elif defined(__bsdos__) |
|||
# define PLATFORM_ID "BSDOS" |
|||
|
|||
#elif defined(_MPRAS) || defined(MPRAS) |
|||
# define PLATFORM_ID "MP-RAS" |
|||
|
|||
#elif defined(__osf) || defined(__osf__) |
|||
# define PLATFORM_ID "OSF1" |
|||
|
|||
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) |
|||
# define PLATFORM_ID "SCO_SV" |
|||
|
|||
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) |
|||
# define PLATFORM_ID "ULTRIX" |
|||
|
|||
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) |
|||
# define PLATFORM_ID "Xenix" |
|||
|
|||
#else /* unknown platform */ |
|||
# define PLATFORM_ID "" |
|||
|
|||
#endif |
|||
|
|||
/* For windows compilers MSVC and Intel we can determine |
|||
the architecture of the compiler being used. This is because |
|||
the compilers do not have flags that can change the architecture, |
|||
but rather depend on which compiler is being used |
|||
*/ |
|||
#if defined(_WIN32) && defined(_MSC_VER) |
|||
# if defined(_M_IA64) |
|||
# define ARCHITECTURE_ID "IA64" |
|||
|
|||
# elif defined(_M_X64) || defined(_M_AMD64) |
|||
# define ARCHITECTURE_ID "x64" |
|||
|
|||
# elif defined(_M_IX86) |
|||
# define ARCHITECTURE_ID "X86" |
|||
|
|||
# elif defined(_M_ARM) |
|||
# define ARCHITECTURE_ID "ARM" |
|||
|
|||
# elif defined(_M_MIPS) |
|||
# define ARCHITECTURE_ID "MIPS" |
|||
|
|||
# elif defined(_M_SH) |
|||
# define ARCHITECTURE_ID "SHx" |
|||
|
|||
# else /* unknown architecture */ |
|||
# define ARCHITECTURE_ID "" |
|||
# endif |
|||
|
|||
#else |
|||
# define ARCHITECTURE_ID "" |
|||
#endif |
|||
|
|||
/* Convert integer to decimal digit literals. */ |
|||
#define DEC(n) \ |
|||
('0' + (((n) / 10000000)%10)), \ |
|||
('0' + (((n) / 1000000)%10)), \ |
|||
('0' + (((n) / 100000)%10)), \ |
|||
('0' + (((n) / 10000)%10)), \ |
|||
('0' + (((n) / 1000)%10)), \ |
|||
('0' + (((n) / 100)%10)), \ |
|||
('0' + (((n) / 10)%10)), \ |
|||
('0' + ((n) % 10)) |
|||
|
|||
/* Convert integer to hex digit literals. */ |
|||
#define HEX(n) \ |
|||
('0' + ((n)>>28 & 0xF)), \ |
|||
('0' + ((n)>>24 & 0xF)), \ |
|||
('0' + ((n)>>20 & 0xF)), \ |
|||
('0' + ((n)>>16 & 0xF)), \ |
|||
('0' + ((n)>>12 & 0xF)), \ |
|||
('0' + ((n)>>8 & 0xF)), \ |
|||
('0' + ((n)>>4 & 0xF)), \ |
|||
('0' + ((n) & 0xF)) |
|||
|
|||
/* Construct a string literal encoding the version number components. */ |
|||
#ifdef COMPILER_VERSION_MAJOR |
|||
char const info_version[] = { |
|||
'I', 'N', 'F', 'O', ':', |
|||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', |
|||
COMPILER_VERSION_MAJOR, |
|||
# ifdef COMPILER_VERSION_MINOR |
|||
'.', COMPILER_VERSION_MINOR, |
|||
# ifdef COMPILER_VERSION_PATCH |
|||
'.', COMPILER_VERSION_PATCH, |
|||
# ifdef COMPILER_VERSION_TWEAK |
|||
'.', COMPILER_VERSION_TWEAK, |
|||
# endif |
|||
# endif |
|||
# endif |
|||
']','\0'}; |
|||
#endif |
|||
|
|||
/* Construct the string literal in pieces to prevent the source from |
|||
getting matched. Store it in a pointer rather than an array |
|||
because some compilers will just produce instructions to fill the |
|||
array rather than assigning a pointer to a static array. */ |
|||
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; |
|||
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; |
|||
|
|||
|
|||
|
|||
/*--------------------------------------------------------------------------*/ |
|||
|
|||
#ifdef ID_VOID_MAIN |
|||
void main() {} |
|||
#else |
|||
int main(int argc, char* argv[]) |
|||
{ |
|||
int require = 0; |
|||
require += info_compiler[argc]; |
|||
require += info_platform[argc]; |
|||
require += info_arch[argc]; |
|||
#ifdef COMPILER_VERSION_MAJOR |
|||
require += info_version[argc]; |
|||
#endif |
|||
(void)argv; |
|||
return require; |
|||
} |
|||
#endif |
Binary file not shown.
@ -0,0 +1,377 @@ |
|||
/* This source file must have a .cpp extension so that all C++ compilers
|
|||
recognize the extension without flags. Borland does not know .cxx for |
|||
example. */ |
|||
#ifndef __cplusplus
|
|||
# error "A C compiler has been selected for C++."
|
|||
#endif
|
|||
|
|||
/* Version number components: V=Version, R=Revision, P=Patch
|
|||
Version date components: YYYY=Year, MM=Month, DD=Day */ |
|||
|
|||
#if defined(__COMO__)
|
|||
# define COMPILER_ID "Comeau"
|
|||
/* __COMO_VERSION__ = VRR */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
|
|||
# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
|
|||
|
|||
#elif defined(__INTEL_COMPILER) || defined(__ICC)
|
|||
# define COMPILER_ID "Intel"
|
|||
/* __INTEL_COMPILER = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
|
|||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
|
|||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
|
|||
# if defined(__INTEL_COMPILER_BUILD_DATE)
|
|||
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ |
|||
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
|
|||
# endif
|
|||
|
|||
#elif defined(__PATHCC__)
|
|||
# define COMPILER_ID "PathScale"
|
|||
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
|
|||
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
|
|||
# if defined(__PATHCC_PATCHLEVEL__)
|
|||
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
|
|||
# endif
|
|||
|
|||
#elif defined(__clang__)
|
|||
# define COMPILER_ID "Clang"
|
|||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
|||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
|||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
|||
|
|||
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
|
|||
# define COMPILER_ID "Embarcadero"
|
|||
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
|
|||
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
|
|||
# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__ & 0xFFFF)
|
|||
|
|||
#elif defined(__BORLANDC__)
|
|||
# define COMPILER_ID "Borland"
|
|||
/* __BORLANDC__ = 0xVRR */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
|
|||
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
|
|||
|
|||
#elif defined(__WATCOMC__)
|
|||
# define COMPILER_ID "Watcom"
|
|||
/* __WATCOMC__ = VVRR */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
|
|||
# define COMPILER_VERSION_MINOR DEC(__WATCOMC__ % 100)
|
|||
|
|||
#elif defined(__SUNPRO_CC)
|
|||
# define COMPILER_ID "SunPro"
|
|||
# if __SUNPRO_CC >= 0x5100
|
|||
/* __SUNPRO_CC = 0xVRRP */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
|
|||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
|
|||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
|
|||
# else
|
|||
/* __SUNPRO_CC = 0xVRP */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
|
|||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
|
|||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
|
|||
# endif
|
|||
|
|||
#elif defined(__HP_aCC)
|
|||
# define COMPILER_ID "HP"
|
|||
/* __HP_aCC = VVRRPP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
|
|||
# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
|
|||
# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
|
|||
|
|||
#elif defined(__DECCXX)
|
|||
# define COMPILER_ID "Compaq"
|
|||
/* __DECCXX_VER = VVRRTPPPP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
|
|||
# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
|
|||
# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
|
|||
|
|||
#elif defined(__IBMCPP__)
|
|||
# if defined(__COMPILER_VER__)
|
|||
# define COMPILER_ID "zOS"
|
|||
# else
|
|||
# if __IBMCPP__ >= 800
|
|||
# define COMPILER_ID "XL"
|
|||
# else
|
|||
# define COMPILER_ID "VisualAge"
|
|||
# endif
|
|||
/* __IBMCPP__ = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
|
|||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
|
|||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
|
|||
# endif
|
|||
|
|||
#elif defined(__PGI)
|
|||
# define COMPILER_ID "PGI"
|
|||
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
|
|||
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
|
|||
# if defined(__PGIC_PATCHLEVEL__)
|
|||
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
|
|||
# endif
|
|||
|
|||
#elif defined(_CRAYC)
|
|||
# define COMPILER_ID "Cray"
|
|||
# define COMPILER_VERSION_MAJOR DEC(_RELEASE)
|
|||
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
|
|||
|
|||
#elif defined(__TI_COMPILER_VERSION__)
|
|||
# define COMPILER_ID "TI"
|
|||
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
|
|||
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
|
|||
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
|
|||
|
|||
#elif defined(__SCO_VERSION__)
|
|||
# define COMPILER_ID "SCO"
|
|||
|
|||
#elif defined(__GNUC__)
|
|||
# define COMPILER_ID "GNU"
|
|||
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
|
|||
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
|
|||
# if defined(__GNUC_PATCHLEVEL__)
|
|||
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
|||
# endif
|
|||
|
|||
#elif defined(_MSC_VER)
|
|||
# define COMPILER_ID "MSVC"
|
|||
/* _MSC_VER = VVRR */ |
|||
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
|
|||
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
|
|||
# if defined(_MSC_FULL_VER)
|
|||
# if _MSC_VER >= 1400
|
|||
/* _MSC_FULL_VER = VVRRPPPPP */ |
|||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
|
|||
# else
|
|||
/* _MSC_FULL_VER = VVRRPPPP */ |
|||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
|
|||
# endif
|
|||
# endif
|
|||
# if defined(_MSC_BUILD)
|
|||
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
|
|||
# endif
|
|||
|
|||
/* Analog VisualDSP++ >= 4.5.6 */ |
|||
#elif defined(__VISUALDSPVERSION__)
|
|||
# define COMPILER_ID "ADSP"
|
|||
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
|
|||
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
|
|||
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
|
|||
|
|||
/* Analog VisualDSP++ < 4.5.6 */ |
|||
#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
|
|||
# define COMPILER_ID "ADSP"
|
|||
|
|||
/* IAR Systems compiler for embedded systems.
|
|||
http://www.iar.com */
|
|||
#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
|
|||
# define COMPILER_ID "IAR"
|
|||
|
|||
#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
|
|||
# define COMPILER_ID "MIPSpro"
|
|||
# if defined(_SGI_COMPILER_VERSION)
|
|||
/* _SGI_COMPILER_VERSION = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
|
|||
# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
|
|||
# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10)
|
|||
# else
|
|||
/* _COMPILER_VERSION = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
|
|||
# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
|
|||
# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10)
|
|||
# endif
|
|||
|
|||
/* This compiler is either not known or is too old to define an
|
|||
identification macro. Try to identify the platform and guess that |
|||
it is the native compiler. */ |
|||
#elif defined(__sgi)
|
|||
# define COMPILER_ID "MIPSpro"
|
|||
|
|||
#elif defined(__hpux) || defined(__hpua)
|
|||
# define COMPILER_ID "HP"
|
|||
|
|||
#else /* unknown compiler */
|
|||
# define COMPILER_ID ""
|
|||
|
|||
#endif
|
|||
|
|||
/* Construct the string literal in pieces to prevent the source from
|
|||
getting matched. Store it in a pointer rather than an array |
|||
because some compilers will just produce instructions to fill the |
|||
array rather than assigning a pointer to a static array. */ |
|||
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; |
|||
|
|||
/* Identify known platforms by name. */ |
|||
#if defined(__linux) || defined(__linux__) || defined(linux)
|
|||
# define PLATFORM_ID "Linux"
|
|||
|
|||
#elif defined(__CYGWIN__)
|
|||
# define PLATFORM_ID "Cygwin"
|
|||
|
|||
#elif defined(__MINGW32__)
|
|||
# define PLATFORM_ID "MinGW"
|
|||
|
|||
#elif defined(__APPLE__)
|
|||
# define PLATFORM_ID "Darwin"
|
|||
|
|||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
|
|||
# define PLATFORM_ID "Windows"
|
|||
|
|||
#elif defined(__FreeBSD__) || defined(__FreeBSD)
|
|||
# define PLATFORM_ID "FreeBSD"
|
|||
|
|||
#elif defined(__NetBSD__) || defined(__NetBSD)
|
|||
# define PLATFORM_ID "NetBSD"
|
|||
|
|||
#elif defined(__OpenBSD__) || defined(__OPENBSD)
|
|||
# define PLATFORM_ID "OpenBSD"
|
|||
|
|||
#elif defined(__sun) || defined(sun)
|
|||
# define PLATFORM_ID "SunOS"
|
|||
|
|||
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
|
|||
# define PLATFORM_ID "AIX"
|
|||
|
|||
#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
|
|||
# define PLATFORM_ID "IRIX"
|
|||
|
|||
#elif defined(__hpux) || defined(__hpux__)
|
|||
# define PLATFORM_ID "HP-UX"
|
|||
|
|||
#elif defined(__HAIKU__)
|
|||
# define PLATFORM_ID "Haiku"
|
|||
|
|||
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
|
|||
# define PLATFORM_ID "BeOS"
|
|||
|
|||
#elif defined(__QNX__) || defined(__QNXNTO__)
|
|||
# define PLATFORM_ID "QNX"
|
|||
|
|||
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
|
|||
# define PLATFORM_ID "Tru64"
|
|||
|
|||
#elif defined(__riscos) || defined(__riscos__)
|
|||
# define PLATFORM_ID "RISCos"
|
|||
|
|||
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
|
|||
# define PLATFORM_ID "SINIX"
|
|||
|
|||
#elif defined(__UNIX_SV__)
|
|||
# define PLATFORM_ID "UNIX_SV"
|
|||
|
|||
#elif defined(__bsdos__)
|
|||
# define PLATFORM_ID "BSDOS"
|
|||
|
|||
#elif defined(_MPRAS) || defined(MPRAS)
|
|||
# define PLATFORM_ID "MP-RAS"
|
|||
|
|||
#elif defined(__osf) || defined(__osf__)
|
|||
# define PLATFORM_ID "OSF1"
|
|||
|
|||
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
|
|||
# define PLATFORM_ID "SCO_SV"
|
|||
|
|||
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
|
|||
# define PLATFORM_ID "ULTRIX"
|
|||
|
|||
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
|
|||
# define PLATFORM_ID "Xenix"
|
|||
|
|||
#else /* unknown platform */
|
|||
# define PLATFORM_ID ""
|
|||
|
|||
#endif
|
|||
|
|||
/* For windows compilers MSVC and Intel we can determine
|
|||
the architecture of the compiler being used. This is because |
|||
the compilers do not have flags that can change the architecture, |
|||
but rather depend on which compiler is being used |
|||
*/ |
|||
#if defined(_WIN32) && defined(_MSC_VER)
|
|||
# if defined(_M_IA64)
|
|||
# define ARCHITECTURE_ID "IA64"
|
|||
|
|||
# elif defined(_M_X64) || defined(_M_AMD64)
|
|||
# define ARCHITECTURE_ID "x64"
|
|||
|
|||
# elif defined(_M_IX86)
|
|||
# define ARCHITECTURE_ID "X86"
|
|||
|
|||
# elif defined(_M_ARM)
|
|||
# define ARCHITECTURE_ID "ARM"
|
|||
|
|||
# elif defined(_M_MIPS)
|
|||
# define ARCHITECTURE_ID "MIPS"
|
|||
|
|||
# elif defined(_M_SH)
|
|||
# define ARCHITECTURE_ID "SHx"
|
|||
|
|||
# else /* unknown architecture */
|
|||
# define ARCHITECTURE_ID ""
|
|||
# endif
|
|||
|
|||
#else
|
|||
# define ARCHITECTURE_ID ""
|
|||
#endif
|
|||
|
|||
/* Convert integer to decimal digit literals. */ |
|||
#define DEC(n) \
|
|||
('0' + (((n) / 10000000)%10)), \ |
|||
('0' + (((n) / 1000000)%10)), \ |
|||
('0' + (((n) / 100000)%10)), \ |
|||
('0' + (((n) / 10000)%10)), \ |
|||
('0' + (((n) / 1000)%10)), \ |
|||
('0' + (((n) / 100)%10)), \ |
|||
('0' + (((n) / 10)%10)), \ |
|||
('0' + ((n) % 10)) |
|||
|
|||
/* Convert integer to hex digit literals. */ |
|||
#define HEX(n) \
|
|||
('0' + ((n)>>28 & 0xF)), \ |
|||
('0' + ((n)>>24 & 0xF)), \ |
|||
('0' + ((n)>>20 & 0xF)), \ |
|||
('0' + ((n)>>16 & 0xF)), \ |
|||
('0' + ((n)>>12 & 0xF)), \ |
|||
('0' + ((n)>>8 & 0xF)), \ |
|||
('0' + ((n)>>4 & 0xF)), \ |
|||
('0' + ((n) & 0xF)) |
|||
|
|||
/* Construct a string literal encoding the version number components. */ |
|||
#ifdef COMPILER_VERSION_MAJOR
|
|||
char const info_version[] = { |
|||
'I', 'N', 'F', 'O', ':', |
|||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', |
|||
COMPILER_VERSION_MAJOR, |
|||
# ifdef COMPILER_VERSION_MINOR
|
|||
'.', COMPILER_VERSION_MINOR, |
|||
# ifdef COMPILER_VERSION_PATCH
|
|||
'.', COMPILER_VERSION_PATCH, |
|||
# ifdef COMPILER_VERSION_TWEAK
|
|||
'.', COMPILER_VERSION_TWEAK, |
|||
# endif
|
|||
# endif
|
|||
# endif
|
|||
']','\0'}; |
|||
#endif
|
|||
|
|||
/* Construct the string literal in pieces to prevent the source from
|
|||
getting matched. Store it in a pointer rather than an array |
|||
because some compilers will just produce instructions to fill the |
|||
array rather than assigning a pointer to a static array. */ |
|||
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; |
|||
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; |
|||
|
|||
|
|||
|
|||
/*--------------------------------------------------------------------------*/ |
|||
|
|||
int main(int argc, char* argv[]) |
|||
{ |
|||
int require = 0; |
|||
require += info_compiler[argc]; |
|||
require += info_platform[argc]; |
|||
#ifdef COMPILER_VERSION_MAJOR
|
|||
require += info_version[argc]; |
|||
#endif
|
|||
(void)argv; |
|||
return require; |
|||
} |
Binary file not shown.
@ -0,0 +1,63 @@ |
|||
set(CMAKE_C_COMPILER "/usr/bin/cc") |
|||
set(CMAKE_C_COMPILER_ARG1 "") |
|||
set(CMAKE_C_COMPILER_ID "GNU") |
|||
set(CMAKE_C_COMPILER_VERSION "4.8.1") |
|||
set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert") |
|||
set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes") |
|||
set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros") |
|||
set(CMAKE_C11_COMPILE_FEATURES "c_static_assert") |
|||
|
|||
set(CMAKE_C_PLATFORM_ID "Linux") |
|||
set(CMAKE_C_SIMULATE_ID "") |
|||
set(CMAKE_C_SIMULATE_VERSION "") |
|||
|
|||
set(CMAKE_AR "/usr/bin/ar") |
|||
set(CMAKE_RANLIB "/usr/bin/ranlib") |
|||
set(CMAKE_LINKER "/usr/bin/ld") |
|||
set(CMAKE_COMPILER_IS_GNUCC 1) |
|||
set(CMAKE_C_COMPILER_LOADED 1) |
|||
set(CMAKE_C_COMPILER_WORKS TRUE) |
|||
set(CMAKE_C_ABI_COMPILED TRUE) |
|||
set(CMAKE_COMPILER_IS_MINGW ) |
|||
set(CMAKE_COMPILER_IS_CYGWIN ) |
|||
if(CMAKE_COMPILER_IS_CYGWIN) |
|||
set(CYGWIN 1) |
|||
set(UNIX 1) |
|||
endif() |
|||
|
|||
set(CMAKE_C_COMPILER_ENV_VAR "CC") |
|||
|
|||
if(CMAKE_COMPILER_IS_MINGW) |
|||
set(MINGW 1) |
|||
endif() |
|||
set(CMAKE_C_COMPILER_ID_RUN 1) |
|||
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) |
|||
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) |
|||
set(CMAKE_C_LINKER_PREFERENCE 10) |
|||
|
|||
# Save compiler ABI information. |
|||
set(CMAKE_C_SIZEOF_DATA_PTR "8") |
|||
set(CMAKE_C_COMPILER_ABI "ELF") |
|||
set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") |
|||
|
|||
if(CMAKE_C_SIZEOF_DATA_PTR) |
|||
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") |
|||
endif() |
|||
|
|||
if(CMAKE_C_COMPILER_ABI) |
|||
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") |
|||
endif() |
|||
|
|||
if(CMAKE_C_LIBRARY_ARCHITECTURE) |
|||
set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") |
|||
endif() |
|||
|
|||
|
|||
|
|||
|
|||
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "c") |
|||
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/4.8;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") |
|||
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") |
|||
|
|||
|
|||
|
@ -0,0 +1,64 @@ |
|||
set(CMAKE_CXX_COMPILER "/usr/bin/c++") |
|||
set(CMAKE_CXX_COMPILER_ARG1 "") |
|||
set(CMAKE_CXX_COMPILER_ID "GNU") |
|||
set(CMAKE_CXX_COMPILER_VERSION "4.8.1") |
|||
set(CMAKE_CXX_COMPILE_FEATURES "cxx_template_template_parameters;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") |
|||
set(CMAKE_CXX98_COMPILE_FEATURES "cxx_template_template_parameters") |
|||
set(CMAKE_CXX11_COMPILE_FEATURES "cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") |
|||
set(CMAKE_CXX14_COMPILE_FEATURES "") |
|||
|
|||
set(CMAKE_CXX_PLATFORM_ID "Linux") |
|||
set(CMAKE_CXX_SIMULATE_ID "") |
|||
set(CMAKE_CXX_SIMULATE_VERSION "") |
|||
|
|||
set(CMAKE_AR "/usr/bin/ar") |
|||
set(CMAKE_RANLIB "/usr/bin/ranlib") |
|||
set(CMAKE_LINKER "/usr/bin/ld") |
|||
set(CMAKE_COMPILER_IS_GNUCXX 1) |
|||
set(CMAKE_CXX_COMPILER_LOADED 1) |
|||
set(CMAKE_CXX_COMPILER_WORKS TRUE) |
|||
set(CMAKE_CXX_ABI_COMPILED TRUE) |
|||
set(CMAKE_COMPILER_IS_MINGW ) |
|||
set(CMAKE_COMPILER_IS_CYGWIN ) |
|||
if(CMAKE_COMPILER_IS_CYGWIN) |
|||
set(CYGWIN 1) |
|||
set(UNIX 1) |
|||
endif() |
|||
|
|||
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") |
|||
|
|||
if(CMAKE_COMPILER_IS_MINGW) |
|||
set(MINGW 1) |
|||
endif() |
|||
set(CMAKE_CXX_COMPILER_ID_RUN 1) |
|||
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) |
|||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) |
|||
set(CMAKE_CXX_LINKER_PREFERENCE 30) |
|||
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) |
|||
|
|||
# Save compiler ABI information. |
|||
set(CMAKE_CXX_SIZEOF_DATA_PTR "8") |
|||
set(CMAKE_CXX_COMPILER_ABI "ELF") |
|||
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") |
|||
|
|||
if(CMAKE_CXX_SIZEOF_DATA_PTR) |
|||
set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") |
|||
endif() |
|||
|
|||
if(CMAKE_CXX_COMPILER_ABI) |
|||
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") |
|||
endif() |
|||
|
|||
if(CMAKE_CXX_LIBRARY_ARCHITECTURE) |
|||
set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") |
|||
endif() |
|||
|
|||
|
|||
|
|||
|
|||
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;c") |
|||
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/4.8;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") |
|||
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") |
|||
|
|||
|
|||
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,15 @@ |
|||
set(CMAKE_HOST_SYSTEM "Linux-3.2.0-96-generic") |
|||
set(CMAKE_HOST_SYSTEM_NAME "Linux") |
|||
set(CMAKE_HOST_SYSTEM_VERSION "3.2.0-96-generic") |
|||
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") |
|||
|
|||
|
|||
|
|||
set(CMAKE_SYSTEM "Linux-3.2.0-96-generic") |
|||
set(CMAKE_SYSTEM_NAME "Linux") |
|||
set(CMAKE_SYSTEM_VERSION "3.2.0-96-generic") |
|||
set(CMAKE_SYSTEM_PROCESSOR "x86_64") |
|||
|
|||
set(CMAKE_CROSSCOMPILING "FALSE") |
|||
|
|||
set(CMAKE_SYSTEM_LOADED 1) |
@ -0,0 +1,508 @@ |
|||
#ifdef __cplusplus |
|||
# error "A C++ compiler has been selected for C." |
|||
#endif |
|||
|
|||
#if defined(__18CXX) |
|||
# define ID_VOID_MAIN |
|||
#endif |
|||
|
|||
|
|||
/* Version number components: V=Version, R=Revision, P=Patch |
|||
Version date components: YYYY=Year, MM=Month, DD=Day */ |
|||
|
|||
#if defined(__INTEL_COMPILER) || defined(__ICC) |
|||
# define COMPILER_ID "Intel" |
|||
# if defined(_MSC_VER) |
|||
# define SIMULATE_ID "MSVC" |
|||
# endif |
|||
/* __INTEL_COMPILER = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) |
|||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) |
|||
# if defined(__INTEL_COMPILER_UPDATE) |
|||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) |
|||
# else |
|||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) |
|||
# endif |
|||
# if defined(__INTEL_COMPILER_BUILD_DATE) |
|||
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ |
|||
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) |
|||
# endif |
|||
# if defined(_MSC_VER) |
|||
/* _MSC_VER = VVRR */ |
|||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) |
|||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) |
|||
# endif |
|||
|
|||
#elif defined(__PATHCC__) |
|||
# define COMPILER_ID "PathScale" |
|||
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) |
|||
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) |
|||
# if defined(__PATHCC_PATCHLEVEL__) |
|||
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) |
|||
# endif |
|||
|
|||
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) |
|||
# define COMPILER_ID "Embarcadero" |
|||
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) |
|||
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) |
|||
# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__ & 0xFFFF) |
|||
|
|||
#elif defined(__BORLANDC__) |
|||
# define COMPILER_ID "Borland" |
|||
/* __BORLANDC__ = 0xVRR */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) |
|||
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) |
|||
|
|||
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 |
|||
# define COMPILER_ID "Watcom" |
|||
/* __WATCOMC__ = VVRR */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) |
|||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) |
|||
# if (__WATCOMC__ % 10) > 0 |
|||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) |
|||
# endif |
|||
|
|||
#elif defined(__WATCOMC__) |
|||
# define COMPILER_ID "OpenWatcom" |
|||
/* __WATCOMC__ = VVRP + 1100 */ |
|||
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) |
|||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) |
|||
# if (__WATCOMC__ % 10) > 0 |
|||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) |
|||
# endif |
|||
|
|||
#elif defined(__SUNPRO_C) |
|||
# define COMPILER_ID "SunPro" |
|||
# if __SUNPRO_C >= 0x5100 |
|||
/* __SUNPRO_C = 0xVRRP */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) |
|||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) |
|||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) |
|||
# else |
|||
/* __SUNPRO_CC = 0xVRP */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) |
|||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) |
|||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) |
|||
# endif |
|||
|
|||
#elif defined(__HP_cc) |
|||
# define COMPILER_ID "HP" |
|||
/* __HP_cc = VVRRPP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) |
|||
# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) |
|||
# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) |
|||
|
|||
#elif defined(__DECC) |
|||
# define COMPILER_ID "Compaq" |
|||
/* __DECC_VER = VVRRTPPPP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) |
|||
# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) |
|||
# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) |
|||
|
|||
#elif defined(__IBMC__) && defined(__COMPILER_VER__) |
|||
# define COMPILER_ID "zOS" |
|||
/* __IBMC__ = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) |
|||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) |
|||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) |
|||
|
|||
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 |
|||
# define COMPILER_ID "XL" |
|||
/* __IBMC__ = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) |
|||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) |
|||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) |
|||
|
|||
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 |
|||
# define COMPILER_ID "VisualAge" |
|||
/* __IBMC__ = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) |
|||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) |
|||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) |
|||
|
|||
#elif defined(__PGI) |
|||
# define COMPILER_ID "PGI" |
|||
# define COMPILER_VERSION_MAJOR DEC(__PGIC__) |
|||
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) |
|||
# if defined(__PGIC_PATCHLEVEL__) |
|||
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) |
|||
# endif |
|||
|
|||
#elif defined(_CRAYC) |
|||
# define COMPILER_ID "Cray" |
|||
# define COMPILER_VERSION_MAJOR DEC(_RELEASE) |
|||
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) |
|||
|
|||
#elif defined(__TI_COMPILER_VERSION__) |
|||
# define COMPILER_ID "TI" |
|||
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) |
|||
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) |
|||
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) |
|||
|
|||
#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) |
|||
# define COMPILER_ID "Fujitsu" |
|||
|
|||
#elif defined(__TINYC__) |
|||
# define COMPILER_ID "TinyCC" |
|||
|
|||
#elif defined(__SCO_VERSION__) |
|||
# define COMPILER_ID "SCO" |
|||
|
|||
#elif defined(__clang__) && defined(__apple_build_version__) |
|||
# define COMPILER_ID "AppleClang" |
|||
# if defined(_MSC_VER) |
|||
# define SIMULATE_ID "MSVC" |
|||
# endif |
|||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__) |
|||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__) |
|||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) |
|||
# if defined(_MSC_VER) |
|||
/* _MSC_VER = VVRR */ |
|||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) |
|||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) |
|||
# endif |
|||
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) |
|||
|
|||
#elif defined(__clang__) |
|||
# define COMPILER_ID "Clang" |
|||
# if defined(_MSC_VER) |
|||
# define SIMULATE_ID "MSVC" |
|||
# endif |
|||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__) |
|||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__) |
|||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) |
|||
# if defined(_MSC_VER) |
|||
/* _MSC_VER = VVRR */ |
|||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) |
|||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) |
|||
# endif |
|||
|
|||
#elif defined(__GNUC__) |
|||
# define COMPILER_ID "GNU" |
|||
# define COMPILER_VERSION_MAJOR DEC(__GNUC__) |
|||
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) |
|||
# if defined(__GNUC_PATCHLEVEL__) |
|||
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) |
|||
# endif |
|||
|
|||
#elif defined(_MSC_VER) |
|||
# define COMPILER_ID "MSVC" |
|||
/* _MSC_VER = VVRR */ |
|||
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) |
|||
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) |
|||
# if defined(_MSC_FULL_VER) |
|||
# if _MSC_VER >= 1400 |
|||
/* _MSC_FULL_VER = VVRRPPPPP */ |
|||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) |
|||
# else |
|||
/* _MSC_FULL_VER = VVRRPPPP */ |
|||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) |
|||
# endif |
|||
# endif |
|||
# if defined(_MSC_BUILD) |
|||
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) |
|||
# endif |
|||
|
|||
#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) |
|||
# define COMPILER_ID "ADSP" |
|||
#if defined(__VISUALDSPVERSION__) |
|||
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) |
|||
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) |
|||
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) |
|||
#endif |
|||
|
|||
#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) |
|||
# define COMPILER_ID "IAR" |
|||
|
|||
#elif defined(SDCC) |
|||
# define COMPILER_ID "SDCC" |
|||
/* SDCC = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(SDCC/100) |
|||
# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) |
|||
# define COMPILER_VERSION_PATCH DEC(SDCC % 10) |
|||
|
|||
#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) |
|||
# define COMPILER_ID "MIPSpro" |
|||
# if defined(_SGI_COMPILER_VERSION) |
|||
/* _SGI_COMPILER_VERSION = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) |
|||
# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) |
|||
# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) |
|||
# else |
|||
/* _COMPILER_VERSION = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) |
|||
# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) |
|||
# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) |
|||
# endif |
|||
|
|||
|
|||
/* These compilers are either not known or too old to define an |
|||
identification macro. Try to identify the platform and guess that |
|||
it is the native compiler. */ |
|||
#elif defined(__sgi) |
|||
# define COMPILER_ID "MIPSpro" |
|||
|
|||
#elif defined(__hpux) || defined(__hpua) |
|||
# define COMPILER_ID "HP" |
|||
|
|||
#else /* unknown compiler */ |
|||
# define COMPILER_ID "" |
|||
#endif |
|||
|
|||
/* Construct the string literal in pieces to prevent the source from |
|||
getting matched. Store it in a pointer rather than an array |
|||
because some compilers will just produce instructions to fill the |
|||
array rather than assigning a pointer to a static array. */ |
|||
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; |
|||
#ifdef SIMULATE_ID |
|||
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; |
|||
#endif |
|||
|
|||
#ifdef __QNXNTO__ |
|||
char const* qnxnto = "INFO" ":" "qnxnto[]"; |
|||
#endif |
|||
|
|||
#define STRINGIFY_HELPER(X) #X |
|||
#define STRINGIFY(X) STRINGIFY_HELPER(X) |
|||
|
|||
/* Identify known platforms by name. */ |
|||
#if defined(__linux) || defined(__linux__) || defined(linux) |
|||
# define PLATFORM_ID "Linux" |
|||
|
|||
#elif defined(__CYGWIN__) |
|||
# define PLATFORM_ID "Cygwin" |
|||
|
|||
#elif defined(__MINGW32__) |
|||
# define PLATFORM_ID "MinGW" |
|||
|
|||
#elif defined(__APPLE__) |
|||
# define PLATFORM_ID "Darwin" |
|||
|
|||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) |
|||
# define PLATFORM_ID "Windows" |
|||
|
|||
#elif defined(__FreeBSD__) || defined(__FreeBSD) |
|||
# define PLATFORM_ID "FreeBSD" |
|||
|
|||
#elif defined(__NetBSD__) || defined(__NetBSD) |
|||
# define PLATFORM_ID "NetBSD" |
|||
|
|||
#elif defined(__OpenBSD__) || defined(__OPENBSD) |
|||
# define PLATFORM_ID "OpenBSD" |
|||
|
|||
#elif defined(__sun) || defined(sun) |
|||
# define PLATFORM_ID "SunOS" |
|||
|
|||
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) |
|||
# define PLATFORM_ID "AIX" |
|||
|
|||
#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) |
|||
# define PLATFORM_ID "IRIX" |
|||
|
|||
#elif defined(__hpux) || defined(__hpux__) |
|||
# define PLATFORM_ID "HP-UX" |
|||
|
|||
#elif defined(__HAIKU__) |
|||
# define PLATFORM_ID "Haiku" |
|||
|
|||
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) |
|||
# define PLATFORM_ID "BeOS" |
|||
|
|||
#elif defined(__QNX__) || defined(__QNXNTO__) |
|||
# define PLATFORM_ID "QNX" |
|||
|
|||
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) |
|||
# define PLATFORM_ID "Tru64" |
|||
|
|||
#elif defined(__riscos) || defined(__riscos__) |
|||
# define PLATFORM_ID "RISCos" |
|||
|
|||
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) |
|||
# define PLATFORM_ID "SINIX" |
|||
|
|||
#elif defined(__UNIX_SV__) |
|||
# define PLATFORM_ID "UNIX_SV" |
|||
|
|||
#elif defined(__bsdos__) |
|||
# define PLATFORM_ID "BSDOS" |
|||
|
|||
#elif defined(_MPRAS) || defined(MPRAS) |
|||
# define PLATFORM_ID "MP-RAS" |
|||
|
|||
#elif defined(__osf) || defined(__osf__) |
|||
# define PLATFORM_ID "OSF1" |
|||
|
|||
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) |
|||
# define PLATFORM_ID "SCO_SV" |
|||
|
|||
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) |
|||
# define PLATFORM_ID "ULTRIX" |
|||
|
|||
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) |
|||
# define PLATFORM_ID "Xenix" |
|||
|
|||
#elif defined(__WATCOMC__) |
|||
# if defined(__LINUX__) |
|||
# define PLATFORM_ID "Linux" |
|||
|
|||
# elif defined(__DOS__) |
|||
# define PLATFORM_ID "DOS" |
|||
|
|||
# elif defined(__OS2__) |
|||
# define PLATFORM_ID "OS2" |
|||
|
|||
# elif defined(__WINDOWS__) |
|||
# define PLATFORM_ID "Windows3x" |
|||
|
|||
# else /* unknown platform */ |
|||
# define PLATFORM_ID "" |
|||
# endif |
|||
|
|||
#else /* unknown platform */ |
|||
# define PLATFORM_ID "" |
|||
|
|||
#endif |
|||
|
|||
/* For windows compilers MSVC and Intel we can determine |
|||
the architecture of the compiler being used. This is because |
|||
the compilers do not have flags that can change the architecture, |
|||
but rather depend on which compiler is being used |
|||
*/ |
|||
#if defined(_WIN32) && defined(_MSC_VER) |
|||
# if defined(_M_IA64) |
|||
# define ARCHITECTURE_ID "IA64" |
|||
|
|||
# elif defined(_M_X64) || defined(_M_AMD64) |
|||
# define ARCHITECTURE_ID "x64" |
|||
|
|||
# elif defined(_M_IX86) |
|||
# define ARCHITECTURE_ID "X86" |
|||
|
|||
# elif defined(_M_ARM) |
|||
# if _M_ARM == 4 |
|||
# define ARCHITECTURE_ID "ARMV4I" |
|||
# elif _M_ARM == 5 |
|||
# define ARCHITECTURE_ID "ARMV5I" |
|||
# else |
|||
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) |
|||
# endif |
|||
|
|||
# elif defined(_M_MIPS) |
|||
# define ARCHITECTURE_ID "MIPS" |
|||
|
|||
# elif defined(_M_SH) |
|||
# define ARCHITECTURE_ID "SHx" |
|||
|
|||
# else /* unknown architecture */ |
|||
# define ARCHITECTURE_ID "" |
|||
# endif |
|||
|
|||
#elif defined(__WATCOMC__) |
|||
# if defined(_M_I86) |
|||
# define ARCHITECTURE_ID "I86" |
|||
|
|||
# elif defined(_M_IX86) |
|||
# define ARCHITECTURE_ID "X86" |
|||
|
|||
# else /* unknown architecture */ |
|||
# define ARCHITECTURE_ID "" |
|||
# endif |
|||
|
|||
#else |
|||
# define ARCHITECTURE_ID "" |
|||
#endif |
|||
|
|||
/* Convert integer to decimal digit literals. */ |
|||
#define DEC(n) \ |
|||
('0' + (((n) / 10000000)%10)), \ |
|||
('0' + (((n) / 1000000)%10)), \ |
|||
('0' + (((n) / 100000)%10)), \ |
|||
('0' + (((n) / 10000)%10)), \ |
|||
('0' + (((n) / 1000)%10)), \ |
|||
('0' + (((n) / 100)%10)), \ |
|||
('0' + (((n) / 10)%10)), \ |
|||
('0' + ((n) % 10)) |
|||
|
|||
/* Convert integer to hex digit literals. */ |
|||
#define HEX(n) \ |
|||
('0' + ((n)>>28 & 0xF)), \ |
|||
('0' + ((n)>>24 & 0xF)), \ |
|||
('0' + ((n)>>20 & 0xF)), \ |
|||
('0' + ((n)>>16 & 0xF)), \ |
|||
('0' + ((n)>>12 & 0xF)), \ |
|||
('0' + ((n)>>8 & 0xF)), \ |
|||
('0' + ((n)>>4 & 0xF)), \ |
|||
('0' + ((n) & 0xF)) |
|||
|
|||
/* Construct a string literal encoding the version number components. */ |
|||
#ifdef COMPILER_VERSION_MAJOR |
|||
char const info_version[] = { |
|||
'I', 'N', 'F', 'O', ':', |
|||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', |
|||
COMPILER_VERSION_MAJOR, |
|||
# ifdef COMPILER_VERSION_MINOR |
|||
'.', COMPILER_VERSION_MINOR, |
|||
# ifdef COMPILER_VERSION_PATCH |
|||
'.', COMPILER_VERSION_PATCH, |
|||
# ifdef COMPILER_VERSION_TWEAK |
|||
'.', COMPILER_VERSION_TWEAK, |
|||
# endif |
|||
# endif |
|||
# endif |
|||
']','\0'}; |
|||
#endif |
|||
|
|||
/* Construct a string literal encoding the version number components. */ |
|||
#ifdef SIMULATE_VERSION_MAJOR |
|||
char const info_simulate_version[] = { |
|||
'I', 'N', 'F', 'O', ':', |
|||
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', |
|||
SIMULATE_VERSION_MAJOR, |
|||
# ifdef SIMULATE_VERSION_MINOR |
|||
'.', SIMULATE_VERSION_MINOR, |
|||
# ifdef SIMULATE_VERSION_PATCH |
|||
'.', SIMULATE_VERSION_PATCH, |
|||
# ifdef SIMULATE_VERSION_TWEAK |
|||
'.', SIMULATE_VERSION_TWEAK, |
|||
# endif |
|||
# endif |
|||
# endif |
|||
']','\0'}; |
|||
#endif |
|||
|
|||
/* Construct the string literal in pieces to prevent the source from |
|||
getting matched. Store it in a pointer rather than an array |
|||
because some compilers will just produce instructions to fill the |
|||
array rather than assigning a pointer to a static array. */ |
|||
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; |
|||
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; |
|||
|
|||
|
|||
|
|||
|
|||
/*--------------------------------------------------------------------------*/ |
|||
|
|||
#ifdef ID_VOID_MAIN |
|||
void main() {} |
|||
#else |
|||
int main(int argc, char* argv[]) |
|||
{ |
|||
int require = 0; |
|||
require += info_compiler[argc]; |
|||
require += info_platform[argc]; |
|||
require += info_arch[argc]; |
|||
#ifdef COMPILER_VERSION_MAJOR |
|||
require += info_version[argc]; |
|||
#endif |
|||
#ifdef SIMULATE_ID |
|||
require += info_simulate[argc]; |
|||
#endif |
|||
#ifdef SIMULATE_VERSION_MAJOR |
|||
require += info_simulate_version[argc]; |
|||
#endif |
|||
(void)argv; |
|||
return require; |
|||
} |
|||
#endif |
Binary file not shown.
@ -0,0 +1,498 @@ |
|||
/* This source file must have a .cpp extension so that all C++ compilers
|
|||
recognize the extension without flags. Borland does not know .cxx for |
|||
example. */ |
|||
#ifndef __cplusplus
|
|||
# error "A C compiler has been selected for C++."
|
|||
#endif
|
|||
|
|||
|
|||
/* Version number components: V=Version, R=Revision, P=Patch
|
|||
Version date components: YYYY=Year, MM=Month, DD=Day */ |
|||
|
|||
#if defined(__COMO__)
|
|||
# define COMPILER_ID "Comeau"
|
|||
/* __COMO_VERSION__ = VRR */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
|
|||
# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
|
|||
|
|||
#elif defined(__INTEL_COMPILER) || defined(__ICC)
|
|||
# define COMPILER_ID "Intel"
|
|||
# if defined(_MSC_VER)
|
|||
# define SIMULATE_ID "MSVC"
|
|||
# endif
|
|||
/* __INTEL_COMPILER = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
|
|||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
|
|||
# if defined(__INTEL_COMPILER_UPDATE)
|
|||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
|
|||
# else
|
|||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
|
|||
# endif
|
|||
# if defined(__INTEL_COMPILER_BUILD_DATE)
|
|||
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ |
|||
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
|
|||
# endif
|
|||
# if defined(_MSC_VER)
|
|||
/* _MSC_VER = VVRR */ |
|||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
|||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
|||
# endif
|
|||
|
|||
#elif defined(__PATHCC__)
|
|||
# define COMPILER_ID "PathScale"
|
|||
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
|
|||
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
|
|||
# if defined(__PATHCC_PATCHLEVEL__)
|
|||
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
|
|||
# endif
|
|||
|
|||
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
|
|||
# define COMPILER_ID "Embarcadero"
|
|||
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
|
|||
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
|
|||
# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__ & 0xFFFF)
|
|||
|
|||
#elif defined(__BORLANDC__)
|
|||
# define COMPILER_ID "Borland"
|
|||
/* __BORLANDC__ = 0xVRR */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
|
|||
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
|
|||
|
|||
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
|
|||
# define COMPILER_ID "Watcom"
|
|||
/* __WATCOMC__ = VVRR */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
|
|||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
|||
# if (__WATCOMC__ % 10) > 0
|
|||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
|||
# endif
|
|||
|
|||
#elif defined(__WATCOMC__)
|
|||
# define COMPILER_ID "OpenWatcom"
|
|||
/* __WATCOMC__ = VVRP + 1100 */ |
|||
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
|
|||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
|||
# if (__WATCOMC__ % 10) > 0
|
|||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
|||
# endif
|
|||
|
|||
#elif defined(__SUNPRO_CC)
|
|||
# define COMPILER_ID "SunPro"
|
|||
# if __SUNPRO_CC >= 0x5100
|
|||
/* __SUNPRO_CC = 0xVRRP */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
|
|||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
|
|||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
|
|||
# else
|
|||
/* __SUNPRO_CC = 0xVRP */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
|
|||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
|
|||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
|
|||
# endif
|
|||
|
|||
#elif defined(__HP_aCC)
|
|||
# define COMPILER_ID "HP"
|
|||
/* __HP_aCC = VVRRPP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
|
|||
# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
|
|||
# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
|
|||
|
|||
#elif defined(__DECCXX)
|
|||
# define COMPILER_ID "Compaq"
|
|||
/* __DECCXX_VER = VVRRTPPPP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
|
|||
# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
|
|||
# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
|
|||
|
|||
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
|
|||
# define COMPILER_ID "zOS"
|
|||
/* __IBMCPP__ = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
|
|||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
|
|||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
|
|||
|
|||
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
|
|||
# define COMPILER_ID "XL"
|
|||
/* __IBMCPP__ = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
|
|||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
|
|||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
|
|||
|
|||
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
|
|||
# define COMPILER_ID "VisualAge"
|
|||
/* __IBMCPP__ = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
|
|||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
|
|||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
|
|||
|
|||
#elif defined(__PGI)
|
|||
# define COMPILER_ID "PGI"
|
|||
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
|
|||
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
|
|||
# if defined(__PGIC_PATCHLEVEL__)
|
|||
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
|
|||
# endif
|
|||
|
|||
#elif defined(_CRAYC)
|
|||
# define COMPILER_ID "Cray"
|
|||
# define COMPILER_VERSION_MAJOR DEC(_RELEASE)
|
|||
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
|
|||
|
|||
#elif defined(__TI_COMPILER_VERSION__)
|
|||
# define COMPILER_ID "TI"
|
|||
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
|
|||
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
|
|||
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
|
|||
|
|||
#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
|
|||
# define COMPILER_ID "Fujitsu"
|
|||
|
|||
#elif defined(__SCO_VERSION__)
|
|||
# define COMPILER_ID "SCO"
|
|||
|
|||
#elif defined(__clang__) && defined(__apple_build_version__)
|
|||
# define COMPILER_ID "AppleClang"
|
|||
# if defined(_MSC_VER)
|
|||
# define SIMULATE_ID "MSVC"
|
|||
# endif
|
|||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
|||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
|||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
|||
# if defined(_MSC_VER)
|
|||
/* _MSC_VER = VVRR */ |
|||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
|||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
|||
# endif
|
|||
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
|
|||
|
|||
#elif defined(__clang__)
|
|||
# define COMPILER_ID "Clang"
|
|||
# if defined(_MSC_VER)
|
|||
# define SIMULATE_ID "MSVC"
|
|||
# endif
|
|||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
|||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
|||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
|||
# if defined(_MSC_VER)
|
|||
/* _MSC_VER = VVRR */ |
|||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
|||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
|||
# endif
|
|||
|
|||
#elif defined(__GNUC__)
|
|||
# define COMPILER_ID "GNU"
|
|||
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
|
|||
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
|
|||
# if defined(__GNUC_PATCHLEVEL__)
|
|||
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
|||
# endif
|
|||
|
|||
#elif defined(_MSC_VER)
|
|||
# define COMPILER_ID "MSVC"
|
|||
/* _MSC_VER = VVRR */ |
|||
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
|
|||
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
|
|||
# if defined(_MSC_FULL_VER)
|
|||
# if _MSC_VER >= 1400
|
|||
/* _MSC_FULL_VER = VVRRPPPPP */ |
|||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
|
|||
# else
|
|||
/* _MSC_FULL_VER = VVRRPPPP */ |
|||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
|
|||
# endif
|
|||
# endif
|
|||
# if defined(_MSC_BUILD)
|
|||
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
|
|||
# endif
|
|||
|
|||
#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
|
|||
# define COMPILER_ID "ADSP"
|
|||
#if defined(__VISUALDSPVERSION__)
|
|||
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */ |
|||
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
|
|||
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
|
|||
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
|
|||
#endif
|
|||
|
|||
#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
|
|||
# define COMPILER_ID "IAR"
|
|||
|
|||
#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
|
|||
# define COMPILER_ID "MIPSpro"
|
|||
# if defined(_SGI_COMPILER_VERSION)
|
|||
/* _SGI_COMPILER_VERSION = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
|
|||
# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
|
|||
# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10)
|
|||
# else
|
|||
/* _COMPILER_VERSION = VRP */ |
|||
# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
|
|||
# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
|
|||
# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10)
|
|||
# endif
|
|||
|
|||
|
|||
/* These compilers are either not known or too old to define an
|
|||
identification macro. Try to identify the platform and guess that |
|||
it is the native compiler. */ |
|||
#elif defined(__sgi)
|
|||
# define COMPILER_ID "MIPSpro"
|
|||
|
|||
#elif defined(__hpux) || defined(__hpua)
|
|||
# define COMPILER_ID "HP"
|
|||
|
|||
#else /* unknown compiler */
|
|||
# define COMPILER_ID ""
|
|||
#endif
|
|||
|
|||
/* Construct the string literal in pieces to prevent the source from
|
|||
getting matched. Store it in a pointer rather than an array |
|||
because some compilers will just produce instructions to fill the |
|||
array rather than assigning a pointer to a static array. */ |
|||
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; |
|||
#ifdef SIMULATE_ID
|
|||
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; |
|||
#endif
|
|||
|
|||
#ifdef __QNXNTO__
|
|||
char const* qnxnto = "INFO" ":" "qnxnto[]"; |
|||
#endif
|
|||
|
|||
#define STRINGIFY_HELPER(X) #X
|
|||
#define STRINGIFY(X) STRINGIFY_HELPER(X)
|
|||
|
|||
/* Identify known platforms by name. */ |
|||
#if defined(__linux) || defined(__linux__) || defined(linux)
|
|||
# define PLATFORM_ID "Linux"
|
|||
|
|||
#elif defined(__CYGWIN__)
|
|||
# define PLATFORM_ID "Cygwin"
|
|||
|
|||
#elif defined(__MINGW32__)
|
|||
# define PLATFORM_ID "MinGW"
|
|||
|
|||
#elif defined(__APPLE__)
|
|||
# define PLATFORM_ID "Darwin"
|
|||
|
|||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
|
|||
# define PLATFORM_ID "Windows"
|
|||
|
|||
#elif defined(__FreeBSD__) || defined(__FreeBSD)
|
|||
# define PLATFORM_ID "FreeBSD"
|
|||
|
|||
#elif defined(__NetBSD__) || defined(__NetBSD)
|
|||
# define PLATFORM_ID "NetBSD"
|
|||
|
|||
#elif defined(__OpenBSD__) || defined(__OPENBSD)
|
|||
# define PLATFORM_ID "OpenBSD"
|
|||
|
|||
#elif defined(__sun) || defined(sun)
|
|||
# define PLATFORM_ID "SunOS"
|
|||
|
|||
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
|
|||
# define PLATFORM_ID "AIX"
|
|||
|
|||
#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
|
|||
# define PLATFORM_ID "IRIX"
|
|||
|
|||
#elif defined(__hpux) || defined(__hpux__)
|
|||
# define PLATFORM_ID "HP-UX"
|
|||
|
|||
#elif defined(__HAIKU__)
|
|||
# define PLATFORM_ID "Haiku"
|
|||
|
|||
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
|
|||
# define PLATFORM_ID "BeOS"
|
|||
|
|||
#elif defined(__QNX__) || defined(__QNXNTO__)
|
|||
# define PLATFORM_ID "QNX"
|
|||
|
|||
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
|
|||
# define PLATFORM_ID "Tru64"
|
|||
|
|||
#elif defined(__riscos) || defined(__riscos__)
|
|||
# define PLATFORM_ID "RISCos"
|
|||
|
|||
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
|
|||
# define PLATFORM_ID "SINIX"
|
|||
|
|||
#elif defined(__UNIX_SV__)
|
|||
# define PLATFORM_ID "UNIX_SV"
|
|||
|
|||
#elif defined(__bsdos__)
|
|||
# define PLATFORM_ID "BSDOS"
|
|||
|
|||
#elif defined(_MPRAS) || defined(MPRAS)
|
|||
# define PLATFORM_ID "MP-RAS"
|
|||
|
|||
#elif defined(__osf) || defined(__osf__)
|
|||
# define PLATFORM_ID "OSF1"
|
|||
|
|||
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
|
|||
# define PLATFORM_ID "SCO_SV"
|
|||
|
|||
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
|
|||
# define PLATFORM_ID "ULTRIX"
|
|||
|
|||
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
|
|||
# define PLATFORM_ID "Xenix"
|
|||
|
|||
#elif defined(__WATCOMC__)
|
|||
# if defined(__LINUX__)
|
|||
# define PLATFORM_ID "Linux"
|
|||
|
|||
# elif defined(__DOS__)
|
|||
# define PLATFORM_ID "DOS"
|
|||
|
|||
# elif defined(__OS2__)
|
|||
# define PLATFORM_ID "OS2"
|
|||
|
|||
# elif defined(__WINDOWS__)
|
|||
# define PLATFORM_ID "Windows3x"
|
|||
|
|||
# else /* unknown platform */
|
|||
# define PLATFORM_ID ""
|
|||
# endif
|
|||
|
|||
#else /* unknown platform */
|
|||
# define PLATFORM_ID ""
|
|||
|
|||
#endif
|
|||
|
|||
/* For windows compilers MSVC and Intel we can determine
|
|||
the architecture of the compiler being used. This is because |
|||
the compilers do not have flags that can change the architecture, |
|||
but rather depend on which compiler is being used |
|||
*/ |
|||
#if defined(_WIN32) && defined(_MSC_VER)
|
|||
# if defined(_M_IA64)
|
|||
# define ARCHITECTURE_ID "IA64"
|
|||
|
|||
# elif defined(_M_X64) || defined(_M_AMD64)
|
|||
# define ARCHITECTURE_ID "x64"
|
|||
|
|||
# elif defined(_M_IX86)
|
|||
# define ARCHITECTURE_ID "X86"
|
|||
|
|||
# elif defined(_M_ARM)
|
|||
# if _M_ARM == 4
|
|||
# define ARCHITECTURE_ID "ARMV4I"
|
|||
# elif _M_ARM == 5
|
|||
# define ARCHITECTURE_ID "ARMV5I"
|
|||
# else
|
|||
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
|
|||
# endif
|
|||
|
|||
# elif defined(_M_MIPS)
|
|||
# define ARCHITECTURE_ID "MIPS"
|
|||
|
|||
# elif defined(_M_SH)
|
|||
# define ARCHITECTURE_ID "SHx"
|
|||
|
|||
# else /* unknown architecture */
|
|||
# define ARCHITECTURE_ID ""
|
|||
# endif
|
|||
|
|||
#elif defined(__WATCOMC__)
|
|||
# if defined(_M_I86)
|
|||
# define ARCHITECTURE_ID "I86"
|
|||
|
|||
# elif defined(_M_IX86)
|
|||
# define ARCHITECTURE_ID "X86"
|
|||
|
|||
# else /* unknown architecture */
|
|||
# define ARCHITECTURE_ID ""
|
|||
# endif
|
|||
|
|||
#else
|
|||
# define ARCHITECTURE_ID ""
|
|||
#endif
|
|||
|
|||
/* Convert integer to decimal digit literals. */ |
|||
#define DEC(n) \
|
|||
('0' + (((n) / 10000000)%10)), \ |
|||
('0' + (((n) / 1000000)%10)), \ |
|||
('0' + (((n) / 100000)%10)), \ |
|||
('0' + (((n) / 10000)%10)), \ |
|||
('0' + (((n) / 1000)%10)), \ |
|||
('0' + (((n) / 100)%10)), \ |
|||
('0' + (((n) / 10)%10)), \ |
|||
('0' + ((n) % 10)) |
|||
|
|||
/* Convert integer to hex digit literals. */ |
|||
#define HEX(n) \
|
|||
('0' + ((n)>>28 & 0xF)), \ |
|||
('0' + ((n)>>24 & 0xF)), \ |
|||
('0' + ((n)>>20 & 0xF)), \ |
|||
('0' + ((n)>>16 & 0xF)), \ |
|||
('0' + ((n)>>12 & 0xF)), \ |
|||
('0' + ((n)>>8 & 0xF)), \ |
|||
('0' + ((n)>>4 & 0xF)), \ |
|||
('0' + ((n) & 0xF)) |
|||
|
|||
/* Construct a string literal encoding the version number components. */ |
|||
#ifdef COMPILER_VERSION_MAJOR
|
|||
char const info_version[] = { |
|||
'I', 'N', 'F', 'O', ':', |
|||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', |
|||
COMPILER_VERSION_MAJOR, |
|||
# ifdef COMPILER_VERSION_MINOR
|
|||
'.', COMPILER_VERSION_MINOR, |
|||
# ifdef COMPILER_VERSION_PATCH
|
|||
'.', COMPILER_VERSION_PATCH, |
|||
# ifdef COMPILER_VERSION_TWEAK
|
|||
'.', COMPILER_VERSION_TWEAK, |
|||
# endif
|
|||
# endif
|
|||
# endif
|
|||
']','\0'}; |
|||
#endif
|
|||
|
|||
/* Construct a string literal encoding the version number components. */ |
|||
#ifdef SIMULATE_VERSION_MAJOR
|
|||
char const info_simulate_version[] = { |
|||
'I', 'N', 'F', 'O', ':', |
|||
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', |
|||
SIMULATE_VERSION_MAJOR, |
|||
# ifdef SIMULATE_VERSION_MINOR
|
|||
'.', SIMULATE_VERSION_MINOR, |
|||
# ifdef SIMULATE_VERSION_PATCH
|
|||
'.', SIMULATE_VERSION_PATCH, |
|||
# ifdef SIMULATE_VERSION_TWEAK
|
|||
'.', SIMULATE_VERSION_TWEAK, |
|||
# endif
|
|||
# endif
|
|||
# endif
|
|||
']','\0'}; |
|||
#endif
|
|||
|
|||
/* Construct the string literal in pieces to prevent the source from
|
|||
getting matched. Store it in a pointer rather than an array |
|||
because some compilers will just produce instructions to fill the |
|||
array rather than assigning a pointer to a static array. */ |
|||
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; |
|||
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; |
|||
|
|||
|
|||
|
|||
|
|||
/*--------------------------------------------------------------------------*/ |
|||
|
|||
int main(int argc, char* argv[]) |
|||
{ |
|||
int require = 0; |
|||
require += info_compiler[argc]; |
|||
require += info_platform[argc]; |
|||
#ifdef COMPILER_VERSION_MAJOR
|
|||
require += info_version[argc]; |
|||
#endif
|
|||
#ifdef SIMULATE_ID
|
|||
require += info_simulate[argc]; |
|||
#endif
|
|||
#ifdef SIMULATE_VERSION_MAJOR
|
|||
require += info_simulate_version[argc]; |
|||
#endif
|
|||
(void)argv; |
|||
return require; |
|||
} |
Binary file not shown.
@ -0,0 +1,777 @@ |
|||
The system is: Linux - 3.2.0-40-generic - x86_64 |
|||
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. |
|||
Compiler: /usr/bin/cc |
|||
Build flags: |
|||
Id flags: |
|||
|
|||
The output was: |
|||
0 |
|||
|
|||
|
|||
Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" |
|||
|
|||
The C compiler identification is GNU, found in "/work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/2.8.12.2/CompilerIdC/a.out" |
|||
|
|||
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. |
|||
Compiler: /usr/bin/c++ |
|||
Build flags: |
|||
Id flags: |
|||
|
|||
The output was: |
|||
0 |
|||
|
|||
|
|||
Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" |
|||
|
|||
The CXX compiler identification is GNU, found in "/work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/2.8.12.2/CompilerIdCXX/a.out" |
|||
|
|||
Determining if the C compiler works passed with the following output: |
|||
Change Dir: /work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp |
|||
|
|||
Run Build Command:/usr/bin/gmake "cmTryCompileExec3512762732/fast" |
|||
/usr/bin/gmake -f CMakeFiles/cmTryCompileExec3512762732.dir/build.make CMakeFiles/cmTryCompileExec3512762732.dir/build |
|||
gmake[1]: Entering directory `/auto/sigma0/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp' |
|||
/usr/bin/cmake -E cmake_progress_report /work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp/CMakeFiles 1 |
|||
Building C object CMakeFiles/cmTryCompileExec3512762732.dir/testCCompiler.c.o |
|||
/usr/bin/cc -o CMakeFiles/cmTryCompileExec3512762732.dir/testCCompiler.c.o -c /work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp/testCCompiler.c |
|||
Linking C executable cmTryCompileExec3512762732 |
|||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3512762732.dir/link.txt --verbose=1 |
|||
/usr/bin/cc CMakeFiles/cmTryCompileExec3512762732.dir/testCCompiler.c.o -o cmTryCompileExec3512762732 -rdynamic |
|||
gmake[1]: Leaving directory `/auto/sigma0/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp' |
|||
|
|||
|
|||
Detecting C compiler ABI info compiled with the following output: |
|||
Change Dir: /work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp |
|||
|
|||
Run Build Command:/usr/bin/gmake "cmTryCompileExec2437466663/fast" |
|||
/usr/bin/gmake -f CMakeFiles/cmTryCompileExec2437466663.dir/build.make CMakeFiles/cmTryCompileExec2437466663.dir/build |
|||
gmake[1]: Entering directory `/auto/sigma0/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp' |
|||
/usr/bin/cmake -E cmake_progress_report /work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp/CMakeFiles 1 |
|||
Building C object CMakeFiles/cmTryCompileExec2437466663.dir/CMakeCCompilerABI.c.o |
|||
/usr/bin/cc -o CMakeFiles/cmTryCompileExec2437466663.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c |
|||
Linking C executable cmTryCompileExec2437466663 |
|||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec2437466663.dir/link.txt --verbose=1 |
|||
/usr/bin/cc -v CMakeFiles/cmTryCompileExec2437466663.dir/CMakeCCompilerABI.c.o -o cmTryCompileExec2437466663 -rdynamic |
|||
Using built-in specs. |
|||
Target: x86_64-redhat-linux |
|||
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux |
|||
Thread model: posix |
|||
gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) |
|||
COMPILER_PATH=/local/lcg/releases/LCGCMT/LCGCMT_76root6/LCG_Settings/../../../LCG_76root6/gcc/4.8.1/x86_64-slc6/lib/gcc/x86_64-unknown-linux-gnu/4.8.1/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/ |
|||
LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../:/lib/:/usr/lib/ |
|||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec2437466663' '-rdynamic' '-mtune=generic' |
|||
/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/collect2 --eh-frame-hdr --build-id -m elf_x86_64 --hash-style=gnu -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec2437466663 /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../.. CMakeFiles/cmTryCompileExec2437466663.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtend.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crtn.o |
|||
gmake[1]: Leaving directory `/auto/sigma0/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp' |
|||
|
|||
|
|||
Parsed C implicit link information from above output: |
|||
link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] |
|||
ignore line: [Change Dir: /work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp] |
|||
ignore line: [] |
|||
ignore line: [Run Build Command:/usr/bin/gmake "cmTryCompileExec2437466663/fast"] |
|||
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTryCompileExec2437466663.dir/build.make CMakeFiles/cmTryCompileExec2437466663.dir/build] |
|||
ignore line: [gmake[1]: Entering directory `/auto/sigma0/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp'] |
|||
ignore line: [/usr/bin/cmake -E cmake_progress_report /work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp/CMakeFiles 1] |
|||
ignore line: [Building C object CMakeFiles/cmTryCompileExec2437466663.dir/CMakeCCompilerABI.c.o] |
|||
ignore line: [/usr/bin/cc -o CMakeFiles/cmTryCompileExec2437466663.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c] |
|||
ignore line: [Linking C executable cmTryCompileExec2437466663] |
|||
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec2437466663.dir/link.txt --verbose=1] |
|||
ignore line: [/usr/bin/cc -v CMakeFiles/cmTryCompileExec2437466663.dir/CMakeCCompilerABI.c.o -o cmTryCompileExec2437466663 -rdynamic ] |
|||
ignore line: [Using built-in specs.] |
|||
ignore line: [Target: x86_64-redhat-linux] |
|||
ignore line: [Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux] |
|||
ignore line: [Thread model: posix] |
|||
ignore line: [gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ] |
|||
ignore line: [COMPILER_PATH=/local/lcg/releases/LCGCMT/LCGCMT_76root6/LCG_Settings/../../../LCG_76root6/gcc/4.8.1/x86_64-slc6/lib/gcc/x86_64-unknown-linux-gnu/4.8.1/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/] |
|||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../:/lib/:/usr/lib/] |
|||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec2437466663' '-rdynamic' '-mtune=generic'] |
|||
link line: [ /usr/libexec/gcc/x86_64-redhat-linux/4.4.7/collect2 --eh-frame-hdr --build-id -m elf_x86_64 --hash-style=gnu -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec2437466663 /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../.. CMakeFiles/cmTryCompileExec2437466663.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtend.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crtn.o] |
|||
arg [/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/collect2] ==> ignore |
|||
arg [--eh-frame-hdr] ==> ignore |
|||
arg [--build-id] ==> ignore |
|||
arg [-m] ==> ignore |
|||
arg [elf_x86_64] ==> ignore |
|||
arg [--hash-style=gnu] ==> ignore |
|||
arg [-export-dynamic] ==> ignore |
|||
arg [-dynamic-linker] ==> ignore |
|||
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore |
|||
arg [-o] ==> ignore |
|||
arg [cmTryCompileExec2437466663] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crt1.o] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crti.o] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtbegin.o] ==> ignore |
|||
arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.4.7] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7] |
|||
arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.4.7] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7] |
|||
arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64] |
|||
arg [-L/lib/../lib64] ==> dir [/lib/../lib64] |
|||
arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64] |
|||
arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../..] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../..] |
|||
arg [CMakeFiles/cmTryCompileExec2437466663.dir/CMakeCCompilerABI.c.o] ==> ignore |
|||
arg [-lgcc] ==> lib [gcc] |
|||
arg [--as-needed] ==> ignore |
|||
arg [-lgcc_s] ==> lib [gcc_s] |
|||
arg [--no-as-needed] ==> ignore |
|||
arg [-lc] ==> lib [c] |
|||
arg [-lgcc] ==> lib [gcc] |
|||
arg [--as-needed] ==> ignore |
|||
arg [-lgcc_s] ==> lib [gcc_s] |
|||
arg [--no-as-needed] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtend.o] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crtn.o] ==> ignore |
|||
remove lib [gcc] |
|||
remove lib [gcc_s] |
|||
remove lib [gcc] |
|||
remove lib [gcc_s] |
|||
collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7] ==> [/usr/lib/gcc/x86_64-redhat-linux/4.4.7] |
|||
collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7] ==> [/usr/lib/gcc/x86_64-redhat-linux/4.4.7] |
|||
collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64] ==> [/usr/lib64] |
|||
collapse library dir [/lib/../lib64] ==> [/lib64] |
|||
collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64] |
|||
collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../..] ==> [/usr/lib] |
|||
implicit libs: [c] |
|||
implicit dirs: [/usr/lib/gcc/x86_64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib] |
|||
implicit fwks: [] |
|||
|
|||
|
|||
Determining if the CXX compiler works passed with the following output: |
|||
Change Dir: /work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp |
|||
|
|||
Run Build Command:/usr/bin/gmake "cmTryCompileExec1842514690/fast" |
|||
/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1842514690.dir/build.make CMakeFiles/cmTryCompileExec1842514690.dir/build |
|||
gmake[1]: Entering directory `/auto/sigma0/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp' |
|||
/usr/bin/cmake -E cmake_progress_report /work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp/CMakeFiles 1 |
|||
Building CXX object CMakeFiles/cmTryCompileExec1842514690.dir/testCXXCompiler.cxx.o |
|||
/usr/bin/c++ -o CMakeFiles/cmTryCompileExec1842514690.dir/testCXXCompiler.cxx.o -c /work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp/testCXXCompiler.cxx |
|||
Linking CXX executable cmTryCompileExec1842514690 |
|||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1842514690.dir/link.txt --verbose=1 |
|||
/usr/bin/c++ CMakeFiles/cmTryCompileExec1842514690.dir/testCXXCompiler.cxx.o -o cmTryCompileExec1842514690 -rdynamic |
|||
gmake[1]: Leaving directory `/auto/sigma0/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp' |
|||
|
|||
|
|||
Detecting CXX compiler ABI info compiled with the following output: |
|||
Change Dir: /work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp |
|||
|
|||
Run Build Command:/usr/bin/gmake "cmTryCompileExec1517364131/fast" |
|||
/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1517364131.dir/build.make CMakeFiles/cmTryCompileExec1517364131.dir/build |
|||
gmake[1]: Entering directory `/auto/sigma0/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp' |
|||
/usr/bin/cmake -E cmake_progress_report /work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp/CMakeFiles 1 |
|||
Building CXX object CMakeFiles/cmTryCompileExec1517364131.dir/CMakeCXXCompilerABI.cpp.o |
|||
/usr/bin/c++ -o CMakeFiles/cmTryCompileExec1517364131.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp |
|||
Linking CXX executable cmTryCompileExec1517364131 |
|||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1517364131.dir/link.txt --verbose=1 |
|||
/usr/bin/c++ -v CMakeFiles/cmTryCompileExec1517364131.dir/CMakeCXXCompilerABI.cpp.o -o cmTryCompileExec1517364131 -rdynamic |
|||
Using built-in specs. |
|||
Target: x86_64-redhat-linux |
|||
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux |
|||
Thread model: posix |
|||
gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) |
|||
COMPILER_PATH=/local/lcg/releases/LCGCMT/LCGCMT_76root6/LCG_Settings/../../../LCG_76root6/gcc/4.8.1/x86_64-slc6/lib/gcc/x86_64-unknown-linux-gnu/4.8.1/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/ |
|||
LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../:/lib/:/usr/lib/ |
|||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec1517364131' '-rdynamic' '-shared-libgcc' '-mtune=generic' |
|||
/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/collect2 --eh-frame-hdr --build-id -m elf_x86_64 --hash-style=gnu -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec1517364131 /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../.. CMakeFiles/cmTryCompileExec1517364131.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtend.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crtn.o |
|||
gmake[1]: Leaving directory `/auto/sigma0/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp' |
|||
|
|||
|
|||
Parsed CXX implicit link information from above output: |
|||
link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] |
|||
ignore line: [Change Dir: /work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp] |
|||
ignore line: [] |
|||
ignore line: [Run Build Command:/usr/bin/gmake "cmTryCompileExec1517364131/fast"] |
|||
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1517364131.dir/build.make CMakeFiles/cmTryCompileExec1517364131.dir/build] |
|||
ignore line: [gmake[1]: Entering directory `/auto/sigma0/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp'] |
|||
ignore line: [/usr/bin/cmake -E cmake_progress_report /work/leverington/SciFiMatG4/SciFiSim/CMakeFiles/CMakeTmp/CMakeFiles 1] |
|||
ignore line: [Building CXX object CMakeFiles/cmTryCompileExec1517364131.dir/CMakeCXXCompilerABI.cpp.o] |
|||
ignore line: [/usr/bin/c++ -o CMakeFiles/cmTryCompileExec1517364131.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp] |
|||
ignore line: [Linking CXX executable cmTryCompileExec1517364131] |
|||
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1517364131.dir/link.txt --verbose=1] |
|||
ignore line: [/usr/bin/c++ -v CMakeFiles/cmTryCompileExec1517364131.dir/CMakeCXXCompilerABI.cpp.o -o cmTryCompileExec1517364131 -rdynamic ] |
|||
ignore line: [Using built-in specs.] |
|||
ignore line: [Target: x86_64-redhat-linux] |
|||
ignore line: [Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux] |
|||
ignore line: [Thread model: posix] |
|||
ignore line: [gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ] |
|||
ignore line: [COMPILER_PATH=/local/lcg/releases/LCGCMT/LCGCMT_76root6/LCG_Settings/../../../LCG_76root6/gcc/4.8.1/x86_64-slc6/lib/gcc/x86_64-unknown-linux-gnu/4.8.1/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/] |
|||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../:/lib/:/usr/lib/] |
|||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec1517364131' '-rdynamic' '-shared-libgcc' '-mtune=generic'] |
|||
link line: [ /usr/libexec/gcc/x86_64-redhat-linux/4.4.7/collect2 --eh-frame-hdr --build-id -m elf_x86_64 --hash-style=gnu -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec1517364131 /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../.. CMakeFiles/cmTryCompileExec1517364131.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtend.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crtn.o] |
|||
arg [/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/collect2] ==> ignore |
|||
arg [--eh-frame-hdr] ==> ignore |
|||
arg [--build-id] ==> ignore |
|||
arg [-m] ==> ignore |
|||
arg [elf_x86_64] ==> ignore |
|||
arg [--hash-style=gnu] ==> ignore |
|||
arg [-export-dynamic] ==> ignore |
|||
arg [-dynamic-linker] ==> ignore |
|||
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore |
|||
arg [-o] ==> ignore |
|||
arg [cmTryCompileExec1517364131] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crt1.o] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crti.o] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtbegin.o] ==> ignore |
|||
arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.4.7] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7] |
|||
arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.4.7] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7] |
|||
arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64] |
|||
arg [-L/lib/../lib64] ==> dir [/lib/../lib64] |
|||
arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64] |
|||
arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../..] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../..] |
|||
arg [CMakeFiles/cmTryCompileExec1517364131.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore |
|||
arg [-lstdc++] ==> lib [stdc++] |
|||
arg [-lm] ==> lib [m] |
|||
arg [-lgcc_s] ==> lib [gcc_s] |
|||
arg [-lgcc] ==> lib [gcc] |
|||
arg [-lc] ==> lib [c] |
|||
arg [-lgcc_s] ==> lib [gcc_s] |
|||
arg [-lgcc] ==> lib [gcc] |
|||
arg [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtend.o] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crtn.o] ==> ignore |
|||
remove lib [gcc_s] |
|||
remove lib [gcc] |
|||
remove lib [gcc_s] |
|||
remove lib [gcc] |
|||
collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7] ==> [/usr/lib/gcc/x86_64-redhat-linux/4.4.7] |
|||
collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7] ==> [/usr/lib/gcc/x86_64-redhat-linux/4.4.7] |
|||
collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64] ==> [/usr/lib64] |
|||
collapse library dir [/lib/../lib64] ==> [/lib64] |
|||
collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64] |
|||
collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../..] ==> [/usr/lib] |
|||
implicit libs: [stdc++;m;c] |
|||
implicit dirs: [/usr/lib/gcc/x86_64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib] |
|||
implicit fwks: [] |
|||
|
|||
|
|||
The system is: Linux - 3.2.0-96-generic - x86_64 |
|||
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. |
|||
Compiler: /usr/bin/cc |
|||
Build flags: |
|||
Id flags: |
|||
|
|||
The output was: |
|||
0 |
|||
|
|||
|
|||
Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" |
|||
|
|||
The C compiler identification is GNU, found in "/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/3.3.2/CompilerIdC/a.out" |
|||
|
|||
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. |
|||
Compiler: /usr/bin/c++ |
|||
Build flags: |
|||
Id flags: |
|||
|
|||
The output was: |
|||
0 |
|||
|
|||
|
|||
Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" |
|||
|
|||
The CXX compiler identification is GNU, found in "/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/3.3.2/CompilerIdCXX/a.out" |
|||
|
|||
Determining if the C compiler works passed with the following output: |
|||
Change Dir: /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp |
|||
|
|||
Run Build Command:"/usr/bin/make" "cmTC_e6fd2/fast" |
|||
/usr/bin/make -f CMakeFiles/cmTC_e6fd2.dir/build.make CMakeFiles/cmTC_e6fd2.dir/build |
|||
make[1]: Entering directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
Building C object CMakeFiles/cmTC_e6fd2.dir/testCCompiler.c.o |
|||
/usr/bin/cc -o CMakeFiles/cmTC_e6fd2.dir/testCCompiler.c.o -c /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp/testCCompiler.c |
|||
Linking C executable cmTC_e6fd2 |
|||
/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e6fd2.dir/link.txt --verbose=1 |
|||
/usr/bin/cc CMakeFiles/cmTC_e6fd2.dir/testCCompiler.c.o -o cmTC_e6fd2 -rdynamic |
|||
make[1]: Leaving directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
|
|||
|
|||
Detecting C compiler ABI info compiled with the following output: |
|||
Change Dir: /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp |
|||
|
|||
Run Build Command:"/usr/bin/make" "cmTC_47e25/fast" |
|||
/usr/bin/make -f CMakeFiles/cmTC_47e25.dir/build.make CMakeFiles/cmTC_47e25.dir/build |
|||
make[1]: Entering directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
Building C object CMakeFiles/cmTC_47e25.dir/CMakeCCompilerABI.c.o |
|||
/usr/bin/cc -o CMakeFiles/cmTC_47e25.dir/CMakeCCompilerABI.c.o -c /home/leverington/Programs/cmake-3.3.2-Linux-x86_64/share/cmake-3.3/Modules/CMakeCCompilerABI.c |
|||
Linking C executable cmTC_47e25 |
|||
/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E cmake_link_script CMakeFiles/cmTC_47e25.dir/link.txt --verbose=1 |
|||
/usr/bin/cc -v CMakeFiles/cmTC_47e25.dir/CMakeCCompilerABI.c.o -o cmTC_47e25 -rdynamic |
|||
Using built-in specs. |
|||
COLLECT_GCC=/usr/bin/cc |
|||
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper |
|||
Target: x86_64-linux-gnu |
|||
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.1-2ubuntu1~12.04' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu |
|||
Thread model: posix |
|||
gcc version 4.8.1 (Ubuntu 4.8.1-2ubuntu1~12.04) |
|||
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/ |
|||
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../:/lib/:/usr/lib/ |
|||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_47e25' '-rdynamic' '-mtune=generic' '-march=x86-64' |
|||
/usr/lib/gcc/x86_64-linux-gnu/4.8/collect2 --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTC_47e25 /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. CMakeFiles/cmTC_47e25.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o |
|||
make[1]: Leaving directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
|
|||
|
|||
Parsed C implicit link information from above output: |
|||
link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] |
|||
ignore line: [Change Dir: /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp] |
|||
ignore line: [] |
|||
ignore line: [Run Build Command:"/usr/bin/make" "cmTC_47e25/fast"] |
|||
ignore line: [/usr/bin/make -f CMakeFiles/cmTC_47e25.dir/build.make CMakeFiles/cmTC_47e25.dir/build] |
|||
ignore line: [make[1]: Entering directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp'] |
|||
ignore line: [Building C object CMakeFiles/cmTC_47e25.dir/CMakeCCompilerABI.c.o] |
|||
ignore line: [/usr/bin/cc -o CMakeFiles/cmTC_47e25.dir/CMakeCCompilerABI.c.o -c /home/leverington/Programs/cmake-3.3.2-Linux-x86_64/share/cmake-3.3/Modules/CMakeCCompilerABI.c] |
|||
ignore line: [Linking C executable cmTC_47e25] |
|||
ignore line: [/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E cmake_link_script CMakeFiles/cmTC_47e25.dir/link.txt --verbose=1] |
|||
ignore line: [/usr/bin/cc -v CMakeFiles/cmTC_47e25.dir/CMakeCCompilerABI.c.o -o cmTC_47e25 -rdynamic ] |
|||
ignore line: [Using built-in specs.] |
|||
ignore line: [COLLECT_GCC=/usr/bin/cc] |
|||
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper] |
|||
ignore line: [Target: x86_64-linux-gnu] |
|||
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.1-2ubuntu1~12.04' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] |
|||
ignore line: [Thread model: posix] |
|||
ignore line: [gcc version 4.8.1 (Ubuntu 4.8.1-2ubuntu1~12.04) ] |
|||
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/] |
|||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../:/lib/:/usr/lib/] |
|||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_47e25' '-rdynamic' '-mtune=generic' '-march=x86-64'] |
|||
link line: [ /usr/lib/gcc/x86_64-linux-gnu/4.8/collect2 --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTC_47e25 /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. CMakeFiles/cmTC_47e25.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o] |
|||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/collect2] ==> ignore |
|||
arg [--sysroot=/] ==> ignore |
|||
arg [--build-id] ==> ignore |
|||
arg [--eh-frame-hdr] ==> ignore |
|||
arg [-m] ==> ignore |
|||
arg [elf_x86_64] ==> ignore |
|||
arg [--hash-style=gnu] ==> ignore |
|||
arg [--as-needed] ==> ignore |
|||
arg [-export-dynamic] ==> ignore |
|||
arg [-dynamic-linker] ==> ignore |
|||
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore |
|||
arg [-zrelro] ==> ignore |
|||
arg [-o] ==> ignore |
|||
arg [cmTC_47e25] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o] ==> ignore |
|||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8] |
|||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu] |
|||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib] |
|||
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] |
|||
arg [-L/lib/../lib] ==> dir [/lib/../lib] |
|||
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] |
|||
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] |
|||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../..] |
|||
arg [CMakeFiles/cmTC_47e25.dir/CMakeCCompilerABI.c.o] ==> ignore |
|||
arg [-lgcc] ==> lib [gcc] |
|||
arg [--as-needed] ==> ignore |
|||
arg [-lgcc_s] ==> lib [gcc_s] |
|||
arg [--no-as-needed] ==> ignore |
|||
arg [-lc] ==> lib [c] |
|||
arg [-lgcc] ==> lib [gcc] |
|||
arg [--as-needed] ==> ignore |
|||
arg [-lgcc_s] ==> lib [gcc_s] |
|||
arg [--no-as-needed] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o] ==> ignore |
|||
remove lib [gcc] |
|||
remove lib [gcc_s] |
|||
remove lib [gcc] |
|||
remove lib [gcc_s] |
|||
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8] ==> [/usr/lib/gcc/x86_64-linux-gnu/4.8] |
|||
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] |
|||
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib] ==> [/usr/lib] |
|||
collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] |
|||
collapse library dir [/lib/../lib] ==> [/lib] |
|||
collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] |
|||
collapse library dir [/usr/lib/../lib] ==> [/usr/lib] |
|||
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../..] ==> [/usr/lib] |
|||
implicit libs: [c] |
|||
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/4.8;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] |
|||
implicit fwks: [] |
|||
|
|||
|
|||
|
|||
|
|||
Detecting C [-std=c11] compiler features compiled with the following output: |
|||
Change Dir: /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp |
|||
|
|||
Run Build Command:"/usr/bin/make" "cmTC_6ac00/fast" |
|||
/usr/bin/make -f CMakeFiles/cmTC_6ac00.dir/build.make CMakeFiles/cmTC_6ac00.dir/build |
|||
make[1]: Entering directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
Building C object CMakeFiles/cmTC_6ac00.dir/feature_tests.c.o |
|||
/usr/bin/cc -std=c11 -o CMakeFiles/cmTC_6ac00.dir/feature_tests.c.o -c /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/feature_tests.c |
|||
Linking C executable cmTC_6ac00 |
|||
/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6ac00.dir/link.txt --verbose=1 |
|||
/usr/bin/cc CMakeFiles/cmTC_6ac00.dir/feature_tests.c.o -o cmTC_6ac00 -rdynamic |
|||
make[1]: Leaving directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
|
|||
|
|||
Feature record: C_FEATURE:1c_function_prototypes |
|||
Feature record: C_FEATURE:1c_restrict |
|||
Feature record: C_FEATURE:1c_static_assert |
|||
Feature record: C_FEATURE:1c_variadic_macros |
|||
|
|||
|
|||
Detecting C [-std=c99] compiler features compiled with the following output: |
|||
Change Dir: /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp |
|||
|
|||
Run Build Command:"/usr/bin/make" "cmTC_bb9a9/fast" |
|||
/usr/bin/make -f CMakeFiles/cmTC_bb9a9.dir/build.make CMakeFiles/cmTC_bb9a9.dir/build |
|||
make[1]: Entering directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
Building C object CMakeFiles/cmTC_bb9a9.dir/feature_tests.c.o |
|||
/usr/bin/cc -std=c99 -o CMakeFiles/cmTC_bb9a9.dir/feature_tests.c.o -c /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/feature_tests.c |
|||
Linking C executable cmTC_bb9a9 |
|||
/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bb9a9.dir/link.txt --verbose=1 |
|||
/usr/bin/cc CMakeFiles/cmTC_bb9a9.dir/feature_tests.c.o -o cmTC_bb9a9 -rdynamic |
|||
make[1]: Leaving directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
|
|||
|
|||
Feature record: C_FEATURE:1c_function_prototypes |
|||
Feature record: C_FEATURE:1c_restrict |
|||
Feature record: C_FEATURE:0c_static_assert |
|||
Feature record: C_FEATURE:1c_variadic_macros |
|||
|
|||
|
|||
Detecting C [-std=c90] compiler features compiled with the following output: |
|||
Change Dir: /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp |
|||
|
|||
Run Build Command:"/usr/bin/make" "cmTC_dd63f/fast" |
|||
/usr/bin/make -f CMakeFiles/cmTC_dd63f.dir/build.make CMakeFiles/cmTC_dd63f.dir/build |
|||
make[1]: Entering directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
Building C object CMakeFiles/cmTC_dd63f.dir/feature_tests.c.o |
|||
/usr/bin/cc -std=c90 -o CMakeFiles/cmTC_dd63f.dir/feature_tests.c.o -c /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/feature_tests.c |
|||
Linking C executable cmTC_dd63f |
|||
/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E cmake_link_script CMakeFiles/cmTC_dd63f.dir/link.txt --verbose=1 |
|||
/usr/bin/cc CMakeFiles/cmTC_dd63f.dir/feature_tests.c.o -o cmTC_dd63f -rdynamic |
|||
make[1]: Leaving directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
|
|||
|
|||
Feature record: C_FEATURE:1c_function_prototypes |
|||
Feature record: C_FEATURE:0c_restrict |
|||
Feature record: C_FEATURE:0c_static_assert |
|||
Feature record: C_FEATURE:0c_variadic_macros |
|||
Determining if the CXX compiler works passed with the following output: |
|||
Change Dir: /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp |
|||
|
|||
Run Build Command:"/usr/bin/make" "cmTC_5d2b2/fast" |
|||
/usr/bin/make -f CMakeFiles/cmTC_5d2b2.dir/build.make CMakeFiles/cmTC_5d2b2.dir/build |
|||
make[1]: Entering directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
Building CXX object CMakeFiles/cmTC_5d2b2.dir/testCXXCompiler.cxx.o |
|||
/usr/bin/c++ -o CMakeFiles/cmTC_5d2b2.dir/testCXXCompiler.cxx.o -c /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp/testCXXCompiler.cxx |
|||
Linking CXX executable cmTC_5d2b2 |
|||
/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E cmake_link_script CMakeFiles/cmTC_5d2b2.dir/link.txt --verbose=1 |
|||
/usr/bin/c++ CMakeFiles/cmTC_5d2b2.dir/testCXXCompiler.cxx.o -o cmTC_5d2b2 -rdynamic |
|||
make[1]: Leaving directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
|
|||
|
|||
Detecting CXX compiler ABI info compiled with the following output: |
|||
Change Dir: /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp |
|||
|
|||
Run Build Command:"/usr/bin/make" "cmTC_98d78/fast" |
|||
/usr/bin/make -f CMakeFiles/cmTC_98d78.dir/build.make CMakeFiles/cmTC_98d78.dir/build |
|||
make[1]: Entering directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
Building CXX object CMakeFiles/cmTC_98d78.dir/CMakeCXXCompilerABI.cpp.o |
|||
/usr/bin/c++ -o CMakeFiles/cmTC_98d78.dir/CMakeCXXCompilerABI.cpp.o -c /home/leverington/Programs/cmake-3.3.2-Linux-x86_64/share/cmake-3.3/Modules/CMakeCXXCompilerABI.cpp |
|||
Linking CXX executable cmTC_98d78 |
|||
/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E cmake_link_script CMakeFiles/cmTC_98d78.dir/link.txt --verbose=1 |
|||
/usr/bin/c++ -v CMakeFiles/cmTC_98d78.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_98d78 -rdynamic |
|||
Using built-in specs. |
|||
COLLECT_GCC=/usr/bin/c++ |
|||
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper |
|||
Target: x86_64-linux-gnu |
|||
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.1-2ubuntu1~12.04' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu |
|||
Thread model: posix |
|||
gcc version 4.8.1 (Ubuntu 4.8.1-2ubuntu1~12.04) |
|||
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/ |
|||
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../:/lib/:/usr/lib/ |
|||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_98d78' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64' |
|||
/usr/lib/gcc/x86_64-linux-gnu/4.8/collect2 --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTC_98d78 /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. CMakeFiles/cmTC_98d78.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o |
|||
make[1]: Leaving directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
|
|||
|
|||
Parsed CXX implicit link information from above output: |
|||
link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] |
|||
ignore line: [Change Dir: /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp] |
|||
ignore line: [] |
|||
ignore line: [Run Build Command:"/usr/bin/make" "cmTC_98d78/fast"] |
|||
ignore line: [/usr/bin/make -f CMakeFiles/cmTC_98d78.dir/build.make CMakeFiles/cmTC_98d78.dir/build] |
|||
ignore line: [make[1]: Entering directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp'] |
|||
ignore line: [Building CXX object CMakeFiles/cmTC_98d78.dir/CMakeCXXCompilerABI.cpp.o] |
|||
ignore line: [/usr/bin/c++ -o CMakeFiles/cmTC_98d78.dir/CMakeCXXCompilerABI.cpp.o -c /home/leverington/Programs/cmake-3.3.2-Linux-x86_64/share/cmake-3.3/Modules/CMakeCXXCompilerABI.cpp] |
|||
ignore line: [Linking CXX executable cmTC_98d78] |
|||
ignore line: [/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E cmake_link_script CMakeFiles/cmTC_98d78.dir/link.txt --verbose=1] |
|||
ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_98d78.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_98d78 -rdynamic ] |
|||
ignore line: [Using built-in specs.] |
|||
ignore line: [COLLECT_GCC=/usr/bin/c++] |
|||
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper] |
|||
ignore line: [Target: x86_64-linux-gnu] |
|||
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.1-2ubuntu1~12.04' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] |
|||
ignore line: [Thread model: posix] |
|||
ignore line: [gcc version 4.8.1 (Ubuntu 4.8.1-2ubuntu1~12.04) ] |
|||
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/] |
|||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../:/lib/:/usr/lib/] |
|||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_98d78' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] |
|||
link line: [ /usr/lib/gcc/x86_64-linux-gnu/4.8/collect2 --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTC_98d78 /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. CMakeFiles/cmTC_98d78.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o] |
|||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/collect2] ==> ignore |
|||
arg [--sysroot=/] ==> ignore |
|||
arg [--build-id] ==> ignore |
|||
arg [--eh-frame-hdr] ==> ignore |
|||
arg [-m] ==> ignore |
|||
arg [elf_x86_64] ==> ignore |
|||
arg [--hash-style=gnu] ==> ignore |
|||
arg [--as-needed] ==> ignore |
|||
arg [-export-dynamic] ==> ignore |
|||
arg [-dynamic-linker] ==> ignore |
|||
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore |
|||
arg [-zrelro] ==> ignore |
|||
arg [-o] ==> ignore |
|||
arg [cmTC_98d78] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o] ==> ignore |
|||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8] |
|||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu] |
|||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib] |
|||
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] |
|||
arg [-L/lib/../lib] ==> dir [/lib/../lib] |
|||
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] |
|||
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] |
|||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../..] |
|||
arg [CMakeFiles/cmTC_98d78.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore |
|||
arg [-lstdc++] ==> lib [stdc++] |
|||
arg [-lm] ==> lib [m] |
|||
arg [-lgcc_s] ==> lib [gcc_s] |
|||
arg [-lgcc] ==> lib [gcc] |
|||
arg [-lc] ==> lib [c] |
|||
arg [-lgcc_s] ==> lib [gcc_s] |
|||
arg [-lgcc] ==> lib [gcc] |
|||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o] ==> ignore |
|||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o] ==> ignore |
|||
remove lib [gcc_s] |
|||
remove lib [gcc] |
|||
remove lib [gcc_s] |
|||
remove lib [gcc] |
|||
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8] ==> [/usr/lib/gcc/x86_64-linux-gnu/4.8] |
|||
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] |
|||
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib] ==> [/usr/lib] |
|||
collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] |
|||
collapse library dir [/lib/../lib] ==> [/lib] |
|||
collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] |
|||
collapse library dir [/usr/lib/../lib] ==> [/usr/lib] |
|||
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../..] ==> [/usr/lib] |
|||
implicit libs: [stdc++;m;c] |
|||
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/4.8;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] |
|||
implicit fwks: [] |
|||
|
|||
|
|||
|
|||
|
|||
Detecting CXX [-std=c++1y] compiler features compiled with the following output: |
|||
Change Dir: /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp |
|||
|
|||
Run Build Command:"/usr/bin/make" "cmTC_dd430/fast" |
|||
/usr/bin/make -f CMakeFiles/cmTC_dd430.dir/build.make CMakeFiles/cmTC_dd430.dir/build |
|||
make[1]: Entering directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
Building CXX object CMakeFiles/cmTC_dd430.dir/feature_tests.cxx.o |
|||
/usr/bin/c++ -std=c++1y -o CMakeFiles/cmTC_dd430.dir/feature_tests.cxx.o -c /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/feature_tests.cxx |
|||
Linking CXX executable cmTC_dd430 |
|||
/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E cmake_link_script CMakeFiles/cmTC_dd430.dir/link.txt --verbose=1 |
|||
/usr/bin/c++ CMakeFiles/cmTC_dd430.dir/feature_tests.cxx.o -o cmTC_dd430 -rdynamic |
|||
make[1]: Leaving directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
|
|||
|
|||
Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers |
|||
Feature record: CXX_FEATURE:1cxx_alias_templates |
|||
Feature record: CXX_FEATURE:1cxx_alignas |
|||
Feature record: CXX_FEATURE:1cxx_alignof |
|||
Feature record: CXX_FEATURE:1cxx_attributes |
|||
Feature record: CXX_FEATURE:0cxx_attribute_deprecated |
|||
Feature record: CXX_FEATURE:1cxx_auto_type |
|||
Feature record: CXX_FEATURE:0cxx_binary_literals |
|||
Feature record: CXX_FEATURE:1cxx_constexpr |
|||
Feature record: CXX_FEATURE:0cxx_contextual_conversions |
|||
Feature record: CXX_FEATURE:1cxx_decltype |
|||
Feature record: CXX_FEATURE:0cxx_decltype_auto |
|||
Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types |
|||
Feature record: CXX_FEATURE:1cxx_default_function_template_args |
|||
Feature record: CXX_FEATURE:1cxx_defaulted_functions |
|||
Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers |
|||
Feature record: CXX_FEATURE:1cxx_delegating_constructors |
|||
Feature record: CXX_FEATURE:1cxx_deleted_functions |
|||
Feature record: CXX_FEATURE:0cxx_digit_separators |
|||
Feature record: CXX_FEATURE:1cxx_enum_forward_declarations |
|||
Feature record: CXX_FEATURE:1cxx_explicit_conversions |
|||
Feature record: CXX_FEATURE:1cxx_extended_friend_declarations |
|||
Feature record: CXX_FEATURE:1cxx_extern_templates |
|||
Feature record: CXX_FEATURE:1cxx_final |
|||
Feature record: CXX_FEATURE:1cxx_func_identifier |
|||
Feature record: CXX_FEATURE:1cxx_generalized_initializers |
|||
Feature record: CXX_FEATURE:0cxx_generic_lambdas |
|||
Feature record: CXX_FEATURE:1cxx_inheriting_constructors |
|||
Feature record: CXX_FEATURE:1cxx_inline_namespaces |
|||
Feature record: CXX_FEATURE:1cxx_lambdas |
|||
Feature record: CXX_FEATURE:0cxx_lambda_init_captures |
|||
Feature record: CXX_FEATURE:1cxx_local_type_template_args |
|||
Feature record: CXX_FEATURE:1cxx_long_long_type |
|||
Feature record: CXX_FEATURE:1cxx_noexcept |
|||
Feature record: CXX_FEATURE:1cxx_nonstatic_member_init |
|||
Feature record: CXX_FEATURE:1cxx_nullptr |
|||
Feature record: CXX_FEATURE:1cxx_override |
|||
Feature record: CXX_FEATURE:1cxx_range_for |
|||
Feature record: CXX_FEATURE:1cxx_raw_string_literals |
|||
Feature record: CXX_FEATURE:1cxx_reference_qualified_functions |
|||
Feature record: CXX_FEATURE:0cxx_relaxed_constexpr |
|||
Feature record: CXX_FEATURE:0cxx_return_type_deduction |
|||
Feature record: CXX_FEATURE:1cxx_right_angle_brackets |
|||
Feature record: CXX_FEATURE:1cxx_rvalue_references |
|||
Feature record: CXX_FEATURE:1cxx_sizeof_member |
|||
Feature record: CXX_FEATURE:1cxx_static_assert |
|||
Feature record: CXX_FEATURE:1cxx_strong_enums |
|||
Feature record: CXX_FEATURE:1cxx_template_template_parameters |
|||
Feature record: CXX_FEATURE:1cxx_thread_local |
|||
Feature record: CXX_FEATURE:1cxx_trailing_return_types |
|||
Feature record: CXX_FEATURE:1cxx_unicode_literals |
|||
Feature record: CXX_FEATURE:1cxx_uniform_initialization |
|||
Feature record: CXX_FEATURE:1cxx_unrestricted_unions |
|||
Feature record: CXX_FEATURE:1cxx_user_literals |
|||
Feature record: CXX_FEATURE:0cxx_variable_templates |
|||
Feature record: CXX_FEATURE:1cxx_variadic_macros |
|||
Feature record: CXX_FEATURE:1cxx_variadic_templates |
|||
|
|||
|
|||
Detecting CXX [-std=c++11] compiler features compiled with the following output: |
|||
Change Dir: /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp |
|||
|
|||
Run Build Command:"/usr/bin/make" "cmTC_a5620/fast" |
|||
/usr/bin/make -f CMakeFiles/cmTC_a5620.dir/build.make CMakeFiles/cmTC_a5620.dir/build |
|||
make[1]: Entering directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
Building CXX object CMakeFiles/cmTC_a5620.dir/feature_tests.cxx.o |
|||
/usr/bin/c++ -std=c++11 -o CMakeFiles/cmTC_a5620.dir/feature_tests.cxx.o -c /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/feature_tests.cxx |
|||
Linking CXX executable cmTC_a5620 |
|||
/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a5620.dir/link.txt --verbose=1 |
|||
/usr/bin/c++ CMakeFiles/cmTC_a5620.dir/feature_tests.cxx.o -o cmTC_a5620 -rdynamic |
|||
make[1]: Leaving directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
|
|||
|
|||
Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers |
|||
Feature record: CXX_FEATURE:1cxx_alias_templates |
|||
Feature record: CXX_FEATURE:1cxx_alignas |
|||
Feature record: CXX_FEATURE:1cxx_alignof |
|||
Feature record: CXX_FEATURE:1cxx_attributes |
|||
Feature record: CXX_FEATURE:0cxx_attribute_deprecated |
|||
Feature record: CXX_FEATURE:1cxx_auto_type |
|||
Feature record: CXX_FEATURE:0cxx_binary_literals |
|||
Feature record: CXX_FEATURE:1cxx_constexpr |
|||
Feature record: CXX_FEATURE:0cxx_contextual_conversions |
|||
Feature record: CXX_FEATURE:1cxx_decltype |
|||
Feature record: CXX_FEATURE:0cxx_decltype_auto |
|||
Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types |
|||
Feature record: CXX_FEATURE:1cxx_default_function_template_args |
|||
Feature record: CXX_FEATURE:1cxx_defaulted_functions |
|||
Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers |
|||
Feature record: CXX_FEATURE:1cxx_delegating_constructors |
|||
Feature record: CXX_FEATURE:1cxx_deleted_functions |
|||
Feature record: CXX_FEATURE:0cxx_digit_separators |
|||
Feature record: CXX_FEATURE:1cxx_enum_forward_declarations |
|||
Feature record: CXX_FEATURE:1cxx_explicit_conversions |
|||
Feature record: CXX_FEATURE:1cxx_extended_friend_declarations |
|||
Feature record: CXX_FEATURE:1cxx_extern_templates |
|||
Feature record: CXX_FEATURE:1cxx_final |
|||
Feature record: CXX_FEATURE:1cxx_func_identifier |
|||
Feature record: CXX_FEATURE:1cxx_generalized_initializers |
|||
Feature record: CXX_FEATURE:0cxx_generic_lambdas |
|||
Feature record: CXX_FEATURE:1cxx_inheriting_constructors |
|||
Feature record: CXX_FEATURE:1cxx_inline_namespaces |
|||
Feature record: CXX_FEATURE:1cxx_lambdas |
|||
Feature record: CXX_FEATURE:0cxx_lambda_init_captures |
|||
Feature record: CXX_FEATURE:1cxx_local_type_template_args |
|||
Feature record: CXX_FEATURE:1cxx_long_long_type |
|||
Feature record: CXX_FEATURE:1cxx_noexcept |
|||
Feature record: CXX_FEATURE:1cxx_nonstatic_member_init |
|||
Feature record: CXX_FEATURE:1cxx_nullptr |
|||
Feature record: CXX_FEATURE:1cxx_override |
|||
Feature record: CXX_FEATURE:1cxx_range_for |
|||
Feature record: CXX_FEATURE:1cxx_raw_string_literals |
|||
Feature record: CXX_FEATURE:1cxx_reference_qualified_functions |
|||
Feature record: CXX_FEATURE:0cxx_relaxed_constexpr |
|||
Feature record: CXX_FEATURE:0cxx_return_type_deduction |
|||
Feature record: CXX_FEATURE:1cxx_right_angle_brackets |
|||
Feature record: CXX_FEATURE:1cxx_rvalue_references |
|||
Feature record: CXX_FEATURE:1cxx_sizeof_member |
|||
Feature record: CXX_FEATURE:1cxx_static_assert |
|||
Feature record: CXX_FEATURE:1cxx_strong_enums |
|||
Feature record: CXX_FEATURE:1cxx_template_template_parameters |
|||
Feature record: CXX_FEATURE:1cxx_thread_local |
|||
Feature record: CXX_FEATURE:1cxx_trailing_return_types |
|||
Feature record: CXX_FEATURE:1cxx_unicode_literals |
|||
Feature record: CXX_FEATURE:1cxx_uniform_initialization |
|||
Feature record: CXX_FEATURE:1cxx_unrestricted_unions |
|||
Feature record: CXX_FEATURE:1cxx_user_literals |
|||
Feature record: CXX_FEATURE:0cxx_variable_templates |
|||
Feature record: CXX_FEATURE:1cxx_variadic_macros |
|||
Feature record: CXX_FEATURE:1cxx_variadic_templates |
|||
|
|||
|
|||
Detecting CXX [-std=c++98] compiler features compiled with the following output: |
|||
Change Dir: /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp |
|||
|
|||
Run Build Command:"/usr/bin/make" "cmTC_0f614/fast" |
|||
/usr/bin/make -f CMakeFiles/cmTC_0f614.dir/build.make CMakeFiles/cmTC_0f614.dir/build |
|||
make[1]: Entering directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
Building CXX object CMakeFiles/cmTC_0f614.dir/feature_tests.cxx.o |
|||
/usr/bin/c++ -std=c++98 -o CMakeFiles/cmTC_0f614.dir/feature_tests.cxx.o -c /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/feature_tests.cxx |
|||
Linking CXX executable cmTC_0f614 |
|||
/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0f614.dir/link.txt --verbose=1 |
|||
/usr/bin/c++ CMakeFiles/cmTC_0f614.dir/feature_tests.cxx.o -o cmTC_0f614 -rdynamic |
|||
make[1]: Leaving directory `/media/work/work2/SciFiMatG4_v2/SciFiSim/CMakeFiles/CMakeTmp' |
|||
|
|||
|
|||
Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers |
|||
Feature record: CXX_FEATURE:0cxx_alias_templates |
|||
Feature record: CXX_FEATURE:0cxx_alignas |
|||
Feature record: CXX_FEATURE:0cxx_alignof |
|||
Feature record: CXX_FEATURE:0cxx_attributes |
|||
Feature record: CXX_FEATURE:0cxx_attribute_deprecated |
|||
Feature record: CXX_FEATURE:0cxx_auto_type |
|||
Feature record: CXX_FEATURE:0cxx_binary_literals |
|||
Feature record: CXX_FEATURE:0cxx_constexpr |
|||
Feature record: CXX_FEATURE:0cxx_contextual_conversions |
|||
Feature record: CXX_FEATURE:0cxx_decltype |
|||
Feature record: CXX_FEATURE:0cxx_decltype_auto |
|||
Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types |
|||
Feature record: CXX_FEATURE:0cxx_default_function_template_args |
|||
Feature record: CXX_FEATURE:0cxx_defaulted_functions |
|||
Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers |
|||
Feature record: CXX_FEATURE:0cxx_delegating_constructors |
|||
Feature record: CXX_FEATURE:0cxx_deleted_functions |
|||
Feature record: CXX_FEATURE:0cxx_digit_separators |
|||
Feature record: CXX_FEATURE:0cxx_enum_forward_declarations |
|||
Feature record: CXX_FEATURE:0cxx_explicit_conversions |
|||
Feature record: CXX_FEATURE:0cxx_extended_friend_declarations |
|||
Feature record: CXX_FEATURE:0cxx_extern_templates |
|||
Feature record: CXX_FEATURE:0cxx_final |
|||
Feature record: CXX_FEATURE:0cxx_func_identifier |
|||
Feature record: CXX_FEATURE:0cxx_generalized_initializers |
|||
Feature record: CXX_FEATURE:0cxx_generic_lambdas |
|||
Feature record: CXX_FEATURE:0cxx_inheriting_constructors |
|||
Feature record: CXX_FEATURE:0cxx_inline_namespaces |
|||
Feature record: CXX_FEATURE:0cxx_lambdas |
|||
Feature record: CXX_FEATURE:0cxx_lambda_init_captures |
|||
Feature record: CXX_FEATURE:0cxx_local_type_template_args |
|||
Feature record: CXX_FEATURE:0cxx_long_long_type |
|||
Feature record: CXX_FEATURE:0cxx_noexcept |
|||
Feature record: CXX_FEATURE:0cxx_nonstatic_member_init |
|||
Feature record: CXX_FEATURE:0cxx_nullptr |
|||
Feature record: CXX_FEATURE:0cxx_override |
|||
Feature record: CXX_FEATURE:0cxx_range_for |
|||
Feature record: CXX_FEATURE:0cxx_raw_string_literals |
|||
Feature record: CXX_FEATURE:0cxx_reference_qualified_functions |
|||
Feature record: CXX_FEATURE:0cxx_relaxed_constexpr |
|||
Feature record: CXX_FEATURE:0cxx_return_type_deduction |
|||
Feature record: CXX_FEATURE:0cxx_right_angle_brackets |
|||
Feature record: CXX_FEATURE:0cxx_rvalue_references |
|||
Feature record: CXX_FEATURE:0cxx_sizeof_member |
|||
Feature record: CXX_FEATURE:0cxx_static_assert |
|||
Feature record: CXX_FEATURE:0cxx_strong_enums |
|||
Feature record: CXX_FEATURE:1cxx_template_template_parameters |
|||
Feature record: CXX_FEATURE:0cxx_thread_local |
|||
Feature record: CXX_FEATURE:0cxx_trailing_return_types |
|||
Feature record: CXX_FEATURE:0cxx_unicode_literals |
|||
Feature record: CXX_FEATURE:0cxx_uniform_initialization |
|||
Feature record: CXX_FEATURE:0cxx_unrestricted_unions |
|||
Feature record: CXX_FEATURE:0cxx_user_literals |
|||
Feature record: CXX_FEATURE:0cxx_variable_templates |
|||
Feature record: CXX_FEATURE:0cxx_variadic_macros |
|||
Feature record: CXX_FEATURE:0cxx_variadic_templates |
@ -0,0 +1,2 @@ |
|||
# Hashes of file build rules. |
|||
887067886e476ebf1513a83a71192e3e CMakeFiles/DEPENDS |
@ -0,0 +1,8 @@ |
|||
# The set of languages for which implicit dependencies are needed: |
|||
set(CMAKE_DEPENDS_LANGUAGES |
|||
) |
|||
# The set of files for implicit dependencies of each language: |
|||
|
|||
# Targets to which this target links. |
|||
set(CMAKE_TARGET_LINKED_INFO_FILES |
|||
) |
@ -0,0 +1,72 @@ |
|||
# CMAKE generated file: DO NOT EDIT! |
|||
# Generated by "Unix Makefiles" Generator, CMake Version 3.3 |
|||
|
|||
# Delete rule output on recipe failure. |
|||
.DELETE_ON_ERROR: |
|||
|
|||
|
|||
#============================================================================= |
|||
# Special targets provided by cmake. |
|||
|
|||
# Disable implicit rules so canonical targets will work. |
|||
.SUFFIXES: |
|||
|
|||
|
|||
# Remove some rules from gmake that .SUFFIXES does not remove. |
|||
SUFFIXES = |
|||
|
|||
.SUFFIXES: .hpux_make_needs_suffix_list |
|||
|
|||
|
|||
# Suppress display of executed commands. |
|||
$(VERBOSE).SILENT: |
|||
|
|||
|
|||
# A target that is always out of date. |
|||
cmake_force: |
|||
|
|||
.PHONY : cmake_force |
|||
|
|||
#============================================================================= |
|||
# Set environment variables for the build. |
|||
|
|||
# The shell in which to execute make rules. |
|||
SHELL = /bin/sh |
|||
|
|||
# The CMake executable. |
|||
CMAKE_COMMAND = /home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake |
|||
|
|||
# The command to remove a file. |
|||
RM = /home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E remove -f |
|||
|
|||
# Escaping for special characters. |
|||
EQUALS = = |
|||
|
|||
# The top-level source directory on which CMake was run. |
|||
CMAKE_SOURCE_DIR = /work/SciFiMatG4_v2/SciFiSim |
|||
|
|||
# The top-level build directory on which CMake was run. |
|||
CMAKE_BINARY_DIR = /work/SciFiMatG4_v2/SciFiSim |
|||
|
|||
# Utility rule file for DEPENDS. |
|||
|
|||
# Include the progress variables for this target. |
|||
include CMakeFiles/DEPENDS.dir/progress.make |
|||
|
|||
DEPENDS: CMakeFiles/DEPENDS.dir/build.make |
|||
|
|||
.PHONY : DEPENDS |
|||
|
|||
# Rule to build all files generated by this target. |
|||
CMakeFiles/DEPENDS.dir/build: DEPENDS |
|||
|
|||
.PHONY : CMakeFiles/DEPENDS.dir/build |
|||
|
|||
CMakeFiles/DEPENDS.dir/clean: |
|||
$(CMAKE_COMMAND) -P CMakeFiles/DEPENDS.dir/cmake_clean.cmake |
|||
.PHONY : CMakeFiles/DEPENDS.dir/clean |
|||
|
|||
CMakeFiles/DEPENDS.dir/depend: |
|||
cd /work/SciFiMatG4_v2/SciFiSim && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /work/SciFiMatG4_v2/SciFiSim /work/SciFiMatG4_v2/SciFiSim /work/SciFiMatG4_v2/SciFiSim /work/SciFiMatG4_v2/SciFiSim /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/DEPENDS.dir/DependInfo.cmake --color=$(COLOR) |
|||
.PHONY : CMakeFiles/DEPENDS.dir/depend |
|||
|
@ -0,0 +1,5 @@ |
|||
|
|||
# Per-language clean rules from dependency scanning. |
|||
foreach(lang ) |
|||
include(CMakeFiles/DEPENDS.dir/cmake_clean_${lang}.cmake OPTIONAL) |
|||
endforeach() |
@ -0,0 +1 @@ |
|||
|
@ -0,0 +1,140 @@ |
|||
# CMAKE generated file: DO NOT EDIT! |
|||
# Generated by "Unix Makefiles" Generator, CMake Version 3.3 |
|||
|
|||
# Default target executed when no arguments are given to make. |
|||
default_target: all |
|||
|
|||
.PHONY : default_target |
|||
|
|||
# The main recursive all target |
|||
all: |
|||
|
|||
.PHONY : all |
|||
|
|||
# The main recursive preinstall target |
|||
preinstall: |
|||
|
|||
.PHONY : preinstall |
|||
|
|||
#============================================================================= |
|||
# Special targets provided by cmake. |
|||
|
|||
# Disable implicit rules so canonical targets will work. |
|||
.SUFFIXES: |
|||
|
|||
|
|||
# Remove some rules from gmake that .SUFFIXES does not remove. |
|||
SUFFIXES = |
|||
|
|||
.SUFFIXES: .hpux_make_needs_suffix_list |
|||
|
|||
|
|||
# Suppress display of executed commands. |
|||
$(VERBOSE).SILENT: |
|||
|
|||
|
|||
# A target that is always out of date. |
|||
cmake_force: |
|||
|
|||
.PHONY : cmake_force |
|||
|
|||
#============================================================================= |
|||
# Set environment variables for the build. |
|||
|
|||
# The shell in which to execute make rules. |
|||
SHELL = /bin/sh |
|||
|
|||
# The CMake executable. |
|||
CMAKE_COMMAND = /home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake |
|||
|
|||
# The command to remove a file. |
|||
RM = /home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E remove -f |
|||
|
|||
# Escaping for special characters. |
|||
EQUALS = = |
|||
|
|||
# The top-level source directory on which CMake was run. |
|||
CMAKE_SOURCE_DIR = /work/SciFiMatG4_v2/SciFiSim |
|||
|
|||
# The top-level build directory on which CMake was run. |
|||
CMAKE_BINARY_DIR = /work/SciFiMatG4_v2/SciFiSim |
|||
|
|||
#============================================================================= |
|||
# Target rules for target CMakeFiles/DEPENDS.dir |
|||
|
|||
# All Build rule for target. |
|||
CMakeFiles/DEPENDS.dir/all: |
|||
$(MAKE) -f CMakeFiles/DEPENDS.dir/build.make CMakeFiles/DEPENDS.dir/depend |
|||
$(MAKE) -f CMakeFiles/DEPENDS.dir/build.make CMakeFiles/DEPENDS.dir/build |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/work/SciFiMatG4_v2/SciFiSim/CMakeFiles --progress-num= "Built target DEPENDS" |
|||
.PHONY : CMakeFiles/DEPENDS.dir/all |
|||
|
|||
# Build rule for subdir invocation for target. |
|||
CMakeFiles/DEPENDS.dir/rule: cmake_check_build_system |
|||
$(CMAKE_COMMAND) -E cmake_progress_start /work/SciFiMatG4_v2/SciFiSim/CMakeFiles 0 |
|||
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/DEPENDS.dir/all |
|||
$(CMAKE_COMMAND) -E cmake_progress_start /work/SciFiMatG4_v2/SciFiSim/CMakeFiles 0 |
|||
.PHONY : CMakeFiles/DEPENDS.dir/rule |
|||
|
|||
# Convenience name for target. |
|||
DEPENDS: CMakeFiles/DEPENDS.dir/rule |
|||
|
|||
.PHONY : DEPENDS |
|||
|
|||
# clean rule for target. |
|||
CMakeFiles/DEPENDS.dir/clean: |
|||
$(MAKE) -f CMakeFiles/DEPENDS.dir/build.make CMakeFiles/DEPENDS.dir/clean |
|||
.PHONY : CMakeFiles/DEPENDS.dir/clean |
|||
|
|||
# clean rule for target. |
|||
clean: CMakeFiles/DEPENDS.dir/clean |
|||
|
|||
.PHONY : clean |
|||
|
|||
#============================================================================= |
|||
# Target rules for target CMakeFiles/scifiSim.dir |
|||
|
|||
# All Build rule for target. |
|||
CMakeFiles/scifiSim.dir/all: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/depend |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/build |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/work/SciFiMatG4_v2/SciFiSim/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13 "Built target scifiSim" |
|||
.PHONY : CMakeFiles/scifiSim.dir/all |
|||
|
|||
# Include target in all. |
|||
all: CMakeFiles/scifiSim.dir/all |
|||
|
|||
.PHONY : all |
|||
|
|||
# Build rule for subdir invocation for target. |
|||
CMakeFiles/scifiSim.dir/rule: cmake_check_build_system |
|||
$(CMAKE_COMMAND) -E cmake_progress_start /work/SciFiMatG4_v2/SciFiSim/CMakeFiles 13 |
|||
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/scifiSim.dir/all |
|||
$(CMAKE_COMMAND) -E cmake_progress_start /work/SciFiMatG4_v2/SciFiSim/CMakeFiles 0 |
|||
.PHONY : CMakeFiles/scifiSim.dir/rule |
|||
|
|||
# Convenience name for target. |
|||
scifiSim: CMakeFiles/scifiSim.dir/rule |
|||
|
|||
.PHONY : scifiSim |
|||
|
|||
# clean rule for target. |
|||
CMakeFiles/scifiSim.dir/clean: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/clean |
|||
.PHONY : CMakeFiles/scifiSim.dir/clean |
|||
|
|||
# clean rule for target. |
|||
clean: CMakeFiles/scifiSim.dir/clean |
|||
|
|||
.PHONY : clean |
|||
|
|||
#============================================================================= |
|||
# Special targets to cleanup operation of make. |
|||
|
|||
# Special rule to run CMake to check the build system integrity. |
|||
# No rule that depends on this can have commands that come from listfiles |
|||
# because they might be regenerated. |
|||
cmake_check_build_system: |
|||
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 |
|||
.PHONY : cmake_check_build_system |
|||
|
@ -0,0 +1,2 @@ |
|||
/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/DEPENDS.dir |
|||
/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/scifiSim.dir |
@ -0,0 +1 @@ |
|||
# This file is generated by cmake for dependency checking of the CMakeCache.txt file |
Binary file not shown.
@ -0,0 +1,34 @@ |
|||
|
|||
const char features[] = {"" |
|||
"C_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 |
|||
"1" |
|||
#else |
|||
"0" |
|||
#endif |
|||
"c_function_prototypes\n" |
|||
"C_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L |
|||
"1" |
|||
#else |
|||
"0" |
|||
#endif |
|||
"c_restrict\n" |
|||
"C_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L |
|||
"1" |
|||
#else |
|||
"0" |
|||
#endif |
|||
"c_static_assert\n" |
|||
"C_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L |
|||
"1" |
|||
#else |
|||
"0" |
|||
#endif |
|||
"c_variadic_macros\n" |
|||
|
|||
}; |
|||
|
|||
int main(int argc, char** argv) { (void)argv; return features[argc]; } |
@ -0,0 +1,405 @@ |
|||
|
|||
const char features[] = {"" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_aggregate_default_initializers\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_alias_templates\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_alignas\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_alignof\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_attributes\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_attribute_deprecated\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_auto_type\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_binary_literals\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_constexpr\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_contextual_conversions\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_decltype\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_decltype_auto\n" |
|||
"CXX_FEATURE:" |
|||
#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_decltype_incomplete_return_types\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_default_function_template_args\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_defaulted_functions\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_defaulted_move_initializers\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_delegating_constructors\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_deleted_functions\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_digit_separators\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_enum_forward_declarations\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_explicit_conversions\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_extended_friend_declarations\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_extern_templates\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_final\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_func_identifier\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_generalized_initializers\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_generic_lambdas\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_inheriting_constructors\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_inline_namespaces\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_lambdas\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_lambda_init_captures\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_local_type_template_args\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_long_long_type\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_noexcept\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_nonstatic_member_init\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_nullptr\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_override\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_range_for\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_raw_string_literals\n" |
|||
"CXX_FEATURE:" |
|||
#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_reference_qualified_functions\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_relaxed_constexpr\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_return_type_deduction\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_right_angle_brackets\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_rvalue_references\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_sizeof_member\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_static_assert\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_strong_enums\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_template_template_parameters\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_thread_local\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_trailing_return_types\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_unicode_literals\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_uniform_initialization\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_unrestricted_unions\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_user_literals\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_variable_templates\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_variadic_macros\n" |
|||
"CXX_FEATURE:" |
|||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
|
|||
"1" |
|||
#else
|
|||
"0" |
|||
#endif
|
|||
"cxx_variadic_templates\n" |
|||
|
|||
}; |
|||
|
|||
int main(int argc, char** argv) { (void)argv; return features[argc]; } |
@ -0,0 +1 @@ |
|||
13 |
@ -0,0 +1,50 @@ |
|||
# The set of languages for which implicit dependencies are needed: |
|||
set(CMAKE_DEPENDS_LANGUAGES |
|||
"CXX" |
|||
) |
|||
# The set of files for implicit dependencies of each language: |
|||
set(CMAKE_DEPENDS_CHECK_CXX |
|||
"/work/SciFiMatG4_v2/SciFiSim/scifiSim.cc" "/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/scifiSim.dir/scifiSim.cc.o" |
|||
"/work/SciFiMatG4_v2/SciFiSim/src/ActionInitialization.cc" "/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o" |
|||
"/work/SciFiMatG4_v2/SciFiSim/src/Analysis.cc" "/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/scifiSim.dir/src/Analysis.cc.o" |
|||
"/work/SciFiMatG4_v2/SciFiSim/src/DetectorConstruction.cc" "/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o" |
|||
"/work/SciFiMatG4_v2/SciFiSim/src/EventAction.cc" "/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/scifiSim.dir/src/EventAction.cc.o" |
|||
"/work/SciFiMatG4_v2/SciFiSim/src/Parameters.cc" "/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/scifiSim.dir/src/Parameters.cc.o" |
|||
"/work/SciFiMatG4_v2/SciFiSim/src/PhysicsList.cc" "/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o" |
|||
"/work/SciFiMatG4_v2/SciFiSim/src/PrimaryGeneratorAction.cc" "/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o" |
|||
"/work/SciFiMatG4_v2/SciFiSim/src/RunAction.cc" "/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/scifiSim.dir/src/RunAction.cc.o" |
|||
"/work/SciFiMatG4_v2/SciFiSim/src/SensitiveDetector.cc" "/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o" |
|||
"/work/SciFiMatG4_v2/SciFiSim/src/StackingAction.cc" "/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/scifiSim.dir/src/StackingAction.cc.o" |
|||
"/work/SciFiMatG4_v2/SciFiSim/src/SteppingAction.cc" "/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o" |
|||
) |
|||
set(CMAKE_CXX_COMPILER_ID "GNU") |
|||
|
|||
# Preprocessor definitions for this target. |
|||
set(CMAKE_TARGET_DEFINITIONS_CXX |
|||
"G4INTY_USE_QT" |
|||
"G4INTY_USE_XT" |
|||
"G4UI_USE" |
|||
"G4UI_USE_QT" |
|||
"G4UI_USE_TCSH" |
|||
"G4VERBOSE" |
|||
"G4VIS_USE" |
|||
"G4VIS_USE_OPENGL" |
|||
"G4VIS_USE_OPENGLQT" |
|||
"G4VIS_USE_OPENGLX" |
|||
"G4_STORE_TRAJECTORY" |
|||
) |
|||
|
|||
# The include file search paths: |
|||
set(CMAKE_CXX_TARGET_INCLUDE_PATH |
|||
"/work/geant4.10.02.p01-install/include/Geant4" |
|||
"/usr/include/qt4" |
|||
"/usr/include/qt4/QtCore" |
|||
"/usr/include/qt4/QtGui" |
|||
"/usr/include/qt4/QtOpenGL" |
|||
"include" |
|||
"/usr/local/include" |
|||
) |
|||
|
|||
# Targets to which this target links. |
|||
set(CMAKE_TARGET_LINKED_INFO_FILES |
|||
) |
@ -0,0 +1,452 @@ |
|||
# CMAKE generated file: DO NOT EDIT! |
|||
# Generated by "Unix Makefiles" Generator, CMake Version 3.3 |
|||
|
|||
# Delete rule output on recipe failure. |
|||
.DELETE_ON_ERROR: |
|||
|
|||
|
|||
#============================================================================= |
|||
# Special targets provided by cmake. |
|||
|
|||
# Disable implicit rules so canonical targets will work. |
|||
.SUFFIXES: |
|||
|
|||
|
|||
# Remove some rules from gmake that .SUFFIXES does not remove. |
|||
SUFFIXES = |
|||
|
|||
.SUFFIXES: .hpux_make_needs_suffix_list |
|||
|
|||
|
|||
# Suppress display of executed commands. |
|||
$(VERBOSE).SILENT: |
|||
|
|||
|
|||
# A target that is always out of date. |
|||
cmake_force: |
|||
|
|||
.PHONY : cmake_force |
|||
|
|||
#============================================================================= |
|||
# Set environment variables for the build. |
|||
|
|||
# The shell in which to execute make rules. |
|||
SHELL = /bin/sh |
|||
|
|||
# The CMake executable. |
|||
CMAKE_COMMAND = /home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake |
|||
|
|||
# The command to remove a file. |
|||
RM = /home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E remove -f |
|||
|
|||
# Escaping for special characters. |
|||
EQUALS = = |
|||
|
|||
# The top-level source directory on which CMake was run. |
|||
CMAKE_SOURCE_DIR = /work/SciFiMatG4_v2/SciFiSim |
|||
|
|||
# The top-level build directory on which CMake was run. |
|||
CMAKE_BINARY_DIR = /work/SciFiMatG4_v2/SciFiSim |
|||
|
|||
# Include any dependencies generated for this target. |
|||
include CMakeFiles/scifiSim.dir/depend.make |
|||
|
|||
# Include the progress variables for this target. |
|||
include CMakeFiles/scifiSim.dir/progress.make |
|||
|
|||
# Include the compile flags for this target's objects. |
|||
include CMakeFiles/scifiSim.dir/flags.make |
|||
|
|||
CMakeFiles/scifiSim.dir/scifiSim.cc.o: CMakeFiles/scifiSim.dir/flags.make |
|||
CMakeFiles/scifiSim.dir/scifiSim.cc.o: scifiSim.cc |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/work/SciFiMatG4_v2/SciFiSim/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/scifiSim.dir/scifiSim.cc.o" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/scifiSim.dir/scifiSim.cc.o -c /work/SciFiMatG4_v2/SciFiSim/scifiSim.cc |
|||
|
|||
CMakeFiles/scifiSim.dir/scifiSim.cc.i: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scifiSim.dir/scifiSim.cc.i" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /work/SciFiMatG4_v2/SciFiSim/scifiSim.cc > CMakeFiles/scifiSim.dir/scifiSim.cc.i |
|||
|
|||
CMakeFiles/scifiSim.dir/scifiSim.cc.s: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scifiSim.dir/scifiSim.cc.s" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /work/SciFiMatG4_v2/SciFiSim/scifiSim.cc -o CMakeFiles/scifiSim.dir/scifiSim.cc.s |
|||
|
|||
CMakeFiles/scifiSim.dir/scifiSim.cc.o.requires: |
|||
|
|||
.PHONY : CMakeFiles/scifiSim.dir/scifiSim.cc.o.requires |
|||
|
|||
CMakeFiles/scifiSim.dir/scifiSim.cc.o.provides: CMakeFiles/scifiSim.dir/scifiSim.cc.o.requires |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/scifiSim.cc.o.provides.build |
|||
.PHONY : CMakeFiles/scifiSim.dir/scifiSim.cc.o.provides |
|||
|
|||
CMakeFiles/scifiSim.dir/scifiSim.cc.o.provides.build: CMakeFiles/scifiSim.dir/scifiSim.cc.o |
|||
|
|||
|
|||
CMakeFiles/scifiSim.dir/src/RunAction.cc.o: CMakeFiles/scifiSim.dir/flags.make |
|||
CMakeFiles/scifiSim.dir/src/RunAction.cc.o: src/RunAction.cc |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/work/SciFiMatG4_v2/SciFiSim/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/scifiSim.dir/src/RunAction.cc.o" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/scifiSim.dir/src/RunAction.cc.o -c /work/SciFiMatG4_v2/SciFiSim/src/RunAction.cc |
|||
|
|||
CMakeFiles/scifiSim.dir/src/RunAction.cc.i: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scifiSim.dir/src/RunAction.cc.i" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /work/SciFiMatG4_v2/SciFiSim/src/RunAction.cc > CMakeFiles/scifiSim.dir/src/RunAction.cc.i |
|||
|
|||
CMakeFiles/scifiSim.dir/src/RunAction.cc.s: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scifiSim.dir/src/RunAction.cc.s" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /work/SciFiMatG4_v2/SciFiSim/src/RunAction.cc -o CMakeFiles/scifiSim.dir/src/RunAction.cc.s |
|||
|
|||
CMakeFiles/scifiSim.dir/src/RunAction.cc.o.requires: |
|||
|
|||
.PHONY : CMakeFiles/scifiSim.dir/src/RunAction.cc.o.requires |
|||
|
|||
CMakeFiles/scifiSim.dir/src/RunAction.cc.o.provides: CMakeFiles/scifiSim.dir/src/RunAction.cc.o.requires |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/RunAction.cc.o.provides.build |
|||
.PHONY : CMakeFiles/scifiSim.dir/src/RunAction.cc.o.provides |
|||
|
|||
CMakeFiles/scifiSim.dir/src/RunAction.cc.o.provides.build: CMakeFiles/scifiSim.dir/src/RunAction.cc.o |
|||
|
|||
|
|||
CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o: CMakeFiles/scifiSim.dir/flags.make |
|||
CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o: src/PhysicsList.cc |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/work/SciFiMatG4_v2/SciFiSim/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o -c /work/SciFiMatG4_v2/SciFiSim/src/PhysicsList.cc |
|||
|
|||
CMakeFiles/scifiSim.dir/src/PhysicsList.cc.i: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scifiSim.dir/src/PhysicsList.cc.i" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /work/SciFiMatG4_v2/SciFiSim/src/PhysicsList.cc > CMakeFiles/scifiSim.dir/src/PhysicsList.cc.i |
|||
|
|||
CMakeFiles/scifiSim.dir/src/PhysicsList.cc.s: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scifiSim.dir/src/PhysicsList.cc.s" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /work/SciFiMatG4_v2/SciFiSim/src/PhysicsList.cc -o CMakeFiles/scifiSim.dir/src/PhysicsList.cc.s |
|||
|
|||
CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o.requires: |
|||
|
|||
.PHONY : CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o.requires |
|||
|
|||
CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o.provides: CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o.requires |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o.provides.build |
|||
.PHONY : CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o.provides |
|||
|
|||
CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o.provides.build: CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o |
|||
|
|||
|
|||
CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o: CMakeFiles/scifiSim.dir/flags.make |
|||
CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o: src/ActionInitialization.cc |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/work/SciFiMatG4_v2/SciFiSim/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o -c /work/SciFiMatG4_v2/SciFiSim/src/ActionInitialization.cc |
|||
|
|||
CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.i: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.i" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /work/SciFiMatG4_v2/SciFiSim/src/ActionInitialization.cc > CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.i |
|||
|
|||
CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.s: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.s" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /work/SciFiMatG4_v2/SciFiSim/src/ActionInitialization.cc -o CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.s |
|||
|
|||
CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o.requires: |
|||
|
|||
.PHONY : CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o.requires |
|||
|
|||
CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o.provides: CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o.requires |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o.provides.build |
|||
.PHONY : CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o.provides |
|||
|
|||
CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o.provides.build: CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o |
|||
|
|||
|
|||
CMakeFiles/scifiSim.dir/src/Analysis.cc.o: CMakeFiles/scifiSim.dir/flags.make |
|||
CMakeFiles/scifiSim.dir/src/Analysis.cc.o: src/Analysis.cc |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/work/SciFiMatG4_v2/SciFiSim/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object CMakeFiles/scifiSim.dir/src/Analysis.cc.o" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/scifiSim.dir/src/Analysis.cc.o -c /work/SciFiMatG4_v2/SciFiSim/src/Analysis.cc |
|||
|
|||
CMakeFiles/scifiSim.dir/src/Analysis.cc.i: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scifiSim.dir/src/Analysis.cc.i" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /work/SciFiMatG4_v2/SciFiSim/src/Analysis.cc > CMakeFiles/scifiSim.dir/src/Analysis.cc.i |
|||
|
|||
CMakeFiles/scifiSim.dir/src/Analysis.cc.s: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scifiSim.dir/src/Analysis.cc.s" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /work/SciFiMatG4_v2/SciFiSim/src/Analysis.cc -o CMakeFiles/scifiSim.dir/src/Analysis.cc.s |
|||
|
|||
CMakeFiles/scifiSim.dir/src/Analysis.cc.o.requires: |
|||
|
|||
.PHONY : CMakeFiles/scifiSim.dir/src/Analysis.cc.o.requires |
|||
|
|||
CMakeFiles/scifiSim.dir/src/Analysis.cc.o.provides: CMakeFiles/scifiSim.dir/src/Analysis.cc.o.requires |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/Analysis.cc.o.provides.build |
|||
.PHONY : CMakeFiles/scifiSim.dir/src/Analysis.cc.o.provides |
|||
|
|||
CMakeFiles/scifiSim.dir/src/Analysis.cc.o.provides.build: CMakeFiles/scifiSim.dir/src/Analysis.cc.o |
|||
|
|||
|
|||
CMakeFiles/scifiSim.dir/src/Parameters.cc.o: CMakeFiles/scifiSim.dir/flags.make |
|||
CMakeFiles/scifiSim.dir/src/Parameters.cc.o: src/Parameters.cc |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/work/SciFiMatG4_v2/SciFiSim/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object CMakeFiles/scifiSim.dir/src/Parameters.cc.o" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/scifiSim.dir/src/Parameters.cc.o -c /work/SciFiMatG4_v2/SciFiSim/src/Parameters.cc |
|||
|
|||
CMakeFiles/scifiSim.dir/src/Parameters.cc.i: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scifiSim.dir/src/Parameters.cc.i" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /work/SciFiMatG4_v2/SciFiSim/src/Parameters.cc > CMakeFiles/scifiSim.dir/src/Parameters.cc.i |
|||
|
|||
CMakeFiles/scifiSim.dir/src/Parameters.cc.s: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scifiSim.dir/src/Parameters.cc.s" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /work/SciFiMatG4_v2/SciFiSim/src/Parameters.cc -o CMakeFiles/scifiSim.dir/src/Parameters.cc.s |
|||
|
|||
CMakeFiles/scifiSim.dir/src/Parameters.cc.o.requires: |
|||
|
|||
.PHONY : CMakeFiles/scifiSim.dir/src/Parameters.cc.o.requires |
|||
|
|||
CMakeFiles/scifiSim.dir/src/Parameters.cc.o.provides: CMakeFiles/scifiSim.dir/src/Parameters.cc.o.requires |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/Parameters.cc.o.provides.build |
|||
.PHONY : CMakeFiles/scifiSim.dir/src/Parameters.cc.o.provides |
|||
|
|||
CMakeFiles/scifiSim.dir/src/Parameters.cc.o.provides.build: CMakeFiles/scifiSim.dir/src/Parameters.cc.o |
|||
|
|||
|
|||
CMakeFiles/scifiSim.dir/src/EventAction.cc.o: CMakeFiles/scifiSim.dir/flags.make |
|||
CMakeFiles/scifiSim.dir/src/EventAction.cc.o: src/EventAction.cc |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/work/SciFiMatG4_v2/SciFiSim/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building CXX object CMakeFiles/scifiSim.dir/src/EventAction.cc.o" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/scifiSim.dir/src/EventAction.cc.o -c /work/SciFiMatG4_v2/SciFiSim/src/EventAction.cc |
|||
|
|||
CMakeFiles/scifiSim.dir/src/EventAction.cc.i: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scifiSim.dir/src/EventAction.cc.i" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /work/SciFiMatG4_v2/SciFiSim/src/EventAction.cc > CMakeFiles/scifiSim.dir/src/EventAction.cc.i |
|||
|
|||
CMakeFiles/scifiSim.dir/src/EventAction.cc.s: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scifiSim.dir/src/EventAction.cc.s" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /work/SciFiMatG4_v2/SciFiSim/src/EventAction.cc -o CMakeFiles/scifiSim.dir/src/EventAction.cc.s |
|||
|
|||
CMakeFiles/scifiSim.dir/src/EventAction.cc.o.requires: |
|||
|
|||
.PHONY : CMakeFiles/scifiSim.dir/src/EventAction.cc.o.requires |
|||
|
|||
CMakeFiles/scifiSim.dir/src/EventAction.cc.o.provides: CMakeFiles/scifiSim.dir/src/EventAction.cc.o.requires |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/EventAction.cc.o.provides.build |
|||
.PHONY : CMakeFiles/scifiSim.dir/src/EventAction.cc.o.provides |
|||
|
|||
CMakeFiles/scifiSim.dir/src/EventAction.cc.o.provides.build: CMakeFiles/scifiSim.dir/src/EventAction.cc.o |
|||
|
|||
|
|||
CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o: CMakeFiles/scifiSim.dir/flags.make |
|||
CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o: src/SensitiveDetector.cc |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/work/SciFiMatG4_v2/SciFiSim/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o -c /work/SciFiMatG4_v2/SciFiSim/src/SensitiveDetector.cc |
|||
|
|||
CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.i: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.i" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /work/SciFiMatG4_v2/SciFiSim/src/SensitiveDetector.cc > CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.i |
|||
|
|||
CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.s: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.s" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /work/SciFiMatG4_v2/SciFiSim/src/SensitiveDetector.cc -o CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.s |
|||
|
|||
CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o.requires: |
|||
|
|||
.PHONY : CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o.requires |
|||
|
|||
CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o.provides: CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o.requires |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o.provides.build |
|||
.PHONY : CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o.provides |
|||
|
|||
CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o.provides.build: CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o |
|||
|
|||
|
|||
CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o: CMakeFiles/scifiSim.dir/flags.make |
|||
CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o: src/PrimaryGeneratorAction.cc |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/work/SciFiMatG4_v2/SciFiSim/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Building CXX object CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o -c /work/SciFiMatG4_v2/SciFiSim/src/PrimaryGeneratorAction.cc |
|||
|
|||
CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.i: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.i" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /work/SciFiMatG4_v2/SciFiSim/src/PrimaryGeneratorAction.cc > CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.i |
|||
|
|||
CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.s: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.s" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /work/SciFiMatG4_v2/SciFiSim/src/PrimaryGeneratorAction.cc -o CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.s |
|||
|
|||
CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o.requires: |
|||
|
|||
.PHONY : CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o.requires |
|||
|
|||
CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o.provides: CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o.requires |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o.provides.build |
|||
.PHONY : CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o.provides |
|||
|
|||
CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o.provides.build: CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o |
|||
|
|||
|
|||
CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o: CMakeFiles/scifiSim.dir/flags.make |
|||
CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o: src/SteppingAction.cc |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/work/SciFiMatG4_v2/SciFiSim/CMakeFiles --progress-num=$(CMAKE_PROGRESS_10) "Building CXX object CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o -c /work/SciFiMatG4_v2/SciFiSim/src/SteppingAction.cc |
|||
|
|||
CMakeFiles/scifiSim.dir/src/SteppingAction.cc.i: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scifiSim.dir/src/SteppingAction.cc.i" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /work/SciFiMatG4_v2/SciFiSim/src/SteppingAction.cc > CMakeFiles/scifiSim.dir/src/SteppingAction.cc.i |
|||
|
|||
CMakeFiles/scifiSim.dir/src/SteppingAction.cc.s: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scifiSim.dir/src/SteppingAction.cc.s" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /work/SciFiMatG4_v2/SciFiSim/src/SteppingAction.cc -o CMakeFiles/scifiSim.dir/src/SteppingAction.cc.s |
|||
|
|||
CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o.requires: |
|||
|
|||
.PHONY : CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o.requires |
|||
|
|||
CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o.provides: CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o.requires |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o.provides.build |
|||
.PHONY : CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o.provides |
|||
|
|||
CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o.provides.build: CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o |
|||
|
|||
|
|||
CMakeFiles/scifiSim.dir/src/StackingAction.cc.o: CMakeFiles/scifiSim.dir/flags.make |
|||
CMakeFiles/scifiSim.dir/src/StackingAction.cc.o: src/StackingAction.cc |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/work/SciFiMatG4_v2/SciFiSim/CMakeFiles --progress-num=$(CMAKE_PROGRESS_11) "Building CXX object CMakeFiles/scifiSim.dir/src/StackingAction.cc.o" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/scifiSim.dir/src/StackingAction.cc.o -c /work/SciFiMatG4_v2/SciFiSim/src/StackingAction.cc |
|||
|
|||
CMakeFiles/scifiSim.dir/src/StackingAction.cc.i: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scifiSim.dir/src/StackingAction.cc.i" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /work/SciFiMatG4_v2/SciFiSim/src/StackingAction.cc > CMakeFiles/scifiSim.dir/src/StackingAction.cc.i |
|||
|
|||
CMakeFiles/scifiSim.dir/src/StackingAction.cc.s: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scifiSim.dir/src/StackingAction.cc.s" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /work/SciFiMatG4_v2/SciFiSim/src/StackingAction.cc -o CMakeFiles/scifiSim.dir/src/StackingAction.cc.s |
|||
|
|||
CMakeFiles/scifiSim.dir/src/StackingAction.cc.o.requires: |
|||
|
|||
.PHONY : CMakeFiles/scifiSim.dir/src/StackingAction.cc.o.requires |
|||
|
|||
CMakeFiles/scifiSim.dir/src/StackingAction.cc.o.provides: CMakeFiles/scifiSim.dir/src/StackingAction.cc.o.requires |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/StackingAction.cc.o.provides.build |
|||
.PHONY : CMakeFiles/scifiSim.dir/src/StackingAction.cc.o.provides |
|||
|
|||
CMakeFiles/scifiSim.dir/src/StackingAction.cc.o.provides.build: CMakeFiles/scifiSim.dir/src/StackingAction.cc.o |
|||
|
|||
|
|||
CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o: CMakeFiles/scifiSim.dir/flags.make |
|||
CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o: src/DetectorConstruction.cc |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/work/SciFiMatG4_v2/SciFiSim/CMakeFiles --progress-num=$(CMAKE_PROGRESS_12) "Building CXX object CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o -c /work/SciFiMatG4_v2/SciFiSim/src/DetectorConstruction.cc |
|||
|
|||
CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.i: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.i" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /work/SciFiMatG4_v2/SciFiSim/src/DetectorConstruction.cc > CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.i |
|||
|
|||
CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.s: cmake_force |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.s" |
|||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /work/SciFiMatG4_v2/SciFiSim/src/DetectorConstruction.cc -o CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.s |
|||
|
|||
CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o.requires: |
|||
|
|||
.PHONY : CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o.requires |
|||
|
|||
CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o.provides: CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o.requires |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o.provides.build |
|||
.PHONY : CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o.provides |
|||
|
|||
CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o.provides.build: CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o |
|||
|
|||
|
|||
# Object files for target scifiSim |
|||
scifiSim_OBJECTS = \ |
|||
"CMakeFiles/scifiSim.dir/scifiSim.cc.o" \ |
|||
"CMakeFiles/scifiSim.dir/src/RunAction.cc.o" \ |
|||
"CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o" \ |
|||
"CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o" \ |
|||
"CMakeFiles/scifiSim.dir/src/Analysis.cc.o" \ |
|||
"CMakeFiles/scifiSim.dir/src/Parameters.cc.o" \ |
|||
"CMakeFiles/scifiSim.dir/src/EventAction.cc.o" \ |
|||
"CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o" \ |
|||
"CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o" \ |
|||
"CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o" \ |
|||
"CMakeFiles/scifiSim.dir/src/StackingAction.cc.o" \ |
|||
"CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o" |
|||
|
|||
# External object files for target scifiSim |
|||
scifiSim_EXTERNAL_OBJECTS = |
|||
|
|||
scifiSim: CMakeFiles/scifiSim.dir/scifiSim.cc.o |
|||
scifiSim: CMakeFiles/scifiSim.dir/src/RunAction.cc.o |
|||
scifiSim: CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o |
|||
scifiSim: CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o |
|||
scifiSim: CMakeFiles/scifiSim.dir/src/Analysis.cc.o |
|||
scifiSim: CMakeFiles/scifiSim.dir/src/Parameters.cc.o |
|||
scifiSim: CMakeFiles/scifiSim.dir/src/EventAction.cc.o |
|||
scifiSim: CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o |
|||
scifiSim: CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o |
|||
scifiSim: CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o |
|||
scifiSim: CMakeFiles/scifiSim.dir/src/StackingAction.cc.o |
|||
scifiSim: CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o |
|||
scifiSim: CMakeFiles/scifiSim.dir/build.make |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4Tree.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4GMocren.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4visHepRep.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4RayTracer.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4VRML.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4OpenGL.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4gl2ps.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4interfaces.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4persistency.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4analysis.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4error_propagation.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4readout.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4physicslists.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4parmodels.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4FR.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4vis_management.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4modeling.so |
|||
scifiSim: /usr/lib/x86_64-linux-gnu/libGLU.so |
|||
scifiSim: /usr/lib/x86_64-linux-gnu/libGL.so |
|||
scifiSim: /usr/lib/x86_64-linux-gnu/libSM.so |
|||
scifiSim: /usr/lib/x86_64-linux-gnu/libICE.so |
|||
scifiSim: /usr/lib/x86_64-linux-gnu/libX11.so |
|||
scifiSim: /usr/lib/x86_64-linux-gnu/libXext.so |
|||
scifiSim: /usr/lib/x86_64-linux-gnu/libXmu.so |
|||
scifiSim: /usr/lib/x86_64-linux-gnu/libQtOpenGL.so |
|||
scifiSim: /usr/lib/x86_64-linux-gnu/libQtGui.so |
|||
scifiSim: /usr/lib/x86_64-linux-gnu/libQtCore.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4run.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4event.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4tracking.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4processes.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4zlib.so |
|||
scifiSim: /usr/lib/x86_64-linux-gnu/libexpat.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4digits_hits.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4track.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4particles.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4geometry.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4materials.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4graphics_reps.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4intercoms.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4global.so |
|||
scifiSim: /work/geant4.10.02.p01-install/lib/libG4clhep.so |
|||
scifiSim: CMakeFiles/scifiSim.dir/link.txt |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/work/SciFiMatG4_v2/SciFiSim/CMakeFiles --progress-num=$(CMAKE_PROGRESS_13) "Linking CXX executable scifiSim" |
|||
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/scifiSim.dir/link.txt --verbose=$(VERBOSE) |
|||
|
|||
# Rule to build all files generated by this target. |
|||
CMakeFiles/scifiSim.dir/build: scifiSim |
|||
|
|||
.PHONY : CMakeFiles/scifiSim.dir/build |
|||
|
|||
CMakeFiles/scifiSim.dir/requires: CMakeFiles/scifiSim.dir/scifiSim.cc.o.requires |
|||
CMakeFiles/scifiSim.dir/requires: CMakeFiles/scifiSim.dir/src/RunAction.cc.o.requires |
|||
CMakeFiles/scifiSim.dir/requires: CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o.requires |
|||
CMakeFiles/scifiSim.dir/requires: CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o.requires |
|||
CMakeFiles/scifiSim.dir/requires: CMakeFiles/scifiSim.dir/src/Analysis.cc.o.requires |
|||
CMakeFiles/scifiSim.dir/requires: CMakeFiles/scifiSim.dir/src/Parameters.cc.o.requires |
|||
CMakeFiles/scifiSim.dir/requires: CMakeFiles/scifiSim.dir/src/EventAction.cc.o.requires |
|||
CMakeFiles/scifiSim.dir/requires: CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o.requires |
|||
CMakeFiles/scifiSim.dir/requires: CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o.requires |
|||
CMakeFiles/scifiSim.dir/requires: CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o.requires |
|||
CMakeFiles/scifiSim.dir/requires: CMakeFiles/scifiSim.dir/src/StackingAction.cc.o.requires |
|||
CMakeFiles/scifiSim.dir/requires: CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o.requires |
|||
|
|||
.PHONY : CMakeFiles/scifiSim.dir/requires |
|||
|
|||
CMakeFiles/scifiSim.dir/clean: |
|||
$(CMAKE_COMMAND) -P CMakeFiles/scifiSim.dir/cmake_clean.cmake |
|||
.PHONY : CMakeFiles/scifiSim.dir/clean |
|||
|
|||
CMakeFiles/scifiSim.dir/depend: |
|||
cd /work/SciFiMatG4_v2/SciFiSim && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /work/SciFiMatG4_v2/SciFiSim /work/SciFiMatG4_v2/SciFiSim /work/SciFiMatG4_v2/SciFiSim /work/SciFiMatG4_v2/SciFiSim /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/scifiSim.dir/DependInfo.cmake --color=$(COLOR) |
|||
.PHONY : CMakeFiles/scifiSim.dir/depend |
|||
|
@ -0,0 +1,21 @@ |
|||
file(REMOVE_RECURSE |
|||
"CMakeFiles/scifiSim.dir/scifiSim.cc.o" |
|||
"CMakeFiles/scifiSim.dir/src/RunAction.cc.o" |
|||
"CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o" |
|||
"CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o" |
|||
"CMakeFiles/scifiSim.dir/src/Analysis.cc.o" |
|||
"CMakeFiles/scifiSim.dir/src/Parameters.cc.o" |
|||
"CMakeFiles/scifiSim.dir/src/EventAction.cc.o" |
|||
"CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o" |
|||
"CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o" |
|||
"CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o" |
|||
"CMakeFiles/scifiSim.dir/src/StackingAction.cc.o" |
|||
"CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o" |
|||
"scifiSim.pdb" |
|||
"scifiSim" |
|||
) |
|||
|
|||
# Per-language clean rules from dependency scanning. |
|||
foreach(lang CXX) |
|||
include(CMakeFiles/scifiSim.dir/cmake_clean_${lang}.cmake OPTIONAL) |
|||
endforeach() |
@ -0,0 +1,2 @@ |
|||
# Empty dependencies file for scifiSim. |
|||
# This may be replaced when dependencies are built. |
@ -0,0 +1,8 @@ |
|||
# CMAKE generated file: DO NOT EDIT! |
|||
# Generated by "Unix Makefiles" Generator, CMake Version 3.3 |
|||
|
|||
# compile CXX with /usr/bin/c++ |
|||
CXX_FLAGS = -W -Wall -pedantic -Wno-non-virtual-dtor -Wno-long-long -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -Wno-variadic-macros -Wshadow -pipe -DG4USE_STD11 -std=c++11 -isystem /work/geant4.10.02.p01-install/include/Geant4 -isystem /usr/include/qt4 -isystem /usr/include/qt4/QtCore -isystem /usr/include/qt4/QtGui -isystem /usr/include/qt4/QtOpenGL -I/work/SciFiMatG4_v2/SciFiSim/include -I/usr/local/include -std=c++11 |
|||
|
|||
CXX_DEFINES = -DG4INTY_USE_QT -DG4INTY_USE_XT -DG4UI_USE -DG4UI_USE_QT -DG4UI_USE_TCSH -DG4VERBOSE -DG4VIS_USE -DG4VIS_USE_OPENGL -DG4VIS_USE_OPENGLQT -DG4VIS_USE_OPENGLX -DG4_STORE_TRAJECTORY |
|||
|
@ -0,0 +1 @@ |
|||
/usr/bin/c++ -W -Wall -pedantic -Wno-non-virtual-dtor -Wno-long-long -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -Wno-variadic-macros -Wshadow -pipe -DG4USE_STD11 -std=c++11 CMakeFiles/scifiSim.dir/scifiSim.cc.o CMakeFiles/scifiSim.dir/src/RunAction.cc.o CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o CMakeFiles/scifiSim.dir/src/Analysis.cc.o CMakeFiles/scifiSim.dir/src/Parameters.cc.o CMakeFiles/scifiSim.dir/src/EventAction.cc.o CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o CMakeFiles/scifiSim.dir/src/StackingAction.cc.o CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o -o scifiSim -rdynamic /work/geant4.10.02.p01-install/lib/libG4Tree.so /work/geant4.10.02.p01-install/lib/libG4GMocren.so /work/geant4.10.02.p01-install/lib/libG4visHepRep.so /work/geant4.10.02.p01-install/lib/libG4RayTracer.so /work/geant4.10.02.p01-install/lib/libG4VRML.so /work/geant4.10.02.p01-install/lib/libG4OpenGL.so /work/geant4.10.02.p01-install/lib/libG4gl2ps.so /work/geant4.10.02.p01-install/lib/libG4interfaces.so /work/geant4.10.02.p01-install/lib/libG4persistency.so /work/geant4.10.02.p01-install/lib/libG4analysis.so /work/geant4.10.02.p01-install/lib/libG4error_propagation.so /work/geant4.10.02.p01-install/lib/libG4readout.so /work/geant4.10.02.p01-install/lib/libG4physicslists.so /work/geant4.10.02.p01-install/lib/libG4parmodels.so -L/usr/local/lib -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -pthread -lm -ldl -rdynamic /work/geant4.10.02.p01-install/lib/libG4FR.so /work/geant4.10.02.p01-install/lib/libG4vis_management.so /work/geant4.10.02.p01-install/lib/libG4modeling.so -lGLU -lGL -lSM -lICE -lX11 -lXext -lXmu -lQtOpenGL -lQtGui -lQtCore /work/geant4.10.02.p01-install/lib/libG4run.so /work/geant4.10.02.p01-install/lib/libG4event.so /work/geant4.10.02.p01-install/lib/libG4tracking.so /work/geant4.10.02.p01-install/lib/libG4processes.so /work/geant4.10.02.p01-install/lib/libG4zlib.so -lexpat /work/geant4.10.02.p01-install/lib/libG4digits_hits.so /work/geant4.10.02.p01-install/lib/libG4track.so /work/geant4.10.02.p01-install/lib/libG4particles.so /work/geant4.10.02.p01-install/lib/libG4geometry.so /work/geant4.10.02.p01-install/lib/libG4materials.so /work/geant4.10.02.p01-install/lib/libG4graphics_reps.so /work/geant4.10.02.p01-install/lib/libG4intercoms.so /work/geant4.10.02.p01-install/lib/libG4global.so /work/geant4.10.02.p01-install/lib/libG4clhep.so -Wl,-rpath,/work/geant4.10.02.p01-install/lib |
@ -0,0 +1,14 @@ |
|||
CMAKE_PROGRESS_1 = 1 |
|||
CMAKE_PROGRESS_2 = 2 |
|||
CMAKE_PROGRESS_3 = 3 |
|||
CMAKE_PROGRESS_4 = 4 |
|||
CMAKE_PROGRESS_5 = 5 |
|||
CMAKE_PROGRESS_6 = 6 |
|||
CMAKE_PROGRESS_7 = 7 |
|||
CMAKE_PROGRESS_8 = 8 |
|||
CMAKE_PROGRESS_9 = 9 |
|||
CMAKE_PROGRESS_10 = 10 |
|||
CMAKE_PROGRESS_11 = 11 |
|||
CMAKE_PROGRESS_12 = 12 |
|||
CMAKE_PROGRESS_13 = 13 |
|||
|
@ -0,0 +1,81 @@ |
|||
# $Id: CMakeLists.txt 86065 2014-11-07 08:51:15Z gcosmo $ |
|||
|
|||
#---------------------------------------------------------------------------- |
|||
# Setup the project |
|||
cmake_minimum_required(VERSION 2.6 FATAL_ERROR) |
|||
project(scifiSim) |
|||
|
|||
#---------------------------------------------------------------------------- |
|||
# Find Geant4 package, activating all available UI and Vis drivers by default |
|||
# You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui |
|||
# to build a batch mode only executable |
|||
# |
|||
option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON) |
|||
if(WITH_GEANT4_UIVIS) |
|||
find_package(Geant4 REQUIRED ui_all vis_all) |
|||
else() |
|||
find_package(Geant4 REQUIRED) |
|||
endif() |
|||
|
|||
#---------------------------------------------------------------------------- |
|||
# Setup Geant4 include directories and compile definitions |
|||
# Setup include directory for this project |
|||
# |
|||
include(${Geant4_USE_FILE}) |
|||
include_directories(${PROJECT_SOURCE_DIR}/include) |
|||
|
|||
#include("FindROOT.cmake") |
|||
set(CMAKE_MODULE_PATH$ENV{ROOTSYS}/etc/cmake) |
|||
find_package(ROOT REQUIRED) |
|||
list(APPEND libs $ENV{ROOTSYS}/lib) |
|||
include_directories($ENV{ROOTSYS}/include) |
|||
message(status $ENV{ROOTSYS}/include) |
|||
|
|||
|
|||
#---------------------------------------------------------------------------- |
|||
# Locate sources and headers for this project |
|||
# NB: headers are included so they will show up in IDEs |
|||
# |
|||
file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) |
|||
file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) |
|||
|
|||
#---------------------------------------------------------------------------- |
|||
# Add the executable, and link it to the Geant4 libraries |
|||
# |
|||
add_executable(scifiSim scifiSim.cc ${sources} ${headers}) |
|||
target_link_libraries(scifiSim ${Geant4_LIBRARIES} ${ROOT_LIBRARIES}) |
|||
|
|||
#---------------------------------------------------------------------------- |
|||
# Copy all scripts to the build directory, i.e. the directory in which we |
|||
# build B1. This is so that we can run the executable directly because it |
|||
# relies on these scripts being in the current working directory. |
|||
# |
|||
set(EXAMPLEB1_SCRIPTS |
|||
# exampleB1.in |
|||
# exampleB1.out |
|||
# init_vis.mac |
|||
# run1.mac |
|||
# run2.mac |
|||
# vis.mac |
|||
) |
|||
|
|||
foreach(_script ${EXAMPLEB1_SCRIPTS}) |
|||
configure_file( |
|||
${PROJECT_SOURCE_DIR}/${_script} |
|||
${PROJECT_BINARY_DIR}/${_script} |
|||
COPYONLY |
|||
) |
|||
endforeach() |
|||
|
|||
#---------------------------------------------------------------------------- |
|||
# For internal Geant4 use - but has no effect if you build this |
|||
# example standalone |
|||
# |
|||
add_custom_target(DEPENDS) |
|||
|
|||
#---------------------------------------------------------------------------- |
|||
# Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX |
|||
# |
|||
install(TARGETS DESTINATION bin) |
|||
|
|||
|
@ -0,0 +1,160 @@ |
|||
# - Finds ROOT instalation |
|||
# This module sets up ROOT information |
|||
# It defines: |
|||
# ROOT_FOUND If the ROOT is found |
|||
# ROOT_INCLUDE_DIR PATH to the include directory |
|||
# ROOT_LIBRARIES Most common libraries |
|||
# ROOT_LIBRARY_DIR PATH to the library directory |
|||
|
|||
|
|||
find_program(ROOT_CONFIG_EXECUTABLE root-config |
|||
PATHS $ENV{ROOTSYS}/bin) |
|||
|
|||
if(NOT ROOT_CONFIG_EXECUTABLE) |
|||
set(ROOT_FOUND FALSE) |
|||
else() |
|||
set(ROOT_FOUND TRUE) |
|||
|
|||
execute_process( |
|||
COMMAND ${ROOT_CONFIG_EXECUTABLE} --prefix |
|||
OUTPUT_VARIABLE ROOTSYS |
|||
OUTPUT_STRIP_TRAILING_WHITESPACE) |
|||
|
|||
execute_process( |
|||
COMMAND ${ROOT_CONFIG_EXECUTABLE} --version |
|||
OUTPUT_VARIABLE ROOT_VERSION |
|||
OUTPUT_STRIP_TRAILING_WHITESPACE) |
|||
|
|||
execute_process( |
|||
COMMAND ${ROOT_CONFIG_EXECUTABLE} --incdir |
|||
OUTPUT_VARIABLE ROOT_INCLUDE_DIR |
|||
OUTPUT_STRIP_TRAILING_WHITESPACE) |
|||
|
|||
execute_process( |
|||
COMMAND ${ROOT_CONFIG_EXECUTABLE} --libs |
|||
OUTPUT_VARIABLE ROOT_LIBRARIES |
|||
OUTPUT_STRIP_TRAILING_WHITESPACE) |
|||
|
|||
#set(ROOT_LIBRARIES ${ROOT_LIBRARIES} -lThread -lMinuit -lHtml -lVMC -lEG -lGeom -lTreePlayer -lXMLIO -lProof) |
|||
#set(ROOT_LIBRARIES ${ROOT_LIBRARIES} -lProofPlayer -lMLP -lSpectrum -lEve -lRGL -lGed -lXMLParser -lPhysics) |
|||
set(ROOT_LIBRARY_DIR ${ROOTSYS}/lib) |
|||
|
|||
# Make variables changeble to the advanced user |
|||
mark_as_advanced(ROOT_CONFIG_EXECUTABLE) |
|||
|
|||
if(NOT ROOT_FIND_QUIETLY) |
|||
message(STATUS "Found ROOT ${ROOT_VERSION} in ${ROOTSYS}") |
|||
endif() |
|||
endif() |
|||
|
|||
|
|||
include(CMakeParseArguments) |
|||
find_program(ROOTCINT_EXECUTABLE rootcint PATHS $ENV{ROOTSYS}/bin) |
|||
find_program(GENREFLEX_EXECUTABLE genreflex PATHS $ENV{ROOTSYS}/bin) |
|||
find_package(GCCXML) |
|||
|
|||
#---------------------------------------------------------------------------- |
|||
# function ROOT_GENERATE_DICTIONARY( dictionary |
|||
# header1 header2 ... |
|||
# LINKDEF linkdef1 ... |
|||
# OPTIONS opt1...) |
|||
function(ROOT_GENERATE_DICTIONARY dictionary) |
|||
CMAKE_PARSE_ARGUMENTS(ARG "" "" "LINKDEF;OPTIONS" "" ${ARGN}) |
|||
#---Get the list of header files------------------------- |
|||
set(headerfiles) |
|||
foreach(fp ${ARG_UNPARSED_ARGUMENTS}) |
|||
file(GLOB files ${fp}) |
|||
if(files) |
|||
foreach(f ${files}) |
|||
if(NOT f MATCHES LinkDef) |
|||
set(headerfiles ${headerfiles} ${f}) |
|||
endif() |
|||
endforeach() |
|||
else() |
|||
set(headerfiles ${headerfiles} ${fp}) |
|||
endif() |
|||
endforeach() |
|||
#---Get the list of include directories------------------ |
|||
get_directory_property(incdirs INCLUDE_DIRECTORIES) |
|||
set(includedirs) |
|||
foreach( d ${incdirs}) |
|||
set(includedirs ${includedirs} -I${d}) |
|||
endforeach() |
|||
#---Get LinkDef.h file------------------------------------ |
|||
set(linkdefs) |
|||
foreach( f ${ARG_LINKDEF}) |
|||
if( IS_ABSOLUTE ${f}) |
|||
set(linkdefs ${linkdefs} ${f}) |
|||
else() |
|||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/inc/${f}) |
|||
set(linkdefs ${linkdefs} ${CMAKE_CURRENT_SOURCE_DIR}/inc/${f}) |
|||
else() |
|||
set(linkdefs ${linkdefs} ${CMAKE_CURRENT_SOURCE_DIR}/${f}) |
|||
endif() |
|||
endif() |
|||
endforeach() |
|||
#---call rootcint------------------------------------------ |
|||
add_custom_command(OUTPUT ${dictionary}.cxx ${dictionary}.h |
|||
COMMAND ${ROOTCINT_EXECUTABLE} -cint -f ${dictionary}.cxx |
|||
-c ${ARG_OPTIONS} ${includedirs} ${headerfiles} ${linkdefs} |
|||
DEPENDS ${headerfiles} ${linkdefs}) |
|||
endfunction() |
|||
|
|||
#---------------------------------------------------------------------------- |
|||
# function REFLEX_GENERATE_DICTIONARY(dictionary |
|||
# header1 header2 ... |
|||
# SELECTION selectionfile ... |
|||
# OPTIONS opt1...) |
|||
function(REFLEX_GENERATE_DICTIONARY dictionary) |
|||
CMAKE_PARSE_ARGUMENTS(ARG "" "" "SELECTION;OPTIONS" "" ${ARGN}) |
|||
#---Get the list of header files------------------------- |
|||
set(headerfiles) |
|||
foreach(fp ${ARG_UNPARSED_ARGUMENTS}) |
|||
file(GLOB files ${fp}) |
|||
if(files) |
|||
foreach(f ${files}) |
|||
set(headerfiles ${headerfiles} ${f}) |
|||
endforeach() |
|||
else() |
|||
set(headerfiles ${headerfiles} ${fp}) |
|||
endif() |
|||
endforeach() |
|||
#---Get Selection file------------------------------------ |
|||
if(IS_ABSOLUTE ${ARG_SELECTION}) |
|||
set(selectionfile ${ARG_SELECTION}) |
|||
else() |
|||
set(selectionfile ${CMAKE_CURRENT_SOURCE_DIR}/${ARG_SELECTION}) |
|||
endif() |
|||
#---Get the list of include directories------------------ |
|||
get_directory_property(incdirs INCLUDE_DIRECTORIES) |
|||
set(includedirs) |
|||
foreach( d ${incdirs}) |
|||
set(includedirs ${includedirs} -I${d}) |
|||
endforeach() |
|||
#---Get preprocessor definitions-------------------------- |
|||
get_directory_property(defs COMPILE_DEFINITIONS) |
|||
foreach( d ${defs}) |
|||
set(definitions ${definitions} -D${d}) |
|||
endforeach() |
|||
#---Nanes and others--------------------------------------- |
|||
set(gensrcdict ${dictionary}.cpp) |
|||
if(MSVC) |
|||
set(gccxmlopts "--gccxmlopt=\"--gccxml-compiler cl\"") |
|||
else() |
|||
#set(gccxmlopts "--gccxmlopt=\'--gccxml-cxxflags -m64 \'") |
|||
set(gccxmlopts) |
|||
endif() |
|||
#set(rootmapname ${dictionary}Dict.rootmap) |
|||
#set(rootmapopts --rootmap=${rootmapname} --rootmap-lib=${libprefix}${dictionary}Dict) |
|||
#---Check GCCXML and get path----------------------------- |
|||
if(GCCXML) |
|||
get_filename_component(gccxmlpath ${GCCXML} PATH) |
|||
else() |
|||
message(WARNING "GCCXML not found. Install and setup your environment to find 'gccxml' executable") |
|||
endif() |
|||
#---Actual command---------------------------------------- |
|||
add_custom_command(OUTPUT ${gensrcdict} ${rootmapname} |
|||
COMMAND ${GENREFLEX_EXECUTABLE} ${headerfiles} -o ${gensrcdict} ${gccxmlopts} ${rootmapopts} --select=${selectionfile} |
|||
--gccxmlpath=${gccxmlpath} ${ARG_OPTIONS} ${includedirs} ${definitions} |
|||
DEPENDS ${headerfiles} ${selectionfile}) |
|||
endfunction() |
@ -0,0 +1,38 @@ |
|||
# $Id: GNUmakefile 42 2010-01-15 15:48:21Z vnivanch $
|
|||
# --------------------------------------------------------------
|
|||
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
|
|||
# Modified by Mirco Deckenhoff 11/09/13
|
|||
# --------------------------------------------------------------
|
|||
|
|||
name := scifiSim |
|||
G4TARGET := $(name) |
|||
G4EXLIB := true |
|||
|
|||
.PHONY: all |
|||
all: lib bin |
|||
ifndef G4SYSTEM |
|||
G4SYSTEM = Linux-g++ |
|||
endif |
|||
|
|||
ifndef G4LIB |
|||
G4LIB = /work/geant4.10.1-install/lib64 |
|||
endif |
|||
|
|||
ifndef G4INSTALL |
|||
G4INSTALL = /work/geant4.10.1-install/share/Geant4-10.1.0/geant4make |
|||
endif |
|||
|
|||
include $(G4INSTALL)/config/architecture.gmk |
|||
|
|||
#Add ROOT options for compilation
|
|||
|
|||
CPPFLAGS += `root-config --cflags --ldflags` |
|||
LDFLAGS += `root-config --libs --glibs` |
|||
|
|||
CPPFLAGS += `geant4-config --cflags` |
|||
LDFLAGS += `geant4-config --libs` |
|||
|
|||
CPPFLAGS += -std=c++11 |
|||
|
|||
include $(G4INSTALL)/config/binmake.gmk |
|||
|
@ -0,0 +1,38 @@ |
|||
# $Id: GNUmakefile 42 2010-01-15 15:48:21Z vnivanch $ |
|||
# -------------------------------------------------------------- |
|||
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. |
|||
# Modified by Mirco Deckenhoff 11/09/13 |
|||
# -------------------------------------------------------------- |
|||
|
|||
name := scifiSim |
|||
G4TARGET := $(name) |
|||
G4EXLIB := true |
|||
|
|||
.PHONY: all |
|||
all: lib bin |
|||
ifndef G4SYSTEM |
|||
G4SYSTEM = Linux-g++ |
|||
endif |
|||
|
|||
ifndef G4LIB |
|||
G4LIB = /work/roessler/geant4.10.00.p02-install/lib64 |
|||
endif |
|||
|
|||
ifndef G4INSTALL |
|||
G4INSTALL = /work/roessler/geant4.10.00.p02-install/share/Geant4-10.0.2/geant4make |
|||
endif |
|||
|
|||
include $(G4INSTALL)/config/architecture.gmk |
|||
|
|||
#Add ROOT options for compilation |
|||
|
|||
CPPFLAGS += `root-config --cflags` |
|||
LDFLAGS += `root-config --libs` |
|||
|
|||
CPPFLAGS += `geant4-config --cflags` |
|||
LDFLAGS += `geant4-config --libs` |
|||
|
|||
CPPFLAGS += -std=c++11 |
|||
|
|||
include $(G4INSTALL)/config/binmake.gmk |
|||
|
@ -0,0 +1,558 @@ |
|||
# CMAKE generated file: DO NOT EDIT!
|
|||
# Generated by "Unix Makefiles" Generator, CMake Version 3.3
|
|||
|
|||
# Default target executed when no arguments are given to make.
|
|||
default_target: all |
|||
|
|||
.PHONY : default_target |
|||
|
|||
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
|
|||
.NOTPARALLEL: |
|||
|
|||
|
|||
#=============================================================================
|
|||
# Special targets provided by cmake.
|
|||
|
|||
# Disable implicit rules so canonical targets will work.
|
|||
.SUFFIXES: |
|||
|
|||
|
|||
# Remove some rules from gmake that .SUFFIXES does not remove.
|
|||
SUFFIXES = |
|||
|
|||
.SUFFIXES: .hpux_make_needs_suffix_list |
|||
|
|||
|
|||
# Suppress display of executed commands.
|
|||
$(VERBOSE).SILENT: |
|||
|
|||
|
|||
# A target that is always out of date.
|
|||
cmake_force: |
|||
|
|||
.PHONY : cmake_force |
|||
|
|||
#=============================================================================
|
|||
# Set environment variables for the build.
|
|||
|
|||
# The shell in which to execute make rules.
|
|||
SHELL = /bin/sh |
|||
|
|||
# The CMake executable.
|
|||
CMAKE_COMMAND = /home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake |
|||
|
|||
# The command to remove a file.
|
|||
RM = /home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -E remove -f |
|||
|
|||
# Escaping for special characters.
|
|||
EQUALS = = |
|||
|
|||
# The top-level source directory on which CMake was run.
|
|||
CMAKE_SOURCE_DIR = /work/SciFiMatG4_v2/SciFiSim |
|||
|
|||
# The top-level build directory on which CMake was run.
|
|||
CMAKE_BINARY_DIR = /work/SciFiMatG4_v2/SciFiSim |
|||
|
|||
#=============================================================================
|
|||
# Targets provided globally by CMake.
|
|||
|
|||
# Special rule for the target rebuild_cache
|
|||
rebuild_cache: |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." |
|||
/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) |
|||
.PHONY : rebuild_cache |
|||
|
|||
# Special rule for the target rebuild_cache
|
|||
rebuild_cache/fast: rebuild_cache |
|||
|
|||
.PHONY : rebuild_cache/fast |
|||
|
|||
# Special rule for the target list_install_components
|
|||
list_install_components: |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Only default component available" |
|||
.PHONY : list_install_components |
|||
|
|||
# Special rule for the target list_install_components
|
|||
list_install_components/fast: list_install_components |
|||
|
|||
.PHONY : list_install_components/fast |
|||
|
|||
# Special rule for the target install
|
|||
install: preinstall |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." |
|||
/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -P cmake_install.cmake |
|||
.PHONY : install |
|||
|
|||
# Special rule for the target install
|
|||
install/fast: preinstall/fast |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." |
|||
/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -P cmake_install.cmake |
|||
.PHONY : install/fast |
|||
|
|||
# Special rule for the target install/local
|
|||
install/local: preinstall |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." |
|||
/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake |
|||
.PHONY : install/local |
|||
|
|||
# Special rule for the target install/local
|
|||
install/local/fast: install/local |
|||
|
|||
.PHONY : install/local/fast |
|||
|
|||
# Special rule for the target edit_cache
|
|||
edit_cache: |
|||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." |
|||
/home/leverington/Programs/cmake-3.3.2-Linux-x86_64/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) |
|||
.PHONY : edit_cache |
|||
|
|||
# Special rule for the target edit_cache
|
|||
edit_cache/fast: edit_cache |
|||
|
|||
.PHONY : edit_cache/fast |
|||
|
|||
# The main all target
|
|||
all: cmake_check_build_system |
|||
$(CMAKE_COMMAND) -E cmake_progress_start /work/SciFiMatG4_v2/SciFiSim/CMakeFiles /work/SciFiMatG4_v2/SciFiSim/CMakeFiles/progress.marks |
|||
$(MAKE) -f CMakeFiles/Makefile2 all |
|||
$(CMAKE_COMMAND) -E cmake_progress_start /work/SciFiMatG4_v2/SciFiSim/CMakeFiles 0 |
|||
.PHONY : all |
|||
|
|||
# The main clean target
|
|||
clean: |
|||
$(MAKE) -f CMakeFiles/Makefile2 clean |
|||
.PHONY : clean |
|||
|
|||
# The main clean target
|
|||
clean/fast: clean |
|||
|
|||
.PHONY : clean/fast |
|||
|
|||
# Prepare targets for installation.
|
|||
preinstall: all |
|||
$(MAKE) -f CMakeFiles/Makefile2 preinstall |
|||
.PHONY : preinstall |
|||
|
|||
# Prepare targets for installation.
|
|||
preinstall/fast: |
|||
$(MAKE) -f CMakeFiles/Makefile2 preinstall |
|||
.PHONY : preinstall/fast |
|||
|
|||
# clear depends
|
|||
depend: |
|||
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 |
|||
.PHONY : depend |
|||
|
|||
#=============================================================================
|
|||
# Target rules for targets named DEPENDS
|
|||
|
|||
# Build rule for target.
|
|||
DEPENDS: cmake_check_build_system |
|||
$(MAKE) -f CMakeFiles/Makefile2 DEPENDS |
|||
.PHONY : DEPENDS |
|||
|
|||
# fast build rule for target.
|
|||
DEPENDS/fast: |
|||
$(MAKE) -f CMakeFiles/DEPENDS.dir/build.make CMakeFiles/DEPENDS.dir/build |
|||
.PHONY : DEPENDS/fast |
|||
|
|||
#=============================================================================
|
|||
# Target rules for targets named scifiSim
|
|||
|
|||
# Build rule for target.
|
|||
scifiSim: cmake_check_build_system |
|||
$(MAKE) -f CMakeFiles/Makefile2 scifiSim |
|||
.PHONY : scifiSim |
|||
|
|||
# fast build rule for target.
|
|||
scifiSim/fast: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/build |
|||
.PHONY : scifiSim/fast |
|||
|
|||
scifiSim.o: scifiSim.cc.o |
|||
|
|||
.PHONY : scifiSim.o |
|||
|
|||
# target to build an object file
|
|||
scifiSim.cc.o: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/scifiSim.cc.o |
|||
.PHONY : scifiSim.cc.o |
|||
|
|||
scifiSim.i: scifiSim.cc.i |
|||
|
|||
.PHONY : scifiSim.i |
|||
|
|||
# target to preprocess a source file
|
|||
scifiSim.cc.i: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/scifiSim.cc.i |
|||
.PHONY : scifiSim.cc.i |
|||
|
|||
scifiSim.s: scifiSim.cc.s |
|||
|
|||
.PHONY : scifiSim.s |
|||
|
|||
# target to generate assembly for a file
|
|||
scifiSim.cc.s: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/scifiSim.cc.s |
|||
.PHONY : scifiSim.cc.s |
|||
|
|||
src/ActionInitialization.o: src/ActionInitialization.cc.o |
|||
|
|||
.PHONY : src/ActionInitialization.o |
|||
|
|||
# target to build an object file
|
|||
src/ActionInitialization.cc.o: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.o |
|||
.PHONY : src/ActionInitialization.cc.o |
|||
|
|||
src/ActionInitialization.i: src/ActionInitialization.cc.i |
|||
|
|||
.PHONY : src/ActionInitialization.i |
|||
|
|||
# target to preprocess a source file
|
|||
src/ActionInitialization.cc.i: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.i |
|||
.PHONY : src/ActionInitialization.cc.i |
|||
|
|||
src/ActionInitialization.s: src/ActionInitialization.cc.s |
|||
|
|||
.PHONY : src/ActionInitialization.s |
|||
|
|||
# target to generate assembly for a file
|
|||
src/ActionInitialization.cc.s: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/ActionInitialization.cc.s |
|||
.PHONY : src/ActionInitialization.cc.s |
|||
|
|||
src/Analysis.o: src/Analysis.cc.o |
|||
|
|||
.PHONY : src/Analysis.o |
|||
|
|||
# target to build an object file
|
|||
src/Analysis.cc.o: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/Analysis.cc.o |
|||
.PHONY : src/Analysis.cc.o |
|||
|
|||
src/Analysis.i: src/Analysis.cc.i |
|||
|
|||
.PHONY : src/Analysis.i |
|||
|
|||
# target to preprocess a source file
|
|||
src/Analysis.cc.i: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/Analysis.cc.i |
|||
.PHONY : src/Analysis.cc.i |
|||
|
|||
src/Analysis.s: src/Analysis.cc.s |
|||
|
|||
.PHONY : src/Analysis.s |
|||
|
|||
# target to generate assembly for a file
|
|||
src/Analysis.cc.s: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/Analysis.cc.s |
|||
.PHONY : src/Analysis.cc.s |
|||
|
|||
src/DetectorConstruction.o: src/DetectorConstruction.cc.o |
|||
|
|||
.PHONY : src/DetectorConstruction.o |
|||
|
|||
# target to build an object file
|
|||
src/DetectorConstruction.cc.o: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.o |
|||
.PHONY : src/DetectorConstruction.cc.o |
|||
|
|||
src/DetectorConstruction.i: src/DetectorConstruction.cc.i |
|||
|
|||
.PHONY : src/DetectorConstruction.i |
|||
|
|||
# target to preprocess a source file
|
|||
src/DetectorConstruction.cc.i: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.i |
|||
.PHONY : src/DetectorConstruction.cc.i |
|||
|
|||
src/DetectorConstruction.s: src/DetectorConstruction.cc.s |
|||
|
|||
.PHONY : src/DetectorConstruction.s |
|||
|
|||
# target to generate assembly for a file
|
|||
src/DetectorConstruction.cc.s: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/DetectorConstruction.cc.s |
|||
.PHONY : src/DetectorConstruction.cc.s |
|||
|
|||
src/EventAction.o: src/EventAction.cc.o |
|||
|
|||
.PHONY : src/EventAction.o |
|||
|
|||
# target to build an object file
|
|||
src/EventAction.cc.o: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/EventAction.cc.o |
|||
.PHONY : src/EventAction.cc.o |
|||
|
|||
src/EventAction.i: src/EventAction.cc.i |
|||
|
|||
.PHONY : src/EventAction.i |
|||
|
|||
# target to preprocess a source file
|
|||
src/EventAction.cc.i: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/EventAction.cc.i |
|||
.PHONY : src/EventAction.cc.i |
|||
|
|||
src/EventAction.s: src/EventAction.cc.s |
|||
|
|||
.PHONY : src/EventAction.s |
|||
|
|||
# target to generate assembly for a file
|
|||
src/EventAction.cc.s: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/EventAction.cc.s |
|||
.PHONY : src/EventAction.cc.s |
|||
|
|||
src/Parameters.o: src/Parameters.cc.o |
|||
|
|||
.PHONY : src/Parameters.o |
|||
|
|||
# target to build an object file
|
|||
src/Parameters.cc.o: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/Parameters.cc.o |
|||
.PHONY : src/Parameters.cc.o |
|||
|
|||
src/Parameters.i: src/Parameters.cc.i |
|||
|
|||
.PHONY : src/Parameters.i |
|||
|
|||
# target to preprocess a source file
|
|||
src/Parameters.cc.i: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/Parameters.cc.i |
|||
.PHONY : src/Parameters.cc.i |
|||
|
|||
src/Parameters.s: src/Parameters.cc.s |
|||
|
|||
.PHONY : src/Parameters.s |
|||
|
|||
# target to generate assembly for a file
|
|||
src/Parameters.cc.s: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/Parameters.cc.s |
|||
.PHONY : src/Parameters.cc.s |
|||
|
|||
src/PhysicsList.o: src/PhysicsList.cc.o |
|||
|
|||
.PHONY : src/PhysicsList.o |
|||
|
|||
# target to build an object file
|
|||
src/PhysicsList.cc.o: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/PhysicsList.cc.o |
|||
.PHONY : src/PhysicsList.cc.o |
|||
|
|||
src/PhysicsList.i: src/PhysicsList.cc.i |
|||
|
|||
.PHONY : src/PhysicsList.i |
|||
|
|||
# target to preprocess a source file
|
|||
src/PhysicsList.cc.i: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/PhysicsList.cc.i |
|||
.PHONY : src/PhysicsList.cc.i |
|||
|
|||
src/PhysicsList.s: src/PhysicsList.cc.s |
|||
|
|||
.PHONY : src/PhysicsList.s |
|||
|
|||
# target to generate assembly for a file
|
|||
src/PhysicsList.cc.s: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/PhysicsList.cc.s |
|||
.PHONY : src/PhysicsList.cc.s |
|||
|
|||
src/PrimaryGeneratorAction.o: src/PrimaryGeneratorAction.cc.o |
|||
|
|||
.PHONY : src/PrimaryGeneratorAction.o |
|||
|
|||
# target to build an object file
|
|||
src/PrimaryGeneratorAction.cc.o: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.o |
|||
.PHONY : src/PrimaryGeneratorAction.cc.o |
|||
|
|||
src/PrimaryGeneratorAction.i: src/PrimaryGeneratorAction.cc.i |
|||
|
|||
.PHONY : src/PrimaryGeneratorAction.i |
|||
|
|||
# target to preprocess a source file
|
|||
src/PrimaryGeneratorAction.cc.i: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.i |
|||
.PHONY : src/PrimaryGeneratorAction.cc.i |
|||
|
|||
src/PrimaryGeneratorAction.s: src/PrimaryGeneratorAction.cc.s |
|||
|
|||
.PHONY : src/PrimaryGeneratorAction.s |
|||
|
|||
# target to generate assembly for a file
|
|||
src/PrimaryGeneratorAction.cc.s: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/PrimaryGeneratorAction.cc.s |
|||
.PHONY : src/PrimaryGeneratorAction.cc.s |
|||
|
|||
src/RunAction.o: src/RunAction.cc.o |
|||
|
|||
.PHONY : src/RunAction.o |
|||
|
|||
# target to build an object file
|
|||
src/RunAction.cc.o: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/RunAction.cc.o |
|||
.PHONY : src/RunAction.cc.o |
|||
|
|||
src/RunAction.i: src/RunAction.cc.i |
|||
|
|||
.PHONY : src/RunAction.i |
|||
|
|||
# target to preprocess a source file
|
|||
src/RunAction.cc.i: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/RunAction.cc.i |
|||
.PHONY : src/RunAction.cc.i |
|||
|
|||
src/RunAction.s: src/RunAction.cc.s |
|||
|
|||
.PHONY : src/RunAction.s |
|||
|
|||
# target to generate assembly for a file
|
|||
src/RunAction.cc.s: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/RunAction.cc.s |
|||
.PHONY : src/RunAction.cc.s |
|||
|
|||
src/SensitiveDetector.o: src/SensitiveDetector.cc.o |
|||
|
|||
.PHONY : src/SensitiveDetector.o |
|||
|
|||
# target to build an object file
|
|||
src/SensitiveDetector.cc.o: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.o |
|||
.PHONY : src/SensitiveDetector.cc.o |
|||
|
|||
src/SensitiveDetector.i: src/SensitiveDetector.cc.i |
|||
|
|||
.PHONY : src/SensitiveDetector.i |
|||
|
|||
# target to preprocess a source file
|
|||
src/SensitiveDetector.cc.i: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.i |
|||
.PHONY : src/SensitiveDetector.cc.i |
|||
|
|||
src/SensitiveDetector.s: src/SensitiveDetector.cc.s |
|||
|
|||
.PHONY : src/SensitiveDetector.s |
|||
|
|||
# target to generate assembly for a file
|
|||
src/SensitiveDetector.cc.s: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/SensitiveDetector.cc.s |
|||
.PHONY : src/SensitiveDetector.cc.s |
|||
|
|||
src/StackingAction.o: src/StackingAction.cc.o |
|||
|
|||
.PHONY : src/StackingAction.o |
|||
|
|||
# target to build an object file
|
|||
src/StackingAction.cc.o: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/StackingAction.cc.o |
|||
.PHONY : src/StackingAction.cc.o |
|||
|
|||
src/StackingAction.i: src/StackingAction.cc.i |
|||
|
|||
.PHONY : src/StackingAction.i |
|||
|
|||
# target to preprocess a source file
|
|||
src/StackingAction.cc.i: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/StackingAction.cc.i |
|||
.PHONY : src/StackingAction.cc.i |
|||
|
|||
src/StackingAction.s: src/StackingAction.cc.s |
|||
|
|||
.PHONY : src/StackingAction.s |
|||
|
|||
# target to generate assembly for a file
|
|||
src/StackingAction.cc.s: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/StackingAction.cc.s |
|||
.PHONY : src/StackingAction.cc.s |
|||
|
|||
src/SteppingAction.o: src/SteppingAction.cc.o |
|||
|
|||
.PHONY : src/SteppingAction.o |
|||
|
|||
# target to build an object file
|
|||
src/SteppingAction.cc.o: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/SteppingAction.cc.o |
|||
.PHONY : src/SteppingAction.cc.o |
|||
|
|||
src/SteppingAction.i: src/SteppingAction.cc.i |
|||
|
|||
.PHONY : src/SteppingAction.i |
|||
|
|||
# target to preprocess a source file
|
|||
src/SteppingAction.cc.i: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/SteppingAction.cc.i |
|||
.PHONY : src/SteppingAction.cc.i |
|||
|
|||
src/SteppingAction.s: src/SteppingAction.cc.s |
|||
|
|||
.PHONY : src/SteppingAction.s |
|||
|
|||
# target to generate assembly for a file
|
|||
src/SteppingAction.cc.s: |
|||
$(MAKE) -f CMakeFiles/scifiSim.dir/build.make CMakeFiles/scifiSim.dir/src/SteppingAction.cc.s |
|||
.PHONY : src/SteppingAction.cc.s |
|||
|
|||
# Help Target
|
|||
help: |
|||
@echo "The following are some of the valid targets for this Makefile:" |
|||
@echo "... all (the default if no target is provided)" |
|||
@echo "... clean" |
|||
@echo "... depend" |
|||
@echo "... rebuild_cache" |
|||
@echo "... list_install_components" |
|||
@echo "... install" |
|||
@echo "... install/local" |
|||
@echo "... DEPENDS" |
|||
@echo "... edit_cache" |
|||
@echo "... scifiSim" |
|||
@echo "... scifiSim.o" |
|||
@echo "... scifiSim.i" |
|||
@echo "... scifiSim.s" |
|||
@echo "... src/ActionInitialization.o" |
|||
@echo "... src/ActionInitialization.i" |
|||
@echo "... src/ActionInitialization.s" |
|||
@echo "... src/Analysis.o" |
|||
@echo "... src/Analysis.i" |
|||
@echo "... src/Analysis.s" |
|||
@echo "... src/DetectorConstruction.o" |
|||
@echo "... src/DetectorConstruction.i" |
|||
@echo "... src/DetectorConstruction.s" |
|||
@echo "... src/EventAction.o" |
|||
@echo "... src/EventAction.i" |
|||
@echo "... src/EventAction.s" |
|||
@echo "... src/Parameters.o" |
|||
@echo "... src/Parameters.i" |
|||
@echo "... src/Parameters.s" |
|||
@echo "... src/PhysicsList.o" |
|||
@echo "... src/PhysicsList.i" |
|||
@echo "... src/PhysicsList.s" |
|||
@echo "... src/PrimaryGeneratorAction.o" |
|||
@echo "... src/PrimaryGeneratorAction.i" |
|||
@echo "... src/PrimaryGeneratorAction.s" |
|||
@echo "... src/RunAction.o" |
|||
@echo "... src/RunAction.i" |
|||
@echo "... src/RunAction.s" |
|||
@echo "... src/SensitiveDetector.o" |
|||
@echo "... src/SensitiveDetector.i" |
|||
@echo "... src/SensitiveDetector.s" |
|||
@echo "... src/StackingAction.o" |
|||
@echo "... src/StackingAction.i" |
|||
@echo "... src/StackingAction.s" |
|||
@echo "... src/SteppingAction.o" |
|||
@echo "... src/SteppingAction.i" |
|||
@echo "... src/SteppingAction.s" |
|||
.PHONY : help |
|||
|
|||
|
|||
|
|||
#=============================================================================
|
|||
# Special targets to cleanup operation of make.
|
|||
|
|||
# Special rule to run CMake to check the build system integrity.
|
|||
# No rule that depends on this can have commands that come from listfiles
|
|||
# because they might be regenerated.
|
|||
cmake_check_build_system: |
|||
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 |
|||
.PHONY : cmake_check_build_system |
|||
|
@ -0,0 +1,15 @@ |
|||
wrandomSeed; // random seed for random engine |
|||
randomNumber; // random number for detector strip positioning |
|||
threadNumb; // the thread number |
|||
fibreLength; // length of fibre in meter |
|||
semiAxisZ; // semi axis of fibre in z in millimeter |
|||
semiAxisY; // semi axis of fibre in y in millimeter |
|||
triggerX; // x-size of Trigger in mm |
|||
triggerY; // y-size of Trigger in mm |
|||
triggerZ; // z-size of Trigger in mm |
|||
triggerXPos; // x-position of Trigger in millimeter |
|||
triggerZPos; // z-position of Trigger in millimeter |
|||
probabilityOfPhotonLossAtSurface; // probability that a photon is killed when reaching fibre surface |
|||
placeMirror; // place a mirror at fibre end |
|||
mirrorReflectivity; // reflectivity of mirror at fibre end |
|||
detectorMaterial; // place a mirror at fibre end |
@ -0,0 +1,44 @@ |
|||
# Install script for directory: /work/SciFiMatG4_v2/SciFiSim |
|||
|
|||
# Set the install prefix |
|||
if(NOT DEFINED CMAKE_INSTALL_PREFIX) |
|||
set(CMAKE_INSTALL_PREFIX "/usr/local") |
|||
endif() |
|||
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") |
|||
|
|||
# Set the install configuration name. |
|||
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) |
|||
if(BUILD_TYPE) |
|||
string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" |
|||
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") |
|||
else() |
|||
set(CMAKE_INSTALL_CONFIG_NAME "") |
|||
endif() |
|||
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") |
|||
endif() |
|||
|
|||
# Set the component getting installed. |
|||
if(NOT CMAKE_INSTALL_COMPONENT) |
|||
if(COMPONENT) |
|||
message(STATUS "Install component: \"${COMPONENT}\"") |
|||
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") |
|||
else() |
|||
set(CMAKE_INSTALL_COMPONENT) |
|||
endif() |
|||
endif() |
|||
|
|||
# Install shared libraries without execute permission? |
|||
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) |
|||
set(CMAKE_INSTALL_SO_NO_EXE "1") |
|||
endif() |
|||
|
|||
if(CMAKE_INSTALL_COMPONENT) |
|||
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") |
|||
else() |
|||
set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") |
|||
endif() |
|||
|
|||
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT |
|||
"${CMAKE_INSTALL_MANIFEST_FILES}") |
|||
file(WRITE "/work/SciFiMatG4_v2/SciFiSim/${CMAKE_INSTALL_MANIFEST}" |
|||
"${CMAKE_INSTALL_MANIFEST_CONTENT}") |
@ -0,0 +1,25 @@ |
|||
# - uninstall target template |
|||
# |
|||
if (NOT EXISTS "/work/roessler/SciFiSim/install_manifest.txt") |
|||
message(FATAL_ERROR "Cannot find install manifest: \"/work/roessler/SciFiSim/install_manifest.txt\"") |
|||
endif(NOT EXISTS "/work/roessler/SciFiSim/install_manifest.txt") |
|||
|
|||
file(READ "/work/roessler/SciFiSim/install_manifest.txt" files) |
|||
string(REGEX REPLACE "\n" ";" files "${files}") |
|||
|
|||
foreach (file ${files}) |
|||
message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") |
|||
if (EXISTS "$ENV{DESTDIR}${file}") |
|||
execute_process( |
|||
COMMAND /auto/lhcb/lib/contrib/CMake/2.8.9/Linux-i386/bin/cmake -E remove "$ENV{DESTDIR}${file}" |
|||
OUTPUT_VARIABLE rm_out |
|||
RESULT_VARIABLE rm_retval |
|||
) |
|||
if(NOT ${rm_retval} EQUAL 0) |
|||
message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") |
|||
endif (NOT ${rm_retval} EQUAL 0) |
|||
else (EXISTS "$ENV{DESTDIR}${file}") |
|||
message(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.") |
|||
endif (EXISTS "$ENV{DESTDIR}${file}") |
|||
endforeach(file) |
|||
|
@ -0,0 +1,25 @@ |
|||
# - uninstall target template |
|||
# |
|||
if (NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") |
|||
message(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") |
|||
endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") |
|||
|
|||
file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) |
|||
string(REGEX REPLACE "\n" ";" files "${files}") |
|||
|
|||
foreach (file ${files}) |
|||
message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") |
|||
if (EXISTS "$ENV{DESTDIR}${file}") |
|||
execute_process( |
|||
COMMAND @CMAKE_COMMAND@ -E remove "$ENV{DESTDIR}${file}" |
|||
OUTPUT_VARIABLE rm_out |
|||
RESULT_VARIABLE rm_retval |
|||
) |
|||
if(NOT ${rm_retval} EQUAL 0) |
|||
message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") |
|||
endif (NOT ${rm_retval} EQUAL 0) |
|||
else (EXISTS "$ENV{DESTDIR}${file}") |
|||
message(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.") |
|||
endif (EXISTS "$ENV{DESTDIR}${file}") |
|||
endforeach(file) |
|||
|
@ -0,0 +1,152 @@ |
|||
# - Validate sources listed in sources.cmake with those on disk |
|||
# This file is configured by Geant4 to locate all sources.cmake files in |
|||
# the source tree used by the current build tree. |
|||
# |
|||
# We have to parse the sources.cmake files for the headers and sources |
|||
# because these files use the include_directories command, which is non |
|||
# scriptable. A simple REGEX is used to find all the .cc, .hh and .icc |
|||
# files listed in eah sources.cmake file. These lists are compared with |
|||
# a GLOB of those in the include and src directories of the module |
|||
# corresponding to the sources.cmake file. |
|||
# |
|||
# Warnings are printed when a mismatch is detected. |
|||
# |
|||
# Note that certain modules have configurable source lists and so we |
|||
# expect these to show a mismatch. We allow for this by providing the |
|||
# variable: |
|||
# |
|||
# GEANT4_FALSEPOSITIVE_SOURCES List of all source files (.cc, .hh, .icc) |
|||
# that may result in false positive mismatch. |
|||
# |
|||
# As this file is configured by Geant4's CMake system the generated |
|||
# file "geant4_validate_sources.cmake" SHOULD NOT BE EDITED |
|||
# |
|||
|
|||
#----------------------------------------------------------------------- |
|||
# List all sources that we know cause false positives, e.g. obsolete, |
|||
# but still on disk |
|||
# |
|||
set(GEANT4_FALSEPOSITIVE_SOURCES |
|||
# - Xaw is deprecated... |
|||
G4UIXaw.hh |
|||
G4UIXaw.cc |
|||
# - OpenGL Wt not yet supported.... |
|||
G4OpenGLImmediateWt.hh |
|||
G4OpenGLImmediateWtViewer.hh |
|||
G4OpenGLWtViewer.hh |
|||
G4OpenGLImmediateWt.cc |
|||
G4OpenGLImmediateWtViewer.cc |
|||
G4OpenGLWtViewer.cc |
|||
# - VRML has icc files in the src/ directory. These are only used |
|||
# internally but validate_sources assumes icc files will be in |
|||
# include/ |
|||
# They are covered in sources.cmake though! |
|||
G4VRML1SceneHandlerFunc.icc |
|||
G4VRML2SceneHandlerFunc.icc |
|||
# - Documentation of processes/hadronic/models/cascade/cascade |
|||
# lists some sources in in comments. These do not correspond to |
|||
# real sources so we can safely filter them |
|||
# TODO : Improve regex to identify comments!!!! |
|||
T1xxChannel.cc |
|||
XXChannel.cc |
|||
) |
|||
|
|||
#----------------------------------------------------------------------- |
|||
# First locate our current source tree |
|||
# |
|||
set(GEANT4_SOURCE_TREE "/work/leverington/geant4.10.1-build/source") |
|||
message(STATUS "Scanning source tree ${GEANT4_SOURCE_TREE}") |
|||
|
|||
#----------------------------------------------------------------------- |
|||
# Now find all of the sources.cmake files... |
|||
# |
|||
file(GLOB_RECURSE GEANT4_SOURCESCMAKE_FILES |
|||
${GEANT4_SOURCE_TREE}/*/sources.cmake |
|||
) |
|||
list(LENGTH GEANT4_SOURCESCMAKE_FILES GEANT4_SOURCESCMAKE_COUNT) |
|||
message(STATUS "Located ${GEANT4_SOURCESCMAKE_COUNT} sources.cmake files") |
|||
|
|||
#----------------------------------------------------------------------- |
|||
# Parse each modules and process... |
|||
# |
|||
foreach(_sourcesfile ${GEANT4_SOURCESCMAKE_FILES}) |
|||
# - Where are we? |
|||
get_filename_component(_sourcesfile_location ${_sourcesfile} PATH) |
|||
|
|||
# - Find on disk files... |
|||
file(GLOB |
|||
_ondisk_hh |
|||
RELATIVE ${_sourcesfile_location}/include |
|||
${_sourcesfile_location}/include/*.hh |
|||
${_sourcesfile_location}/include/*.icc |
|||
) |
|||
file(GLOB |
|||
_ondisk_cc |
|||
RELATIVE ${_sourcesfile_location}/src |
|||
${_sourcesfile_location}/src/*.cc |
|||
) |
|||
|
|||
# - Find files listed in sources.cmake |
|||
# Ouch, we have to use a READ, because we can't load the module directly |
|||
# due to it using the non scriptable command include_directories. |
|||
file(READ ${_sourcesfile} _sourcesfile_contents) |
|||
string(REGEX MATCHALL "[A-Z0-9a-z_]+\\.cc" _sources_cc "${_sourcesfile_contents}") |
|||
string(REGEX MATCHALL "[A-Z0-9a-z_]+\\.(hh|icc)" _sources_hh "${_sourcesfile_contents}") |
|||
|
|||
# - If we take the difference of each list (in both directions), |
|||
# then there should be no mismatch if resulting lists are empty. |
|||
# - On disk, but not in sources |
|||
set(_cmp_ondisk ${_ondisk_hh} ${_ondisk_cc}) |
|||
set(_cmp_sources ${_sources_hh} ${_sources_cc}) |
|||
list(REMOVE_ITEM _cmp_ondisk ${_cmp_sources}) |
|||
set(_missing_in_sources ${_cmp_ondisk}) |
|||
|
|||
# - In sources, but not on disk |
|||
set(_cmp_ondisk ${_ondisk_hh} ${_ondisk_cc}) |
|||
set(_cmp_sources ${_sources_hh} ${_sources_cc}) |
|||
list(REMOVE_ITEM _cmp_sources ${_cmp_ondisk}) |
|||
set(_missing_on_disk ${_cmp_sources}) |
|||
|
|||
# - Remove known false positives - can probably move this to above |
|||
# difference calculation. |
|||
if(_missing_in_sources) |
|||
list(REMOVE_ITEM _missing_in_sources ${GEANT4_FALSEPOSITIVE_SOURCES}) |
|||
endif() |
|||
if(_missing_on_disk) |
|||
list(REMOVE_ITEM _missing_on_disk ${GEANT4_FALSEPOSITIVE_SOURCES}) |
|||
endif() |
|||
|
|||
# - Report if either list is not empty |
|||
if(_missing_in_sources OR _missing_on_disk) |
|||
message(" ") |
|||
message("Problems detected in ${_sourcesfile_location}:") |
|||
set(GEANT4_BUILD_ISINCONSISTENT TRUE) |
|||
|
|||
# - New/Obsolete File Error |
|||
if(_missing_in_sources) |
|||
message("Sources on disk but not listed in sources.cmake:") |
|||
foreach(_m ${_missing_in_sources}) |
|||
message(" ${_m}") |
|||
endforeach() |
|||
endif() |
|||
|
|||
# - Removed File Error - In general, should be picked up at standard |
|||
# CMake run time, but we double report here to be paranoid. |
|||
if(_missing_on_disk) |
|||
message("Sources listed in sources.cmake but not on disk:") |
|||
foreach(_m ${_missing_on_disk}) |
|||
message(" ${_m}") |
|||
endforeach() |
|||
endif() |
|||
endif() |
|||
endforeach() |
|||
|
|||
#----------------------------------------------------------------------- |
|||
# Final fail? |
|||
# |
|||
if(GEANT4_BUILD_ISINCONSISTENT) |
|||
message(FATAL_ERROR "Inconsistent Geant4 build detected!") |
|||
else() |
|||
message(STATUS "Geant4 build appears consistent") |
|||
endif() |
|||
|
@ -0,0 +1,152 @@ |
|||
# - Validate sources listed in sources.cmake with those on disk |
|||
# This file is configured by Geant4 to locate all sources.cmake files in |
|||
# the source tree used by the current build tree. |
|||
# |
|||
# We have to parse the sources.cmake files for the headers and sources |
|||
# because these files use the include_directories command, which is non |
|||
# scriptable. A simple REGEX is used to find all the .cc, .hh and .icc |
|||
# files listed in eah sources.cmake file. These lists are compared with |
|||
# a GLOB of those in the include and src directories of the module |
|||
# corresponding to the sources.cmake file. |
|||
# |
|||
# Warnings are printed when a mismatch is detected. |
|||
# |
|||
# Note that certain modules have configurable source lists and so we |
|||
# expect these to show a mismatch. We allow for this by providing the |
|||
# variable: |
|||
# |
|||
# GEANT4_FALSEPOSITIVE_SOURCES List of all source files (.cc, .hh, .icc) |
|||
# that may result in false positive mismatch. |
|||
# |
|||
# As this file is configured by Geant4's CMake system the generated |
|||
# file "geant4_validate_sources.cmake" SHOULD NOT BE EDITED |
|||
# |
|||
|
|||
#----------------------------------------------------------------------- |
|||
# List all sources that we know cause false positives, e.g. obsolete, |
|||
# but still on disk |
|||
# |
|||
set(GEANT4_FALSEPOSITIVE_SOURCES |
|||
# - Xaw is deprecated... |
|||
G4UIXaw.hh |
|||
G4UIXaw.cc |
|||
# - OpenGL Wt not yet supported.... |
|||
G4OpenGLImmediateWt.hh |
|||
G4OpenGLImmediateWtViewer.hh |
|||
G4OpenGLWtViewer.hh |
|||
G4OpenGLImmediateWt.cc |
|||
G4OpenGLImmediateWtViewer.cc |
|||
G4OpenGLWtViewer.cc |
|||
# - VRML has icc files in the src/ directory. These are only used |
|||
# internally but validate_sources assumes icc files will be in |
|||
# include/ |
|||
# They are covered in sources.cmake though! |
|||
G4VRML1SceneHandlerFunc.icc |
|||
G4VRML2SceneHandlerFunc.icc |
|||
# - Documentation of processes/hadronic/models/cascade/cascade |
|||
# lists some sources in in comments. These do not correspond to |
|||
# real sources so we can safely filter them |
|||
# TODO : Improve regex to identify comments!!!! |
|||
T1xxChannel.cc |
|||
XXChannel.cc |
|||
) |
|||
|
|||
#----------------------------------------------------------------------- |
|||
# First locate our current source tree |
|||
# |
|||
set(GEANT4_SOURCE_TREE "/work/roessler/geant4.10.00.p02/source") |
|||
message(STATUS "Scanning source tree ${GEANT4_SOURCE_TREE}") |
|||
|
|||
#----------------------------------------------------------------------- |
|||
# Now find all of the sources.cmake files... |
|||
# |
|||
file(GLOB_RECURSE GEANT4_SOURCESCMAKE_FILES |
|||
${GEANT4_SOURCE_TREE}/*/sources.cmake |
|||
) |
|||
list(LENGTH GEANT4_SOURCESCMAKE_FILES GEANT4_SOURCESCMAKE_COUNT) |
|||
message(STATUS "Located ${GEANT4_SOURCESCMAKE_COUNT} sources.cmake files") |
|||
|
|||
#----------------------------------------------------------------------- |
|||
# Parse each modules and process... |
|||
# |
|||
foreach(_sourcesfile ${GEANT4_SOURCESCMAKE_FILES}) |
|||
# - Where are we? |
|||
get_filename_component(_sourcesfile_location ${_sourcesfile} PATH) |
|||
|
|||
# - Find on disk files... |
|||
file(GLOB |
|||
_ondisk_hh |
|||
RELATIVE ${_sourcesfile_location}/include |
|||
${_sourcesfile_location}/include/*.hh |
|||
${_sourcesfile_location}/include/*.icc |
|||
) |
|||
file(GLOB |
|||
_ondisk_cc |
|||
RELATIVE ${_sourcesfile_location}/src |
|||
${_sourcesfile_location}/src/*.cc |
|||
) |
|||
|
|||
# - Find files listed in sources.cmake |
|||
# Ouch, we have to use a READ, because we can't load the module directly |
|||
# due to it using the non scriptable command include_directories. |
|||
file(READ ${_sourcesfile} _sourcesfile_contents) |
|||
string(REGEX MATCHALL "[A-Z0-9a-z_]+\\.cc" _sources_cc "${_sourcesfile_contents}") |
|||
string(REGEX MATCHALL "[A-Z0-9a-z_]+\\.(hh|icc)" _sources_hh "${_sourcesfile_contents}") |
|||
|
|||
# - If we take the difference of each list (in both directions), |
|||
# then there should be no mismatch if resulting lists are empty. |
|||
# - On disk, but not in sources |
|||
set(_cmp_ondisk ${_ondisk_hh} ${_ondisk_cc}) |
|||
set(_cmp_sources ${_sources_hh} ${_sources_cc}) |
|||
list(REMOVE_ITEM _cmp_ondisk ${_cmp_sources}) |
|||
set(_missing_in_sources ${_cmp_ondisk}) |
|||
|
|||
# - In sources, but not on disk |
|||
set(_cmp_ondisk ${_ondisk_hh} ${_ondisk_cc}) |
|||
set(_cmp_sources ${_sources_hh} ${_sources_cc}) |
|||
list(REMOVE_ITEM _cmp_sources ${_cmp_ondisk}) |
|||
set(_missing_on_disk ${_cmp_sources}) |
|||
|
|||
# - Remove known false positives - can probably move this to above |
|||
# difference calculation. |
|||
if(_missing_in_sources) |
|||
list(REMOVE_ITEM _missing_in_sources ${GEANT4_FALSEPOSITIVE_SOURCES}) |
|||
endif() |
|||
if(_missing_on_disk) |
|||
list(REMOVE_ITEM _missing_on_disk ${GEANT4_FALSEPOSITIVE_SOURCES}) |
|||
endif() |
|||
|
|||
# - Report if either list is not empty |
|||
if(_missing_in_sources OR _missing_on_disk) |
|||
message(" ") |
|||
message("Problems detected in ${_sourcesfile_location}:") |
|||
set(GEANT4_BUILD_ISINCONSISTENT TRUE) |
|||
|
|||
# - New/Obsolete File Error |
|||
if(_missing_in_sources) |
|||
message("Sources on disk but not listed in sources.cmake:") |
|||
foreach(_m ${_missing_in_sources}) |
|||
message(" ${_m}") |
|||
endforeach() |
|||
endif() |
|||
|
|||
# - Removed File Error - In general, should be picked up at standard |
|||
# CMake run time, but we double report here to be paranoid. |
|||
if(_missing_on_disk) |
|||
message("Sources listed in sources.cmake but not on disk:") |
|||
foreach(_m ${_missing_on_disk}) |
|||
message(" ${_m}") |
|||
endforeach() |
|||
endif() |
|||
endif() |
|||
endforeach() |
|||
|
|||
#----------------------------------------------------------------------- |
|||
# Final fail? |
|||
# |
|||
if(GEANT4_BUILD_ISINCONSISTENT) |
|||
message(FATAL_ERROR "Inconsistent Geant4 build detected!") |
|||
else() |
|||
message(STATUS "Geant4 build appears consistent") |
|||
endif() |
|||
|
@ -0,0 +1,62 @@ |
|||
// Written by Peter Stromberger |
|||
// based on work of Mirco Deckenhoff |
|||
|
|||
#ifndef SteppingAction_H |
|||
#define SteppingAction_H 1 |
|||
|
|||
|
|||
#include "globals.hh" |
|||
#include "G4UserSteppingAction.hh" |
|||
#include "G4OpBoundaryProcess.hh" |
|||
#include "EventAction.hh" |
|||
#include "G4ParticleDefinition.hh" |
|||
#include "PrimaryGeneratorAction.hh" |
|||
#include "TFile.h" |
|||
#include "TH2F.h" |
|||
#include "TH1F.h" |
|||
#include "TTree.h" |
|||
#include "TObject.h" |
|||
|
|||
|
|||
|
|||
|
|||
class SteppingAction : public G4UserSteppingAction |
|||
{ |
|||
|
|||
|
|||
|
|||
public: |
|||
SteppingAction(EventAction* eventAction, PrimaryGeneratorAction* pGA); |
|||
virtual ~SteppingAction(); |
|||
virtual void UserSteppingAction( const G4Step* ); |
|||
|
|||
TFile * doseFile; |
|||
TH2F * dosehist50invfb; |
|||
Float_t dose; |
|||
|
|||
private: |
|||
const char* primParticle; |
|||
G4ParticleDefinition* primDefinition; |
|||
PrimaryGeneratorAction* pGA; |
|||
EventAction* fEventAction; |
|||
G4int creatorProcess; |
|||
G4OpBoundaryProcess* opBoundaryProcess; |
|||
|
|||
|
|||
TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("dose.root"); |
|||
|
|||
|
|||
TH2F * dosehist50invfb = (TH2F*)doseFile->Get("dosehist50invfb"); |
|||
|
|||
if (dosehist50invfb){ |
|||
dosehist50invfb->SetDirectory(0); |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
}; |
|||
|
|||
|
|||
|
|||
#endif |
@ -0,0 +1,27 @@ |
|||
/*
|
|||
* Author : Peter Stromberger |
|||
* Email : stromberger@physi.uni-heidelberg.de |
|||
* Date : 14.05.2014 |
|||
* |
|||
* Description: Definition of the ActionInitialization class |
|||
* |
|||
* file: ActionInitialization.hh |
|||
*/ |
|||
|
|||
#ifndef ActionInitialization_h
|
|||
#define ActionInitialization_h 1
|
|||
|
|||
#include "G4VUserActionInitialization.hh"
|
|||
|
|||
|
|||
class ActionInitialization : public G4VUserActionInitialization{ |
|||
|
|||
public: |
|||
ActionInitialization(); |
|||
virtual ~ActionInitialization(); |
|||
|
|||
virtual void BuildForMaster() const; |
|||
virtual void Build() const; |
|||
}; |
|||
|
|||
#endif
|
@ -0,0 +1,203 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
|
|||
|
|||
#ifndef ANALYSIS_HH_
|
|||
#define ANALYSIS_HH_ 1
|
|||
|
|||
#include "G4Event.hh"
|
|||
#include "G4Run.hh"
|
|||
#include "G4ThreeVector.hh"
|
|||
#include "TFile.h"
|
|||
#include "TH2F.h"
|
|||
#include "TH1F.h"
|
|||
#include "TTree.h"
|
|||
#include "TObject.h"
|
|||
|
|||
#include <vector>
|
|||
#include <iostream>
|
|||
|
|||
|
|||
class Analysis { |
|||
|
|||
public: |
|||
|
|||
static Analysis* GetInstance() |
|||
{ |
|||
if ( Analysis::singleton == NULL ) Analysis::singleton = new Analysis(); |
|||
|
|||
return Analysis::singleton; |
|||
} |
|||
|
|||
virtual ~Analysis() {}; |
|||
void PrepareNewEvent(const G4Event* anEvent); |
|||
void PrepareNewRun(const G4Run* anRun); |
|||
void EndOfRun(); |
|||
void Close(); |
|||
|
|||
|
|||
// Adds a new row to the tree : detectedPhotons
|
|||
void FillDetectedPhotons(Double_t runID, Double_t eventID, Double_t detNumb, Double_t xPixel, |
|||
Double_t yPixel, Double_t energy, |
|||
Double_t time, Double_t length, Double_t absTime, |
|||
Double_t x, Double_t y, Double_t z, |
|||
Double_t px, Double_t py, Double_t pz, |
|||
Double_t vertexX, Double_t vertexY, Double_t vertexZ, |
|||
Double_t vertexPx, Double_t vertexPy, Double_t vertexPz, |
|||
Int_t trackId, |
|||
Int_t creatorProcess, Int_t parentId); |
|||
|
|||
// Adds a new to to the tree : trigger
|
|||
void FillTrigger(Double_t runID, Double_t eventID, Double_t edep, |
|||
Double_t xPos, Double_t yPos, Double_t zPos); |
|||
|
|||
// Adds a new to to the tree : initialParticle
|
|||
void FillInitialParticle(Double_t runID, Double_t eventID, |
|||
Double_t energy, Double_t xMom, Double_t yMom, Double_t zMom); |
|||
|
|||
// Adds a new to to the tree : primaryParticleTrack
|
|||
void FillPrimaryParticleTrack(Double_t runID, Double_t eventID, Double_t xPos, Double_t yPos, Double_t zPos); |
|||
|
|||
// Adds a new to to the tree : energyTrack
|
|||
void FillEnergyTrack(Double_t runID, Double_t eventID, Double_t energy, Double_t trackL); |
|||
|
|||
void SetGpsPosition(G4ThreeVector position); |
|||
void SetGpsDirection(G4ThreeVector directtion); |
|||
|
|||
|
|||
|
|||
|
|||
char* FileName(); |
|||
|
|||
|
|||
void IncreaseReflectionsAtMirror(Int_t trackId); |
|||
void IncreaseReflectionsAtFibreSurface(Int_t trackId); |
|||
void IncreaseTotalReflectionsAtCladCladInterface(Int_t trackId); |
|||
void IncreaseTotalReflectionsAtCoreCladInterface(Int_t trackId); |
|||
void IncreaseFresnelReflectionsAtCladCladInterface(Int_t trackId); |
|||
void IncreaseFresnelReflectionsAtCoreCladInterface(Int_t trackId); |
|||
|
|||
void IncreaseRefractionsAtCladCladInterface(Int_t trackId); |
|||
void IncreaseRefractionsAtCoreCladInterface(Int_t trackId); |
|||
|
|||
void IncreaseRayleighScatterings(Int_t trackId); |
|||
|
|||
void IncreaseReflectionRefractionAndScatteringVectors(Int_t trackId); |
|||
|
|||
|
|||
void IncreaseLengthInCore(Int_t trackId, Float_t lengthValue); |
|||
void IncreaseLengthInInnerCladding(Int_t trackId, Float_t lengthValue); |
|||
void IncreaseLengthInOuterCladding(Int_t trackId, Float_t lengthValue); |
|||
|
|||
void IncreaseLengthVectors(Int_t trackId); |
|||
|
|||
|
|||
private: |
|||
|
|||
Analysis(); |
|||
static Analysis* singleton; |
|||
|
|||
TFile* dataFile; |
|||
|
|||
char fileName[40]; |
|||
|
|||
TH1F * h_energy; |
|||
TH1F * h_trackL; |
|||
|
|||
TTree* detectedPhotons; |
|||
TTree* trigger; |
|||
TTree* primaryParticleTrack; |
|||
TTree* initialParticle; |
|||
TTree* energyTrack; |
|||
|
|||
|
|||
Float_t runIDBuffer; |
|||
Float_t eventIDBuffer; |
|||
Float_t detNumbBuffer; |
|||
Float_t xPixelBuffer; |
|||
Float_t yPixelBuffer; |
|||
Float_t xPosBuffer; |
|||
Float_t yPosBuffer; |
|||
Float_t zPosBuffer; |
|||
Float_t energyBuffer; |
|||
Float_t wavelengthBuffer; |
|||
Float_t timeBuffer; |
|||
Float_t lengthBuffer; |
|||
Float_t xMomBuffer; |
|||
Float_t yMomBuffer; |
|||
Float_t zMomBuffer; |
|||
Float_t edepBuffer; |
|||
|
|||
Float_t gpsPositionX; |
|||
Float_t gpsPositionY; |
|||
Float_t gpsPositionZ; |
|||
|
|||
Float_t gpsDirectionX; |
|||
Float_t gpsDirectionY; |
|||
Float_t gpsDirectionZ; |
|||
|
|||
Int_t runIdBuffer; |
|||
Int_t eventIdBuffer; |
|||
Int_t trackIdBuffer; |
|||
|
|||
Int_t creatorProcessBuffer; |
|||
Int_t parentIdBuffer; |
|||
|
|||
Float_t xBuffer; |
|||
Float_t yBuffer; |
|||
Float_t zBuffer; |
|||
Float_t absTimeBuffer; |
|||
|
|||
Int_t materialBuffer; |
|||
Int_t sectionNoBuffer; |
|||
Float_t doseBuffer; |
|||
Float_t attLengthBuffer; |
|||
|
|||
Float_t pxBuffer; |
|||
Float_t pyBuffer; |
|||
Float_t pzBuffer; |
|||
|
|||
|
|||
Float_t vertexXBuffer; |
|||
Float_t vertexYBuffer; |
|||
Float_t vertexZBuffer; |
|||
|
|||
Float_t vertexPxBuffer; |
|||
Float_t vertexPyBuffer; |
|||
Float_t vertexPzBuffer; |
|||
|
|||
std::vector<Int_t> reflectionsAtMirror; |
|||
std::vector<Int_t> reflectionsAtFibreSurface; |
|||
std::vector<Int_t> reflectionsTotalAtCladCladInterface; |
|||
std::vector<Int_t> reflectionsTotalAtCoreCladInterface; |
|||
std::vector<Int_t> reflectionsFresnelAtCladCladInterface; |
|||
std::vector<Int_t> reflectionsFresnelAtCoreCladInterface; |
|||
|
|||
std::vector<Int_t> refractionsAtCladCladInterface; |
|||
std::vector<Int_t> refractionsAtCoreCladInterface; |
|||
|
|||
std::vector<Int_t> rayleighScatterings; |
|||
|
|||
Int_t reflMirrBuffer; |
|||
Int_t reflSurfBuffer; |
|||
Int_t reflTotalCladCladBuffer; |
|||
Int_t reflTotalCoreCladBuffer; |
|||
Int_t reflFresnelCladCladBuffer; |
|||
Int_t reflFresnelCoreCladBuffer; |
|||
|
|||
Int_t refracCladCladBuffer; |
|||
Int_t refracCoreCladBuffer; |
|||
|
|||
Int_t rayleighScatteringsBuffer; |
|||
|
|||
|
|||
std::vector<Float_t> lengthInCore; |
|||
std::vector<Float_t> lengthInInnerCladding; |
|||
std::vector<Float_t> lengthInOuterCladding; |
|||
|
|||
Float_t lengthInCoreBuffer; |
|||
Float_t lengthInInnerCladdingBuffer; |
|||
Float_t lengthInOuterCladdingBuffer; |
|||
}; |
|||
|
|||
#endif
|
@ -0,0 +1,199 @@ |
|||
// Written by Peter Stromberger |
|||
// based on work of Mirco Deckenhoff |
|||
|
|||
|
|||
#ifndef ANALYSIS_HH_ |
|||
#define ANALYSIS_HH_ 1 |
|||
|
|||
#include "G4Event.hh" |
|||
#include "G4Run.hh" |
|||
#include "G4ThreeVector.hh" |
|||
#include "TFile.h" |
|||
#include "TH2F.h" |
|||
#include "TH1F.h" |
|||
#include "TTree.h" |
|||
#include "TObject.h" |
|||
|
|||
#include <vector> |
|||
#include <iostream> |
|||
|
|||
|
|||
class Analysis { |
|||
|
|||
public: |
|||
|
|||
static Analysis* GetInstance() |
|||
{ |
|||
if ( Analysis::singleton == NULL ) Analysis::singleton = new Analysis(); |
|||
|
|||
return Analysis::singleton; |
|||
} |
|||
|
|||
virtual ~Analysis() {}; |
|||
void PrepareNewEvent(const G4Event* anEvent); |
|||
void PrepareNewRun(const G4Run* anRun); |
|||
void EndOfRun(); |
|||
void Close(); |
|||
|
|||
|
|||
// Adds a new row to the tree : detectedPhotons |
|||
void FillDetectedPhotons(Double_t runID, Double_t eventID, Double_t detNumb, Double_t xPixel, |
|||
Double_t yPixel, Double_t energy, |
|||
Double_t time, Double_t length, Double_t absTime, |
|||
Double_t x, Double_t y, Double_t z, |
|||
Double_t px, Double_t py, Double_t pz, |
|||
Double_t vertexX, Double_t vertexY, Double_t vertexZ, |
|||
Double_t vertexPx, Double_t vertexPy, Double_t vertexPz, |
|||
Int_t trackId, |
|||
Int_t creatorProcess, Int_t parentId); |
|||
|
|||
// Adds a new to to the tree : trigger |
|||
void FillTrigger(Double_t runID, Double_t eventID, Double_t edep, |
|||
Double_t xPos, Double_t yPos, Double_t zPos); |
|||
|
|||
// Adds a new to to the tree : initialParticle |
|||
void FillInitialParticle(Double_t runID, Double_t eventID, |
|||
Double_t energy, Double_t xMom, Double_t yMom, Double_t zMom); |
|||
|
|||
// Adds a new to to the tree : primaryParticleTrack |
|||
void FillPrimaryParticleTrack(Double_t runID, Double_t eventID, Double_t xPos, Double_t yPos, Double_t zPos); |
|||
|
|||
// Adds a new to to the tree : energyTrack |
|||
void FillEnergyTrack(Double_t runID, Double_t eventID, Double_t energy, Double_t trackL); |
|||
|
|||
void SetGpsPosition(G4ThreeVector position); |
|||
void SetGpsDirection(G4ThreeVector directtion); |
|||
|
|||
|
|||
|
|||
|
|||
char* FileName(); |
|||
|
|||
|
|||
void IncreaseReflectionsAtMirror(Int_t trackId); |
|||
void IncreaseReflectionsAtFibreSurface(Int_t trackId); |
|||
void IncreaseTotalReflectionsAtCladCladInterface(Int_t trackId); |
|||
void IncreaseTotalReflectionsAtCoreCladInterface(Int_t trackId); |
|||
void IncreaseFresnelReflectionsAtCladCladInterface(Int_t trackId); |
|||
void IncreaseFresnelReflectionsAtCoreCladInterface(Int_t trackId); |
|||
|
|||
void IncreaseRefractionsAtCladCladInterface(Int_t trackId); |
|||
void IncreaseRefractionsAtCoreCladInterface(Int_t trackId); |
|||
|
|||
void IncreaseRayleighScatterings(Int_t trackId); |
|||
|
|||
void IncreaseReflectionRefractionAndScatteringVectors(Int_t trackId); |
|||
|
|||
|
|||
void IncreaseLengthInCore(Int_t trackId, Float_t lengthValue); |
|||
void IncreaseLengthInInnerCladding(Int_t trackId, Float_t lengthValue); |
|||
void IncreaseLengthInOuterCladding(Int_t trackId, Float_t lengthValue); |
|||
|
|||
void IncreaseLengthVectors(Int_t trackId); |
|||
|
|||
|
|||
private: |
|||
|
|||
Analysis(); |
|||
static Analysis* singleton; |
|||
|
|||
TFile* dataFile; |
|||
char fileName[40]; |
|||
|
|||
TTree* detectedPhotons; |
|||
TTree* trigger; |
|||
TTree* primaryParticleTrack; |
|||
TTree* initialParticle; |
|||
TTree* energyTrack; |
|||
|
|||
|
|||
Float_t runIDBuffer; |
|||
Float_t eventIDBuffer; |
|||
Float_t detNumbBuffer; |
|||
Float_t xPixelBuffer; |
|||
Float_t yPixelBuffer; |
|||
Float_t xPosBuffer; |
|||
Float_t yPosBuffer; |
|||
Float_t zPosBuffer; |
|||
Float_t energyBuffer; |
|||
Float_t wavelengthBuffer; |
|||
Float_t timeBuffer; |
|||
Float_t lengthBuffer; |
|||
Float_t xMomBuffer; |
|||
Float_t yMomBuffer; |
|||
Float_t zMomBuffer; |
|||
Float_t edepBuffer; |
|||
|
|||
Float_t gpsPositionX; |
|||
Float_t gpsPositionY; |
|||
Float_t gpsPositionZ; |
|||
|
|||
Float_t gpsDirectionX; |
|||
Float_t gpsDirectionY; |
|||
Float_t gpsDirectionZ; |
|||
|
|||
Int_t runIdBuffer; |
|||
Int_t eventIdBuffer; |
|||
Int_t trackIdBuffer; |
|||
|
|||
Int_t creatorProcessBuffer; |
|||
Int_t parentIdBuffer; |
|||
|
|||
Float_t xBuffer; |
|||
Float_t yBuffer; |
|||
Float_t zBuffer; |
|||
Float_t absTimeBuffer; |
|||
|
|||
Int_t materialBuffer; |
|||
Int_t sectionNoBuffer; |
|||
Float_t doseBuffer; |
|||
Float_t attLengthBuffer; |
|||
|
|||
Float_t pxBuffer; |
|||
Float_t pyBuffer; |
|||
Float_t pzBuffer; |
|||
|
|||
|
|||
Float_t vertexXBuffer; |
|||
Float_t vertexYBuffer; |
|||
Float_t vertexZBuffer; |
|||
|
|||
Float_t vertexPxBuffer; |
|||
Float_t vertexPyBuffer; |
|||
Float_t vertexPzBuffer; |
|||
|
|||
std::vector<Int_t> reflectionsAtMirror; |
|||
std::vector<Int_t> reflectionsAtFibreSurface; |
|||
std::vector<Int_t> reflectionsTotalAtCladCladInterface; |
|||
std::vector<Int_t> reflectionsTotalAtCoreCladInterface; |
|||
std::vector<Int_t> reflectionsFresnelAtCladCladInterface; |
|||
std::vector<Int_t> reflectionsFresnelAtCoreCladInterface; |
|||
|
|||
std::vector<Int_t> refractionsAtCladCladInterface; |
|||
std::vector<Int_t> refractionsAtCoreCladInterface; |
|||
|
|||
std::vector<Int_t> rayleighScatterings; |
|||
|
|||
Int_t reflMirrBuffer; |
|||
Int_t reflSurfBuffer; |
|||
Int_t reflTotalCladCladBuffer; |
|||
Int_t reflTotalCoreCladBuffer; |
|||
Int_t reflFresnelCladCladBuffer; |
|||
Int_t reflFresnelCoreCladBuffer; |
|||
|
|||
Int_t refracCladCladBuffer; |
|||
Int_t refracCoreCladBuffer; |
|||
|
|||
Int_t rayleighScatteringsBuffer; |
|||
|
|||
|
|||
std::vector<Float_t> lengthInCore; |
|||
std::vector<Float_t> lengthInInnerCladding; |
|||
std::vector<Float_t> lengthInOuterCladding; |
|||
|
|||
Float_t lengthInCoreBuffer; |
|||
Float_t lengthInInnerCladdingBuffer; |
|||
Float_t lengthInOuterCladdingBuffer; |
|||
}; |
|||
|
|||
#endif |
@ -0,0 +1,57 @@ |
|||
// Written by Peter Stromberger
|
|||
|
|||
#ifndef CONVERT_h
|
|||
#define CONVERT_h 1
|
|||
|
|||
#include "G4UIcommand.hh"
|
|||
#include "globals.hh"
|
|||
|
|||
class C |
|||
{ |
|||
public: |
|||
|
|||
static G4String c(G4int); |
|||
static G4String c1(G4int); |
|||
static G4String c2(G4int); |
|||
static G4String c3(G4int); |
|||
}; |
|||
|
|||
|
|||
inline G4String C::c(G4int i) |
|||
{ |
|||
return G4UIcommand::ConvertToString(i); |
|||
} |
|||
|
|||
|
|||
inline G4String C::c1(G4int i) |
|||
{ |
|||
G4String r; |
|||
if(i <10) |
|||
r = "00"; |
|||
if(i > 9 && i < 100) |
|||
r = "0"; |
|||
if(i > 99) |
|||
r = ""; |
|||
|
|||
return r+G4UIcommand::ConvertToString(i); |
|||
} |
|||
|
|||
inline G4String C::c2(G4int i) |
|||
{ |
|||
return G4UIcommand::ConvertToString(i); |
|||
} |
|||
|
|||
inline G4String C::c3(G4int i) |
|||
{ |
|||
G4String r; |
|||
|
|||
if( i< 10) |
|||
r = "0"; |
|||
if(i > 9) |
|||
r = ""; |
|||
|
|||
return r+G4UIcommand::ConvertToString(i); |
|||
} |
|||
|
|||
#endif
|
|||
|
@ -0,0 +1,100 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
|
|||
#ifndef DetectorConstruction_h
|
|||
#define DetectorConstruction_h 1
|
|||
|
|||
#include "globals.hh"
|
|||
#include "G4VUserDetectorConstruction.hh"
|
|||
#include "G4ThreeVector.hh"
|
|||
|
|||
|
|||
class G4Element; |
|||
class G4Material; |
|||
class G4LogicalVolume; |
|||
class G4MaterialPropertiesTable; |
|||
|
|||
class DetectorConstruction : public G4VUserDetectorConstruction |
|||
{ |
|||
public: |
|||
DetectorConstruction(); |
|||
~DetectorConstruction(); |
|||
|
|||
G4VPhysicalVolume* Construct(); |
|||
|
|||
G4LogicalVolume* GetScoringVolume() const { return fScoringVolume; } |
|||
|
|||
|
|||
protected: |
|||
G4LogicalVolume* fScoringVolume; |
|||
|
|||
private: |
|||
|
|||
/* ++ methods ++ */ |
|||
void DefineMaterials(); |
|||
void DefineMaterialProperties(); |
|||
void ConstructFiber(); // Constructs and places the fibres
|
|||
void ConstructFiberSheet(); // Constructs and places the fibres
|
|||
G4ThreeVector objectPos(G4int, G4int); // for positioning of multiple fibres
|
|||
G4ThreeVector objectPos(G4int, G4int, G4double);// for positioning of detector
|
|||
G4ThreeVector objectPos(G4int, G4int, G4int, G4int, G4double); // pixel positioning
|
|||
|
|||
/* ++ attributes ++ */ |
|||
|
|||
// geometry
|
|||
G4double detector_x, detector_y, detector_z; |
|||
G4double scint_x, scint_y, scint_z; |
|||
G4int Nj, Nk; |
|||
G4double xDist, yDist; |
|||
G4double stripWidth, stripHeight; |
|||
G4double airGap, pixelDimX, pixelDimY, epoxy_strip_width; |
|||
int Nx, Ny; |
|||
G4bool fMirrorToggle; |
|||
G4double fMirrorPolish, fMirrorReflectivity, fMirrorZ, fMirrorRmax; |
|||
G4double fWorldSizeX, fWorldSizeY,fWorldSizeZ; |
|||
// materials
|
|||
G4Material *Vacuum; |
|||
G4Material *Air; |
|||
G4Material *Pstyrene; |
|||
G4Material *PMMA; |
|||
G4Material *PMMA2; |
|||
G4Material *Epoxy; |
|||
G4Material *Glue; |
|||
G4Material *TiO2; |
|||
G4Material *Abs_plastic; |
|||
G4Material *alu; |
|||
|
|||
// material properties
|
|||
G4MaterialPropertiesTable* MPTPStyrene; |
|||
|
|||
//world
|
|||
G4LogicalVolume * fLogicWorld; |
|||
G4VPhysicalVolume * fPhysiWorld; |
|||
|
|||
// detector assembly
|
|||
G4LogicalVolume * airbox_log; |
|||
G4VPhysicalVolume * airbox_phys; |
|||
|
|||
// detector assembly
|
|||
G4LogicalVolume * detector_log; |
|||
G4VPhysicalVolume * detector_phys; |
|||
|
|||
|
|||
// epoxybox
|
|||
G4LogicalVolume* epoxyLog; |
|||
G4VPhysicalVolume* epoxyPhy; |
|||
|
|||
// abs plastic
|
|||
G4LogicalVolume* absLog; |
|||
G4VPhysicalVolume* absPhy; |
|||
|
|||
|
|||
// materials and properties for fibre sections
|
|||
G4Material* scintCoreMaterial; |
|||
G4Material* innerCladdingMaterial; |
|||
G4Material* outerCladdingMaterial; |
|||
|
|||
|
|||
}; |
|||
|
|||
#endif
|
@ -0,0 +1,96 @@ |
|||
// Written by Peter Stromberger |
|||
// based on work of Mirco Deckenhoff |
|||
|
|||
#ifndef DetectorConstruction_h |
|||
#define DetectorConstruction_h 1 |
|||
|
|||
#include "globals.hh" |
|||
#include "G4VUserDetectorConstruction.hh" |
|||
#include "G4ThreeVector.hh" |
|||
|
|||
|
|||
class G4Element; |
|||
class G4Material; |
|||
class G4LogicalVolume; |
|||
class G4MaterialPropertiesTable; |
|||
|
|||
class DetectorConstruction : public G4VUserDetectorConstruction |
|||
{ |
|||
public: |
|||
DetectorConstruction(); |
|||
~DetectorConstruction(); |
|||
|
|||
G4VPhysicalVolume* Construct(); |
|||
|
|||
G4LogicalVolume* GetScoringVolume() const { return fScoringVolume; } |
|||
|
|||
|
|||
protected: |
|||
G4LogicalVolume* fScoringVolume; |
|||
|
|||
private: |
|||
|
|||
/* ++ methods ++ */ |
|||
void DefineMaterials(); |
|||
void DefineMaterialProperties(); |
|||
void ConstructFiber(); // Constructs and places the fibres |
|||
void ConstructFiberSheet(); // Constructs and places the fibres |
|||
G4ThreeVector objectPos(G4int, G4int); // for positioning of multiple fibres |
|||
G4ThreeVector objectPos(G4int, G4int, G4double);// for positioning of detector |
|||
G4ThreeVector objectPos(G4int, G4int, G4int, G4int, G4double); // pixel positioning |
|||
|
|||
/* ++ attributes ++ */ |
|||
|
|||
// geometry |
|||
G4double detector_x, detector_y, detector_z; |
|||
G4double scint_x, scint_y, scint_z; |
|||
G4int Nj, Nk; |
|||
G4double xDist, yDist; |
|||
G4double stripWidth, stripHeight; |
|||
G4double airGap, pixelDimX, pixelDimY, epoxy_strip_width; |
|||
int Nx, Ny; |
|||
G4bool fMirrorToggle; |
|||
G4double fMirrorPolish, fMirrorReflectivity, fMirrorZ, fMirrorRmax; |
|||
G4double fWorldSizeX, fWorldSizeY,fWorldSizeZ; |
|||
// materials |
|||
G4Material *Vacuum; |
|||
G4Material *Air; |
|||
G4Material *Pstyrene; |
|||
G4Material *PMMA; |
|||
G4Material *PMMA2; |
|||
G4Material *Epoxy; |
|||
G4Material *Glue; |
|||
G4Material *TiO2; |
|||
G4Material *Abs_plastic; |
|||
G4Material *alu; |
|||
|
|||
// material properties |
|||
G4MaterialPropertiesTable* MPTPStyrene; |
|||
|
|||
//world |
|||
G4LogicalVolume * fLogicWorld; |
|||
G4VPhysicalVolume * fPhysiWorld; |
|||
|
|||
// detector assembly |
|||
G4LogicalVolume * detector_log; |
|||
G4VPhysicalVolume * detector_phys; |
|||
|
|||
|
|||
// epoxybox |
|||
G4LogicalVolume* epoxyLog; |
|||
G4VPhysicalVolume* epoxyPhy; |
|||
|
|||
// abs plastic |
|||
G4LogicalVolume* absLog; |
|||
G4VPhysicalVolume* absPhy; |
|||
|
|||
|
|||
// materials and properties for fibre sections |
|||
G4Material* scintCoreMaterial; |
|||
G4Material* innerCladdingMaterial; |
|||
G4Material* outerCladdingMaterial; |
|||
|
|||
|
|||
}; |
|||
|
|||
#endif |
@ -0,0 +1,40 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
|
|||
#ifndef EventAction_h
|
|||
#define EventAction_h 1
|
|||
|
|||
#include "G4UserEventAction.hh"
|
|||
#include "globals.hh"
|
|||
|
|||
class G4Event; |
|||
|
|||
|
|||
class EventAction : public G4UserEventAction |
|||
{ |
|||
public: |
|||
EventAction(); |
|||
~EventAction(); |
|||
|
|||
public: |
|||
void BeginOfEventAction(const G4Event* anEvent); |
|||
void EndOfEventAction(const G4Event*); |
|||
|
|||
void AddCore(G4double de, G4double dl); |
|||
|
|||
private: |
|||
G4double fEnergy; |
|||
G4double fTrackL; |
|||
|
|||
}; |
|||
|
|||
|
|||
inline void EventAction::AddCore(G4double de, G4double dl) |
|||
{ |
|||
fEnergy += de; |
|||
fTrackL += dl; |
|||
} |
|||
|
|||
#endif
|
|||
|
|||
|
@ -0,0 +1,170 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
|
|||
|
|||
#ifndef PARAMETERS_HH_
|
|||
#define PARAMETERS_HH_ 1
|
|||
|
|||
#include "G4Event.hh"
|
|||
#include "G4Run.hh"
|
|||
|
|||
#include "TFile.h"
|
|||
#include "TH2F.h"
|
|||
#include "TH1F.h"
|
|||
#include "TTree.h"
|
|||
#include "TObject.h"
|
|||
|
|||
|
|||
|
|||
|
|||
class Parameters |
|||
{ |
|||
|
|||
public: |
|||
|
|||
static Parameters* GetInstance() |
|||
{ |
|||
if ( Parameters::singleton == NULL ) Parameters::singleton = new Parameters(); |
|||
return Parameters::singleton; |
|||
} |
|||
|
|||
virtual ~Parameters(); |
|||
|
|||
|
|||
char* ParameterOutputFileName(); |
|||
|
|||
G4double RandomSeed(); |
|||
G4double RandomNumber(); |
|||
G4double FibreLength(); |
|||
G4double SemiAxisZ(); |
|||
G4double SemiAxisY(); |
|||
G4double ProbabilityOfPhotonLossAtSurface(); |
|||
G4bool PlaceMirror(); |
|||
G4double MirrorReflectivity(); |
|||
G4bool DetectorMaterial(); |
|||
|
|||
G4double TriggerX(); |
|||
G4double TriggerY(); |
|||
G4double TriggerZ(); |
|||
|
|||
G4double TriggerXPos(); |
|||
G4double TriggerZPos(); |
|||
|
|||
char* EmissionSpectrumFileName(); |
|||
G4int NumberOfEnergies(); |
|||
G4double* Energy; |
|||
G4double* Intensity; |
|||
G4int NumberOfInterpolatedPoints(); |
|||
|
|||
char* WlsAbsSpectrumFileName(); |
|||
G4int NumberOfWlsAbsEnergies(); |
|||
G4double* WlsAbsEnergy; |
|||
G4double* WlsAbsLength; |
|||
|
|||
char* WlsEmissionSpectrumFileName(); |
|||
G4int NumberOfWlsEmissionEnergies(); |
|||
G4double* WlsEmissionEnergy; |
|||
G4double* WlsEmissionIntensity; |
|||
|
|||
G4double ScintillationYield(); |
|||
G4double ResolutionScale(); |
|||
G4double DecayTimeFast(); |
|||
G4double DecayTimeSlow(); |
|||
G4double YieldRatio(); |
|||
G4double BirksConstant(); |
|||
|
|||
G4double WlsDecayTime(); |
|||
|
|||
char* RefractiveIndexVacuum(); |
|||
char* RefractiveIndexCore(); |
|||
char* RefractiveIndexClad1(); |
|||
char* RefractiveIndexClad2(); |
|||
|
|||
char* AbsorptionCore(); |
|||
char* AbsorptionClad1(); |
|||
char* AbsorptionClad2(); |
|||
|
|||
char* AbsorptionFromIrradiationCore(); |
|||
char* AbsorptionFromIrradiationClad1(); |
|||
char* AbsorptionFromIrradiationClad2(); |
|||
|
|||
char* SectionsFileName(); |
|||
G4int NumberOfSections(); |
|||
|
|||
char* RayleighCore(); |
|||
char* RayleighClad1(); |
|||
char* RayleighClad2(); |
|||
|
|||
// Conversion factor between wavelength and energy
|
|||
const static G4double hcPERe; |
|||
|
|||
|
|||
private: |
|||
|
|||
Parameters(); |
|||
static Parameters* singleton; |
|||
|
|||
|
|||
char parameterOutputFileName[50]; |
|||
|
|||
G4double randomSeed; |
|||
G4double randomNumber; |
|||
G4double fibreLength; |
|||
G4double semiAxisZ; |
|||
G4double semiAxisY; |
|||
G4double probabilityOfPhotonLossAtSurface; |
|||
G4bool placeMirror; |
|||
G4double mirrorReflectivity; |
|||
G4bool detectorMaterial; |
|||
|
|||
G4double triggerX; |
|||
G4double triggerY; |
|||
G4double triggerZ; |
|||
|
|||
G4double triggerXPos; |
|||
G4double triggerZPos; |
|||
|
|||
char emissionSpectrumFileName[256]; |
|||
G4int numberOfEnergies; |
|||
// G4double[] energy;
|
|||
// G4double[] intensity;
|
|||
G4int numberOfInterpolatedPoints; |
|||
|
|||
char wlsAbsSpectrumFileName[256]; |
|||
G4int numberOfWlsAbsEnergies; |
|||
|
|||
char wlsEmissionSpectrumFileName[256]; |
|||
G4int numberOfWlsEmissionEnergies; |
|||
|
|||
G4double scintillationYield; |
|||
G4double resolutionScale; |
|||
G4double decayTimeFast; |
|||
G4double decayTimeSlow; |
|||
G4double yieldRatio; |
|||
G4double birksConstant; |
|||
|
|||
G4double wlsDecayTime; |
|||
|
|||
char refractiveIndexVacuum[256]; |
|||
char refractiveIndexCore[256]; |
|||
char refractiveIndexClad1[256]; |
|||
char refractiveIndexClad2[256]; |
|||
|
|||
char absorptionCore[512]; |
|||
char absorptionClad1[512]; |
|||
char absorptionClad2[512]; |
|||
|
|||
char absorptionFromIrradiationCore[512]; |
|||
char absorptionFromIrradiationClad1[512]; |
|||
char absorptionFromIrradiationClad2[512]; |
|||
|
|||
char sectionsFileName[80]; |
|||
G4int numberOfSections; |
|||
|
|||
char rayleighCore[512]; |
|||
char rayleighClad1[512]; |
|||
char rayleighClad2[512]; |
|||
|
|||
}; |
|||
|
|||
#endif
|
@ -0,0 +1,24 @@ |
|||
// $Id: PhysicsList.hh,v 1.7 2006/06/29 17:53:59 gunter Exp $
|
|||
//
|
|||
|
|||
#ifndef PhysicsList_h
|
|||
#define PhysicsList_h 1
|
|||
|
|||
#include "globals.hh"
|
|||
#include "G4VModularPhysicsList.hh"
|
|||
|
|||
|
|||
class PhysicsList : public G4VModularPhysicsList |
|||
{ |
|||
public: |
|||
PhysicsList(); |
|||
|
|||
public: |
|||
void ConstructParticle(); |
|||
void SetCuts(); |
|||
|
|||
}; |
|||
|
|||
|
|||
#endif /* PhysicsList_h */
|
|||
|
@ -0,0 +1,29 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
|
|||
#ifndef PrimaryGeneratorAction_h
|
|||
#define PrimaryGeneratorAction_h 1
|
|||
|
|||
|
|||
#include "globals.hh"
|
|||
#include "G4VUserPrimaryGeneratorAction.hh"
|
|||
#include "G4GeneralParticleSource.hh"
|
|||
|
|||
class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction |
|||
{ |
|||
public: |
|||
PrimaryGeneratorAction(); |
|||
~PrimaryGeneratorAction(); |
|||
|
|||
void GeneratePrimaries(G4Event*); |
|||
void SetOptPhotonPolar(); |
|||
void SetOptPhotonPolar(G4double); |
|||
G4GeneralParticleSource* GetGun(); |
|||
|
|||
private: |
|||
G4GeneralParticleSource * InitializeGPS(); |
|||
G4GeneralParticleSource * gun; |
|||
}; |
|||
|
|||
|
|||
#endif
|
@ -0,0 +1,30 @@ |
|||
//
|
|||
// $Id: RunAction.hh,v 1.9 2006/06/29 17:54:10 gunter Exp $
|
|||
// GEANT4 tag $Name: geant4-09-01-ref-02 $
|
|||
|
|||
#ifndef RunAction_h
|
|||
#define RunAction_h 1
|
|||
|
|||
#include "globals.hh"
|
|||
#include "G4UserRunAction.hh"
|
|||
|
|||
|
|||
class G4Timer; |
|||
class G4Run; |
|||
|
|||
class RunAction : public G4UserRunAction |
|||
{ |
|||
public: |
|||
RunAction(); |
|||
~RunAction(); |
|||
|
|||
public: |
|||
void BeginOfRunAction(const G4Run* aRun); |
|||
void EndOfRunAction(const G4Run* aRun); |
|||
|
|||
private: |
|||
G4Timer* timer; |
|||
}; |
|||
|
|||
|
|||
#endif /*RunAction_h*/
|
@ -0,0 +1,23 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
|
|||
#ifndef SensitiveDetector_h
|
|||
#define SensitiveDetector_h 1
|
|||
|
|||
#include "G4VSensitiveDetector.hh"
|
|||
|
|||
class G4Step; |
|||
class G4TouchableHistory; |
|||
class G4HCofThisEvent; |
|||
|
|||
class SensitiveDetector : public G4VSensitiveDetector |
|||
{ |
|||
public: |
|||
SensitiveDetector(G4String SDname); |
|||
~SensitiveDetector(); |
|||
|
|||
G4bool ProcessHits(G4Step * step, G4TouchableHistory * ROhist); |
|||
}; |
|||
|
|||
#endif
|
|||
|
@ -0,0 +1,35 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
|
|||
#ifndef StackingAction_H
|
|||
#define StackingAction_H 1
|
|||
|
|||
#include "globals.hh"
|
|||
#include "G4UserStackingAction.hh"
|
|||
|
|||
#include <map>
|
|||
|
|||
class G4VProcess; |
|||
|
|||
class StackingAction : public G4UserStackingAction |
|||
{ |
|||
public: |
|||
StackingAction(); |
|||
~StackingAction(); |
|||
|
|||
public: |
|||
G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack); |
|||
void NewStage(); |
|||
void PrepareNewEvent(); |
|||
|
|||
private: |
|||
G4int gammaCounter; |
|||
typedef std::map<const G4VProcess*,G4int> ProcMap; |
|||
ProcMap procs; |
|||
void AddProcess(const G4VProcess*); |
|||
void Reset(); |
|||
}; |
|||
|
|||
|
|||
#endif
|
|||
|
@ -0,0 +1,51 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
|
|||
#ifndef SteppingAction_H
|
|||
#define SteppingAction_H 1
|
|||
|
|||
|
|||
#include "globals.hh"
|
|||
#include "G4UserSteppingAction.hh"
|
|||
#include "G4OpBoundaryProcess.hh"
|
|||
#include "EventAction.hh"
|
|||
#include "G4ParticleDefinition.hh"
|
|||
#include "PrimaryGeneratorAction.hh"
|
|||
#include "TFile.h"
|
|||
#include "TH2F.h"
|
|||
#include "TH1F.h"
|
|||
#include "TTree.h"
|
|||
#include "TObject.h"
|
|||
|
|||
|
|||
|
|||
|
|||
class SteppingAction : public G4UserSteppingAction |
|||
{ |
|||
|
|||
|
|||
|
|||
public: |
|||
SteppingAction(EventAction* eventAction, PrimaryGeneratorAction* pGA); |
|||
virtual ~SteppingAction(); |
|||
virtual void UserSteppingAction( const G4Step* ); |
|||
|
|||
|
|||
private: |
|||
const char* primParticle; |
|||
G4ParticleDefinition* primDefinition; |
|||
PrimaryGeneratorAction* pGA; |
|||
EventAction* fEventAction; |
|||
G4int creatorProcess; |
|||
G4OpBoundaryProcess* opBoundaryProcess; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
}; |
|||
|
|||
|
|||
|
|||
#endif
|
@ -0,0 +1,58 @@ |
|||
// Written by Peter Stromberger |
|||
// based on work of Mirco Deckenhoff |
|||
|
|||
#ifndef SteppingAction_H |
|||
#define SteppingAction_H 1 |
|||
|
|||
|
|||
#include "globals.hh" |
|||
#include "G4UserSteppingAction.hh" |
|||
#include "G4OpBoundaryProcess.hh" |
|||
#include "EventAction.hh" |
|||
#include "G4ParticleDefinition.hh" |
|||
#include "PrimaryGeneratorAction.hh" |
|||
#include "TFile.h" |
|||
#include "TH2F.h" |
|||
#include "TH1F.h" |
|||
#include "TTree.h" |
|||
#include "TObject.h" |
|||
|
|||
|
|||
|
|||
|
|||
class SteppingAction : public G4UserSteppingAction |
|||
{ |
|||
|
|||
|
|||
|
|||
public: |
|||
SteppingAction(EventAction* eventAction, PrimaryGeneratorAction* pGA); |
|||
virtual ~SteppingAction(); |
|||
virtual void UserSteppingAction( const G4Step* ); |
|||
|
|||
|
|||
private: |
|||
const char* primParticle; |
|||
G4ParticleDefinition* primDefinition; |
|||
PrimaryGeneratorAction* pGA; |
|||
EventAction* fEventAction; |
|||
G4int creatorProcess; |
|||
G4OpBoundaryProcess* opBoundaryProcess; |
|||
|
|||
|
|||
TFile * doseFile = new TFile("dose.root","READ"); |
|||
Float_t dose; |
|||
|
|||
TH2F * dosehist50invfb = (TH2F*)doseFile->Get("dosehist50invfb"); |
|||
if (dosehist50invfb){ |
|||
dosehist50invfb->SetDirectory(0); |
|||
} |
|||
// dosehist50invfb->SetDirectory(0) |
|||
|
|||
|
|||
|
|||
}; |
|||
|
|||
|
|||
|
|||
#endif |
@ -0,0 +1,2 @@ |
|||
431f92380100d8b8021a25843f9994c1 /home/lhcb/roessler/geant4_workdir/bin/Linux-g++/scifiSim |
|||
6d78d4562e149bd687f3ecb9cec78279 /home/lhcb/roessler/geant4_workdir/bin/Linux-g++/scifiSim |
@ -0,0 +1,61 @@ |
|||
Length of fibre: 0 m |
|||
Semi axis of fibre in z: 0 mm |
|||
Semi axis of fibre in y: 0 mm |
|||
Probability to lose photons at fibre surface: 0 |
|||
Mirror placement at fibre end: 0 |
|||
Reflectivity of mirror at fibre end: 0 |
|||
Detector material vacuum/polystyrene (0/1): 0 |
|||
Used emission spectrum: "" |
|||
Number of energies: 0 |
|||
Energy / eV Intensity |
|||
Number of interpolated points per emission spectrum interval: 0 |
|||
Used wls absorption spectrum: "" |
|||
Number of wls absorption energies: 0 |
|||
Energy / eV WLS Absorption Length / m |
|||
Used wls emission spectrum: "" |
|||
Number of wls emission energies: 0 |
|||
Energy / eV WLS emission intensity |
|||
Formulae to calculate refractive indices in |
|||
- vacuum: "" |
|||
- core: "" |
|||
- inner cladding: "" |
|||
- outer cladding: "" |
|||
with x in nm. |
|||
Scintillation yield: 0/keV |
|||
Resolution scale: 0 |
|||
Fast decay time: 0 ns |
|||
Slow decay time: 0 ns |
|||
Yield ratio: 0 |
|||
Birks constant: 0 mm/MeV |
|||
WLS decay time: 0 ns |
|||
Formulae to calculate absorption [1/m] in |
|||
- core: "" |
|||
- inner cladding: "" |
|||
- outer cladding: "" |
|||
with x in nm. |
|||
Formulae to calculate absorption due to irradiation [1/m] in |
|||
- core: "" |
|||
- inner cladding: "" |
|||
- outer cladding: "" |
|||
with x in nm and y in kGy. |
|||
Used sections file: "" |
|||
Number of sections: 0 |
|||
Formulae to calculate Rayleigh scattering [1/m] in |
|||
- core: |
|||
- inner cladding: |
|||
- outer cladding: |
|||
|
|||
Scintillation emission spectrum: |
|||
Energy/eV Wavelength/nm Intensity |
|||
|
|||
WLS emission spectrum: |
|||
Energy/eV Wavelength/nm Intensity |
|||
|
|||
WLS absorption length / m: |
|||
Energy/eV Wavelength/nm Absorption length |
|||
|
|||
Refractive indices: |
|||
Energy/eV Wavelength/nm Vacuum Clad2 Clad1 Core |
|||
|
|||
Rayleigh scattering length / m: |
|||
Energy/eV Wavelength/nm Clad2 Clad1 Core |
@ -0,0 +1,61 @@ |
|||
Length of fibre: 0 m |
|||
Semi axis of fibre in z: 0 mm |
|||
Semi axis of fibre in y: 0 mm |
|||
Probability to lose photons at fibre surface: 0 |
|||
Mirror placement at fibre end: 0 |
|||
Reflectivity of mirror at fibre end: 0 |
|||
Detector material vacuum/polystyrene (0/1): 0 |
|||
Used emission spectrum: "" |
|||
Number of energies: 0 |
|||
Energy / eV Intensity |
|||
Number of interpolated points per emission spectrum interval: 0 |
|||
Used wls absorption spectrum: "" |
|||
Number of wls absorption energies: 0 |
|||
Energy / eV WLS Absorption Length / m |
|||
Used wls emission spectrum: "" |
|||
Number of wls emission energies: 0 |
|||
Energy / eV WLS emission intensity |
|||
Formulae to calculate refractive indices in |
|||
- vacuum: "" |
|||
- core: "" |
|||
- inner cladding: "" |
|||
- outer cladding: "" |
|||
with x in nm. |
|||
Scintillation yield: 0/keV |
|||
Resolution scale: 0 |
|||
Fast decay time: 0 ns |
|||
Slow decay time: 0 ns |
|||
Yield ratio: 0 |
|||
Birks constant: 0 mm/MeV |
|||
WLS decay time: 0 ns |
|||
Formulae to calculate absorption [1/m] in |
|||
- core: "" |
|||
- inner cladding: "" |
|||
- outer cladding: "" |
|||
with x in nm. |
|||
Formulae to calculate absorption due to irradiation [1/m] in |
|||
- core: "" |
|||
- inner cladding: "" |
|||
- outer cladding: "" |
|||
with x in nm and y in kGy. |
|||
Used sections file: "" |
|||
Number of sections: 0 |
|||
Formulae to calculate Rayleigh scattering [1/m] in |
|||
- core: |
|||
- inner cladding: |
|||
- outer cladding: |
|||
|
|||
Scintillation emission spectrum: |
|||
Energy/eV Wavelength/nm Intensity |
|||
|
|||
WLS emission spectrum: |
|||
Energy/eV Wavelength/nm Intensity |
|||
|
|||
WLS absorption length / m: |
|||
Energy/eV Wavelength/nm Absorption length |
|||
|
|||
Refractive indices: |
|||
Energy/eV Wavelength/nm Vacuum Clad2 Clad1 Core |
|||
|
|||
Rayleigh scattering length / m: |
|||
Energy/eV Wavelength/nm Clad2 Clad1 Core |
@ -0,0 +1 @@ |
|||
0 |
@ -0,0 +1,124 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
// modified by Bastian Rössler
|
|||
|
|||
#include "G4RunManager.hh"
|
|||
//#include "G4MTRunManager.hh"
|
|||
#include "G4UImanager.hh"
|
|||
#include "G4Version.hh"
|
|||
|
|||
#include "G4VisExecutive.hh"
|
|||
#if G4VERSION_NUMBER>=930
|
|||
#include "G4UIExecutive.hh"
|
|||
#else
|
|||
#include "G4UIterminal.hh"
|
|||
#include "G4UItcsh.hh"
|
|||
#endif
|
|||
|
|||
#include "DetectorConstruction.hh"
|
|||
#include "PrimaryGeneratorAction.hh"
|
|||
#include "StackingAction.hh"
|
|||
#include "SteppingAction.hh"
|
|||
|
|||
#include "EventAction.hh"
|
|||
#include "RunAction.hh"
|
|||
|
|||
#include "Analysis.hh"
|
|||
#include "Parameters.hh"
|
|||
|
|||
#include "PhysicsList.hh"
|
|||
#include "ActionInitialization.hh"
|
|||
|
|||
#include "Randomize.hh"
|
|||
|
|||
// for file output
|
|||
#include <iostream>
|
|||
#include <fstream>
|
|||
|
|||
int main(int argc,char** argv) |
|||
{ |
|||
|
|||
// Set the seed for the random engine and save to file
|
|||
G4int seed = Parameters::GetInstance()->RandomSeed(); |
|||
G4Random::setTheEngine(new CLHEP::RanecuEngine); |
|||
G4Random::setTheSeed(seed); |
|||
|
|||
std::ofstream myfile; |
|||
myfile.open("randomEngineSeed.txt"); |
|||
myfile << seed; |
|||
myfile.close(); |
|||
|
|||
G4RunManager * runManager = new G4RunManager(); |
|||
|
|||
|
|||
// mandatory Initialization classes
|
|||
G4VUserDetectorConstruction* detector = new DetectorConstruction(); |
|||
runManager->SetUserInitialization(detector); |
|||
|
|||
G4VUserPhysicsList* physics = new PhysicsList(); |
|||
runManager->SetUserInitialization(physics); |
|||
|
|||
// mandatory User Action classes
|
|||
runManager->SetUserInitialization(new ActionInitialization()); |
|||
|
|||
// Initialize G4 kernel
|
|||
runManager->Initialize(); |
|||
|
|||
//Initilize the visualization manager
|
|||
G4VisManager* visManager = new G4VisExecutive(); |
|||
visManager->Initialize(); |
|||
|
|||
|
|||
// Get the pointer to the User Interface manager
|
|||
//
|
|||
G4UImanager * UImanager = G4UImanager::GetUIpointer(); |
|||
|
|||
if (argc!=1) |
|||
{ // batch mode
|
|||
//command line contains name of the macro to execute
|
|||
G4String command = "/control/execute "; |
|||
G4String fileName = argv[1]; |
|||
UImanager->ApplyCommand(command+fileName); |
|||
} |
|||
else |
|||
{ // interactive mode : define UI session
|
|||
|
|||
#if G4VERSION_NUMBER>=930
|
|||
//New since G4 9.3: UI executive setups up
|
|||
//correct UI depending on env variables
|
|||
G4UIExecutive * ui = new G4UIExecutive(argc,argv); |
|||
//If UI has graphics execute special macro: opens OpenGL Qt driver
|
|||
if (ui->IsGUI()) |
|||
UImanager->ApplyCommand("/control/execute visQt.mac"); |
|||
else |
|||
UImanager->ApplyCommand("/control/execute vis.mac"); |
|||
#else
|
|||
//Older versions of G4: UI selected by user
|
|||
#ifdef G4UI_USE_TCSH
|
|||
G4UIsession * ui = new G4UIterminal(new G4UItcsh); |
|||
#else
|
|||
G4UIsession * ui = new G4UIterminal(); |
|||
#endif
|
|||
UImanager->ApplyCommand("/control/execute vis.mac"); |
|||
#endif
|
|||
ui->SessionStart(); |
|||
delete ui; |
|||
} |
|||
|
|||
// Free the store: user actions, physics_list and detector_description are
|
|||
// owned and deleted by the run manager, so they should not
|
|||
// be deleted in the main() program !
|
|||
|
|||
Analysis::GetInstance()->Close(); |
|||
|
|||
|
|||
delete runManager; |
|||
|
|||
if(Analysis::GetInstance()!=NULL) |
|||
delete Analysis::GetInstance(); |
|||
|
|||
if(Parameters::GetInstance()!=NULL) |
|||
delete Parameters::GetInstance(); |
|||
|
|||
return 0; |
|||
} |
@ -0,0 +1,37 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
// modified by Bastian Rössler
|
|||
|
|||
#include "ActionInitialization.hh"
|
|||
#include "PrimaryGeneratorAction.hh"
|
|||
#include "RunAction.hh"
|
|||
#include "EventAction.hh"
|
|||
|
|||
#include "StackingAction.hh"
|
|||
#include "SteppingAction.hh"
|
|||
|
|||
|
|||
// constructor
|
|||
ActionInitialization::ActionInitialization() : G4VUserActionInitialization() {} |
|||
|
|||
// destructor
|
|||
ActionInitialization::~ActionInitialization() {} |
|||
|
|||
// methods
|
|||
|
|||
void ActionInitialization::BuildForMaster() const |
|||
{ |
|||
SetUserAction( new RunAction); |
|||
} |
|||
|
|||
void ActionInitialization::Build() const |
|||
{ |
|||
PrimaryGeneratorAction* pGA = new PrimaryGeneratorAction; |
|||
SetUserAction( pGA); |
|||
SetUserAction( new RunAction); |
|||
EventAction* eventAction = new EventAction; |
|||
SetUserAction( eventAction); |
|||
SetUserAction( new StackingAction); |
|||
SetUserAction( new SteppingAction(eventAction, pGA)); |
|||
} |
|||
|
@ -0,0 +1,444 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
// modified by Bastian Rössler
|
|||
|
|||
#include "Analysis.hh"
|
|||
#include "Parameters.hh"
|
|||
#include <ctime>
|
|||
#include <fstream>
|
|||
|
|||
|
|||
Analysis* Analysis::singleton = 0; |
|||
|
|||
Analysis::Analysis() |
|||
{ |
|||
// Set file name for simulation output
|
|||
G4int threadNumber; |
|||
std::ifstream inFile; |
|||
inFile.open("threadNumber.txt"); |
|||
inFile >> threadNumber; |
|||
inFile.close(); |
|||
|
|||
sprintf(fileName,"outFile_%i.root", threadNumber); |
|||
|
|||
detectedPhotons = new TTree("DetectedPhotons","Photons detected at the detector strip."); |
|||
|
|||
detectedPhotons->Branch("runID", &runIDBuffer, "runID/F"); //modifed by me
|
|||
detectedPhotons->Branch("eventID", &eventIDBuffer, "eventID/F"); //modifed by me
|
|||
detectedPhotons->Branch("detNumb", &detNumbBuffer, "detNumb/F"); //modifed by me
|
|||
|
|||
detectedPhotons->Branch("xPixel", &xPixelBuffer, "xPixel/F"); //modifed by me
|
|||
detectedPhotons->Branch("yPixel", &yPixelBuffer, "yPixel/F"); //modifed by me
|
|||
detectedPhotons->Branch("energy",&energyBuffer,"energy/F"); |
|||
detectedPhotons->Branch("wavelength",&wavelengthBuffer,"wavelength/F"); |
|||
detectedPhotons->Branch("localtime",&timeBuffer,"localtime/F"); |
|||
detectedPhotons->Branch("abstime",&absTimeBuffer,"abstime/F"); |
|||
detectedPhotons->Branch("length",&lengthBuffer,"length/F"); |
|||
detectedPhotons->Branch("x",&xBuffer,"x/F"); |
|||
detectedPhotons->Branch("y",&yBuffer,"y/F"); |
|||
detectedPhotons->Branch("z",&zBuffer,"z/F"); |
|||
detectedPhotons->Branch("px",&pxBuffer,"px/F"); |
|||
detectedPhotons->Branch("py",&pyBuffer,"py/F"); |
|||
detectedPhotons->Branch("pz",&pzBuffer,"pz/F"); |
|||
detectedPhotons->Branch("vertexX",&vertexXBuffer,"vertexX/F"); |
|||
detectedPhotons->Branch("vertexY",&vertexYBuffer,"vertexY/F"); |
|||
detectedPhotons->Branch("vertexZ",&vertexZBuffer,"vertexZ/F"); |
|||
detectedPhotons->Branch("vertexPx",&vertexPxBuffer,"vertexPx/F"); |
|||
detectedPhotons->Branch("vertexPy",&vertexPyBuffer,"vertexPy/F"); |
|||
detectedPhotons->Branch("vertexPz",&vertexPzBuffer,"vertexPz/F"); |
|||
detectedPhotons->Branch("gpsPosX",&gpsPositionX,"gpsPosX/F"); |
|||
detectedPhotons->Branch("gpsPosY",&gpsPositionY,"gpsPosY/F"); |
|||
detectedPhotons->Branch("gpsPosZ",&gpsPositionZ,"gpsPosZ/F"); |
|||
detectedPhotons->Branch("gpsDirX",&gpsDirectionX,"gpsPosX/F"); |
|||
detectedPhotons->Branch("gpsDirY",&gpsDirectionY,"gpsPosY/F"); |
|||
detectedPhotons->Branch("gpsDirZ",&gpsDirectionZ,"gpsPosZ/F"); |
|||
detectedPhotons->Branch("runId",&runIdBuffer,"runId/I"); |
|||
detectedPhotons->Branch("eventId",&eventIdBuffer,"eventId/I"); |
|||
detectedPhotons->Branch("trackId",&trackIdBuffer,"trackId/I"); |
|||
detectedPhotons->Branch("creatorProcess",&creatorProcessBuffer,"creatorProcess/I"); |
|||
detectedPhotons->Branch("parentId",&parentIdBuffer,"parentId/I"); |
|||
detectedPhotons->Branch("reflMirr",&reflMirrBuffer,"reflMirr/I"); |
|||
detectedPhotons->Branch("reflSurf",&reflSurfBuffer,"reflSurf/I"); |
|||
detectedPhotons->Branch("reflTotalCladClad",&reflTotalCladCladBuffer,"reflTotalCladClad/I"); |
|||
detectedPhotons->Branch("reflTotalCoreClad",&reflTotalCoreCladBuffer,"reflTotalCoreClad/I"); |
|||
detectedPhotons->Branch("reflFresnelCladClad",&reflFresnelCladCladBuffer,"reflFresnelCladClad/I"); |
|||
detectedPhotons->Branch("reflFresnelCoreClad",&reflFresnelCoreCladBuffer,"reflFresnelCoreClad/I"); |
|||
detectedPhotons->Branch("refracCladClad",&refracCladCladBuffer,"refracCladClad/I"); |
|||
detectedPhotons->Branch("refracCoreClad",&refracCoreCladBuffer,"refracCoreClad/I"); |
|||
detectedPhotons->Branch("rayleighScatterings",&rayleighScatteringsBuffer,"rayleighScatterings/I"); |
|||
detectedPhotons->Branch("lengthInCore",&lengthInCoreBuffer,"lengthInCore/F"); |
|||
detectedPhotons->Branch("lengthInInnerCladding",&lengthInInnerCladdingBuffer,"lengthInInnerCladding/F"); |
|||
detectedPhotons->Branch("lengthInOuterCladding",&lengthInOuterCladdingBuffer,"lengthInOuterCladding/F"); |
|||
|
|||
trigger = new TTree("Trigger","Hits in the trigger."); |
|||
|
|||
trigger->Branch("runID", &runIDBuffer, "runID/F"); |
|||
trigger->Branch("eventID", &eventIDBuffer, "eventID/F"); |
|||
trigger->Branch("edep", &edepBuffer, "edep/F"); |
|||
trigger->Branch("xPos", &xPosBuffer, "xPos/F"); |
|||
trigger->Branch("yPos", &yPosBuffer, "yPos/F"); |
|||
trigger->Branch("zPos", &zPosBuffer, "zPos/F"); |
|||
|
|||
energyTrack = new TTree("EnergyTrack", "Deposited energy and tracklength in core of fibre."); |
|||
|
|||
energyTrack->Branch("runID", &runIDBuffer, "runID/F"); |
|||
energyTrack->Branch("eventID", &eventIDBuffer, "eventID/F"); |
|||
energyTrack->Branch("edep", &energyBuffer, "edep/F"); |
|||
energyTrack->Branch("trackL", &lengthBuffer, "trackL/F"); |
|||
|
|||
h_energy = new TH1F("h_energy","h_energy",200,0.0,1.0); |
|||
h_trackL = new TH1F("h_trackL","h_trackL",400,0.0,2.0); |
|||
|
|||
primaryParticleTrack = new TTree("PrimaryParticleTrack", "Track of the primary particles"); |
|||
|
|||
primaryParticleTrack->Branch("runID", &runIDBuffer, "runID/F"); |
|||
primaryParticleTrack->Branch("eventID", &eventIDBuffer, "eventID/F"); |
|||
primaryParticleTrack->Branch("xPos", &xPosBuffer, "xPos/F"); |
|||
primaryParticleTrack->Branch("yPos", &yPosBuffer, "yPos/F"); |
|||
primaryParticleTrack->Branch("zPos", &zPosBuffer, "zPos/F"); |
|||
|
|||
initialParticle = new TTree("InitialParticle", "Initial Particle"); |
|||
|
|||
initialParticle->Branch("runID", &runIDBuffer, "runID/F"); |
|||
initialParticle->Branch("eventID", &eventIDBuffer, "eventID/F"); |
|||
initialParticle->Branch("energy", &energyBuffer, "energy/F"); |
|||
initialParticle->Branch("xMom", &xMomBuffer, "xMom/F"); |
|||
initialParticle->Branch("yMom", &yMomBuffer, "yMom/F"); |
|||
initialParticle->Branch("zMom", &zMomBuffer, "zMom/F"); |
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
|
|||
void Analysis::PrepareNewRun(const G4Run* aRun) |
|||
{ |
|||
runIdBuffer = aRun->GetRunID(); |
|||
} |
|||
|
|||
|
|||
void Analysis::EndOfRun() |
|||
{ |
|||
dataFile = new TFile(fileName,"update"); |
|||
|
|||
detectedPhotons->Write("",TObject::kOverwrite); |
|||
trigger->Write("", TObject::kOverwrite); |
|||
primaryParticleTrack->Write("", TObject::kOverwrite); |
|||
initialParticle->Write("", TObject::kOverwrite); |
|||
energyTrack->Write("", TObject::kOverwrite); |
|||
h_energy->Write("", TObject::kOverwrite); |
|||
h_trackL->Write("", TObject::kOverwrite); |
|||
G4cout << "Data written to file " << fileName << G4endl; |
|||
|
|||
dataFile->Close(); |
|||
|
|||
G4cout << "Data file closed: " << fileName << G4endl; |
|||
|
|||
delete dataFile; |
|||
} |
|||
|
|||
|
|||
void Analysis::Close() |
|||
{ |
|||
delete detectedPhotons; |
|||
delete trigger; |
|||
delete initialParticle; |
|||
delete energyTrack; |
|||
} |
|||
|
|||
|
|||
void Analysis::PrepareNewEvent(const G4Event* anEvent) |
|||
{ |
|||
eventIdBuffer = anEvent->GetEventID(); |
|||
|
|||
reflectionsAtMirror.resize(0); |
|||
reflectionsAtFibreSurface.resize(0); |
|||
reflectionsTotalAtCladCladInterface.resize(0); |
|||
reflectionsTotalAtCoreCladInterface.resize(0); |
|||
reflectionsFresnelAtCladCladInterface.resize(0); |
|||
reflectionsFresnelAtCoreCladInterface.resize(0); |
|||
|
|||
refractionsAtCladCladInterface.resize(0); |
|||
refractionsAtCoreCladInterface.resize(0); |
|||
|
|||
rayleighScatterings.resize(0); |
|||
|
|||
lengthInCore.resize(0); |
|||
lengthInInnerCladding.resize(0); |
|||
lengthInOuterCladding.resize(0); |
|||
} |
|||
|
|||
void Analysis::FillInitialParticle(Double_t runID, Double_t eventID, Double_t energy, Double_t xMom, Double_t yMom, Double_t zMom) |
|||
{ |
|||
if(initialParticle != NULL) |
|||
{ |
|||
runIDBuffer = runID; |
|||
eventIDBuffer = eventID; |
|||
energyBuffer = energy; |
|||
xMomBuffer = xMom; |
|||
yMomBuffer = yMom; |
|||
zMomBuffer = zMom; |
|||
initialParticle->Fill(); |
|||
} |
|||
else |
|||
G4cout << "Nullpointer to initialParticle tree." << G4endl; |
|||
} |
|||
|
|||
void Analysis::FillTrigger(Double_t runID, Double_t eventID, Double_t edep, Double_t xPos, Double_t yPos, Double_t zPos) |
|||
{ |
|||
if(trigger != NULL) |
|||
{ |
|||
runIDBuffer = runID; |
|||
eventIDBuffer = eventID; |
|||
edepBuffer = edep; |
|||
xPosBuffer = xPos; |
|||
yPosBuffer = yPos; |
|||
zPosBuffer = zPos; |
|||
|
|||
trigger->Fill(); |
|||
} |
|||
else |
|||
{ |
|||
G4cout << "Nullpointer to trigger tree." << G4endl; |
|||
} |
|||
} |
|||
|
|||
void Analysis::FillEnergyTrack(Double_t runID, Double_t eventID, Double_t energy, Double_t trackL) |
|||
{ |
|||
if(energyTrack != NULL) |
|||
{ |
|||
runIDBuffer = runID; |
|||
eventIDBuffer = eventID; |
|||
energyBuffer = energy; |
|||
lengthBuffer = trackL; |
|||
energyTrack->Fill(); |
|||
h_energy->Fill(energy); |
|||
h_trackL->Fill(trackL); |
|||
} |
|||
else |
|||
{ |
|||
G4cout << "Nullpointer to energyTrack tree" << G4endl; |
|||
} |
|||
} |
|||
|
|||
void Analysis::FillPrimaryParticleTrack(Double_t runID, Double_t eventID, |
|||
Double_t xPos, Double_t yPos, Double_t zPos) |
|||
{ |
|||
if(primaryParticleTrack != NULL) |
|||
{ |
|||
runIDBuffer = runID; |
|||
eventIDBuffer = eventID; |
|||
xPosBuffer = xPos; |
|||
yPosBuffer = yPos; |
|||
zPosBuffer = zPos; |
|||
primaryParticleTrack->Fill(); |
|||
} |
|||
else |
|||
{ |
|||
G4cout << "Nullpointer to primaryParticleTrack tree" << G4endl; |
|||
} |
|||
} |
|||
|
|||
void Analysis::FillDetectedPhotons(Double_t runID, Double_t eventID, Double_t detNumb, Double_t xPixel, |
|||
Double_t yPixel, Double_t energy, |
|||
Double_t time, Double_t length, Double_t absTime, |
|||
Double_t x, Double_t y, Double_t z, |
|||
Double_t px, Double_t py, Double_t pz, |
|||
Double_t vertexX, Double_t vertexY, Double_t vertexZ, |
|||
Double_t vertexPx, Double_t vertexPy, Double_t vertexPz, |
|||
Int_t trackId, |
|||
Int_t creatorProcess, Int_t parentId) |
|||
{ |
|||
if(detectedPhotons!=NULL) |
|||
{ |
|||
runIDBuffer = runID; |
|||
eventIDBuffer = eventID; |
|||
detNumbBuffer = detNumb; |
|||
xPixelBuffer = xPixel; |
|||
yPixelBuffer = yPixel; |
|||
|
|||
energyBuffer = energy; |
|||
timeBuffer = time; |
|||
lengthBuffer = length; |
|||
|
|||
wavelengthBuffer = 1239.842/energy; |
|||
|
|||
absTimeBuffer = absTime; |
|||
xBuffer = x; |
|||
yBuffer = y; |
|||
zBuffer = z; |
|||
|
|||
pxBuffer = px; |
|||
pyBuffer = py; |
|||
pzBuffer = pz; |
|||
|
|||
vertexXBuffer = vertexX; |
|||
vertexYBuffer = vertexY; |
|||
vertexZBuffer = vertexZ; |
|||
|
|||
vertexPxBuffer = vertexPx; |
|||
vertexPyBuffer = vertexPy; |
|||
vertexPzBuffer = vertexPz; |
|||
|
|||
trackIdBuffer = trackId; |
|||
|
|||
creatorProcessBuffer = creatorProcess; |
|||
parentIdBuffer = parentId; |
|||
|
|||
reflMirrBuffer = reflectionsAtMirror[trackId]; |
|||
reflSurfBuffer = reflectionsAtFibreSurface[trackId]; |
|||
reflTotalCladCladBuffer = reflectionsTotalAtCladCladInterface[trackId]; |
|||
reflTotalCoreCladBuffer = reflectionsTotalAtCoreCladInterface[trackId]; |
|||
reflFresnelCladCladBuffer = reflectionsFresnelAtCladCladInterface[trackId]; |
|||
reflFresnelCoreCladBuffer = reflectionsFresnelAtCoreCladInterface[trackId]; |
|||
|
|||
refracCladCladBuffer = refractionsAtCladCladInterface[trackId]; |
|||
refracCoreCladBuffer = refractionsAtCoreCladInterface[trackId]; |
|||
|
|||
rayleighScatteringsBuffer = rayleighScatterings[trackId]; |
|||
|
|||
lengthInCoreBuffer = lengthInCore[trackId]; |
|||
lengthInInnerCladdingBuffer = lengthInInnerCladding[trackId]; |
|||
lengthInOuterCladdingBuffer = lengthInOuterCladding[trackId]; |
|||
|
|||
detectedPhotons->Fill(); |
|||
} |
|||
else |
|||
{ |
|||
G4cout << G4endl << "Pointer to detectedPhotons tree is NULL!" << G4endl; |
|||
} |
|||
} |
|||
|
|||
char* Analysis::FileName() |
|||
{ |
|||
return fileName; |
|||
} |
|||
|
|||
void Analysis::SetGpsPosition(G4ThreeVector position) |
|||
{ |
|||
gpsPositionX = position[0]; |
|||
gpsPositionY = position[1]; |
|||
gpsPositionZ = position[2]; |
|||
} |
|||
|
|||
void Analysis::IncreaseReflectionsAtMirror(Int_t trackId) |
|||
{ |
|||
reflectionsAtMirror[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::SetGpsDirection(G4ThreeVector direction) |
|||
{ |
|||
gpsDirectionX = direction[0]; |
|||
gpsDirectionY = direction[1]; |
|||
gpsDirectionZ = direction[2]; |
|||
} |
|||
|
|||
void Analysis::IncreaseReflectionsAtFibreSurface(Int_t trackId) |
|||
{ |
|||
reflectionsAtFibreSurface[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseTotalReflectionsAtCladCladInterface(Int_t trackId) |
|||
{ |
|||
reflectionsTotalAtCladCladInterface[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseTotalReflectionsAtCoreCladInterface(Int_t trackId) |
|||
{ |
|||
reflectionsTotalAtCoreCladInterface[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseFresnelReflectionsAtCladCladInterface(Int_t trackId) |
|||
{ |
|||
reflectionsFresnelAtCladCladInterface[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseFresnelReflectionsAtCoreCladInterface(Int_t trackId) |
|||
{ |
|||
reflectionsFresnelAtCoreCladInterface[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseRefractionsAtCladCladInterface(Int_t trackId) |
|||
{ |
|||
refractionsAtCladCladInterface[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseRefractionsAtCoreCladInterface(Int_t trackId) |
|||
{ |
|||
refractionsAtCoreCladInterface[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseRayleighScatterings(Int_t trackId) |
|||
{ |
|||
rayleighScatterings[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseReflectionRefractionAndScatteringVectors(Int_t trackId) |
|||
{ |
|||
for(int i=reflectionsAtMirror.size(); i<trackId+1; i++) |
|||
reflectionsAtMirror.push_back(0); |
|||
|
|||
for(int i=reflectionsAtFibreSurface.size(); i<trackId+1; i++) |
|||
reflectionsAtFibreSurface.push_back(0); |
|||
|
|||
for(int i=reflectionsTotalAtCladCladInterface.size(); i<trackId+1; i++) |
|||
reflectionsTotalAtCladCladInterface.push_back(0); |
|||
|
|||
for(int i=reflectionsTotalAtCoreCladInterface.size(); i<trackId+1; i++) |
|||
reflectionsTotalAtCoreCladInterface.push_back(0); |
|||
|
|||
for(int i=reflectionsFresnelAtCladCladInterface.size(); i<trackId+1; i++) |
|||
reflectionsFresnelAtCladCladInterface.push_back(0); |
|||
|
|||
for(int i=reflectionsFresnelAtCoreCladInterface.size(); i<trackId+1; i++) |
|||
reflectionsFresnelAtCoreCladInterface.push_back(0); |
|||
|
|||
for(int i=refractionsAtCladCladInterface.size(); i<trackId+1; i++) |
|||
refractionsAtCladCladInterface.push_back(0); |
|||
|
|||
for(int i=refractionsAtCoreCladInterface.size(); i<trackId+1; i++) |
|||
refractionsAtCoreCladInterface.push_back(0); |
|||
|
|||
for(int i=rayleighScatterings.size(); i<trackId+1; i++) |
|||
rayleighScatterings.push_back(0); |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseLengthInCore(Int_t trackId, Float_t lengthValue) |
|||
{ |
|||
lengthInCore[trackId] += lengthValue; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseLengthInInnerCladding(Int_t trackId, Float_t lengthValue) |
|||
{ |
|||
lengthInInnerCladding[trackId] += lengthValue; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseLengthInOuterCladding(Int_t trackId, Float_t lengthValue) |
|||
{ |
|||
lengthInOuterCladding[trackId] += lengthValue; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseLengthVectors(Int_t trackId) |
|||
{ |
|||
for(int i=lengthInCore.size(); i<trackId+1; i++) |
|||
lengthInCore.push_back(0); |
|||
|
|||
for(int i=lengthInInnerCladding.size(); i<trackId+1; i++) |
|||
lengthInInnerCladding.push_back(0); |
|||
|
|||
for(int i=lengthInOuterCladding.size(); i<trackId+1; i++) |
|||
lengthInOuterCladding.push_back(0); |
|||
} |
@ -0,0 +1,444 @@ |
|||
// Written by Peter Stromberger |
|||
// based on work of Mirco Deckenhoff |
|||
// modified by Bastian Rössler |
|||
|
|||
#include "Analysis.hh" |
|||
#include "Parameters.hh" |
|||
#include <ctime> |
|||
#include <fstream> |
|||
|
|||
|
|||
Analysis* Analysis::singleton = 0; |
|||
|
|||
Analysis::Analysis() |
|||
{ |
|||
// Set file name for simulation output |
|||
G4int threadNumber; |
|||
std::ifstream inFile; |
|||
inFile.open("threadNumber.txt"); |
|||
inFile >> threadNumber; |
|||
inFile.close(); |
|||
|
|||
sprintf(fileName,"outFile_%i.root", threadNumber); |
|||
|
|||
detectedPhotons = new TTree("DetectedPhotons","Photons detected at the detector strip."); |
|||
|
|||
detectedPhotons->Branch("runID", &runIDBuffer, "runID/F"); //modifed by me |
|||
detectedPhotons->Branch("eventID", &eventIDBuffer, "eventID/F"); //modifed by me |
|||
detectedPhotons->Branch("detNumb", &detNumbBuffer, "detNumb/F"); //modifed by me |
|||
|
|||
detectedPhotons->Branch("xPixel", &xPixelBuffer, "xPixel/F"); //modifed by me |
|||
detectedPhotons->Branch("yPixel", &yPixelBuffer, "yPixel/F"); //modifed by me |
|||
detectedPhotons->Branch("energy",&energyBuffer,"energy/F"); |
|||
detectedPhotons->Branch("wavelength",&wavelengthBuffer,"wavelength/F"); |
|||
detectedPhotons->Branch("localtime",&timeBuffer,"localtime/F"); |
|||
detectedPhotons->Branch("abstime",&absTimeBuffer,"abstime/F"); |
|||
detectedPhotons->Branch("length",&lengthBuffer,"length/F"); |
|||
detectedPhotons->Branch("x",&xBuffer,"x/F"); |
|||
detectedPhotons->Branch("y",&yBuffer,"y/F"); |
|||
detectedPhotons->Branch("z",&zBuffer,"z/F"); |
|||
detectedPhotons->Branch("px",&pxBuffer,"px/F"); |
|||
detectedPhotons->Branch("py",&pyBuffer,"py/F"); |
|||
detectedPhotons->Branch("pz",&pzBuffer,"pz/F"); |
|||
detectedPhotons->Branch("vertexX",&vertexXBuffer,"vertexX/F"); |
|||
detectedPhotons->Branch("vertexY",&vertexYBuffer,"vertexY/F"); |
|||
detectedPhotons->Branch("vertexZ",&vertexZBuffer,"vertexZ/F"); |
|||
detectedPhotons->Branch("vertexPx",&vertexPxBuffer,"vertexPx/F"); |
|||
detectedPhotons->Branch("vertexPy",&vertexPyBuffer,"vertexPy/F"); |
|||
detectedPhotons->Branch("vertexPz",&vertexPzBuffer,"vertexPz/F"); |
|||
detectedPhotons->Branch("gpsPosX",&gpsPositionX,"gpsPosX/F"); |
|||
detectedPhotons->Branch("gpsPosY",&gpsPositionY,"gpsPosY/F"); |
|||
detectedPhotons->Branch("gpsPosZ",&gpsPositionZ,"gpsPosZ/F"); |
|||
detectedPhotons->Branch("gpsDirX",&gpsDirectionX,"gpsPosX/F"); |
|||
detectedPhotons->Branch("gpsDirY",&gpsDirectionY,"gpsPosY/F"); |
|||
detectedPhotons->Branch("gpsDirZ",&gpsDirectionZ,"gpsPosZ/F"); |
|||
detectedPhotons->Branch("runId",&runIdBuffer,"runId/I"); |
|||
detectedPhotons->Branch("eventId",&eventIdBuffer,"eventId/I"); |
|||
detectedPhotons->Branch("trackId",&trackIdBuffer,"trackId/I"); |
|||
detectedPhotons->Branch("creatorProcess",&creatorProcessBuffer,"creatorProcess/I"); |
|||
detectedPhotons->Branch("parentId",&parentIdBuffer,"parentId/I"); |
|||
detectedPhotons->Branch("reflMirr",&reflMirrBuffer,"reflMirr/I"); |
|||
detectedPhotons->Branch("reflSurf",&reflSurfBuffer,"reflSurf/I"); |
|||
detectedPhotons->Branch("reflTotalCladClad",&reflTotalCladCladBuffer,"reflTotalCladClad/I"); |
|||
detectedPhotons->Branch("reflTotalCoreClad",&reflTotalCoreCladBuffer,"reflTotalCoreClad/I"); |
|||
detectedPhotons->Branch("reflFresnelCladClad",&reflFresnelCladCladBuffer,"reflFresnelCladClad/I"); |
|||
detectedPhotons->Branch("reflFresnelCoreClad",&reflFresnelCoreCladBuffer,"reflFresnelCoreClad/I"); |
|||
detectedPhotons->Branch("refracCladClad",&refracCladCladBuffer,"refracCladClad/I"); |
|||
detectedPhotons->Branch("refracCoreClad",&refracCoreCladBuffer,"refracCoreClad/I"); |
|||
detectedPhotons->Branch("rayleighScatterings",&rayleighScatteringsBuffer,"rayleighScatterings/I"); |
|||
detectedPhotons->Branch("lengthInCore",&lengthInCoreBuffer,"lengthInCore/F"); |
|||
detectedPhotons->Branch("lengthInInnerCladding",&lengthInInnerCladdingBuffer,"lengthInInnerCladding/F"); |
|||
detectedPhotons->Branch("lengthInOuterCladding",&lengthInOuterCladdingBuffer,"lengthInOuterCladding/F"); |
|||
|
|||
trigger = new TTree("Trigger","Hits in the trigger."); |
|||
|
|||
trigger->Branch("runID", &runIDBuffer, "runID/F"); |
|||
trigger->Branch("eventID", &eventIDBuffer, "eventID/F"); |
|||
trigger->Branch("edep", &edepBuffer, "edep/F"); |
|||
trigger->Branch("xPos", &xPosBuffer, "xPos/F"); |
|||
trigger->Branch("yPos", &yPosBuffer, "yPos/F"); |
|||
trigger->Branch("zPos", &zPosBuffer, "zPos/F"); |
|||
|
|||
energyTrack = new TTree("EnergyTrack", "Deposited energy and tracklength in core of fibre."); |
|||
|
|||
energyTrack->Branch("runID", &runIDBuffer, "runID/F"); |
|||
energyTrack->Branch("eventID", &eventIDBuffer, "eventID/F"); |
|||
energyTrack->Branch("edep", &energyBuffer, "edep/F"); |
|||
energyTrack->Branch("trackL", &lengthBuffer, "trackL/F"); |
|||
|
|||
h_energy = new TH1F("h_energy","h_energy",200,0.0,1.0); |
|||
h_trackL = new TH1F("h_trackL","h_trackL",400,0.0,2.0); |
|||
|
|||
primaryParticleTrack = new TTree("PrimaryParticleTrack", "Track of the primary particles"); |
|||
|
|||
primaryParticleTrack->Branch("runID", &runIDBuffer, "runID/F"); |
|||
primaryParticleTrack->Branch("eventID", &eventIDBuffer, "eventID/F"); |
|||
primaryParticleTrack->Branch("xPos", &xPosBuffer, "xPos/F"); |
|||
primaryParticleTrack->Branch("yPos", &yPosBuffer, "yPos/F"); |
|||
primaryParticleTrack->Branch("zPos", &zPosBuffer, "zPos/F"); |
|||
|
|||
initialParticle = new TTree("InitialParticle", "Initial Particle"); |
|||
|
|||
initialParticle->Branch("runID", &runIDBuffer, "runID/F"); |
|||
initialParticle->Branch("eventID", &eventIDBuffer, "eventID/F"); |
|||
initialParticle->Branch("energy", &energyBuffer, "energy/F"); |
|||
initialParticle->Branch("xMom", &xMomBuffer, "xMom/F"); |
|||
initialParticle->Branch("yMom", &yMomBuffer, "yMom/F"); |
|||
initialParticle->Branch("zMom", &zMomBuffer, "zMom/F"); |
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
|
|||
void Analysis::PrepareNewRun(const G4Run* aRun) |
|||
{ |
|||
runIdBuffer = aRun->GetRunID(); |
|||
} |
|||
|
|||
|
|||
void Analysis::EndOfRun() |
|||
{ |
|||
dataFile = new TFile(fileName,"update"); |
|||
|
|||
//detectedPhotons->Write("",TObject::kOverwrite); |
|||
//trigger->Write("", TObject::kOverwrite); |
|||
// primaryParticleTrack->Write("", TObject::kOverwrite); |
|||
//initialParticle->Write("", TObject::kOverwrite); |
|||
// energyTrack->Write("", TObject::kOverwrite); |
|||
h_energy->Write("", TObject::kOverwrite); |
|||
h_trackL->Write("", TObject::kOverwrite); |
|||
G4cout << "Data written to file " << fileName << G4endl; |
|||
|
|||
dataFile->Close(); |
|||
|
|||
G4cout << "Data file closed: " << fileName << G4endl; |
|||
|
|||
delete dataFile; |
|||
} |
|||
|
|||
|
|||
void Analysis::Close() |
|||
{ |
|||
delete detectedPhotons; |
|||
delete trigger; |
|||
delete initialParticle; |
|||
delete energyTrack; |
|||
} |
|||
|
|||
|
|||
void Analysis::PrepareNewEvent(const G4Event* anEvent) |
|||
{ |
|||
eventIdBuffer = anEvent->GetEventID(); |
|||
|
|||
reflectionsAtMirror.resize(0); |
|||
reflectionsAtFibreSurface.resize(0); |
|||
reflectionsTotalAtCladCladInterface.resize(0); |
|||
reflectionsTotalAtCoreCladInterface.resize(0); |
|||
reflectionsFresnelAtCladCladInterface.resize(0); |
|||
reflectionsFresnelAtCoreCladInterface.resize(0); |
|||
|
|||
refractionsAtCladCladInterface.resize(0); |
|||
refractionsAtCoreCladInterface.resize(0); |
|||
|
|||
rayleighScatterings.resize(0); |
|||
|
|||
lengthInCore.resize(0); |
|||
lengthInInnerCladding.resize(0); |
|||
lengthInOuterCladding.resize(0); |
|||
} |
|||
|
|||
void Analysis::FillInitialParticle(Double_t runID, Double_t eventID, Double_t energy, Double_t xMom, Double_t yMom, Double_t zMom) |
|||
{ |
|||
if(initialParticle != NULL) |
|||
{ |
|||
runIDBuffer = runID; |
|||
eventIDBuffer = eventID; |
|||
energyBuffer = energy; |
|||
xMomBuffer = xMom; |
|||
yMomBuffer = yMom; |
|||
zMomBuffer = zMom; |
|||
// initialParticle->Fill(); |
|||
} |
|||
else |
|||
G4cout << "Nullpointer to initialParticle tree." << G4endl; |
|||
} |
|||
|
|||
void Analysis::FillTrigger(Double_t runID, Double_t eventID, Double_t edep, Double_t xPos, Double_t yPos, Double_t zPos) |
|||
{ |
|||
if(trigger != NULL) |
|||
{ |
|||
runIDBuffer = runID; |
|||
eventIDBuffer = eventID; |
|||
edepBuffer = edep; |
|||
xPosBuffer = xPos; |
|||
yPosBuffer = yPos; |
|||
zPosBuffer = zPos; |
|||
|
|||
// trigger->Fill(); |
|||
} |
|||
else |
|||
{ |
|||
G4cout << "Nullpointer to trigger tree." << G4endl; |
|||
} |
|||
} |
|||
|
|||
void Analysis::FillEnergyTrack(Double_t runID, Double_t eventID, Double_t energy, Double_t trackL) |
|||
{ |
|||
if(energyTrack != NULL) |
|||
{ |
|||
runIDBuffer = runID; |
|||
eventIDBuffer = eventID; |
|||
energyBuffer = energy; |
|||
lengthBuffer = trackL; |
|||
// energyTrack->Fill(); |
|||
h_energy->Fill(energy); |
|||
h_trackL->Fill(trackL); |
|||
} |
|||
else |
|||
{ |
|||
G4cout << "Nullpointer to energyTrack tree" << G4endl; |
|||
} |
|||
} |
|||
|
|||
void Analysis::FillPrimaryParticleTrack(Double_t runID, Double_t eventID, |
|||
Double_t xPos, Double_t yPos, Double_t zPos) |
|||
{ |
|||
if(primaryParticleTrack != NULL) |
|||
{ |
|||
runIDBuffer = runID; |
|||
eventIDBuffer = eventID; |
|||
xPosBuffer = xPos; |
|||
yPosBuffer = yPos; |
|||
zPosBuffer = zPos; |
|||
// primaryParticleTrack->Fill(); |
|||
} |
|||
else |
|||
{ |
|||
G4cout << "Nullpointer to primaryParticleTrack tree" << G4endl; |
|||
} |
|||
} |
|||
|
|||
void Analysis::FillDetectedPhotons(Double_t runID, Double_t eventID, Double_t detNumb, Double_t xPixel, |
|||
Double_t yPixel, Double_t energy, |
|||
Double_t time, Double_t length, Double_t absTime, |
|||
Double_t x, Double_t y, Double_t z, |
|||
Double_t px, Double_t py, Double_t pz, |
|||
Double_t vertexX, Double_t vertexY, Double_t vertexZ, |
|||
Double_t vertexPx, Double_t vertexPy, Double_t vertexPz, |
|||
Int_t trackId, |
|||
Int_t creatorProcess, Int_t parentId) |
|||
{ |
|||
if(detectedPhotons!=NULL) |
|||
{ |
|||
runIDBuffer = runID; |
|||
eventIDBuffer = eventID; |
|||
detNumbBuffer = detNumb; |
|||
xPixelBuffer = xPixel; |
|||
yPixelBuffer = yPixel; |
|||
|
|||
energyBuffer = energy; |
|||
timeBuffer = time; |
|||
lengthBuffer = length; |
|||
|
|||
wavelengthBuffer = 1239.842/energy; |
|||
|
|||
absTimeBuffer = absTime; |
|||
xBuffer = x; |
|||
yBuffer = y; |
|||
zBuffer = z; |
|||
|
|||
pxBuffer = px; |
|||
pyBuffer = py; |
|||
pzBuffer = pz; |
|||
|
|||
vertexXBuffer = vertexX; |
|||
vertexYBuffer = vertexY; |
|||
vertexZBuffer = vertexZ; |
|||
|
|||
vertexPxBuffer = vertexPx; |
|||
vertexPyBuffer = vertexPy; |
|||
vertexPzBuffer = vertexPz; |
|||
|
|||
trackIdBuffer = trackId; |
|||
|
|||
creatorProcessBuffer = creatorProcess; |
|||
parentIdBuffer = parentId; |
|||
|
|||
reflMirrBuffer = reflectionsAtMirror[trackId]; |
|||
reflSurfBuffer = reflectionsAtFibreSurface[trackId]; |
|||
reflTotalCladCladBuffer = reflectionsTotalAtCladCladInterface[trackId]; |
|||
reflTotalCoreCladBuffer = reflectionsTotalAtCoreCladInterface[trackId]; |
|||
reflFresnelCladCladBuffer = reflectionsFresnelAtCladCladInterface[trackId]; |
|||
reflFresnelCoreCladBuffer = reflectionsFresnelAtCoreCladInterface[trackId]; |
|||
|
|||
refracCladCladBuffer = refractionsAtCladCladInterface[trackId]; |
|||
refracCoreCladBuffer = refractionsAtCoreCladInterface[trackId]; |
|||
|
|||
rayleighScatteringsBuffer = rayleighScatterings[trackId]; |
|||
|
|||
lengthInCoreBuffer = lengthInCore[trackId]; |
|||
lengthInInnerCladdingBuffer = lengthInInnerCladding[trackId]; |
|||
lengthInOuterCladdingBuffer = lengthInOuterCladding[trackId]; |
|||
|
|||
// detectedPhotons->Fill(); |
|||
} |
|||
else |
|||
{ |
|||
G4cout << G4endl << "Pointer to detectedPhotons tree is NULL!" << G4endl; |
|||
} |
|||
} |
|||
|
|||
char* Analysis::FileName() |
|||
{ |
|||
return fileName; |
|||
} |
|||
|
|||
void Analysis::SetGpsPosition(G4ThreeVector position) |
|||
{ |
|||
gpsPositionX = position[0]; |
|||
gpsPositionY = position[1]; |
|||
gpsPositionZ = position[2]; |
|||
} |
|||
|
|||
void Analysis::IncreaseReflectionsAtMirror(Int_t trackId) |
|||
{ |
|||
reflectionsAtMirror[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::SetGpsDirection(G4ThreeVector direction) |
|||
{ |
|||
gpsDirectionX = direction[0]; |
|||
gpsDirectionY = direction[1]; |
|||
gpsDirectionZ = direction[2]; |
|||
} |
|||
|
|||
void Analysis::IncreaseReflectionsAtFibreSurface(Int_t trackId) |
|||
{ |
|||
reflectionsAtFibreSurface[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseTotalReflectionsAtCladCladInterface(Int_t trackId) |
|||
{ |
|||
reflectionsTotalAtCladCladInterface[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseTotalReflectionsAtCoreCladInterface(Int_t trackId) |
|||
{ |
|||
reflectionsTotalAtCoreCladInterface[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseFresnelReflectionsAtCladCladInterface(Int_t trackId) |
|||
{ |
|||
reflectionsFresnelAtCladCladInterface[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseFresnelReflectionsAtCoreCladInterface(Int_t trackId) |
|||
{ |
|||
reflectionsFresnelAtCoreCladInterface[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseRefractionsAtCladCladInterface(Int_t trackId) |
|||
{ |
|||
refractionsAtCladCladInterface[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseRefractionsAtCoreCladInterface(Int_t trackId) |
|||
{ |
|||
refractionsAtCoreCladInterface[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseRayleighScatterings(Int_t trackId) |
|||
{ |
|||
rayleighScatterings[trackId]++; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseReflectionRefractionAndScatteringVectors(Int_t trackId) |
|||
{ |
|||
for(int i=reflectionsAtMirror.size(); i<trackId+1; i++) |
|||
reflectionsAtMirror.push_back(0); |
|||
|
|||
for(int i=reflectionsAtFibreSurface.size(); i<trackId+1; i++) |
|||
reflectionsAtFibreSurface.push_back(0); |
|||
|
|||
for(int i=reflectionsTotalAtCladCladInterface.size(); i<trackId+1; i++) |
|||
reflectionsTotalAtCladCladInterface.push_back(0); |
|||
|
|||
for(int i=reflectionsTotalAtCoreCladInterface.size(); i<trackId+1; i++) |
|||
reflectionsTotalAtCoreCladInterface.push_back(0); |
|||
|
|||
for(int i=reflectionsFresnelAtCladCladInterface.size(); i<trackId+1; i++) |
|||
reflectionsFresnelAtCladCladInterface.push_back(0); |
|||
|
|||
for(int i=reflectionsFresnelAtCoreCladInterface.size(); i<trackId+1; i++) |
|||
reflectionsFresnelAtCoreCladInterface.push_back(0); |
|||
|
|||
for(int i=refractionsAtCladCladInterface.size(); i<trackId+1; i++) |
|||
refractionsAtCladCladInterface.push_back(0); |
|||
|
|||
for(int i=refractionsAtCoreCladInterface.size(); i<trackId+1; i++) |
|||
refractionsAtCoreCladInterface.push_back(0); |
|||
|
|||
for(int i=rayleighScatterings.size(); i<trackId+1; i++) |
|||
rayleighScatterings.push_back(0); |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseLengthInCore(Int_t trackId, Float_t lengthValue) |
|||
{ |
|||
lengthInCore[trackId] += lengthValue; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseLengthInInnerCladding(Int_t trackId, Float_t lengthValue) |
|||
{ |
|||
lengthInInnerCladding[trackId] += lengthValue; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseLengthInOuterCladding(Int_t trackId, Float_t lengthValue) |
|||
{ |
|||
lengthInOuterCladding[trackId] += lengthValue; |
|||
} |
|||
|
|||
|
|||
void Analysis::IncreaseLengthVectors(Int_t trackId) |
|||
{ |
|||
for(int i=lengthInCore.size(); i<trackId+1; i++) |
|||
lengthInCore.push_back(0); |
|||
|
|||
for(int i=lengthInInnerCladding.size(); i<trackId+1; i++) |
|||
lengthInInnerCladding.push_back(0); |
|||
|
|||
for(int i=lengthInOuterCladding.size(); i<trackId+1; i++) |
|||
lengthInOuterCladding.push_back(0); |
|||
} |
@ -0,0 +1,913 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
// modified by Bastian Rössler
|
|||
|
|||
#include "G4Navigator.hh"
|
|||
#include "DetectorConstruction.hh"
|
|||
#include "G4Material.hh"
|
|||
#include "G4LogicalBorderSurface.hh"
|
|||
#include "G4LogicalSkinSurface.hh"
|
|||
#include "G4Box.hh"
|
|||
#include "G4Tubs.hh"
|
|||
#include "G4EllipticalTube.hh"
|
|||
#include "G4SubtractionSolid.hh"
|
|||
#include "G4LogicalVolume.hh"
|
|||
#include "G4RotationMatrix.hh"
|
|||
#include "G4PVPlacement.hh"
|
|||
#include "G4OpBoundaryProcess.hh"
|
|||
#include "G4MaterialPropertyVector.hh"
|
|||
#include "G4NistManager.hh"
|
|||
#include "G4VisAttributes.hh"
|
|||
#include "G4Colour.hh"
|
|||
#include "G4PVParameterised.hh"
|
|||
#include "SensitiveDetector.hh"
|
|||
#include "G4SDManager.hh"
|
|||
#include "Analysis.hh"
|
|||
#include "Parameters.hh"
|
|||
#include "TF1.h"
|
|||
#include "TF2.h"
|
|||
#include "Randomize.hh"
|
|||
#include <fstream>
|
|||
#include <sstream>
|
|||
#include "G4SystemOfUnits.hh"
|
|||
#include "G4VPVParameterisation.hh"
|
|||
#include "Convert.hh"
|
|||
#include <math.h>
|
|||
#include <stdlib.h>
|
|||
#include <time.h>
|
|||
#include <iostream>
|
|||
#include <fstream>
|
|||
|
|||
DetectorConstruction::DetectorConstruction() |
|||
: G4VUserDetectorConstruction(), |
|||
fScoringVolume(0) |
|||
{ |
|||
// Size of experimental hall and fibre length //
|
|||
detector_x = 10*cm; |
|||
detector_y = 2*cm; |
|||
detector_z = (Parameters::GetInstance()->FibreLength()+0.5)/2.*m+1*cm; |
|||
scint_z = Parameters::GetInstance()->FibreLength()/2.*m; |
|||
|
|||
// mat/detector dimensions
|
|||
Nj = 1; //rows of fibre in Y
|
|||
Nk = 10; // number of fibers in X
|
|||
|
|||
xDist = 0.275 *4* mm; //horizontal pitch of fibres (each row staggered by xDist/2)
|
|||
yDist = 0.210 *4* mm; //vertical pitch of rows
|
|||
stripWidth = 1.0 * mm; //SiPM channel width
|
|||
stripHeight = 1.00 * mm; //SiPM channel height
|
|||
|
|||
airGap = 0.001 * mm; //airgap between epoxy and fibre
|
|||
pixelDimX = 0.05 * mm; // pixel dimension X
|
|||
pixelDimY = 0.05 * mm; //pixel dimension Y
|
|||
epoxy_strip_width = 0.1*mm; //epoxy thickness over SiPM silicon
|
|||
|
|||
Nx = 20; // number of SiPM pixels in X
|
|||
Ny = 20; // number of SiPM pixels in Y
|
|||
|
|||
//Geant4 World
|
|||
fWorldSizeX = 1000*cm; |
|||
fWorldSizeY = 1000*cm; |
|||
fWorldSizeZ = 1000*cm; |
|||
|
|||
fMirrorToggle = true; //mirror at the end of the fibre mat
|
|||
fMirrorPolish = 1.; //polish parameter
|
|||
fMirrorReflectivity = 0.8; //reflectivity parameter
|
|||
|
|||
|
|||
fMirrorZ = 0.1*mm; //mirror thickness
|
|||
fMirrorRmax = 0.250*mm; //TODO
|
|||
} |
|||
|
|||
DetectorConstruction::~DetectorConstruction(){} |
|||
|
|||
void DetectorConstruction::DefineMaterials() |
|||
{ |
|||
// Get nist material manager
|
|||
G4NistManager* man = G4NistManager::Instance(); |
|||
// Option to switch on/off checking of volumes overlaps
|
|||
//
|
|||
G4bool checkOverlaps = true; |
|||
|
|||
|
|||
// Elements to cunstruct inner cladding material (PMMA)
|
|||
G4double densityPMMA = 1190*kg/m3; |
|||
std::vector<G4String> PMMA_elm; |
|||
std::vector<G4int> PMMA_nbAtoms; |
|||
PMMA_elm.push_back("H"); PMMA_nbAtoms.push_back(8); |
|||
PMMA_elm.push_back("C"); PMMA_nbAtoms.push_back(5); |
|||
PMMA_elm.push_back("O"); PMMA_nbAtoms.push_back(2); |
|||
PMMA = man->ConstructNewMaterial("PMMA", PMMA_elm, PMMA_nbAtoms, densityPMMA); |
|||
|
|||
// Elements to cunstruct outer cladding material (PTFEMA)
|
|||
G4double densityPMMA2 = 1430*kg/m3; |
|||
std::vector<G4String> PMMA2_elm; |
|||
std::vector<G4int> PMMA2_nbAtoms; |
|||
PMMA2_elm.push_back("H"); PMMA2_nbAtoms.push_back(7); |
|||
PMMA2_elm.push_back("C"); PMMA2_nbAtoms.push_back(6); |
|||
PMMA2_elm.push_back("O"); PMMA2_nbAtoms.push_back(2); |
|||
PMMA2_elm.push_back("F"); PMMA2_nbAtoms.push_back(3); |
|||
PMMA2 = man->ConstructNewMaterial("PMMA2", PMMA2_elm, PMMA2_nbAtoms, densityPMMA2=1430*kg/m3); |
|||
|
|||
// Glue (Epo-Tek 301)
|
|||
G4double Glue_density = 1.15*g/cm3; |
|||
std::vector<G4String> Glue_elm; |
|||
std::vector<G4int> Glue_nbAtoms; |
|||
Glue_elm.push_back("C"); Glue_nbAtoms.push_back(19); |
|||
Glue_elm.push_back("H"); Glue_nbAtoms.push_back(27); |
|||
Glue_elm.push_back("O"); Glue_nbAtoms.push_back(3); |
|||
Glue = man->ConstructNewMaterial("Glue",Glue_elm, Glue_nbAtoms, Glue_density); |
|||
|
|||
// TiO2
|
|||
G4double TiO2_density = 4.26*g/cm3; |
|||
std::vector<G4String> TiO2_elm; |
|||
std::vector<G4int> TiO2_nbAtoms; |
|||
TiO2_elm.push_back("Ti"); TiO2_nbAtoms.push_back(1); |
|||
TiO2_elm.push_back("Ti"); TiO2_nbAtoms.push_back(2); |
|||
TiO2 = man->ConstructNewMaterial("TiO2",TiO2_elm, TiO2_nbAtoms, TiO2_density); |
|||
|
|||
// Abs plastic
|
|||
G4double Abs_density = 1.07*g/cm3; |
|||
std::vector<G4String> Abs_elm; |
|||
std::vector<G4int> Abs_nbAtoms; |
|||
Abs_elm.push_back("H"); Abs_nbAtoms.push_back(17); |
|||
Abs_elm.push_back("C"); Abs_nbAtoms.push_back(13); |
|||
Abs_elm.push_back("N"); Abs_nbAtoms.push_back(1); |
|||
Abs_plastic = man->ConstructNewMaterial("Abs_plastic", Abs_elm, Abs_nbAtoms, Abs_density); |
|||
|
|||
// Epoxy
|
|||
G4double Epoxy_density = 1.5*g/cm3; |
|||
Epoxy = new G4Material("Epoxy", Epoxy_density, 2); |
|||
Epoxy->AddMaterial(TiO2, 25*perCent); |
|||
Epoxy->AddMaterial(Glue, 75*perCent); |
|||
|
|||
// Environment
|
|||
Air = man->FindOrBuildMaterial("G4_AIR"); |
|||
Vacuum = man->FindOrBuildMaterial("G4_Galactic"); |
|||
|
|||
// Polystyrene G4_POLYSTYRENE
|
|||
Pstyrene = man->FindOrBuildMaterial("G4_POLYSTYRENE"); |
|||
|
|||
// Aluminium
|
|||
alu = man->FindOrBuildMaterial("G4_Al"); |
|||
|
|||
// Core sections
|
|||
G4String materialNameCore = "ScintCoreMaterial"; |
|||
scintCoreMaterial = new G4Material(materialNameCore,Pstyrene->GetDensity(),1); |
|||
scintCoreMaterial->AddMaterial(Pstyrene,1.); |
|||
|
|||
// Inner cladding sections
|
|||
G4String materialNameCladding1 = "InnerCladdingMaterial"; |
|||
innerCladdingMaterial = new G4Material(materialNameCladding1,PMMA->GetDensity(),1); |
|||
innerCladdingMaterial->AddMaterial(PMMA,1.); |
|||
|
|||
// Outer cladding sections
|
|||
G4String materialNameCladding2 = "OuterCladdingMaterial"; |
|||
outerCladdingMaterial = new G4Material(materialNameCladding2,PMMA2->GetDensity(),1); |
|||
outerCladdingMaterial->AddMaterial(PMMA2,1.); |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
void DetectorConstruction::DefineMaterialProperties() |
|||
{ |
|||
// Initialise considered ENERGIES and EMISSION SPECTRA for scintillation and wls
|
|||
|
|||
const G4int numInterpolPoints = Parameters::GetInstance()->NumberOfInterpolatedPoints(); |
|||
|
|||
// Set scintillation emmision spectrum
|
|||
G4int E_NUMENTRIES = Parameters::GetInstance()->NumberOfEnergies(); |
|||
G4double* Energy = new G4double[E_NUMENTRIES]; |
|||
for(int i=0; i<E_NUMENTRIES; i++) |
|||
Energy[i] = Parameters::GetInstance()->Energy[i]*eV; |
|||
|
|||
G4double* ScintilEnergyDist = new G4double[E_NUMENTRIES]; |
|||
for(int i=0; i<E_NUMENTRIES; i++) |
|||
ScintilEnergyDist[i] = Parameters::GetInstance()->Intensity[i]; |
|||
|
|||
G4MaterialPropertyVector* scintSpecVector = new G4MaterialPropertyVector(Energy, ScintilEnergyDist, E_NUMENTRIES); |
|||
scintSpecVector->SetSpline(true); |
|||
|
|||
// Set the Birks Constant for the Polystyrene scintillator
|
|||
Pstyrene->GetIonisation()->SetBirksConstant(Parameters::GetInstance()->BirksConstant()*mm/MeV); |
|||
|
|||
// Set wls emmision spectrum
|
|||
G4int WLS_E_NUMENTRIES = Parameters::GetInstance()->NumberOfWlsEmissionEnergies(); |
|||
G4double* WlsEnergy = new G4double[WLS_E_NUMENTRIES]; |
|||
for(int i=0; i<WLS_E_NUMENTRIES; i++) |
|||
WlsEnergy[i] = Parameters::GetInstance()->WlsEmissionEnergy[i]*eV; |
|||
|
|||
G4double* WlsEnergyDist = new G4double[WLS_E_NUMENTRIES]; |
|||
for(int i=0; i<WLS_E_NUMENTRIES; i++) |
|||
WlsEnergyDist[i] = Parameters::GetInstance()->WlsEmissionIntensity[i]; |
|||
|
|||
G4MaterialPropertyVector* wlsSpecVector = new G4MaterialPropertyVector(WlsEnergy, WlsEnergyDist, WLS_E_NUMENTRIES); |
|||
wlsSpecVector->SetSpline(true); |
|||
|
|||
if(numInterpolPoints>0) |
|||
{ |
|||
// Interpolate scintillation spectrum
|
|||
|
|||
const G4int E_NUMENTRIES_New = (E_NUMENTRIES-1)*(numInterpolPoints+1)+1; |
|||
G4double* NewEnergy = new G4double[E_NUMENTRIES_New]; |
|||
G4double* NewValue = new G4double[E_NUMENTRIES_New]; |
|||
G4double* scintInterpolValue = new G4double[numInterpolPoints]; |
|||
|
|||
for(int j=0; j<E_NUMENTRIES-1; j++) |
|||
{ |
|||
G4double interpolDist = (Energy[j+1]-Energy[j])/(numInterpolPoints+1); |
|||
NewEnergy[j*(numInterpolPoints+1)] = Energy[j]; |
|||
NewValue[j*(numInterpolPoints+1)] = scintSpecVector->Value(Energy[j]); |
|||
|
|||
for(int k=0; k<numInterpolPoints; k++) |
|||
{ |
|||
scintInterpolValue[k] = scintSpecVector->Value(Energy[j]+(k+1)*interpolDist); |
|||
NewEnergy[j*(numInterpolPoints+1)+(k+1)] = Energy[j]+(k+1)*interpolDist; |
|||
|
|||
if(scintInterpolValue[k]>=0) |
|||
{ |
|||
NewValue[j*(numInterpolPoints+1)+(k+1)] = scintInterpolValue[k]; |
|||
} |
|||
else |
|||
{ |
|||
NewValue[j*(numInterpolPoints+1)+(k+1)] = 0; |
|||
G4cout << "Warning: Intensity of emission spectrum set to 0 for energy " |
|||
<< NewEnergy[j*(numInterpolPoints+1)+(k+1)]*1e6 |
|||
<< " eV.\nSpline interpolation led to negative value!" << G4endl; |
|||
} |
|||
} |
|||
} |
|||
|
|||
NewEnergy[E_NUMENTRIES_New-1] = Energy[E_NUMENTRIES-1]; |
|||
NewValue[E_NUMENTRIES_New-1] = scintSpecVector->Value(Energy[E_NUMENTRIES-1]); |
|||
|
|||
delete[] Energy; |
|||
delete[] ScintilEnergyDist; |
|||
delete scintSpecVector; |
|||
|
|||
E_NUMENTRIES = E_NUMENTRIES_New; |
|||
Energy = new G4double[E_NUMENTRIES]; |
|||
ScintilEnergyDist = new G4double[E_NUMENTRIES]; |
|||
|
|||
for(int i=0; i<E_NUMENTRIES; i++) |
|||
{ |
|||
Energy[i] = NewEnergy[i]; |
|||
ScintilEnergyDist[i] = NewValue[i]; |
|||
} |
|||
|
|||
scintSpecVector = new G4MaterialPropertyVector(Energy, ScintilEnergyDist, E_NUMENTRIES); |
|||
scintSpecVector->SetSpline(true); |
|||
|
|||
delete[] NewEnergy; |
|||
delete[] NewValue; |
|||
delete[] scintInterpolValue; |
|||
|
|||
|
|||
// Interpolate wls spectrum
|
|||
|
|||
const G4int WLS_E_NUMENTRIES_New = (WLS_E_NUMENTRIES-1)*(numInterpolPoints+1)+1; |
|||
NewEnergy = new G4double[WLS_E_NUMENTRIES_New]; |
|||
NewValue = new G4double[WLS_E_NUMENTRIES_New]; |
|||
|
|||
G4double* wlsInterpolValue = new G4double[numInterpolPoints]; |
|||
|
|||
for(int j=0; j<WLS_E_NUMENTRIES-1; j++) |
|||
{ |
|||
G4double interpolDist = (WlsEnergy[j+1]-WlsEnergy[j])/(numInterpolPoints+1); |
|||
NewEnergy[j*(numInterpolPoints+1)] = WlsEnergy[j]; |
|||
NewValue[j*(numInterpolPoints+1)] = wlsSpecVector->Value(WlsEnergy[j]); |
|||
|
|||
for(int k=0; k<numInterpolPoints; k++) |
|||
{ |
|||
wlsInterpolValue[k] = wlsSpecVector->Value(WlsEnergy[j]+(k+1)*interpolDist); |
|||
NewEnergy[j*(numInterpolPoints+1)+(k+1)] = WlsEnergy[j]+(k+1)*interpolDist; |
|||
if(wlsInterpolValue[k]>=0) |
|||
{ |
|||
NewValue[j*(numInterpolPoints+1)+(k+1)] = wlsInterpolValue[k]; |
|||
} |
|||
else |
|||
{ |
|||
NewValue[j*(numInterpolPoints+1)+(k+1)] = 0; |
|||
G4cout << "Warning: Intensity of WLS emission spectrum set to 0 for energy " |
|||
<< NewEnergy[j*(numInterpolPoints+1)+(k+1)]*1e6 |
|||
<< " eV.\nSpline interpolation led to negative value!" << G4endl; |
|||
} |
|||
} |
|||
} |
|||
|
|||
NewEnergy[WLS_E_NUMENTRIES_New-1] = WlsEnergy[WLS_E_NUMENTRIES-1]; |
|||
NewValue[WLS_E_NUMENTRIES_New-1] = wlsSpecVector->Value(WlsEnergy[WLS_E_NUMENTRIES-1]); |
|||
|
|||
delete[] WlsEnergy; |
|||
delete[] WlsEnergyDist; |
|||
delete wlsSpecVector; |
|||
|
|||
WLS_E_NUMENTRIES = WLS_E_NUMENTRIES_New; |
|||
WlsEnergy = new G4double[WLS_E_NUMENTRIES]; |
|||
WlsEnergyDist = new G4double[WLS_E_NUMENTRIES]; |
|||
|
|||
for(int i=0; i<WLS_E_NUMENTRIES; i++) |
|||
{ |
|||
WlsEnergy[i] = NewEnergy[i]; |
|||
WlsEnergyDist[i] = NewValue[i]; |
|||
} |
|||
|
|||
wlsSpecVector = new G4MaterialPropertyVector(WlsEnergy, WlsEnergyDist, WLS_E_NUMENTRIES); |
|||
wlsSpecVector->SetSpline(true); |
|||
|
|||
delete[] NewEnergy; |
|||
delete[] NewValue; |
|||
delete[] wlsInterpolValue; |
|||
} |
|||
|
|||
// Save spectra to parameter file
|
|||
std::ofstream parameterOutputFile; |
|||
parameterOutputFile.open(Parameters::GetInstance()->ParameterOutputFileName(), std::ios_base::app); |
|||
|
|||
parameterOutputFile << G4endl << "Scintillation emission spectrum:" << G4endl; |
|||
parameterOutputFile << "Energy/eV\tWavelength/nm\tIntensity" << "\n"; |
|||
for(int i=0; i<E_NUMENTRIES; i++) |
|||
{ |
|||
parameterOutputFile << Energy[i]*1e6 << "\t" << Parameters::hcPERe/Energy[i]*1e3 |
|||
<< "\t" << ScintilEnergyDist[i]<< "\n"; |
|||
} |
|||
|
|||
parameterOutputFile << G4endl << "WLS emission spectrum:" << G4endl; |
|||
parameterOutputFile << "Energy/eV\tWavelength/nm\tIntensity" << "\n"; |
|||
for(int i=0; i<WLS_E_NUMENTRIES; i++) |
|||
{ |
|||
parameterOutputFile << WlsEnergy[i]*1e6 << "\t" << Parameters::hcPERe/WlsEnergy[i]*1e3 |
|||
<< "\t" << WlsEnergyDist[i]<< "\n"; |
|||
} |
|||
|
|||
parameterOutputFile.close(); |
|||
|
|||
// WLS ABSORPTION
|
|||
const G4int WLS_ABS_ENTRIES = Parameters::GetInstance()->NumberOfWlsAbsEnergies(); |
|||
G4double* WlsAbsEnergy = new G4double[WLS_ABS_ENTRIES]; |
|||
G4double* WlsAbsLength = new G4double[WLS_ABS_ENTRIES]; |
|||
|
|||
for(int j=0; j<WLS_ABS_ENTRIES; j++) |
|||
{ |
|||
WlsAbsEnergy[j] = Parameters::GetInstance()->WlsAbsEnergy[j]*eV; |
|||
WlsAbsLength[j] = Parameters::GetInstance()->WlsAbsLength[j]*m; |
|||
} |
|||
|
|||
// Save WLS absorption lengths to parameter file
|
|||
parameterOutputFile.open(Parameters::GetInstance()->ParameterOutputFileName(), std::ios_base::app); |
|||
parameterOutputFile << G4endl << "WLS absorption length / m:" << G4endl; |
|||
parameterOutputFile << "Energy/eV\tWavelength/nm\tAbsorption length" << "\n"; |
|||
for(int i=0; i<WLS_ABS_ENTRIES; i++) |
|||
{ |
|||
parameterOutputFile << WlsAbsEnergy[i]*1e6 << "\t" << Parameters::hcPERe/WlsAbsEnergy[i]*1e3 |
|||
<< "\t" << WlsAbsLength[i]*1e-3 << "\n"; |
|||
} |
|||
parameterOutputFile.close(); |
|||
|
|||
// REFRACTIVE INDICES
|
|||
|
|||
G4double* Vacuum_RIND = new G4double[E_NUMENTRIES]; |
|||
G4double* Pstyrene_RIND = new G4double[E_NUMENTRIES]; |
|||
G4double* PMMA_RIND = new G4double[E_NUMENTRIES]; |
|||
G4double* PMMA2_RIND = new G4double[E_NUMENTRIES]; |
|||
G4double* Epoxy_RIND = new G4double[E_NUMENTRIES]; |
|||
|
|||
// Functions are saved in parameter-file
|
|||
// todo: write this functions in c++ code
|
|||
TF1 vacuumRind("vacuumRind",Parameters::GetInstance()->RefractiveIndexVacuum(),300,800); |
|||
TF1 coreRind("coreRind",Parameters::GetInstance()->RefractiveIndexCore(),300,800); |
|||
TF1 clad1Rind("clad1Rind",Parameters::GetInstance()->RefractiveIndexClad1(),300,800); |
|||
TF1 clad2Rind("clad2Rind",Parameters::GetInstance()->RefractiveIndexClad2(),300,800); |
|||
|
|||
for(int i=0; i<E_NUMENTRIES; i++) |
|||
{ |
|||
double wavelengthNanometer = Parameters::hcPERe/Energy[i]*1e3; |
|||
Vacuum_RIND[i] = vacuumRind.Eval(wavelengthNanometer); |
|||
Pstyrene_RIND[i] = coreRind.Eval(wavelengthNanometer); |
|||
PMMA_RIND[i] = clad1Rind.Eval(wavelengthNanometer); |
|||
PMMA2_RIND[i] = clad2Rind.Eval(wavelengthNanometer); |
|||
Epoxy_RIND[i] = 1.59; |
|||
} |
|||
|
|||
// Save refractive indices to parameter file
|
|||
|
|||
parameterOutputFile.open(Parameters::GetInstance()->ParameterOutputFileName(), std::ios_base::app); |
|||
parameterOutputFile << G4endl << "Refractive indices:" << G4endl; |
|||
parameterOutputFile << "Energy/eV\tWavelength/nm\tVacuum\tClad2\tClad1\tCore" << "\n"; |
|||
for(int i=0; i<E_NUMENTRIES; i++) |
|||
{ |
|||
parameterOutputFile << Energy[i]*1e6 << "\t" << Parameters::hcPERe/Energy[i]*1e3 |
|||
<< "\t" << Vacuum_RIND[i]<< "\t" << PMMA2_RIND[i] << "\t" |
|||
<< PMMA_RIND[i] << "\t" << Pstyrene_RIND[i] << "\n"; |
|||
} |
|||
parameterOutputFile.close(); |
|||
|
|||
|
|||
// Set material properties table of Vacuum
|
|||
|
|||
G4double* Vacuum_ABS = new G4double[E_NUMENTRIES]; |
|||
G4double* Epoxy_ABS = new G4double[E_NUMENTRIES]; |
|||
for(int i=0; i<E_NUMENTRIES; i++){ |
|||
Vacuum_ABS[i] = 5e4*m; // absorption length in vacuum...
|
|||
Epoxy_ABS[i] = 1*m; |
|||
} |
|||
|
|||
G4MaterialPropertiesTable *Vacuum_mt = new G4MaterialPropertiesTable(); |
|||
Vacuum_mt->AddProperty("RINDEX", Energy, Vacuum_RIND,E_NUMENTRIES); |
|||
Vacuum_mt->AddProperty("ABSLENGTH",Energy,Vacuum_ABS,E_NUMENTRIES); |
|||
Vacuum->SetMaterialPropertiesTable(Vacuum_mt); |
|||
|
|||
G4MaterialPropertiesTable *Epoxy_mt = new G4MaterialPropertiesTable(); |
|||
Epoxy_mt->AddProperty("RINDEX", Energy, Epoxy_RIND, E_NUMENTRIES); |
|||
Epoxy_mt->AddProperty("ABSLENGTH", Energy, Epoxy_ABS, E_NUMENTRIES); |
|||
Glue->SetMaterialPropertiesTable(Epoxy_mt); |
|||
|
|||
// give air same material properties as vacuum
|
|||
Air->SetMaterialPropertiesTable(Vacuum_mt); |
|||
|
|||
// RAYLEIGH SCATTERING
|
|||
|
|||
G4double* Pstyrene_RAYLEIGH = new G4double[E_NUMENTRIES]; |
|||
G4double* PMMA_RAYLEIGH = new G4double[E_NUMENTRIES]; |
|||
G4double* PMMA2_RAYLEIGH = new G4double[E_NUMENTRIES]; |
|||
|
|||
TF1 coreRayleigh("coreRayleigh",Parameters::GetInstance()->RayleighCore(),300,800); |
|||
TF1 clad1Rayleigh("clad1Rayleigh",Parameters::GetInstance()->RayleighClad1(),300,800); |
|||
TF1 clad2Rayleigh("clad2Rayleigh",Parameters::GetInstance()->RayleighClad2(),300,800); |
|||
|
|||
// Calculate scattering lengths
|
|||
|
|||
for(int j=0; j<E_NUMENTRIES; j++) |
|||
{ |
|||
double wavelengthNanometer = Parameters::hcPERe/Energy[j]*1e3; |
|||
// todo : write this functions in c++
|
|||
Pstyrene_RAYLEIGH[j] = 1./coreRayleigh.Eval(wavelengthNanometer)*m; |
|||
PMMA_RAYLEIGH[j] = 1./clad1Rayleigh.Eval(wavelengthNanometer)*m; |
|||
PMMA2_RAYLEIGH[j] = 1./clad2Rayleigh.Eval(wavelengthNanometer)*m; |
|||
} |
|||
|
|||
// Save Rayleigh scattering lengths to parameter file
|
|||
|
|||
parameterOutputFile.open(Parameters::GetInstance()->ParameterOutputFileName(), std::ios_base::app); |
|||
parameterOutputFile << G4endl << "Rayleigh scattering length / m:" << G4endl; |
|||
parameterOutputFile << "Energy/eV\tWavelength/nm\tClad2\tClad1\tCore" << "\n"; |
|||
for(int i=0; i<E_NUMENTRIES; i++) |
|||
{ |
|||
parameterOutputFile << Energy[i]*1e6 << "\t" << Parameters::hcPERe/Energy[i]*1e3 |
|||
<< "\t" << PMMA2_RAYLEIGH[i]*1e-3 << "\t" << PMMA_RAYLEIGH[i]*1e-3 |
|||
<< "\t" << Pstyrene_RAYLEIGH[i]*1e-3 << "\n"; |
|||
} |
|||
parameterOutputFile.close(); |
|||
|
|||
|
|||
|
|||
// Material properties table
|
|||
|
|||
G4MaterialPropertiesTable* scintCoreMaterialProperties = new G4MaterialPropertiesTable(); |
|||
G4MaterialPropertiesTable* innerCladMaterialProperties = new G4MaterialPropertiesTable(); |
|||
G4MaterialPropertiesTable* outerCladMaterialProperties = new G4MaterialPropertiesTable(); |
|||
|
|||
// Set refractive indices
|
|||
|
|||
scintCoreMaterialProperties->AddProperty("RINDEX",Energy,Pstyrene_RIND,E_NUMENTRIES)->SetSpline(true); |
|||
innerCladMaterialProperties->AddProperty("RINDEX",Energy,PMMA_RIND,E_NUMENTRIES)->SetSpline(true); |
|||
outerCladMaterialProperties->AddProperty("RINDEX",Energy,PMMA2_RIND,E_NUMENTRIES)->SetSpline(true); |
|||
|
|||
// Set absorption
|
|||
|
|||
// todo : write functions in c++ code
|
|||
TF1 coreAbs("coreAbs",Parameters::GetInstance()->AbsorptionCore(),300,800); |
|||
TF1 clad1Abs("clad1Abs",Parameters::GetInstance()->AbsorptionClad1(),300,800); |
|||
TF1 clad2Abs("clad2Abs",Parameters::GetInstance()->AbsorptionClad2(),300,800); |
|||
|
|||
G4double* Pstyrene_ABSLENGTH = new G4double[E_NUMENTRIES]; |
|||
G4double* PMMA_ABSLENGTH = new G4double[E_NUMENTRIES]; |
|||
G4double* PMMA2_ABSLENGTH = new G4double[E_NUMENTRIES]; |
|||
|
|||
// Calculate absorption lengths
|
|||
|
|||
for(int j=0; j<E_NUMENTRIES; j++) |
|||
{ |
|||
double wavelengthNanometer = Parameters::hcPERe/Energy[j]*1e3; |
|||
|
|||
Pstyrene_ABSLENGTH[j] = 1./coreAbs.Eval(wavelengthNanometer)*m; |
|||
PMMA_ABSLENGTH[j] = 1./clad1Abs.Eval(wavelengthNanometer)*m; |
|||
PMMA2_ABSLENGTH[j] = 1./clad2Abs.Eval(wavelengthNanometer)*m; |
|||
} |
|||
|
|||
scintCoreMaterialProperties->AddProperty("ABSLENGTH",Energy,Pstyrene_ABSLENGTH,E_NUMENTRIES)->SetSpline(true); |
|||
innerCladMaterialProperties->AddProperty("ABSLENGTH",Energy,PMMA_ABSLENGTH,E_NUMENTRIES)->SetSpline(true); |
|||
outerCladMaterialProperties->AddProperty("ABSLENGTH",Energy,PMMA2_ABSLENGTH,E_NUMENTRIES)->SetSpline(true); |
|||
|
|||
delete[] Pstyrene_ABSLENGTH; |
|||
delete[] PMMA_ABSLENGTH; |
|||
delete[] PMMA2_ABSLENGTH; |
|||
|
|||
// Set Rayleigh scattering
|
|||
|
|||
scintCoreMaterialProperties->AddProperty("RAYLEIGH",Energy,Pstyrene_RAYLEIGH,E_NUMENTRIES)->SetSpline(true); |
|||
innerCladMaterialProperties->AddProperty("RAYLEIGH",Energy,PMMA_RAYLEIGH,E_NUMENTRIES)->SetSpline(true); |
|||
outerCladMaterialProperties->AddProperty("RAYLEIGH",Energy,PMMA2_RAYLEIGH,E_NUMENTRIES)->SetSpline(true); |
|||
|
|||
// Set scintillation and WLS properties
|
|||
|
|||
scintCoreMaterialProperties->AddProperty("FASTCOMPONENT",scintSpecVector); |
|||
scintCoreMaterialProperties->AddProperty("SLOWCOMPONENT",scintSpecVector); |
|||
scintCoreMaterialProperties->AddProperty("WLSCOMPONENT",wlsSpecVector); |
|||
|
|||
|
|||
scintCoreMaterialProperties->AddConstProperty("SCINTILLATIONYIELD", |
|||
Parameters::GetInstance()->ScintillationYield()/keV); |
|||
scintCoreMaterialProperties->AddConstProperty("RESOLUTIONSCALE", |
|||
Parameters::GetInstance()->ResolutionScale()); |
|||
scintCoreMaterialProperties->AddConstProperty("FASTTIMECONSTANT", |
|||
Parameters::GetInstance()->DecayTimeFast()*ns); |
|||
scintCoreMaterialProperties->AddConstProperty("SLOWTIMECONSTANT", |
|||
Parameters::GetInstance()->DecayTimeSlow()*ns); |
|||
scintCoreMaterialProperties->AddConstProperty("YIELDRATIO", Parameters::GetInstance()->YieldRatio()); |
|||
// Is set in "PhysicsList.hh" as well due to inconsistency in Geant4 (G4OpticalPhsysics default value)
|
|||
|
|||
scintCoreMaterialProperties->AddProperty("WLSABSLENGTH", |
|||
WlsAbsEnergy,WlsAbsLength,WLS_ABS_ENTRIES)->SetSpline(true); |
|||
|
|||
scintCoreMaterialProperties->AddConstProperty("WLSTIMECONSTANT", Parameters::GetInstance()->WlsDecayTime()*ns); |
|||
|
|||
// Assign material properties tables
|
|||
|
|||
scintCoreMaterial->SetMaterialPropertiesTable(scintCoreMaterialProperties); |
|||
innerCladdingMaterial->SetMaterialPropertiesTable(innerCladMaterialProperties); |
|||
outerCladdingMaterial->SetMaterialPropertiesTable(outerCladMaterialProperties); |
|||
|
|||
// Set the Birks Constant for the Polystyrene scintillator
|
|||
scintCoreMaterial->GetIonisation()->SetBirksConstant(Parameters::GetInstance()->BirksConstant()*mm/MeV); |
|||
|
|||
delete[] Energy; |
|||
delete[] ScintilEnergyDist; |
|||
|
|||
delete[] WlsEnergy; |
|||
delete[] WlsEnergyDist; |
|||
|
|||
delete[] WlsAbsEnergy; |
|||
delete[] WlsAbsLength; |
|||
|
|||
delete[] Vacuum_RIND; |
|||
delete[] Vacuum_ABS; |
|||
|
|||
delete[] Pstyrene_RIND; |
|||
delete[] PMMA_RIND; |
|||
delete[] PMMA2_RIND; |
|||
|
|||
delete[] Pstyrene_RAYLEIGH; |
|||
delete[] PMMA_RAYLEIGH; |
|||
delete[] PMMA2_RAYLEIGH; |
|||
} |
|||
|
|||
|
|||
|
|||
G4VPhysicalVolume* DetectorConstruction::Construct() |
|||
{ |
|||
DefineMaterials(); |
|||
DefineMaterialProperties(); |
|||
|
|||
// Placing the world (experimental hall)
|
|||
|
|||
//--------------------------------------------------
|
|||
// World
|
|||
//--------------------------------------------------
|
|||
|
|||
G4Box * world_box = |
|||
new G4Box("World", fWorldSizeX, fWorldSizeY, fWorldSizeZ); |
|||
|
|||
fLogicWorld = new G4LogicalVolume(world_box, |
|||
Air, |
|||
"World"); |
|||
|
|||
fPhysiWorld = new G4PVPlacement(0,G4ThreeVector(0.,0.,0.), fLogicWorld,"World", 0, false, 0); |
|||
|
|||
|
|||
|
|||
G4Box* detector_box = new G4Box("Detector",detector_x,detector_y,detector_z); |
|||
detector_log = new G4LogicalVolume(detector_box,Air,"Detector"); |
|||
detector_phys = new G4PVPlacement(0,G4ThreeVector(0. , 0., scint_z ),detector_log,"Detector",fLogicWorld,false,0); |
|||
|
|||
|
|||
// Epoxy (a sheet of epoxy that the fibres are embedded inside)
|
|||
G4double xEpoxy = 0.5*(Nk*xDist+2*Parameters::GetInstance()->SemiAxisZ()*mm)+5*mm; |
|||
G4double yEpoxy = 0.5*(Nj*yDist+2*Parameters::GetInstance()->SemiAxisZ()*mm)+0.5*mm; |
|||
G4Box* epoxyBox = new G4Box("EpoxyBox",xEpoxy, yEpoxy, scint_z); |
|||
epoxyLog = new G4LogicalVolume(epoxyBox, Epoxy, "EpoxyBox", 0, 0, 0); |
|||
epoxyPhy = new G4PVPlacement(0, G4ThreeVector() , epoxyLog, "EpoxyBox", detector_log, false, 0); |
|||
|
|||
|
|||
|
|||
//--------------------------------------------------
|
|||
// Mirror for reflection at one of the end
|
|||
//--------------------------------------------------
|
|||
|
|||
// Place the mirror only if the user wants the mirror
|
|||
if (fMirrorToggle) { |
|||
|
|||
G4VSolid* solidMirror = new G4Box("Mirror", |
|||
xEpoxy, |
|||
yEpoxy, |
|||
fMirrorZ); |
|||
|
|||
G4LogicalVolume* logicMirror = new G4LogicalVolume(solidMirror, |
|||
alu, |
|||
"Mirror"); |
|||
|
|||
G4OpticalSurface* mirrorSurface = new G4OpticalSurface("MirrorSurface", |
|||
glisur, |
|||
ground, |
|||
dielectric_metal, |
|||
fMirrorPolish); |
|||
|
|||
G4MaterialPropertiesTable* mirrorSurfaceProperty = |
|||
new G4MaterialPropertiesTable(); |
|||
|
|||
G4double p_mirror[] = {2.00*eV, 3.47*eV}; |
|||
const G4int nbins = sizeof(p_mirror)/sizeof(G4double); |
|||
G4double refl_mirror[] = {fMirrorReflectivity,fMirrorReflectivity}; |
|||
assert(sizeof(refl_mirror) == sizeof(p_mirror)); |
|||
G4double effi_mirror[] = {0, 0}; |
|||
assert(sizeof(effi_mirror) == sizeof(effi_mirror)); |
|||
|
|||
mirrorSurfaceProperty-> |
|||
AddProperty("REFLECTIVITY",p_mirror,refl_mirror,nbins); |
|||
mirrorSurfaceProperty-> |
|||
AddProperty("EFFICIENCY",p_mirror,effi_mirror,nbins); |
|||
|
|||
mirrorSurface -> SetMaterialPropertiesTable(mirrorSurfaceProperty); |
|||
|
|||
new G4PVPlacement(0, |
|||
G4ThreeVector(0.0,0.0,-scint_z-2*fMirrorZ), |
|||
logicMirror, |
|||
"Mirror", |
|||
detector_log, |
|||
false, |
|||
0); |
|||
|
|||
new G4LogicalSkinSurface("MirrorSurface",logicMirror,mirrorSurface); |
|||
} |
|||
|
|||
|
|||
|
|||
// ABS plastic (some dead material)
|
|||
G4double xABS = xEpoxy; |
|||
G4double yABS = 2.5*mm; |
|||
G4double zABS = scint_z; |
|||
G4Box* absBox = new G4Box("AbsBox", xABS, yABS/2., zABS); |
|||
absLog = new G4LogicalVolume(absBox, Abs_plastic, "AbsBox", 0, 0,0); |
|||
//absPhy = new G4PVPlacement(0, G4ThreeVector(0., -(yEpoxy+yABS/2.), 0.), absLog, "AbsBox", detector_log, false, 0);
|
|||
|
|||
ConstructFiber(); //place the fibres
|
|||
// ConstructFiberSheet();
|
|||
|
|||
/* ++ Construction and placement of the detector strips ++ */ |
|||
|
|||
// Epoxy layer infront of det strip
|
|||
G4VSolid* epoxy_strip = new G4Box("EpoxyStrip", stripWidth/2., stripHeight/2., epoxy_strip_width/2.); |
|||
G4LogicalVolume* epoxy_strip_log = new G4LogicalVolume(epoxy_strip, Glue, "EpoxyStrip", 0, 0, 0); |
|||
|
|||
//place the pixels at the end of the fibre mat
|
|||
G4VSolid* pixelS = new G4Box("Pixel", pixelDimX/2., pixelDimY/2., stripWidth/2.); |
|||
G4LogicalVolume* pixelL = new G4LogicalVolume(pixelS, Glue, "Pixel", 0, 0, 0); |
|||
|
|||
SensitiveDetector* sensitive = new SensitiveDetector("/Sensitive"); |
|||
G4SDManager* sdman = G4SDManager::GetSDMpointer(); |
|||
sdman->AddNewDetector(sensitive); |
|||
pixelL->SetSensitiveDetector(sensitive); |
|||
|
|||
// G4int Nk_s = ceil(((G4double)Nk)*(xDist/stripWidth)); // Determ. autom. nb. of detector strips.
|
|||
G4int Nk_s = Nk;//set to the same number of SiPMs as the number of fibres
|
|||
|
|||
for(int k = 0; k < Nk_s; k++) //for every sipm
|
|||
{ |
|||
new G4PVPlacement(0, objectPos(Nj/2, k, scint_z+epoxy_strip_width/2.+airGap), epoxy_strip_log, |
|||
"EpoxyStrip", detector_log, false, 0); |
|||
|
|||
for(int i = 0; i < Nx; i++) //rows of pixels in each SiPM
|
|||
{ |
|||
for(int j = 0; j < Ny; j++){ //columns of pixels in each SiPM
|
|||
// new G4PVPlacement(0, objectPos(Nj/2, i, j, k, scint_z+stripWidth/2.+epoxy_strip_width+airGap), pixelL, "SensitiveDetector"+C::c1(k)+C::c2(i)+C::c3(j), detector_log, false, 0);
|
|||
// C::c1(k)+C::c2(i)+C::c3(j) = "kkkijj" with 0-padding in front
|
|||
// this currently breaks if i>9
|
|||
/// need C::c1(k)+C::c3(i)+C::c3(j)
|
|||
new G4PVPlacement(0, objectPos(Nj/2, i, j, k, scint_z+stripWidth/2.+epoxy_strip_width+airGap), pixelL, "SensitiveDetector"+C::c1(k)+C::c3(i)+C::c3(j), detector_log, false, 0); |
|||
} |
|||
} |
|||
} |
|||
/* ++ End of Constr. and placem. of det. strips ++ */ |
|||
|
|||
/* Construction and placement of trigger
|
|||
* Trigger should have the same x,y-dimensions as epoxyBox |
|||
*/ |
|||
|
|||
G4double xTrigger = xEpoxy;//Parameters::GetInstance()->TriggerX()*mm;
|
|||
G4double yTrigger = Parameters::GetInstance()->TriggerY()*mm; |
|||
G4double zTrigger = scint_z*2.0;//;Parameters::GetInstance()->TriggerZ()*mm;
|
|||
|
|||
G4double triggerXPos = 0.0; //Parameters::GetInstance()->TriggerXPos()*mm;
|
|||
G4double triggerZPos = 0.0; //Parameters::GetInstance()->TriggerZPos()*mm;
|
|||
|
|||
G4VSolid* triggerS = new G4Box("Trigger", xTrigger/2., yTrigger/2., zTrigger/2.); |
|||
G4LogicalVolume* triggerL = new G4LogicalVolume(triggerS, Air, "Trigger", 0, 0, 0); |
|||
new G4PVPlacement(0 , G4ThreeVector(triggerXPos, -(yEpoxy+yTrigger/2.+yABS), triggerZPos), |
|||
triggerL, "Trigger", detector_log, false, 0); |
|||
|
|||
return fPhysiWorld; |
|||
} |
|||
|
|||
|
|||
void DetectorConstruction::ConstructFiberSheet() |
|||
{ |
|||
//a generic sheet of scintillator
|
|||
// dimensions
|
|||
|
|||
G4double dim_z; |
|||
G4double sphi, ephi; |
|||
dim_z = scint_z; |
|||
sphi = 0.00*deg; |
|||
ephi = 360.*deg; |
|||
G4double xEpoxy = 0.5*(Nk*xDist+2*Parameters::GetInstance()->SemiAxisZ()*mm)+5*mm; |
|||
// Scintillating core
|
|||
// G4Tubs* coreSection_tube = new G4Tubs("CoreSection",core_rZmin,core_rZmax,dim_z, sphi,ephi);
|
|||
// G4Box* coreSection_tube= new G4Box("CoreSection", stripWidth/3., 0.85*mm, epoxy_strip_width/2.);
|
|||
G4Box* CoreBox = new G4Box("CoreBox",xEpoxy-1*mm, 0.8294/2.0*mm, scint_z); |
|||
G4LogicalVolume *coreSection_log = new G4LogicalVolume(CoreBox, |
|||
scintCoreMaterial, "CoreSection",0,0,0); |
|||
|
|||
new G4PVPlacement(0, G4ThreeVector(), coreSection_log, "Core", epoxyLog, true, 0); |
|||
|
|||
} |
|||
void DetectorConstruction::ConstructFiber() |
|||
{ |
|||
// dimensions
|
|||
G4double dim_z; |
|||
G4double sphi, ephi; |
|||
G4double core_rZmin,core_rZmax; |
|||
G4double core_rYmin,core_rYmax; |
|||
G4double clad1_rZmin,clad1_rZmax; |
|||
G4double clad1_rYmin,clad1_rYmax; |
|||
G4double clad2_rZmin,clad2_rZmax; |
|||
G4double clad2_rYmin,clad2_rYmax; |
|||
|
|||
dim_z = scint_z; |
|||
sphi = 0.00*deg; |
|||
ephi = 360.*deg; |
|||
|
|||
core_rZmin = 0.00*cm; |
|||
core_rYmin = 0.00*cm; |
|||
|
|||
core_rZmax = Parameters::GetInstance()->SemiAxisZ()*(88./100.)*mm; |
|||
core_rYmax = Parameters::GetInstance()->SemiAxisY()*(88./100.)*mm; |
|||
|
|||
clad1_rZmin = core_rZmax; |
|||
clad1_rYmin = core_rYmax; |
|||
|
|||
clad1_rZmax = core_rZmax + 3./88.*core_rZmax*2.; |
|||
clad1_rYmax = core_rYmax + 3./88.*core_rYmax*2.; |
|||
|
|||
clad2_rZmin = clad1_rZmax; |
|||
clad2_rYmin = clad1_rYmax; |
|||
|
|||
clad2_rZmax = Parameters::GetInstance()->SemiAxisZ()*mm; |
|||
clad2_rYmax = Parameters::GetInstance()->SemiAxisY()*mm; |
|||
|
|||
G4ThreeVector origin; |
|||
/* ++ Fibre Placement ++ */ |
|||
for(int j = 0; j < Nj; j++) |
|||
{ |
|||
for(int k = 0; k < Nk; k++) |
|||
{ |
|||
origin = objectPos(j,k); |
|||
|
|||
// Outer cladding
|
|||
G4Tubs* clad2Section_tube = new G4Tubs("Cladding2Section",clad2_rZmin,clad2_rZmax,dim_z, sphi,ephi); |
|||
G4LogicalVolume *clad2Section_log = new G4LogicalVolume(clad2Section_tube, |
|||
outerCladdingMaterial, "Cladding2Section",0,0,0); |
|||
|
|||
new G4PVPlacement(0, origin, clad2Section_log, "Cladding2"+C::c(j)+C::c(k), epoxyLog, true, 0); |
|||
|
|||
|
|||
// Inner cladding
|
|||
G4Tubs* clad1Section_tube = new G4Tubs("Cladding1Section",clad1_rZmin,clad1_rZmax,dim_z, sphi,ephi); |
|||
G4LogicalVolume *clad1Section_log = new G4LogicalVolume(clad1Section_tube, |
|||
innerCladdingMaterial, "Cladding1Section",0,0,0); |
|||
|
|||
new G4PVPlacement(0, origin, clad1Section_log, "Cladding1"+C::c(j)+C::c(k), epoxyLog, true, 0); |
|||
|
|||
// Scintillating core
|
|||
G4Tubs* coreSection_tube = new G4Tubs("CoreSection",core_rZmin,core_rZmax,dim_z, sphi,ephi); |
|||
G4LogicalVolume *coreSection_log = new G4LogicalVolume(coreSection_tube, |
|||
scintCoreMaterial, "CoreSection",0,0,0); |
|||
|
|||
new G4PVPlacement(0, origin, coreSection_log, "Core"+C::c(j)+C::c(k), epoxyLog, true, 0); |
|||
} |
|||
} |
|||
/* ++ End of Fibre Placement ++ */ |
|||
} |
|||
|
|||
|
|||
// for fibre placement
|
|||
G4ThreeVector DetectorConstruction::objectPos(G4int j, G4int k) |
|||
{ |
|||
G4double xOffset = xDist*(((G4double)Nk)/2.)-Parameters::GetInstance()->SemiAxisZ()*mm/2.; |
|||
G4double yOffset = yDist*(((G4double)Nj)/2.)-Parameters::GetInstance()->SemiAxisZ()*mm; |
|||
|
|||
G4double xDispl; |
|||
G4double xsigma = (-0.49*j*j + 7.0*j-1.8)/1000.; |
|||
G4double xvar = G4RandGauss::shoot(0.,xsigma); |
|||
while(fabs(xvar)>=0.020*mm) { |
|||
xvar = G4RandGauss::shoot(0.,xsigma); |
|||
} |
|||
|
|||
j % 2 == 0 ? xDispl = 0. : xDispl = xDist/2.; |
|||
|
|||
G4ThreeVector origin(xDist*k+xDispl-xOffset+xvar, -yDist*j+yOffset, 0.); |
|||
|
|||
// print detector positions into file
|
|||
std::ofstream outFile; |
|||
outFile.open("fibrePos.txt",std::ios::app); |
|||
outFile << origin.x() << "\t" << origin.y() << std::endl; |
|||
outFile.close(); |
|||
|
|||
//G4cout << "Placing Fibre[" << k << ":" << j << "]: " << origin << G4endl;
|
|||
|
|||
//G4cout << origin.x() << "\t" << origin.y() << G4endl;
|
|||
|
|||
return origin; |
|||
} |
|||
|
|||
// for detector placement
|
|||
G4ThreeVector DetectorConstruction::objectPos(G4int j, G4int k, G4double zPos) |
|||
{ |
|||
G4double randomN = Parameters::GetInstance()->RandomNumber(); |
|||
G4double offset = (stripWidth/2.)*randomN; |
|||
|
|||
// Save random number
|
|||
std::ofstream myfile; |
|||
myfile.open("randomN.txt"); |
|||
myfile << randomN; |
|||
myfile.close(); |
|||
|
|||
G4double xOffset = xDist*(((G4double)Nk)/2.)-Parameters::GetInstance()->SemiAxisZ()*mm/2.; |
|||
G4double yOffset = yDist*(((G4double)Nj)/2.)-Parameters::GetInstance()->SemiAxisZ()*mm; |
|||
|
|||
G4double xDispl; |
|||
|
|||
j % 2 == 0 ? xDispl = 0. : xDispl = xDist/2.; |
|||
|
|||
// G4ThreeVector origin(stripWidth*k+xDispl-xOffset-offset, -yDist*j+yOffset, zPos);
|
|||
G4ThreeVector origin(xDist*k+xDispl-xOffset-offset, -yDist*j+yOffset, zPos); //set at fibre position
|
|||
|
|||
// print detector positions into file
|
|||
std::ofstream detFile; |
|||
detFile.open("detPos.txt",std::ios::app); |
|||
detFile << k << " " << stripWidth*k+xDispl-xOffset-offset << std::endl; |
|||
detFile.close(); |
|||
|
|||
return origin; |
|||
} |
|||
|
|||
// for detector placement
|
|||
G4ThreeVector DetectorConstruction::objectPos(G4int j, G4int i, G4int j2, G4int k, G4double zPos) |
|||
{ |
|||
G4double randomN = Parameters::GetInstance()->RandomNumber(); |
|||
G4double offset = (stripWidth/2.)*randomN; |
|||
|
|||
// Save random number
|
|||
//std::ofstream myfile;
|
|||
//myfile.open("randomN.txt");
|
|||
//myfile << randomN;
|
|||
//myfile.close();
|
|||
|
|||
G4double xOffset = xDist*(((G4double)Nk)/2.)-Parameters::GetInstance()->SemiAxisZ()*mm/2.; |
|||
G4double yOffset = yDist*(((G4double)Nj)/2.)-Parameters::GetInstance()->SemiAxisZ()*mm + 3/2*pixelDimY; |
|||
|
|||
G4double xDispl; |
|||
|
|||
j % 2 == 0 ? xDispl = 0. : xDispl = xDist/2.; |
|||
|
|||
// print detector positions into file
|
|||
//std::ofstream detFile;
|
|||
//detFile.open("detPos.txt",std::ios::app);
|
|||
//detFile << k << " " << stripWidth*k+xDispl-xOffset-offset << std::endl;
|
|||
//detFile.close();
|
|||
|
|||
G4double pixelX = pixelDimX + i*pixelDimX - stripWidth/2.; |
|||
G4double pixelY = -pixelDimY/2. + j2*pixelDimY - stripHeight/2.; |
|||
|
|||
// G4ThreeVector origin(stripWidth*k+xDispl-xOffset-offset + pixelX, -yDist*j+yOffset + pixelY, zPos);
|
|||
G4ThreeVector origin(xDist*k+xDispl-xOffset-offset + pixelX, -yDist*j+yOffset + pixelY, zPos); //start at fibre postion
|
|||
|
|||
std::ofstream detFileY; |
|||
detFileY.open("detPosY.txt",std::ios::app); |
|||
detFileY << k << " " << -yDist*j+yOffset + pixelY << std::endl; |
|||
detFileY.close(); |
|||
|
|||
return origin; |
|||
} |
|||
|
|||
|
@ -0,0 +1,884 @@ |
|||
// Written by Peter Stromberger |
|||
// based on work of Mirco Deckenhoff |
|||
// modified by Bastian Rössler |
|||
|
|||
|
|||
#include "DetectorConstruction.hh" |
|||
#include "G4Material.hh" |
|||
#include "G4LogicalBorderSurface.hh" |
|||
#include "G4LogicalSkinSurface.hh" |
|||
#include "G4Box.hh" |
|||
#include "G4Tubs.hh" |
|||
#include "G4EllipticalTube.hh" |
|||
#include "G4SubtractionSolid.hh" |
|||
#include "G4LogicalVolume.hh" |
|||
#include "G4RotationMatrix.hh" |
|||
#include "G4PVPlacement.hh" |
|||
#include "G4OpBoundaryProcess.hh" |
|||
#include "G4MaterialPropertyVector.hh" |
|||
#include "G4NistManager.hh" |
|||
#include "G4VisAttributes.hh" |
|||
#include "G4Colour.hh" |
|||
#include "G4PVParameterised.hh" |
|||
#include "SensitiveDetector.hh" |
|||
#include "G4SDManager.hh" |
|||
#include "Analysis.hh" |
|||
#include "Parameters.hh" |
|||
#include "TF1.h" |
|||
#include "TF2.h" |
|||
#include "Randomize.hh" |
|||
#include <fstream> |
|||
#include <sstream> |
|||
#include "G4SystemOfUnits.hh" |
|||
#include "G4VPVParameterisation.hh" |
|||
#include "Convert.hh" |
|||
#include <math.h> |
|||
#include <stdlib.h> |
|||
#include <time.h> |
|||
#include <iostream> |
|||
#include <fstream> |
|||
|
|||
DetectorConstruction::DetectorConstruction() |
|||
: G4VUserDetectorConstruction(), |
|||
fScoringVolume(0) |
|||
{ |
|||
// Size of experimental hall and fibre length // |
|||
expHall_x = 35*mm/2.+0.5*m; |
|||
expHall_y = 10*mm/2.+0.5*m; |
|||
expHall_z = (Parameters::GetInstance()->FibreLength()+0.5)/2.*m+0.5*m; |
|||
scint_z = Parameters::GetInstance()->FibreLength()/2.*m; |
|||
|
|||
// mat/detector dimensions |
|||
Nj = 8; |
|||
Nk = 128; |
|||
|
|||
xDist = 0.350 * mm; |
|||
yDist = 0.185 * mm; |
|||
stripWidth = 0.25 * mm; |
|||
stripHeight = 1.62 * mm; |
|||
|
|||
airGap = 0.001 * mm; |
|||
pixelDimX = 0.0625 * mm; |
|||
pixelDimY = 0.0675 * mm; |
|||
epoxy_strip_width = 0.1*mm; |
|||
|
|||
Nx = 4; |
|||
Ny = 24; |
|||
|
|||
|
|||
fMirrorToggle = true; |
|||
fMirrorPolish = 1.; |
|||
fMirrorReflectivity = 0.8; |
|||
|
|||
|
|||
fMirrorZ = 0.1*mm; |
|||
fMirrorRmax = 0.250*mm; |
|||
} |
|||
|
|||
DetectorConstruction::~DetectorConstruction(){} |
|||
|
|||
void DetectorConstruction::DefineMaterials() |
|||
{ |
|||
// Get nist material manager |
|||
G4NistManager* man = G4NistManager::Instance(); |
|||
// Option to switch on/off checking of volumes overlaps |
|||
// |
|||
G4bool checkOverlaps = true; |
|||
|
|||
|
|||
// Elements to cunstruct inner cladding material (PMMA) |
|||
G4double densityPMMA = 1190*kg/m3; |
|||
std::vector<G4String> PMMA_elm; |
|||
std::vector<G4int> PMMA_nbAtoms; |
|||
PMMA_elm.push_back("H"); PMMA_nbAtoms.push_back(8); |
|||
PMMA_elm.push_back("C"); PMMA_nbAtoms.push_back(5); |
|||
PMMA_elm.push_back("O"); PMMA_nbAtoms.push_back(2); |
|||
PMMA = man->ConstructNewMaterial("PMMA", PMMA_elm, PMMA_nbAtoms, densityPMMA); |
|||
|
|||
// Elements to cunstruct outer cladding material (PTFEMA) |
|||
G4double densityPMMA2 = 1430*kg/m3; |
|||
std::vector<G4String> PMMA2_elm; |
|||
std::vector<G4int> PMMA2_nbAtoms; |
|||
PMMA2_elm.push_back("H"); PMMA2_nbAtoms.push_back(7); |
|||
PMMA2_elm.push_back("C"); PMMA2_nbAtoms.push_back(6); |
|||
PMMA2_elm.push_back("O"); PMMA2_nbAtoms.push_back(2); |
|||
PMMA2_elm.push_back("F"); PMMA2_nbAtoms.push_back(3); |
|||
PMMA2 = man->ConstructNewMaterial("PMMA2", PMMA2_elm, PMMA2_nbAtoms, densityPMMA2=1430*kg/m3); |
|||
|
|||
// Glue (Epo-Tek 301) |
|||
G4double Glue_density = 1.15*g/cm3; |
|||
std::vector<G4String> Glue_elm; |
|||
std::vector<G4int> Glue_nbAtoms; |
|||
Glue_elm.push_back("C"); Glue_nbAtoms.push_back(19); |
|||
Glue_elm.push_back("H"); Glue_nbAtoms.push_back(27); |
|||
Glue_elm.push_back("O"); Glue_nbAtoms.push_back(3); |
|||
Glue = man->ConstructNewMaterial("Glue",Glue_elm, Glue_nbAtoms, Glue_density); |
|||
|
|||
// TiO2 |
|||
G4double TiO2_density = 4.26*g/cm3; |
|||
std::vector<G4String> TiO2_elm; |
|||
std::vector<G4int> TiO2_nbAtoms; |
|||
TiO2_elm.push_back("Ti"); TiO2_nbAtoms.push_back(1); |
|||
TiO2_elm.push_back("Ti"); TiO2_nbAtoms.push_back(2); |
|||
TiO2 = man->ConstructNewMaterial("TiO2",TiO2_elm, TiO2_nbAtoms, TiO2_density); |
|||
|
|||
// Abs plastic |
|||
G4double Abs_density = 1.07*g/cm3; |
|||
std::vector<G4String> Abs_elm; |
|||
std::vector<G4int> Abs_nbAtoms; |
|||
Abs_elm.push_back("H"); Abs_nbAtoms.push_back(17); |
|||
Abs_elm.push_back("C"); Abs_nbAtoms.push_back(13); |
|||
Abs_elm.push_back("N"); Abs_nbAtoms.push_back(1); |
|||
Abs_plastic = man->ConstructNewMaterial("Abs_plastic", Abs_elm, Abs_nbAtoms, Abs_density); |
|||
|
|||
// Epoxy |
|||
G4double Epoxy_density = 1.5*g/cm3; |
|||
Epoxy = new G4Material("Epoxy", Epoxy_density, 2); |
|||
Epoxy->AddMaterial(TiO2, 25*perCent); |
|||
Epoxy->AddMaterial(Glue, 75*perCent); |
|||
|
|||
// Environment |
|||
Air = man->FindOrBuildMaterial("G4_AIR"); |
|||
Vacuum = man->FindOrBuildMaterial("G4_Galactic"); |
|||
|
|||
// Polystyrene G4_POLYSTYRENE |
|||
Pstyrene = man->FindOrBuildMaterial("G4_POLYSTYRENE"); |
|||
|
|||
// Aluminium |
|||
alu = man->FindOrBuildMaterial("G4_Al"); |
|||
|
|||
// Core sections |
|||
G4String materialNameCore = "ScintCoreMaterial"; |
|||
scintCoreMaterial = new G4Material(materialNameCore,Pstyrene->GetDensity(),1); |
|||
scintCoreMaterial->AddMaterial(Pstyrene,1.); |
|||
|
|||
// Inner cladding sections |
|||
G4String materialNameCladding1 = "InnerCladdingMaterial"; |
|||
innerCladdingMaterial = new G4Material(materialNameCladding1,PMMA->GetDensity(),1); |
|||
innerCladdingMaterial->AddMaterial(PMMA,1.); |
|||
|
|||
// Outer cladding sections |
|||
G4String materialNameCladding2 = "OuterCladdingMaterial"; |
|||
outerCladdingMaterial = new G4Material(materialNameCladding2,PMMA2->GetDensity(),1); |
|||
outerCladdingMaterial->AddMaterial(PMMA2,1.); |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
void DetectorConstruction::DefineMaterialProperties() |
|||
{ |
|||
// Initialise considered ENERGIES and EMISSION SPECTRA for scintillation and wls |
|||
|
|||
const G4int numInterpolPoints = Parameters::GetInstance()->NumberOfInterpolatedPoints(); |
|||
|
|||
// Set scintillation emmision spectrum |
|||
G4int E_NUMENTRIES = Parameters::GetInstance()->NumberOfEnergies(); |
|||
G4double* Energy = new G4double[E_NUMENTRIES]; |
|||
for(int i=0; i<E_NUMENTRIES; i++) |
|||
Energy[i] = Parameters::GetInstance()->Energy[i]*eV; |
|||
|
|||
G4double* ScintilEnergyDist = new G4double[E_NUMENTRIES]; |
|||
for(int i=0; i<E_NUMENTRIES; i++) |
|||
ScintilEnergyDist[i] = Parameters::GetInstance()->Intensity[i]; |
|||
|
|||
G4MaterialPropertyVector* scintSpecVector = new G4MaterialPropertyVector(Energy, ScintilEnergyDist, E_NUMENTRIES); |
|||
scintSpecVector->SetSpline(true); |
|||
|
|||
// Set the Birks Constant for the Polystyrene scintillator |
|||
Pstyrene->GetIonisation()->SetBirksConstant(Parameters::GetInstance()->BirksConstant()*mm/MeV); |
|||
|
|||
// Set wls emmision spectrum |
|||
G4int WLS_E_NUMENTRIES = Parameters::GetInstance()->NumberOfWlsEmissionEnergies(); |
|||
G4double* WlsEnergy = new G4double[WLS_E_NUMENTRIES]; |
|||
for(int i=0; i<WLS_E_NUMENTRIES; i++) |
|||
WlsEnergy[i] = Parameters::GetInstance()->WlsEmissionEnergy[i]*eV; |
|||
|
|||
G4double* WlsEnergyDist = new G4double[WLS_E_NUMENTRIES]; |
|||
for(int i=0; i<WLS_E_NUMENTRIES; i++) |
|||
WlsEnergyDist[i] = Parameters::GetInstance()->WlsEmissionIntensity[i]; |
|||
|
|||
G4MaterialPropertyVector* wlsSpecVector = new G4MaterialPropertyVector(WlsEnergy, WlsEnergyDist, WLS_E_NUMENTRIES); |
|||
wlsSpecVector->SetSpline(true); |
|||
|
|||
if(numInterpolPoints>0) |
|||
{ |
|||
// Interpolate scintillation spectrum |
|||
|
|||
const G4int E_NUMENTRIES_New = (E_NUMENTRIES-1)*(numInterpolPoints+1)+1; |
|||
G4double* NewEnergy = new G4double[E_NUMENTRIES_New]; |
|||
G4double* NewValue = new G4double[E_NUMENTRIES_New]; |
|||
G4double* scintInterpolValue = new G4double[numInterpolPoints]; |
|||
|
|||
for(int j=0; j<E_NUMENTRIES-1; j++) |
|||
{ |
|||
G4double interpolDist = (Energy[j+1]-Energy[j])/(numInterpolPoints+1); |
|||
NewEnergy[j*(numInterpolPoints+1)] = Energy[j]; |
|||
NewValue[j*(numInterpolPoints+1)] = scintSpecVector->Value(Energy[j]); |
|||
|
|||
for(int k=0; k<numInterpolPoints; k++) |
|||
{ |
|||
scintInterpolValue[k] = scintSpecVector->Value(Energy[j]+(k+1)*interpolDist); |
|||
NewEnergy[j*(numInterpolPoints+1)+(k+1)] = Energy[j]+(k+1)*interpolDist; |
|||
|
|||
if(scintInterpolValue[k]>=0) |
|||
{ |
|||
NewValue[j*(numInterpolPoints+1)+(k+1)] = scintInterpolValue[k]; |
|||
} |
|||
else |
|||
{ |
|||
NewValue[j*(numInterpolPoints+1)+(k+1)] = 0; |
|||
G4cout << "Warning: Intensity of emission spectrum set to 0 for energy " |
|||
<< NewEnergy[j*(numInterpolPoints+1)+(k+1)]*1e6 |
|||
<< " eV.\nSpline interpolation led to negative value!" << G4endl; |
|||
} |
|||
} |
|||
} |
|||
|
|||
NewEnergy[E_NUMENTRIES_New-1] = Energy[E_NUMENTRIES-1]; |
|||
NewValue[E_NUMENTRIES_New-1] = scintSpecVector->Value(Energy[E_NUMENTRIES-1]); |
|||
|
|||
delete[] Energy; |
|||
delete[] ScintilEnergyDist; |
|||
delete scintSpecVector; |
|||
|
|||
E_NUMENTRIES = E_NUMENTRIES_New; |
|||
Energy = new G4double[E_NUMENTRIES]; |
|||
ScintilEnergyDist = new G4double[E_NUMENTRIES]; |
|||
|
|||
for(int i=0; i<E_NUMENTRIES; i++) |
|||
{ |
|||
Energy[i] = NewEnergy[i]; |
|||
ScintilEnergyDist[i] = NewValue[i]; |
|||
} |
|||
|
|||
scintSpecVector = new G4MaterialPropertyVector(Energy, ScintilEnergyDist, E_NUMENTRIES); |
|||
scintSpecVector->SetSpline(true); |
|||
|
|||
delete[] NewEnergy; |
|||
delete[] NewValue; |
|||
delete[] scintInterpolValue; |
|||
|
|||
|
|||
// Interpolate wls spectrum |
|||
|
|||
const G4int WLS_E_NUMENTRIES_New = (WLS_E_NUMENTRIES-1)*(numInterpolPoints+1)+1; |
|||
NewEnergy = new G4double[WLS_E_NUMENTRIES_New]; |
|||
NewValue = new G4double[WLS_E_NUMENTRIES_New]; |
|||
|
|||
G4double* wlsInterpolValue = new G4double[numInterpolPoints]; |
|||
|
|||
for(int j=0; j<WLS_E_NUMENTRIES-1; j++) |
|||
{ |
|||
G4double interpolDist = (WlsEnergy[j+1]-WlsEnergy[j])/(numInterpolPoints+1); |
|||
NewEnergy[j*(numInterpolPoints+1)] = WlsEnergy[j]; |
|||
NewValue[j*(numInterpolPoints+1)] = wlsSpecVector->Value(WlsEnergy[j]); |
|||
|
|||
for(int k=0; k<numInterpolPoints; k++) |
|||
{ |
|||
wlsInterpolValue[k] = wlsSpecVector->Value(WlsEnergy[j]+(k+1)*interpolDist); |
|||
NewEnergy[j*(numInterpolPoints+1)+(k+1)] = WlsEnergy[j]+(k+1)*interpolDist; |
|||
if(wlsInterpolValue[k]>=0) |
|||
{ |
|||
NewValue[j*(numInterpolPoints+1)+(k+1)] = wlsInterpolValue[k]; |
|||
} |
|||
else |
|||
{ |
|||
NewValue[j*(numInterpolPoints+1)+(k+1)] = 0; |
|||
G4cout << "Warning: Intensity of WLS emission spectrum set to 0 for energy " |
|||
<< NewEnergy[j*(numInterpolPoints+1)+(k+1)]*1e6 |
|||
<< " eV.\nSpline interpolation led to negative value!" << G4endl; |
|||
} |
|||
} |
|||
} |
|||
|
|||
NewEnergy[WLS_E_NUMENTRIES_New-1] = WlsEnergy[WLS_E_NUMENTRIES-1]; |
|||
NewValue[WLS_E_NUMENTRIES_New-1] = wlsSpecVector->Value(WlsEnergy[WLS_E_NUMENTRIES-1]); |
|||
|
|||
delete[] WlsEnergy; |
|||
delete[] WlsEnergyDist; |
|||
delete wlsSpecVector; |
|||
|
|||
WLS_E_NUMENTRIES = WLS_E_NUMENTRIES_New; |
|||
WlsEnergy = new G4double[WLS_E_NUMENTRIES]; |
|||
WlsEnergyDist = new G4double[WLS_E_NUMENTRIES]; |
|||
|
|||
for(int i=0; i<WLS_E_NUMENTRIES; i++) |
|||
{ |
|||
WlsEnergy[i] = NewEnergy[i]; |
|||
WlsEnergyDist[i] = NewValue[i]; |
|||
} |
|||
|
|||
wlsSpecVector = new G4MaterialPropertyVector(WlsEnergy, WlsEnergyDist, WLS_E_NUMENTRIES); |
|||
wlsSpecVector->SetSpline(true); |
|||
|
|||
delete[] NewEnergy; |
|||
delete[] NewValue; |
|||
delete[] wlsInterpolValue; |
|||
} |
|||
|
|||
// Save spectra to parameter file |
|||
std::ofstream parameterOutputFile; |
|||
parameterOutputFile.open(Parameters::GetInstance()->ParameterOutputFileName(), std::ios_base::app); |
|||
|
|||
parameterOutputFile << G4endl << "Scintillation emission spectrum:" << G4endl; |
|||
parameterOutputFile << "Energy/eV\tWavelength/nm\tIntensity" << "\n"; |
|||
for(int i=0; i<E_NUMENTRIES; i++) |
|||
{ |
|||
parameterOutputFile << Energy[i]*1e6 << "\t" << Parameters::hcPERe/Energy[i]*1e3 |
|||
<< "\t" << ScintilEnergyDist[i]<< "\n"; |
|||
} |
|||
|
|||
parameterOutputFile << G4endl << "WLS emission spectrum:" << G4endl; |
|||
parameterOutputFile << "Energy/eV\tWavelength/nm\tIntensity" << "\n"; |
|||
for(int i=0; i<WLS_E_NUMENTRIES; i++) |
|||
{ |
|||
parameterOutputFile << WlsEnergy[i]*1e6 << "\t" << Parameters::hcPERe/WlsEnergy[i]*1e3 |
|||
<< "\t" << WlsEnergyDist[i]<< "\n"; |
|||
} |
|||
|
|||
parameterOutputFile.close(); |
|||
|
|||
// WLS ABSORPTION |
|||
const G4int WLS_ABS_ENTRIES = Parameters::GetInstance()->NumberOfWlsAbsEnergies(); |
|||
G4double* WlsAbsEnergy = new G4double[WLS_ABS_ENTRIES]; |
|||
G4double* WlsAbsLength = new G4double[WLS_ABS_ENTRIES]; |
|||
|
|||
for(int j=0; j<WLS_ABS_ENTRIES; j++) |
|||
{ |
|||
WlsAbsEnergy[j] = Parameters::GetInstance()->WlsAbsEnergy[j]*eV; |
|||
WlsAbsLength[j] = Parameters::GetInstance()->WlsAbsLength[j]*m; |
|||
} |
|||
|
|||
// Save WLS absorption lengths to parameter file |
|||
parameterOutputFile.open(Parameters::GetInstance()->ParameterOutputFileName(), std::ios_base::app); |
|||
parameterOutputFile << G4endl << "WLS absorption length / m:" << G4endl; |
|||
parameterOutputFile << "Energy/eV\tWavelength/nm\tAbsorption length" << "\n"; |
|||
for(int i=0; i<WLS_ABS_ENTRIES; i++) |
|||
{ |
|||
parameterOutputFile << WlsAbsEnergy[i]*1e6 << "\t" << Parameters::hcPERe/WlsAbsEnergy[i]*1e3 |
|||
<< "\t" << WlsAbsLength[i]*1e-3 << "\n"; |
|||
} |
|||
parameterOutputFile.close(); |
|||
|
|||
// REFRACTIVE INDICES |
|||
|
|||
G4double* Vacuum_RIND = new G4double[E_NUMENTRIES]; |
|||
G4double* Pstyrene_RIND = new G4double[E_NUMENTRIES]; |
|||
G4double* PMMA_RIND = new G4double[E_NUMENTRIES]; |
|||
G4double* PMMA2_RIND = new G4double[E_NUMENTRIES]; |
|||
G4double* Epoxy_RIND = new G4double[E_NUMENTRIES]; |
|||
|
|||
// Functions are saved in parameter-file |
|||
// todo: write this functions in c++ code |
|||
TF1 vacuumRind("vacuumRind",Parameters::GetInstance()->RefractiveIndexVacuum(),300,800); |
|||
TF1 coreRind("coreRind",Parameters::GetInstance()->RefractiveIndexCore(),300,800); |
|||
TF1 clad1Rind("clad1Rind",Parameters::GetInstance()->RefractiveIndexClad1(),300,800); |
|||
TF1 clad2Rind("clad2Rind",Parameters::GetInstance()->RefractiveIndexClad2(),300,800); |
|||
|
|||
for(int i=0; i<E_NUMENTRIES; i++) |
|||
{ |
|||
double wavelengthNanometer = Parameters::hcPERe/Energy[i]*1e3; |
|||
Vacuum_RIND[i] = vacuumRind.Eval(wavelengthNanometer); |
|||
Pstyrene_RIND[i] = coreRind.Eval(wavelengthNanometer); |
|||
PMMA_RIND[i] = clad1Rind.Eval(wavelengthNanometer); |
|||
PMMA2_RIND[i] = clad2Rind.Eval(wavelengthNanometer); |
|||
Epoxy_RIND[i] = 1.59; |
|||
} |
|||
|
|||
// Save refractive indices to parameter file |
|||
|
|||
parameterOutputFile.open(Parameters::GetInstance()->ParameterOutputFileName(), std::ios_base::app); |
|||
parameterOutputFile << G4endl << "Refractive indices:" << G4endl; |
|||
parameterOutputFile << "Energy/eV\tWavelength/nm\tVacuum\tClad2\tClad1\tCore" << "\n"; |
|||
for(int i=0; i<E_NUMENTRIES; i++) |
|||
{ |
|||
parameterOutputFile << Energy[i]*1e6 << "\t" << Parameters::hcPERe/Energy[i]*1e3 |
|||
<< "\t" << Vacuum_RIND[i]<< "\t" << PMMA2_RIND[i] << "\t" |
|||
<< PMMA_RIND[i] << "\t" << Pstyrene_RIND[i] << "\n"; |
|||
} |
|||
parameterOutputFile.close(); |
|||
|
|||
|
|||
// Set material properties table of Vacuum |
|||
|
|||
G4double* Vacuum_ABS = new G4double[E_NUMENTRIES]; |
|||
G4double* Epoxy_ABS = new G4double[E_NUMENTRIES]; |
|||
for(int i=0; i<E_NUMENTRIES; i++){ |
|||
Vacuum_ABS[i] = 5e4*m; // absorption length in vacuum... |
|||
Epoxy_ABS[i] = 1*m; |
|||
} |
|||
|
|||
G4MaterialPropertiesTable *Vacuum_mt = new G4MaterialPropertiesTable(); |
|||
Vacuum_mt->AddProperty("RINDEX", Energy, Vacuum_RIND,E_NUMENTRIES); |
|||
Vacuum_mt->AddProperty("ABSLENGTH",Energy,Vacuum_ABS,E_NUMENTRIES); |
|||
Vacuum->SetMaterialPropertiesTable(Vacuum_mt); |
|||
|
|||
G4MaterialPropertiesTable *Epoxy_mt = new G4MaterialPropertiesTable(); |
|||
Epoxy_mt->AddProperty("RINDEX", Energy, Epoxy_RIND, E_NUMENTRIES); |
|||
Epoxy_mt->AddProperty("ABSLENGTH", Energy, Epoxy_ABS, E_NUMENTRIES); |
|||
Glue->SetMaterialPropertiesTable(Epoxy_mt); |
|||
|
|||
// give air same material properties as vacuum |
|||
Air->SetMaterialPropertiesTable(Vacuum_mt); |
|||
|
|||
// RAYLEIGH SCATTERING |
|||
|
|||
G4double* Pstyrene_RAYLEIGH = new G4double[E_NUMENTRIES]; |
|||
G4double* PMMA_RAYLEIGH = new G4double[E_NUMENTRIES]; |
|||
G4double* PMMA2_RAYLEIGH = new G4double[E_NUMENTRIES]; |
|||
|
|||
TF1 coreRayleigh("coreRayleigh",Parameters::GetInstance()->RayleighCore(),300,800); |
|||
TF1 clad1Rayleigh("clad1Rayleigh",Parameters::GetInstance()->RayleighClad1(),300,800); |
|||
TF1 clad2Rayleigh("clad2Rayleigh",Parameters::GetInstance()->RayleighClad2(),300,800); |
|||
|
|||
// Calculate scattering lengths |
|||
|
|||
for(int j=0; j<E_NUMENTRIES; j++) |
|||
{ |
|||
double wavelengthNanometer = Parameters::hcPERe/Energy[j]*1e3; |
|||
// todo : write this functions in c++ |
|||
Pstyrene_RAYLEIGH[j] = 1./coreRayleigh.Eval(wavelengthNanometer)*m; |
|||
PMMA_RAYLEIGH[j] = 1./clad1Rayleigh.Eval(wavelengthNanometer)*m; |
|||
PMMA2_RAYLEIGH[j] = 1./clad2Rayleigh.Eval(wavelengthNanometer)*m; |
|||
} |
|||
|
|||
// Save Rayleigh scattering lengths to parameter file |
|||
|
|||
parameterOutputFile.open(Parameters::GetInstance()->ParameterOutputFileName(), std::ios_base::app); |
|||
parameterOutputFile << G4endl << "Rayleigh scattering length / m:" << G4endl; |
|||
parameterOutputFile << "Energy/eV\tWavelength/nm\tClad2\tClad1\tCore" << "\n"; |
|||
for(int i=0; i<E_NUMENTRIES; i++) |
|||
{ |
|||
parameterOutputFile << Energy[i]*1e6 << "\t" << Parameters::hcPERe/Energy[i]*1e3 |
|||
<< "\t" << PMMA2_RAYLEIGH[i]*1e-3 << "\t" << PMMA_RAYLEIGH[i]*1e-3 |
|||
<< "\t" << Pstyrene_RAYLEIGH[i]*1e-3 << "\n"; |
|||
} |
|||
parameterOutputFile.close(); |
|||
|
|||
|
|||
|
|||
// Material properties table |
|||
|
|||
G4MaterialPropertiesTable* scintCoreMaterialProperties = new G4MaterialPropertiesTable(); |
|||
G4MaterialPropertiesTable* innerCladMaterialProperties = new G4MaterialPropertiesTable(); |
|||
G4MaterialPropertiesTable* outerCladMaterialProperties = new G4MaterialPropertiesTable(); |
|||
|
|||
// Set refractive indices |
|||
|
|||
scintCoreMaterialProperties->AddProperty("RINDEX",Energy,Pstyrene_RIND,E_NUMENTRIES)->SetSpline(true); |
|||
innerCladMaterialProperties->AddProperty("RINDEX",Energy,PMMA_RIND,E_NUMENTRIES)->SetSpline(true); |
|||
outerCladMaterialProperties->AddProperty("RINDEX",Energy,PMMA2_RIND,E_NUMENTRIES)->SetSpline(true); |
|||
|
|||
// Set absorption |
|||
|
|||
// todo : write functions in c++ code |
|||
TF1 coreAbs("coreAbs",Parameters::GetInstance()->AbsorptionCore(),300,800); |
|||
TF1 clad1Abs("clad1Abs",Parameters::GetInstance()->AbsorptionClad1(),300,800); |
|||
TF1 clad2Abs("clad2Abs",Parameters::GetInstance()->AbsorptionClad2(),300,800); |
|||
|
|||
G4double* Pstyrene_ABSLENGTH = new G4double[E_NUMENTRIES]; |
|||
G4double* PMMA_ABSLENGTH = new G4double[E_NUMENTRIES]; |
|||
G4double* PMMA2_ABSLENGTH = new G4double[E_NUMENTRIES]; |
|||
|
|||
// Calculate absorption lengths |
|||
|
|||
for(int j=0; j<E_NUMENTRIES; j++) |
|||
{ |
|||
double wavelengthNanometer = Parameters::hcPERe/Energy[j]*1e3; |
|||
|
|||
Pstyrene_ABSLENGTH[j] = 1./coreAbs.Eval(wavelengthNanometer)*m; |
|||
PMMA_ABSLENGTH[j] = 1./clad1Abs.Eval(wavelengthNanometer)*m; |
|||
PMMA2_ABSLENGTH[j] = 1./clad2Abs.Eval(wavelengthNanometer)*m; |
|||
} |
|||
|
|||
scintCoreMaterialProperties->AddProperty("ABSLENGTH",Energy,Pstyrene_ABSLENGTH,E_NUMENTRIES)->SetSpline(true); |
|||
innerCladMaterialProperties->AddProperty("ABSLENGTH",Energy,PMMA_ABSLENGTH,E_NUMENTRIES)->SetSpline(true); |
|||
outerCladMaterialProperties->AddProperty("ABSLENGTH",Energy,PMMA2_ABSLENGTH,E_NUMENTRIES)->SetSpline(true); |
|||
|
|||
delete[] Pstyrene_ABSLENGTH; |
|||
delete[] PMMA_ABSLENGTH; |
|||
delete[] PMMA2_ABSLENGTH; |
|||
|
|||
// Set Rayleigh scattering |
|||
|
|||
scintCoreMaterialProperties->AddProperty("RAYLEIGH",Energy,Pstyrene_RAYLEIGH,E_NUMENTRIES)->SetSpline(true); |
|||
innerCladMaterialProperties->AddProperty("RAYLEIGH",Energy,PMMA_RAYLEIGH,E_NUMENTRIES)->SetSpline(true); |
|||
outerCladMaterialProperties->AddProperty("RAYLEIGH",Energy,PMMA2_RAYLEIGH,E_NUMENTRIES)->SetSpline(true); |
|||
|
|||
// Set scintillation and WLS properties |
|||
|
|||
scintCoreMaterialProperties->AddProperty("FASTCOMPONENT",scintSpecVector); |
|||
scintCoreMaterialProperties->AddProperty("SLOWCOMPONENT",scintSpecVector); |
|||
scintCoreMaterialProperties->AddProperty("WLSCOMPONENT",wlsSpecVector); |
|||
|
|||
|
|||
scintCoreMaterialProperties->AddConstProperty("SCINTILLATIONYIELD", |
|||
Parameters::GetInstance()->ScintillationYield()/keV); |
|||
scintCoreMaterialProperties->AddConstProperty("RESOLUTIONSCALE", |
|||
Parameters::GetInstance()->ResolutionScale()); |
|||
scintCoreMaterialProperties->AddConstProperty("FASTTIMECONSTANT", |
|||
Parameters::GetInstance()->DecayTimeFast()*ns); |
|||
scintCoreMaterialProperties->AddConstProperty("SLOWTIMECONSTANT", |
|||
Parameters::GetInstance()->DecayTimeSlow()*ns); |
|||
scintCoreMaterialProperties->AddConstProperty("YIELDRATIO", Parameters::GetInstance()->YieldRatio()); |
|||
// Is set in "PhysicsList.hh" as well due to inconsistency in Geant4 (G4OpticalPhsysics default value) |
|||
|
|||
scintCoreMaterialProperties->AddProperty("WLSABSLENGTH", |
|||
WlsAbsEnergy,WlsAbsLength,WLS_ABS_ENTRIES)->SetSpline(true); |
|||
|
|||
scintCoreMaterialProperties->AddConstProperty("WLSTIMECONSTANT", Parameters::GetInstance()->WlsDecayTime()*ns); |
|||
|
|||
// Assign material properties tables |
|||
|
|||
scintCoreMaterial->SetMaterialPropertiesTable(scintCoreMaterialProperties); |
|||
innerCladdingMaterial->SetMaterialPropertiesTable(innerCladMaterialProperties); |
|||
outerCladdingMaterial->SetMaterialPropertiesTable(outerCladMaterialProperties); |
|||
|
|||
// Set the Birks Constant for the Polystyrene scintillator |
|||
scintCoreMaterial->GetIonisation()->SetBirksConstant(Parameters::GetInstance()->BirksConstant()*mm/MeV); |
|||
|
|||
delete[] Energy; |
|||
delete[] ScintilEnergyDist; |
|||
|
|||
delete[] WlsEnergy; |
|||
delete[] WlsEnergyDist; |
|||
|
|||
delete[] WlsAbsEnergy; |
|||
delete[] WlsAbsLength; |
|||
|
|||
delete[] Vacuum_RIND; |
|||
delete[] Vacuum_ABS; |
|||
|
|||
delete[] Pstyrene_RIND; |
|||
delete[] PMMA_RIND; |
|||
delete[] PMMA2_RIND; |
|||
|
|||
delete[] Pstyrene_RAYLEIGH; |
|||
delete[] PMMA_RAYLEIGH; |
|||
delete[] PMMA2_RAYLEIGH; |
|||
} |
|||
|
|||
|
|||
|
|||
G4VPhysicalVolume* DetectorConstruction::Construct() |
|||
{ |
|||
DefineMaterials(); |
|||
DefineMaterialProperties(); |
|||
|
|||
// Placing the world (experimental hall) |
|||
G4Box* expHall_box = new G4Box("World",expHall_x,expHall_y,expHall_z); |
|||
expHall_log = new G4LogicalVolume(expHall_box,Air,"World",0,0,0); |
|||
expHall_phys = new G4PVPlacement(0,G4ThreeVector(),expHall_log,"World",0,false,0); |
|||
|
|||
|
|||
// Epoxy |
|||
G4double xEpoxy = 0.5*(Nk*xDist+2*Parameters::GetInstance()->SemiAxisZ()*mm)+5*mm; |
|||
G4double yEpoxy = 0.5*(Nj*yDist+2*Parameters::GetInstance()->SemiAxisZ()*mm)+0.2*mm; |
|||
G4Box* epoxyBox = new G4Box("EpoxyBox",xEpoxy, yEpoxy, scint_z); |
|||
epoxyLog = new G4LogicalVolume(epoxyBox, Epoxy, "EpoxyBox", 0, 0, 0); |
|||
epoxyPhy = new G4PVPlacement(0, G4ThreeVector() , epoxyLog, "EpoxyBox", expHall_log, false, 0); |
|||
|
|||
|
|||
|
|||
//-------------------------------------------------- |
|||
// Mirror for reflection at one of the end |
|||
//-------------------------------------------------- |
|||
|
|||
// Place the mirror only if the user wants the mirror |
|||
if (fMirrorToggle) { |
|||
|
|||
G4VSolid* solidMirror = new G4Box("Mirror", |
|||
xEpoxy, |
|||
yEpoxy, |
|||
fMirrorZ); |
|||
|
|||
G4LogicalVolume* logicMirror = new G4LogicalVolume(solidMirror, |
|||
alu, |
|||
"Mirror"); |
|||
|
|||
G4OpticalSurface* mirrorSurface = new G4OpticalSurface("MirrorSurface", |
|||
glisur, |
|||
ground, |
|||
dielectric_metal, |
|||
fMirrorPolish); |
|||
|
|||
G4MaterialPropertiesTable* mirrorSurfaceProperty = |
|||
new G4MaterialPropertiesTable(); |
|||
|
|||
G4double p_mirror[] = {2.00*eV, 3.47*eV}; |
|||
const G4int nbins = sizeof(p_mirror)/sizeof(G4double); |
|||
G4double refl_mirror[] = {fMirrorReflectivity,fMirrorReflectivity}; |
|||
assert(sizeof(refl_mirror) == sizeof(p_mirror)); |
|||
G4double effi_mirror[] = {0, 0}; |
|||
assert(sizeof(effi_mirror) == sizeof(effi_mirror)); |
|||
|
|||
mirrorSurfaceProperty-> |
|||
AddProperty("REFLECTIVITY",p_mirror,refl_mirror,nbins); |
|||
mirrorSurfaceProperty-> |
|||
AddProperty("EFFICIENCY",p_mirror,effi_mirror,nbins); |
|||
|
|||
mirrorSurface -> SetMaterialPropertiesTable(mirrorSurfaceProperty); |
|||
|
|||
new G4PVPlacement(0, |
|||
G4ThreeVector(0.0,0.0,-scint_z-2*fMirrorZ), |
|||
logicMirror, |
|||
"Mirror", |
|||
expHall_log, |
|||
false, |
|||
0); |
|||
|
|||
new G4LogicalSkinSurface("MirrorSurface",logicMirror,mirrorSurface); |
|||
} |
|||
|
|||
|
|||
|
|||
// ABS plastic |
|||
G4double xABS = xEpoxy; |
|||
G4double yABS = 2.5*mm; |
|||
G4double zABS = scint_z; |
|||
G4Box* absBox = new G4Box("AbsBox", xABS, yABS/2., zABS); |
|||
absLog = new G4LogicalVolume(absBox, Abs_plastic, "AbsBox", 0, 0,0); |
|||
absPhy = new G4PVPlacement(0, G4ThreeVector(0., -(yEpoxy+yABS/2.), 0.), absLog, "AbsBox", expHall_log, false, 0); |
|||
|
|||
ConstructFiber(); |
|||
// ConstructFiberSheet(); |
|||
|
|||
/* ++ Construction and placement of the detector strips ++ */ |
|||
|
|||
// Epoxy layer infront of det strip |
|||
G4VSolid* epoxy_strip = new G4Box("EpoxyStrip", stripWidth/2., stripHeight/2., epoxy_strip_width/2.); |
|||
G4LogicalVolume* epoxy_strip_log = new G4LogicalVolume(epoxy_strip, Glue, "EpoxyStrip", 0, 0, 0); |
|||
|
|||
|
|||
G4VSolid* pixelS = new G4Box("Pixel", pixelDimX/2., pixelDimY/2., stripWidth/2.); |
|||
G4LogicalVolume* pixelL = new G4LogicalVolume(pixelS, Glue, "Pixel", 0, 0, 0); |
|||
|
|||
SensitiveDetector* sensitive = new SensitiveDetector("/Sensitive"); |
|||
G4SDManager* sdman = G4SDManager::GetSDMpointer(); |
|||
sdman->AddNewDetector(sensitive); |
|||
pixelL->SetSensitiveDetector(sensitive); |
|||
|
|||
G4int Nk_s = ceil(((G4double)Nk)*(xDist/stripWidth)); // Determ. autom. nb. of detector strips. |
|||
for(int k = 1; k < Nk_s-1; k++) |
|||
{ |
|||
new G4PVPlacement(0, objectPos(Nj/2, k, scint_z+epoxy_strip_width/2.+airGap), epoxy_strip_log, |
|||
"EpoxyStrip", expHall_log, false, 0); |
|||
|
|||
for(int i = 0; i < Nx; i++) |
|||
{ |
|||
for(int j = 0; j < Ny; j++){ |
|||
new G4PVPlacement(0, objectPos(Nj/2, i, j, k, scint_z+stripWidth/2.+epoxy_strip_width+airGap), |
|||
pixelL, "SensitiveDetector"+C::c1(k)+C::c2(i)+C::c3(j), expHall_log, false, 0); |
|||
} |
|||
} |
|||
} |
|||
/* ++ End of Constr. and placem. of det. strips ++ */ |
|||
|
|||
/* Construction and placement of trigger |
|||
* Trigger should have the same x,y-dimensions as epoxyBox |
|||
*/ |
|||
|
|||
G4double xTrigger = xEpoxy;//Parameters::GetInstance()->TriggerX()*mm; |
|||
G4double yTrigger = Parameters::GetInstance()->TriggerY()*mm; |
|||
G4double zTrigger = scint_z*2.0;//;Parameters::GetInstance()->TriggerZ()*mm; |
|||
|
|||
G4double triggerXPos = 0.0; //Parameters::GetInstance()->TriggerXPos()*mm; |
|||
G4double triggerZPos = 0.0; //Parameters::GetInstance()->TriggerZPos()*mm; |
|||
|
|||
G4VSolid* triggerS = new G4Box("Trigger", xTrigger/2., yTrigger/2., zTrigger/2.); |
|||
G4LogicalVolume* triggerL = new G4LogicalVolume(triggerS, Air, "Trigger", 0, 0, 0); |
|||
new G4PVPlacement(0 , G4ThreeVector(triggerXPos, -(yEpoxy+yTrigger/2.+yABS), triggerZPos), |
|||
triggerL, "Trigger", expHall_log, false, 0); |
|||
|
|||
return expHall_phys; |
|||
} |
|||
|
|||
|
|||
void DetectorConstruction::ConstructFiberSheet() |
|||
{ |
|||
// dimensions |
|||
G4double dim_z; |
|||
G4double sphi, ephi; |
|||
dim_z = scint_z; |
|||
sphi = 0.00*deg; |
|||
ephi = 360.*deg; |
|||
G4double xEpoxy = 0.5*(Nk*xDist+2*Parameters::GetInstance()->SemiAxisZ()*mm)+5*mm; |
|||
// Scintillating core |
|||
// G4Tubs* coreSection_tube = new G4Tubs("CoreSection",core_rZmin,core_rZmax,dim_z, sphi,ephi); |
|||
// G4Box* coreSection_tube= new G4Box("CoreSection", stripWidth/3., 0.85*mm, epoxy_strip_width/2.); |
|||
G4Box* CoreBox = new G4Box("CoreBox",xEpoxy-1*mm, 0.8294/2.0*mm, scint_z); |
|||
G4LogicalVolume *coreSection_log = new G4LogicalVolume(CoreBox, |
|||
scintCoreMaterial, "CoreSection",0,0,0); |
|||
|
|||
new G4PVPlacement(0, G4ThreeVector(), coreSection_log, "Core", epoxyLog, true, 0); |
|||
|
|||
} |
|||
void DetectorConstruction::ConstructFiber() |
|||
{ |
|||
// dimensions |
|||
G4double dim_z; |
|||
G4double sphi, ephi; |
|||
G4double core_rZmin,core_rZmax; |
|||
G4double core_rYmin,core_rYmax; |
|||
G4double clad1_rZmin,clad1_rZmax; |
|||
G4double clad1_rYmin,clad1_rYmax; |
|||
G4double clad2_rZmin,clad2_rZmax; |
|||
G4double clad2_rYmin,clad2_rYmax; |
|||
|
|||
dim_z = scint_z; |
|||
sphi = 0.00*deg; |
|||
ephi = 360.*deg; |
|||
|
|||
core_rZmin = 0.00*cm; |
|||
core_rYmin = 0.00*cm; |
|||
|
|||
core_rZmax = Parameters::GetInstance()->SemiAxisZ()*(88./100.)*mm; |
|||
core_rYmax = Parameters::GetInstance()->SemiAxisY()*(88./100.)*mm; |
|||
|
|||
clad1_rZmin = core_rZmax; |
|||
clad1_rYmin = core_rYmax; |
|||
|
|||
clad1_rZmax = core_rZmax + 3./88.*core_rZmax*2.; |
|||
clad1_rYmax = core_rYmax + 3./88.*core_rYmax*2.; |
|||
|
|||
clad2_rZmin = clad1_rZmax; |
|||
clad2_rYmin = clad1_rYmax; |
|||
|
|||
clad2_rZmax = Parameters::GetInstance()->SemiAxisZ()*mm; |
|||
clad2_rYmax = Parameters::GetInstance()->SemiAxisY()*mm; |
|||
|
|||
G4ThreeVector origin; |
|||
/* ++ Fibre Placement ++ */ |
|||
for(int j = 0; j < Nj; j++) |
|||
{ |
|||
for(int k = 0; k < Nk; k++) |
|||
{ |
|||
origin = objectPos(j,k); |
|||
|
|||
// Outer cladding |
|||
G4Tubs* clad2Section_tube = new G4Tubs("Cladding2Section",clad2_rZmin,clad2_rZmax,dim_z, sphi,ephi); |
|||
G4LogicalVolume *clad2Section_log = new G4LogicalVolume(clad2Section_tube, |
|||
outerCladdingMaterial, "Cladding2Section",0,0,0); |
|||
|
|||
new G4PVPlacement(0, origin, clad2Section_log, "Cladding2"+C::c(j)+C::c(k), epoxyLog, true, 0); |
|||
|
|||
|
|||
// Inner cladding |
|||
G4Tubs* clad1Section_tube = new G4Tubs("Cladding1Section",clad1_rZmin,clad1_rZmax,dim_z, sphi,ephi); |
|||
G4LogicalVolume *clad1Section_log = new G4LogicalVolume(clad1Section_tube, |
|||
innerCladdingMaterial, "Cladding1Section",0,0,0); |
|||
|
|||
new G4PVPlacement(0, origin, clad1Section_log, "Cladding1"+C::c(j)+C::c(k), epoxyLog, true, 0); |
|||
|
|||
// Scintillating core |
|||
G4Tubs* coreSection_tube = new G4Tubs("CoreSection",core_rZmin,core_rZmax,dim_z, sphi,ephi); |
|||
G4LogicalVolume *coreSection_log = new G4LogicalVolume(coreSection_tube, |
|||
scintCoreMaterial, "CoreSection",0,0,0); |
|||
|
|||
new G4PVPlacement(0, origin, coreSection_log, "Core"+C::c(j)+C::c(k), epoxyLog, true, 0); |
|||
} |
|||
} |
|||
/* ++ End of Fibre Placement ++ */ |
|||
} |
|||
|
|||
|
|||
// for fibre placement |
|||
G4ThreeVector DetectorConstruction::objectPos(G4int j, G4int k) |
|||
{ |
|||
G4double xOffset = xDist*(((G4double)Nk)/2.)-Parameters::GetInstance()->SemiAxisZ()*mm/2.; |
|||
G4double yOffset = yDist*(((G4double)Nj)/2.)-Parameters::GetInstance()->SemiAxisZ()*mm; |
|||
|
|||
G4double xDispl; |
|||
G4double xsigma = (-0.49*j*j + 7.0*j-1.8)/1000.; |
|||
G4double xvar = G4RandGauss::shoot(0.,xsigma); |
|||
while(fabs(xvar)>=0.020*mm) { |
|||
xvar = G4RandGauss::shoot(0.,xsigma); |
|||
} |
|||
|
|||
j % 2 == 0 ? xDispl = 0. : xDispl = xDist/2.; |
|||
|
|||
G4ThreeVector origin(xDist*k+xDispl-xOffset+xvar, -yDist*j+yOffset, 0.); |
|||
|
|||
// print detector positions into file |
|||
std::ofstream outFile; |
|||
outFile.open("fibrePos.txt",std::ios::app); |
|||
outFile << origin.x() << "\t" << origin.y() << std::endl; |
|||
outFile.close(); |
|||
|
|||
//G4cout << "Placing Fibre[" << k << ":" << j << "]: " << origin << G4endl; |
|||
|
|||
//G4cout << origin.x() << "\t" << origin.y() << G4endl; |
|||
|
|||
return origin; |
|||
} |
|||
|
|||
// for detector placement |
|||
G4ThreeVector DetectorConstruction::objectPos(G4int j, G4int k, G4double zPos) |
|||
{ |
|||
G4double randomN = Parameters::GetInstance()->RandomNumber(); |
|||
G4double offset = (stripWidth/2.)*randomN; |
|||
|
|||
// Save random number |
|||
std::ofstream myfile; |
|||
myfile.open("randomN.txt"); |
|||
myfile << randomN; |
|||
myfile.close(); |
|||
|
|||
G4double xOffset = xDist*(((G4double)Nk)/2.)-Parameters::GetInstance()->SemiAxisZ()*mm/2.; |
|||
G4double yOffset = yDist*(((G4double)Nj)/2.)-Parameters::GetInstance()->SemiAxisZ()*mm; |
|||
|
|||
G4double xDispl; |
|||
|
|||
j % 2 == 0 ? xDispl = 0. : xDispl = xDist/2.; |
|||
|
|||
G4ThreeVector origin(stripWidth*k+xDispl-xOffset-offset, -yDist*j+yOffset, zPos); |
|||
|
|||
// print detector positions into file |
|||
std::ofstream detFile; |
|||
detFile.open("detPos.txt",std::ios::app); |
|||
detFile << k << " " << stripWidth*k+xDispl-xOffset-offset << std::endl; |
|||
detFile.close(); |
|||
|
|||
return origin; |
|||
} |
|||
|
|||
// for detector placement |
|||
G4ThreeVector DetectorConstruction::objectPos(G4int j, G4int i, G4int j2, G4int k, G4double zPos) |
|||
{ |
|||
G4double randomN = Parameters::GetInstance()->RandomNumber(); |
|||
G4double offset = (stripWidth/2.)*randomN; |
|||
|
|||
// Save random number |
|||
//std::ofstream myfile; |
|||
//myfile.open("randomN.txt"); |
|||
//myfile << randomN; |
|||
//myfile.close(); |
|||
|
|||
G4double xOffset = xDist*(((G4double)Nk)/2.)-Parameters::GetInstance()->SemiAxisZ()*mm/2.; |
|||
G4double yOffset = yDist*(((G4double)Nj)/2.)-Parameters::GetInstance()->SemiAxisZ()*mm + 3/2*pixelDimY; |
|||
|
|||
G4double xDispl; |
|||
|
|||
j % 2 == 0 ? xDispl = 0. : xDispl = xDist/2.; |
|||
|
|||
// print detector positions into file |
|||
//std::ofstream detFile; |
|||
//detFile.open("detPos.txt",std::ios::app); |
|||
//detFile << k << " " << stripWidth*k+xDispl-xOffset-offset << std::endl; |
|||
//detFile.close(); |
|||
|
|||
G4double pixelX = pixelDimX/2. + i*pixelDimX - stripWidth/2.; |
|||
G4double pixelY = pixelDimY/2. + j2*pixelDimY - stripHeight/2.; |
|||
|
|||
G4ThreeVector origin(stripWidth*k+xDispl-xOffset-offset + pixelX, -yDist*j+yOffset + pixelY, zPos); |
|||
|
|||
std::ofstream detFileY; |
|||
detFileY.open("detPosY.txt",std::ios::app); |
|||
detFileY << k << " " << -yDist*j+yOffset + pixelY << std::endl; |
|||
detFileY.close(); |
|||
|
|||
return origin; |
|||
} |
|||
|
|||
|
@ -0,0 +1,40 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
// modified by Bastian Rössler
|
|||
|
|||
|
|||
#include "EventAction.hh"
|
|||
|
|||
#include "G4Event.hh"
|
|||
#include "G4EventManager.hh"
|
|||
#include "G4TrajectoryContainer.hh"
|
|||
#include "G4Trajectory.hh"
|
|||
#include "G4VVisManager.hh"
|
|||
#include "G4ios.hh"
|
|||
|
|||
#include "Analysis.hh"
|
|||
#include "G4RunManager.hh"
|
|||
|
|||
EventAction::EventAction() : fEnergy(0.), fTrackL(0.) |
|||
{} |
|||
|
|||
|
|||
EventAction::~EventAction() |
|||
{} |
|||
|
|||
|
|||
void EventAction::BeginOfEventAction(const G4Event* anEvent) |
|||
{ |
|||
G4cout << "# Event " << anEvent->GetEventID() << " start." << G4endl; |
|||
Analysis::GetInstance()->PrepareNewEvent(anEvent); |
|||
|
|||
fEnergy = 0.0; |
|||
fTrackL = 0.0; |
|||
} |
|||
|
|||
|
|||
void EventAction::EndOfEventAction(const G4Event* anEvent) |
|||
{ |
|||
G4double runID = (G4double) G4RunManager::GetRunManager()->GetCurrentRun()->GetRunID(); |
|||
Analysis::GetInstance()->FillEnergyTrack(runID, anEvent->GetEventID(), fEnergy, fTrackL); |
|||
} |
@ -0,0 +1,597 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
// modified by Bastian Rössler
|
|||
|
|||
|
|||
|
|||
|
|||
#include "Analysis.hh"
|
|||
#include "Parameters.hh"
|
|||
|
|||
#include <fstream>
|
|||
#include <vector>
|
|||
|
|||
|
|||
|
|||
Parameters* Parameters::singleton = 0; |
|||
|
|||
Parameters::Parameters() |
|||
{ |
|||
|
|||
//// Read parameter values and set corresponding variables ////
|
|||
|
|||
G4cout << ">>> Constructor of Parameter class called <<<" << G4endl; |
|||
|
|||
//char parameterFileName[40] = "parameterFiles/parameters.dat";
|
|||
|
|||
#if defined __APPLE__
|
|||
char parameterFileName[200] = "/Users/basti/Programming/LHCb/SciFiSim-Xcode/SimulationData/parameterFiles/parameters.dat"; |
|||
#pragma message("Compiling for MacOSX")
|
|||
#else
|
|||
char parameterFileName[40] = "parameterFiles/parameters.dat"; |
|||
#pragma message("Compiling for Linux")
|
|||
#endif
|
|||
std::ifstream parameterFile; |
|||
parameterFile.open(parameterFileName); |
|||
|
|||
if(parameterFile.good()) |
|||
{ |
|||
parameterFile >> randomSeed; // random seed for random engine
|
|||
parameterFile >> randomNumber; // random number for detector strip positioning
|
|||
randomNumber = randomNumber/32767.0; // max random number in bourne shell random number generator
|
|||
parameterFile >> fibreLength; // length of fibre in meter
|
|||
parameterFile >> semiAxisZ; // semi axis of fibre in z in millimeter
|
|||
parameterFile >> semiAxisY; // semi axis of fibre in y in millimeter
|
|||
parameterFile >> triggerX; // x-size of Trigger in mm
|
|||
parameterFile >> triggerY; // y-size of Trigger in mm
|
|||
parameterFile >> triggerZ; // z-size of Trigger in mm
|
|||
parameterFile >> triggerXPos; // x-position of Trigger in millimeter
|
|||
parameterFile >> triggerZPos; // z-position of Trigger in millimeter
|
|||
parameterFile >> probabilityOfPhotonLossAtSurface; // probability that a photon is killed when reaching fibre surface
|
|||
|
|||
if(probabilityOfPhotonLossAtSurface<0 || probabilityOfPhotonLossAtSurface>1) |
|||
probabilityOfPhotonLossAtSurface = 1; |
|||
|
|||
parameterFile >> placeMirror; // place a mirror at fibre end
|
|||
parameterFile >> mirrorReflectivity; // reflectivity of mirror at fibre end
|
|||
parameterFile >> detectorMaterial; // place a mirror at fibre end
|
|||
|
|||
parameterFile.ignore(256,'\n'); |
|||
parameterFile.peek(); |
|||
parameterFile.getline(emissionSpectrumFileName,256); |
|||
|
|||
G4cout << "Emission FIle: " << emissionSpectrumFileName << G4endl; |
|||
|
|||
std::ifstream emissionFile; |
|||
emissionFile.open(emissionSpectrumFileName); |
|||
|
|||
if(emissionFile.good()) |
|||
{ |
|||
std::vector<G4double> energyVector; |
|||
std::vector<G4double> intensityVector; |
|||
G4double readValue1; |
|||
G4double readValue2; |
|||
numberOfEnergies = 0; |
|||
|
|||
while(emissionFile >> readValue1) |
|||
{ |
|||
if(emissionFile >> readValue2) |
|||
{ |
|||
energyVector.push_back(readValue1); |
|||
intensityVector.push_back(readValue2); |
|||
numberOfEnergies ++; |
|||
} |
|||
} |
|||
|
|||
Energy = new G4double[numberOfEnergies]; |
|||
Intensity = new G4double[numberOfEnergies]; |
|||
|
|||
for(int i=0; i<numberOfEnergies; i++) |
|||
{ |
|||
Energy[i] = energyVector[i]; |
|||
Intensity[i] = intensityVector[i]; |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
G4cout << "Could not read emission spectrum file: " << emissionSpectrumFileName <<" !" << G4endl; |
|||
} |
|||
|
|||
emissionFile.close(); |
|||
parameterFile >> numberOfInterpolatedPoints; // number of points to be interpolated within each emission spectrum interval
|
|||
|
|||
parameterFile.ignore(256,'\n'); |
|||
parameterFile.peek(); |
|||
parameterFile.getline(wlsAbsSpectrumFileName,256); |
|||
std::ifstream wlsAbsFile; |
|||
wlsAbsFile.open(wlsAbsSpectrumFileName); |
|||
|
|||
if(wlsAbsFile.good()) |
|||
{ |
|||
std::vector<G4double> wlsAbsEnergyVector; |
|||
std::vector<G4double> wlsAbsLengthVector; |
|||
G4double readValue1; |
|||
G4double readValue2; |
|||
numberOfWlsAbsEnergies = 0; |
|||
|
|||
while(wlsAbsFile >> readValue1) |
|||
{ |
|||
if(wlsAbsFile >> readValue2) |
|||
{ |
|||
wlsAbsEnergyVector.push_back(readValue1); |
|||
wlsAbsLengthVector.push_back(readValue2); |
|||
numberOfWlsAbsEnergies ++; |
|||
} |
|||
} |
|||
|
|||
WlsAbsEnergy = new G4double[numberOfWlsAbsEnergies]; |
|||
WlsAbsLength = new G4double[numberOfWlsAbsEnergies]; |
|||
|
|||
for(int i=0; i<numberOfWlsAbsEnergies; i++) |
|||
{ |
|||
WlsAbsEnergy[i] = wlsAbsEnergyVector[i]; |
|||
WlsAbsLength[i] = wlsAbsLengthVector[i]; |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
G4cout << "Could not read wls absorption spectrum file: " << wlsAbsSpectrumFileName <<" !" << G4endl; |
|||
} |
|||
|
|||
wlsAbsFile.close(); |
|||
|
|||
parameterFile.getline(wlsEmissionSpectrumFileName,256); |
|||
std::ifstream wlsEmissionFile; |
|||
wlsEmissionFile.open(wlsEmissionSpectrumFileName); |
|||
|
|||
if(wlsEmissionFile.good()) |
|||
{ |
|||
std::vector<G4double> wlsEmissionEnergyVector; |
|||
std::vector<G4double> wlsEmissionIntensityVector; |
|||
G4double readValue1; |
|||
G4double readValue2; |
|||
numberOfWlsEmissionEnergies = 0; |
|||
|
|||
while(wlsEmissionFile >> readValue1) |
|||
{ |
|||
if(wlsEmissionFile >> readValue2) |
|||
{ |
|||
wlsEmissionEnergyVector.push_back(readValue1); |
|||
wlsEmissionIntensityVector.push_back(readValue2); |
|||
numberOfWlsEmissionEnergies ++; |
|||
} |
|||
} |
|||
|
|||
WlsEmissionEnergy = new G4double[numberOfWlsEmissionEnergies]; |
|||
WlsEmissionIntensity = new G4double[numberOfWlsEmissionEnergies]; |
|||
|
|||
for(int i=0; i<numberOfWlsEmissionEnergies; i++) |
|||
{ |
|||
WlsEmissionEnergy[i] = wlsEmissionEnergyVector[i]; |
|||
WlsEmissionIntensity[i] = wlsEmissionIntensityVector[i]; |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
G4cout << "Could not read wls emission spectrum file: " << wlsEmissionSpectrumFileName <<" !" << G4endl; |
|||
} |
|||
|
|||
wlsEmissionFile.close(); |
|||
|
|||
parameterFile >> scintillationYield; //scintillation yield in photons per keV
|
|||
parameterFile >> resolutionScale; // width of gaussian to generate photon number
|
|||
parameterFile >> decayTimeFast; // fast decay time of excited states in ns
|
|||
parameterFile >> decayTimeSlow; // slow decay time of excited states in ns
|
|||
parameterFile >> yieldRatio; // ratio of fast component and total scintillation yield
|
|||
parameterFile >> birksConstant; // Birk's constant in mm/MeV
|
|||
|
|||
parameterFile >> wlsDecayTime; // decay time of wls excited states in ns
|
|||
|
|||
parameterFile.ignore(256,'\n'); |
|||
parameterFile.peek(); |
|||
parameterFile.getline(refractiveIndexVacuum,256); |
|||
parameterFile.getline(refractiveIndexCore,256); |
|||
parameterFile.getline(refractiveIndexClad1,256); |
|||
parameterFile.getline(refractiveIndexClad2,256); |
|||
|
|||
parameterFile.getline(absorptionCore,512); |
|||
parameterFile.getline(absorptionClad1,512); |
|||
parameterFile.getline(absorptionClad2,512); |
|||
|
|||
parameterFile.getline(absorptionFromIrradiationCore,512); |
|||
parameterFile.getline(absorptionFromIrradiationClad1,512); |
|||
parameterFile.getline(absorptionFromIrradiationClad2,512); |
|||
|
|||
parameterFile.getline(sectionsFileName,80); |
|||
std::ifstream sectionsFile; |
|||
sectionsFile.open(sectionsFileName); |
|||
|
|||
if(sectionsFile.good()) |
|||
sectionsFile >> numberOfSections; |
|||
else |
|||
G4cout << "Could not read sections file: " << sectionsFileName <<" !" << G4endl; |
|||
|
|||
sectionsFile.close(); |
|||
|
|||
parameterFile.getline(rayleighCore,512); |
|||
parameterFile.getline(rayleighClad1,512); |
|||
parameterFile.getline(rayleighClad2,512); |
|||
} |
|||
else |
|||
{ |
|||
G4cout << "Could not read parameter file: " << parameterFileName <<" !" << G4endl; |
|||
} |
|||
|
|||
parameterFile.close(); |
|||
|
|||
|
|||
|
|||
//// Open file to store parameters ////
|
|||
|
|||
sprintf(parameterOutputFileName,"%s.parameters",Analysis::GetInstance()->FileName()); |
|||
|
|||
std::ofstream parameterOutputFile; |
|||
parameterOutputFile.open(parameterOutputFileName); |
|||
|
|||
parameterOutputFile << "Length of fibre: "; |
|||
parameterOutputFile << fibreLength << " m \n"; |
|||
parameterOutputFile << "Semi axis of fibre in z: "; |
|||
parameterOutputFile << semiAxisZ << " mm \n"; |
|||
parameterOutputFile << "Semi axis of fibre in y: "; |
|||
parameterOutputFile << semiAxisY << " mm \n"; |
|||
parameterOutputFile << "Probability to lose photons at fibre surface: "; |
|||
parameterOutputFile << probabilityOfPhotonLossAtSurface << "\n"; |
|||
parameterOutputFile << "Mirror placement at fibre end: "; |
|||
parameterOutputFile << placeMirror << "\n"; |
|||
parameterOutputFile << "Reflectivity of mirror at fibre end: "; |
|||
parameterOutputFile << mirrorReflectivity << "\n"; |
|||
parameterOutputFile << "Detector material vacuum/polystyrene (0/1): "; |
|||
parameterOutputFile << detectorMaterial << "\n"; |
|||
parameterOutputFile << "Used emission spectrum: \""; |
|||
parameterOutputFile << emissionSpectrumFileName << "\"\n"; |
|||
parameterOutputFile << "Number of energies: "; |
|||
parameterOutputFile << numberOfEnergies << "\n"; |
|||
parameterOutputFile << "Energy / eV \t Intensity\n"; |
|||
|
|||
for(int i=0; i<numberOfEnergies; i++) |
|||
parameterOutputFile << Energy[i] << "\t" << Intensity[i] <<"\n"; |
|||
|
|||
parameterOutputFile << "Number of interpolated points per emission spectrum interval: "; |
|||
parameterOutputFile << numberOfInterpolatedPoints << "\n"; |
|||
parameterOutputFile << "Used wls absorption spectrum: \""; |
|||
parameterOutputFile << wlsAbsSpectrumFileName << "\"\n"; |
|||
parameterOutputFile << "Number of wls absorption energies: "; |
|||
parameterOutputFile << numberOfWlsAbsEnergies << "\n"; |
|||
parameterOutputFile << "Energy / eV \t WLS Absorption Length / m\n"; |
|||
|
|||
for(int i=0; i<numberOfWlsAbsEnergies; i++) |
|||
parameterOutputFile << WlsAbsEnergy[i] << "\t" << WlsAbsLength[i] <<"\n"; |
|||
|
|||
parameterOutputFile << "Used wls emission spectrum: \""; |
|||
parameterOutputFile << wlsEmissionSpectrumFileName << "\"\n"; |
|||
parameterOutputFile << "Number of wls emission energies: "; |
|||
parameterOutputFile << numberOfWlsEmissionEnergies << "\n"; |
|||
parameterOutputFile << "Energy / eV \t WLS emission intensity\n"; |
|||
|
|||
for(int i=0; i<numberOfWlsEmissionEnergies; i++) |
|||
parameterOutputFile << WlsEmissionEnergy[i] << "\t" << WlsEmissionIntensity[i] <<"\n"; |
|||
|
|||
parameterOutputFile << "Formulae to calculate refractive indices in\n"; |
|||
parameterOutputFile << " - vacuum: \"" << refractiveIndexVacuum << "\"\n"; |
|||
parameterOutputFile << " - core: \"" << refractiveIndexCore << "\"\n"; |
|||
parameterOutputFile << " - inner cladding: \"" << refractiveIndexClad1 << "\"\n"; |
|||
parameterOutputFile << " - outer cladding: \"" << refractiveIndexClad2 << "\"\n"; |
|||
parameterOutputFile << " with x in nm.\n"; |
|||
parameterOutputFile << "Scintillation yield: " << scintillationYield << "/keV\n"; |
|||
parameterOutputFile << "Resolution scale: " << resolutionScale << "\n"; |
|||
parameterOutputFile << "Fast decay time: " << decayTimeFast << " ns\n"; |
|||
parameterOutputFile << "Slow decay time: " << decayTimeSlow << " ns\n"; |
|||
parameterOutputFile << "Yield ratio: " << yieldRatio << "\n"; |
|||
parameterOutputFile << "Birks constant: " << birksConstant << " mm/MeV\n"; |
|||
parameterOutputFile << "WLS decay time: " << wlsDecayTime << " ns\n"; |
|||
parameterOutputFile << "Formulae to calculate absorption [1/m] in\n"; |
|||
parameterOutputFile << " - core: \"" << absorptionCore << "\"\n"; |
|||
parameterOutputFile << " - inner cladding: \"" << absorptionClad1 << "\"\n"; |
|||
parameterOutputFile << " - outer cladding: \"" << absorptionClad2 << "\"\n"; |
|||
parameterOutputFile << " with x in nm.\n"; |
|||
parameterOutputFile << "Formulae to calculate absorption due to irradiation [1/m] in\n"; |
|||
parameterOutputFile << " - core: \"" << absorptionFromIrradiationCore << "\"\n"; |
|||
parameterOutputFile << " - inner cladding: \"" << absorptionFromIrradiationClad1 << "\"\n"; |
|||
parameterOutputFile << " - outer cladding: \"" << absorptionFromIrradiationClad2 << "\"\n"; |
|||
parameterOutputFile << " with x in nm and y in kGy.\n"; |
|||
parameterOutputFile << "Used sections file: \""; |
|||
parameterOutputFile << sectionsFileName << "\"\n"; |
|||
parameterOutputFile << "Number of sections: "; |
|||
parameterOutputFile << numberOfSections << "\n"; |
|||
parameterOutputFile << "Formulae to calculate Rayleigh scattering [1/m] in\n"; |
|||
parameterOutputFile << " - core: " << rayleighCore << "\n"; |
|||
parameterOutputFile << " - inner cladding: " << rayleighClad1 << "\n"; |
|||
parameterOutputFile << " - outer cladding: " << rayleighClad2 << "\n"; |
|||
|
|||
parameterOutputFile.close(); |
|||
|
|||
G4cout << "Simulation parameters written to \"" << parameterOutputFileName << "\"" << G4endl; |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
Parameters::~Parameters() { |
|||
if(numberOfEnergies != 0) |
|||
{ |
|||
delete[] Energy; |
|||
delete[] Intensity; |
|||
} |
|||
if(numberOfWlsAbsEnergies != 0) |
|||
{ |
|||
delete[] WlsAbsEnergy; |
|||
delete[] WlsAbsLength; |
|||
} |
|||
if(numberOfWlsEmissionEnergies != 0) |
|||
{ |
|||
delete[] WlsEmissionEnergy; |
|||
delete[] WlsEmissionIntensity; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
char* Parameters::ParameterOutputFileName() |
|||
{ |
|||
return parameterOutputFileName; |
|||
} |
|||
|
|||
G4double Parameters::RandomSeed() |
|||
{ |
|||
return randomSeed; |
|||
} |
|||
|
|||
G4double Parameters::RandomNumber() |
|||
{ |
|||
return randomNumber; |
|||
} |
|||
|
|||
G4double Parameters::FibreLength() |
|||
{ |
|||
return fibreLength; |
|||
} |
|||
|
|||
|
|||
G4double Parameters::SemiAxisZ() |
|||
{ |
|||
return semiAxisZ; |
|||
} |
|||
|
|||
|
|||
G4double Parameters::SemiAxisY() |
|||
{ |
|||
return semiAxisY; |
|||
} |
|||
|
|||
|
|||
G4double Parameters::TriggerX() |
|||
{ |
|||
return triggerX; |
|||
} |
|||
|
|||
G4double Parameters::TriggerY() |
|||
{ |
|||
return triggerY; |
|||
} |
|||
|
|||
G4double Parameters::TriggerZ() |
|||
{ |
|||
return triggerZ; |
|||
} |
|||
|
|||
G4double Parameters::TriggerXPos() |
|||
{ |
|||
return triggerXPos; |
|||
} |
|||
|
|||
G4double Parameters::TriggerZPos() |
|||
{ |
|||
return triggerZPos; |
|||
} |
|||
|
|||
G4double Parameters::ProbabilityOfPhotonLossAtSurface() |
|||
{ |
|||
return probabilityOfPhotonLossAtSurface; |
|||
} |
|||
|
|||
|
|||
G4bool Parameters::PlaceMirror() |
|||
{ |
|||
return placeMirror; |
|||
} |
|||
|
|||
|
|||
G4double Parameters::MirrorReflectivity() |
|||
{ |
|||
return mirrorReflectivity; |
|||
} |
|||
|
|||
|
|||
G4bool Parameters::DetectorMaterial() |
|||
{ |
|||
return detectorMaterial; |
|||
} |
|||
|
|||
|
|||
char* Parameters::EmissionSpectrumFileName() |
|||
{ |
|||
return emissionSpectrumFileName; |
|||
} |
|||
|
|||
|
|||
G4int Parameters::NumberOfEnergies() |
|||
{ |
|||
return numberOfEnergies; |
|||
} |
|||
|
|||
|
|||
G4int Parameters::NumberOfInterpolatedPoints() |
|||
{ |
|||
return numberOfInterpolatedPoints; |
|||
} |
|||
|
|||
|
|||
char* Parameters::WlsAbsSpectrumFileName() |
|||
{ |
|||
return wlsAbsSpectrumFileName; |
|||
} |
|||
|
|||
|
|||
G4int Parameters::NumberOfWlsAbsEnergies() |
|||
{ |
|||
return numberOfWlsAbsEnergies; |
|||
} |
|||
|
|||
|
|||
char* Parameters::WlsEmissionSpectrumFileName() |
|||
{ |
|||
return wlsEmissionSpectrumFileName; |
|||
} |
|||
|
|||
|
|||
G4int Parameters::NumberOfWlsEmissionEnergies() |
|||
{ |
|||
return numberOfWlsEmissionEnergies; |
|||
} |
|||
|
|||
|
|||
G4double Parameters::ScintillationYield() |
|||
{ |
|||
return scintillationYield; |
|||
} |
|||
|
|||
|
|||
G4double Parameters::ResolutionScale() |
|||
{ |
|||
return resolutionScale; |
|||
} |
|||
|
|||
|
|||
G4double Parameters::DecayTimeFast() |
|||
{ |
|||
return decayTimeFast; |
|||
} |
|||
|
|||
|
|||
G4double Parameters::DecayTimeSlow() |
|||
{ |
|||
return decayTimeSlow; |
|||
} |
|||
|
|||
|
|||
G4double Parameters::YieldRatio() |
|||
{ |
|||
return yieldRatio; |
|||
} |
|||
|
|||
|
|||
G4double Parameters::BirksConstant() |
|||
{ |
|||
return birksConstant; |
|||
} |
|||
|
|||
|
|||
G4double Parameters::WlsDecayTime() |
|||
{ |
|||
return wlsDecayTime; |
|||
} |
|||
|
|||
|
|||
char* Parameters::RefractiveIndexVacuum() |
|||
{ |
|||
return refractiveIndexVacuum; |
|||
} |
|||
|
|||
|
|||
char* Parameters::RefractiveIndexCore() |
|||
{ |
|||
return refractiveIndexCore; |
|||
} |
|||
|
|||
|
|||
char* Parameters::RefractiveIndexClad1() |
|||
{ |
|||
return refractiveIndexClad1; |
|||
} |
|||
|
|||
|
|||
char* Parameters::RefractiveIndexClad2() |
|||
{ |
|||
return refractiveIndexClad2; |
|||
} |
|||
|
|||
|
|||
char* Parameters::AbsorptionCore() |
|||
{ |
|||
return absorptionCore; |
|||
} |
|||
|
|||
|
|||
char* Parameters::AbsorptionClad1() |
|||
{ |
|||
return absorptionClad1; |
|||
} |
|||
|
|||
|
|||
char* Parameters::AbsorptionClad2() |
|||
{ |
|||
return absorptionClad2; |
|||
} |
|||
|
|||
|
|||
char* Parameters::AbsorptionFromIrradiationCore() |
|||
{ |
|||
return absorptionFromIrradiationCore; |
|||
} |
|||
|
|||
|
|||
char* Parameters::AbsorptionFromIrradiationClad1() |
|||
{ |
|||
return absorptionFromIrradiationClad1; |
|||
} |
|||
|
|||
|
|||
char* Parameters::AbsorptionFromIrradiationClad2() |
|||
{ |
|||
return absorptionFromIrradiationClad1; |
|||
} |
|||
|
|||
|
|||
char* Parameters::SectionsFileName() |
|||
{ |
|||
return sectionsFileName; |
|||
} |
|||
|
|||
|
|||
G4int Parameters::NumberOfSections() |
|||
{ |
|||
return numberOfSections; |
|||
} |
|||
|
|||
|
|||
char* Parameters::RayleighCore() |
|||
{ |
|||
return rayleighCore; |
|||
} |
|||
|
|||
|
|||
char* Parameters::RayleighClad1() |
|||
{ |
|||
return rayleighClad1; |
|||
} |
|||
|
|||
|
|||
char* Parameters::RayleighClad2() |
|||
{ |
|||
return rayleighClad2; |
|||
} |
|||
|
|||
|
|||
const G4double Parameters::hcPERe = 1.239842e-6; // unit: V*m
|
@ -0,0 +1,68 @@ |
|||
// Written by Mirco DECKENHOFF based on
|
|||
//
|
|||
// $Id: PhysicsList.cc,v 1.17 2009/11/10 05:16:23 gum Exp $
|
|||
//
|
|||
//
|
|||
// modified by Peter Stromberger
|
|||
// modified by Bastian Rössler
|
|||
|
|||
#include "PhysicsList.hh"
|
|||
|
|||
#include "G4EmStandardPhysics.hh"
|
|||
#include "G4DecayPhysics.hh"
|
|||
#include "G4OpticalPhysics.hh"
|
|||
#include "G4ProcessManager.hh"
|
|||
#include "G4ParticleTypes.hh"
|
|||
#include "G4hIonisation.hh"
|
|||
|
|||
#include "Parameters.hh"
|
|||
|
|||
#include "G4SystemOfUnits.hh"
|
|||
|
|||
PhysicsList::PhysicsList() : G4VModularPhysicsList() |
|||
{ |
|||
// default cut value (1.0mm)
|
|||
defaultCutValue = 1.0*mm; |
|||
|
|||
// * EM Physics
|
|||
RegisterPhysics( new G4EmStandardPhysics() ); |
|||
|
|||
|
|||
// * Optical Physics
|
|||
G4OpticalPhysics* opticalPhysics = new G4OpticalPhysics(); |
|||
RegisterPhysics( opticalPhysics ); |
|||
|
|||
// adjust some parameters for the optical physics
|
|||
opticalPhysics->SetWLSTimeProfile("exponential"); |
|||
|
|||
opticalPhysics->SetScintillationYieldFactor(1.0); |
|||
opticalPhysics->SetScintillationExcitationRatio(Parameters::GetInstance()->YieldRatio()); |
|||
|
|||
opticalPhysics->SetMaxNumPhotonsPerStep(100); |
|||
opticalPhysics->SetMaxBetaChangePerStep(10.0); |
|||
|
|||
// opticalPhysics->SetTrackSecondariesFirst(true);
|
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
void PhysicsList::ConstructParticle() |
|||
{ |
|||
// Constructs all paricles
|
|||
G4VModularPhysicsList::ConstructParticle(); |
|||
} |
|||
|
|||
|
|||
|
|||
void PhysicsList::SetCuts() |
|||
{ |
|||
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
|
|||
// the default cut value for all particle types
|
|||
//
|
|||
SetCutsWithDefault(); |
|||
|
|||
if (verboseLevel>0) |
|||
DumpCutValuesTable(); |
|||
} |
|||
|
@ -0,0 +1,68 @@ |
|||
// Written by Mirco DECKENHOFF based on |
|||
// |
|||
// $Id: PhysicsList.cc,v 1.17 2009/11/10 05:16:23 gum Exp $ |
|||
// |
|||
// |
|||
// modified by Peter Stromberger |
|||
// modified by Bastian Rössler |
|||
|
|||
#include "PhysicsList.hh" |
|||
|
|||
#include "G4EmStandardPhysics.hh" |
|||
#include "G4DecayPhysics.hh" |
|||
#include "G4OpticalPhysics.hh" |
|||
#include "G4ProcessManager.hh" |
|||
#include "G4ParticleTypes.hh" |
|||
#include "G4hIonisation.hh" |
|||
|
|||
#include "Parameters.hh" |
|||
|
|||
#include "G4SystemOfUnits.hh" |
|||
|
|||
PhysicsList::PhysicsList() : G4VModularPhysicsList() |
|||
{ |
|||
// default cut value (1.0mm) |
|||
defaultCutValue = 1.0*mm; |
|||
|
|||
// * EM Physics |
|||
RegisterPhysics( new G4EmStandardPhysics() ); |
|||
|
|||
/* |
|||
// * Optical Physics |
|||
G4OpticalPhysics* opticalPhysics = new G4OpticalPhysics(); |
|||
RegisterPhysics( opticalPhysics ); |
|||
|
|||
// adjust some parameters for the optical physics |
|||
opticalPhysics->SetWLSTimeProfile("exponential"); |
|||
|
|||
opticalPhysics->SetScintillationYieldFactor(1.0); |
|||
opticalPhysics->SetScintillationExcitationRatio(Parameters::GetInstance()->YieldRatio()); |
|||
|
|||
opticalPhysics->SetMaxNumPhotonsPerStep(100); |
|||
opticalPhysics->SetMaxBetaChangePerStep(10.0); |
|||
*/ |
|||
// opticalPhysics->SetTrackSecondariesFirst(true); |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
void PhysicsList::ConstructParticle() |
|||
{ |
|||
// Constructs all paricles |
|||
G4VModularPhysicsList::ConstructParticle(); |
|||
} |
|||
|
|||
|
|||
|
|||
void PhysicsList::SetCuts() |
|||
{ |
|||
// " G4VUserPhysicsList::SetCutsWithDefault" method sets |
|||
// the default cut value for all particle types |
|||
// |
|||
SetCutsWithDefault(); |
|||
|
|||
if (verboseLevel>0) |
|||
DumpCutValuesTable(); |
|||
} |
|||
|
@ -0,0 +1,88 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
// modified by Bastian Rössler
|
|||
|
|||
#include "PrimaryGeneratorAction.hh"
|
|||
#include "G4Event.hh"
|
|||
#include "G4ParticleGun.hh"
|
|||
#include "G4GeneralParticleSource.hh"
|
|||
#include "G4ParticleTable.hh"
|
|||
#include "G4ParticleDefinition.hh"
|
|||
#include "Randomize.hh"
|
|||
#include "Analysis.hh"
|
|||
#include "G4SystemOfUnits.hh"
|
|||
|
|||
#include "G4RunManager.hh"
|
|||
|
|||
PrimaryGeneratorAction::PrimaryGeneratorAction() |
|||
{ |
|||
gun = InitializeGPS(); |
|||
} |
|||
|
|||
void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) |
|||
{ |
|||
gun->GeneratePrimaryVertex(anEvent); |
|||
|
|||
G4double runID = (G4double) G4RunManager::GetRunManager()->GetCurrentRun()->GetRunID(); |
|||
G4double eventID = (G4double) anEvent->GetEventID(); |
|||
G4double energy = (G4double) gun->GetParticleEnergy(); |
|||
G4double xMom = (G4double) gun->GetParticleMomentumDirection()[0]; |
|||
G4double yMom = (G4double) gun->GetParticleMomentumDirection()[1]; |
|||
G4double zMom = (G4double) gun->GetParticleMomentumDirection()[2]; |
|||
|
|||
Analysis::GetInstance()->FillInitialParticle(runID, eventID, energy, xMom, yMom, zMom); |
|||
|
|||
// Necessery?
|
|||
Analysis::GetInstance()->SetGpsPosition(gun->GetParticlePosition()); |
|||
Analysis::GetInstance()->SetGpsDirection(gun->GetParticleMomentumDirection()); |
|||
} |
|||
|
|||
PrimaryGeneratorAction::~PrimaryGeneratorAction() |
|||
{ |
|||
delete gun; |
|||
} |
|||
|
|||
G4GeneralParticleSource* PrimaryGeneratorAction::GetGun() |
|||
{ |
|||
return gun; |
|||
} |
|||
|
|||
G4GeneralParticleSource* PrimaryGeneratorAction::InitializeGPS() |
|||
{ |
|||
G4GeneralParticleSource * gps = new G4GeneralParticleSource(); |
|||
return gps; |
|||
} |
|||
|
|||
|
|||
void PrimaryGeneratorAction::SetOptPhotonPolar() |
|||
{ |
|||
G4double angle = G4UniformRand() * 360.0*deg; |
|||
SetOptPhotonPolar(angle); |
|||
} |
|||
|
|||
|
|||
void PrimaryGeneratorAction::SetOptPhotonPolar(G4double angle) |
|||
{ |
|||
if (gun->GetParticleDefinition()->GetParticleName() != "opticalphoton") |
|||
{ |
|||
G4cout << "--> warning from PrimaryGeneratorAction::SetOptPhotonPolar() :" |
|||
"the particleGun is not an opticalphoton" << G4endl; |
|||
return; |
|||
} |
|||
|
|||
G4ThreeVector normal (1., 0., 0.); |
|||
G4ThreeVector kphoton = gun->GetParticleMomentumDirection(); |
|||
G4ThreeVector product = normal.cross(kphoton); |
|||
G4double modul2 = product*product; |
|||
|
|||
G4ThreeVector e_perpend (0., 0., 1.); |
|||
|
|||
if (modul2 > 0.) |
|||
e_perpend = (1./std::sqrt(modul2))*product; |
|||
|
|||
G4ThreeVector e_paralle = e_perpend.cross(kphoton); |
|||
|
|||
G4ThreeVector polar = std::cos(angle)*e_paralle + std::sin(angle)*e_perpend; |
|||
gun->SetParticlePolarization(polar); |
|||
} |
|||
|
@ -0,0 +1,43 @@ |
|||
// Written by Mirco DECKENHOFF
|
|||
// based on
|
|||
// $Id: RunAction.cc,v 1.10 2006/06/29 17:54:31 gunter Exp $
|
|||
// GEANT4 tag $Name: geant4-09-01-ref-02 $
|
|||
//
|
|||
// modified by Bastian Rössler
|
|||
|
|||
#include "G4Timer.hh"
|
|||
|
|||
#include "RunAction.hh"
|
|||
|
|||
#include "G4Run.hh"
|
|||
|
|||
#include "Analysis.hh"
|
|||
|
|||
|
|||
RunAction::RunAction() |
|||
{ |
|||
timer = new G4Timer; |
|||
} |
|||
|
|||
|
|||
RunAction::~RunAction() |
|||
{ |
|||
delete timer; |
|||
} |
|||
|
|||
|
|||
void RunAction::BeginOfRunAction(const G4Run* aRun) |
|||
{ |
|||
G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; |
|||
timer->Start(); |
|||
Analysis::GetInstance()->PrepareNewRun(aRun); |
|||
G4cout << "Analysis Instance Address: " << Analysis::GetInstance() << G4endl; |
|||
} |
|||
|
|||
|
|||
void RunAction::EndOfRunAction(const G4Run* aRun) |
|||
{ |
|||
timer->Stop(); |
|||
G4cout << "number of event = " << aRun->GetNumberOfEvent() << " \t" << *timer << G4endl; |
|||
Analysis::GetInstance()->EndOfRun(/*aRun*/); |
|||
} |
@ -0,0 +1,90 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
// modified by Bastian Rössler
|
|||
|
|||
|
|||
#include "SensitiveDetector.hh"
|
|||
#include "G4TouchableHistory.hh"
|
|||
#include "G4Step.hh"
|
|||
#include "G4HCofThisEvent.hh"
|
|||
#include "G4HCtable.hh"
|
|||
#include "G4UnitsTable.hh"
|
|||
#include "G4VProcess.hh"
|
|||
#include "G4ParticleTypes.hh"
|
|||
#include "Analysis.hh"
|
|||
#include "G4UIcommand.hh"
|
|||
#include "G4EventManager.hh"
|
|||
#include "G4RunManager.hh"
|
|||
|
|||
|
|||
|
|||
SensitiveDetector::SensitiveDetector(G4String SDname): G4VSensitiveDetector(SDname){} |
|||
|
|||
SensitiveDetector::~SensitiveDetector(){} |
|||
|
|||
G4bool SensitiveDetector::ProcessHits(G4Step * step, G4TouchableHistory *) |
|||
{ |
|||
G4TouchableHandle touchable = step->GetPreStepPoint()->GetTouchableHandle(); |
|||
|
|||
/* ++ particle is at geometry boundary and an optical photon (for SiPM) ++ */ |
|||
if(step->GetPreStepPoint()->GetStepStatus() == fGeomBoundary |
|||
&& step->GetTrack()->GetDefinition() == G4OpticalPhoton::OpticalPhotonDefinition()) |
|||
{ |
|||
if(step->GetStepLength() != 0) // Avoid division by zero and counting reflected photons
|
|||
{ |
|||
G4int creatorProcessId = 0; |
|||
|
|||
if(step->GetTrack()->GetCreatorProcess()->GetProcessName() == "Scintillation") |
|||
creatorProcessId = 1; |
|||
|
|||
if (step->GetTrack()->GetCreatorProcess()->GetProcessName() == "Cerenkov") |
|||
creatorProcessId = 2; |
|||
|
|||
if (step->GetTrack()->GetCreatorProcess()->GetProcessName() == "OpWLS") |
|||
creatorProcessId = 3; |
|||
|
|||
G4double myRunID = (G4double) G4RunManager::GetRunManager()->GetCurrentRun()->GetRunID(); |
|||
|
|||
G4double myEventID = (G4double) G4EventManager::GetEventManager()->GetConstCurrentEvent()->GetEventID(); |
|||
|
|||
G4double myDetectorID = G4UIcommand::ConvertToDouble((G4String) |
|||
(step->GetPreStepPoint()->GetPhysicalVolume()->GetName()).substr(17,3)); |
|||
|
|||
G4double xPixel = G4UIcommand::ConvertToDouble((G4String) |
|||
(step->GetPreStepPoint()->GetPhysicalVolume()->GetName()).substr(20,2)); |
|||
|
|||
G4double yPixel = G4UIcommand::ConvertToDouble((G4String) |
|||
(step->GetPreStepPoint()->GetPhysicalVolume()->GetName()).substr(22,2)); |
|||
|
|||
Analysis::GetInstance()->FillDetectedPhotons(myRunID, |
|||
myEventID, |
|||
myDetectorID, |
|||
xPixel, |
|||
yPixel, |
|||
step->GetTrack()->GetTotalEnergy()*1e6, |
|||
step->GetTrack()->GetLocalTime()-step->GetDeltaTime(), |
|||
step->GetTrack()->GetTrackLength()-step->GetStepLength(), |
|||
step->GetTrack()->GetGlobalTime()-step->GetDeltaTime(), |
|||
step->GetTrack()->GetPosition()[0]-step->GetDeltaPosition()[0], |
|||
step->GetTrack()->GetPosition()[1]-step->GetDeltaPosition()[1], |
|||
step->GetTrack()->GetPosition()[2]-step->GetDeltaPosition()[2], |
|||
step->GetDeltaPosition()[0]/step->GetStepLength(), |
|||
step->GetDeltaPosition()[1]/step->GetStepLength(), |
|||
step->GetDeltaPosition()[2]/step->GetStepLength(), |
|||
step->GetTrack()->GetVertexPosition()[0], |
|||
step->GetTrack()->GetVertexPosition()[1], |
|||
step->GetTrack()->GetVertexPosition()[2], |
|||
step->GetTrack()->GetVertexMomentumDirection()[0], |
|||
step->GetTrack()->GetVertexMomentumDirection()[1], |
|||
step->GetTrack()->GetVertexMomentumDirection()[2], |
|||
step->GetTrack()->GetTrackID(), |
|||
creatorProcessId, |
|||
step->GetTrack()->GetParentID()); |
|||
} |
|||
|
|||
// Also kill reflected photons to avoid many reflections without detection
|
|||
step->GetTrack()->SetTrackStatus(fKillTrackAndSecondaries); |
|||
} |
|||
|
|||
return true; |
|||
} |
@ -0,0 +1,91 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
// modified by Bastian Rössler
|
|||
|
|||
|
|||
#include "StackingAction.hh"
|
|||
|
|||
#include "G4ParticleDefinition.hh"
|
|||
#include "G4ParticleTypes.hh"
|
|||
#include "G4Track.hh"
|
|||
#include "G4ios.hh"
|
|||
|
|||
#include "G4VProcess.hh"
|
|||
|
|||
#include "Analysis.hh"
|
|||
|
|||
|
|||
#include "G4EventManager.hh"
|
|||
#include "G4RunManager.hh"
|
|||
|
|||
StackingAction::StackingAction(): gammaCounter(0){} |
|||
|
|||
|
|||
StackingAction::~StackingAction(){} |
|||
|
|||
|
|||
G4ClassificationOfNewTrack StackingAction::ClassifyNewTrack(const G4Track * aTrack) |
|||
{ |
|||
/* ++ StackingAction for optical photons ++ */ |
|||
if(aTrack->GetDefinition() == G4OpticalPhoton::OpticalPhotonDefinition()) |
|||
{ |
|||
Analysis::GetInstance()->IncreaseReflectionRefractionAndScatteringVectors(aTrack->GetTrackID()); |
|||
Analysis::GetInstance()->IncreaseLengthVectors(aTrack->GetTrackID()); |
|||
|
|||
if(aTrack->GetParentID()>0) // particle is secondary
|
|||
{ |
|||
gammaCounter++; |
|||
G4int creatorProcessId = 0; |
|||
|
|||
if(aTrack->GetCreatorProcess()->GetProcessName() == "Scintillation") |
|||
creatorProcessId = 1; |
|||
|
|||
if(aTrack->GetCreatorProcess()->GetProcessName() == "Cerenkov") |
|||
creatorProcessId = 2; |
|||
|
|||
if(aTrack->GetCreatorProcess()->GetProcessName() == "OpWLS") |
|||
creatorProcessId = 3; |
|||
|
|||
if (aTrack->GetCreatorProcess()) |
|||
AddProcess(aTrack->GetCreatorProcess());// classify here
|
|||
} |
|||
} |
|||
/* ++ End of StackingAction of optical photons ++ */ |
|||
|
|||
return fUrgent; |
|||
} |
|||
|
|||
|
|||
void StackingAction::NewStage() |
|||
{ |
|||
G4cout << "Number of optical photons produced in this event : " << gammaCounter << G4endl << G4endl; |
|||
|
|||
for(ProcMap::iterator it=procs.begin() ; it!=procs.end() ; ++it) |
|||
G4cout << " Process " << it->first->GetProcessName() << " generated " << it->second << " photons" << G4endl; |
|||
|
|||
G4cout<<G4endl; |
|||
} |
|||
|
|||
|
|||
void StackingAction::PrepareNewEvent() |
|||
{ |
|||
gammaCounter = 0; |
|||
Reset(); |
|||
} |
|||
|
|||
|
|||
void StackingAction::AddProcess(const G4VProcess * p) |
|||
{ |
|||
ProcMap::iterator it = procs.find(p); |
|||
|
|||
if (it!=procs.end()) |
|||
it->second++; |
|||
else |
|||
procs[p]=1; |
|||
} |
|||
|
|||
void StackingAction::Reset() |
|||
{ |
|||
for (ProcMap::iterator it = procs.begin() ; it!=procs.end() ; ++it) |
|||
it->second=0; |
|||
} |
@ -0,0 +1,211 @@ |
|||
// Written by Peter Stromberger
|
|||
// based on work of Mirco Deckenhoff
|
|||
// modified by Bastian Rössler
|
|||
|
|||
|
|||
#include "SteppingAction.hh"
|
|||
#include "G4Step.hh"
|
|||
#include "G4VTouchable.hh"
|
|||
#include "G4SteppingManager.hh"
|
|||
#include "G4UnitsTable.hh"
|
|||
#include "G4ParticleTypes.hh"
|
|||
#include "G4ProcessManager.hh"
|
|||
#include "G4VProcess.hh"
|
|||
#include "G4ProcessVector.hh"
|
|||
#include "EventAction.hh"
|
|||
#include <string>
|
|||
#include "Parameters.hh"
|
|||
#include "Analysis.hh"
|
|||
#include "G4RunManager.hh"
|
|||
#include "Randomize.hh"
|
|||
#include "G4SystemOfUnits.hh"
|
|||
|
|||
|
|||
SteppingAction::SteppingAction(EventAction* eventAction, PrimaryGeneratorAction* p) |
|||
{ |
|||
creatorProcess = -1; |
|||
fEventAction = eventAction; |
|||
pGA = p; |
|||
} |
|||
|
|||
SteppingAction::~SteppingAction(){} |
|||
|
|||
void SteppingAction::UserSteppingAction( const G4Step * step ) |
|||
{ |
|||
|
|||
primDefinition = (pGA->GetGun())->GetParticleDefinition(); |
|||
primParticle = (primDefinition->GetParticleName()).c_str(); |
|||
|
|||
/* ++ SteppingAction for optical photons ++ */ |
|||
if(step->GetTrack()->GetDefinition() == G4OpticalPhoton::OpticalPhotonDefinition()) |
|||
{ |
|||
G4int trackId = step->GetTrack()->GetTrackID(); |
|||
G4double stepLength = step->GetStepLength(); |
|||
|
|||
G4String prePhysicalVolumeName = step->GetPreStepPoint()->GetPhysicalVolume()->GetName(); |
|||
G4String postPhysicalVolumeName = ""; |
|||
|
|||
// PostStep does only exist if the particle is not exiting the EpoxyBox volume!
|
|||
if(step->GetTrack()->GetTrackStatus() != fStopAndKill) |
|||
postPhysicalVolumeName = step->GetPostStepPoint()->GetPhysicalVolume()->GetName(); |
|||
|
|||
|
|||
// Kill photons at fibre surface
|
|||
// Count the reflections and refractions
|
|||
|
|||
if(step->GetPostStepPoint()->GetStepStatus()==fGeomBoundary) |
|||
{ |
|||
if(postPhysicalVolumeName == "EpoxyBox" && prePhysicalVolumeName.substr(0,9) == "Cladding2") |
|||
{ |
|||
if(Parameters::GetInstance()->ProbabilityOfPhotonLossAtSurface() == 1) |
|||
step->GetTrack()->SetTrackStatus(fStopAndKill); |
|||
|
|||
if(Parameters::GetInstance()->ProbabilityOfPhotonLossAtSurface() < 1 |
|||
&& Parameters::GetInstance()->ProbabilityOfPhotonLossAtSurface() > 0) |
|||
{ |
|||
G4double randomNumber = CLHEP::RandFlat::shoot(); |
|||
|
|||
if(Parameters::GetInstance()->ProbabilityOfPhotonLossAtSurface() < randomNumber) |
|||
{ |
|||
if (step->GetStepLength() > 0) |
|||
Analysis::GetInstance()->IncreaseReflectionsAtFibreSurface(trackId); |
|||
} |
|||
else |
|||
step->GetTrack()->SetTrackStatus(fStopAndKill); |
|||
} |
|||
|
|||
if (step->GetStepLength() > 0) |
|||
Analysis::GetInstance()->IncreaseReflectionsAtFibreSurface(trackId); |
|||
} |
|||
if(postPhysicalVolumeName == "Mirror") |
|||
Analysis::GetInstance()->IncreaseReflectionsAtMirror(trackId); |
|||
|
|||
|
|||
// Retrieve status of the photon boundary process
|
|||
|
|||
|
|||
G4OpBoundaryProcessStatus theBoundaryStatus = Undefined; |
|||
|
|||
G4ProcessManager* OpManager = G4OpticalPhoton::OpticalPhoton()->GetProcessManager(); |
|||
|
|||
if(OpManager) |
|||
{ |
|||
G4int MAXofPostStepLoops = OpManager->GetPostStepProcessVector()->entries(); |
|||
G4ProcessVector* fPostStepDoItVector = OpManager->GetPostStepProcessVector(typeDoIt); |
|||
|
|||
for(G4int i = 0; i<MAXofPostStepLoops; i++) |
|||
{ |
|||
G4VProcess* fCurrentProcess = (*fPostStepDoItVector)[i]; |
|||
opBoundaryProcess = dynamic_cast<G4OpBoundaryProcess*>(fCurrentProcess); |
|||
|
|||
if(opBoundaryProcess) |
|||
{ |
|||
theBoundaryStatus = opBoundaryProcess->GetStatus(); |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
|
|||
if(theBoundaryStatus != Undefined) |
|||
{ |
|||
if((prePhysicalVolumeName.substr(0,9) == "Cladding1" && postPhysicalVolumeName.substr(0,9) == "Cladding2") |
|||
|| (prePhysicalVolumeName.substr(0,9) == "Cladding2" && postPhysicalVolumeName.substr(0,9) == "Cladding1")) |
|||
{ |
|||
if(theBoundaryStatus == TotalInternalReflection) |
|||
Analysis::GetInstance()->IncreaseTotalReflectionsAtCladCladInterface(trackId); |
|||
|
|||
if(theBoundaryStatus == FresnelReflection) |
|||
Analysis::GetInstance()->IncreaseFresnelReflectionsAtCladCladInterface(trackId); |
|||
|
|||
if(theBoundaryStatus == FresnelRefraction) |
|||
Analysis::GetInstance()->IncreaseRefractionsAtCladCladInterface(trackId); |
|||
} |
|||
|
|||
if ((prePhysicalVolumeName.substr(0,4) == "Core" && postPhysicalVolumeName.substr(0,9) == "Cladding1") |
|||
|| (prePhysicalVolumeName.substr(0,9) == "Cladding1" && postPhysicalVolumeName.substr(0,9) == "Core")) |
|||
{ |
|||
if(theBoundaryStatus == TotalInternalReflection) |
|||
Analysis::GetInstance()->IncreaseTotalReflectionsAtCoreCladInterface(trackId); |
|||
|
|||
if(theBoundaryStatus == FresnelReflection) |
|||
Analysis::GetInstance()->IncreaseFresnelReflectionsAtCoreCladInterface(trackId); |
|||
|
|||
if(theBoundaryStatus == FresnelRefraction) |
|||
Analysis::GetInstance()->IncreaseRefractionsAtCoreCladInterface(trackId); |
|||
} |
|||
} |
|||
} |
|||
else // Check for Rayleigh scattering
|
|||
if (step->GetDeltaMomentum()[0] != 0 || step->GetDeltaMomentum()[1] != 0 || step->GetDeltaMomentum()[2] != 0) |
|||
Analysis::GetInstance()->IncreaseRayleighScatterings(trackId); |
|||
|
|||
|
|||
// Store length per volume
|
|||
|
|||
if (prePhysicalVolumeName.substr(0,4) == "Core") |
|||
Analysis::GetInstance()->IncreaseLengthInCore(trackId,stepLength); |
|||
|
|||
if (prePhysicalVolumeName.substr(0,9) == "Cladding1") |
|||
Analysis::GetInstance()->IncreaseLengthInInnerCladding(trackId,stepLength); |
|||
|
|||
if (prePhysicalVolumeName.substr(0,9) == "Cladding2") |
|||
Analysis::GetInstance()->IncreaseLengthInOuterCladding(trackId,stepLength); |
|||
|
|||
|
|||
|
|||
// Store photons killed by OpWLS process, if not primary particle
|
|||
|
|||
if(step->GetTrack()->GetParentID() > 0 && step->GetTrack()->GetTrackStatus() == fStopAndKill && step->GetSecondary()->size() == 1) |
|||
{ |
|||
G4int creatorProcessId = 0; |
|||
|
|||
if(step->GetTrack()->GetCreatorProcess()->GetProcessName() == "Scintillation") |
|||
creatorProcessId = 1; |
|||
|
|||
if(step->GetTrack()->GetCreatorProcess()->GetProcessName() == "Cerenkov") |
|||
creatorProcessId = 2; |
|||
|
|||
if(step->GetTrack()->GetCreatorProcess()->GetProcessName() == "OpWLS") |
|||
creatorProcessId = 3; |
|||
} |
|||
|
|||
|
|||
|
|||
} |
|||
/* ++ End of SteppingAction of optical photons. ++ */ |
|||
|
|||
|
|||
/* ++ SteppingAction for electrons and muon ++ */ |
|||
if((step->GetTrack()->GetDefinition() == primDefinition)) |
|||
{ |
|||
G4double runID = (G4double) G4RunManager::GetRunManager()->GetCurrentRun()->GetRunID(); |
|||
G4double eventID = (G4double) G4EventManager::GetEventManager()->GetConstCurrentEvent()->GetEventID(); |
|||
|
|||
Analysis::GetInstance()->FillPrimaryParticleTrack(runID, |
|||
eventID, |
|||
step->GetTrack()->GetPosition()[0], |
|||
step->GetTrack()->GetPosition()[1], |
|||
step->GetTrack()->GetPosition()[2]); |
|||
|
|||
G4String prePhysicalVolumeName = step->GetPreStepPoint()->GetPhysicalVolume()->GetName(); |
|||
if (prePhysicalVolumeName.substr(0,4) == "Core") |
|||
{ |
|||
G4double edep = step->GetTotalEnergyDeposit(); |
|||
G4double stepLength = step->GetStepLength(); |
|||
|
|||
fEventAction->AddCore(edep, stepLength); |
|||
} |
|||
|
|||
if (prePhysicalVolumeName == "Trigger") |
|||
{ |
|||
G4double edep = step->GetTotalEnergyDeposit(); |
|||
Analysis::GetInstance()->FillTrigger(runID, |
|||
eventID, |
|||
edep, |
|||
step->GetTrack()->GetPosition()[0], |
|||
step->GetTrack()->GetPosition()[1], |
|||
step->GetTrack()->GetPosition()[2]); |
|||
} |
|||
} |
|||
/* ++ End of SteppingAction for electrons and muon ++ */ |
|||
} |
@ -0,0 +1,221 @@ |
|||
// Written by Peter Stromberger |
|||
// based on work of Mirco Deckenhoff |
|||
// modified by Bastian Rössler |
|||
|
|||
|
|||
#include "SteppingAction.hh" |
|||
#include "G4Step.hh" |
|||
#include "G4VTouchable.hh" |
|||
#include "G4SteppingManager.hh" |
|||
#include "G4UnitsTable.hh" |
|||
#include "G4ParticleTypes.hh" |
|||
#include "G4ProcessManager.hh" |
|||
#include "G4VProcess.hh" |
|||
#include "G4ProcessVector.hh" |
|||
#include "EventAction.hh" |
|||
#include <string> |
|||
#include "Parameters.hh" |
|||
#include "Analysis.hh" |
|||
#include "G4RunManager.hh" |
|||
#include "Randomize.hh" |
|||
#include "G4SystemOfUnits.hh" |
|||
|
|||
|
|||
SteppingAction::SteppingAction(EventAction* eventAction, PrimaryGeneratorAction* p) |
|||
{ |
|||
creatorProcess = -1; |
|||
fEventAction = eventAction; |
|||
pGA = p; |
|||
} |
|||
|
|||
SteppingAction::~SteppingAction(){} |
|||
|
|||
void SteppingAction::UserSteppingAction( const G4Step * step ) |
|||
{ |
|||
|
|||
primDefinition = (pGA->GetGun())->GetParticleDefinition(); |
|||
primParticle = (primDefinition->GetParticleName()).c_str(); |
|||
|
|||
/* ++ SteppingAction for optical photons ++ */ |
|||
if(step->GetTrack()->GetDefinition() == G4OpticalPhoton::OpticalPhotonDefinition()) |
|||
{ |
|||
G4int trackId = step->GetTrack()->GetTrackID(); |
|||
G4double stepLength = step->GetStepLength(); |
|||
|
|||
G4String prePhysicalVolumeName = step->GetPreStepPoint()->GetPhysicalVolume()->GetName(); |
|||
G4String postPhysicalVolumeName = ""; |
|||
|
|||
// PostStep does only exist if the particle is not exiting the EpoxyBox volume! |
|||
if(step->GetTrack()->GetTrackStatus() != fStopAndKill) |
|||
postPhysicalVolumeName = step->GetPostStepPoint()->GetPhysicalVolume()->GetName(); |
|||
|
|||
|
|||
// Kill photons at fibre surface |
|||
// Count the reflections and refractions |
|||
|
|||
if(step->GetPostStepPoint()->GetStepStatus()==fGeomBoundary) |
|||
{ |
|||
if(postPhysicalVolumeName == "EpoxyBox" && prePhysicalVolumeName.substr(0,9) == "Cladding2") |
|||
{ |
|||
if(Parameters::GetInstance()->ProbabilityOfPhotonLossAtSurface() == 1) |
|||
step->GetTrack()->SetTrackStatus(fStopAndKill); |
|||
|
|||
if(Parameters::GetInstance()->ProbabilityOfPhotonLossAtSurface() < 1 |
|||
&& Parameters::GetInstance()->ProbabilityOfPhotonLossAtSurface() > 0) |
|||
{ |
|||
G4double randomNumber = CLHEP::RandFlat::shoot(); |
|||
|
|||
if(Parameters::GetInstance()->ProbabilityOfPhotonLossAtSurface() < randomNumber) |
|||
{ |
|||
if (step->GetStepLength() > 0) |
|||
Analysis::GetInstance()->IncreaseReflectionsAtFibreSurface(trackId); |
|||
} |
|||
else |
|||
step->GetTrack()->SetTrackStatus(fStopAndKill); |
|||
} |
|||
|
|||
if (step->GetStepLength() > 0) |
|||
Analysis::GetInstance()->IncreaseReflectionsAtFibreSurface(trackId); |
|||
} |
|||
if(postPhysicalVolumeName == "Mirror") |
|||
Analysis::GetInstance()->IncreaseReflectionsAtMirror(trackId); |
|||
|
|||
|
|||
// Retrieve status of the photon boundary process |
|||
|
|||
|
|||
G4OpBoundaryProcessStatus theBoundaryStatus = Undefined; |
|||
|
|||
G4ProcessManager* OpManager = G4OpticalPhoton::OpticalPhoton()->GetProcessManager(); |
|||
|
|||
if(OpManager) |
|||
{ |
|||
G4int MAXofPostStepLoops = OpManager->GetPostStepProcessVector()->entries(); |
|||
G4ProcessVector* fPostStepDoItVector = OpManager->GetPostStepProcessVector(typeDoIt); |
|||
|
|||
for(G4int i = 0; i<MAXofPostStepLoops; i++) |
|||
{ |
|||
G4VProcess* fCurrentProcess = (*fPostStepDoItVector)[i]; |
|||
opBoundaryProcess = dynamic_cast<G4OpBoundaryProcess*>(fCurrentProcess); |
|||
|
|||
if(opBoundaryProcess) |
|||
{ |
|||
theBoundaryStatus = opBoundaryProcess->GetStatus(); |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
|
|||
if(theBoundaryStatus != Undefined) |
|||
{ |
|||
if((prePhysicalVolumeName.substr(0,9) == "Cladding1" && postPhysicalVolumeName.substr(0,9) == "Cladding2") |
|||
|| (prePhysicalVolumeName.substr(0,9) == "Cladding2" && postPhysicalVolumeName.substr(0,9) == "Cladding1")) |
|||
{ |
|||
if(theBoundaryStatus == TotalInternalReflection) |
|||
Analysis::GetInstance()->IncreaseTotalReflectionsAtCladCladInterface(trackId); |
|||
|
|||
if(theBoundaryStatus == FresnelReflection) |
|||
Analysis::GetInstance()->IncreaseFresnelReflectionsAtCladCladInterface(trackId); |
|||
|
|||
if(theBoundaryStatus == FresnelRefraction) |
|||
Analysis::GetInstance()->IncreaseRefractionsAtCladCladInterface(trackId); |
|||
} |
|||
|
|||
if ((prePhysicalVolumeName.substr(0,4) == "Core" && postPhysicalVolumeName.substr(0,9) == "Cladding1") |
|||
|| (prePhysicalVolumeName.substr(0,9) == "Cladding1" && postPhysicalVolumeName.substr(0,9) == "Core")) |
|||
{ |
|||
if(theBoundaryStatus == TotalInternalReflection) |
|||
Analysis::GetInstance()->IncreaseTotalReflectionsAtCoreCladInterface(trackId); |
|||
|
|||
if(theBoundaryStatus == FresnelReflection) |
|||
Analysis::GetInstance()->IncreaseFresnelReflectionsAtCoreCladInterface(trackId); |
|||
|
|||
if(theBoundaryStatus == FresnelRefraction) |
|||
Analysis::GetInstance()->IncreaseRefractionsAtCoreCladInterface(trackId); |
|||
} |
|||
} |
|||
} |
|||
else // Check for Rayleigh scattering |
|||
if (step->GetDeltaMomentum()[0] != 0 || step->GetDeltaMomentum()[1] != 0 || step->GetDeltaMomentum()[2] != 0) |
|||
Analysis::GetInstance()->IncreaseRayleighScatterings(trackId); |
|||
|
|||
|
|||
// Store length per volume |
|||
|
|||
if (prePhysicalVolumeName.substr(0,4) == "Core") |
|||
Analysis::GetInstance()->IncreaseLengthInCore(trackId,stepLength); |
|||
|
|||
if (prePhysicalVolumeName.substr(0,9) == "Cladding1") |
|||
Analysis::GetInstance()->IncreaseLengthInInnerCladding(trackId,stepLength); |
|||
|
|||
if (prePhysicalVolumeName.substr(0,9) == "Cladding2") |
|||
Analysis::GetInstance()->IncreaseLengthInOuterCladding(trackId,stepLength); |
|||
|
|||
|
|||
|
|||
// Store photons killed by OpWLS process, if not primary particle |
|||
|
|||
if(step->GetTrack()->GetParentID() > 0 && step->GetTrack()->GetTrackStatus() == fStopAndKill && step->GetSecondary()->size() == 1) |
|||
{ |
|||
G4int creatorProcessId = 0; |
|||
|
|||
if(step->GetTrack()->GetCreatorProcess()->GetProcessName() == "Scintillation") |
|||
creatorProcessId = 1; |
|||
|
|||
if(step->GetTrack()->GetCreatorProcess()->GetProcessName() == "Cerenkov") |
|||
creatorProcessId = 2; |
|||
|
|||
if(step->GetTrack()->GetCreatorProcess()->GetProcessName() == "OpWLS") |
|||
creatorProcessId = 3; |
|||
} |
|||
|
|||
|
|||
// Radiation damage |
|||
dose = h_dose->GetBinContent(1,1 ); |
|||
dose = 0; |
|||
std::cout << step->GetTrack()->GetPosition().x() << " " << step->GetTrack()->GetPosition().y() << " " << step->GetTrack()->GetPosition().z() << " " << dose << "\n "; |
|||
|
|||
G4float attlength = 100.*1./(dose * 1.5*exp(9.412 -0.0256721 * 1240./(step->GetTrack()->GetTotalEnergy()/eV)) ); |
|||
double xf = G4UniformRand(); |
|||
//std::cout << xf << " " << attlength<< " " << 1240./(step->GetTrack()->GetTotalEnergy()/eV) << "\n"; |
|||
if(xf>(exp(-stepLength*cm/attlength)) ){ //randomly kill photon based on attenuation length |
|||
step->GetTrack()->SetTrackStatus(fStopAndKill);} |
|||
|
|||
} |
|||
/* ++ End of SteppingAction of optical photons. ++ */ |
|||
|
|||
|
|||
/* ++ SteppingAction for electrons and muon ++ */ |
|||
if((step->GetTrack()->GetDefinition() == primDefinition)) |
|||
{ |
|||
G4double runID = (G4double) G4RunManager::GetRunManager()->GetCurrentRun()->GetRunID(); |
|||
G4double eventID = (G4double) G4EventManager::GetEventManager()->GetConstCurrentEvent()->GetEventID(); |
|||
|
|||
Analysis::GetInstance()->FillPrimaryParticleTrack(runID, |
|||
eventID, |
|||
step->GetTrack()->GetPosition()[0], |
|||
step->GetTrack()->GetPosition()[1], |
|||
step->GetTrack()->GetPosition()[2]); |
|||
|
|||
G4String prePhysicalVolumeName = step->GetPreStepPoint()->GetPhysicalVolume()->GetName(); |
|||
if (prePhysicalVolumeName.substr(0,4) == "Core") |
|||
{ |
|||
G4double edep = step->GetTotalEnergyDeposit(); |
|||
G4double stepLength = step->GetStepLength(); |
|||
|
|||
fEventAction->AddCore(edep, stepLength); |
|||
} |
|||
|
|||
if (prePhysicalVolumeName == "Trigger") |
|||
{ |
|||
G4double edep = step->GetTotalEnergyDeposit(); |
|||
Analysis::GetInstance()->FillTrigger(runID, |
|||
eventID, |
|||
edep, |
|||
step->GetTrack()->GetPosition()[0], |
|||
step->GetTrack()->GetPosition()[1], |
|||
step->GetTrack()->GetPosition()[2]); |
|||
} |
|||
} |
|||
/* ++ End of SteppingAction for electrons and muon ++ */ |
|||
} |
Binary file not shown.
@ -0,0 +1,72 @@ |
|||
|
|||
{ |
|||
Double_t dosebig[25][30] = { |
|||
{ 1.34E+01, 1.45E+01, 7.95E+00, 5.45E+00, 4.17E+00, 3.37E+00, 2.81E+00, 2.55E+00, 2.24E+00, 2.02E+00, 1.83E+00, 1.68E+00, 1.55E+00, 1.43E+00, 1.34E+00, 1.28E+00, 1.20E+00, 1.15E+00, 1.06E+00, 9.75E-01, 9.35E-01, 8.60E-01, 7.95E-01, 7.45E-01, 6.85E-01, 6.20E-01, 5.80E-01, 5.20E-01, 4.96E-01, 4.65E-01} , |
|||
{ 7.20E+00, 6.20E+00, 4.64E+00, 3.47E+00, 2.68E+00, 2.28E+00, 1.98E+00, 1.66E+00, 1.50E+00, 1.38E+00, 1.27E+00, 1.16E+00, 1.04E+00, 9.85E-01, 9.15E-01, 8.95E-01, 8.45E-01, 7.75E-01, 7.25E-01, 6.95E-01, 6.60E-01, 6.00E-01, 5.40E-01, 5.30E-01, 4.66E-01, 4.20E-01, 3.99E-01, 3.64E-01, 3.33E-01, 2.90E-01} , |
|||
{ 2.74E+00, 2.55E+00, 2.23E+00, 2.04E+00, 1.65E+00, 1.47E+00, 1.29E+00, 1.25E+00, 1.06E+00, 9.70E-01, 8.85E-01, 8.50E-01, 7.75E-01, 7.20E-01, 6.75E-01, 6.65E-01, 6.10E-01, 5.65E-01, 5.50E-01, 5.10E-01, 4.74E-01, 4.51E-01, 4.06E-01, 3.80E-01, 3.75E-01, 3.16E-01, 2.86E-01, 2.72E-01, 2.54E-01, 1.89E-01} , |
|||
{ 1.57E+00, 1.39E+00, 1.31E+00, 1.30E+00, 1.12E+00, 1.06E+00, 9.55E-01, 8.70E-01, 8.30E-01, 7.90E-01, 6.95E-01, 6.45E-01, 6.10E-01, 5.65E-01, 5.50E-01, 4.86E-01, 5.10E-01, 4.66E-01, 4.30E-01, 4.41E-01, 3.89E-01, 3.59E-01, 3.20E-01, 3.35E-01, 2.98E-01, 2.73E-01, 2.67E-01, 2.27E-01, 2.10E-01, 1.54E-01} , |
|||
{ 1.00E+00, 9.00E-01, 9.10E-01, 9.15E-01, 8.25E-01, 8.00E-01, 7.40E-01, 6.75E-01, 6.65E-01, 5.80E-01, 5.35E-01, 5.10E-01, 4.60E-01, 4.58E-01, 4.09E-01, 3.93E-01, 3.78E-01, 3.63E-01, 3.52E-01, 3.49E-01, 2.88E-01, 2.78E-01, 2.64E-01, 2.56E-01, 2.44E-01, 2.23E-01, 2.21E-01, 1.97E-01, 1.73E-01, 1.37E-01} , |
|||
{ 6.60E-01, 6.20E-01, 6.10E-01, 6.30E-01, 5.95E-01, 5.65E-01, 5.55E-01, 5.10E-01, 4.96E-01, 4.92E-01, 4.90E-01, 3.97E-01, 4.07E-01, 3.47E-01, 3.38E-01, 3.10E-01, 2.93E-01, 2.92E-01, 2.65E-01, 2.65E-01, 2.40E-01, 2.48E-01, 2.06E-01, 2.10E-01, 2.40E-01, 1.98E-01, 1.85E-01, 1.89E-01, 1.38E-01, 1.34E-01} , |
|||
{ 4.83E-01, 4.77E-01, 4.60E-01, 4.75E-01, 4.39E-01, 4.12E-01, 4.47E-01, 4.00E-01, 3.78E-01, 3.65E-01, 3.43E-01, 3.31E-01, 2.85E-01, 3.22E-01, 2.85E-01, 2.54E-01, 2.53E-01, 2.49E-01, 2.48E-01, 2.20E-01, 2.17E-01, 1.95E-01, 1.99E-01, 1.80E-01, 1.75E-01, 1.68E-01, 1.77E-01, 1.51E-01, 1.37E-01, 1.10E-01} , |
|||
{ 3.89E-01, 3.67E-01, 3.61E-01, 3.74E-01, 3.70E-01, 3.45E-01, 3.45E-01, 3.11E-01, 2.97E-01, 3.11E-01, 2.93E-01, 2.65E-01, 2.68E-01, 2.23E-01, 2.11E-01, 2.26E-01, 2.18E-01, 1.97E-01, 1.97E-01, 1.88E-01, 1.97E-01, 1.72E-01, 1.66E-01, 1.75E-01, 1.44E-01, 1.60E-01, 1.41E-01, 1.40E-01, 1.05E-01, 1.19E-01} , |
|||
{ 3.18E-01, 2.54E-01, 3.06E-01, 2.89E-01, 2.74E-01, 2.80E-01, 2.57E-01, 2.59E-01, 2.51E-01, 2.45E-01, 2.62E-01, 2.36E-01, 2.15E-01, 2.12E-01, 1.96E-01, 2.12E-01, 1.78E-01, 1.75E-01, 1.69E-01, 1.64E-01, 1.64E-01, 1.62E-01, 1.53E-01, 1.49E-01, 1.47E-01, 1.49E-01, 1.42E-01, 1.20E-01, 1.01E-01, 9.00E-02} , |
|||
{ 2.75E-01, 2.51E-01, 2.24E-01, 2.69E-01, 2.34E-01, 2.28E-01, 2.30E-01, 1.96E-01, 2.08E-01, 2.27E-01, 2.09E-01, 1.91E-01, 2.14E-01, 1.79E-01, 1.79E-01, 2.05E-01, 1.79E-01, 1.58E-01, 1.88E-01, 1.49E-01, 1.57E-01, 1.30E-01, 1.32E-01, 1.39E-01, 1.32E-01, 1.18E-01, 1.34E-01, 1.05E-01, 9.65E-02, 8.65E-02} , |
|||
{ 2.35E-01, 2.34E-01, 2.27E-01, 2.17E-01, 2.41E-01, 2.21E-01, 2.01E-01, 1.87E-01, 2.04E-01, 1.85E-01, 1.75E-01, 1.69E-01, 1.79E-01, 1.92E-01, 1.56E-01, 1.79E-01, 1.78E-01, 1.41E-01, 1.45E-01, 1.41E-01, 1.36E-01, 1.44E-01, 1.11E-01, 1.24E-01, 1.13E-01, 1.29E-01, 1.02E-01, 9.30E-02, 9.65E-02, 8.40E-02} , |
|||
{ 1.89E-01, 1.72E-01, 1.94E-01, 1.94E-01, 2.07E-01, 2.42E-01, 2.02E-01, 1.80E-01, 1.80E-01, 1.54E-01, 1.60E-01, 1.67E-01, 1.57E-01, 1.39E-01, 1.57E-01, 1.46E-01, 1.62E-01, 1.35E-01, 1.29E-01, 1.32E-01, 1.25E-01, 1.13E-01, 1.05E-01, 1.02E-01, 1.12E-01, 9.75E-02, 8.85E-02, 9.10E-02, 7.35E-02, 9.00E-02} , |
|||
{ 1.56E-01, 1.40E-01, 1.52E-01, 1.70E-01, 1.55E-01, 1.48E-01, 1.54E-01, 1.61E-01, 1.58E-01, 1.54E-01, 1.34E-01, 1.43E-01, 1.40E-01, 1.41E-01, 1.26E-01, 1.17E-01, 1.20E-01, 1.05E-01, 1.11E-01, 1.06E-01, 1.03E-01, 9.50E-02, 1.02E-01, 8.65E-02, 9.45E-02, 9.35E-02, 7.05E-02, 6.70E-02, 7.55E-02, 5.80E-02} , |
|||
{ 1.50E-01, 1.34E-01, 1.23E-01, 1.50E-01, 1.35E-01, 1.28E-01, 1.32E-01, 1.43E-01, 1.13E-01, 1.20E-01, 1.35E-01, 1.15E-01, 1.07E-01, 1.15E-01, 1.17E-01, 1.09E-01, 1.09E-01, 1.11E-01, 9.85E-02, 9.25E-02, 8.95E-02, 7.65E-02, 8.30E-02, 7.75E-02, 7.05E-02, 7.60E-02, 5.95E-02, 8.25E-02, 6.20E-02, 7.45E-02} , |
|||
{ 1.29E-01, 1.08E-01, 1.05E-01, 1.28E-01, 1.33E-01, 1.18E-01, 1.11E-01, 1.30E-01, 1.13E-01, 1.01E-01, 1.05E-01, 9.20E-02, 9.35E-02, 9.30E-02, 9.45E-02, 1.17E-01, 1.00E-01, 8.75E-02, 9.15E-02, 8.45E-02, 5.95E-02, 6.50E-02, 7.65E-02, 7.45E-02, 7.05E-02, 7.50E-02, 5.40E-02, 5.75E-02, 5.65E-02, 5.40E-02} , |
|||
{ 1.46E-01, 1.07E-01, 1.13E-01, 1.08E-01, 1.11E-01, 1.07E-01, 9.65E-02, 9.80E-02, 9.65E-02, 8.60E-02, 8.45E-02, 9.80E-02, 9.05E-02, 1.06E-01, 8.30E-02, 8.35E-02, 7.80E-02, 8.00E-02, 6.80E-02, 7.10E-02, 6.65E-02, 7.10E-02, 7.35E-02, 6.45E-02, 5.40E-02, 5.50E-02, 5.60E-02, 6.30E-02, 5.10E-02, 4.84E-02} , |
|||
{ 1.15E-01, 9.80E-02, 9.65E-02, 1.08E-01, 1.00E-01, 1.32E-01, 8.25E-02, 9.90E-02, 9.30E-02, 8.40E-02, 8.75E-02, 7.70E-02, 9.30E-02, 7.65E-02, 7.70E-02, 8.00E-02, 7.20E-02, 7.10E-02, 6.90E-02, 6.95E-02, 6.25E-02, 5.90E-02, 7.15E-02, 6.10E-02, 5.10E-02, 5.10E-02, 5.20E-02, 5.80E-02, 6.35E-02, 4.94E-02} , |
|||
{ 1.13E-01, 1.01E-01, 1.08E-01, 1.16E-01, 8.75E-02, 8.80E-02, 7.55E-02, 8.20E-02, 8.20E-02, 8.80E-02, 8.20E-02, 8.55E-02, 7.40E-02, 6.80E-02, 6.85E-02, 7.40E-02, 6.70E-02, 6.20E-02, 5.85E-02, 5.55E-02, 5.65E-02, 6.15E-02, 5.90E-02, 6.50E-02, 5.20E-02, 5.60E-02, 4.47E-02, 4.64E-02, 3.90E-02, 5.55E-02} , |
|||
{ 9.35E-02, 7.60E-02, 7.45E-02, 8.60E-02, 8.85E-02, 7.30E-02, 5.95E-02, 6.60E-02, 7.25E-02, 7.05E-02, 7.00E-02, 7.50E-02, 6.90E-02, 7.30E-02, 6.30E-02, 6.45E-02, 6.05E-02, 5.95E-02, 5.60E-02, 5.20E-02, 4.72E-02, 5.25E-02, 5.65E-02, 4.89E-02, 3.86E-02, 4.41E-02, 4.57E-02, 3.96E-02, 4.49E-02, 5.15E-02} , |
|||
{ 7.65E-02, 6.10E-02, 6.20E-02, 7.85E-02, 6.95E-02, 6.15E-02, 7.50E-02, 7.80E-02, 6.30E-02, 5.60E-02, 4.98E-02, 6.45E-02, 6.05E-02, 4.74E-02, 6.20E-02, 5.50E-02, 5.85E-02, 4.84E-02, 4.11E-02, 4.64E-02, 5.25E-02, 4.39E-02, 4.03E-02, 4.15E-02, 3.31E-02, 3.77E-02, 3.87E-02, 3.65E-02, 4.22E-02, 3.39E-02} , |
|||
{ 6.55E-02, 5.30E-02, 5.45E-02, 5.90E-02, 5.25E-02, 5.70E-02, 5.75E-02, 5.10E-02, 5.95E-02, 4.73E-02, 5.85E-02, 5.90E-02, 5.35E-02, 5.70E-02, 5.10E-02, 4.50E-02, 5.10E-02, 5.10E-02, 4.80E-02, 4.16E-02, 4.56E-02, 4.21E-02, 4.22E-02, 3.65E-02, 3.55E-02, 3.69E-02, 3.99E-02, 3.91E-02, 3.20E-02, 2.36E-02} , |
|||
{ 6.05E-02, 4.49E-02, 3.60E-02, 4.88E-02, 6.15E-02, 4.71E-02, 5.40E-02, 4.40E-02, 5.15E-02, 5.30E-02, 4.63E-02, 4.52E-02, 5.95E-02, 6.90E-02, 3.83E-02, 4.28E-02, 4.57E-02, 3.39E-02, 4.74E-02, 4.59E-02, 3.64E-02, 4.23E-02, 4.00E-02, 3.39E-02, 3.47E-02, 2.82E-02, 3.14E-02, 3.44E-02, 2.83E-02, 3.07E-02} , |
|||
{ 4.42E-02, 3.93E-02, 3.97E-02, 4.28E-02, 4.25E-02, 4.61E-02, 3.78E-02, 3.64E-02, 4.53E-02, 4.21E-02, 4.04E-02, 4.10E-02, 4.33E-02, 4.15E-02, 3.29E-02, 3.88E-02, 3.14E-02, 3.34E-02, 3.60E-02, 3.53E-02, 3.64E-02, 3.60E-02, 2.79E-02, 2.96E-02, 3.28E-02, 2.95E-02, 2.75E-02, 2.83E-02, 2.64E-02, 2.49E-02} , |
|||
{ 5.20E-02, 3.80E-02, 4.32E-02, 3.51E-02, 3.67E-02, 4.66E-02, 3.98E-02, 3.43E-02, 4.17E-02, 4.25E-02, 3.50E-02, 3.88E-02, 3.69E-02, 3.79E-02, 4.09E-02, 3.51E-02, 3.53E-02, 4.07E-02, 3.25E-02, 3.10E-02, 4.01E-02, 3.75E-02, 2.81E-02, 2.72E-02, 2.77E-02, 2.57E-02, 3.09E-02, 2.49E-02, 2.65E-02, 1.74E-02} , |
|||
{ 3.84E-02, 3.99E-02, 3.29E-02, 3.76E-02, 3.31E-02, 3.33E-02, 3.40E-02, 3.55E-02, 3.63E-02, 3.01E-02, 3.40E-02, 4.82E-02, 3.13E-02, 4.77E-02, 3.41E-02, 4.30E-02, 3.45E-02, 3.01E-02, 3.07E-02, 2.94E-02, 2.56E-02, 2.21E-02, 2.40E-02, 2.43E-02, 2.66E-02, 2.44E-02, 1.98E-02, 2.55E-02, 2.41E-02, 2.00E-02} |
|||
}; |
|||
|
|||
Double_t dosesmall[20][20] = |
|||
{{3.705,3.97,3.43,3.615,3.375,3.27,3.515,3.74,3.29,3.42,3.985,3.415,3.32,3.305,3.765,3.22,3.37,2.855,3.23,3.145}, |
|||
{4.565,4,3.98,3.735,3.995,3.73,3.6,3.495,3.73,4.06,3.865,4.355,3.745,3.535,3.47,3.17,3.835,3.425,3.19,3.29}, |
|||
{ 4.65,4.37,4.09,4.29,4.65,4.62,4.04,3.845,4.375,4.09,4.05,4.885,4.35,4.705,3.905,4.06,3.82,3.665,3.61,3.67}, |
|||
{ 4.905,4.74,5.1,4.62,4.425,4.625,4.695,4.395,4.685,4.335,4.665,4.575,4.485,4.725,5,4.715,4.055,4.32,4.76,4.225}, |
|||
{ 5.55,6.35,5.3,5.15,5.25,5.35,5.05,5.25,5.6,5.4,5.25,4.68,4.645,4.98,4.555,4.935,4.725,4.485,4.51,4.135}, |
|||
{ 6,6.55,6.35,6.5,6,5.55,5.65,6.15,5.95,5.75,5.75,5.55,5.6,5.3,4.71,5.15,4.905,5.6,4.565,4.38}, |
|||
{ 7.35,7.6,6.9,7.1,6.9,7.05,6.3,6.7,6.45,7.75,5.8,5.7,6,5.6,5.85,5.4,5.9,5.55,5.55,4.835}, |
|||
{ 8.65,8.45,18.65,7.6,8,8.9,7.55,7.4,7.7,6.45,8.35,7.5,6.95,7.55,7.2,7.2,7.05,6.1,6.2,5.6}, |
|||
{ 11.45,11.5,11.4,11.1,15.25,10.5,9.5,9.15,8.25,8.15,8.35,8.65,8.25,8.7,7.8,7.5,7,6.8,6.7,5.85}, |
|||
{ 15.75,16.6,15.9,16.95,14.05,15.8,13.2,12.35,12.95,11.25,10.5,10,9.7,9.85,8.95,8.25,7.9,7.75,7.45,7.3}, |
|||
{ 20.8,5.4,20.8,19.05,19.1,17.05,16.55,17.25,13.5,12.65,11.9,12.05,11.15,11.5,10.25,9.65,9.6,8.3,8.95,8.2}, |
|||
{ 24.85,23.95,22.6,21.85,22.5,18.9,20.7,22.4,17.05,15.65,13.45,12.05,11.85,10.7,10.5,10.25,9.65,9.3,8.65,7.95}, |
|||
{ 3.575,6.7,12.65,22.2,20.35,28.85,18.7,17.55,17.85,16.5,13.95,12.65,12.45,11.7,10.45,9.85,9.15,8.85,8.2,8.8}, |
|||
{ 0,0,0,1.665,14.75,27.4,28.7,20,19.75,18.65,26.45,14.3,13.6,13.25,11.5,11.2,10.7,11.1,9,9.15}, |
|||
{ 0,0,0,0,0,12.2,26.5,22.45,20.9,20.45,22,17.2,14.75,13.15,13.1,11.3,11.35,9.75,10.85,8.65}, |
|||
{ 0,0,0,0,0,0,27.25,27.1,25.65,20.9,22.5,18.65,15.7,13.6,14,11.65,10.65,9.6,9.7,8.45}, |
|||
{ 0,0,0,0,0,0,11.8,30.05,26.45,37.8,23.45,22.5,17.3,15.05,13.7,11.65,11.85,10.7,9.95,8.9}, |
|||
{ 0,0,0,0,0,0,0,29.65,32.05,26.4,22.95,27.95,17.65,14.6,13.3,12.2,11.9,10.75,10.3,10.1}, |
|||
{ 0,0,0,0,0,0,0,13.1,38.05,30.2,35.8,21.65,19.4,15.45,14.05,12.95,12.6,11,10.55,9.5}, |
|||
{ 0,0,0,0,0,0,0,8.25,37.85,28.8,32,23.35,19.85,17.65,15.35,12.75,12.35,10.95,10.25,9.35}}; |
|||
|
|||
TFile f("dose.root","recreate"); |
|||
TH2F * dosehist50invfb = new TH2F("dosehist50invfb","dosehist50invfb",300,0,300,250,0,250); |
|||
|
|||
for (unsigned int i = 0;i<250;i++){ |
|||
for (unsigned int j = 0;j<300;j++){ |
|||
dosehist50invfb->SetBinContent(j+1,i+1,dosebig[floor(i/10)][floor(j/10)]); |
|||
} |
|||
} |
|||
|
|||
|
|||
for (unsigned int i = 0;i<20;i++){ |
|||
for (unsigned int j = 0;j<20;j++){ |
|||
dosehist50invfb->SetBinContent(j+1,20-i,dosesmall[i][j]); |
|||
} |
|||
} |
|||
|
|||
dosehist50invfb->Draw("coloz"); |
|||
dosehist50invfb->Write(); |
|||
f.Close(); |
|||
} |
@ -0,0 +1,71 @@ |
|||
|
|||
{ |
|||
Double_t dosebig[25][30] = { |
|||
{ 1.34E+01, 1.45E+01, 7.95E+00, 5.45E+00, 4.17E+00, 3.37E+00, 2.81E+00, 2.55E+00, 2.24E+00, 2.02E+00, 1.83E+00, 1.68E+00, 1.55E+00, 1.43E+00, 1.34E+00, 1.28E+00, 1.20E+00, 1.15E+00, 1.06E+00, 9.75E-01, 9.35E-01, 8.60E-01, 7.95E-01, 7.45E-01, 6.85E-01, 6.20E-01, 5.80E-01, 5.20E-01, 4.96E-01, 4.65E-01} , |
|||
{ 7.20E+00, 6.20E+00, 4.64E+00, 3.47E+00, 2.68E+00, 2.28E+00, 1.98E+00, 1.66E+00, 1.50E+00, 1.38E+00, 1.27E+00, 1.16E+00, 1.04E+00, 9.85E-01, 9.15E-01, 8.95E-01, 8.45E-01, 7.75E-01, 7.25E-01, 6.95E-01, 6.60E-01, 6.00E-01, 5.40E-01, 5.30E-01, 4.66E-01, 4.20E-01, 3.99E-01, 3.64E-01, 3.33E-01, 2.90E-01} , |
|||
{ 2.74E+00, 2.55E+00, 2.23E+00, 2.04E+00, 1.65E+00, 1.47E+00, 1.29E+00, 1.25E+00, 1.06E+00, 9.70E-01, 8.85E-01, 8.50E-01, 7.75E-01, 7.20E-01, 6.75E-01, 6.65E-01, 6.10E-01, 5.65E-01, 5.50E-01, 5.10E-01, 4.74E-01, 4.51E-01, 4.06E-01, 3.80E-01, 3.75E-01, 3.16E-01, 2.86E-01, 2.72E-01, 2.54E-01, 1.89E-01} , |
|||
{ 1.57E+00, 1.39E+00, 1.31E+00, 1.30E+00, 1.12E+00, 1.06E+00, 9.55E-01, 8.70E-01, 8.30E-01, 7.90E-01, 6.95E-01, 6.45E-01, 6.10E-01, 5.65E-01, 5.50E-01, 4.86E-01, 5.10E-01, 4.66E-01, 4.30E-01, 4.41E-01, 3.89E-01, 3.59E-01, 3.20E-01, 3.35E-01, 2.98E-01, 2.73E-01, 2.67E-01, 2.27E-01, 2.10E-01, 1.54E-01} , |
|||
{ 1.00E+00, 9.00E-01, 9.10E-01, 9.15E-01, 8.25E-01, 8.00E-01, 7.40E-01, 6.75E-01, 6.65E-01, 5.80E-01, 5.35E-01, 5.10E-01, 4.60E-01, 4.58E-01, 4.09E-01, 3.93E-01, 3.78E-01, 3.63E-01, 3.52E-01, 3.49E-01, 2.88E-01, 2.78E-01, 2.64E-01, 2.56E-01, 2.44E-01, 2.23E-01, 2.21E-01, 1.97E-01, 1.73E-01, 1.37E-01} , |
|||
{ 6.60E-01, 6.20E-01, 6.10E-01, 6.30E-01, 5.95E-01, 5.65E-01, 5.55E-01, 5.10E-01, 4.96E-01, 4.92E-01, 4.90E-01, 3.97E-01, 4.07E-01, 3.47E-01, 3.38E-01, 3.10E-01, 2.93E-01, 2.92E-01, 2.65E-01, 2.65E-01, 2.40E-01, 2.48E-01, 2.06E-01, 2.10E-01, 2.40E-01, 1.98E-01, 1.85E-01, 1.89E-01, 1.38E-01, 1.34E-01} , |
|||
{ 4.83E-01, 4.77E-01, 4.60E-01, 4.75E-01, 4.39E-01, 4.12E-01, 4.47E-01, 4.00E-01, 3.78E-01, 3.65E-01, 3.43E-01, 3.31E-01, 2.85E-01, 3.22E-01, 2.85E-01, 2.54E-01, 2.53E-01, 2.49E-01, 2.48E-01, 2.20E-01, 2.17E-01, 1.95E-01, 1.99E-01, 1.80E-01, 1.75E-01, 1.68E-01, 1.77E-01, 1.51E-01, 1.37E-01, 1.10E-01} , |
|||
{ 3.89E-01, 3.67E-01, 3.61E-01, 3.74E-01, 3.70E-01, 3.45E-01, 3.45E-01, 3.11E-01, 2.97E-01, 3.11E-01, 2.93E-01, 2.65E-01, 2.68E-01, 2.23E-01, 2.11E-01, 2.26E-01, 2.18E-01, 1.97E-01, 1.97E-01, 1.88E-01, 1.97E-01, 1.72E-01, 1.66E-01, 1.75E-01, 1.44E-01, 1.60E-01, 1.41E-01, 1.40E-01, 1.05E-01, 1.19E-01} , |
|||
{ 3.18E-01, 2.54E-01, 3.06E-01, 2.89E-01, 2.74E-01, 2.80E-01, 2.57E-01, 2.59E-01, 2.51E-01, 2.45E-01, 2.62E-01, 2.36E-01, 2.15E-01, 2.12E-01, 1.96E-01, 2.12E-01, 1.78E-01, 1.75E-01, 1.69E-01, 1.64E-01, 1.64E-01, 1.62E-01, 1.53E-01, 1.49E-01, 1.47E-01, 1.49E-01, 1.42E-01, 1.20E-01, 1.01E-01, 9.00E-02} , |
|||
{ 2.75E-01, 2.51E-01, 2.24E-01, 2.69E-01, 2.34E-01, 2.28E-01, 2.30E-01, 1.96E-01, 2.08E-01, 2.27E-01, 2.09E-01, 1.91E-01, 2.14E-01, 1.79E-01, 1.79E-01, 2.05E-01, 1.79E-01, 1.58E-01, 1.88E-01, 1.49E-01, 1.57E-01, 1.30E-01, 1.32E-01, 1.39E-01, 1.32E-01, 1.18E-01, 1.34E-01, 1.05E-01, 9.65E-02, 8.65E-02} , |
|||
{ 2.35E-01, 2.34E-01, 2.27E-01, 2.17E-01, 2.41E-01, 2.21E-01, 2.01E-01, 1.87E-01, 2.04E-01, 1.85E-01, 1.75E-01, 1.69E-01, 1.79E-01, 1.92E-01, 1.56E-01, 1.79E-01, 1.78E-01, 1.41E-01, 1.45E-01, 1.41E-01, 1.36E-01, 1.44E-01, 1.11E-01, 1.24E-01, 1.13E-01, 1.29E-01, 1.02E-01, 9.30E-02, 9.65E-02, 8.40E-02} , |
|||
{ 1.89E-01, 1.72E-01, 1.94E-01, 1.94E-01, 2.07E-01, 2.42E-01, 2.02E-01, 1.80E-01, 1.80E-01, 1.54E-01, 1.60E-01, 1.67E-01, 1.57E-01, 1.39E-01, 1.57E-01, 1.46E-01, 1.62E-01, 1.35E-01, 1.29E-01, 1.32E-01, 1.25E-01, 1.13E-01, 1.05E-01, 1.02E-01, 1.12E-01, 9.75E-02, 8.85E-02, 9.10E-02, 7.35E-02, 9.00E-02} , |
|||
{ 1.56E-01, 1.40E-01, 1.52E-01, 1.70E-01, 1.55E-01, 1.48E-01, 1.54E-01, 1.61E-01, 1.58E-01, 1.54E-01, 1.34E-01, 1.43E-01, 1.40E-01, 1.41E-01, 1.26E-01, 1.17E-01, 1.20E-01, 1.05E-01, 1.11E-01, 1.06E-01, 1.03E-01, 9.50E-02, 1.02E-01, 8.65E-02, 9.45E-02, 9.35E-02, 7.05E-02, 6.70E-02, 7.55E-02, 5.80E-02} , |
|||
{ 1.50E-01, 1.34E-01, 1.23E-01, 1.50E-01, 1.35E-01, 1.28E-01, 1.32E-01, 1.43E-01, 1.13E-01, 1.20E-01, 1.35E-01, 1.15E-01, 1.07E-01, 1.15E-01, 1.17E-01, 1.09E-01, 1.09E-01, 1.11E-01, 9.85E-02, 9.25E-02, 8.95E-02, 7.65E-02, 8.30E-02, 7.75E-02, 7.05E-02, 7.60E-02, 5.95E-02, 8.25E-02, 6.20E-02, 7.45E-02} , |
|||
{ 1.29E-01, 1.08E-01, 1.05E-01, 1.28E-01, 1.33E-01, 1.18E-01, 1.11E-01, 1.30E-01, 1.13E-01, 1.01E-01, 1.05E-01, 9.20E-02, 9.35E-02, 9.30E-02, 9.45E-02, 1.17E-01, 1.00E-01, 8.75E-02, 9.15E-02, 8.45E-02, 5.95E-02, 6.50E-02, 7.65E-02, 7.45E-02, 7.05E-02, 7.50E-02, 5.40E-02, 5.75E-02, 5.65E-02, 5.40E-02} , |
|||
{ 1.46E-01, 1.07E-01, 1.13E-01, 1.08E-01, 1.11E-01, 1.07E-01, 9.65E-02, 9.80E-02, 9.65E-02, 8.60E-02, 8.45E-02, 9.80E-02, 9.05E-02, 1.06E-01, 8.30E-02, 8.35E-02, 7.80E-02, 8.00E-02, 6.80E-02, 7.10E-02, 6.65E-02, 7.10E-02, 7.35E-02, 6.45E-02, 5.40E-02, 5.50E-02, 5.60E-02, 6.30E-02, 5.10E-02, 4.84E-02} , |
|||
{ 1.15E-01, 9.80E-02, 9.65E-02, 1.08E-01, 1.00E-01, 1.32E-01, 8.25E-02, 9.90E-02, 9.30E-02, 8.40E-02, 8.75E-02, 7.70E-02, 9.30E-02, 7.65E-02, 7.70E-02, 8.00E-02, 7.20E-02, 7.10E-02, 6.90E-02, 6.95E-02, 6.25E-02, 5.90E-02, 7.15E-02, 6.10E-02, 5.10E-02, 5.10E-02, 5.20E-02, 5.80E-02, 6.35E-02, 4.94E-02} , |
|||
{ 1.13E-01, 1.01E-01, 1.08E-01, 1.16E-01, 8.75E-02, 8.80E-02, 7.55E-02, 8.20E-02, 8.20E-02, 8.80E-02, 8.20E-02, 8.55E-02, 7.40E-02, 6.80E-02, 6.85E-02, 7.40E-02, 6.70E-02, 6.20E-02, 5.85E-02, 5.55E-02, 5.65E-02, 6.15E-02, 5.90E-02, 6.50E-02, 5.20E-02, 5.60E-02, 4.47E-02, 4.64E-02, 3.90E-02, 5.55E-02} , |
|||
{ 9.35E-02, 7.60E-02, 7.45E-02, 8.60E-02, 8.85E-02, 7.30E-02, 5.95E-02, 6.60E-02, 7.25E-02, 7.05E-02, 7.00E-02, 7.50E-02, 6.90E-02, 7.30E-02, 6.30E-02, 6.45E-02, 6.05E-02, 5.95E-02, 5.60E-02, 5.20E-02, 4.72E-02, 5.25E-02, 5.65E-02, 4.89E-02, 3.86E-02, 4.41E-02, 4.57E-02, 3.96E-02, 4.49E-02, 5.15E-02} , |
|||
{ 7.65E-02, 6.10E-02, 6.20E-02, 7.85E-02, 6.95E-02, 6.15E-02, 7.50E-02, 7.80E-02, 6.30E-02, 5.60E-02, 4.98E-02, 6.45E-02, 6.05E-02, 4.74E-02, 6.20E-02, 5.50E-02, 5.85E-02, 4.84E-02, 4.11E-02, 4.64E-02, 5.25E-02, 4.39E-02, 4.03E-02, 4.15E-02, 3.31E-02, 3.77E-02, 3.87E-02, 3.65E-02, 4.22E-02, 3.39E-02} , |
|||
{ 6.55E-02, 5.30E-02, 5.45E-02, 5.90E-02, 5.25E-02, 5.70E-02, 5.75E-02, 5.10E-02, 5.95E-02, 4.73E-02, 5.85E-02, 5.90E-02, 5.35E-02, 5.70E-02, 5.10E-02, 4.50E-02, 5.10E-02, 5.10E-02, 4.80E-02, 4.16E-02, 4.56E-02, 4.21E-02, 4.22E-02, 3.65E-02, 3.55E-02, 3.69E-02, 3.99E-02, 3.91E-02, 3.20E-02, 2.36E-02} , |
|||
{ 6.05E-02, 4.49E-02, 3.60E-02, 4.88E-02, 6.15E-02, 4.71E-02, 5.40E-02, 4.40E-02, 5.15E-02, 5.30E-02, 4.63E-02, 4.52E-02, 5.95E-02, 6.90E-02, 3.83E-02, 4.28E-02, 4.57E-02, 3.39E-02, 4.74E-02, 4.59E-02, 3.64E-02, 4.23E-02, 4.00E-02, 3.39E-02, 3.47E-02, 2.82E-02, 3.14E-02, 3.44E-02, 2.83E-02, 3.07E-02} , |
|||
{ 4.42E-02, 3.93E-02, 3.97E-02, 4.28E-02, 4.25E-02, 4.61E-02, 3.78E-02, 3.64E-02, 4.53E-02, 4.21E-02, 4.04E-02, 4.10E-02, 4.33E-02, 4.15E-02, 3.29E-02, 3.88E-02, 3.14E-02, 3.34E-02, 3.60E-02, 3.53E-02, 3.64E-02, 3.60E-02, 2.79E-02, 2.96E-02, 3.28E-02, 2.95E-02, 2.75E-02, 2.83E-02, 2.64E-02, 2.49E-02} , |
|||
{ 5.20E-02, 3.80E-02, 4.32E-02, 3.51E-02, 3.67E-02, 4.66E-02, 3.98E-02, 3.43E-02, 4.17E-02, 4.25E-02, 3.50E-02, 3.88E-02, 3.69E-02, 3.79E-02, 4.09E-02, 3.51E-02, 3.53E-02, 4.07E-02, 3.25E-02, 3.10E-02, 4.01E-02, 3.75E-02, 2.81E-02, 2.72E-02, 2.77E-02, 2.57E-02, 3.09E-02, 2.49E-02, 2.65E-02, 1.74E-02} , |
|||
{ 3.84E-02, 3.99E-02, 3.29E-02, 3.76E-02, 3.31E-02, 3.33E-02, 3.40E-02, 3.55E-02, 3.63E-02, 3.01E-02, 3.40E-02, 4.82E-02, 3.13E-02, 4.77E-02, 3.41E-02, 4.30E-02, 3.45E-02, 3.01E-02, 3.07E-02, 2.94E-02, 2.56E-02, 2.21E-02, 2.40E-02, 2.43E-02, 2.66E-02, 2.44E-02, 1.98E-02, 2.55E-02, 2.41E-02, 2.00E-02} |
|||
}; |
|||
|
|||
Double_t dosesmall[20][20] = |
|||
{{3.705,3.97,3.43,3.615,3.375,3.27,3.515,3.74,3.29,3.42,3.985,3.415,3.32,3.305,3.765,3.22,3.37,2.855,3.23,3.145}, |
|||
{4.565,4,3.98,3.735,3.995,3.73,3.6,3.495,3.73,4.06,3.865,4.355,3.745,3.535,3.47,3.17,3.835,3.425,3.19,3.29}, |
|||
{ 4.65,4.37,4.09,4.29,4.65,4.62,4.04,3.845,4.375,4.09,4.05,4.885,4.35,4.705,3.905,4.06,3.82,3.665,3.61,3.67}, |
|||
{ 4.905,4.74,5.1,4.62,4.425,4.625,4.695,4.395,4.685,4.335,4.665,4.575,4.485,4.725,5,4.715,4.055,4.32,4.76,4.225}, |
|||
{ 5.55,6.35,5.3,5.15,5.25,5.35,5.05,5.25,5.6,5.4,5.25,4.68,4.645,4.98,4.555,4.935,4.725,4.485,4.51,4.135}, |
|||
{ 6,6.55,6.35,6.5,6,5.55,5.65,6.15,5.95,5.75,5.75,5.55,5.6,5.3,4.71,5.15,4.905,5.6,4.565,4.38}, |
|||
{ 7.35,7.6,6.9,7.1,6.9,7.05,6.3,6.7,6.45,7.75,5.8,5.7,6,5.6,5.85,5.4,5.9,5.55,5.55,4.835}, |
|||
{ 8.65,8.45,18.65,7.6,8,8.9,7.55,7.4,7.7,6.45,8.35,7.5,6.95,7.55,7.2,7.2,7.05,6.1,6.2,5.6}, |
|||
{ 11.45,11.5,11.4,11.1,15.25,10.5,9.5,9.15,8.25,8.15,8.35,8.65,8.25,8.7,7.8,7.5,7,6.8,6.7,5.85}, |
|||
{ 15.75,16.6,15.9,16.95,14.05,15.8,13.2,12.35,12.95,11.25,10.5,10,9.7,9.85,8.95,8.25,7.9,7.75,7.45,7.3}, |
|||
{ 20.8,5.4,20.8,19.05,19.1,17.05,16.55,17.25,13.5,12.65,11.9,12.05,11.15,11.5,10.25,9.65,9.6,8.3,8.95,8.2}, |
|||
{ 24.85,23.95,22.6,21.85,22.5,18.9,20.7,22.4,17.05,15.65,13.45,12.05,11.85,10.7,10.5,10.25,9.65,9.3,8.65,7.95}, |
|||
{ 3.575,6.7,12.65,22.2,20.35,28.85,18.7,17.55,17.85,16.5,13.95,12.65,12.45,11.7,10.45,9.85,9.15,8.85,8.2,8.8}, |
|||
{ 0,0,0,1.665,14.75,27.4,28.7,20,19.75,18.65,26.45,14.3,13.6,13.25,11.5,11.2,10.7,11.1,9,9.15}, |
|||
{ 0,0,0,0,0,12.2,26.5,22.45,20.9,20.45,22,17.2,14.75,13.15,13.1,11.3,11.35,9.75,10.85,8.65}, |
|||
{ 0,0,0,0,0,0,27.25,27.1,25.65,20.9,22.5,18.65,15.7,13.6,14,11.65,10.65,9.6,9.7,8.45}, |
|||
{ 0,0,0,0,0,0,11.8,30.05,26.45,37.8,23.45,22.5,17.3,15.05,13.7,11.65,11.85,10.7,9.95,8.9}, |
|||
{ 0,0,0,0,0,0,0,29.65,32.05,26.4,22.95,27.95,17.65,14.6,13.3,12.2,11.9,10.75,10.3,10.1}, |
|||
{ 0,0,0,0,0,0,0,13.1,38.05,30.2,35.8,21.65,19.4,15.45,14.05,12.95,12.6,11,10.55,9.5}, |
|||
{ 0,0,0,0,0,0,0,8.25,37.85,28.8,32,23.35,19.85,17.65,15.35,12.75,12.35,10.95,10.25,9.35}}; |
|||
|
|||
|
|||
TH2F * dosehist50invfb = new TH2F("dosehist50invfb","dosehist50invfb",300,0,300,250,0,250); |
|||
|
|||
for (unsigned int i = 0;i<250;i++){ |
|||
for (unsigned int j = 0;j<300;j++){ |
|||
dosehist50invfb->SetBinContent(j+1,i+1,dosebig[floor(i/10)][floor(j/10)]); |
|||
} |
|||
} |
|||
|
|||
|
|||
for (unsigned int i = 0;i<20;i++){ |
|||
for (unsigned int j = 0;j<20;j++){ |
|||
dosehist50invfb->SetBinContent(j+1,20-i,dosesmall[i][j]); |
|||
} |
|||
} |
|||
|
|||
dosehist50invfb->Draw("coloz"); |
|||
|
|||
} |
@ -0,0 +1,93 @@ |
|||
/event/verbose 0 |
|||
/run/verbose 2 |
|||
/vis/open OGL 600x600-0+0 |
|||
/vis/sceneHandler/create OGL |
|||
/vis/viewer/create ! ! 600x600-0+0 |
|||
/vis/viewer/refresh |
|||
/vis/viewer/set/autoRefresh false |
|||
/vis/verbose errors |
|||
/vis/drawVolume |
|||
/vis/scene/create |
|||
/vis/scene/add/volume world -1 -1 none m 0 0 0 0 0 0 |
|||
/vis/sceneHandler/attach |
|||
/vis/scene/add/trajectories smooth |
|||
/tracking/storeTrajectory 2 |
|||
/vis/scene/notifyHandlers |
|||
/tracking/storeTrajectory 2 |
|||
/vis/geometry/set/visibility World 0 false |
|||
/vis/scene/notifyHandlers |
|||
/vis/geometry/set/visibility Detector 0 true |
|||
/vis/scene/notifyHandlers |
|||
/vis/geometry/set/visibility EpoxyBox 0 false |
|||
/vis/scene/notifyHandlers |
|||
/vis/geometry/set/visibility AbsBox 0 false |
|||
/vis/scene/notifyHandlers |
|||
/vis/geometry/set/visibility EpoxyStrip 0 true |
|||
/vis/scene/notifyHandlers |
|||
/vis/geometry/set/visibility Pixel 0 true |
|||
/vis/scene/notifyHandlers |
|||
/vis/geometry/set/visibility Trigger 0 false |
|||
/vis/scene/notifyHandlers |
|||
/vis/geometry/set/colour all 0 0 0 0 |
|||
/vis/scene/notifyHandlers |
|||
/vis/geometry/set/colour Cladding2Section 1 0. 0.5 0.5 |
|||
/vis/scene/notifyHandlers |
|||
/vis/geometry/set/colour Cladding1Section 0 0.5 0.5 0.5 |
|||
/vis/scene/notifyHandlers |
|||
/vis/geometry/set/colour CoreSection 0 0.5 0.0 0.5 |
|||
/vis/scene/notifyHandlers |
|||
/vis/geometry/set/colour Pixel 0 0.0 0.5 0.0 1.0 |
|||
/vis/scene/notifyHandlers |
|||
/vis/geometry/set/colour EpoxyStrip 0 .90 .90 1.0 .3 |
|||
/vis/scene/notifyHandlers |
|||
/vis/geometry/set/colour EpoxyBox 0 0.9 0.9 0.9 1. |
|||
/vis/scene/notifyHandlers |
|||
/vis/geometry/set/colour Detector 0 0.0 0.1 0.1 .0 |
|||
/vis/scene/notifyHandlers |
|||
/vis/viewer/set/viewpointVector -1 0 0 |
|||
/vis/viewer/set/lightsVector -1 0 0 |
|||
/vis/viewer/set/style surface |
|||
/vis/viewer/set/lineSegmentsPerCircle 100 |
|||
/vis/viewer/set/targetPoint 0.0 0.0 .250 m |
|||
/vis/viewer/set/viewpointThetaPhi 10 -20 |
|||
/vis/viewer/zoomTo 10 |
|||
/vis/viewer/set/background white |
|||
/vis/scene/notifyHandlers |
|||
/vis/modeling/trajectories/create/drawByCharge |
|||
/vis/modeling/trajectories/create/drawByCharge |
|||
/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true |
|||
/vis/scene/notifyHandlers scene-0 |
|||
/vis/scene/notifyHandlers scene-0 |
|||
/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2 |
|||
/vis/scene/notifyHandlers scene-0 |
|||
/vis/scene/notifyHandlers scene-0 |
|||
/vis/modeling/trajectories/drawByCharge-0/set 1 blue |
|||
/vis/scene/notifyHandlers scene-0 |
|||
/vis/modeling/trajectories/drawByCharge-0/set -1 red |
|||
/vis/scene/notifyHandlers scene-0 |
|||
/vis/scene/notifyHandlers scene-0 |
|||
/vis/modeling/trajectories/list |
|||
/vis/modeling/trajectories/select drawByCharge-0 |
|||
/vis/scene/endOfEventAction accumulate |
|||
/vis/viewer/set/autoRefresh true |
|||
/vis/viewer/refresh |
|||
/vis/viewer/refresh |
|||
/vis/verbose warnings |
|||
/gps/particle mu- |
|||
/gps/ene/mono 4 GeV |
|||
/gps/pos/type Plane |
|||
/gps/pos/shape Square |
|||
/gps/pos/halfx 5 mm |
|||
/gps/pos/halfy 5 mm |
|||
/gps/pos/halfz 5 mm |
|||
/gps/pos/rot2 0 0 1 |
|||
/gps/pos/centre 0. 5.0 5. mm |
|||
/gps/ang/type iso |
|||
/gps/ang/mintheta 0.0 deg |
|||
/gps/ang/maxtheta 1.0 deg |
|||
/gps/ang/minphi 0.0 deg |
|||
/gps/ang/maxphi 0.1 deg |
|||
/run/beamOn 1 |
|||
/vis/scene/notifyHandlers scene-0 |
|||
/run/beamOn 1 |
|||
/run/beamOn 1 |
@ -0,0 +1,33 @@ |
|||
PROGNAME = myanalysis |
|||
SOURCEFILES = myanalysis.C |
|||
OBJS = $(patsubst %.C, %.o, $(SOURCEFILES)) |
|||
|
|||
ROOTCFLAGS := $(shell root-config --cflags) |
|||
ROOTLIBS := $(shell root-config --libs) |
|||
ROOTGLIBS := $(shell root-config --glibs) |
|||
|
|||
GSLCFLAGS := $(shell gsl-config --cflags) |
|||
GSLLIBS := $(shell gsl-config --libs) |
|||
GSLGLIBS := $(shell gsl-config --glibs) |
|||
|
|||
|
|||
|
|||
LDFLAGS = -O |
|||
LIBS += $(ROOTLIBS) $(GSLLIBS) |
|||
CFLAGS += $(ROOTCFLAGS) $(GSLCFLAGS) |
|||
|
|||
# Not sure why Minuit isn't being included -- put in by hand
|
|||
#
|
|||
LIBS += -lMinuit |
|||
|
|||
%.o: %.C |
|||
g++ ${CFLAGS} -std=c++17 -c -g -o $@ $< |
|||
|
|||
$(PROGNAME): $(OBJS) |
|||
g++ -o $@ $(OBJS) $(LDFLAGS) $(LIBS) |
|||
|
|||
test: |
|||
@echo $(ROOTCFLAGS) |
|||
|
|||
clean: |
|||
-rm -f ${PROGNAME} ${OBJS} |
@ -0,0 +1,33 @@ |
|||
PROGNAME = myanalysis |
|||
SOURCEFILES = myanalysis.C |
|||
OBJS = $(patsubst %.C, %.o, $(SOURCEFILES)) |
|||
|
|||
ROOTCFLAGS := $(shell root-config --cflags) |
|||
ROOTLIBS := $(shell root-config --libs) |
|||
ROOTGLIBS := $(shell root-config --glibs) |
|||
|
|||
GSLCFLAGS := $(shell gsl-config --cflags) |
|||
GSLLIBS := $(shell gsl-config --libs) |
|||
GSLGLIBS := $(shell gsl-config --glibs) |
|||
|
|||
|
|||
|
|||
LDFLAGS = -O |
|||
LIBS += $(ROOTLIBS) $(GSLLIBS) |
|||
CFLAGS += $(ROOTCFLAGS) $(GSLCFLAGS) -std=c++17 |
|||
|
|||
# Not sure why Minuit isn't being included -- put in by hand |
|||
# |
|||
LIBS += -lMinuit |
|||
|
|||
%.o: %.cc |
|||
g++ ${CFLAGS} -c -g -o $@ $< |
|||
|
|||
$(PROGNAME): $(OBJS) |
|||
g++ -o $@ $(OBJS) $(LDFLAGS) $(LIBS) |
|||
|
|||
test: |
|||
@echo $(ROOTCFLAGS) |
|||
|
|||
clean: |
|||
-rm -f ${PROGNAME} ${OBJS} |
@ -0,0 +1,210 @@ |
|||
#define myanalysis_cxx
|
|||
#include "myanalysis.h"
|
|||
#include <TH2.h>
|
|||
#include <TStyle.h>
|
|||
#include <TCanvas.h>
|
|||
#include <TTree.h>
|
|||
#include <TFrame.h>
|
|||
#include <TH1F.h>
|
|||
#include <TBenchmark.h>
|
|||
#include <TRandom.h>
|
|||
#include <TSystem.h>
|
|||
#include <iostream>
|
|||
|
|||
void myanalysis::Loop() |
|||
{ |
|||
// In a ROOT session, you can do:
|
|||
// root> .L MyAnalysis/myanalysis.C
|
|||
// root> myanalysis t
|
|||
// root> t.Loop(); // Loop on all entries
|
|||
//
|
|||
|
|||
// This is the loop skeleton where:
|
|||
// jentry is the global entry number in the chain
|
|||
// ientry is the entry number in the current Tree
|
|||
// Note that the argument to GetEntry must be:
|
|||
// jentry for TChain::GetEntry
|
|||
// ientry for TTree::GetEntry and TBranch::GetEntry
|
|||
//
|
|||
// To read only selected branches, Insert statements like:
|
|||
// METHOD1:
|
|||
// fChain->SetBranchStatus("*",0); // disable all branches
|
|||
// fChain->SetBranchStatus("branchname",1); // activate branchname
|
|||
// METHOD2: replace line
|
|||
// fChain->GetEntry(jentry); //read all branches
|
|||
//by b_branchname->GetEntry(ientry); //read only this branch
|
|||
if (fChain == 0) return; |
|||
|
|||
Long64_t nentries = fChain->GetEntriesFast(); |
|||
int lasteventID = 0; |
|||
int nPhotoelectrons = 0; |
|||
bool sameEvent_bool = true; |
|||
int eventDiff = 0; |
|||
float countphotons = 0; |
|||
std::vector<int> unique_detectorCopy_vec; |
|||
std::vector<int> hits_detectorCopy_vec; |
|||
|
|||
|
|||
TFile * outfile = new TFile("myanalysis_out.root", "RECREATE"); |
|||
if ( outfile->IsOpen() ) printf("OUTPUT file opened successfully\n"); |
|||
TH1F * nphotons = new TH1F("nphotons","nphotons per event",500,0,1000); |
|||
// Create a TTree
|
|||
TTree *t = new TTree("tvec","Tree with vectors"); |
|||
t->Branch("runID_vec",&runID_vec); |
|||
t->Branch("eventID_vec",&eventID_vec); |
|||
t->Branch("detNumb_vec",&detNumb_vec); |
|||
t->Branch("xPixel_vec",&xPixel_vec); |
|||
t->Branch("yPixel_vec",&yPixel_vec); |
|||
t->Branch("energy_vec",&energy_vec); |
|||
t->Branch("wavelength_vec",&wavelength_vec); |
|||
t->Branch("localtime_vec",&localtime_vec); |
|||
t->Branch("abstime_vec",&abstime_vec); |
|||
t->Branch("length_vec",&length_vec); |
|||
t->Branch("x_vec",&x_vec); |
|||
t->Branch("y_vec",&y_vec); |
|||
t->Branch("z_vec",&z_vec); |
|||
t->Branch("px_vec",&px_vec); |
|||
t->Branch("py_vec",&py_vec); |
|||
t->Branch("pz_vec",&pz_vec); |
|||
t->Branch("vertexX_vec",&vertexX_vec); |
|||
t->Branch("vertexY_vec",&vertexY_vec); |
|||
t->Branch("vertexZ_vec",&vertexZ_vec); |
|||
t->Branch("vertexPx_vec",&vertexPx_vec); |
|||
t->Branch("vertexPy_vec",&vertexPy_vec); |
|||
t->Branch("vertexPz_vec",&vertexPz_vec); |
|||
t->Branch("gpsPosX_vec",&gpsPosX_vec); |
|||
t->Branch("gpsPosY_vec",&gpsPosY_vec); |
|||
t->Branch("gpsPosZ_vec",&gpsPosZ_vec); |
|||
t->Branch("runId_vec",&runId_vec); |
|||
t->Branch("eventId_vec",&eventId_vec); |
|||
t->Branch("trackId_vec",&trackId_vec); |
|||
t->Branch("creatorProcess_vec",&creatorProcess_vec); |
|||
t->Branch("parentId_vec",&parentId_vec); |
|||
t->Branch("lengthInCore_vec",&lengthInCore_vec); |
|||
t->Branch("lengthInInnerCladding_vec",&lengthInInnerCladding_vec); |
|||
t->Branch("lengthInOuterCladding_vec",&lengthInOuterCladding_vec); |
|||
// t->Branch("detectorCopy_vec",&detectorCopy_vec);
|
|||
// t->Branch("subdetectorCopy_vec",&subdetectorCopy_vec);
|
|||
t->Branch("countphotons",&countphotons); |
|||
|
|||
|
|||
Long64_t nbytes = 0, nb = 0; |
|||
for (Long64_t jentry=0; jentry<nentries;jentry++) { |
|||
Long64_t ientry = LoadTree(jentry); |
|||
if (ientry < 0) break; |
|||
nb = fChain->GetEntry(jentry); nbytes += nb; |
|||
// if (Cut(ientry) < 0) continue;
|
|||
|
|||
|
|||
|
|||
if (ientry==0) {lasteventID = eventID;} |
|||
|
|||
if(eventID == lasteventID) {sameEvent_bool = true;} |
|||
else { |
|||
eventDiff = eventID - lasteventID; |
|||
sameEvent_bool = false; |
|||
} |
|||
|
|||
|
|||
if (sameEvent_bool == false ){ |
|||
|
|||
lasteventID = eventID; |
|||
|
|||
for (int kk = 0; kk<eventDiff;kk++){ |
|||
std::cout << xPixel_vec.size() << std::endl; |
|||
countphotons = xPixel_vec.size(); |
|||
nphotons->Fill( xPixel_vec.size() ); |
|||
t->Fill(); |
|||
|
|||
runID_vec.clear(); |
|||
eventID_vec.clear(); |
|||
detNumb_vec.clear(); |
|||
xPixel_vec.clear(); |
|||
yPixel_vec.clear(); |
|||
energy_vec.clear(); |
|||
wavelength_vec.clear(); |
|||
localtime_vec.clear(); |
|||
abstime_vec.clear(); |
|||
length_vec.clear(); |
|||
x_vec.clear(); |
|||
y_vec.clear(); |
|||
z_vec.clear(); |
|||
px_vec.clear(); |
|||
py_vec.clear(); |
|||
pz_vec.clear(); |
|||
vertexX_vec.clear(); |
|||
vertexY_vec.clear(); |
|||
vertexZ_vec.clear(); |
|||
vertexPx_vec.clear(); |
|||
vertexPy_vec.clear(); |
|||
vertexPz_vec.clear(); |
|||
gpsPosX_vec.clear(); |
|||
gpsPosY_vec.clear(); |
|||
gpsPosZ_vec.clear(); |
|||
gpsDirX_vec.clear(); |
|||
gpsDirY_vec.clear(); |
|||
gpsDirZ_vec.clear(); |
|||
runId_vec.clear(); |
|||
eventId_vec.clear(); |
|||
trackId_vec.clear(); |
|||
creatorProcess_vec.clear(); |
|||
parentId_vec.clear(); |
|||
lengthInCore_vec.clear(); |
|||
lengthInInnerCladding_vec.clear(); |
|||
lengthInOuterCladding_vec.clear(); |
|||
// detectorCopy_vec.clear();
|
|||
// subdetectorCopy_vec.clear();
|
|||
} |
|||
sameEvent_bool = true; |
|||
} |
|||
|
|||
if (sameEvent_bool == true){ |
|||
runID_vec.push_back(runID); |
|||
eventID_vec.push_back(eventID); |
|||
detNumb_vec.push_back(detNumb); |
|||
xPixel_vec.push_back(xPixel); |
|||
yPixel_vec.push_back(yPixel); |
|||
energy_vec.push_back(energy); |
|||
wavelength_vec.push_back(wavelength); |
|||
localtime_vec.push_back(localtime); |
|||
abstime_vec.push_back(abstime); |
|||
length_vec.push_back(length); |
|||
x_vec.push_back(x); |
|||
y_vec.push_back(y); |
|||
z_vec.push_back(z); |
|||
px_vec.push_back(px); |
|||
py_vec.push_back(py); |
|||
pz_vec.push_back(pz); |
|||
vertexX_vec.push_back(vertexX); |
|||
vertexY_vec.push_back(vertexY); |
|||
vertexZ_vec.push_back(vertexZ); |
|||
vertexPx_vec.push_back(vertexPx); |
|||
vertexPy_vec.push_back(vertexPy); |
|||
vertexPz_vec.push_back(vertexPz); |
|||
gpsPosX_vec.push_back(gpsPosX); |
|||
gpsPosY_vec.push_back(gpsPosY); |
|||
gpsPosZ_vec.push_back(gpsPosZ); |
|||
gpsDirX_vec.push_back(gpsDirX); |
|||
gpsDirY_vec.push_back(gpsDirY); |
|||
gpsDirZ_vec.push_back(gpsDirZ); |
|||
runId_vec.push_back(runId); |
|||
eventId_vec.push_back(eventId); |
|||
trackId_vec.push_back(trackId); |
|||
creatorProcess_vec.push_back(creatorProcess); |
|||
parentId_vec.push_back(parentId); |
|||
lengthInCore_vec.push_back(lengthInCore); |
|||
lengthInInnerCladding_vec.push_back(lengthInInnerCladding); |
|||
lengthInOuterCladding_vec.push_back(lengthInOuterCladding); |
|||
// detectorCopy_vec.push_back(detectorCopy);
|
|||
// subdetectorCopy_vec.push_back(subdetectorCopy);
|
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
}//end of loop
|
|||
outfile->Write(); |
|||
|
|||
delete outfile; |
|||
} |
@ -0,0 +1,205 @@ |
|||
#define myanalysis_cxx |
|||
#include "myanalysis.h" |
|||
#include <TH2.h> |
|||
#include <TStyle.h> |
|||
#include <TCanvas.h> |
|||
#include <TTree.h> |
|||
#include <TFrame.h> |
|||
#include <TH1F.h> |
|||
#include <TBenchmark.h> |
|||
#include <TRandom.h> |
|||
#include <TSystem.h> |
|||
#include <iostream> |
|||
|
|||
void myanalysis::Loop() |
|||
{ |
|||
// In a ROOT session, you can do: |
|||
// root> .L myanalysis.C |
|||
// root> myanalysis t |
|||
// root> t.GetEntry(12); // Fill t data members with entry number 12 |
|||
// root> t.Show(); // Show values of entry 12 |
|||
// root> t.Show(16); // Read and show values of entry 16 |
|||
// root> t.Loop(); // Loop on all entries |
|||
// |
|||
|
|||
// This is the loop skeleton where: |
|||
// jentry is the global entry number in the chain |
|||
// ientry is the entry number in the current Tree |
|||
// Note that the argument to GetEntry must be: |
|||
// jentry for TChain::GetEntry |
|||
// ientry for TTree::GetEntry and TBranch::GetEntry |
|||
// |
|||
// To read only selected branches, Insert statements like: |
|||
// METHOD1: |
|||
// fChain->SetBranchStatus("*",0); // disable all branches |
|||
// fChain->SetBranchStatus("branchname",1); // activate branchname |
|||
// METHOD2: replace line |
|||
// fChain->GetEntry(jentry); //read all branches |
|||
//by b_branchname->GetEntry(ientry); //read only this branch |
|||
if (fChain == 0) return; |
|||
|
|||
Long64_t nentries = fChain->GetEntriesFast(); |
|||
int lasteventID = 0; |
|||
int nPhotoelectrons = 0; |
|||
bool sameEvent_bool = true; |
|||
|
|||
std::vector<int> unique_detectorCopy_vec; |
|||
std::vector<int> hits_detectorCopy_vec; |
|||
|
|||
|
|||
TFile * outfile = new TFile("myanalysis_out.root", "RECREATE"); |
|||
if ( outfile->IsOpen() ) printf("OUTPUT file opened successfully\n"); |
|||
// Create a TTree |
|||
TTree *t = new TTree("tvec","Tree with vectors"); |
|||
t->Branch("runID_vec",&runID_vec); |
|||
t->Branch("eventID_vec",&eventID_vec); |
|||
t->Branch("detNumb_vec",&detNumb_vec); |
|||
t->Branch("xPixel_vec",&xPixel_vec); |
|||
t->Branch("yPixel_vec",&yPixel_vec); |
|||
t->Branch("energy_vec",&energy_vec); |
|||
t->Branch("wavelength_vec",&wavelength_vec); |
|||
t->Branch("localtime_vec",&localtime_vec); |
|||
t->Branch("abstime_vec",&abstime_vec); |
|||
t->Branch("length_vec",&length_vec); |
|||
t->Branch("x_vec",&x_vec); |
|||
t->Branch("y_vec",&y_vec); |
|||
t->Branch("z_vec",&z_vec); |
|||
t->Branch("px_vec",&px_vec); |
|||
t->Branch("py_vec",&py_vec); |
|||
t->Branch("pz_vec",&pz_vec); |
|||
t->Branch("vertexX_vec",&vertexX_vec); |
|||
t->Branch("vertexY_vec",&vertexY_vec); |
|||
t->Branch("vertexZ_vec",&vertexZ_vec); |
|||
t->Branch("vertexPx_vec",&vertexPx_vec); |
|||
t->Branch("vertexPy_vec",&vertexPy_vec); |
|||
t->Branch("vertexPz_vec",&vertexPz_vec); |
|||
t->Branch("gpsPosX_vec",&gpsPosX_vec); |
|||
t->Branch("gpsPosY_vec",&gpsPosY_vec); |
|||
t->Branch("gpsPosZ_vec",&gpsPosZ_vec); |
|||
t->Branch("runId_vec",&runId_vec); |
|||
t->Branch("eventId_vec",&eventId_vec); |
|||
t->Branch("trackId_vec",&trackId_vec); |
|||
t->Branch("creatorProcess_vec",&creatorProcess_vec); |
|||
t->Branch("parentId_vec",&parentId_vec); |
|||
t->Branch("lengthInCore_vec",&lengthInCore_vec); |
|||
t->Branch("lengthInInnerCladding_vec",&lengthInInnerCladding_vec); |
|||
t->Branch("lengthInOuterCladding_vec",&lengthInOuterCladding_vec); |
|||
// t->Branch("detectorCopy_vec",&detectorCopy_vec); |
|||
// t->Branch("subdetectorCopy_vec",&subdetectorCopy_vec); |
|||
|
|||
|
|||
Long64_t nbytes = 0, nb = 0; |
|||
for (Long64_t jentry=0; jentry<nentries;jentry++) { |
|||
Long64_t ientry = LoadTree(jentry); |
|||
if (ientry < 0) break; |
|||
nb = fChain->GetEntry(jentry); nbytes += nb; |
|||
// if (Cut(ientry) < 0) continue; |
|||
|
|||
|
|||
|
|||
if (ientry==0) {lasteventID = eventID;} |
|||
|
|||
if(eventID == lasteventID) {sameEvent_bool = true;} |
|||
else { sameEvent_bool = false; } |
|||
|
|||
|
|||
if (sameEvent_bool == false ){ |
|||
lasteventID = eventID; |
|||
|
|||
|
|||
std::cout << xPixel_vec.size() << " " << uniqCnt << ": "; |
|||
std::cout << std::endl; |
|||
|
|||
t->Fill(); |
|||
runID_vec.clear(); |
|||
eventID_vec.clear(); |
|||
detNumb_vec.clear(); |
|||
xPixel_vec.clear(); |
|||
yPixel_vec.clear(); |
|||
energy_vec.clear(); |
|||
wavelength_vec.clear(); |
|||
localtime_vec.clear(); |
|||
abstime_vec.clear(); |
|||
length_vec.clear(); |
|||
x_vec.clear(); |
|||
y_vec.clear(); |
|||
z_vec.clear(); |
|||
px_vec.clear(); |
|||
py_vec.clear(); |
|||
pz_vec.clear(); |
|||
vertexX_vec.clear(); |
|||
vertexY_vec.clear(); |
|||
vertexZ_vec.clear(); |
|||
vertexPx_vec.clear(); |
|||
vertexPy_vec.clear(); |
|||
vertexPz_vec.clear(); |
|||
gpsPosX_vec.clear(); |
|||
gpsPosY_vec.clear(); |
|||
gpsPosZ_vec.clear(); |
|||
gpsDirX_vec.clear(); |
|||
gpsDirY_vec.clear(); |
|||
gpsDirZ_vec.clear(); |
|||
runId_vec.clear(); |
|||
eventId_vec.clear(); |
|||
trackId_vec.clear(); |
|||
creatorProcess_vec.clear(); |
|||
parentId_vec.clear(); |
|||
lengthInCore_vec.clear(); |
|||
lengthInInnerCladding_vec.clear(); |
|||
lengthInOuterCladding_vec.clear(); |
|||
// detectorCopy_vec.clear(); |
|||
// subdetectorCopy_vec.clear(); |
|||
|
|||
sameEvent_bool = true; |
|||
} |
|||
|
|||
if (sameEvent_bool == true){ |
|||
runID_vec.push_back(runID); |
|||
eventID_vec.push_back(eventID); |
|||
detNumb_vec.push_back(detNumb); |
|||
xPixel_vec.push_back(xPixel); |
|||
yPixel_vec.push_back(yPixel); |
|||
energy_vec.push_back(energy); |
|||
wavelength_vec.push_back(wavelength); |
|||
localtime_vec.push_back(localtime); |
|||
abstime_vec.push_back(abstime); |
|||
length_vec.push_back(length); |
|||
x_vec.push_back(x); |
|||
y_vec.push_back(y); |
|||
z_vec.push_back(z); |
|||
px_vec.push_back(px); |
|||
py_vec.push_back(py); |
|||
pz_vec.push_back(pz); |
|||
vertexX_vec.push_back(vertexX); |
|||
vertexY_vec.push_back(vertexY); |
|||
vertexZ_vec.push_back(vertexZ); |
|||
vertexPx_vec.push_back(vertexPx); |
|||
vertexPy_vec.push_back(vertexPy); |
|||
vertexPz_vec.push_back(vertexPz); |
|||
gpsPosX_vec.push_back(gpsPosX); |
|||
gpsPosY_vec.push_back(gpsPosY); |
|||
gpsPosZ_vec.push_back(gpsPosZ); |
|||
gpsDirX_vec.push_back(gpsDirX); |
|||
gpsDirY_vec.push_back(gpsDirY); |
|||
gpsDirZ_vec.push_back(gpsDirZ); |
|||
runId_vec.push_back(runId); |
|||
eventId_vec.push_back(eventId); |
|||
trackId_vec.push_back(trackId); |
|||
creatorProcess_vec.push_back(creatorProcess); |
|||
parentId_vec.push_back(parentId); |
|||
lengthInCore_vec.push_back(lengthInCore); |
|||
lengthInInnerCladding_vec.push_back(lengthInInnerCladding); |
|||
lengthInOuterCladding_vec.push_back(lengthInOuterCladding); |
|||
// detectorCopy_vec.push_back(detectorCopy); |
|||
// subdetectorCopy_vec.push_back(subdetectorCopy); |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
}//end of loop |
|||
outfile->Write(); |
|||
|
|||
delete outfile; |
|||
} |
@ -0,0 +1,308 @@ |
|||
////////////////////////////////////////////////////////// |
|||
// This class has been automatically generated on |
|||
// Tue Apr 21 13:01:22 2020 by ROOT version 6.12/06 |
|||
// from TTree DetectedPhotons/Photons detected at the detector strip. |
|||
// found on file: outFile_1.root |
|||
////////////////////////////////////////////////////////// |
|||
|
|||
#ifndef myanalysis_h |
|||
#define myanalysis_h |
|||
|
|||
#include <TROOT.h> |
|||
#include <TChain.h> |
|||
#include <TFile.h> |
|||
#include <vector> |
|||
|
|||
//#ifdef __MAKECINT__ |
|||
//#pragma link C++ class vector<float>+; |
|||
//#pragma link C++ class vector<int>+; |
|||
//#endif |
|||
|
|||
// Header file for the classes stored in the TTree if any. |
|||
|
|||
class myanalysis { |
|||
public : |
|||
TTree *fChain; //!pointer to the analyzed TTree or TChain |
|||
Int_t fCurrent; //!current Tree number in a TChain |
|||
|
|||
// Fixed size dimensions of array or collections stored in the TTree if any. |
|||
|
|||
// Declaration of leaf types |
|||
Float_t runID; |
|||
Float_t eventID; |
|||
Float_t detNumb; |
|||
Float_t xPixel; |
|||
Float_t yPixel; |
|||
Float_t energy; |
|||
Float_t wavelength; |
|||
Float_t localtime; |
|||
Float_t abstime; |
|||
Float_t length; |
|||
Float_t x; |
|||
Float_t y; |
|||
Float_t z; |
|||
Float_t px; |
|||
Float_t py; |
|||
Float_t pz; |
|||
Float_t vertexX; |
|||
Float_t vertexY; |
|||
Float_t vertexZ; |
|||
Float_t vertexPx; |
|||
Float_t vertexPy; |
|||
Float_t vertexPz; |
|||
Float_t gpsPosX; |
|||
Float_t gpsPosY; |
|||
Float_t gpsPosZ; |
|||
Float_t gpsDirX; |
|||
Float_t gpsDirY; |
|||
Float_t gpsDirZ; |
|||
Int_t runId; |
|||
Int_t eventId; |
|||
Int_t trackId; |
|||
Int_t creatorProcess; |
|||
Int_t parentId; |
|||
Int_t reflMirr; |
|||
Int_t reflSurf; |
|||
Int_t reflTotalCladClad; |
|||
Int_t reflTotalCoreClad; |
|||
Int_t reflFresnelCladClad; |
|||
Int_t reflFresnelCoreClad; |
|||
Int_t refracCladClad; |
|||
Int_t refracCoreClad; |
|||
Int_t rayleighScatterings; |
|||
Float_t lengthInCore; |
|||
Float_t lengthInInnerCladding; |
|||
Float_t lengthInOuterCladding; |
|||
// Int_t detectorCopy; |
|||
// Int_t subdetectorCopy; |
|||
|
|||
// List of branches |
|||
TBranch *b_runID; //! |
|||
TBranch *b_eventID; //! |
|||
TBranch *b_detNumb; //! |
|||
TBranch *b_xPixel; //! |
|||
TBranch *b_yPixel; //! |
|||
TBranch *b_energy; //! |
|||
TBranch *b_wavelength; //! |
|||
TBranch *b_localtime; //! |
|||
TBranch *b_abstime; //! |
|||
TBranch *b_length; //! |
|||
TBranch *b_x; //! |
|||
TBranch *b_y; //! |
|||
TBranch *b_z; //! |
|||
TBranch *b_px; //! |
|||
TBranch *b_py; //! |
|||
TBranch *b_pz; //! |
|||
TBranch *b_vertexX; //! |
|||
TBranch *b_vertexY; //! |
|||
TBranch *b_vertexZ; //! |
|||
TBranch *b_vertexPx; //! |
|||
TBranch *b_vertexPy; //! |
|||
TBranch *b_vertexPz; //! |
|||
TBranch *b_gpsPosX; //! |
|||
TBranch *b_gpsPosY; //! |
|||
TBranch *b_gpsPosZ; //! |
|||
TBranch *b_runId; //! |
|||
TBranch *b_eventId; //! |
|||
TBranch *b_trackId; //! |
|||
TBranch *b_creatorProcess; //! |
|||
TBranch *b_parentId; //! |
|||
TBranch *b_reflMirr; //! |
|||
TBranch *b_reflSurf; //! |
|||
TBranch *b_reflTotalCladClad; //! |
|||
TBranch *b_reflTotalCoreClad; //! |
|||
TBranch *b_reflFresnelCladClad; //! |
|||
TBranch *b_reflFresnelCoreClad; //! |
|||
TBranch *b_refracCladClad; //! |
|||
TBranch *b_refracCoreClad; //! |
|||
TBranch *b_rayleighScatterings; //! |
|||
TBranch *b_lengthInCore; //! |
|||
TBranch *b_lengthInInnerCladding; //! |
|||
TBranch *b_lengthInOuterCladding; //! |
|||
// TBranch *b_detectorCopy; //! |
|||
//TBranch *b_subdetectorCopy; //! |
|||
|
|||
myanalysis(TTree *tree=0); |
|||
virtual ~myanalysis(); |
|||
virtual Int_t Cut(Long64_t entry); |
|||
virtual Int_t GetEntry(Long64_t entry); |
|||
virtual Long64_t LoadTree(Long64_t entry); |
|||
virtual void Init(TTree *tree); |
|||
virtual void Loop(); |
|||
virtual Bool_t Notify(); |
|||
virtual void Show(Long64_t entry = -1); |
|||
|
|||
|
|||
std::vector<float> runID_vec; |
|||
std::vector<float> eventID_vec; |
|||
std::vector<float> detNumb_vec; |
|||
std::vector<float> xPixel_vec; |
|||
std::vector<float> yPixel_vec; |
|||
std::vector<float> energy_vec; |
|||
std::vector<float> wavelength_vec; |
|||
std::vector<float> localtime_vec; |
|||
std::vector<float> abstime_vec; |
|||
std::vector<float> length_vec; |
|||
std::vector<float> x_vec; |
|||
std::vector<float> y_vec; |
|||
std::vector<float> z_vec; |
|||
std::vector<float> px_vec; |
|||
std::vector<float> py_vec; |
|||
std::vector<float> pz_vec; |
|||
std::vector<float> vertexX_vec; |
|||
std::vector<float> vertexY_vec; |
|||
std::vector<float> vertexZ_vec; |
|||
std::vector<float> vertexPx_vec; |
|||
std::vector<float> vertexPy_vec; |
|||
std::vector<float> vertexPz_vec; |
|||
std::vector<float> gpsPosX_vec; |
|||
std::vector<float> gpsPosY_vec; |
|||
std::vector<float> gpsPosZ_vec; |
|||
std::vector<float> gpsDirX_vec; |
|||
std::vector<float> gpsDirY_vec; |
|||
std::vector<float> gpsDirZ_vec; |
|||
std::vector<int> runId_vec; |
|||
std::vector<int> eventId_vec; |
|||
std::vector<int> trackId_vec; |
|||
std::vector<int> creatorProcess_vec; |
|||
std::vector<int> parentId_vec; |
|||
std::vector<int> reflMirr_vec; |
|||
std::vector<int> reflSurf_vec; |
|||
std::vector<int> reflTotalCladClad_vec; |
|||
std::vector<int> reflTotalCoreClad_vec; |
|||
std::vector<int> reflFresnelCladClad_vec; |
|||
std::vector<int> reflFresnelCoreClad_vec; |
|||
std::vector<int> refracCladClad_vec; |
|||
std::vector<int> refracCoreClad_vec; |
|||
std::vector<int> rayleighScatterings_vec; |
|||
std::vector<float> lengthInCore_vec; |
|||
std::vector<float> lengthInInnerCladding_vec; |
|||
std::vector<float> lengthInOuterCladding_vec; |
|||
// std::vector<int> detectorCopy_vec; |
|||
// std::vector<int> subdetectorCopy_vec; |
|||
|
|||
}; |
|||
|
|||
#endif |
|||
|
|||
#ifdef myanalysis_cxx |
|||
myanalysis::myanalysis(TTree *tree) : fChain(0) |
|||
{ |
|||
// if parameter tree is not specified (or zero), connect the file |
|||
// used to generate this class and read the Tree. |
|||
if (tree == 0) { |
|||
TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("outFile_1.root"); |
|||
if (!f || !f->IsOpen()) { |
|||
f = new TFile("outFile_1.root"); |
|||
} |
|||
f->GetObject("DetectedPhotons",tree); |
|||
|
|||
} |
|||
Init(tree); |
|||
} |
|||
|
|||
myanalysis::~myanalysis() |
|||
{ |
|||
if (!fChain) return; |
|||
delete fChain->GetCurrentFile(); |
|||
} |
|||
|
|||
Int_t myanalysis::GetEntry(Long64_t entry) |
|||
{ |
|||
// Read contents of entry. |
|||
if (!fChain) return 0; |
|||
return fChain->GetEntry(entry); |
|||
} |
|||
Long64_t myanalysis::LoadTree(Long64_t entry) |
|||
{ |
|||
// Set the environment to read one entry |
|||
if (!fChain) return -5; |
|||
Long64_t centry = fChain->LoadTree(entry); |
|||
if (centry < 0) return centry; |
|||
if (fChain->GetTreeNumber() != fCurrent) { |
|||
fCurrent = fChain->GetTreeNumber(); |
|||
Notify(); |
|||
} |
|||
return centry; |
|||
} |
|||
|
|||
void myanalysis::Init(TTree *tree) |
|||
{ |
|||
// The Init() function is called when the selector needs to initialize |
|||
// a new tree or chain. Typically here the branch addresses and branch |
|||
// pointers of the tree will be set. |
|||
// It is normally not necessary to make changes to the generated |
|||
// code, but the routine can be extended by the user if needed. |
|||
// Init() will be called many times when running on PROOF |
|||
// (once per file to be processed). |
|||
|
|||
// Set branch addresses and branch pointers |
|||
if (!tree) return; |
|||
fChain = tree; |
|||
fCurrent = -1; |
|||
fChain->SetMakeClass(1); |
|||
|
|||
fChain->SetBranchAddress("runID", &runID, &b_runID); |
|||
fChain->SetBranchAddress("eventID", &eventID, &b_eventID); |
|||
fChain->SetBranchAddress("detNumb", &detNumb, &b_detNumb); |
|||
fChain->SetBranchAddress("xPixel", &xPixel, &b_xPixel); |
|||
fChain->SetBranchAddress("yPixel", &yPixel, &b_yPixel); |
|||
fChain->SetBranchAddress("energy", &energy, &b_energy); |
|||
fChain->SetBranchAddress("wavelength", &wavelength, &b_wavelength); |
|||
fChain->SetBranchAddress("localtime", &localtime, &b_localtime); |
|||
fChain->SetBranchAddress("abstime", &abstime, &b_abstime); |
|||
fChain->SetBranchAddress("length", &length, &b_length); |
|||
fChain->SetBranchAddress("x", &x, &b_x); |
|||
fChain->SetBranchAddress("y", &y, &b_y); |
|||
fChain->SetBranchAddress("z", &z, &b_z); |
|||
fChain->SetBranchAddress("px", &px, &b_px); |
|||
fChain->SetBranchAddress("py", &py, &b_py); |
|||
fChain->SetBranchAddress("pz", &pz, &b_pz); |
|||
fChain->SetBranchAddress("vertexX", &vertexX, &b_vertexX); |
|||
fChain->SetBranchAddress("vertexY", &vertexY, &b_vertexY); |
|||
fChain->SetBranchAddress("vertexZ", &vertexZ, &b_vertexZ); |
|||
fChain->SetBranchAddress("vertexPx", &vertexPx, &b_vertexPx); |
|||
fChain->SetBranchAddress("vertexPy", &vertexPy, &b_vertexPy); |
|||
fChain->SetBranchAddress("vertexPz", &vertexPz, &b_vertexPz); |
|||
fChain->SetBranchAddress("gpsPosX", &gpsPosX, &b_gpsPosX); |
|||
fChain->SetBranchAddress("gpsPosY", &gpsPosY, &b_gpsPosY); |
|||
fChain->SetBranchAddress("gpsPosZ", &gpsPosZ, &b_gpsPosZ); |
|||
fChain->SetBranchAddress("runId", &runId, &b_runId); |
|||
fChain->SetBranchAddress("eventId", &eventId, &b_eventId); |
|||
fChain->SetBranchAddress("trackId", &trackId, &b_trackId); |
|||
fChain->SetBranchAddress("creatorProcess", &creatorProcess, &b_creatorProcess); |
|||
fChain->SetBranchAddress("parentId", &parentId, &b_parentId); |
|||
fChain->SetBranchAddress("lengthInCore", &lengthInCore, &b_lengthInCore); |
|||
fChain->SetBranchAddress("lengthInInnerCladding", &lengthInInnerCladding, &b_lengthInInnerCladding); |
|||
fChain->SetBranchAddress("lengthInOuterCladding", &lengthInOuterCladding, &b_lengthInOuterCladding); |
|||
// fChain->SetBranchAddress("detectorCopy", &detectorCopy, &b_detectorCopy); |
|||
// fChain->SetBranchAddress("subdetectorCopy", &subdetectorCopy, &b_subdetectorCopy); |
|||
Notify(); |
|||
} |
|||
|
|||
Bool_t myanalysis::Notify() |
|||
{ |
|||
// The Notify() function is called when a new file is opened. This |
|||
// can be either for a new TTree in a TChain or when when a new TTree |
|||
// is started when using PROOF. It is normally not necessary to make changes |
|||
// to the generated code, but the routine can be extended by the |
|||
// user if needed. The return value is currently not used. |
|||
|
|||
return kTRUE; |
|||
} |
|||
|
|||
void myanalysis::Show(Long64_t entry) |
|||
{ |
|||
// Print contents of entry. |
|||
// If entry is not specified, print current entry |
|||
if (!fChain) return; |
|||
fChain->Show(entry); |
|||
} |
|||
Int_t myanalysis::Cut(Long64_t entry) |
|||
{ |
|||
// This function may be called from Loop. |
|||
// returns 1 if entry is accepted. |
|||
// returns -1 otherwise. |
|||
return 1; |
|||
} |
|||
#endif // #ifdef myanalysis_cxx |
@ -0,0 +1,308 @@ |
|||
////////////////////////////////////////////////////////// |
|||
// This class has been automatically generated on |
|||
// Tue Apr 21 13:01:22 2020 by ROOT version 6.12/06 |
|||
// from TTree DetectedPhotons/Photons detected at the detector strip. |
|||
// found on file: outFile_1.root |
|||
////////////////////////////////////////////////////////// |
|||
|
|||
#ifndef myanalysis_h |
|||
#define myanalysis_h |
|||
|
|||
#include <TROOT.h> |
|||
#include <TChain.h> |
|||
#include <TFile.h> |
|||
#include <vector> |
|||
|
|||
//#ifdef __MAKECINT__ |
|||
//#pragma link C++ class vector<float>+; |
|||
//#pragma link C++ class vector<int>+; |
|||
//#endif |
|||
|
|||
// Header file for the classes stored in the TTree if any. |
|||
|
|||
class myanalysis { |
|||
public : |
|||
TTree *fChain; //!pointer to the analyzed TTree or TChain |
|||
Int_t fCurrent; //!current Tree number in a TChain |
|||
|
|||
// Fixed size dimensions of array or collections stored in the TTree if any. |
|||
|
|||
// Declaration of leaf types |
|||
Float_t runID; |
|||
Float_t eventID; |
|||
Float_t detNumb; |
|||
Float_t xPixel; |
|||
Float_t yPixel; |
|||
Float_t energy; |
|||
Float_t wavelength; |
|||
Float_t localtime; |
|||
Float_t abstime; |
|||
Float_t length; |
|||
Float_t x; |
|||
Float_t y; |
|||
Float_t z; |
|||
Float_t px; |
|||
Float_t py; |
|||
Float_t pz; |
|||
Float_t vertexX; |
|||
Float_t vertexY; |
|||
Float_t vertexZ; |
|||
Float_t vertexPx; |
|||
Float_t vertexPy; |
|||
Float_t vertexPz; |
|||
Float_t gpsPosX; |
|||
Float_t gpsPosY; |
|||
Float_t gpsPosZ; |
|||
Float_t gpsDirX; |
|||
Float_t gpsDirY; |
|||
Float_t gpsDirZ; |
|||
Int_t runId; |
|||
Int_t eventId; |
|||
Int_t trackId; |
|||
Int_t creatorProcess; |
|||
Int_t parentId; |
|||
Int_t reflMirr; |
|||
Int_t reflSurf; |
|||
Int_t reflTotalCladClad; |
|||
Int_t reflTotalCoreClad; |
|||
Int_t reflFresnelCladClad; |
|||
Int_t reflFresnelCoreClad; |
|||
Int_t refracCladClad; |
|||
Int_t refracCoreClad; |
|||
Int_t rayleighScatterings; |
|||
Float_t lengthInCore; |
|||
Float_t lengthInInnerCladding; |
|||
Float_t lengthInOuterCladding; |
|||
Int_t detectorCopy; |
|||
Int_t subdetectorCopy; |
|||
|
|||
// List of branches |
|||
TBranch *b_runID; //! |
|||
TBranch *b_eventID; //! |
|||
TBranch *b_detNumb; //! |
|||
TBranch *b_xPixel; //! |
|||
TBranch *b_yPixel; //! |
|||
TBranch *b_energy; //! |
|||
TBranch *b_wavelength; //! |
|||
TBranch *b_localtime; //! |
|||
TBranch *b_abstime; //! |
|||
TBranch *b_length; //! |
|||
TBranch *b_x; //! |
|||
TBranch *b_y; //! |
|||
TBranch *b_z; //! |
|||
TBranch *b_px; //! |
|||
TBranch *b_py; //! |
|||
TBranch *b_pz; //! |
|||
TBranch *b_vertexX; //! |
|||
TBranch *b_vertexY; //! |
|||
TBranch *b_vertexZ; //! |
|||
TBranch *b_vertexPx; //! |
|||
TBranch *b_vertexPy; //! |
|||
TBranch *b_vertexPz; //! |
|||
TBranch *b_gpsPosX; //! |
|||
TBranch *b_gpsPosY; //! |
|||
TBranch *b_gpsPosZ; //! |
|||
TBranch *b_runId; //! |
|||
TBranch *b_eventId; //! |
|||
TBranch *b_trackId; //! |
|||
TBranch *b_creatorProcess; //! |
|||
TBranch *b_parentId; //! |
|||
TBranch *b_reflMirr; //! |
|||
TBranch *b_reflSurf; //! |
|||
TBranch *b_reflTotalCladClad; //! |
|||
TBranch *b_reflTotalCoreClad; //! |
|||
TBranch *b_reflFresnelCladClad; //! |
|||
TBranch *b_reflFresnelCoreClad; //! |
|||
TBranch *b_refracCladClad; //! |
|||
TBranch *b_refracCoreClad; //! |
|||
TBranch *b_rayleighScatterings; //! |
|||
TBranch *b_lengthInCore; //! |
|||
TBranch *b_lengthInInnerCladding; //! |
|||
TBranch *b_lengthInOuterCladding; //! |
|||
TBranch *b_detectorCopy; //! |
|||
TBranch *b_subdetectorCopy; //! |
|||
|
|||
myanalysis(TTree *tree=0); |
|||
virtual ~myanalysis(); |
|||
virtual Int_t Cut(Long64_t entry); |
|||
virtual Int_t GetEntry(Long64_t entry); |
|||
virtual Long64_t LoadTree(Long64_t entry); |
|||
virtual void Init(TTree *tree); |
|||
virtual void Loop(); |
|||
virtual Bool_t Notify(); |
|||
virtual void Show(Long64_t entry = -1); |
|||
|
|||
|
|||
std::vector<float> runID_vec; |
|||
std::vector<float> eventID_vec; |
|||
std::vector<float> detNumb_vec; |
|||
std::vector<float> xPixel_vec; |
|||
std::vector<float> yPixel_vec; |
|||
std::vector<float> energy_vec; |
|||
std::vector<float> wavelength_vec; |
|||
std::vector<float> localtime_vec; |
|||
std::vector<float> abstime_vec; |
|||
std::vector<float> length_vec; |
|||
std::vector<float> x_vec; |
|||
std::vector<float> y_vec; |
|||
std::vector<float> z_vec; |
|||
std::vector<float> px_vec; |
|||
std::vector<float> py_vec; |
|||
std::vector<float> pz_vec; |
|||
std::vector<float> vertexX_vec; |
|||
std::vector<float> vertexY_vec; |
|||
std::vector<float> vertexZ_vec; |
|||
std::vector<float> vertexPx_vec; |
|||
std::vector<float> vertexPy_vec; |
|||
std::vector<float> vertexPz_vec; |
|||
std::vector<float> gpsPosX_vec; |
|||
std::vector<float> gpsPosY_vec; |
|||
std::vector<float> gpsPosZ_vec; |
|||
std::vector<float> gpsDirX_vec; |
|||
std::vector<float> gpsDirY_vec; |
|||
std::vector<float> gpsDirZ_vec; |
|||
std::vector<int> runId_vec; |
|||
std::vector<int> eventId_vec; |
|||
std::vector<int> trackId_vec; |
|||
std::vector<int> creatorProcess_vec; |
|||
std::vector<int> parentId_vec; |
|||
std::vector<int> reflMirr_vec; |
|||
std::vector<int> reflSurf_vec; |
|||
std::vector<int> reflTotalCladClad_vec; |
|||
std::vector<int> reflTotalCoreClad_vec; |
|||
std::vector<int> reflFresnelCladClad_vec; |
|||
std::vector<int> reflFresnelCoreClad_vec; |
|||
std::vector<int> refracCladClad_vec; |
|||
std::vector<int> refracCoreClad_vec; |
|||
std::vector<int> rayleighScatterings_vec; |
|||
std::vector<float> lengthInCore_vec; |
|||
std::vector<float> lengthInInnerCladding_vec; |
|||
std::vector<float> lengthInOuterCladding_vec; |
|||
std::vector<int> detectorCopy_vec; |
|||
std::vector<int> subdetectorCopy_vec; |
|||
|
|||
}; |
|||
|
|||
#endif |
|||
|
|||
#ifdef myanalysis_cxx |
|||
myanalysis::myanalysis(TTree *tree) : fChain(0) |
|||
{ |
|||
// if parameter tree is not specified (or zero), connect the file |
|||
// used to generate this class and read the Tree. |
|||
if (tree == 0) { |
|||
TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("outFile_1.root"); |
|||
if (!f || !f->IsOpen()) { |
|||
f = new TFile("outFile_1.root"); |
|||
} |
|||
f->GetObject("DetectedPhotons",tree); |
|||
|
|||
} |
|||
Init(tree); |
|||
} |
|||
|
|||
myanalysis::~myanalysis() |
|||
{ |
|||
if (!fChain) return; |
|||
delete fChain->GetCurrentFile(); |
|||
} |
|||
|
|||
Int_t myanalysis::GetEntry(Long64_t entry) |
|||
{ |
|||
// Read contents of entry. |
|||
if (!fChain) return 0; |
|||
return fChain->GetEntry(entry); |
|||
} |
|||
Long64_t myanalysis::LoadTree(Long64_t entry) |
|||
{ |
|||
// Set the environment to read one entry |
|||
if (!fChain) return -5; |
|||
Long64_t centry = fChain->LoadTree(entry); |
|||
if (centry < 0) return centry; |
|||
if (fChain->GetTreeNumber() != fCurrent) { |
|||
fCurrent = fChain->GetTreeNumber(); |
|||
Notify(); |
|||
} |
|||
return centry; |
|||
} |
|||
|
|||
void myanalysis::Init(TTree *tree) |
|||
{ |
|||
// The Init() function is called when the selector needs to initialize |
|||
// a new tree or chain. Typically here the branch addresses and branch |
|||
// pointers of the tree will be set. |
|||
// It is normally not necessary to make changes to the generated |
|||
// code, but the routine can be extended by the user if needed. |
|||
// Init() will be called many times when running on PROOF |
|||
// (once per file to be processed). |
|||
|
|||
// Set branch addresses and branch pointers |
|||
if (!tree) return; |
|||
fChain = tree; |
|||
fCurrent = -1; |
|||
fChain->SetMakeClass(1); |
|||
|
|||
fChain->SetBranchAddress("runID", &runID, &b_runID); |
|||
fChain->SetBranchAddress("eventID", &eventID, &b_eventID); |
|||
fChain->SetBranchAddress("detNumb", &detNumb, &b_detNumb); |
|||
fChain->SetBranchAddress("xPixel", &xPixel, &b_xPixel); |
|||
fChain->SetBranchAddress("yPixel", &yPixel, &b_yPixel); |
|||
fChain->SetBranchAddress("energy", &energy, &b_energy); |
|||
fChain->SetBranchAddress("wavelength", &wavelength, &b_wavelength); |
|||
fChain->SetBranchAddress("localtime", &localtime, &b_localtime); |
|||
fChain->SetBranchAddress("abstime", &abstime, &b_abstime); |
|||
fChain->SetBranchAddress("length", &length, &b_length); |
|||
fChain->SetBranchAddress("x", &x, &b_x); |
|||
fChain->SetBranchAddress("y", &y, &b_y); |
|||
fChain->SetBranchAddress("z", &z, &b_z); |
|||
fChain->SetBranchAddress("px", &px, &b_px); |
|||
fChain->SetBranchAddress("py", &py, &b_py); |
|||
fChain->SetBranchAddress("pz", &pz, &b_pz); |
|||
fChain->SetBranchAddress("vertexX", &vertexX, &b_vertexX); |
|||
fChain->SetBranchAddress("vertexY", &vertexY, &b_vertexY); |
|||
fChain->SetBranchAddress("vertexZ", &vertexZ, &b_vertexZ); |
|||
fChain->SetBranchAddress("vertexPx", &vertexPx, &b_vertexPx); |
|||
fChain->SetBranchAddress("vertexPy", &vertexPy, &b_vertexPy); |
|||
fChain->SetBranchAddress("vertexPz", &vertexPz, &b_vertexPz); |
|||
fChain->SetBranchAddress("gpsPosX", &gpsPosX, &b_gpsPosX); |
|||
fChain->SetBranchAddress("gpsPosY", &gpsPosY, &b_gpsPosY); |
|||
fChain->SetBranchAddress("gpsPosZ", &gpsPosZ, &b_gpsPosZ); |
|||
fChain->SetBranchAddress("runId", &runId, &b_runId); |
|||
fChain->SetBranchAddress("eventId", &eventId, &b_eventId); |
|||
fChain->SetBranchAddress("trackId", &trackId, &b_trackId); |
|||
fChain->SetBranchAddress("creatorProcess", &creatorProcess, &b_creatorProcess); |
|||
fChain->SetBranchAddress("parentId", &parentId, &b_parentId); |
|||
fChain->SetBranchAddress("lengthInCore", &lengthInCore, &b_lengthInCore); |
|||
fChain->SetBranchAddress("lengthInInnerCladding", &lengthInInnerCladding, &b_lengthInInnerCladding); |
|||
fChain->SetBranchAddress("lengthInOuterCladding", &lengthInOuterCladding, &b_lengthInOuterCladding); |
|||
fChain->SetBranchAddress("detectorCopy", &detectorCopy, &b_detectorCopy); |
|||
fChain->SetBranchAddress("subdetectorCopy", &subdetectorCopy, &b_subdetectorCopy); |
|||
Notify(); |
|||
} |
|||
|
|||
Bool_t myanalysis::Notify() |
|||
{ |
|||
// The Notify() function is called when a new file is opened. This |
|||
// can be either for a new TTree in a TChain or when when a new TTree |
|||
// is started when using PROOF. It is normally not necessary to make changes |
|||
// to the generated code, but the routine can be extended by the |
|||
// user if needed. The return value is currently not used. |
|||
|
|||
return kTRUE; |
|||
} |
|||
|
|||
void myanalysis::Show(Long64_t entry) |
|||
{ |
|||
// Print contents of entry. |
|||
// If entry is not specified, print current entry |
|||
if (!fChain) return; |
|||
fChain->Show(entry); |
|||
} |
|||
Int_t myanalysis::Cut(Long64_t entry) |
|||
{ |
|||
// This function may be called from Loop. |
|||
// returns 1 if entry is accepted. |
|||
// returns -1 otherwise. |
|||
return 1; |
|||
} |
|||
#endif // #ifdef myanalysis_cxx |
Binary file not shown.
@ -0,0 +1,96 @@ |
|||
|
|||
{ |
|||
gROOT->Reset(); |
|||
|
|||
gROOT->Reset(); |
|||
gStyle.SetStripDecimals(0); |
|||
gStyle.SetPadLeftMargin(.15); |
|||
gStyle.SetPadRightMargin(.05); |
|||
gStyle.SetPadBottomMargin(.15); |
|||
gStyle->SetOptStat(1); |
|||
gStyle->SetOptFit(0); |
|||
gStyle->SetOptTitle(1); |
|||
|
|||
|
|||
TCanvas * c1 = new TCanvas("c1","multipads",800,800); |
|||
gStyle->SetPadBorderMode(0); |
|||
gStyle->SetFrameBorderMode(0); |
|||
Float_t small = 1e-5; |
|||
c1->Divide(1,3,small,small); |
|||
|
|||
TFile *_file0 = TFile::Open("Sept142015/outFile_5layer_0.275mm.root"); |
|||
TH1F *h1 = new TH1F("h1","5 layer 0.275mm",200,0.0,0.7); |
|||
h1->GetYaxis()->SetRangeUser(0,6500); |
|||
|
|||
TFile *_file1 = TFile::Open("Sept142015/outFile_6layer_0.275mm.root"); |
|||
TH1F *h2 = new TH1F("h2","6 layer 0.275mm",200,0.0,0.7); |
|||
h2->GetYaxis()->SetRangeUser(0,6500); |
|||
|
|||
TFile *_file2 = TFile::Open("Sept142015/outFile_7layer_0.300mm.root"); |
|||
TH1F *h3 = new TH1F("h3","7 layer 0.300mm",200,0.0,0.7); |
|||
h3->GetYaxis()->SetRangeUser(0,6500); |
|||
|
|||
TFile *_file3 = TFile::Open("Sept142015/outFile_7layer_0.325mm.root"); |
|||
TH1F *h4 = new TH1F("h4","7 layer 0.325mm",200,0.0,0.7); |
|||
h4->GetYaxis()->SetRangeUser(0,6500); |
|||
|
|||
TFile *_file4 = TFile::Open("Sept142015/outFile_8layer_0.350mm.root"); |
|||
TH1F *h5 = new TH1F("h5","8 layer 0.350mm",200,0.0,0.7); |
|||
h5->GetYaxis()->SetRangeUser(0,6500); |
|||
|
|||
TFile *_file5 = TFile::Open("Sept142015/outFile_8layer_0.375mm.root"); |
|||
TH1F *h6 = new TH1F("h6","8 layer 0.375mm",200,0.0,0.7); |
|||
h6->GetYaxis()->SetRangeUser(0,6500); |
|||
|
|||
|
|||
|
|||
_file0->cd(); |
|||
EnergyTrack->Project("h1","edep"); |
|||
_file1->cd(); |
|||
EnergyTrack->Project("h2","edep"); |
|||
_file2->cd(); |
|||
EnergyTrack->Project("h3","edep"); |
|||
_file3->cd(); |
|||
EnergyTrack->Project("h4","edep"); |
|||
_file4->cd(); |
|||
EnergyTrack->Project("h5","edep"); |
|||
_file5->cd(); |
|||
EnergyTrack->Project("h6","edep"); |
|||
|
|||
c1->cd(1); |
|||
gPad->SetBottomMargin(small); |
|||
_file0->cd(); |
|||
h1->Draw(); |
|||
|
|||
c1->cd(2); |
|||
gPad->SetTopMargin(small); |
|||
gPad->SetBottomMargin(small); |
|||
h2->Draw(); |
|||
|
|||
c1->cd(3); |
|||
gPad->SetTopMargin(small); |
|||
h3->Draw(); |
|||
|
|||
TCanvas * c2 = new TCanvas("c2","multipads",800,800); |
|||
gStyle->SetPadBorderMode(0); |
|||
gStyle->SetFrameBorderMode(0); |
|||
Float_t small = 1e-5; |
|||
c2->Divide(1,3,small,small); |
|||
|
|||
c2->cd(1); |
|||
gPad->SetTopMargin(small); |
|||
gPad->SetBottomMargin(small); |
|||
h4->Draw(); |
|||
|
|||
c2->cd(2); |
|||
gPad->SetTopMargin(small); |
|||
gPad->SetBottomMargin(small); |
|||
h5->Draw(); |
|||
|
|||
c2->cd(3); |
|||
gPad->SetTopMargin(small); |
|||
gPad->SetTickx(); |
|||
h6->Draw(); |
|||
|
|||
|
|||
} |
@ -0,0 +1,25 @@ |
|||
/control/verbose 0 |
|||
/tracking/verbose 0 |
|||
/event/verbose 0 |
|||
/gps/verbose 0 |
|||
|
|||
/gps/particle mu- |
|||
/gps/ene/mono 4 GeV |
|||
/gps/pos/type Plane |
|||
/gps/pos/shape Square |
|||
/gps/pos/halfx 2 mm |
|||
/gps/pos/halfy 2 mm |
|||
/gps/pos/halfz 2 mm |
|||
/gps/pos/rot2 0 0 1 # sets the x-y plane of source in the global x-z plane. |
|||
/gps/pos/centre 0. 5.0 5. mm |
|||
/gps/ang/type iso |
|||
/gps/ang/mintheta 0.0 deg |
|||
/gps/ang/maxtheta 1.0 deg |
|||
/gps/ang/minphi 0.0 deg |
|||
/gps/ang/maxphi 0.1 deg |
|||
|
|||
|
|||
/run/beamOn 200 |
|||
#/run/beamOn 10 |
|||
|
|||
|
Some files were not shown because too many files changed in this diff
Write
Preview
Loading…
Cancel
Save
Reference in new issue