From 2a0a23a45b4b98995ad299b84814a839880c2b08 Mon Sep 17 00:00:00 2001 From: Lars Bogner Date: Thu, 11 Jun 2026 10:45:17 +0200 Subject: [PATCH] remove example files, mac files, and unused docker variants Keep only the core C++ source and docker/Dockerfile-mini. Removes: - exampleB4a (example executable and associated scripts) - Geant4 macro (.mac) files - ROOT plotting scripts - GNUmakefile (old non-CMake build system) - All Dockerfiles and scripts except Dockerfile-mini Co-Authored-By: Claude Sonnet 4.6 --- CMakeLists.txt | 30 +- GNUmakefile | 21 - docker/Dockerfile | 139 ----- docker/Dockerfile-cpu | 132 ----- docker/build.sh | 95 --- docker/build_cpu.sh | 73 --- docker/build_mini.sh | 74 --- docker/check_cuda_torch.py | 26 - docker/fix-permissions | 33 -- docker/start-notebook.py | 44 -- docker/start-notebook.sh | 35 -- docker/start-singleuser.py | 26 - docker/start-singleuser.sh | 5 - exampleB4.in | 23 - exampleB4a.cc | 285 --------- exampleB4a.out | 1111 ------------------------------------ gui.mac | 37 -- init_vis.mac | 17 - plotHisto.C | 43 -- plotNtuple.C | 42 -- run1.mac | 44 -- run2.mac | 17 - vis.mac | 82 --- 23 files changed, 1 insertion(+), 2433 deletions(-) delete mode 100644 GNUmakefile delete mode 100644 docker/Dockerfile delete mode 100644 docker/Dockerfile-cpu delete mode 100755 docker/build.sh delete mode 100755 docker/build_cpu.sh delete mode 100755 docker/build_mini.sh delete mode 100755 docker/check_cuda_torch.py delete mode 100755 docker/fix-permissions delete mode 100755 docker/start-notebook.py delete mode 100755 docker/start-notebook.sh delete mode 100755 docker/start-singleuser.py delete mode 100755 docker/start-singleuser.sh delete mode 100644 exampleB4.in delete mode 100644 exampleB4a.cc delete mode 100644 exampleB4a.out delete mode 100644 gui.mac delete mode 100644 init_vis.mac delete mode 100644 plotHisto.C delete mode 100644 plotNtuple.C delete mode 100644 run1.mac delete mode 100644 run2.mac delete mode 100644 vis.mac diff --git a/CMakeLists.txt b/CMakeLists.txt index 642a1a4..b0133e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,38 +55,10 @@ target_link_libraries(minicalo PUBLIC ${Geant4_LIBRARIES} ${Python3_LIBRARIES}) #---------------------------------------------------------------------------- # Add the executable, and link it to the Geant4 and Python libraries # -add_executable(exampleB4a exampleB4a.cc ${sources} ${headers}) -target_link_libraries(exampleB4a ${Geant4_LIBRARIES} ${Python3_LIBRARIES}) - add_executable(run_pbwo4 run_pbwo4.cc ${sources} ${headers}) target_link_libraries(run_pbwo4 ${Geant4_LIBRARIES} ${Python3_LIBRARIES}) -#---------------------------------------------------------------------------- -# Copy all scripts to the build directory, i.e. the directory in which we -# build B4a. This is so that we can run the executable directly because it -# relies on these scripts being in the current working directory. -# -set(EXAMPLEB4A_SCRIPTS - exampleB4a.out - exampleB4.in - gui.mac - init_vis.mac - plotHisto.C - plotNtuple.C - run1.mac - run2.mac - vis.mac -) - -foreach(_script ${EXAMPLEB4A_SCRIPTS}) - configure_file( - ${PROJECT_SOURCE_DIR}/${_script} - ${PROJECT_BINARY_DIR}/${_script} - COPYONLY - ) -endforeach() - #---------------------------------------------------------------------------- # Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX # -#install(TARGETS exampleB4a DESTINATION bin) +#install(TARGETS run_pbwo4 DESTINATION bin) diff --git a/GNUmakefile b/GNUmakefile deleted file mode 100644 index c84b365..0000000 --- a/GNUmakefile +++ /dev/null @@ -1,21 +0,0 @@ -# -------------------------------------------------------------- -# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. -# -------------------------------------------------------------- - -name := exampleB4a -G4TARGET := $(name) -G4EXLIB := true - -ifndef G4INSTALL - G4INSTALL = ../../.. -endif - -.PHONY: all -all: lib bin - -include $(G4INSTALL)/config/binmake.gmk - -visclean: - rm -f g4*.prim g4*.eps g4*.wrl - rm -f .DAWN_* - diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index a59ee64..0000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,139 +0,0 @@ -FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04 - -SHELL ["/bin/sh", "-c"] - -USER root - -ENV DEBIAN_FRONTEND=noninteractive - -RUN /usr/bin/ls -RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list - -## Install some deps -#RUN ls /etc/apt/ -RUN apt-get update -y -RUN apt-get install -y software-properties-common -RUN add-apt-repository ppa:deadsnakes/ppa -RUN apt-get update -y && apt-get upgrade -y -RUN apt-get install -y python3 python3-dev python3-venv python3-pip -#RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 100 - -RUN apt-get install -y dpkg-dev cmake g++ gcc binutils libx11-dev libxpm-dev libxft-dev libxext-dev libssl-dev - -#RUN python3 --version && python3 -m ensurepip -RUN python3 -m pip install --upgrade pip - -RUN python3 -m pip install pandas numpy matplotlib MarkupSafe wandb uproot setuptools awkward-pandas plotly -RUN python3 -m pip install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 -RUN python3 -m pip install torch_geometric -RUN python3 -m pip install torch-cluster -f https://data.pyg.org/whl/torch-2.1.0+cu118.html - -# # # # GEANT -RUN apt-get -y install libxmu-dev \ - libgl1-mesa-dev \ - libxerces-c-dev \ - libexpat1 \ - libx11-dev \ - libglu1-mesa-dev \ - freeglut3-dev \ - mesa-common-dev \ - imagemagick \ - gv wget autotools-dev libicu-dev libbz2-dev - - - -## DAWN FOR VIS - -RUN mkdir dawn-source \ - && wget -q -O - http://geant4.kek.jp/~tanaka/src/dawn_3_91a.tgz | tar xzf - -C "dawn-source" \ - && export DAWN_PS_PREVIEWER=NONE && cd dawn-source/dawn_3_91a \ - && make clean && make guiclean && make && make install \ - && cd - && rm -rf "dawn-source" - -## main package — build Geant4 from submodule source -ADD minicalosim/lib/geant4 /tmp/geant4-src - -RUN rm -f /tmp/geant4-src/.git && \ - cmake \ - -S /tmp/geant4-src \ - -B /tmp/geant4-build \ - -DCMAKE_INSTALL_PREFIX=/opt/geant4-v11.1.2 \ - -DCMAKE_RULE_MESSAGES=OFF \ - -DGEANT4_INSTALL_DATA=ON \ - -DGEANT4_USE_GDML=ON \ - -DGEANT4_USE_OPENGL_X11=ON \ - -DGEANT4_BUILD_MULTITHREADED=OFF \ - -DGEANT4_BUILD_TLS_MODEL=global-dynamic \ - -DGEANT4_USE_RAYTRACER_X11=ON \ - >/dev/null && \ - cmake --build /tmp/geant4-build --parallel $(( $(nproc) < 16 ? $(nproc) : 16 )) >/dev/null && \ - cmake --install /tmp/geant4-build >/dev/null && \ - rm -rf /tmp/geant4-src /tmp/geant4-build - - -RUN python3 -m pip install geant4-pybind - -ENV LD_LIBRARY_PATH="/opt/geant4-v11.1.2/lib:${LD_LIBRARY_PATH}" - -RUN apt-get install -y git - -RUN python3 -m pip install ipython -RUN apt-get install -y tk # for dawn - -# add jupyter packages for UC2 on top so they don't need to be installed every time -RUN python3 -m pip install jupyterlab jupyterhub==4.1.5 batchspawner -RUN ln -s /usr/bin/python3 /usr/bin/python - - -RUN python3 -m pip install torch-scatter -f https://data.pyg.org/whl/torch-2.1.0+cu118.html - -#finally the package; use the commit hash to check out the correct version and only get them here, such that the rest can be cached -ARG BUILD_DATE -LABEL org.label-schema.build-date=$BUILD_DATE -ARG COMMIT -ARG USER - -# copy minicalosim and checkout the correct commit -ADD minicalosim /root/minicalosim - -RUN cd /root/minicalosim && git checkout $COMMIT && \ - git submodule update --init lib/pybind11 && \ - mkdir -p build && cd build && rm -rf * && cmake ../ && make -j$(( $(nproc) < 16 ? $(nproc) : 16 )) - - -RUN echo "commit = '${COMMIT}'" > /root/minicalosim/bind/minicalo_version.py - -RUN cp /root/minicalosim/build/minicalo* /root/minicalosim/bind/G4Calo.py /root/minicalosim/bind/minicalo_tools.py /root/minicalosim/bind/minipandas.py /root/minicalosim/bind/minicalo_version.py /usr/local/lib/python3.10/dist-packages/ - -RUN cp /root/minicalosim/bind/G4Calo_exec.py /usr/local/bin/ - -RUN cp -r /root/minicalosim/bind /examples - -RUN cp /root/minicalosim/docker/start-notebook.py /usr/local/bin/ -RUN cp /root/minicalosim/docker/start-notebook.sh /usr/local/bin/ -RUN cp /root/minicalosim/docker/start-singleuser.py /usr/local/bin/ -RUN cp /root/minicalosim/docker/start-singleuser.sh /usr/local/bin/ -RUN cp /root/minicalosim/docker/fix-permissions /usr/local/bin/ -RUN cp /root/minicalosim/docker/check_cuda_torch.py /usr/local/bin/ - -ARG NB_USER="jovyan" -ARG NB_UID="1000" -ARG NB_GID="100" - -USER root - -#RUN groupadd -g ${NB_GID} ${NB_USER} && \ -RUN useradd -m -s /bin/bash -N -u ${NB_UID} -g ${NB_GID} ${NB_USER} - -RUN mkdir /etc/jupyter -RUN fix-permissions /etc/jupyter/ - - -# clean up -RUN rm -rf /root/minicalosim - -RUN pip3 install pyarrow fastparquet - -USER ${NB_UID} -CMD ["bash"] - diff --git a/docker/Dockerfile-cpu b/docker/Dockerfile-cpu deleted file mode 100644 index 9f5d447..0000000 --- a/docker/Dockerfile-cpu +++ /dev/null @@ -1,132 +0,0 @@ -FROM ubuntu:20.04 - -SHELL ["/bin/sh", "-c"] - -USER root - -ENV DEBIAN_FRONTEND=noninteractive - -RUN /usr/bin/ls -RUN sed -i "s,# deb http://archive.canonical.com/ubuntu,deb http://archive.canonical.com/ubuntu,g" /etc/apt/sources.list - -## Install some deps -#RUN ls /etc/apt/ -RUN apt-get update -y -RUN apt-get install -y software-properties-common -RUN add-apt-repository ppa:deadsnakes/ppa -RUN apt-get update -y && apt-get upgrade -y -RUN apt-get install -y python3 python3-dev python3-venv python3-pip -#RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 100 - -RUN apt-get install -y dpkg-dev cmake g++ gcc binutils libx11-dev libxpm-dev libxft-dev libxext-dev libssl-dev - -#RUN python3 --version && python3 -m ensurepip -RUN python3 -m pip install --upgrade pip - -RUN python3 -m pip install pandas numpy matplotlib MarkupSafe wandb uproot setuptools awkward-pandas plotly -RUN python3 -m pip install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 -RUN python3 -m pip install torch_geometric -RUN python3 -m pip install torch-cluster -f https://data.pyg.org/whl/torch-2.1.0+cu118.html - -# # # # GEANT -RUN apt-get -y install libxmu-dev \ - libgl1-mesa-dev \ - libxerces-c-dev \ - libexpat1 \ - libx11-dev \ - libglu1-mesa-dev \ - freeglut3-dev \ - mesa-common-dev \ - imagemagick \ - gv wget autotools-dev libicu-dev libbz2-dev - - - -## DAWN FOR VIS - -RUN mkdir dawn-source \ - && wget -q -O - http://geant4.kek.jp/~tanaka/src/dawn_3_91a.tgz | tar xzf - -C "dawn-source" \ - && export DAWN_PS_PREVIEWER=NONE && cd dawn-source/dawn_3_91a \ - && make clean && make guiclean && make && make install \ - && cd - && rm -rf "dawn-source" - -## main package — build Geant4 from submodule source -ADD minicalosim/lib/geant4 /tmp/geant4-src - -RUN rm -f /tmp/geant4-src/.git && \ - cmake \ - -S /tmp/geant4-src \ - -B /tmp/geant4-build \ - -DCMAKE_INSTALL_PREFIX=/opt/geant4-v11.1.2 \ - -DCMAKE_RULE_MESSAGES=OFF \ - -DGEANT4_INSTALL_DATA=ON \ - -DGEANT4_USE_GDML=ON \ - -DGEANT4_USE_OPENGL_X11=ON \ - -DGEANT4_BUILD_MULTITHREADED=ON \ - -DGEANT4_BUILD_TLS_MODEL=global-dynamic \ - -DGEANT4_USE_RAYTRACER_X11=ON \ - >/dev/null && \ - cmake --build /tmp/geant4-build --parallel $(( $(nproc) < 16 ? $(nproc) : 16 )) >/dev/null && \ - cmake --install /tmp/geant4-build >/dev/null && \ - rm -rf /tmp/geant4-src /tmp/geant4-build - - -RUN python3 -m pip install geant4-pybind - -ENV LD_LIBRARY_PATH="/opt/geant4-v11.1.2/lib:${LD_LIBRARY_PATH}" - -RUN apt-get install -y git - -RUN python3 -m pip install ipython -RUN apt-get install -y tk # for dawn - -# add jupyter packages for UC2 on top so they don't need to be installed every time -RUN python3 -m pip install jupyterlab jupyterhub==4.1.5 batchspawner -RUN ln -s /usr/bin/python3 /usr/bin/python - - -RUN python3 -m pip install torch-scatter -f https://data.pyg.org/whl/torch-2.1.0+cu118.html - -#finally the package; use the commit hash to check out the correct version and only get them here, such that the rest can be cached -ARG BUILD_DATE -LABEL org.label-schema.build-date=$BUILD_DATE -ARG COMMIT -ARG USER - -# copy minicalosim and checkout the correct commit -ADD minicalosim /root/minicalosim - -RUN cd /root/minicalosim && git checkout $COMMIT && \ - git submodule update --init lib/pybind11 && \ - mkdir -p build && cd build && rm -rf * && cmake ../ && make -j$(( $(nproc) < 16 ? $(nproc) : 16 )) &&\ - echo "commit = '${COMMIT}'" > ../bind/minicalo_version.py && \ - cp minicalo* ../bind/G4Calo.py ../bind/minicalo_version.py /usr/local/lib/python3.8/dist-packages/ - - - -RUN cp /root/minicalosim/docker/start-notebook.py /usr/local/bin/ -RUN cp /root/minicalosim/docker/start-notebook.sh /usr/local/bin/ -RUN cp /root/minicalosim/docker/start-singleuser.py /usr/local/bin/ -RUN cp /root/minicalosim/docker/start-singleuser.sh /usr/local/bin/ -RUN cp /root/minicalosim/docker/fix-permissions /usr/local/bin/ -RUN cp /root/minicalosim/docker/check_cuda_torch.py /usr/local/bin/ - -ARG NB_USER="jovyan" -ARG NB_UID="1000" -ARG NB_GID="100" - -USER root - -#RUN groupadd -g ${NB_GID} ${NB_USER} && \ -RUN useradd -m -s /bin/bash -N -u ${NB_UID} -g ${NB_GID} ${NB_USER} - -RUN mkdir /etc/jupyter -RUN fix-permissions /etc/jupyter/ - - -# clean up -RUN rm -rf /root/minicalosim - -USER ${NB_UID} -CMD ["start-notebook.sh"] - diff --git a/docker/build.sh b/docker/build.sh deleted file mode 100755 index 2aa89fb..0000000 --- a/docker/build.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/bash - -# a simple parser for the args and --no-cache -# if no commit is given, the latest commit is used -# if --no-cache is given, the --no-cache flag is passed to the docker build command -# if only --no-cache is given, the latest commit is used - -# check if commit is given as argument, if not use the latest commit -# check if an argument is given at all - - -if [ -n "$1" ]; then - #check if the first arg is --no-cache - if [ "$1" == "--no-cache" ]; then - FORCE_NO_CACHE="--no-cache" - COMMIT=$(git rev-parse --short HEAD) - else - COMMIT=$1 - #check if this is a valid commit - if ! git cat-file -e $COMMIT^{commit} 2>/dev/null; then - echo "ERROR: Commit $COMMIT not found in local repository." - exit 1 - fi - fi -else #default to last commit - COMMIT=$(git rev-parse --short HEAD) -fi - - -# COMMIT is a valid commit at this point. If COMMIT is the last commit and changes are not commited, the user is warned. - -#check if the commit is the last commit -if [ "$COMMIT" == "$(git rev-parse --short HEAD)" ]; then - # check if we have uncommitted changes and if so warn the user. - if [ -n "$(git status --porcelain)" ]; then - echo "WARNING: You are building the latest commit ${COMMIT}, but you have uncommitted changes." - echo " This means that the image will not be reproducible." - echo " If you want to build the latest commit, please commit your changes first." - read -p "Do you want to continue anyway? [y/N] " -n 1 -r - echo - if [[ ! $REPLY =~ ^[Yy]$ ]]; then - exit 1 - fi - fi -fi - -check_remote_commit_exists() { - # Usage: check_remote_commit_exists - local url="$1" - local commit="$2" - - # Create a temporary directory for a shallow fetch - local tmpdir - tmpdir="$(mktemp -d)" - trap 'rm -rf "$tmpdir"' RETURN # auto-cleanup on function exit - - git -C "$tmpdir" init -q - git -C "$tmpdir" remote add origin "$url" - - if git -C "$tmpdir" fetch --quiet --depth=1 origin "$commit" 2>/dev/null; then - echo "✅ Commit $commit exists on remote." - return 0 - else - echo "❌ ERROR: Commit $commit not found on remote." - echo "Refs currently visible on remote:" - git ls-remote --heads --tags "$url" - return 1 - fi -} - -# check if the commit has been pushed -if ! check_remote_commit_exists https://github.com/jkiesele/minicalosim $COMMIT; then - echo "ERROR: Commit $COMMIT not found in remote repository." -fi - -# check if no-cache is given as second argument -if [ "$2" == "--no-cache" ]; then - FORCE_NO_CACHE="--no-cache" -fi - -#switch to directory this script is located in -cd "$(dirname "$0")" -cd ../../ #switch to the root directory of the project -echo "Building minicalosim:$COMMIT" - -#print the current working directory -echo "Current working directory: $(pwd)" - -docker build $FORCE_NO_CACHE -t jkiesele/minicalosim:$COMMIT --build-arg USER=$USER --build-arg BUILD_DATE="$(date)" --build-arg COMMIT=$COMMIT -f minicalosim/docker/Dockerfile . - -echo "sucessfully built container jkiesele/minicalosim:${COMMIT}" - -docker tag jkiesele/minicalosim:$COMMIT jkiesele/minicalosim:latest - -echo "also tagged as jkiesele/minicalosim:latest" \ No newline at end of file diff --git a/docker/build_cpu.sh b/docker/build_cpu.sh deleted file mode 100755 index d751096..0000000 --- a/docker/build_cpu.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/bash - -# a simple parser for the args and --no-cache -# if no commit is given, the latest commit is used -# if --no-cache is given, the --no-cache flag is passed to the docker build command -# if only --no-cache is given, the latest commit is used - -# check if commit is given as argument, if not use the latest commit -# check if an argument is given at all - - -if [ -n "$1" ]; then - #check if the first arg is --no-cache - if [ "$1" == "--no-cache" ]; then - FORCE_NO_CACHE="--no-cache" - COMMIT=$(git rev-parse --short HEAD) - else - COMMIT=$1 - #check if this is a valid commit - if ! git cat-file -e $COMMIT^{commit} 2>/dev/null; then - echo "ERROR: Commit $COMMIT not found in local repository." - exit 1 - fi - fi -else #default to last commit - COMMIT=$(git rev-parse --short HEAD) -fi - - -# COMMIT is a valid commit at this point. If COMMIT is the last commit and changes are not commited, the user is warned. - -#check if the commit is the last commit -if [ "$COMMIT" == "$(git rev-parse --short HEAD)" ]; then - # check if we have uncommitted changes and if so warn the user. - if [ -n "$(git status --porcelain)" ]; then - echo "WARNING: You are building the latest commit ${COMMIT}, but you have uncommitted changes." - echo " This means that the image will not be reproducible." - echo " If you want to build the latest commit, please commit your changes first." - read -p "Do you want to continue anyway? [y/N] " -n 1 -r - echo - if [[ ! $REPLY =~ ^[Yy]$ ]]; then - exit 1 - fi - fi -fi - -# check if the commit has been pushed -REMOTE_COMMIT=$(git ls-remote https://gitlab.etp.kit.edu/jkiesele/minicalosim.git | grep $COMMIT) -if [ -z "$REMOTE_COMMIT" ]; then - echo "ERROR: Commit $COMMIT not found in remote repository." - exit 1 -fi - -# check if no-cache is given as second argument -if [ "$2" == "--no-cache" ]; then - FORCE_NO_CACHE="--no-cache" -fi - -#switch to directory this script is located in -cd "$(dirname "$0")" -cd ../../ #switch to the root directory of the project -echo "Building minicalosim_cpu:$COMMIT" - -#print the current working directory -echo "Current working directory: $(pwd)" - -docker build $FORCE_NO_CACHE -t jkiesele/minicalosim_cpu:$COMMIT --build-arg USER=$USER --build-arg BUILD_DATE="$(date)" --build-arg COMMIT=$COMMIT -f minicalosim/docker/Dockerfile-cpu . - -echo "sucessfully built container jkiesele/minicalosim_cpu:${COMMIT}" - -docker tag jkiesele/minicalosim_cpu:$COMMIT jkiesele/minicalosim_cpu:latest - -echo "also tagged as jkiesele/minicalosim_cpu:latest" \ No newline at end of file diff --git a/docker/build_mini.sh b/docker/build_mini.sh deleted file mode 100755 index 3cd5f08..0000000 --- a/docker/build_mini.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/bash - -if [ -n "$1" ]; then - if [ "$1" == "--no-cache" ]; then - FORCE_NO_CACHE="--no-cache" - COMMIT=$(git rev-parse --short HEAD) - else - COMMIT=$1 - if ! git cat-file -e $COMMIT^{commit} 2>/dev/null; then - echo "ERROR: Commit $COMMIT not found in local repository." - exit 1 - fi - fi -else - COMMIT=$(git rev-parse --short HEAD) -fi - -if [ "$COMMIT" == "$(git rev-parse --short HEAD)" ]; then - if [ -n "$(git status --porcelain)" ]; then - echo "WARNING: You are building the latest commit ${COMMIT}, but you have uncommitted changes." - echo " This means that the image will not be reproducible." - echo " If you want to build the latest commit, please commit your changes first." - read -p "Do you want to continue anyway? [y/N] " -n 1 -r - echo - if [[ ! $REPLY =~ ^[Yy]$ ]]; then - exit 1 - fi - fi -fi - -check_remote_commit_exists() { - local url="$1" - local commit="$2" - local tmpdir - tmpdir="$(mktemp -d)" - trap 'rm -rf "$tmpdir"' RETURN - git -C "$tmpdir" init -q - git -C "$tmpdir" remote add origin "$url" - if git -C "$tmpdir" fetch --quiet --depth=1 origin "$commit" 2>/dev/null; then - echo "✅ Commit $commit exists on remote." - return 0 - else - echo "❌ ERROR: Commit $commit not found on remote." - echo "Refs currently visible on remote:" - git ls-remote --heads --tags "$url" - return 1 - fi -} - -if ! check_remote_commit_exists https://github.com/jkiesele/minicalosim $COMMIT; then - echo "WARNING: Commit $COMMIT not found in remote repository." -fi - -if [ "$2" == "--no-cache" ]; then - FORCE_NO_CACHE="--no-cache" -fi - -cd "$(dirname "$0")" -cd ../../ -echo "Building minicalosim-mini:$COMMIT" -echo "Current working directory: $(pwd)" - -docker build $FORCE_NO_CACHE \ - -t jkiesele/minicalosim-mini:$COMMIT \ - --build-arg USER=$USER \ - --build-arg BUILD_DATE="$(date)" \ - --build-arg COMMIT=$COMMIT \ - -f minicalosim/docker/Dockerfile-mini . - -echo "successfully built container jkiesele/minicalosim-mini:${COMMIT}" - -docker tag jkiesele/minicalosim-mini:$COMMIT jkiesele/minicalosim-mini:latest - -echo "also tagged as jkiesele/minicalosim-mini:latest" diff --git a/docker/check_cuda_torch.py b/docker/check_cuda_torch.py deleted file mode 100755 index 8ef2ce3..0000000 --- a/docker/check_cuda_torch.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python -''' -little script to check if cuda is available in pytorch and working -organised as a check that raises an exception if cuda is not available, and data cannot be moved to the gpu -''' -import torch -import numpy as np -import os - -def check_cuda(): - if not torch.cuda.is_available(): - raise Exception("CUDA is not available. Please check if you have installed the correct version of CUDA and the correct version of the NVIDIA driver.") - - try: - a = torch.tensor([1,2,3]) - a = a.cuda() - a = a*a - except: - raise Exception("Cannot move data to the GPU. Please check if you have installed the correct version of CUDA and the correct version of the NVIDIA driver.") - - print("CUDA is available and working correctly.") - -if __name__ == '__main__': - check_cuda() - print("All checks passed.") - os._exit(0) \ No newline at end of file diff --git a/docker/fix-permissions b/docker/fix-permissions deleted file mode 100755 index d540462..0000000 --- a/docker/fix-permissions +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -# Set permissions on a directory -# After any installation, if a directory needs to be (human) user-writable, run this script on it. -# It will make everything in the directory owned by the group ${NB_GID} and writable by that group. -# Deployments that want to set a specific user id can preserve permissions -# by adding the `--group-add users` line to `docker run`. - -# Uses find to avoid touching files that already have the right permissions, -# which would cause a massive image explosion - -# Right permissions are: -# group=${NB_GID} -# AND permissions include group rwX (directory-execute) -# AND directories have setuid,setgid bits set - -set -e - -for d in "$@"; do - find "${d}" \ - ! \( \ - -group "${NB_GID}" \ - -a -perm -g+rwX \ - \) \ - -exec chgrp "${NB_GID}" -- {} \+ \ - -exec chmod g+rwX -- {} \+ - # setuid, setgid *on directories only* - find "${d}" \ - \( \ - -type d \ - -a ! -perm -6000 \ - \) \ - -exec chmod +6000 -- {} \+ -done \ No newline at end of file diff --git a/docker/start-notebook.py b/docker/start-notebook.py deleted file mode 100755 index 973da5a..0000000 --- a/docker/start-notebook.py +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env python -# Copyright (c) Jupyter Development Team. -# Distributed under the terms of the Modified BSD License. -import os -import shlex -import sys - -# If we are in a JupyterHub, we pass on to `start-singleuser.py` instead so it does the right thing -if "JUPYTERHUB_API_TOKEN" in os.environ: - print( - "WARNING: using start-singleuser.py instead of start-notebook.py to start a server associated with JupyterHub." - ) - command = ["/usr/local/bin/start-singleuser.py"] + sys.argv[1:] - os.execvp(command[0], command) - - -# Entrypoint is start.sh -command = [] - -# If we want to survive restarts, launch the command using `run-one-constantly` -if os.environ.get("RESTARTABLE") == "yes": - command.append("run-one-constantly") - -# We always launch a jupyter subcommand from this script -command.append("jupyter") - -# Launch the configured subcommand. -# Note that this should be a single string, so we don't split it. -# We default to `lab`. -jupyter_command = os.environ.get("DOCKER_STACKS_JUPYTER_CMD", "lab") -command.append(jupyter_command) - -# Append any optional NOTEBOOK_ARGS we were passed in. -# This is supposed to be multiple args passed on to the notebook command, -# so we split it correctly with shlex -if "NOTEBOOK_ARGS" in os.environ: - command += shlex.split(os.environ["NOTEBOOK_ARGS"]) - -# Pass through any other args we were passed on the command line -command += sys.argv[1:] - -# Execute the command! -print("Executing: " + " ".join(command)) -os.execvp(command[0], command) diff --git a/docker/start-notebook.sh b/docker/start-notebook.sh deleted file mode 100755 index 41db342..0000000 --- a/docker/start-notebook.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# Shim to emit warning and call start-notebook.py -echo "WARNING: Use start-notebook.py instead" - -if id jovyan &> /dev/null; then - if ! usermod --home "/home/${NB_USER}" --login "${NB_USER}" jovyan 2>&1 | grep "no changes" > /dev/null; then - echo "Updated the jovyan user:" - echo "- username: jovyan -> ${NB_USER}" - echo "- home dir: /home/jovyan -> /home/${NB_USER}" - fi -elif ! id -u "${NB_USER}" &> /dev/null; then - echo "ERROR: Neither the jovyan user nor '${NB_USER}' exists. This could be the result of stopping and starting, the container with a different NB_USER environment variable." - exit 1 -fi -# Ensure the desired user (NB_USER) gets its desired user id (NB_UID) and is -# a member of the desired group (NB_GROUP, NB_GID) -if [ "${NB_UID}" != "$(id -u "${NB_USER}")" ] || [ "${NB_GID}" != "$(id -g "${NB_USER}")" ]; then - echo "Update ${NB_USER}'s UID:GID to ${NB_UID}:${NB_GID}" - # Ensure the desired group's existence - if [ "${NB_GID}" != "$(id -g "${NB_USER}")" ]; then - groupadd --force --gid "${NB_GID}" --non-unique "${NB_GROUP:-${NB_USER}}" - fi - # Recreate the desired user as we want it - userdel "${NB_USER}" - useradd --no-log-init --home "/home/${NB_USER}" --shell /bin/bash --uid "${NB_UID}" --gid "${NB_GID}" --groups 100 "${NB_USER}" -fi - - -# if root change user to jovyan -if [ "$EUID" -eq 0 ]; then - echo "WARNING: Running as root. Use start-notebook.py to run as ${NB_USER} user" - exec su ${NB_USER} -c "exec /usr/local/bin/start-notebook.py $@" -else - exec /usr/local/bin/start-notebook.py "$@" -fi diff --git a/docker/start-singleuser.py b/docker/start-singleuser.py deleted file mode 100755 index c80339f..0000000 --- a/docker/start-singleuser.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python -# Copyright (c) Jupyter Development Team. -# Distributed under the terms of the Modified BSD License. -import os -import shlex -import sys - -# Entrypoint is start.sh -command = ["jupyterhub-singleuser"] - -# set default ip to 0.0.0.0 -if "--ip=" not in os.environ.get("NOTEBOOK_ARGS", ""): - command.append("--ip=0.0.0.0") - -# Append any optional NOTEBOOK_ARGS we were passed in. -# This is supposed to be multiple args passed on to the notebook command, -# so we split it correctly with shlex -if "NOTEBOOK_ARGS" in os.environ: - command += shlex.split(os.environ["NOTEBOOK_ARGS"]) - -# Pass any other args we have been passed through -command += sys.argv[1:] - -# Execute the command! -print("Executing: " + " ".join(command)) -os.execvp(command[0], command) diff --git a/docker/start-singleuser.sh b/docker/start-singleuser.sh deleted file mode 100755 index ecf0e06..0000000 --- a/docker/start-singleuser.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -# Shim to emit warning and call start-singleuser.py -echo "WARNING: Use start-singleuser.py instead" - -exec /usr/local/bin/start-singleuser.py "$@" diff --git a/exampleB4.in b/exampleB4.in deleted file mode 100644 index 02052f0..0000000 --- a/exampleB4.in +++ /dev/null @@ -1,23 +0,0 @@ -# Macro file for example B4 test - -/run/initialize - -# e+ 300MeV -/gun/particle e+ -/gun/energy 300 MeV -/run/beamOn 1 -# -# list the existing physics processes -/process/list -# -# switch off MultipleScattering -/process/inactivate msc -/run/beamOn 1 -# -# switch on MultipleScattering -/process/activate msc -# -# change detector parameter -/gun/particle gamma -/gun/energy 500 MeV -/run/beamOn 1 diff --git a/exampleB4a.cc b/exampleB4a.cc deleted file mode 100644 index 55351f9..0000000 --- a/exampleB4a.cc +++ /dev/null @@ -1,285 +0,0 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// -/// \file exampleB4a.cc -/// \brief Main program of the B4a example - -#include "DetectorConstruction.hh" -#include "ActionInitialization.hh" - -#include "G4RunManagerFactory.hh" -#include "G4SteppingVerbose.hh" -#include "G4UIcommand.hh" -#include "G4UImanager.hh" -#include "G4UIExecutive.hh" -#include "G4VisExecutive.hh" -#include "FTFP_BERT.hh" -#include "Randomize.hh" - -#include "GeometryDescriptor.hh" - -#include "G4System.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - - - - - - -namespace { - void PrintUsage() { - G4cerr << " Usage: " << G4endl; - G4cerr << " exampleB4a [-m macro ] [-u UIsession] [-t nThreads] [-vDefault]" - << G4endl; - G4cerr << " note: -t option is available only for multi-threaded mode." - << G4endl; - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -int main2(int argc,char** argv) -{ - // Evaluate arguments - // - if ( argc > 7 ) { - PrintUsage(); - return 1; - } - - G4String macro; - G4String session; - G4bool verboseBestUnits = true; -#ifdef G4MULTITHREADED - G4int nThreads = 0; -#endif - for ( G4int i=1; i 0 ) { - runManager->SetNumberOfThreads(nThreads); - } -#endif - - GeometryDescriptor * cw = new GeometryDescriptor(); - cw->addLayer(1, "G4_Pb", false); - cw->addLayer(10, "G4_Si", true, 9); - cw->addLayer(1, "G4_Pb", false); - cw->addLayer(20, "G4_Si", true, 15); - cw->addLayer(4, "G4_Pb", false); - cw->addLayer(3, "G4_Si", true, 23); - - - // Set mandatory initialization classes - // - auto detConstruction = new B4::DetectorConstruction(cw); - - runManager->SetUserInitialization(detConstruction); - - auto physicsList = new FTFP_BERT; - runManager->SetUserInitialization(physicsList); - - auto actionInitialization = new B4a::ActionInitialization(detConstruction); - runManager->SetUserInitialization(actionInitialization); - - actionInitialization->setGeneratorProperties(100, 1000, "e-"); - - // Initialize visualization - // - auto visManager = new G4VisExecutive; - // G4VisExecutive can take a verbosity argument - see /vis/verbose guidance. - // G4VisManager* visManager = new G4VisExecutive("Quiet"); - visManager->Initialize(); - - // Get the pointer to the User Interface manager - auto UImanager = G4UImanager::GetUIpointer(); - - // Process macro or start UI session - // - if ( macro.size() ) { - // batch mode - G4String command = "/control/execute "; - UImanager->ApplyCommand(command+macro); - } - else { - // interactive mode : define UI session - UImanager->ApplyCommand("/control/execute init_vis.mac"); - if (ui->IsGUI()) { - UImanager->ApplyCommand("/control/execute gui.mac"); - } - ui->SessionStart(); - delete ui; - } - - // Job termination - // Free the store: user actions, physics_list and detector_description are - // owned and deleted by the run manager, so they should not be deleted - // in the main() program ! - - delete visManager; - delete runManager; - delete cw; - return 0; -} - -//later -//class Runner { -//public: -// void initialize(GeometryDescriptor CW, bool gui=false); -// void run(int nEvents, std::string partSpecies, double minEnergy, double maxEnergy); -//} - -void run(GeometryDescriptor CW, int nEvents, std::string partSpecies, double minEnergy, double maxEnergy, bool gui=false){ - - char* argv[]={(char*)"dummy"}; - - // Construct the default run manager - // - auto* runManager = - G4RunManagerFactory::CreateRunManager(G4RunManagerType::Default); - runManager->SetNumberOfThreads(1); - - GeometryDescriptor * cw = &CW; - G4String session; - G4UIExecutive* ui = nullptr; - if ( gui ) { - ui = new G4UIExecutive((int)1, argv, session); - } - - // Set mandatory initialization classes - // - auto detConstruction = new B4::DetectorConstruction(cw); - - runManager->SetUserInitialization(detConstruction); - - auto physicsList = new FTFP_BERT; - runManager->SetUserInitialization(physicsList); - - auto actionInitialization = new B4a::ActionInitialization(detConstruction); - runManager->SetUserInitialization(actionInitialization); - - actionInitialization->setGeneratorProperties(minEnergy, maxEnergy, partSpecies); - - // Initialize visualization - // - auto visManager = new G4VisExecutive; - // G4VisExecutive can take a verbosity argument - see /vis/verbose guidance. - // G4VisManager* visManager = new G4VisExecutive("Quiet"); - visManager->Initialize(); - - // Get the pointer to the User Interface manager - auto UImanager = G4UImanager::GetUIpointer(); - - // Process macro or start UI session - // - - - if ( gui ) { - // interactive mode : define UI session - UImanager->ApplyCommand("/control/execute init_vis.mac"); - if (ui->IsGUI()) { - UImanager->ApplyCommand("/control/execute gui.mac"); - } - ui->SessionStart(); - delete ui; - } - else { - G4String command = "/control/execute run1.mac"; - UImanager->ApplyCommand("/run/initialize"); - UImanager->ApplyCommand("/run/beamOn "+ std::to_string(nEvents)); - } - - - // Job termination - // Free the store: user actions, physics_list and detector_description are - // owned and deleted by the run manager, so they should not be deleted - // in the main() program ! - delete visManager; - delete runManager; - -} - -int main(){ - - GeometryDescriptor cw; - //to be moved - cw.addLayer(1, "G4_Pb", false); - cw.addLayer(10, "G4_Si", true, 9); - cw.addLayer(1, "G4_Pb", false); - cw.addLayer(20, "G4_Si", true, 15); - cw.addLayer(4, "G4_Pb", false); - cw.addLayer(3, "G4_Si", true, 23); - - G4System builder(true); - builder.init(cw); - //builder.run_gui(); - std::vector parts = {"e-"}; - builder.run_batch(10000,parts , 1, 100); - - //run(cw, 1000, "e-", 1, 100, true); - - return 0; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... - diff --git a/exampleB4a.out b/exampleB4a.out deleted file mode 100644 index 2c978fa..0000000 --- a/exampleB4a.out +++ /dev/null @@ -1,1111 +0,0 @@ -Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type... - - ############################################ - !!! WARNING - FPE detection is activated !!! - ############################################ - - - ################################ - !!! G4Backtrace is activated !!! - ################################ - - -************************************************************** - Geant4 version Name: geant4-11-01-patch-02 (15-June-2023) - Copyright : Geant4 Collaboration - References : NIM A 506 (2003), 250-303 - : IEEE-TNS 53 (2006), 270-278 - : NIM A 835 (2016), 186-225 - WWW : http://geant4.org/ -************************************************************** - -<<< Geant4 Physics List simulation engine: FTFP_BERT - -Visualization Manager instantiating with verbosity "warnings (3)"... -Visualization Manager initialising... -Registering graphics systems... - -You have successfully registered the following graphics systems. -Registered graphics systems are: - ASCIITree (ATree) - DAWNFILE (DAWNFILE) - G4HepRepFile (HepRepFile) - RayTracer (RayTracer) - VRML2FILE (VRML2FILE) - gMocrenFile (gMocrenFile) - TOOLSSG_OFFSCREEN (TSG_OFFSCREEN) - TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE) - OpenGLImmediateQt (OGLIQt, OGLI) - OpenGLStoredQt (OGLSQt, OGL, OGLS) - OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK) - OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK) - OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK) - OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK) - RayTracerX (RayTracerX) - Qt3D (Qt3D) - TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK) - TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK) - TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG) - -Registering model factories... - -You have successfully registered the following model factories. -Registered model factories: - generic - drawByAttribute - drawByCharge - drawByOriginVolume - drawByParticleID - drawByEncounteredVolume - -Registered models: - None - -Registered filter factories: - attributeFilter - chargeFilter - originVolumeFilter - particleFilter - encounteredVolumeFilter - -Registered filters: - None - -You have successfully registered the following user vis actions. -Run Duration User Vis Actions: none -End of Event User Vis Actions: none -End of Run User Vis Actions: none - -Some /vis commands (optionally) take a string to specify colour. -"/vis/list" to see available colours. - -***** Table : Nb of materials = 3 ***** - - Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.248 cm - Imean: 823.000 eV temperature: 293.15 K pressure: 1.00 atm - - ---> Element: Pb (Pb) Z = 82.0 N = 207 A = 207.217 g/mole - ---> Isotope: Pb204 Z = 82 N = 204 A = 203.97 g/mole abundance: 1.400 % - ---> Isotope: Pb206 Z = 82 N = 206 A = 205.97 g/mole abundance: 24.100 % - ---> Isotope: Pb207 Z = 82 N = 207 A = 206.98 g/mole abundance: 22.100 % - ---> Isotope: Pb208 Z = 82 N = 208 A = 207.98 g/mole abundance: 52.400 % - ElmMassFraction: 100.00 % ElmAbundance 100.00 % - - - Material: liquidArgon density: 1.390 g/cm3 RadL: 14.064 cm Nucl.Int.Length: 86.076 cm - Imean: 188.000 eV temperature: 293.15 K pressure: 1.00 atm - - ---> Element: Ar (Ar) Z = 18.0 N = 40 A = 39.948 g/mole - ---> Isotope: Ar36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.337 % - ---> Isotope: Ar38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.063 % - ---> Isotope: Ar40 Z = 18 N = 40 A = 39.96 g/mole abundance: 99.600 % - ElmMassFraction: 100.00 % ElmAbundance 100.00 % - - - Material: Galactic density: 0.000 mg/cm3 RadL: 204310098.490 pc Nucl.Int.Length: 113427284.261 pc - Imean: 19.200 eV temperature: 2.73 K pressure: 0.00 atm - - ---> Element: H (H) Z = 1.0 N = 1 A = 1.008 g/mole - ---> Isotope: H1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.989 % - ---> Isotope: H2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.011 % - ElmMassFraction: 100.00 % ElmAbundance 100.00 % - - - -Checking overlaps for volume Calorimeter:0 (G4Box) ... OK! -Checking overlaps for volume Abso:0 (G4Box) ... OK! -Checking overlaps for volume Gap:0 (G4Box) ... OK! - ------------------------------------------------------------- ----> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of liquidArgon ] ------------------------------------------------------------- - - hInelastic FTFP_BERT : threshold between BERT and FTFP is over the interval - for pions : 3 to 6 GeV - for kaons : 3 to 6 GeV - for proton : 3 to 6 GeV - for neutron : 3 to 6 GeV - -### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 -======================================================================= -====== Electromagnetic Physics Parameters ======== -======================================================================= -LPM effect enabled 1 -Enable creation and use of sampling tables 0 -Apply cuts on all EM processes 0 -Use combined TransportationWithMsc Disabled -Use general process 1 -Enable linear polarisation for gamma 0 -Enable photoeffect sampling below K-shell 1 -Enable sampling of quantum entanglement 0 -X-section factor for integral approach 0.8 -Min kinetic energy for tables 100 eV -Max kinetic energy for tables 100 TeV -Number of bins per decade of a table 7 -Verbose level 1 -Verbose level for worker thread 0 -Bremsstrahlung energy threshold above which - primary e+- is added to the list of secondary 100 TeV -Bremsstrahlung energy threshold above which primary - muon/hadron is added to the list of secondary 100 TeV -Lowest triplet kinetic energy 1 MeV -Enable sampling of gamma linear polarisation 0 -5D gamma conversion model type 0 -5D gamma conversion model on isolated ion 0 -Livermore data directory epics_2017 -======================================================================= -====== Ionisation Parameters ======== -======================================================================= -Step function for e+- (0.2, 1 mm) -Step function for muons/hadrons (0.2, 0.1 mm) -Step function for light ions (0.2, 0.1 mm) -Step function for general ions (0.2, 0.1 mm) -Lowest e+e- kinetic energy 1 keV -Lowest muon/hadron kinetic energy 1 keV -Use ICRU90 data 0 -Fluctuations of dE/dx are enabled 1 -Type of fluctuation model for leptons and hadrons Urban -Use built-in Birks satuaration 0 -Build CSDA range enabled 0 -Use cut as a final range enabled 0 -Enable angular generator interface 0 -Max kinetic energy for CSDA tables 1 GeV -Max kinetic energy for NIEL computation 0 eV -Linear loss limit 0.01 -Read data from file for e+e- pair production by mu 0 -======================================================================= -====== Multiple Scattering Parameters ======== -======================================================================= -Type of msc step limit algorithm for e+- 1 -Type of msc step limit algorithm for muons/hadrons 0 -Msc lateral displacement for e+- enabled 1 -Msc lateral displacement for muons and hadrons 0 -Urban msc model lateral displacement alg96 1 -Range factor for msc step limit for e+- 0.04 -Range factor for msc step limit for muons/hadrons 0.2 -Geometry factor for msc step limitation of e+- 2.5 -Safety factor for msc step limit for e+- 0.6 -Skin parameter for msc step limitation of e+- 1 -Lambda limit for msc step limit for e+- 1 mm -Use Mott correction for e- scattering 0 -Factor used for dynamic computation of angular - limit between single and multiple scattering 1 -Fixed angular limit between single - and multiple scattering 3.1416 rad -Upper energy limit for e+- multiple scattering 100 MeV -Type of electron single scattering model 0 -Type of nuclear form-factor 1 -Screening factor 1 -======================================================================= - -phot: for gamma SubType=12 BuildTable=0 - LambdaPrime table from 200 keV to 100 TeV in 61 bins - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo - -compt: for gamma SubType=13 BuildTable=1 - Lambda table from 100 eV to 1 MeV, 7 bins/decade, spline: 1 - LambdaPrime table from 1 MeV to 100 TeV in 56 bins - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - Klein-Nishina : Emin= 0 eV Emax= 100 TeV - -conv: for gamma SubType=14 BuildTable=1 - Lambda table from 1.022 MeV to 100 TeV, 18 bins/decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BetheHeitlerLPM : Emin= 0 eV Emax= 100 TeV ModifiedTsai - -Rayl: for gamma SubType=11 BuildTable=1 - Lambda table from 100 eV to 150 keV, 7 bins/decade, spline: 0 - LambdaPrime table from 150 keV to 100 TeV in 62 bins - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator - -msc: for e- SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV - StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm - WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV - StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm - -eIoni: for e- XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 TeV - -eBrem: for e- XStype:4 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai - eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai - -CoulombScat: for e- XStype:1 SubType=1 BuildTable=1 - Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 100 MeV Emax= 100 TeV - -msc: for e+ SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 MeV Nbins=42 100 eV - 100 MeV - StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm - WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=42 100 MeV - 100 TeV - StepLim=UseSafety Rfact=0.04 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=1 Llim=1 mm - -eIoni: for e+ XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - StepFunction=(0.2, 1 mm), integ: 3, fluct: 1, linLossLim= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MollerBhabha : Emin= 0 eV Emax= 100 TeV - -eBrem: for e+ XStype:4 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eBremSB : Emin= 0 eV Emax= 1 GeV ModifiedTsai - eBremLPM : Emin= 1 GeV Emax= 100 TeV ModifiedTsai - -annihil: for e+ XStype:2 SubType=5 BuildTable=0 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eplus2gg : Emin= 0 eV Emax= 100 TeV - -CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1 - Lambda table from 100 MeV to 100 TeV, 7 bins/decade, spline: 0 - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 100 MeV Emax= 100 TeV - -msc: for proton SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm - -hIoni: for proton XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - Bragg : Emin= 0 eV Emax= 2 MeV - BetheBloch : Emin= 2 MeV Emax= 100 TeV - -hBrems: for proton XStype:1 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -hPairProd: for proton XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - Sampling table 17x1001 from 7.50618 GeV to 100 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -CoulombScat: for proton XStype:1 SubType=1 BuildTable=1 - Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 100 TeV - -msc: for GenericIon SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm - -ionIoni: for GenericIon XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 - Stopping Power data for 17 ion/material pairs - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BraggIon : Emin= 0 eV Emax= 2 MeV - BetheBloch : Emin= 2 MeV Emax= 100 TeV - -msc: for alpha SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - UrbanMsc : Emin= 0 eV Emax= 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm - -ionIoni: for alpha XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - BraggIon : Emin= 0 eV Emax=7.9452 MeV - BetheBloch : Emin=7.9452 MeV Emax= 100 TeV - -msc: for anti_proton SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm - -hIoni: for anti_proton XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU73QO : Emin= 0 eV Emax= 2 MeV - BetheBloch : Emin= 2 MeV Emax= 100 TeV - -hBrems: for anti_proton XStype:1 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -hPairProd: for anti_proton XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - Sampling table 17x1001 from 7.50618 GeV to 100 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1 - Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 100 TeV - -msc: for kaon+ SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm - -hIoni: for kaon+ XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - Bragg : Emin= 0 eV Emax=1.05231 MeV - BetheBloch : Emin=1.05231 MeV Emax= 100 TeV - -hBrems: for kaon+ XStype:1 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -hPairProd: for kaon+ XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - Sampling table 18x1001 from 3.94942 GeV to 100 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1 - Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 100 TeV - -msc: for kaon- SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm - -hIoni: for kaon- XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU73QO : Emin= 0 eV Emax=1.05231 MeV - BetheBloch : Emin=1.05231 MeV Emax= 100 TeV - -hBrems: for kaon- XStype:1 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -hPairProd: for kaon- XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - Sampling table 18x1001 from 3.94942 GeV to 100 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1 - Used Lambda table of kaon+ - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 100 TeV - -msc: for mu+ SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm - -muIoni: for mu+ XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - Bragg : Emin= 0 eV Emax= 200 keV - MuBetheBloch : Emin= 200 keV Emax= 100 TeV - -muBrems: for mu+ XStype:1 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -muPairProd: for mu+ XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - Sampling table 21x1001 from 0.85 GeV to 100 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1 - Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 100 TeV - -msc: for mu- SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm - -muIoni: for mu- XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU73QO : Emin= 0 eV Emax= 200 keV - MuBetheBloch : Emin= 200 keV Emax= 100 TeV - -muBrems: for mu- XStype:1 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -muPairProd: for mu- XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - Sampling table 21x1001 from 0.85 GeV to 100 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1 - Used Lambda table of mu+ - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 100 TeV - -msc: for pi+ SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm - -hIoni: for pi+ XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - Bragg : Emin= 0 eV Emax=297.505 keV - BetheBloch : Emin=297.505 keV Emax= 100 TeV - -hBrems: for pi+ XStype:1 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -hPairProd: for pi+ XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - Sampling table 20x1001 from 1.11656 GeV to 100 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1 - Lambda table from threshold to 100 TeV, 7 bins/decade, spline: 0 - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 100 TeV - -msc: for pi- SubType= 10 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=84 100 eV - 100 TeV - StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:0 Skin=1 Llim=1 mm - -hIoni: for pi- XStype:3 SubType=2 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.01 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - ICRU73QO : Emin= 0 eV Emax=297.505 keV - BetheBloch : Emin=297.505 keV Emax= 100 TeV - -hBrems: for pi- XStype:1 SubType=3 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -hPairProd: for pi- XStype:1 SubType=4 - dE/dx and range tables from 100 eV to 100 TeV in 84 bins - Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1 - Sampling table 20x1001 from 1.11656 GeV to 100 TeV - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi - -CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1 - Used Lambda table of pi+ - ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531 - ===== EM models for the G4Region DefaultRegionForTheWorld ====== - eCoulombScattering : Emin= 0 eV Emax= 100 TeV - -==================================================================== - HADRONIC PROCESSES SUMMARY (verbose level 1) - ---------------------------------------------------- - Hadronic Processes for neutron - - Process: hadElastic - Model: hElasticCHIPS: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV - - - Process: neutronInelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV - - - Process: nCapture - Model: nRadCapture: 0 eV ---> 100 TeV - Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV - - - Process: nKiller - ---------------------------------------------------- - Hadronic Processes for B- - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: B-Inelastic - Model: FTFP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for D- - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: D-Inelastic - Model: FTFP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for GenericIon - - Process: ionInelastic - Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n - Model: FTFP: 3 GeV/n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - ---------------------------------------------------- - Hadronic Processes for He3 - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - - Process: He3Inelastic - Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n - Model: FTFP: 3 GeV/n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - ---------------------------------------------------- - Hadronic Processes for alpha - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - - Process: alphaInelastic - Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n - Model: FTFP: 3 GeV/n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - ---------------------------------------------------- - Hadronic Processes for anti_He3 - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n - Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: anti_He3Inelastic - Model: FTFP: 0 eV /n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: hFritiofCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for anti_alpha - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n - Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: anti_alphaInelastic - Model: FTFP: 0 eV /n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: hFritiofCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for anti_deuteron - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n - Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: anti_deuteronInelastic - Model: FTFP: 0 eV /n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: hFritiofCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for anti_hypertriton - - Process: hFritiofCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for anti_lambda - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: anti_lambdaInelastic - Model: FTFP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: hFritiofCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for anti_neutron - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100.1 MeV - Model: AntiAElastic: 100 MeV ---> 100 TeV - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: anti_neutronInelastic - Model: FTFP: 0 eV ---> 100 TeV - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: hFritiofCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for anti_proton - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100.1 MeV - Model: AntiAElastic: 100 MeV ---> 100 TeV - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: anti_protonInelastic - Model: FTFP: 0 eV ---> 100 TeV - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: hFritiofCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for anti_triton - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n - Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: anti_tritonInelastic - Model: FTFP: 0 eV /n ---> 100 TeV/n - Cr_sctns: AntiAGlauber: 0 eV ---> 25.6 PeV - - - Process: hFritiofCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for deuteron - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - - Process: dInelastic - Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n - Model: FTFP: 3 GeV/n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - ---------------------------------------------------- - Hadronic Processes for e+ - - Process: positronNuclear - Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV - Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for e- - - Process: electronNuclear - Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV - Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for gamma - - Process: photonNuclear - Model: GammaNPreco: 0 eV ---> 200 MeV - Model: BertiniCascade: 199 MeV ---> 6 GeV - Model: TheoFSGenerator: 3 GeV ---> 100 TeV - Cr_sctns: GammaNuclearXS: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for kaon+ - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: kaon+Inelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for kaon- - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: kaon-Inelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: hBertiniCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for lambda - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: lambdaInelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for mu+ - - Process: muonNuclear - Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV - Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for mu- - - Process: muonNuclear - Model: G4MuonVDNuclearModel: 0 eV ---> 1 PeV - Cr_sctns: KokoulinMuonNuclearXS: 0 eV ---> 100 TeV - - - Process: muMinusCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for pi+ - - Process: hadElastic - Model: hElasticGlauber: 0 eV ---> 100 TeV - Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV - - - Process: pi+Inelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for pi- - - Process: hadElastic - Model: hElasticGlauber: 0 eV ---> 100 TeV - Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV - - - Process: pi-Inelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV - - - Process: hBertiniCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for proton - - Process: hadElastic - Model: hElasticCHIPS: 0 eV ---> 100 TeV - Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV - - - Process: protonInelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: BarashenkovGlauberGribov: 0 eV ---> 100 TeV - - ---------------------------------------------------- - Hadronic Processes for sigma- - - Process: hadElastic - Model: hElasticLHEP: 0 eV ---> 100 TeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: sigma-Inelastic - Model: FTFP: 3 GeV ---> 100 TeV - Model: BertiniCascade: 0 eV ---> 6 GeV - Cr_sctns: Glauber-Gribov: 0 eV ---> 100 TeV - - - Process: hBertiniCaptureAtRest - ---------------------------------------------------- - Hadronic Processes for triton - - Process: hadElastic - Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - - Process: tInelastic - Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n - Model: FTFP: 3 GeV/n ---> 100 TeV/n - Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV - - -================================================================ -======================================================================= -====== Pre-compound/De-excitation Physics Parameters ======== -======================================================================= -Type of pre-compound inverse x-section 3 -Pre-compound model active 1 -Pre-compound excitation low energy 100 keV -Pre-compound excitation high energy 30 MeV -Type of de-excitation inverse x-section 3 -Type of de-excitation factory Evaporation+GEM -Number of de-excitation channels 68 -Min excitation energy 10 eV -Min energy per nucleon for multifragmentation 200 GeV -Limit excitation energy for Fermi BreakUp 20 MeV -Level density (1/MeV) 0.075 -Use simple level density model 1 -Use discrete excitation energy of the residual 1 -Time limit for long lived isomeres 1 ns -Isomer production flag 1 -Internal e- conversion flag 1 -Store e- internal conversion data 0 -Correlated gamma emission flag 0 -Max 2J for sampling of angular correlations 10 -======================================================================= -G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model. -See commands in /vis/modeling/trajectories/ for other options. -### Run 0 starts. - --------- WWWW ------- G4Exception-START -------- WWWW ------- -*** G4Exception : Analysis_W001 - issued by : G4RootNtupleFileManager::SetNtupleMergingMode -Merging ntuples is not applicable in sequential application. -Setting was ignored. -*** This is just a warning message. *** --------- WWWW -------- G4Exception-END --------- WWWW ------- - -... set ntuple merging row mode : row-wise - done -... create file : B4.root - done -... open analysis file : B4.root - done -... open analysis file : B4.root - done -Using ---> Event 0 starts. ----> End of event: 0 - Absorber: total energy: 259.894 MeV total track length: 18.9569 cm - Gap: total energy: 17.4244 MeV total track length: 8.74398 cm - - ----> print histograms statistic for the entire run - - EAbs : mean = 259.894 MeV rms = 0 eV - EGap : mean = 17.4244 MeV rms = 0 eV - LAbs : mean = 18.9569 cm rms = 0 fm - LGap : mean = 8.74398 cm rms = 0 fm -... write file : B4.root - done -... close file : B4.root - done -There are 4 h1 histograms - 0 with 0 entries: Edep in absorber - 1 with 0 entries: Edep in gap - 2 with 0 entries: trackL in absorber - 3 with 0 entries: trackL in gap -List them with "/analysis/list". -View them with "/vis/plot" or "/vis/reviewPlots". - Transportation, GammaGeneralProc, msc, eIoni - eBrem, CoulombScat, msc, eIoni - eBrem, annihil, CoulombScat, msc - ionIoni, msc, muIoni, muBrems - muPairProd, CoulombScat, muIoni, msc - hIoni, hBrems, hPairProd, CoulombScat - hIoni, msc, hIoni, hBrems - hPairProd, CoulombScat, hIoni, msc - hIoni, hBrems, hPairProd, CoulombScat - msc, hIoni, CoulombScat, hIoni - hIoni, msc, ionIoni, msc - ionIoni, hIoni, hIoni, hIoni - hIoni, hIoni, hIoni, hIoni - hIoni, hIoni, hIoni, hIoni - hIoni, hIoni, hIoni, hIoni - hIoni, hIoni, hIoni, hIoni - hIoni, hIoni, hIoni, hIoni - hIoni, hIoni, hIoni, hIoni - hIoni, hIoni, hIoni, hIoni - hIoni, hIoni, hIoni, hIoni - hIoni, hIoni, hIoni, electronNuclear - positronNuclear, muonNuclear, Decay, hadElastic - hadElastic, hadElastic, hadElastic, hadElastic - hadElastic, hadElastic, hadElastic, hadElastic - hadElastic, hadElastic, hadElastic, hadElastic - hadElastic, hadElastic, hadElastic, hadElastic - hadElastic, hadElastic, hadElastic, hadElastic - hadElastic, hadElastic, hadElastic, hadElastic - hadElastic, hadElastic, hadElastic, hadElastic - hadElastic, hadElastic, hadElastic, hadElastic - hadElastic, hadElastic, hadElastic, hadElastic - hadElastic, hadElastic, hadElastic, hadElastic - hadElastic, hadElastic, hadElastic, hadElastic - hadElastic, hadElastic, hadElastic, hadElastic - hadElastic, hadElastic, hadElastic, hadElastic - hadElastic, hadElastic, hadElastic, hadElastic - hadElastic, hadElastic, hadElastic, neutronInelastic - nCapture, protonInelastic, pi+Inelastic, pi-Inelastic - kaon+Inelastic, kaon-Inelastic, kaon0LInelastic, kaon0SInelastic -anti_protonInelastic,anti_neutronInelastic,anti_deuteronInelastic,anti_tritonInelastic - anti_He3Inelastic,anti_alphaInelastic, lambdaInelastic, sigma+Inelastic - sigma-Inelastic, xi0Inelastic, xi-Inelastic, omega-Inelastic -anti_lambdaInelastic,anti_sigma+Inelastic,anti_sigma-Inelastic, anti_xi0Inelastic - anti_xi-Inelastic,anti_omega-Inelastic, D+Inelastic, D0Inelastic - D-Inelastic, anti_D0Inelastic, Ds+Inelastic, Ds-Inelastic - B+Inelastic, B0Inelastic, B-Inelastic, anti_B0Inelastic - Bs0Inelastic, anti_Bs0Inelastic, Bc+Inelastic, Bc-Inelastic - lambda_c+Inelastic, xi_c+Inelastic, xi_c0Inelastic, omega_c0Inelastic - lambda_bInelastic, xi_b0Inelastic, xi_b-Inelastic, omega_b-Inelastic -anti_lambda_c+Inelastic,anti_xi_c+Inelastic,anti_xi_c0Inelastic,anti_omega_c0Inelastic -anti_lambda_bInelastic,anti_xi_b0Inelastic,anti_xi_b-Inelastic,anti_omega_b-Inelastic -hFritiofCaptureAtRest,hBertiniCaptureAtRest,muMinusCaptureAtRest, dInelastic - tInelastic, He3Inelastic, alphaInelastic, ionInelastic - nKiller -### Run 1 starts. -... create file : B4.root - done -... open analysis file : B4.root - done -... open analysis file : B4.root - done -Using ---> Event 0 starts. ----> End of event: 0 - Absorber: total energy: 278.136 MeV total track length: 20.1737 cm - Gap: total energy: 19.9095 MeV total track length: 10.0917 cm - - ----> print histograms statistic for the entire run - - EAbs : mean = 278.136 MeV rms = 0 eV - EGap : mean = 19.9095 MeV rms = 0 eV - LAbs : mean = 20.1737 cm rms = 0 fm - LGap : mean = 10.0917 cm rms = 0 fm -... write file : B4.root - done -... close file : B4.root - done -There are 4 h1 histograms - 0 with 0 entries: Edep in absorber - 1 with 0 entries: Edep in gap - 2 with 0 entries: trackL in absorber - 3 with 0 entries: trackL in gap -List them with "/analysis/list". -View them with "/vis/plot" or "/vis/reviewPlots". -### Run 2 starts. -... create file : B4.root - done -... open analysis file : B4.root - done -... open analysis file : B4.root - done -Using ---> Event 0 starts. ----> End of event: 0 - Absorber: total energy: 435.043 MeV total track length: 31.1955 cm - Gap: total energy: 37.3961 MeV total track length: 18.5223 cm - - ----> print histograms statistic for the entire run - - EAbs : mean = 435.043 MeV rms = 0 eV - EGap : mean = 37.3961 MeV rms = 0 eV - LAbs : mean = 31.1955 cm rms = 0 fm - LGap : mean = 18.5223 cm rms = 0 fm -... write file : B4.root - done -... close file : B4.root - done -There are 4 h1 histograms - 0 with 0 entries: Edep in absorber - 1 with 0 entries: Edep in gap - 2 with 0 entries: trackL in absorber - 3 with 0 entries: trackL in gap -List them with "/analysis/list". -View them with "/vis/plot" or "/vis/reviewPlots". -Graphics systems deleted. -Visualization Manager deleting... diff --git a/gui.mac b/gui.mac deleted file mode 100644 index d7bb656..0000000 --- a/gui.mac +++ /dev/null @@ -1,37 +0,0 @@ -# -# This file permits to customize, with commands, -# the menu bar of the G4UIXm, G4UIQt, G4UIWin32 sessions. -# It has no effect with G4UIterminal. -# -# File menu : -/gui/addMenu file File -/gui/addButton file Quit exit -# -# Run menu : -/gui/addMenu run Run -/gui/addButton run "beamOn 1" "/run/beamOn 1" -/gui/addButton run run1 "/control/execute run1.mac" -# -# Gun menu : -/gui/addMenu gun Gun -/gui/addButton gun "50 MeV" "/gun/energy 50 MeV" -/gui/addButton gun "1 GeV" "/gun/energy 1 GeV" -/gui/addButton gun "10 GeV" "/gun/energy 10 GeV" -/gui/addButton gun "e-" "/gun/particle e-" -/gui/addButton gun "pi0" "/gun/particle pi0" -/gui/addButton gun "pi+" "/gun/particle pi+" -/gui/addButton gun "neutron" "/gun/particle neutron" -/gui/addButton gun "proton" "/gun/particle proton" -# -# Viewer menu : -/gui/addMenu viewer Viewer -/gui/addButton viewer "Set style surface" "/vis/viewer/set/style surface" -/gui/addButton viewer "Set style wireframe" "/vis/viewer/set/style wireframe" -/gui/addButton viewer "Refresh viewer" "/vis/viewer/refresh" -/gui/addButton viewer "Update viewer (interaction or end-of-file)" "/vis/viewer/update" -/gui/addButton viewer "Flush viewer (= refresh + update)" "/vis/viewer/flush" -/gui/addButton viewer "Update scene" "/vis/scene/notifyHandlers" -# -# To limit the output flow in the "dump" widget : -/run/printProgress 100 -# diff --git a/init_vis.mac b/init_vis.mac deleted file mode 100644 index bcf4ae0..0000000 --- a/init_vis.mac +++ /dev/null @@ -1,17 +0,0 @@ -# Macro file for the initialization of example B4 -# in interactive session -# -# Set some default verbose -# -/control/verbose 2 -/control/saveHistory -/run/verbose 2 -# -# Change the default number of threads (in multi-threaded mode) -#/run/numberOfThreads 4 -# -# Initialize kernel -/run/initialize -# -# Visualization setting -/control/execute vis.mac diff --git a/plotHisto.C b/plotHisto.C deleted file mode 100644 index 868a742..0000000 --- a/plotHisto.C +++ /dev/null @@ -1,43 +0,0 @@ -// ROOT macro file for plotting example B4 histograms -// -// Can be run from ROOT session: -// root[0] .x plotHisto.C - -{ - gROOT->Reset(); - gROOT->SetStyle("Plain"); - - // Draw histos filled by Geant4 simulation - // - - // Open file filled by Geant4 simulation - TFile f("B4.root"); - - // Create a canvas and divide it into 2x2 pads - TCanvas* c1 = new TCanvas("c1", "", 20, 20, 1000, 1000); - c1->Divide(2,2); - - // Draw Eabs histogram in the pad 1 - c1->cd(1); - TH1D* hist1 = (TH1D*)f.Get("Eabs"); - hist1->Draw("HIST"); - - // Draw Labs histogram in the pad 2 - c1->cd(2); - TH1D* hist2 = (TH1D*)f.Get("Labs"); - hist2->Draw("HIST"); - - // Draw Egap histogram in the pad 3 - // with logaritmic scale for y - TH1D* hist3 = (TH1D*)f.Get("Egap"); - c1->cd(3); - gPad->SetLogy(1); - hist3->Draw("HIST"); - - // Draw Lgap histogram in the pad 4 - // with logaritmic scale for y - c1->cd(4); - gPad->SetLogy(1); - TH1D* hist4 = (TH1D*)f.Get("Lgap"); - hist4->Draw("HIST"); -} diff --git a/plotNtuple.C b/plotNtuple.C deleted file mode 100644 index 086bbd4..0000000 --- a/plotNtuple.C +++ /dev/null @@ -1,42 +0,0 @@ -// ROOT macro file for plotting example B4 ntuple -// -// Can be run from ROOT session: -// root[0] .x plotNtuple.C - -{ - gROOT->Reset(); - gROOT->SetStyle("Plain"); - - // Draw histos filled by Geant4 simulation - // - - // Open file filled by Geant4 simulation - TFile f("B4.root"); - - // Create a canvas and divide it into 2x2 pads - TCanvas* c1 = new TCanvas("c1", "", 20, 20, 1000, 1000); - c1->Divide(2,2); - - // Get ntuple - TNtuple* ntuple = (TNtuple*)f.Get("B4"); - - // Draw Eabs histogram in the pad 1 - c1->cd(1); - ntuple->Draw("Eabs"); - - // Draw Labs histogram in the pad 2 - c1->cd(2); - ntuple->Draw("Labs"); - - // Draw Egap histogram in the pad 3 - // with logaritmic scale for y ?? how to do this? - c1->cd(3); - gPad->SetLogy(1); - ntuple->Draw("Egap"); - - // Draw Lgap histogram in the pad 4 - // with logaritmic scale for y ?? how to do this? - c1->cd(4); - gPad->SetLogy(1); - ntuple->Draw("Egap"); -} diff --git a/run1.mac b/run1.mac deleted file mode 100644 index 1898371..0000000 --- a/run1.mac +++ /dev/null @@ -1,44 +0,0 @@ -# Macro file for example B4 -# -# Can be run in batch, without graphic -# or interactively: Idle> /control/execute run1.mac -# -# Change the default number of workers (in multi-threading mode) -#/run/numberOfThreads 4 -# -# Initialize kernel -/run/initialize -# -# Default kinematics: -# electron 50 MeV in direction (0.,0.,1.) -# 1 event with tracking/verbose -# -/tracking/verbose 1 -/run/beamOn 1 -# -# -# muon 300 MeV in direction (0.,0.,1.) -# 3 events -# -/gun/particle mu+ -/gun/energy 3 MeV -/run/beamOn 3 -# -# 20 events -# -/tracking/verbose 0 -/run/printProgress 5 -/run/beamOn 20 -# -# Magnetic field -# -/globalField/setValue 0.2 0 0 tesla -/run/beamOn 3 -# -# Activate/inactivate physics processes -# -/process/list -/process/inactivate eBrem -# -/run/beamOn 20 -# diff --git a/run2.mac b/run2.mac deleted file mode 100644 index 35e16a6..0000000 --- a/run2.mac +++ /dev/null @@ -1,17 +0,0 @@ -# Macro file for example B4 -# -# To be run preferably in batch, without graphics: -# % exampleB4[a,b,c,d] run2.mac -# -#/run/numberOfThreads 4 -#/control/cout/ignoreThreadsExcept 0 -# -/run/initialize -# -# Default kinemtics: -# electron 50 MeV in direction (0.,0.,1.) -# 1000 events -# -/run/printProgress 100 -/run/beamOn 1000 - diff --git a/vis.mac b/vis.mac deleted file mode 100644 index a4df708..0000000 --- a/vis.mac +++ /dev/null @@ -1,82 +0,0 @@ -# Macro file for the visualization setting for the initialization phase -# of the B4 example when running in interactive mode -# - -# Use these open statements to open selected visualization -# -# Use this open statement to create an OpenGL view: -/vis/open OGL 600x600-0+0 -# -# Use this open statement to create an OpenInventor view: -#/vis/open OIX -# -# Use this open statement to create a .prim file suitable for -# viewing in DAWN: -#/vis/open DAWNFILE -# -# Use this open statement to create a .heprep file suitable for -# viewing in HepRApp: -#/vis/open HepRepFile -# -# Use this open statement to create a .wrl file suitable for -# viewing in a VRML viewer: -#/vis/open VRML2FILE -# -# Disable auto refresh and quieten vis messages whilst scene and -# trajectories are established: -/vis/viewer/set/autoRefresh false -/vis/verbose errors -# -# Draw geometry: -/vis/drawVolume -# -# Specify view angle: -/vis/viewer/set/viewpointThetaPhi 90. 180. -# -# Specify zoom value: -#/vis/viewer/zoom 2. -# -# Specify style (surface, wireframe, auxiliary edges,...) -#/vis/viewer/set/style wireframe -#/vis/viewer/set/auxiliaryEdge true -#/vis/viewer/set/lineSegmentsPerCircle 100 -# -# Draw coordinate axes: -#/vis/scene/add/axes 0 0 0 1 m -# -# Draw smooth trajectories at end of event, showing trajectory points -# as markers 2 pixels wide: -/vis/scene/add/trajectories smooth -/vis/modeling/trajectories/create/drawByCharge -/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true -/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 1 -# (if too many tracks cause core dump => /tracking/storeTrajectory 0) -# -# Draw hits at end of event: -#/vis/scene/add/hits -# -# To draw only gammas: -#/vis/filtering/trajectories/create/particleFilter -#/vis/filtering/trajectories/particleFilter-0/add gamma -# -# To invert the above, drawing all particles except gammas, -# keep the above two lines but also add: -#/vis/filtering/trajectories/particleFilter-0/invert true -# -# Many other options are available with /vis/modeling and /vis/filtering. -# For example, to select colour by particle ID: -#/vis/modeling/trajectories/create/drawByParticleID -#/vis/modeling/trajectories/drawByParticleID-0/default/setDrawStepPts true -# To select or override default colours (note: e+ is blue by default): -#/vis/modeling/trajectories/list -#/vis/modeling/trajectories/drawByParticleID-0/set e+ yellow -# -# To superimpose all of the events from a given run: -/vis/scene/endOfEventAction accumulate -# -# Re-establish auto refreshing and verbosity: -/vis/viewer/set/autoRefresh true -/vis/verbose warnings -# -# For file-based drivers, use this to create an empty detector view: -#/vis/viewer/flush