Browse Source

moved to pi git

master
Blake Leverington 3 years ago
commit
c6150aab97
  1. 113
      README.md
  2. BIN
      SciFiMatG4_v2.pdf
  3. 56
      SciFiSim/CMakeFiles/2.8.12.2/CMakeCCompiler.cmake
  4. 57
      SciFiSim/CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake
  5. BIN
      SciFiSim/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_C.bin
  6. BIN
      SciFiSim/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_CXX.bin
  7. 15
      SciFiSim/CMakeFiles/2.8.12.2/CMakeSystem.cmake
  8. 389
      SciFiSim/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c
  9. BIN
      SciFiSim/CMakeFiles/2.8.12.2/CompilerIdC/a.out
  10. 377
      SciFiSim/CMakeFiles/2.8.12.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
  11. BIN
      SciFiSim/CMakeFiles/2.8.12.2/CompilerIdCXX/a.out
  12. 63
      SciFiSim/CMakeFiles/3.3.2/CMakeCCompiler.cmake
  13. 64
      SciFiSim/CMakeFiles/3.3.2/CMakeCXXCompiler.cmake
  14. BIN
      SciFiSim/CMakeFiles/3.3.2/CMakeDetermineCompilerABI_C.bin
  15. BIN
      SciFiSim/CMakeFiles/3.3.2/CMakeDetermineCompilerABI_CXX.bin
  16. 15
      SciFiSim/CMakeFiles/3.3.2/CMakeSystem.cmake
  17. 508
      SciFiSim/CMakeFiles/3.3.2/CompilerIdC/CMakeCCompilerId.c
  18. BIN
      SciFiSim/CMakeFiles/3.3.2/CompilerIdC/a.out
  19. 498
      SciFiSim/CMakeFiles/3.3.2/CompilerIdCXX/CMakeCXXCompilerId.cpp
  20. BIN
      SciFiSim/CMakeFiles/3.3.2/CompilerIdCXX/a.out
  21. 777
      SciFiSim/CMakeFiles/CMakeOutput.log
  22. 2
      SciFiSim/CMakeFiles/CMakeRuleHashes.txt
  23. 8
      SciFiSim/CMakeFiles/DEPENDS.dir/DependInfo.cmake
  24. 72
      SciFiSim/CMakeFiles/DEPENDS.dir/build.make
  25. 5
      SciFiSim/CMakeFiles/DEPENDS.dir/cmake_clean.cmake
  26. 1
      SciFiSim/CMakeFiles/DEPENDS.dir/progress.make
  27. 140
      SciFiSim/CMakeFiles/Makefile2
  28. 2
      SciFiSim/CMakeFiles/TargetDirectories.txt
  29. 1
      SciFiSim/CMakeFiles/cmake.check_cache
  30. BIN
      SciFiSim/CMakeFiles/feature_tests.bin
  31. 34
      SciFiSim/CMakeFiles/feature_tests.c
  32. 405
      SciFiSim/CMakeFiles/feature_tests.cxx
  33. 1
      SciFiSim/CMakeFiles/progress.marks
  34. 50
      SciFiSim/CMakeFiles/scifiSim.dir/DependInfo.cmake
  35. 452
      SciFiSim/CMakeFiles/scifiSim.dir/build.make
  36. 21
      SciFiSim/CMakeFiles/scifiSim.dir/cmake_clean.cmake
  37. 2
      SciFiSim/CMakeFiles/scifiSim.dir/depend.make
  38. 8
      SciFiSim/CMakeFiles/scifiSim.dir/flags.make
  39. 1
      SciFiSim/CMakeFiles/scifiSim.dir/link.txt
  40. 14
      SciFiSim/CMakeFiles/scifiSim.dir/progress.make
  41. 81
      SciFiSim/CMakeLists.txt
  42. 160
      SciFiSim/FindROOT.cmake
  43. 38
      SciFiSim/GNUmakefile
  44. 38
      SciFiSim/GNUmakefile~
  45. 558
      SciFiSim/Makefile
  46. 15
      SciFiSim/ParameterExplanation.txt
  47. 44
      SciFiSim/cmake_install.cmake
  48. 25
      SciFiSim/cmake_uninstall.cmake
  49. 25
      SciFiSim/cmake_uninstall.cmake.in
  50. 152
      SciFiSim/geant4_validate_sources.cmake
  51. 152
      SciFiSim/geant4_validate_sources.cmake~
  52. 62
      SciFiSim/include/#SteppingAction.hh#
  53. 27
      SciFiSim/include/ActionInitialization.hh
  54. 203
      SciFiSim/include/Analysis.hh
  55. 199
      SciFiSim/include/Analysis.hh~
  56. 57
      SciFiSim/include/Convert.hh
  57. 100
      SciFiSim/include/DetectorConstruction.hh
  58. 96
      SciFiSim/include/DetectorConstruction.hh~
  59. 40
      SciFiSim/include/EventAction.hh
  60. 170
      SciFiSim/include/Parameters.hh
  61. 24
      SciFiSim/include/PhysicsList.hh
  62. 29
      SciFiSim/include/PrimaryGeneratorAction.hh
  63. 30
      SciFiSim/include/RunAction.hh
  64. 23
      SciFiSim/include/SensitiveDetector.hh
  65. 35
      SciFiSim/include/StackingAction.hh
  66. 51
      SciFiSim/include/SteppingAction.hh
  67. 58
      SciFiSim/include/SteppingAction.hh~
  68. 2
      SciFiSim/old.md5
  69. 61
      SciFiSim/outFile_32584.root.parameters
  70. 61
      SciFiSim/outFile_32703.root.parameters
  71. 1
      SciFiSim/randomEngineSeed.txt
  72. 124
      SciFiSim/scifiSim.cc
  73. 37
      SciFiSim/src/ActionInitialization.cc
  74. 444
      SciFiSim/src/Analysis.cc
  75. 444
      SciFiSim/src/Analysis.cc~
  76. 913
      SciFiSim/src/DetectorConstruction.cc
  77. 884
      SciFiSim/src/DetectorConstruction.cc~
  78. 40
      SciFiSim/src/EventAction.cc
  79. 597
      SciFiSim/src/Parameters.cc
  80. 68
      SciFiSim/src/PhysicsList.cc
  81. 68
      SciFiSim/src/PhysicsList.cc~
  82. 88
      SciFiSim/src/PrimaryGeneratorAction.cc
  83. 43
      SciFiSim/src/RunAction.cc
  84. 90
      SciFiSim/src/SensitiveDetector.cc
  85. 91
      SciFiSim/src/StackingAction.cc
  86. 211
      SciFiSim/src/SteppingAction.cc
  87. 221
      SciFiSim/src/SteppingAction.cc~
  88. BIN
      SciFiSim/src/dose.root
  89. 72
      SciFiSim/src/dosehist.C
  90. 71
      SciFiSim/src/dosehist.C~
  91. 93
      SimulationData/G4History.macro
  92. 33
      SimulationData/MyAnalysis/GNUmakefile
  93. 33
      SimulationData/MyAnalysis/GNUmakefile~
  94. 210
      SimulationData/MyAnalysis/myanalysis.C
  95. 205
      SimulationData/MyAnalysis/myanalysis.C~
  96. 308
      SimulationData/MyAnalysis/myanalysis.h
  97. 308
      SimulationData/MyAnalysis/myanalysis.h~
  98. BIN
      SimulationData/MyAnalysis/myanalysis.o
  99. 96
      SimulationData/edep.C
  100. 25
      SimulationData/muongun.mac

113
README.md

@ -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

BIN
SciFiMatG4_v2.pdf

Binary file not shown.

56
SciFiSim/CMakeFiles/2.8.12.2/CMakeCCompiler.cmake

@ -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 "")

57
SciFiSim/CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake

@ -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 "")

BIN
SciFiSim/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_C.bin

Binary file not shown.

BIN
SciFiSim/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_CXX.bin

Binary file not shown.

15
SciFiSim/CMakeFiles/2.8.12.2/CMakeSystem.cmake

@ -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)

389
SciFiSim/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c

@ -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

BIN
SciFiSim/CMakeFiles/2.8.12.2/CompilerIdC/a.out

Binary file not shown.

377
SciFiSim/CMakeFiles/2.8.12.2/CompilerIdCXX/CMakeCXXCompilerId.cpp

@ -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;
}

BIN
SciFiSim/CMakeFiles/2.8.12.2/CompilerIdCXX/a.out

Binary file not shown.

63
SciFiSim/CMakeFiles/3.3.2/CMakeCCompiler.cmake

@ -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 "")

64
SciFiSim/CMakeFiles/3.3.2/CMakeCXXCompiler.cmake

@ -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 "")

BIN
SciFiSim/CMakeFiles/3.3.2/CMakeDetermineCompilerABI_C.bin

Binary file not shown.

BIN
SciFiSim/CMakeFiles/3.3.2/CMakeDetermineCompilerABI_CXX.bin

Binary file not shown.

15
SciFiSim/CMakeFiles/3.3.2/CMakeSystem.cmake

@ -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)

508
SciFiSim/CMakeFiles/3.3.2/CompilerIdC/CMakeCCompilerId.c

@ -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

BIN
SciFiSim/CMakeFiles/3.3.2/CompilerIdC/a.out

Binary file not shown.

498
SciFiSim/CMakeFiles/3.3.2/CompilerIdCXX/CMakeCXXCompilerId.cpp

@ -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;
}

BIN
SciFiSim/CMakeFiles/3.3.2/CompilerIdCXX/a.out

Binary file not shown.

777
SciFiSim/CMakeFiles/CMakeOutput.log

@ -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

2
SciFiSim/CMakeFiles/CMakeRuleHashes.txt

@ -0,0 +1,2 @@
# Hashes of file build rules.
887067886e476ebf1513a83a71192e3e CMakeFiles/DEPENDS

8
SciFiSim/CMakeFiles/DEPENDS.dir/DependInfo.cmake

@ -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
)

72
SciFiSim/CMakeFiles/DEPENDS.dir/build.make

@ -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

5
SciFiSim/CMakeFiles/DEPENDS.dir/cmake_clean.cmake

@ -0,0 +1,5 @@
# Per-language clean rules from dependency scanning.
foreach(lang )
include(CMakeFiles/DEPENDS.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()

1
SciFiSim/CMakeFiles/DEPENDS.dir/progress.make

@ -0,0 +1 @@

140
SciFiSim/CMakeFiles/Makefile2

@ -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

2
SciFiSim/CMakeFiles/TargetDirectories.txt

@ -0,0 +1,2 @@
/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/DEPENDS.dir
/work/SciFiMatG4_v2/SciFiSim/CMakeFiles/scifiSim.dir

1
SciFiSim/CMakeFiles/cmake.check_cache

@ -0,0 +1 @@
# This file is generated by cmake for dependency checking of the CMakeCache.txt file

BIN
SciFiSim/CMakeFiles/feature_tests.bin

Binary file not shown.

34
SciFiSim/CMakeFiles/feature_tests.c

@ -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]; }

405
SciFiSim/CMakeFiles/feature_tests.cxx

@ -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]; }

1
SciFiSim/CMakeFiles/progress.marks

@ -0,0 +1 @@
13

50
SciFiSim/CMakeFiles/scifiSim.dir/DependInfo.cmake

@ -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
)

452
SciFiSim/CMakeFiles/scifiSim.dir/build.make

@ -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

21
SciFiSim/CMakeFiles/scifiSim.dir/cmake_clean.cmake

@ -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()

2
SciFiSim/CMakeFiles/scifiSim.dir/depend.make

@ -0,0 +1,2 @@
# Empty dependencies file for scifiSim.
# This may be replaced when dependencies are built.

8
SciFiSim/CMakeFiles/scifiSim.dir/flags.make

@ -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

1
SciFiSim/CMakeFiles/scifiSim.dir/link.txt

@ -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

14
SciFiSim/CMakeFiles/scifiSim.dir/progress.make

@ -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

81
SciFiSim/CMakeLists.txt

@ -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)

160
SciFiSim/FindROOT.cmake

@ -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()

38
SciFiSim/GNUmakefile

@ -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

38
SciFiSim/GNUmakefile~

@ -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

558
SciFiSim/Makefile

@ -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

15
SciFiSim/ParameterExplanation.txt

@ -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

44
SciFiSim/cmake_install.cmake

@ -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}")

25
SciFiSim/cmake_uninstall.cmake

@ -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)

25
SciFiSim/cmake_uninstall.cmake.in

@ -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)

152
SciFiSim/geant4_validate_sources.cmake

@ -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()

152
SciFiSim/geant4_validate_sources.cmake~

@ -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()

62
SciFiSim/include/#SteppingAction.hh#

@ -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

27
SciFiSim/include/ActionInitialization.hh

@ -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

203
SciFiSim/include/Analysis.hh

@ -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

199
SciFiSim/include/Analysis.hh~

@ -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

57
SciFiSim/include/Convert.hh

@ -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

100
SciFiSim/include/DetectorConstruction.hh

@ -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

96
SciFiSim/include/DetectorConstruction.hh~

@ -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

40
SciFiSim/include/EventAction.hh

@ -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

170
SciFiSim/include/Parameters.hh

@ -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

24
SciFiSim/include/PhysicsList.hh

@ -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 */

29
SciFiSim/include/PrimaryGeneratorAction.hh

@ -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

30
SciFiSim/include/RunAction.hh

@ -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*/

23
SciFiSim/include/SensitiveDetector.hh

@ -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

35
SciFiSim/include/StackingAction.hh

@ -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

51
SciFiSim/include/SteppingAction.hh

@ -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

58
SciFiSim/include/SteppingAction.hh~

@ -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

2
SciFiSim/old.md5

@ -0,0 +1,2 @@
431f92380100d8b8021a25843f9994c1 /home/lhcb/roessler/geant4_workdir/bin/Linux-g++/scifiSim
6d78d4562e149bd687f3ecb9cec78279 /home/lhcb/roessler/geant4_workdir/bin/Linux-g++/scifiSim

61
SciFiSim/outFile_32584.root.parameters

@ -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

61
SciFiSim/outFile_32703.root.parameters

@ -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

1
SciFiSim/randomEngineSeed.txt

@ -0,0 +1 @@
0

124
SciFiSim/scifiSim.cc

@ -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;
}

37
SciFiSim/src/ActionInitialization.cc

@ -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));
}

444
SciFiSim/src/Analysis.cc

@ -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);
}

444
SciFiSim/src/Analysis.cc~

@ -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);
}

913
SciFiSim/src/DetectorConstruction.cc

@ -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;
}

884
SciFiSim/src/DetectorConstruction.cc~

@ -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;
}

40
SciFiSim/src/EventAction.cc

@ -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);
}

597
SciFiSim/src/Parameters.cc

@ -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

68
SciFiSim/src/PhysicsList.cc

@ -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();
}

68
SciFiSim/src/PhysicsList.cc~

@ -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();
}

88
SciFiSim/src/PrimaryGeneratorAction.cc

@ -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);
}

43
SciFiSim/src/RunAction.cc

@ -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*/);
}

90
SciFiSim/src/SensitiveDetector.cc

@ -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;
}

91
SciFiSim/src/StackingAction.cc

@ -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;
}

211
SciFiSim/src/SteppingAction.cc

@ -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 ++ */
}

221
SciFiSim/src/SteppingAction.cc~

@ -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 ++ */
}

BIN
SciFiSim/src/dose.root

Binary file not shown.

72
SciFiSim/src/dosehist.C

@ -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();
}

71
SciFiSim/src/dosehist.C~

@ -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");
}

93
SimulationData/G4History.macro

@ -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

33
SimulationData/MyAnalysis/GNUmakefile

@ -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}

33
SimulationData/MyAnalysis/GNUmakefile~

@ -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}

210
SimulationData/MyAnalysis/myanalysis.C

@ -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;
}

205
SimulationData/MyAnalysis/myanalysis.C~

@ -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;
}

308
SimulationData/MyAnalysis/myanalysis.h

@ -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

308
SimulationData/MyAnalysis/myanalysis.h~

@ -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

BIN
SimulationData/MyAnalysis/myanalysis.o

Binary file not shown.

96
SimulationData/edep.C

@ -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();
}

25
SimulationData/muongun.mac

@ -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

Loading…
Cancel
Save