diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bb016ac1d6fead5cb403d5d0af3cdbbb21f3328a..8bb0791ae07ebd167809386a1bdbeb8faff90f9c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,8 +15,7 @@ stages:
 
 variables:
   TARGET_BRANCH: master
-  BINARY_TAG: x86_64_v2-centos7-gcc10-opt
-  LCG_VERSION: 100
+  BINARY_TAG: x86_64_v2-centos7-gcc11-opt
   NO_LBLOGIN: "1"
 
 
@@ -26,7 +25,7 @@ check-copyright:
   only: [merge_requests]
   script:
     - curl -o lb-check-copyright "https://gitlab.cern.ch/lhcb-core/LbDevTools/raw/master/LbDevTools/SourceTools.py?inline=false"
-    - python lb-check-copyright origin/${TARGET_BRANCH}
+    - python lb-check-copyright origin/${TARGET_BRANCH} --exclude lhcbproject.yml
 
 check-formatting:
   image: gitlab-registry.cern.ch/lhcb-docker/style-checker
@@ -45,50 +44,91 @@ check-formatting:
       - apply-formatting.patch
     when: on_failure
     expire_in: 1 week
+  allow_failure: true
 
-# inspired by https://gitlab.cern.ch/lhcb/Moore/-/blob/master/.gitlab-ci.yml      
-build-docs:
+.docs-base:
   stage: docs
   image: gitlab-registry.cern.ch/lhcb-core/lbdocker/centos7-build:latest
+  variables:
+    DOCS_VERSION: $CI_COMMIT_REF_NAME
+    # I found CI_PAGES_URL sometimes pointing to the wrong addresss
+    GAUSSINO_PAGES_URL: https://mimazure-gaussino.docs.cern.ch/
   rules:
-    - if: '$CI_COMMIT_REF_PROTECTED == "true" || $CI_MERGE_REQUEST_LABELS =~ /Documentation/' 
+    - if: $CI_COMMIT_REF_PROTECTED == "true"
+    - if: $CI_MERGE_REQUEST_LABELS =~ /Python Documentation/
+    - if: $CI_COMMIT_TAG =~ /^v?[0-9]+[r][0-9]+([p][0-9]+)?$/
   tags:
     - cvmfs
+
+# inspired by https://gitlab.cern.ch/lhcb/Moore/-/blob/master/.gitlab-ci.yml
+build-docs:
+  extends: .docs-base
   variables:
     NIGHTLIES_PATH: "/cvmfs/lhcbdev.cern.ch/nightlies/lhcb-gaussino/latest"
-    LOCAL_PYTHON: "InstallArea/x86_64_v2-centos7-gcc10-opt/python"
+    LOCAL_PYTHON: "InstallArea/$BINARY_TAG/python"
   script:
     - . /cvmfs/lhcb.cern.ch/lib/LbEnv.sh
     - pip install myst_parser graphviz
-    - reasons=
+    # -> adding python directories of the upstream projects
     - export PYTHONPATHBKP=$PYTHONPATH
-    - export PYTHONPATHBKP=$NIGHTLIES_PATH/Run2Support/$LOCAL_PYTHON:$NIGHTLIES_PATH/LHCb/$LOCAL_PYTHON:$NIGHTLIES_PATH/Gaudi/$LOCAL_PYTHON:$PYTHONPATHBKP
+    - export PYTHONPATHBKP=$NIGHTLIES_PATH/Gaudi/$LOCAL_PYTHON:$PYTHONPATHBKP
+    - export PYTHONPATHBKP=$NIGHTLIES_PATH/LHCb/$LOCAL_PYTHON:$PYTHONPATHBKP
+    - export PYTHONPATHBKP=$NIGHTLIES_PATH/Run2Support/$LOCAL_PYTHON:$PYTHONPATHBKP
+    # -> adding python directories of Gaussino
     - export PYTHONPATHBKP=$(find $PWD -type d \( -path ./InstallArea -o -path ./build \) -prune -false -o -name "python" -print | paste -sd ":" - ):$PYTHONPATHBKP
     - echo "$PYTHONPATHBKP"
-    - PYTHONPATH=$PYTHONPATHBKP make -C docs html || reasons+='ERROR failed html generation\n'
-    - if [ -n "$reasons" ]; then echo -e $reasons; exit 1; fi
-  allow_failure:
-    exit_codes: 77
+    # -> building the docs with a custom pythonpath
+    - PYTHONPATH=$PYTHONPATHBKP make -C docs html
+    - test -f docs/_build/html/index.html || exit 2
   artifacts:
     paths:
       - docs/_build/html/
+    expire_in: 1 month
 
-# inspired by https://gitlab.cern.ch/lhcb/Moore/-/blob/master/.gitlab-ci.yml      
-deploy-docs:
-  stage: deploy
-  image: gitlab-registry.cern.ch/ci-tools/ci-web-deployer
-  rules:
-    - if: '$CI_COMMIT_REF_PROTECTED == "true" || $CI_MERGE_REQUEST_LABELS =~ /Documentation/' 
+pages:
+  extends: .docs-base
   variables:
-    EOS_PATH: "/eos/project/l/lhcbwebsites/www/projects/gaussino/$CI_COMMIT_REF_NAME"
-    CI_OUTPUT_DIR: "docs/_build/html"
-    METHOD: "rsync"
-  before_script:
-    # As the previous stage is allowed to fail, skip this stage if the previous
-    # did not complete successfully (i.e. did not create the html directory)
-    - test -d $CI_OUTPUT_DIR || { echo "WARNING docs not built, stopping"; exit 77; }
+    MAX_TIME_IN_DAYS: 7
+  needs:
+    - build-docs
   script:
-    - deploy-eos && echo -e "Deployed at\n\n\t/eos/project/l/lhcbwebsites/www/projects/gaussino/$CI_COMMIT_REF_NAME/index.html"
-  allow_failure:
-    exit_codes: 77
-
+    # accumulating content as in https://gitlab.com/gitlab-org/gitlab/-/issues/15156#note_214784368
+    # -> get the archive from the website with the accumulated content and copy it to public/
+    - echo "Cleaning docs for ${DOCS_VERSION}"
+    - echo "Getting the latest versions from ${GAUSSINO_PAGES_URL}"
+    # -> curl will create content.tar.gz even if it does not exists
+    - curl -fkL "$GAUSSINO_PAGES_URL/content.tar.gz" -o "content.tar.gz" || echo "Could not get the archive, skipping..."
+    # -> ignore any unpacking errors, the history will be erased
+    #    note: this might need a bit of rethinking or to be blocked later
+    - tar -xzf content.tar.gz public/ || echo "Archive with other versions in a bad format or not found, skipping..."
+    # -> loop over all the possible version created so far and remove development ones that are older than MAX_TIME_IN_DAYS
+    - >
+      for version in $(find public/ -maxdepth 1 -mindepth 1 -type d -not -name "master" -not -name "FASTSIM" -not -name "v*" ); do
+        echo "-> Checking version: '${version}'"
+        MAX_TIME=$(expr $MAX_TIME_IN_DAYS \* 86400)
+        VERSION_TIME=$(stat ${version} -c %Y)
+        CURRENT_TIME=$(date +%s)
+        ELAPSED_TIME=$(expr $CURRENT_TIME - $VERSION_TIME)
+        if (($ELAPSED_TIME > $MAX_TIME )); then
+          echo "--> Expired. Removing."
+          rm -r $version
+        else
+          echo "--> Not expired."
+        fi
+      done
+    # -> move the current version
+    - rm -rf public/$DOCS_VERSION
+    - mkdir -p public/$DOCS_VERSION
+    - mv docs/_build/html public/$DOCS_VERSION
+    # -> add all the necessary redirects
+    - rm -f public/_redirects
+    - echo "/index.html /master/index.html 301" >> public/_redirects
+    - echo "/ /master/index.html 301" >> public/_redirects
+    - echo "/gaussino /master/index.html 301" >> public/_redirects
+    # -> create a new archive and put it on the website
+    - tar -zcf content.tar.gz public/
+    - cp content.tar.gz public/
+  artifacts:
+    paths:
+    - public
+    expire_in: 1 hour
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d0547df9fd04e00425372f275fd4adcf0e17557a..c117f27daf98a36160e583f1d567ca12556019cd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,90 +8,67 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5)
+cmake_minimum_required(VERSION 3.15)
 
-# Reduce the total number of warnings by A LOT until ROOT has been modified
-option(GAUDI_SUGGEST_OVERRIDE "enable warnings for missing override keyword" OFF)
-# Create the compile commands json for YCM superpowers
-set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
-set(GEANT4_BUILD_MULTITHREADED ON)
+set(LCG_LAYER LHCB_7 CACHE STRING "Specific set of version to use")
+option(LCG_USE_GENERATORS "enable/disable use of LCG generators" ON)
 
-#---------------------------------------------------------------
-# Load macros and functions for Gaudi-based projects
-find_package(GaudiProject)
-#---------------------------------------------------------------
+project(Gaussino VERSION 0.1
+	LANGUAGES CXX Fortran)
 
-# Set the CMP0074 policy that dictates how the packages are looked up
-# this should allow overriding the LCG versions of package XXX,
-# provided, XXX_ROOT is set
-if (POLICY CMP0074)
-  cmake_policy(SET CMP0074 NEW)
-  message(STATUS "Setting the policy CMP0074 to NEW")
-else()
-  message(STATUS "Policy CMP0074 not available: LCG packages NOT overriden by _ROOT environment variable")
-endif()
-
-# hide warnings from some external projects
-find_package(Boost)
-find_package(ROOT)
-find_package(CLHEP)
-include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS}
-                           ${CLHEP_INCLUDE_DIRS})
+# Enable testing with CTest/CDash
+include(CTest)
 
-# Add -O0 to remove optimizations when using gcc
-set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0" CACHE STRING "bla" FORCE)
-set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0" CACHE STRING "bla" FORCE)
+list(PREPEND CMAKE_MODULE_PATH
+    ${PROJECT_SOURCE_DIR}/cmake
+)
 
-macro(FindG4libs)
-    # FIXME: this should be an imported target
-    foreach(name ${ARGN})
-        find_library(GEANT4_${name}_LIBRARY
-                     G4${name}
-                     HINTS ${Geant4_DIR}/lib
-                     PATHS ${Geant4_LIBRARY_DIRS})
-        list(APPEND GEANT4_LIBS ${GEANT4_${name}_LIBRARY})
-    endforeach()
-    link_directories(${Geant4_LIBRARY_DIRS})
-endmacro()
+set(WITH_Gaussino_PRIVATE_DEPENDENCIES TRUE)
+include(GaussinoDependencies)
 
-macro(AddHepMC3)
-  # FIXME: This is just an work-around to include the locally compiled HepMC3 as the HepMC3Config.cmake
-  # is not yet available during configuration. 
-  include_directories(SYSTEM ${CMAKE_INSTALL_PREFIX}/include ${CMAKE_INSTALL_PREFIX}/share/HepMC3/interfaces)
-  link_directories(${CMAKE_INSTALL_PREFIX}/lib64)
-  link_directories(${CMAKE_INSTALL_PREFIX}/lib)
-  #add_dependencies(HepMC3Ext)
+gaussino_initialize_configuration()
 
-  set(HEPMC3_LIBRARIES
-    -lHepMC3
-    # FIXME: disabled because of HepMC & HepMC3 namespace collision
-    # -lHepMC3rootIO
-    -lHepMC3search)
-endmacro()
-
-macro(AddDD4hepDDG4)
-    include_directories(SYSTEM ${CMAKE_INSTALL_PREFIX}/include)
-    link_directories(${CMAKE_INSTALL_PREFIX}/lib)
+if (NOT USE_DD4HEP)
+    set(GAUSSINO_IGNORE_SUBDIRS Sim/GiGaMTDD4hep)
+endif()
 
-    set(DD4hepDDG4_LIBRARIES
-          #-lDDG4LCIO
-          -lDDG4Legacy  
-          -lDDG4Plugins  
-          -lDDG4Python  
-          -lDDG4  
-          -lDDPython)
-endmacro()
+gaussino_add_subdirectories(
+    Defaults
+    EDMdev/MCTruthToEDM
+    Gen/GenBeam
+    Gen/Generators
+    Gen/GenInterfaces
+    Gen/LbPGuns
+    Gen/LbPythia8
+    Gen/RndInit
+    HepMCUser
+    Moni/GaussMonitor
+    NewRnd
+    Sim/ExternalDetector
+    Sim/Gaussino
+    Sim/GiGaMT
+    Sim/GiGaMTCore
+    Sim/GiGaMTDD4hep
+    Sim/GiGaMTDebug
+    Sim/GiGaMTExamples/FCCTest
+    Sim/GiGaMTExamples/IronBox
+    Sim/GiGaMTExamples/LHCbFromGDML
+    Sim/GiGaMTFactories
+    Sim/GiGaMTGeo
+    Sim/GiGaMTReDecay
+    Sim/GiGaMTTruth
+    Sim/MCCollector
+    Sim/ParallelGeometry
+    Sim/SimInterfaces
+    Utils
+)
 
-# make sure pkg-config looks for packages on CMAKE_PREFIX_PATH and system
-set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON)
-list(APPEND CMAKE_PREFIX_PATH /usr)
+gaudi_install(CMAKE
+    # helpers to find external projects
+    cmake/FindHepMC3.cmake
+    cmake/FindPythia8.cmake
+    cmake/GaussinoConfigUtils.cmake
+    cmake/GaussinoConfig.cmake.in
+)
 
-# Declare project name and version
-gaudi_project(Gaussino v1r0
-              FORTRAN
-              USE Run2Support v0r0
-                  Geant4 v104r1
-              DATA Gen/PGunsData VERSION v1r*
-                   Gen/DecFiles VERSION v30r*
-                   LHAPDFSets VERSION v2r*
-                   Vis/XmlVis VERSION v2r*)
+gaussino_finalize_configuration()
diff --git a/DD4hepDDG4Ext/CMakeLists.txt b/DD4hepDDG4Ext/CMakeLists.txt
deleted file mode 100644
index 5ed174c776410ca0cb7988dd3b9a4bb476283829..0000000000000000000000000000000000000000
--- a/DD4hepDDG4Ext/CMakeLists.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-gaudi_subdir(DD4hepDDG4Ext v1r0)
-
-# Define EvtGen external project
-set(DD4hep_GIT_SOURCE "https://gitlab.cern.ch/Gaussino/DD4hep.git" CACHE STRING "URL of the DD4hep git repository")
-set(DD4hep_GIT_TAG "v01-16-01-patches" CACHE STRING "Tag of DD4hep to be used")
-
-find_package(ROOT)
-find_package(Boost)
-find_package(DD4hep REQUIRED)
-find_package(LCIO REQUIRED)
-
-include(ExternalProject)
-message(STATUS "DDG4 from DD4hep will use tag \"${DD4hep_GIT_TAG}\" from repository ${DD4hep_GIT_SOURCE}")
-string(REPLACE "c++" "" DD4HepDDG4_CXX_STANDARD "${GAUDI_CXX_STANDARD}")
-message(STATUS "Setting CMAKE_CXX_STANDARD to \"${DD4HepDDG4_CXX_STANDARD}\"")
-    
-ExternalProject_Add(DD4hepDDG4Ext
-  GIT_REPOSITORY ${DD4hep_GIT_SOURCE}
-  GIT_TAG ${DD4hep_GIT_TAG}
-  CMAKE_ARGS 
-    -Dheptools_version=${heptools_version}
-    -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-    -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
-    -DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_LIST_DIR}/dd4hepddg4_toolchain.cmake
-    -DDD4HEP_USE_EXISTING_DD4HEP=${DD4hep_DIR}
-    -DDD4HEP_BUILD_PACKAGES=DDG4
-    -DDD4HEP_USE_GEANT4=ON
-    -DLCG_USE_NATIVE_COMPILER=${LCG_USE_NATIVE_COMPILER}
-    -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-    -DCMAKE_CXX_STANDARD=${DD4HepDDG4_CXX_STANDARD}
-    -DDD4HEP_SELECTED_NAME=DD4hepDDG4
-    -DCMAKE_INSTALL_LIBDIR=lib
-  CMAKE_COMMAND ${env_cmd} --xml ${env_xml} cmake
-  BUILD_COMMAND ${env_cmd} --xml ${env_xml} cmake --build .
-)
-                                                                                                
-#set(DD4hepDDG4_INCLUDE_DIRS  "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "" FORCE)
-#set(DD4hepDDG4_DIR "${CMAKE_INSTALL_PREFIX}/cmake" CACHE PATH "" FORCE)
-#set(DD4hepDDG4_LIBRARIES "${CMAKE_INSTALL_PREFIX}/lib/libDDG4LCIO.so" "${CMAKE_INSTALL_PREFIX}/lib/libDDG4Legacy.so" "${CMAKE_INSTALL_PREFIX}/lib/libDDG4Plugins.so" "${CMAKE_INSTALL_PREFIX}/lib/libDDG4Python.so" "${CMAKE_INSTALL_PREFIX}/lib/libDDG4.so" CACHE STRING "" FORCE)
-#set(DD4hepDDG4_FOUND YES CACHE BOOL "" FORCE)
diff --git a/DD4hepDDG4Ext/dd4hepddg4_toolchain.cmake b/DD4hepDDG4Ext/dd4hepddg4_toolchain.cmake
deleted file mode 100644
index 1321282ccdae55a12feb6860853ca3e20d74156f..0000000000000000000000000000000000000000
--- a/DD4hepDDG4Ext/dd4hepddg4_toolchain.cmake
+++ /dev/null
@@ -1,41 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# Special toolchain file that inherits the same heptools version as the
-# used projects.
-#
-#
-# this check is needed because the toolchain is called when checking the
-# compiler (without the proper cache)
-if(NOT CMAKE_SOURCE_DIR MATCHES "CMakeTmp")
-  find_path(heptools_mod_dir UseHEPTools.cmake)
-  message(INFO heptools_mod_dir = ${heptools_mod_dir})
-  set(CMAKE_MODULE_PATH ${heptools_mod_dir} ${CMAKE_MODULE_PATH})
-  if(heptools_version)
-    include(UseHEPTools)
-    use_heptools(${heptools_version})
-  else()
-    include(InheritHEPTools)
-    inherit_heptools()
-  endif()
-
-  # FIXME: make sure we do not pick up unwanted/problematic projects from LCG
-  if(CMAKE_PREFIX_PATH)
-    # - ninja (it requires LD_LIBRARY_PATH set to run)
-    # - Gaudi (we do not want to use it from LCG)
-    # - xenv (conflicts with the version in the build environment)
-    list(FILTER CMAKE_PREFIX_PATH EXCLUDE REGEX "(LCG_|lcg/nightlies).*(ninja|Gaudi|xenv)")
-  endif()
-
-  # FIXME: make sure we do not pick up geant from LCG (it requires LD_LIBRARY_PATH set)
-  if(CMAKE_PREFIX_PATH AND CMAKE_VERSION VERSION_GREATER "3.6.0")
-    list(FILTER CMAKE_PREFIX_PATH EXCLUDE REGEX "(LCG_|lcg/nightlies).*Geant4")
-  endif()
-endif()
diff --git a/Defaults/CMakeLists.txt b/Defaults/CMakeLists.txt
index 38cccc3a82a12a2f50a2e87ac112c0faecfe1ac1..db4eed0a218eed39932a18535e64c222f896479b 100644
--- a/Defaults/CMakeLists.txt
+++ b/Defaults/CMakeLists.txt
@@ -8,11 +8,9 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: Defaults
-#
-#################################################################################
+#[=======================================================================[.rst:
+Defaults
+--------
+#]=======================================================================]
 
-gaudi_subdir(Defaults v1r0)
-
-gaudi_install_headers(Defaults)
+gaudi_add_header_only_library(Defaults)
diff --git a/Defaults/Defaults/HepMCAttributes.h b/Defaults/include/Defaults/HepMCAttributes.h
similarity index 100%
rename from Defaults/Defaults/HepMCAttributes.h
rename to Defaults/include/Defaults/HepMCAttributes.h
diff --git a/Defaults/Defaults/Locations.h b/Defaults/include/Defaults/Locations.h
similarity index 100%
rename from Defaults/Defaults/Locations.h
rename to Defaults/include/Defaults/Locations.h
diff --git a/EDMdev/MCTruthToEDM/CMakeLists.txt b/EDMdev/MCTruthToEDM/CMakeLists.txt
index ba1510f546b2f997114c65334cbb2fcd77ca2289..3ecacbef6bae3aece467b420b7b9dbcdb704bb2c 100644
--- a/EDMdev/MCTruthToEDM/CMakeLists.txt
+++ b/EDMdev/MCTruthToEDM/CMakeLists.txt
@@ -8,28 +8,26 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-gaudi_subdir(MCTruthToEDM v1r0)
-
-gaudi_depends_on_subdirs(Event/GenEvent
-                         Event/MCEvent
-                         Sim/GiGaMTCore
-                         Defaults
-                         HepMC3
-                         HepMCUser)
-
-AddHepMC3()
-find_package(HepMC)
-
+#[=======================================================================[.rst:
+EDMdev/MCTruthToEDM
+-------------------
+#]=======================================================================]
 
 gaudi_add_library(MCTruthToEDMLib
-                 src/lib/*.cpp
-                 PUBLIC_HEADERS MCTruthToEDM
-		 INCLUDE_DIRS HepMC
-		 LINK_LIBRARIES GiGaMTCoreTruthLib MCEvent)
+    SOURCES
+        src/Lib/MCTruthToEDM.cpp
+	src/Lib/VertexType.cpp
+    LINK
+        PUBLIC
+	    LHCb::GenEvent # TODO: [LHCb DEPENDENCY]
+	    Gaussino::GiGaMTCoreRunLib
+	    Gaussino::GiGaMTTruthLib
+)
 
 gaudi_add_module(MCTruthToEDM
-                 src/components/*.cpp
-                 INCLUDE_DIRS ${HEPMC_INCLUDE_DIR} Defaults
-                 LINK_LIBRARIES MCTruthToEDMLib)
-
-add_dependencies(MCTruthToEDM HepMC3Ext)
+    SOURCES
+        src/Components/CheckMCStructure.cpp
+	src/Components/MCTruthToEDMComp.cpp
+    LINK
+        Gaussino::MCTruthToEDMLib
+)
diff --git a/EDMdev/MCTruthToEDM/MCTruthToEDM/LinkedParticleMCParticleLink.h b/EDMdev/MCTruthToEDM/include/MCTruthToEDM/LinkedParticleMCParticleLink.h
similarity index 100%
rename from EDMdev/MCTruthToEDM/MCTruthToEDM/LinkedParticleMCParticleLink.h
rename to EDMdev/MCTruthToEDM/include/MCTruthToEDM/LinkedParticleMCParticleLink.h
diff --git a/EDMdev/MCTruthToEDM/MCTruthToEDM/MCTruthToEDM.h b/EDMdev/MCTruthToEDM/include/MCTruthToEDM/MCTruthToEDM.h
similarity index 98%
rename from EDMdev/MCTruthToEDM/MCTruthToEDM/MCTruthToEDM.h
rename to EDMdev/MCTruthToEDM/include/MCTruthToEDM/MCTruthToEDM.h
index 50f49030104bd1b940a08696af9853eb1727d0e1..36b503c22b5531b446a5ec17900147346dd627d3 100755
--- a/EDMdev/MCTruthToEDM/MCTruthToEDM/MCTruthToEDM.h
+++ b/EDMdev/MCTruthToEDM/include/MCTruthToEDM/MCTruthToEDM.h
@@ -24,7 +24,7 @@
 #include "Event/MCVertex.h"
 #include "MCTruthToEDM/LinkedParticleMCParticleLink.h"
 
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 
 #include "Defaults/Locations.h"
 
diff --git a/EDMdev/MCTruthToEDM/MCTruthToEDM/VertexType.h b/EDMdev/MCTruthToEDM/include/MCTruthToEDM/VertexType.h
similarity index 95%
rename from EDMdev/MCTruthToEDM/MCTruthToEDM/VertexType.h
rename to EDMdev/MCTruthToEDM/include/MCTruthToEDM/VertexType.h
index 7002c11c879f042179e575f8dbac9924bc6a297d..66d0ab5c505e397f21384d1d9537fde2b0c5a640 100644
--- a/EDMdev/MCTruthToEDM/MCTruthToEDM/VertexType.h
+++ b/EDMdev/MCTruthToEDM/include/MCTruthToEDM/VertexType.h
@@ -9,7 +9,7 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #include "Event/MCVertex.h"
-#include "GiGaMTCoreTruth/LinkedParticle.h"
+#include "GiGaMTCoreRun/LinkedParticle.h"
 #include "GaudiKernel/MsgStream.h"
 
 namespace Gaussino {
diff --git a/EDMdev/MCTruthToEDM/src/components/CheckMCStructure.cpp b/EDMdev/MCTruthToEDM/src/Components/CheckMCStructure.cpp
similarity index 100%
rename from EDMdev/MCTruthToEDM/src/components/CheckMCStructure.cpp
rename to EDMdev/MCTruthToEDM/src/Components/CheckMCStructure.cpp
diff --git a/EDMdev/MCTruthToEDM/src/components/CheckMCStructure.h b/EDMdev/MCTruthToEDM/src/Components/CheckMCStructure.h
similarity index 100%
rename from EDMdev/MCTruthToEDM/src/components/CheckMCStructure.h
rename to EDMdev/MCTruthToEDM/src/Components/CheckMCStructure.h
diff --git a/EDMdev/MCTruthToEDM/src/components/MCTruthToEDMComp.cpp b/EDMdev/MCTruthToEDM/src/Components/MCTruthToEDMComp.cpp
similarity index 100%
rename from EDMdev/MCTruthToEDM/src/components/MCTruthToEDMComp.cpp
rename to EDMdev/MCTruthToEDM/src/Components/MCTruthToEDMComp.cpp
diff --git a/EDMdev/MCTruthToEDM/src/lib/MCTruthToEDM.cpp b/EDMdev/MCTruthToEDM/src/Lib/MCTruthToEDM.cpp
similarity index 100%
rename from EDMdev/MCTruthToEDM/src/lib/MCTruthToEDM.cpp
rename to EDMdev/MCTruthToEDM/src/Lib/MCTruthToEDM.cpp
diff --git a/EDMdev/MCTruthToEDM/src/lib/VertexType.cpp b/EDMdev/MCTruthToEDM/src/Lib/VertexType.cpp
similarity index 100%
rename from EDMdev/MCTruthToEDM/src/lib/VertexType.cpp
rename to EDMdev/MCTruthToEDM/src/Lib/VertexType.cpp
diff --git a/Gen/GenBeam/CMakeLists.txt b/Gen/GenBeam/CMakeLists.txt
index 1a9b2f2a1424f4fead57fa7abacc99b8003e0841..6fca107203d0f41d59e6db94f122d8932bea52a9 100644
--- a/Gen/GenBeam/CMakeLists.txt
+++ b/Gen/GenBeam/CMakeLists.txt
@@ -8,24 +8,24 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: GenBeam
-################################################################################
-gaudi_subdir(GenBeam v1r0)
-
-gaudi_depends_on_subdirs(GaudiAlg
-                         Event/GenEvent
-                         NewRnd
-                         HepMCUser
-                         Gen/GenInterfaces
-                         #FIXME: For platform and kernel streaming, I think ?!?!
-                         Kernel/LHCbKernel)
-
-AddHepMC3()
+#[=======================================================================[.rst:
+Gen/GenBeam
+-----------
+#]=======================================================================]
+gaudi_add_header_only_library(GenBeamLib)
 
 gaudi_add_module(GenBeam
-                 src/*.cpp
-                 INCLUDE_DIRS Gen/GenInterfaces ${HEPMC3_INCLUDE_DIR} HepMCUser
-                 LINK_LIBRARIES GaudiAlgLib GenEvent LHCbKernel NewRnd ${HEPMC3_LIBRARIES})
-
-add_dependencies(GenBeam HepMC3Ext)
+    SOURCES
+    	src/Components/BeamInfoSvc.cpp
+	src/Components/BeamSpotSmearVertexWithSvc.cpp
+	src/Components/CollidingBeamsWithSvc.cpp
+	src/Components/FixedLuminosityWithSvc.cpp
+    LINK
+        HepMC3::HepMC3
+    	Gaudi::GaudiAlgLib
+	LHCb::GenEvent #  TODO: [LHCb DEPENDENCY]
+	Gaussino::HepMCUserLib
+	Gaussino::NewRndLib
+    	Gaussino::GenBeamLib
+	Gaussino::GenInterfacesLib
+)
diff --git a/Gen/GenBeam/GenBeam/IBeamInfoSvc.h b/Gen/GenBeam/include/GenBeam/IBeamInfoSvc.h
similarity index 96%
rename from Gen/GenBeam/GenBeam/IBeamInfoSvc.h
rename to Gen/GenBeam/include/GenBeam/IBeamInfoSvc.h
index 1a5b56d5923518f6df1c591161c63742de9d8527..c18da5d88c7c330b8ec83820a66166983317a5ff 100644
--- a/Gen/GenBeam/GenBeam/IBeamInfoSvc.h
+++ b/Gen/GenBeam/include/GenBeam/IBeamInfoSvc.h
@@ -28,9 +28,9 @@ class GAUDI_API IBeamInfoSvc : virtual public IService {
   public:
   DeclareInterfaceID(IBeamInfoSvc, 1, 0);
 
-  virtual StatusCode initialize() = 0;
+  virtual StatusCode initialize() override = 0;
 
-  virtual StatusCode finalize() = 0;
+  virtual StatusCode finalize() override = 0;
 
   /// Mean number of interactions per event (nu)
   virtual double nu() const = 0;
diff --git a/Gen/GenBeam/src/BeamInfoSvc.cpp b/Gen/GenBeam/src/Components/BeamInfoSvc.cpp
similarity index 100%
rename from Gen/GenBeam/src/BeamInfoSvc.cpp
rename to Gen/GenBeam/src/Components/BeamInfoSvc.cpp
diff --git a/Gen/GenBeam/src/BeamInfoSvc.h b/Gen/GenBeam/src/Components/BeamInfoSvc.h
similarity index 100%
rename from Gen/GenBeam/src/BeamInfoSvc.h
rename to Gen/GenBeam/src/Components/BeamInfoSvc.h
diff --git a/Gen/GenBeam/src/BeamSpotSmearVertexWithSvc.cpp b/Gen/GenBeam/src/Components/BeamSpotSmearVertexWithSvc.cpp
similarity index 100%
rename from Gen/GenBeam/src/BeamSpotSmearVertexWithSvc.cpp
rename to Gen/GenBeam/src/Components/BeamSpotSmearVertexWithSvc.cpp
diff --git a/Gen/GenBeam/src/BeamSpotSmearVertexWithSvc.h b/Gen/GenBeam/src/Components/BeamSpotSmearVertexWithSvc.h
similarity index 100%
rename from Gen/GenBeam/src/BeamSpotSmearVertexWithSvc.h
rename to Gen/GenBeam/src/Components/BeamSpotSmearVertexWithSvc.h
diff --git a/Gen/GenBeam/src/CollidingBeamsWithSvc.cpp b/Gen/GenBeam/src/Components/CollidingBeamsWithSvc.cpp
similarity index 100%
rename from Gen/GenBeam/src/CollidingBeamsWithSvc.cpp
rename to Gen/GenBeam/src/Components/CollidingBeamsWithSvc.cpp
diff --git a/Gen/GenBeam/src/CollidingBeamsWithSvc.h b/Gen/GenBeam/src/Components/CollidingBeamsWithSvc.h
similarity index 91%
rename from Gen/GenBeam/src/CollidingBeamsWithSvc.h
rename to Gen/GenBeam/src/Components/CollidingBeamsWithSvc.h
index e414adc76fc8ccdf4e0b15e529de949aebee3b7f..801b38468759fe7c88a0c5064d472919493f9a68 100755
--- a/Gen/GenBeam/src/CollidingBeamsWithSvc.h
+++ b/Gen/GenBeam/src/Components/CollidingBeamsWithSvc.h
@@ -36,12 +36,12 @@ class CollidingBeamsWithSvc : public GaudiTool, virtual public IBeamTool {
   virtual ~CollidingBeamsWithSvc( ); ///< Destructor
   
   /// Initialize method
-  virtual StatusCode initialize( ) ;  
+  virtual StatusCode initialize( ) override;  
   
   /** Implements IBeamTool::getMeanBeams
    */
   virtual void getMeanBeams( Gaudi::XYZVector & pBeam1 , 
-                             Gaudi::XYZVector & pBeam2 ) const ;
+                             Gaudi::XYZVector & pBeam2 ) const override;
   
   /** Implements IBeamTool::getBeams
    *  Compute beam 3-momentum taking into account the horizontal and vertical
@@ -49,7 +49,7 @@ class CollidingBeamsWithSvc : public GaudiTool, virtual public IBeamTool {
    *  with an angular smearing equal to (emittance/beta*)^1/2.
    */
   virtual void getBeams( Gaudi::XYZVector & pBeam1 , 
-                         Gaudi::XYZVector & pBeam2 ) ;
+                         Gaudi::XYZVector & pBeam2 ) override;
 
  private:
   IBeamInfoSvc *m_beaminfosvc;
diff --git a/Gen/GenBeam/src/FixedLuminosityWithSvc.cpp b/Gen/GenBeam/src/Components/FixedLuminosityWithSvc.cpp
similarity index 100%
rename from Gen/GenBeam/src/FixedLuminosityWithSvc.cpp
rename to Gen/GenBeam/src/Components/FixedLuminosityWithSvc.cpp
diff --git a/Gen/GenBeam/src/FixedLuminosityWithSvc.h b/Gen/GenBeam/src/Components/FixedLuminosityWithSvc.h
similarity index 94%
rename from Gen/GenBeam/src/FixedLuminosityWithSvc.h
rename to Gen/GenBeam/src/Components/FixedLuminosityWithSvc.h
index df96f58df206c9c8efc1c390c2748f87455ad20b..0b02e6252b15a4c4d3b12227c45ecf32132fe18e 100755
--- a/Gen/GenBeam/src/FixedLuminosityWithSvc.h
+++ b/Gen/GenBeam/src/Components/FixedLuminosityWithSvc.h
@@ -39,10 +39,10 @@ public:
   virtual ~FixedLuminosityWithSvc( ); ///< Destructor
 
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize( ) override;
   
   /// Finalize method
-  virtual StatusCode finalize( ) ;
+  virtual StatusCode finalize( ) override;
 
   /** Implements IPileUpTool::numberOfPileUp
    *  Returns the number of pile-up interactions in one event. It follows
@@ -50,10 +50,10 @@ public:
    *  mean = Luminosity * cross_section / crossing_rate.
    *  The fixed luminosity is returned in the GenHeader.
    */
-  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & engine ) ;
+  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & engine ) override;
 
   /// Implements IPileUpTool::printPileUpCounters
-  virtual void printPileUpCounters( ) ;
+  virtual void printPileUpCounters( ) override;
 
 protected:
 
diff --git a/Gen/GenInterfaces/CMakeLists.txt b/Gen/GenInterfaces/CMakeLists.txt
index 0295799021679779723f8f54c3205eee0025d4ee..36ae32b8b91e044eb8561c2f9c8204f729385970 100644
--- a/Gen/GenInterfaces/CMakeLists.txt
+++ b/Gen/GenInterfaces/CMakeLists.txt
@@ -8,17 +8,12 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
+#[=======================================================================[.rst:
+Gen/GenInterfaces
+-----------------
+#]=======================================================================]
 ################################################################################
 # Package: GenInterface
 ################################################################################
-gaudi_subdir(GenInterfaces v1r0)
-
-gaudi_depends_on_subdirs(HepMC3
-                         NewRnd)
-
-AddHepMC3()
-
-gaudi_install_headers(GenInterfaces)
-
-gaudi_install_headers(
-  Event)
+gaudi_add_header_only_library(GenInterfacesLib)
+gaudi_add_header_only_library(EventLib)
diff --git a/Gen/GenInterfaces/Event/GenFSRMTManager.h b/Gen/GenInterfaces/include/Event/GenFSRMTManager.h
similarity index 100%
rename from Gen/GenInterfaces/Event/GenFSRMTManager.h
rename to Gen/GenInterfaces/include/Event/GenFSRMTManager.h
diff --git a/Gen/GenInterfaces/GenInterfaces/IBeamTool.h b/Gen/GenInterfaces/include/GenInterfaces/IBeamTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/IBeamTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/IBeamTool.h
diff --git a/Gen/GenInterfaces/GenInterfaces/ICounterLogFile.h b/Gen/GenInterfaces/include/GenInterfaces/ICounterLogFile.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/ICounterLogFile.h
rename to Gen/GenInterfaces/include/GenInterfaces/ICounterLogFile.h
diff --git a/Gen/GenInterfaces/GenInterfaces/IDecayTool.h b/Gen/GenInterfaces/include/GenInterfaces/IDecayTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/IDecayTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/IDecayTool.h
diff --git a/Gen/GenInterfaces/GenInterfaces/IFullGenEventCutTool.h b/Gen/GenInterfaces/include/GenInterfaces/IFullGenEventCutTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/IFullGenEventCutTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/IFullGenEventCutTool.h
diff --git a/Gen/GenInterfaces/GenInterfaces/IGenCutTool.h b/Gen/GenInterfaces/include/GenInterfaces/IGenCutTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/IGenCutTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/IGenCutTool.h
diff --git a/Gen/GenInterfaces/GenInterfaces/IPileUpTool.h b/Gen/GenInterfaces/include/GenInterfaces/IPileUpTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/IPileUpTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/IPileUpTool.h
diff --git a/Gen/GenInterfaces/GenInterfaces/IProductionTool.h b/Gen/GenInterfaces/include/GenInterfaces/IProductionTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/IProductionTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/IProductionTool.h
diff --git a/Gen/GenInterfaces/GenInterfaces/ISampleGenerationTool.h b/Gen/GenInterfaces/include/GenInterfaces/ISampleGenerationTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/ISampleGenerationTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/ISampleGenerationTool.h
diff --git a/Gen/GenInterfaces/GenInterfaces/IVertexSmearingTool.h b/Gen/GenInterfaces/include/GenInterfaces/IVertexSmearingTool.h
similarity index 100%
rename from Gen/GenInterfaces/GenInterfaces/IVertexSmearingTool.h
rename to Gen/GenInterfaces/include/GenInterfaces/IVertexSmearingTool.h
diff --git a/Gen/Generators/CMakeLists.txt b/Gen/Generators/CMakeLists.txt
index 0d28c24773e145b0714d016ac462ad7bf9d369d6..96e90c1a81361a3722233c84fe00221f246fa122 100644
--- a/Gen/Generators/CMakeLists.txt
+++ b/Gen/Generators/CMakeLists.txt
@@ -8,43 +8,72 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: Generators
-################################################################################
-gaudi_subdir(Generators v16r0)
-
-gaudi_depends_on_subdirs(Event/GenEvent
-                         GaudiAlg
-                         NewRnd
-                         #FIXME: Gen/EvtGen
-                         #FIXME: Gen/EvtGenExtras
-                         #FIXME: Kernel/MCInterfaces
-                         #FIXME: Kernel/LHCbKernel
-                         Kernel/PartProp
-                         Defaults
-                         HepMC3
-                         HepMCUser
-                         Gen/GenInterfaces)
-
-find_package(Boost COMPONENTS filesystem system)
-find_package(Photos++)
-AddHepMC3()
-
-string(REPLACE "-pedantic" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
-string(REPLACE "-Wall" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
-string(REPLACE "-Wextra" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
-string(REPLACE "-Werror=return-type" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
+#[=======================================================================[.rst:
+Gen/Generators
+--------------
+#]=======================================================================]
 
 gaudi_add_library(GeneratorsLib
-                  src/Lib/*.cpp src/Lib/*.F
-                  PUBLIC_HEADERS Generators
-                  INCLUDE_DIRS Kernel/MCInterfaces Gen/GenInterfaces HepMCUser ${HEPMC3_INCLUDE_DIR}
-                  LINK_LIBRARIES GenEvent GaudiAlgLib PartPropLib ${HEPMC3_LIBRARIES} NewRnd)
+    SOURCES
+    	src/Lib/f77units.F
+        src/Lib/getaddr.cpp
+	src/Lib/pythiaoutput_utils.F
+	src/Lib/ExternalGenerator.cpp
+	src/Lib/F77Utils.cpp
+	src/Lib/Generation.cpp
+	src/Lib/GenCounters.cpp
+	src/Lib/LbPhotos.cpp
+	src/Lib/LbTaula.cpp
+	src/Lib/LhaPdf.cpp
+	src/Lib/LBPHOTOS.F
+	src/Lib/LBTAULA.F
+	src/Lib/LHAPDFCommonBlocks.cpp
+	src/Lib/LHAPDFUtils.F
+	src/Lib/Scale.cpp
+	src/Lib/Signal.cpp
+	src/Lib/StreamForGenerator.cpp
+	src/Lib/StringParse.cpp
+    LINK
+    	PUBLIC
+	    Gaudi::GaudiAlgLib
+	    LHCb::GenEvent # TODO: [LHCb DEPENDENCY]
+	    Gaussino::HepMCUtilsLib
+	    Gaussino::NewRndLib
+	    Gaussino::UtilsLib
+	    Gaussino::GenInterfacesLib
+	    Gaussino::EventLib
 
-add_dependencies(GeneratorsLib HepMC3Ext)
+)
 
 gaudi_add_module(Generators
-                 src/component/*.cpp
-                 INCLUDE_DIRS Boost Kernel/MCInterfaces  Gen/GenInterfaces Photos++
-                 LINK_LIBRARIES Boost GenEvent GaudiAlgLib LHCbKernel GeneratorsLib Photos++) 
-
+    SOURCES
+        src/Components/AsymmetricCollidingBeams.cpp
+	src/Components/BeamSpotMarkovChainSampleVertex.cpp
+	src/Components/BeamSpotSmearVertex.cpp
+	src/Components/CollidingBeams.cpp
+	src/Components/FixedLuminosity.cpp
+	src/Components/FixedLuminosityForRareProcess.cpp
+	src/Components/FixedLuminosityForSpillOver.cpp
+	src/Components/FixedNInteractions.cpp
+	src/Components/FixedTarget.cpp
+	src/Components/FlatSmearVertex.cpp
+	src/Components/FlatZSmearVertex.cpp
+	src/Components/GenerationComp.cpp
+	src/Components/HepMCWriter.cpp
+	src/Components/HistoSmearVertex.cpp
+	src/Components/Inclusive.cpp
+	src/Components/MergedEventsFilter.cpp
+	src/Components/MinimumBias.cpp
+	src/Components/PoissonPileUp.cpp
+	src/Components/ReadHepMCAsciiFile.cpp
+	src/Components/SaveSignalBInformation.cpp
+	src/Components/SignalForcedFragmentation.cpp
+	src/Components/SignalPlain.cpp
+	src/Components/SignalRepeatedHadronization.cpp
+	src/Components/StandAloneDecayTool.cpp
+	src/Components/UniformSmearVertex.cpp
+	src/Components/VariableLuminosity.cpp
+	src/Components/XmlCounterLogFile.cpp
+    LINK
+        Gaussino::GeneratorsLib
+)
diff --git a/Gen/Generators/Generators/ExternalGenerator.h b/Gen/Generators/include/Generators/ExternalGenerator.h
similarity index 98%
rename from Gen/Generators/Generators/ExternalGenerator.h
rename to Gen/Generators/include/Generators/ExternalGenerator.h
index 0c3011a62defe1d31cb098f415fc1c73b4746cf0..43797e5d4722528ae1ba28587b5e43429abc288c 100755
--- a/Gen/Generators/Generators/ExternalGenerator.h
+++ b/Gen/Generators/include/Generators/ExternalGenerator.h
@@ -75,13 +75,13 @@ class ExternalGenerator : public GaudiTool ,
    *     and declare them stable for the production tool if they are known
    *     by the decay tool. 
    */ 
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize( ) override;
 
   /** Finalization funtion.
    *  This function closes the file used to redirect LHAPDF output messages
    *  in case the output is disabled.
    */
-  virtual StatusCode finalize( ) ;
+  virtual StatusCode finalize( ) override;
   
  protected:
   /** Decay heavy excited particles.
diff --git a/Gen/Generators/Generators/F77Utils.h b/Gen/Generators/include/Generators/F77Utils.h
similarity index 100%
rename from Gen/Generators/Generators/F77Utils.h
rename to Gen/Generators/include/Generators/F77Utils.h
diff --git a/Gen/Generators/Generators/GenCounters.h b/Gen/Generators/include/Generators/GenCounters.h
similarity index 100%
rename from Gen/Generators/Generators/GenCounters.h
rename to Gen/Generators/include/Generators/GenCounters.h
diff --git a/Gen/Generators/Generators/Generation.h b/Gen/Generators/include/Generators/Generation.h
similarity index 100%
rename from Gen/Generators/Generators/Generation.h
rename to Gen/Generators/include/Generators/Generation.h
diff --git a/Gen/Generators/Generators/HepMCUtils.h b/Gen/Generators/include/Generators/HepMCUtils.h
similarity index 100%
rename from Gen/Generators/Generators/HepMCUtils.h
rename to Gen/Generators/include/Generators/HepMCUtils.h
diff --git a/Gen/Generators/Generators/LHAPDFCommonBlocks.h b/Gen/Generators/include/Generators/LHAPDFCommonBlocks.h
similarity index 100%
rename from Gen/Generators/Generators/LHAPDFCommonBlocks.h
rename to Gen/Generators/include/Generators/LHAPDFCommonBlocks.h
diff --git a/Gen/Generators/Generators/LbPhotos.h b/Gen/Generators/include/Generators/LbPhotos.h
similarity index 100%
rename from Gen/Generators/Generators/LbPhotos.h
rename to Gen/Generators/include/Generators/LbPhotos.h
diff --git a/Gen/Generators/Generators/LbTaula.h b/Gen/Generators/include/Generators/LbTaula.h
similarity index 100%
rename from Gen/Generators/Generators/LbTaula.h
rename to Gen/Generators/include/Generators/LbTaula.h
diff --git a/Gen/Generators/Generators/LhaPdf.h b/Gen/Generators/include/Generators/LhaPdf.h
similarity index 100%
rename from Gen/Generators/Generators/LhaPdf.h
rename to Gen/Generators/include/Generators/LhaPdf.h
diff --git a/Gen/Generators/Generators/Scale.h b/Gen/Generators/include/Generators/Scale.h
similarity index 100%
rename from Gen/Generators/Generators/Scale.h
rename to Gen/Generators/include/Generators/Scale.h
diff --git a/Gen/Generators/Generators/Signal.h b/Gen/Generators/include/Generators/Signal.h
similarity index 98%
rename from Gen/Generators/Generators/Signal.h
rename to Gen/Generators/include/Generators/Signal.h
index f1dc607bdaee856753f7790a863283b2927cc101..a3cd9bf109166d0b0981844c045d22fc5cf87667 100755
--- a/Gen/Generators/Generators/Signal.h
+++ b/Gen/Generators/include/Generators/Signal.h
@@ -47,10 +47,10 @@ class Signal : public ExternalGenerator {
   virtual ~Signal( ); ///< Destructor
   
   /// Initialize
-  virtual StatusCode initialize( ) ;  
+  virtual StatusCode initialize( ) override;  
 
   /// Print counters and cut efficiencies at the end of the job.
-  virtual void printCounters( ) const ;
+  virtual void printCounters( ) const override;
 
 protected:
   /// PID of the signal particle for this job (set by job options)
diff --git a/Gen/Generators/Generators/StreamForGenerator.h b/Gen/Generators/include/Generators/StreamForGenerator.h
similarity index 100%
rename from Gen/Generators/Generators/StreamForGenerator.h
rename to Gen/Generators/include/Generators/StreamForGenerator.h
diff --git a/Gen/Generators/Generators/StringParse.h b/Gen/Generators/include/Generators/StringParse.h
similarity index 100%
rename from Gen/Generators/Generators/StringParse.h
rename to Gen/Generators/include/Generators/StringParse.h
diff --git a/Gen/Generators/src/component/AsymmetricCollidingBeams.cpp b/Gen/Generators/src/Components/AsymmetricCollidingBeams.cpp
similarity index 100%
rename from Gen/Generators/src/component/AsymmetricCollidingBeams.cpp
rename to Gen/Generators/src/Components/AsymmetricCollidingBeams.cpp
diff --git a/Gen/Generators/src/component/AsymmetricCollidingBeams.h b/Gen/Generators/src/Components/AsymmetricCollidingBeams.h
similarity index 100%
rename from Gen/Generators/src/component/AsymmetricCollidingBeams.h
rename to Gen/Generators/src/Components/AsymmetricCollidingBeams.h
diff --git a/Gen/Generators/src/component/BeamSpotMarkovChainSampleVertex.cpp b/Gen/Generators/src/Components/BeamSpotMarkovChainSampleVertex.cpp
similarity index 100%
rename from Gen/Generators/src/component/BeamSpotMarkovChainSampleVertex.cpp
rename to Gen/Generators/src/Components/BeamSpotMarkovChainSampleVertex.cpp
diff --git a/Gen/Generators/src/component/BeamSpotMarkovChainSampleVertex.h b/Gen/Generators/src/Components/BeamSpotMarkovChainSampleVertex.h
similarity index 100%
rename from Gen/Generators/src/component/BeamSpotMarkovChainSampleVertex.h
rename to Gen/Generators/src/Components/BeamSpotMarkovChainSampleVertex.h
diff --git a/Gen/Generators/src/component/BeamSpotSmearVertex.cpp b/Gen/Generators/src/Components/BeamSpotSmearVertex.cpp
similarity index 100%
rename from Gen/Generators/src/component/BeamSpotSmearVertex.cpp
rename to Gen/Generators/src/Components/BeamSpotSmearVertex.cpp
diff --git a/Gen/Generators/src/component/BeamSpotSmearVertex.h b/Gen/Generators/src/Components/BeamSpotSmearVertex.h
similarity index 96%
rename from Gen/Generators/src/component/BeamSpotSmearVertex.h
rename to Gen/Generators/src/Components/BeamSpotSmearVertex.h
index c762524c86e886f78114cf195253545e8ac1b236..d8d86bcd94e2acfc0ef5298920ccf8e15dc45f32 100755
--- a/Gen/Generators/src/component/BeamSpotSmearVertex.h
+++ b/Gen/Generators/src/Components/BeamSpotSmearVertex.h
@@ -36,13 +36,13 @@ public:
   virtual ~BeamSpotSmearVertex( ); ///< Destructor
 
   /// Initialize function
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize( ) override;
 
   /** Implementation of IVertexSmearingTool::smearVertex.
    *  Gaussian smearing of spatial position of primary event truncated
    *  at a given number of sigma. 
    */
-  virtual StatusCode smearVertex( HepMC3::GenEventPtr theEvent , HepRandomEnginePtr & engine ) ;
+  virtual StatusCode smearVertex( HepMC3::GenEventPtr theEvent , HepRandomEnginePtr & engine ) override;
   
  private:
   /// Number of sigma above which to cut for x-axis smearing (set by options)
diff --git a/Gen/Generators/src/component/CollidingBeams.cpp b/Gen/Generators/src/Components/CollidingBeams.cpp
similarity index 100%
rename from Gen/Generators/src/component/CollidingBeams.cpp
rename to Gen/Generators/src/Components/CollidingBeams.cpp
diff --git a/Gen/Generators/src/component/CollidingBeams.h b/Gen/Generators/src/Components/CollidingBeams.h
similarity index 93%
rename from Gen/Generators/src/component/CollidingBeams.h
rename to Gen/Generators/src/Components/CollidingBeams.h
index 067f72d4f5e47be5e6e9b71ab1c6e6ffa55de667..ffb48b06ba0f4f8a86e6a6478439723c25b19d32 100755
--- a/Gen/Generators/src/component/CollidingBeams.h
+++ b/Gen/Generators/src/Components/CollidingBeams.h
@@ -37,7 +37,7 @@ class CollidingBeams : public GaudiTool, virtual public IBeamTool {
   /** Implements IBeamTool::getMeanBeams
    */
   virtual void getMeanBeams( Gaudi::XYZVector & pBeam1 , 
-                             Gaudi::XYZVector & pBeam2 ) const ;
+                             Gaudi::XYZVector & pBeam2 ) const override;
   
   /** Implements IBeamTool::getBeams
    *  Compute beam 3-momentum taking into account the horizontal and vertical
@@ -45,7 +45,7 @@ class CollidingBeams : public GaudiTool, virtual public IBeamTool {
    *  with an angular smearing equal to (emittance/beta*)^1/2.
    */
   virtual void getBeams( Gaudi::XYZVector & pBeam1 , 
-                         Gaudi::XYZVector & pBeam2 ) ;
+                         Gaudi::XYZVector & pBeam2 ) override;
 
  private:
   std::string m_beamParameters ; ///< Location of beam parameters (set by options)
diff --git a/Gen/Generators/src/component/FixedLuminosity.cpp b/Gen/Generators/src/Components/FixedLuminosity.cpp
similarity index 100%
rename from Gen/Generators/src/component/FixedLuminosity.cpp
rename to Gen/Generators/src/Components/FixedLuminosity.cpp
diff --git a/Gen/Generators/src/component/FixedLuminosity.h b/Gen/Generators/src/Components/FixedLuminosity.h
similarity index 94%
rename from Gen/Generators/src/component/FixedLuminosity.h
rename to Gen/Generators/src/Components/FixedLuminosity.h
index ad8b0c8436c1a0a01178a6da20b4727d221f5c3d..2f9f100ef340aff243cfd17f26bc2f34391c7f4c 100755
--- a/Gen/Generators/src/component/FixedLuminosity.h
+++ b/Gen/Generators/src/Components/FixedLuminosity.h
@@ -38,10 +38,10 @@ public:
   virtual ~FixedLuminosity( ); ///< Destructor
 
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize( ) override;
   
   /// Finalize method
-  virtual StatusCode finalize( ) ;
+  virtual StatusCode finalize( ) override;
 
   /** Implements IPileUpTool::numberOfPileUp
    *  Returns the number of pile-up interactions in one event. It follows
@@ -49,10 +49,10 @@ public:
    *  mean = Luminosity * cross_section / crossing_rate.
    *  The fixed luminosity is returned in the GenHeader.
    */
-  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & engine ) ;
+  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & engine ) override;
 
   /// Implements IPileUpTool::printPileUpCounters
-  virtual void printPileUpCounters( ) ;
+  virtual void printPileUpCounters( ) override;
 
 protected:
 
diff --git a/Gen/Generators/src/component/FixedLuminosityForRareProcess.cpp b/Gen/Generators/src/Components/FixedLuminosityForRareProcess.cpp
similarity index 100%
rename from Gen/Generators/src/component/FixedLuminosityForRareProcess.cpp
rename to Gen/Generators/src/Components/FixedLuminosityForRareProcess.cpp
diff --git a/Gen/Generators/src/component/FixedLuminosityForRareProcess.h b/Gen/Generators/src/Components/FixedLuminosityForRareProcess.h
similarity index 100%
rename from Gen/Generators/src/component/FixedLuminosityForRareProcess.h
rename to Gen/Generators/src/Components/FixedLuminosityForRareProcess.h
diff --git a/Gen/Generators/src/component/FixedLuminosityForSpillOver.cpp b/Gen/Generators/src/Components/FixedLuminosityForSpillOver.cpp
similarity index 100%
rename from Gen/Generators/src/component/FixedLuminosityForSpillOver.cpp
rename to Gen/Generators/src/Components/FixedLuminosityForSpillOver.cpp
diff --git a/Gen/Generators/src/component/FixedLuminosityForSpillOver.h b/Gen/Generators/src/Components/FixedLuminosityForSpillOver.h
similarity index 92%
rename from Gen/Generators/src/component/FixedLuminosityForSpillOver.h
rename to Gen/Generators/src/Components/FixedLuminosityForSpillOver.h
index e39d55ef3ce8a230a6878f7c83a86848fac1d0a8..9398193ce50c79e9edbfba7838e7778d4651759d 100644
--- a/Gen/Generators/src/component/FixedLuminosityForSpillOver.h
+++ b/Gen/Generators/src/Components/FixedLuminosityForSpillOver.h
@@ -40,10 +40,10 @@ public:
   virtual ~FixedLuminosityForSpillOver( ); ///< Destructor
 
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize( ) override;
   
   /// Finalize method
-  virtual StatusCode finalize( ) ;
+  virtual StatusCode finalize( ) override;
 
   /** Implements IPileUpTool::numberOfPileUp
    *  Returns the number of pile-up interactions in one event. It follows
@@ -51,10 +51,10 @@ public:
    *  mean = Luminosity * cross_section / crossing_rate.
    *  The fixed luminosity is returned as the currentLuminosity.
    */
-  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & ) ;
+  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & ) override;
 
   /// Implements IPileUpTool::printPileUpCounters
-  virtual void printPileUpCounters( ) ;
+  virtual void printPileUpCounters( ) override;
 
 protected:
 
diff --git a/Gen/Generators/src/component/FixedNInteractions.cpp b/Gen/Generators/src/Components/FixedNInteractions.cpp
similarity index 100%
rename from Gen/Generators/src/component/FixedNInteractions.cpp
rename to Gen/Generators/src/Components/FixedNInteractions.cpp
diff --git a/Gen/Generators/src/component/FixedNInteractions.h b/Gen/Generators/src/Components/FixedNInteractions.h
similarity index 92%
rename from Gen/Generators/src/component/FixedNInteractions.h
rename to Gen/Generators/src/Components/FixedNInteractions.h
index 6dc24e6cc79c7230f7ce04a381cf8b9ba393e6e4..72ec8cd21f57f1075aef84432031236902f58213 100755
--- a/Gen/Generators/src/component/FixedNInteractions.h
+++ b/Gen/Generators/src/Components/FixedNInteractions.h
@@ -36,16 +36,16 @@ class FixedNInteractions : public GaudiTool, virtual public IPileUpTool {
   virtual ~FixedNInteractions( ); ///< Destructor
   
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize( ) override;
   
   /** Returns a constant number of pile-up interactions.
    *  Implementation of IPileUpTool::numberOfPileUp. 
    *  Returns a luminosity equal to 0.
    */
-  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & ) ;
+  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & ) override;
   
   /// Implementation of IPileUpTool::printPileUpCounters
-  virtual void printPileUpCounters( ) ;
+  virtual void printPileUpCounters( ) override;
   
  private:  
   /// Number of interactions to generate (set by job options)
diff --git a/Gen/Generators/src/component/FixedTarget.cpp b/Gen/Generators/src/Components/FixedTarget.cpp
similarity index 100%
rename from Gen/Generators/src/component/FixedTarget.cpp
rename to Gen/Generators/src/Components/FixedTarget.cpp
diff --git a/Gen/Generators/src/component/FixedTarget.h b/Gen/Generators/src/Components/FixedTarget.h
similarity index 91%
rename from Gen/Generators/src/component/FixedTarget.h
rename to Gen/Generators/src/Components/FixedTarget.h
index ea9ebe92acf65b79b738db5080119edc40644186..3cb81c8f61b1e4b8c79e52100849dce2eb9cd2b2 100755
--- a/Gen/Generators/src/component/FixedTarget.h
+++ b/Gen/Generators/src/Components/FixedTarget.h
@@ -35,15 +35,15 @@ class FixedTarget : public GaudiTool, virtual public IBeamTool {
   virtual ~FixedTarget( ); ///< Destructor
   
   /// Initialize method
-  virtual StatusCode initialize( ) ;  
+  virtual StatusCode initialize( ) override;  
   
   /// Implements IBeamTool::getMeanBeams. See CollidingBeams::getMeanBeams
   virtual void getMeanBeams( Gaudi::XYZVector & pBeam1 , 
-                             Gaudi::XYZVector & pBeam2 ) const ;
+                             Gaudi::XYZVector & pBeam2 ) const override;
   
   /// Implements IBeamTool::getBeams. See CollidingBeams::getBeams
   virtual void getBeams( Gaudi::XYZVector & pBeam1 , 
-                         Gaudi::XYZVector & pBeam2 ) ;
+                         Gaudi::XYZVector & pBeam2 ) override;
   
  private:
   std::string m_beamParameters ; ///< Location of beam parameters (set by options)
diff --git a/Gen/Generators/src/component/FlatSmearVertex.cpp b/Gen/Generators/src/Components/FlatSmearVertex.cpp
similarity index 100%
rename from Gen/Generators/src/component/FlatSmearVertex.cpp
rename to Gen/Generators/src/Components/FlatSmearVertex.cpp
diff --git a/Gen/Generators/src/component/FlatSmearVertex.h b/Gen/Generators/src/Components/FlatSmearVertex.h
similarity index 100%
rename from Gen/Generators/src/component/FlatSmearVertex.h
rename to Gen/Generators/src/Components/FlatSmearVertex.h
diff --git a/Gen/Generators/src/component/FlatZSmearVertex.cpp b/Gen/Generators/src/Components/FlatZSmearVertex.cpp
similarity index 100%
rename from Gen/Generators/src/component/FlatZSmearVertex.cpp
rename to Gen/Generators/src/Components/FlatZSmearVertex.cpp
diff --git a/Gen/Generators/src/component/FlatZSmearVertex.h b/Gen/Generators/src/Components/FlatZSmearVertex.h
similarity index 100%
rename from Gen/Generators/src/component/FlatZSmearVertex.h
rename to Gen/Generators/src/Components/FlatZSmearVertex.h
diff --git a/Gen/Generators/src/component/GenerationComp.cpp b/Gen/Generators/src/Components/GenerationComp.cpp
similarity index 100%
rename from Gen/Generators/src/component/GenerationComp.cpp
rename to Gen/Generators/src/Components/GenerationComp.cpp
diff --git a/Gen/Generators/src/component/HepMCWriter.cpp b/Gen/Generators/src/Components/HepMCWriter.cpp
similarity index 100%
rename from Gen/Generators/src/component/HepMCWriter.cpp
rename to Gen/Generators/src/Components/HepMCWriter.cpp
diff --git a/Gen/Generators/src/component/HistoSmearVertex.cpp b/Gen/Generators/src/Components/HistoSmearVertex.cpp
similarity index 100%
rename from Gen/Generators/src/component/HistoSmearVertex.cpp
rename to Gen/Generators/src/Components/HistoSmearVertex.cpp
diff --git a/Gen/Generators/src/component/HistoSmearVertex.h b/Gen/Generators/src/Components/HistoSmearVertex.h
similarity index 100%
rename from Gen/Generators/src/component/HistoSmearVertex.h
rename to Gen/Generators/src/Components/HistoSmearVertex.h
diff --git a/Gen/Generators/src/component/Inclusive.cpp b/Gen/Generators/src/Components/Inclusive.cpp
similarity index 100%
rename from Gen/Generators/src/component/Inclusive.cpp
rename to Gen/Generators/src/Components/Inclusive.cpp
diff --git a/Gen/Generators/src/component/Inclusive.h b/Gen/Generators/src/Components/Inclusive.h
similarity index 100%
rename from Gen/Generators/src/component/Inclusive.h
rename to Gen/Generators/src/Components/Inclusive.h
diff --git a/Gen/Generators/src/component/MergedEventsFilter.cpp b/Gen/Generators/src/Components/MergedEventsFilter.cpp
similarity index 100%
rename from Gen/Generators/src/component/MergedEventsFilter.cpp
rename to Gen/Generators/src/Components/MergedEventsFilter.cpp
diff --git a/Gen/Generators/src/component/MergedEventsFilter.h b/Gen/Generators/src/Components/MergedEventsFilter.h
similarity index 100%
rename from Gen/Generators/src/component/MergedEventsFilter.h
rename to Gen/Generators/src/Components/MergedEventsFilter.h
diff --git a/Gen/Generators/src/component/MinimumBias.cpp b/Gen/Generators/src/Components/MinimumBias.cpp
similarity index 100%
rename from Gen/Generators/src/component/MinimumBias.cpp
rename to Gen/Generators/src/Components/MinimumBias.cpp
diff --git a/Gen/Generators/src/component/MinimumBias.h b/Gen/Generators/src/Components/MinimumBias.h
similarity index 100%
rename from Gen/Generators/src/component/MinimumBias.h
rename to Gen/Generators/src/Components/MinimumBias.h
diff --git a/Gen/Generators/src/component/PoissonPileUp.cpp b/Gen/Generators/src/Components/PoissonPileUp.cpp
similarity index 100%
rename from Gen/Generators/src/component/PoissonPileUp.cpp
rename to Gen/Generators/src/Components/PoissonPileUp.cpp
diff --git a/Gen/Generators/src/component/PoissonPileUp.h b/Gen/Generators/src/Components/PoissonPileUp.h
similarity index 100%
rename from Gen/Generators/src/component/PoissonPileUp.h
rename to Gen/Generators/src/Components/PoissonPileUp.h
diff --git a/Gen/Generators/src/component/ReadHepMCAsciiFile.cpp b/Gen/Generators/src/Components/ReadHepMCAsciiFile.cpp
similarity index 89%
rename from Gen/Generators/src/component/ReadHepMCAsciiFile.cpp
rename to Gen/Generators/src/Components/ReadHepMCAsciiFile.cpp
index b59cb9666978ecf5dd7e51292704144fdf9686ea..030809d0d129a6461a1e9c1e162162b197872c16 100755
--- a/Gen/Generators/src/component/ReadHepMCAsciiFile.cpp
+++ b/Gen/Generators/src/Components/ReadHepMCAsciiFile.cpp
@@ -57,8 +57,7 @@ class ReadHepMCAsciiFile
 {
 public:
   /// initialization of the tool 
-  virtual StatusCode initialize () 
-  {
+  virtual StatusCode initialize () override {
     StatusCode sc = GaudiTool::initialize () ;
     if ( sc.isFailure() ) { return sc ; }
     /// check the output file 
@@ -69,15 +68,14 @@ public:
     return StatusCode::SUCCESS ;
   }
   /// finalization of the tool 
-  virtual StatusCode finalize   () 
-  {
+  virtual StatusCode finalize () override {
     // delete the stream  (close the file!)
     if ( 0 != m_file ) { delete m_file ; m_file = 0 ; }
     // finalize the base class ;
     return GaudiTool::finalize() ;
   }
 public:
-  virtual StatusCode initializeGenerator() { return StatusCode::SUCCESS ; } 
+  virtual StatusCode initializeGenerator() override { return StatusCode::SUCCESS ; } 
   
   // ===================================================================
   /** Generate a primary interaction. 
@@ -91,24 +89,22 @@ public:
    */
   virtual StatusCode generateEvent 
   ( HepMC3::GenEventPtr theEvent , 
-    LHCb::GenCollision * theInfo , HepRandomEnginePtr & ) const;
+    LHCb::GenCollision * theInfo , HepRandomEnginePtr & ) const override;
   // ===================================================================
   /// Declare a particle stable to the production generator.
-  virtual void setStable
-  ( const LHCb::ParticleProperty * /* thePP */ ) { }
+  virtual void setStable( const LHCb::ParticleProperty* /* thePP */ ) override {};
   // ===================================================================
   /** Update the properties of the particle in the production generator
    *  with values from the particle property service.
    */
   // ===================================================================
-  virtual void updateParticleProperties
-  ( const LHCb::ParticleProperty * /* thePP */ ) {};
+  virtual void updateParticleProperties( const LHCb::ParticleProperty * /* thePP */ ) override {};
   // ===================================================================
   /// Turn off the fragmentation step in the generation.
-  virtual void turnOffFragmentation  ( ) {} ;
+  virtual void turnOffFragmentation() override {};
   // ===================================================================
   /// Turn on the fragmentation step in the generation.
-  virtual void turnOnFragmentation   ( )  {}  ;
+  virtual void turnOnFragmentation() override {};
   // ===================================================================
   /** Hadronize the event.
    *  @param[in,out] theEvent  Unfragmented event to hadronize.
@@ -118,28 +114,24 @@ public:
   virtual StatusCode hadronize
   ( HepMC3::GenEventPtr     /* theEvent */ , 
     LHCb::GenCollision * /* theInfo  */,
-    HepRandomEnginePtr & ) { return StatusCode::SUCCESS ; }
+    HepRandomEnginePtr & ) override { return StatusCode::SUCCESS; };
   // ===================================================================
   /// Save the parton level event (when the fragmentation is turned off)
-  virtual void savePartonEvent
-  ( HepMC3::GenEventPtr /* theEvent */ ) {} ;
+  virtual void savePartonEvent( HepMC3::GenEventPtr /* theEvent */ ) override {};
   // ===================================================================
   /// Retrieve the previously saved parton event to re-hadronize it.
-  virtual void retrievePartonEvent
-  ( HepMC3::GenEventPtr /* theEvent */ ) {} ;
+  virtual void retrievePartonEvent( HepMC3::GenEventPtr /* theEvent */ ) override {};
   // ===================================================================
   /// Print configuration of production generator 
-  virtual void printRunningConditions( ) const {} ;
+  virtual void printRunningConditions( ) const override {};
   // ===================================================================
   /** Define special particles whose properties must not be updated from 
    *  the particle property service (like mass of top quark, ...)
    */
-  virtual bool isSpecialParticle
-  ( const LHCb::ParticleProperty* /* thePP */ ) const { return true ; }
+  virtual bool isSpecialParticle( const LHCb::ParticleProperty* /* thePP */ ) const override { return true; };
   // ===================================================================
   /// Prepare the generator to force fragmentationto in the thePdgId flavour.
-  virtual StatusCode setupForcedFragmentation
-  ( const int /* thePdgId */ ) { return StatusCode::SUCCESS ; };
+  virtual StatusCode setupForcedFragmentation( const int /* thePdgId */ ) override { return StatusCode::SUCCESS; };
   // ===================================================================
   /** standard constructor
    *  @param type tool type(?)
diff --git a/Gen/Generators/src/component/SaveSignalBInformation.cpp b/Gen/Generators/src/Components/SaveSignalBInformation.cpp
similarity index 100%
rename from Gen/Generators/src/component/SaveSignalBInformation.cpp
rename to Gen/Generators/src/Components/SaveSignalBInformation.cpp
diff --git a/Gen/Generators/src/component/SaveSignalBInformation.h b/Gen/Generators/src/Components/SaveSignalBInformation.h
similarity index 100%
rename from Gen/Generators/src/component/SaveSignalBInformation.h
rename to Gen/Generators/src/Components/SaveSignalBInformation.h
diff --git a/Gen/Generators/src/component/SignalForcedFragmentation.cpp b/Gen/Generators/src/Components/SignalForcedFragmentation.cpp
similarity index 100%
rename from Gen/Generators/src/component/SignalForcedFragmentation.cpp
rename to Gen/Generators/src/Components/SignalForcedFragmentation.cpp
diff --git a/Gen/Generators/src/component/SignalForcedFragmentation.h b/Gen/Generators/src/Components/SignalForcedFragmentation.h
similarity index 100%
rename from Gen/Generators/src/component/SignalForcedFragmentation.h
rename to Gen/Generators/src/Components/SignalForcedFragmentation.h
diff --git a/Gen/Generators/src/component/SignalPlain.cpp b/Gen/Generators/src/Components/SignalPlain.cpp
similarity index 100%
rename from Gen/Generators/src/component/SignalPlain.cpp
rename to Gen/Generators/src/Components/SignalPlain.cpp
diff --git a/Gen/Generators/src/component/SignalPlain.h b/Gen/Generators/src/Components/SignalPlain.h
similarity index 100%
rename from Gen/Generators/src/component/SignalPlain.h
rename to Gen/Generators/src/Components/SignalPlain.h
diff --git a/Gen/Generators/src/component/SignalRepeatedHadronization.cpp b/Gen/Generators/src/Components/SignalRepeatedHadronization.cpp
similarity index 100%
rename from Gen/Generators/src/component/SignalRepeatedHadronization.cpp
rename to Gen/Generators/src/Components/SignalRepeatedHadronization.cpp
diff --git a/Gen/Generators/src/component/SignalRepeatedHadronization.h b/Gen/Generators/src/Components/SignalRepeatedHadronization.h
similarity index 100%
rename from Gen/Generators/src/component/SignalRepeatedHadronization.h
rename to Gen/Generators/src/Components/SignalRepeatedHadronization.h
diff --git a/Gen/Generators/src/component/StandAloneDecayTool.cpp b/Gen/Generators/src/Components/StandAloneDecayTool.cpp
similarity index 100%
rename from Gen/Generators/src/component/StandAloneDecayTool.cpp
rename to Gen/Generators/src/Components/StandAloneDecayTool.cpp
diff --git a/Gen/Generators/src/component/StandAloneDecayTool.h b/Gen/Generators/src/Components/StandAloneDecayTool.h
similarity index 100%
rename from Gen/Generators/src/component/StandAloneDecayTool.h
rename to Gen/Generators/src/Components/StandAloneDecayTool.h
diff --git a/Gen/Generators/src/component/UniformSmearVertex.cpp b/Gen/Generators/src/Components/UniformSmearVertex.cpp
similarity index 100%
rename from Gen/Generators/src/component/UniformSmearVertex.cpp
rename to Gen/Generators/src/Components/UniformSmearVertex.cpp
diff --git a/Gen/Generators/src/component/UniformSmearVertex.h b/Gen/Generators/src/Components/UniformSmearVertex.h
similarity index 97%
rename from Gen/Generators/src/component/UniformSmearVertex.h
rename to Gen/Generators/src/Components/UniformSmearVertex.h
index 9ad1c792f7b2967e459f409d492b16fe675e1596..b3f80ab094ffeed0300170ff3a501e00ec63fe51 100755
--- a/Gen/Generators/src/component/UniformSmearVertex.h
+++ b/Gen/Generators/src/Components/UniformSmearVertex.h
@@ -42,14 +42,14 @@ class UniformSmearVertex : public GaudiTool,
   virtual ~UniformSmearVertex( ); ///< Destructor
 
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize() override;
   
   /** Implements IVertexSmearingTool::smearVertex.
    *  Does the same than BeamSpotSmearVertex::smearVertex for the x and y
    *  direction but generates flat distribution for the z-coordinate of
    *  the primary vertex.
    */
-  virtual StatusCode smearVertex( HepMC3::GenEventPtr theEvent , HepRandomEnginePtr & engine ) ;
+  virtual StatusCode smearVertex( HepMC3::GenEventPtr theEvent , HepRandomEnginePtr & engine ) override;
   
  private:
   /// Maximum value for the r coordinate of the vertex (set by options)
diff --git a/Gen/Generators/src/component/VariableLuminosity.cpp b/Gen/Generators/src/Components/VariableLuminosity.cpp
similarity index 100%
rename from Gen/Generators/src/component/VariableLuminosity.cpp
rename to Gen/Generators/src/Components/VariableLuminosity.cpp
diff --git a/Gen/Generators/src/component/VariableLuminosity.h b/Gen/Generators/src/Components/VariableLuminosity.h
similarity index 95%
rename from Gen/Generators/src/component/VariableLuminosity.h
rename to Gen/Generators/src/Components/VariableLuminosity.h
index fdb9edd34440f96273e219a02a09b43d03e1ff4a..86e466a3ab193b19434509eabc6ea5a182fff36b 100755
--- a/Gen/Generators/src/component/VariableLuminosity.h
+++ b/Gen/Generators/src/Components/VariableLuminosity.h
@@ -39,10 +39,10 @@ public:
   virtual ~VariableLuminosity( ); ///< Destructor
 
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize() override;
   
   /// Finalize method
-  virtual StatusCode finalize( ) ;
+  virtual StatusCode finalize() override;
 
   /** Compute number of interactions and returns luminosity
    *  Implements IPileUpTool::numberOfPileUp.
@@ -52,10 +52,10 @@ public:
    *  The mean luminosity is given in options so the maximum luminosity 
    *  (at t=0) is computed using the fill duration.
    */
-  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & engine ) ;
+  virtual unsigned int numberOfPileUp( HepRandomEnginePtr & engine ) override;
 
   /// Implements IPileUpTool::printPileUpCounters
-  virtual void printPileUpCounters( ) ;
+  virtual void printPileUpCounters() override;
 
 private:
   /// Location where to store FSR counters (set by options)
diff --git a/Gen/Generators/src/component/XmlCounterLogFile.cpp b/Gen/Generators/src/Components/XmlCounterLogFile.cpp
similarity index 100%
rename from Gen/Generators/src/component/XmlCounterLogFile.cpp
rename to Gen/Generators/src/Components/XmlCounterLogFile.cpp
diff --git a/Gen/Generators/src/component/XmlCounterLogFile.h b/Gen/Generators/src/Components/XmlCounterLogFile.h
similarity index 81%
rename from Gen/Generators/src/component/XmlCounterLogFile.h
rename to Gen/Generators/src/Components/XmlCounterLogFile.h
index dd78957b9aeba60a77640dcf2cd39287e24c9404..92c9ff3055f41463a5067a18e6b6fc2633b7d5c7 100644
--- a/Gen/Generators/src/component/XmlCounterLogFile.h
+++ b/Gen/Generators/src/Components/XmlCounterLogFile.h
@@ -37,34 +37,34 @@ public:
   virtual ~XmlCounterLogFile( ); ///< Destructor
 
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize() override;
   
   /// Finalize method
-  virtual StatusCode finalize( ) ;
+  virtual StatusCode finalize() override;
 
   /// Add efficiency number
   virtual void addEfficiency( const std::string & name , const unsigned int after , 
                               const unsigned int before , const double fraction , 
-                              const double err_fraction ) ;
+                              const double err_fraction ) override;
 
-  virtual void addCounter( const std::string & name , const unsigned int value ) ; 
+  virtual void addCounter( const std::string & name , const unsigned int value ) override; 
 
   virtual void addFraction( const std::string & name , const unsigned int number , 
-                            const double fraction , const double err_fraction ) ;
+                            const double fraction , const double err_fraction ) override;
 
   virtual void addCrossSection( const std::string & name , 
                                 const unsigned int processId , 
                                 const unsigned int number , 
-                                const double value ) ;
+                                const double value ) override;
 
-  virtual void addEventType( const unsigned int evType ) ;
+  virtual void addEventType( const unsigned int evType ) override;
 
   /// Add the Gauss version
-  virtual void addGaussVersion( const std::string & version ) ;
+  virtual void addGaussVersion( const std::string & version ) override;
 
-  virtual void addMethod( const std::string & type ) ;
+  virtual void addMethod( const std::string & type ) override;
 
-  virtual void addGenerator( const std::string & generator ) ;
+  virtual void addGenerator( const std::string & generator ) override;
 
 protected:
 
diff --git a/Gen/Generators/src/component/not_yet_ported/Special.cpp b/Gen/Generators/src/Components/not_yet_ported/Special.cpp
similarity index 100%
rename from Gen/Generators/src/component/not_yet_ported/Special.cpp
rename to Gen/Generators/src/Components/not_yet_ported/Special.cpp
diff --git a/Gen/Generators/src/component/not_yet_ported/Special.h b/Gen/Generators/src/Components/not_yet_ported/Special.h
similarity index 100%
rename from Gen/Generators/src/component/not_yet_ported/Special.h
rename to Gen/Generators/src/Components/not_yet_ported/Special.h
diff --git a/Gen/Generators/src/component/scrapyard/ApplyPhotos.cpp b/Gen/Generators/src/Components/scrapyard/ApplyPhotos.cpp
similarity index 100%
rename from Gen/Generators/src/component/scrapyard/ApplyPhotos.cpp
rename to Gen/Generators/src/Components/scrapyard/ApplyPhotos.cpp
diff --git a/Gen/Generators/src/component/scrapyard/ApplyPhotos.h b/Gen/Generators/src/Components/scrapyard/ApplyPhotos.h
similarity index 100%
rename from Gen/Generators/src/component/scrapyard/ApplyPhotos.h
rename to Gen/Generators/src/Components/scrapyard/ApplyPhotos.h
diff --git a/Gen/Generators/src/component/scrapyard/RepeatDecay.cpp b/Gen/Generators/src/Components/scrapyard/RepeatDecay.cpp
similarity index 100%
rename from Gen/Generators/src/component/scrapyard/RepeatDecay.cpp
rename to Gen/Generators/src/Components/scrapyard/RepeatDecay.cpp
diff --git a/Gen/Generators/src/component/scrapyard/RepeatDecay.h b/Gen/Generators/src/Components/scrapyard/RepeatDecay.h
similarity index 100%
rename from Gen/Generators/src/component/scrapyard/RepeatDecay.h
rename to Gen/Generators/src/Components/scrapyard/RepeatDecay.h
diff --git a/Gen/Generators/src/Lib/GenCounters.cpp b/Gen/Generators/src/Lib/GenCounters.cpp
index 3e7f1100e347edb89a47ea3368f04e20bb8d0531..e3e28249dd688b52452f777d7f654600c1cbeed1 100755
--- a/Gen/Generators/src/Lib/GenCounters.cpp
+++ b/Gen/Generators/src/Lib/GenCounters.cpp
@@ -15,8 +15,8 @@
 #include "Generators/GenCounters.h"
 
 // Generators
-#include "HepMCUtils/HepMCUtils.h"
 #include "HepMCUser/Status.h"
+#include "HepMCUtils/HepMCUtils.h"
 
 // HepMC
 #include "HepMC3/GenEvent.h"
@@ -27,8 +27,8 @@
 #include "Defaults/HepMCAttributes.h"
 
 // Event
-#include "Event/GenFSR.h"
 #include "Event/GenCountersFSR.h"
+#include "Event/GenFSR.h"
 
 // LHCb
 #include "Kernel/ParticleID.h"
@@ -36,127 +36,123 @@
 //=============================================================================
 // Function to test if a HepMC3::GenParticle is a B hadron at root of decay
 //=============================================================================
-struct isRootB : std::unary_function< const HepMC3::ConstGenParticlePtr &, bool > {
+struct isRootB : std::unary_function<const HepMC3::ConstGenParticlePtr&, bool> {
 
   /// test operator, returns true if it is a root B
-  bool operator() ( const HepMC3::ConstGenParticlePtr & part ) const {
+  bool operator()( const HepMC3::ConstGenParticlePtr& part ) const {
 
     // Do not consider documentation and special particles
-    if ( part -> status() == HepMC3::Status::DocumentationParticle ) 
-      return false ;
-    
+    if ( part->status() == HepMC3::Status::DocumentationParticle ) return false;
+
     // Check if particle has a b quark
-    LHCb::ParticleID thePid( part -> pdg_id() ) ;
-    if ( ! thePid.hasBottom() ) return false ;
+    LHCb::ParticleID thePid( part->pdg_id() );
+    if ( !thePid.hasBottom() ) return false;
 
     // Check if particle has a mother
-    if ( ! part -> production_vertex() ) return true ;
+    if ( !part->production_vertex() ) return true;
 
-    // Check all parents of the B 
-    for ( auto & parent : HepMC3::Relatives::PARENTS(part) ) {
-      LHCb::ParticleID parentID( parent -> pdg_id() ) ;
-      if ( parentID.hasBottom() && (thePid.abspid()==5 || parentID.abspid()!=5)) return false ;
+    // Check all parents of the B
+    for ( auto& parent : HepMC3::Relatives::PARENTS( part ) ) {
+      LHCb::ParticleID parentID( parent->pdg_id() );
+      if ( parentID.hasBottom() && ( thePid.abspid() == 5 || parentID.abspid() != 5 ) ) return false;
     }
 
     // If no parent is a B, then it is a root B
-    return true ;
+    return true;
   }
 };
 
 //=============================================================================
 // Function to test if a HepMC3::GenParticle is a D hadron at root of decay
 //=============================================================================
-struct isRootD : std::unary_function< const HepMC3::ConstGenParticlePtr &, bool > {
+struct isRootD : std::unary_function<const HepMC3::ConstGenParticlePtr&, bool> {
 
   /// test operator, returns true if it is a root D
-  bool operator() ( const HepMC3::ConstGenParticlePtr & part ) const {
+  bool operator()( const HepMC3::ConstGenParticlePtr& part ) const {
 
     // Do not consider documentation and special particles
-    if ( part -> status() == HepMC3::Status::DocumentationParticle ) 
-      return false ;
+    if ( part->status() == HepMC3::Status::DocumentationParticle ) return false;
 
     // Check if particle has a c quark
-    LHCb::ParticleID thePid( part -> pdg_id() ) ;
-    if ( ! thePid.hasCharm() ) return false ;
-    if ( thePid.hasBottom() ) return false ;
+    LHCb::ParticleID thePid( part->pdg_id() );
+    if ( !thePid.hasCharm() ) return false;
+    if ( thePid.hasBottom() ) return false;
 
     // Check if particle has a mother
-    if ( ! part -> production_vertex() ) return true ;
+    if ( !part->production_vertex() ) return true;
 
     // Check all parents of the D
-    for ( auto & parent : HepMC3::Relatives::PARENTS(part) ) {
-      LHCb::ParticleID parentID( parent -> pdg_id() ) ;
-      if ( parentID.hasCharm()  && (parentID.abspid()!=4 || thePid.abspid()==4)) return false ;
+    for ( auto& parent : HepMC3::Relatives::PARENTS( part ) ) {
+      LHCb::ParticleID parentID( parent->pdg_id() );
+      if ( parentID.hasCharm() && ( parentID.abspid() != 4 || thePid.abspid() == 4 ) ) return false;
     }
 
     // If no parent is a D, then it is a root D
-    return true ;
+    return true;
   }
 };
 
 //=============================================================================
 // Function to test if a HepMC3::GenParticle is a B hadron at end of decay tree
 //=============================================================================
-struct isEndB : std::unary_function< const HepMC3::ConstGenParticlePtr &, bool > {
+struct isEndB : std::unary_function<const HepMC3::ConstGenParticlePtr&, bool> {
 
   /// Test operator. Returns true if particle is the last B
-  bool operator() ( const HepMC3::ConstGenParticlePtr & part ) const {
+  bool operator()( const HepMC3::ConstGenParticlePtr& part ) const {
 
     // Do not look at special particles
-    if ( part -> status() == HepMC3::Status::DocumentationParticle ) 
-      return false ;
+    if ( part->status() == HepMC3::Status::DocumentationParticle ) return false;
 
     // Test if particle has a b quark
-    LHCb::ParticleID thePid( part -> pdg_id() ) ;
-    if ( ! thePid.hasBottom() ) return false ;
+    LHCb::ParticleID thePid( part->pdg_id() );
+    if ( !thePid.hasBottom() ) return false;
 
     // test oscillation
-    if ( ! HepMCUtils::IsBAtProduction( part ) ) return false ;
+    if ( !HepMCUtils::IsBAtProduction( part ) ) return false;
 
     // Test if the B has daughters (here we are sure it has not oscillated)
-    if ( ! part -> end_vertex() ) return true ;
-    
+    if ( !part->end_vertex() ) return true;
+
     // Loop over daughters to check if they are B hadrons
-    for ( auto & child : HepMC3::Relatives::CHILDREN(part) ){
-      LHCb::ParticleID childID( child -> pdg_id() ) ;
+    for ( auto& child : HepMC3::Relatives::CHILDREN( part ) ) {
+      LHCb::ParticleID childID( child->pdg_id() );
       if ( childID.hasBottom() ) {
-        if ( child -> pdg_id() == - part -> pdg_id() ) return true ;
-        return false ;
+        if ( child->pdg_id() == -part->pdg_id() ) return true;
+        return false;
       }
     }
 
     // If not, then it is a end B
-    return true ;
+    return true;
   }
 };
 
 //=============================================================================
 // Function to test if a HepMC3::GenParticle is a D hadron at end of decay tree
 //=============================================================================
-struct isEndD : std::unary_function< const HepMC3::ConstGenParticlePtr &, bool > {
+struct isEndD : std::unary_function<const HepMC3::ConstGenParticlePtr&, bool> {
 
   /// Test operator. Returns true if it is the last D
-  bool operator() ( const HepMC3::ConstGenParticlePtr & part ) const {
+  bool operator()( const HepMC3::ConstGenParticlePtr& part ) const {
 
     // Do not look at special particles
-    if ( part -> status() == HepMC3::Status::DocumentationParticle ) 
-      return false ;
+    if ( part->status() == HepMC3::Status::DocumentationParticle ) return false;
 
     // Check if it has a c quark
-    LHCb::ParticleID thePid( part -> pdg_id() ) ;
-    if ( ! thePid.hasCharm() ) return false ;
+    LHCb::ParticleID thePid( part->pdg_id() );
+    if ( !thePid.hasCharm() ) return false;
 
     // Check if it has daughters
-    if ( ! part -> end_vertex() ) return true ;
+    if ( !part->end_vertex() ) return true;
 
     // Loop over the daughters to find a D hadron
-    for ( auto & child : HepMC3::Relatives::CHILDREN(part) ) {
-      LHCb::ParticleID childID( child -> pdg_id() ) ;
-      if ( childID.hasCharm() ) return false ;
+    for ( auto& child : HepMC3::Relatives::CHILDREN( part ) ) {
+      LHCb::ParticleID childID( child->pdg_id() );
+      if ( childID.hasCharm() ) return false;
     }
 
     // If not, then it is a End D
-    return true ;
+    return true;
   }
 };
 
@@ -169,452 +165,359 @@ struct isEndD : std::unary_function< const HepMC3::ConstGenParticlePtr &, bool >
 //=============================================================================
 // Setup names of B hadron counters
 //=============================================================================
-void GenCounters::setupBHadronCountersNames( BHadronCNames & BC , 
-                                             BHadronCNames & antiBC ) {
-    BC[ Bd ] = "B0" ;
-    BC[ Bu ] = "B+" ;
-    BC[ Bs ] = "Bs0" ;
-    BC[ Bc ] = "Bc+" ;
-    BC[ bBaryon ] = "b-Baryon" ;
-
-    antiBC[ Bd ] = "anti-B0" ;
-    antiBC[ Bu ] = "B-" ;
-    antiBC[ Bs ] = "anti-Bs0" ;
-    antiBC[ Bc ] = "Bc-" ;
-    antiBC[ bBaryon ] = "anti-b-Baryon" ;
+void GenCounters::setupBHadronCountersNames( BHadronCNames& BC, BHadronCNames& antiBC ) {
+  BC[Bd]      = "B0";
+  BC[Bu]      = "B+";
+  BC[Bs]      = "Bs0";
+  BC[Bc]      = "Bc+";
+  BC[bBaryon] = "b-Baryon";
+
+  antiBC[Bd]      = "anti-B0";
+  antiBC[Bu]      = "B-";
+  antiBC[Bs]      = "anti-Bs0";
+  antiBC[Bc]      = "Bc-";
+  antiBC[bBaryon] = "anti-b-Baryon";
 }
 
 //=============================================================================
 // Setup names of D hadron counters
 //=============================================================================
-void GenCounters::setupDHadronCountersNames( DHadronCNames & DC , 
-                                             DHadronCNames & antiDC ) {
-    DC[ D0 ] = "D0" ;
-    DC[ Dch ] = "D+" ;
-    DC[ Ds ] = "Ds+" ;
-    DC[ cBaryon ] = "c-Baryon" ;
-
-    antiDC[ D0 ] = "anti-D0" ;
-    antiDC[ Dch ] = "D-" ;
-    antiDC[ Ds ] = "Ds-" ;
-    antiDC[ cBaryon ] = "anti-c-Baryon" ;
+void GenCounters::setupDHadronCountersNames( DHadronCNames& DC, DHadronCNames& antiDC ) {
+  DC[D0]      = "D0";
+  DC[Dch]     = "D+";
+  DC[Ds]      = "Ds+";
+  DC[cBaryon] = "c-Baryon";
+
+  antiDC[D0]      = "anti-D0";
+  antiDC[Dch]     = "D-";
+  antiDC[Ds]      = "Ds-";
+  antiDC[cBaryon] = "anti-c-Baryon";
 }
 
 //=============================================================================
 // Setup names of B excited states
 //=============================================================================
-void GenCounters::setupExcitedCountersNames( ExcitedCNames & B , 
-                                             const std::string & root ) {
-  B[ _0star ] = root + "(L=0,J=0)";
-    B[ _1star ] = root + "* (L=0, J=1)" ;
-    B[ _2star ] = root + "** (L=1, J=0,1,2)" ;
+void GenCounters::setupExcitedCountersNames( ExcitedCNames& B, const std::string& root ) {
+  B[_0star] = root + "(L=0,J=0)";
+  B[_1star] = root + "* (L=0, J=1)";
+  B[_2star] = root + "** (L=1, J=0,1,2)";
 }
 
 //=============================================================================
 // Count excited states counters
 //=============================================================================
-void GenCounters::updateExcitedStatesCounters
-( const HepMC3::GenEvent* theEvent , ExcitedCounter & thebExcitedC ,
-  ExcitedCounter & thecExcitedC ) {
+void GenCounters::updateExcitedStatesCounters( const HepMC3::GenEvent* theEvent, ExcitedCounter& thebExcitedC,
+                                               ExcitedCounter& thecExcitedC ) {
 
   // Signal Vertex
   // In HepMC3 now stored as an event attribute. If it does not exist, the default
   // constructor is used to construct the attribute. This will yield a GenVertexPtr
   // pointing to nullptr.
-  auto signal_process_vertex =
-      theEvent->attribute<HepMC3::VertexAttribute>( Gaussino::HepMC::Attributes::SignalProcessVertex )->value();
+  auto signal_process_vertex_attribute =
+      theEvent->attribute<HepMC3::VertexAttribute>( Gaussino::HepMC::Attributes::SignalProcessVertex );
+  HepMC3::ConstGenVertexPtr signal_process_vertex{nullptr};
+  if ( signal_process_vertex_attribute ) { signal_process_vertex = signal_process_vertex_attribute->value(); }
 
   // Count B :
-  std::vector< HepMC3::ConstGenParticlePtr > rootB ;
-  HepMC3::copy_if( std::begin(theEvent->particles()) , std::end(theEvent->particles()) ,
-                  std::back_inserter( rootB ) , isRootB() ) ;
+  std::vector<HepMC3::ConstGenParticlePtr> rootB;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( rootB ),
+                   isRootB() );
 
-  std::vector< HepMC3::ConstGenParticlePtr >::const_iterator iter ;
+  std::vector<HepMC3::ConstGenParticlePtr>::const_iterator iter;
 
-  for ( iter = rootB.begin() ; iter != rootB.end() ; ++iter ) {
+  for ( iter = rootB.begin(); iter != rootB.end(); ++iter ) {
     if ( signal_process_vertex ) {
-      if ( ! HepMCUtils::commonTrees( signal_process_vertex,
-                                      (*iter) -> end_vertex() ) ) 
-        continue ;
+      if ( !HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
     }
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() ) ;
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
 
     if ( thePid.isMeson() ) {
       if ( 0 == thePid.lSpin() ) {
-        if ( 1 == thePid.jSpin() ) ++thebExcitedC[ _0star ] ;
-        else ++thebExcitedC[ _1star ] ;
-      } else ++thebExcitedC[ _2star ] ;
+        if ( 1 == thePid.jSpin() )
+          ++thebExcitedC[_0star];
+        else
+          ++thebExcitedC[_1star];
+      } else
+        ++thebExcitedC[_2star];
     }
   }
 
   // Count D :
-  std::vector< HepMC3::ConstGenParticlePtr > rootD ;
-  HepMC3::copy_if( std::begin(theEvent->particles()) , std::end(theEvent->particles()),
-                  std::back_inserter( rootD ) , isRootD() ) ;
-
-  for ( iter = rootD.begin() ; iter != rootD.end() ; ++iter ) {
-    if ( signal_process_vertex) {
-      if ( ! HepMCUtils::commonTrees( signal_process_vertex, 
-                                      (*iter) -> end_vertex() ) ) 
-        continue ;
+  std::vector<HepMC3::ConstGenParticlePtr> rootD;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( rootD ),
+                   isRootD() );
+
+  for ( iter = rootD.begin(); iter != rootD.end(); ++iter ) {
+    if ( signal_process_vertex ) {
+      if ( !HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
     }
-    
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() ) ;
+
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
     if ( thePid.isMeson() ) {
       if ( 0 == thePid.lSpin() ) {
-        if ( 1 == thePid.jSpin() ) ++thecExcitedC[ _0star ] ;
-        else ++thecExcitedC[ _1star ] ;
-        } else ++thecExcitedC[ _2star ] ;
+        if ( 1 == thePid.jSpin() )
+          ++thecExcitedC[_0star];
+        else
+          ++thecExcitedC[_1star];
+      } else
+        ++thecExcitedC[_2star];
     }
-  }       
+  }
 }
 
 //=============================================================================
 // Update the counters of number of different hadrons in selected events
 //=============================================================================
-void GenCounters::updateHadronCounters( const HepMC3::GenEvent* theEvent ,
-                                        BHadronCounter & thebHadC , 
-                                        BHadronCounter & theantibHadC ,
-                                        DHadronCounter & thecHadC ,
-                                        DHadronCounter & theanticHadC ,
-                                        std::atomic_uint & thebbCounter ,
-                                        std::atomic_uint & theccCounter ) {
+void GenCounters::updateHadronCounters( const HepMC3::GenEvent* theEvent, BHadronCounter& thebHadC,
+                                        BHadronCounter& theantibHadC, DHadronCounter& thecHadC,
+                                        DHadronCounter& theanticHadC, std::atomic_uint& thebbCounter,
+                                        std::atomic_uint& theccCounter ) {
   // Signal vertex
   // In HepMC3 now stored as an event attribute. If it does not exist, the default
   // constructor is used to construct the attribute. This will yield a GenVertexPtr
   // pointing to nullptr.
-  auto signal_process_vertex =
-      theEvent->attribute<HepMC3::VertexAttribute>( Gaussino::HepMC::Attributes::SignalProcessVertex )->value();
+  auto signal_process_vertex_attribute =
+      theEvent->attribute<HepMC3::VertexAttribute>( Gaussino::HepMC::Attributes::SignalProcessVertex );
+  HepMC3::ConstGenVertexPtr signal_process_vertex{nullptr};
+  if ( signal_process_vertex_attribute ) { signal_process_vertex = signal_process_vertex_attribute->value(); }
 
   // Count B:
-  std::vector< HepMC3::ConstGenParticlePtr > endB ;
-  HepMC3::copy_if( std::begin(theEvent->particles()) , std::end(theEvent->particles()),
-                  std::back_inserter( endB ) , isEndB() ) ;
-  std::vector< HepMC3::ConstGenParticlePtr >::const_iterator iter ;
-  
-  for ( iter = endB.begin() ; iter != endB.end() ; ++iter ) {
+  std::vector<HepMC3::ConstGenParticlePtr> endB;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( endB ),
+                   isEndB() );
+  std::vector<HepMC3::ConstGenParticlePtr>::const_iterator iter;
+
+  for ( iter = endB.begin(); iter != endB.end(); ++iter ) {
     if ( signal_process_vertex ) {
-      if ( HepMCUtils::commonTrees( signal_process_vertex, 
-                                    (*iter) -> end_vertex() ) )
-        continue ;
+      if ( HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
     }
-    
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() ) ;
-    
+
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
+
     if ( thePid.isMeson() ) {
       if ( thePid.pid() > 0 ) {
-        if ( thePid.hasUp() ) ++thebHadC[ Bu ] ;
-        else if ( thePid.hasDown() ) ++thebHadC[ Bd ] ;
-        else if ( thePid.hasStrange() ) ++thebHadC[ Bs ] ;
-        else if ( thePid.hasCharm() ) ++thebHadC[ Bc ] ;
-        else ++thebbCounter ;
+        if ( thePid.hasUp() )
+          ++thebHadC[Bu];
+        else if ( thePid.hasDown() )
+          ++thebHadC[Bd];
+        else if ( thePid.hasStrange() )
+          ++thebHadC[Bs];
+        else if ( thePid.hasCharm() )
+          ++thebHadC[Bc];
+        else
+          ++thebbCounter;
       } else {
-        if ( thePid.hasUp() ) ++theantibHadC[ Bu ] ;
-        else if ( thePid.hasDown() ) ++theantibHadC[ Bd ] ;
-        else if ( thePid.hasStrange() ) ++theantibHadC[ Bs ] ;
-        else if ( thePid.hasCharm() ) ++theantibHadC[ Bc ] ;
-        else ++thebbCounter ;
+        if ( thePid.hasUp() )
+          ++theantibHadC[Bu];
+        else if ( thePid.hasDown() )
+          ++theantibHadC[Bd];
+        else if ( thePid.hasStrange() )
+          ++theantibHadC[Bs];
+        else if ( thePid.hasCharm() )
+          ++theantibHadC[Bc];
+        else
+          ++thebbCounter;
       }
     } else if ( thePid.isBaryon() ) {
-      if ( thePid.pid() < 0 ) ++thebHadC[ bBaryon ] ;
-      else ++theantibHadC[ bBaryon ] ;
+      if ( thePid.pid() < 0 )
+        ++thebHadC[bBaryon];
+      else
+        ++theantibHadC[bBaryon];
     }
   }
-  
-  std::vector< HepMC3::ConstGenParticlePtr > endD ;
-  HepMC3::copy_if( std::begin(theEvent->particles()) , std::end(theEvent->particles()),
-                  std::back_inserter( endD ) , isEndD() ) ;
-  
-  for ( iter = endD.begin() ; iter != endD.end() ; ++iter ) {
+
+  std::vector<HepMC3::ConstGenParticlePtr> endD;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( endD ),
+                   isEndD() );
+
+  for ( iter = endD.begin(); iter != endD.end(); ++iter ) {
     if ( signal_process_vertex ) {
-      if ( HepMCUtils::commonTrees( signal_process_vertex,
-                                    (*iter) -> end_vertex() ) ) 
-        continue ;
+      if ( HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
     }
-    
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() ) ;
-    
+
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
+
     if ( thePid.isMeson() ) {
       if ( thePid.pid() > 0 ) {
-        if ( thePid.hasUp() ) ++thecHadC[ D0 ] ;
-        else if ( thePid.hasDown() ) ++thecHadC[ Dch ] ;
-        else if ( thePid.hasStrange() ) ++thecHadC[ Ds ] ;
-        else ++theccCounter ;
+        if ( thePid.hasUp() )
+          ++thecHadC[D0];
+        else if ( thePid.hasDown() )
+          ++thecHadC[Dch];
+        else if ( thePid.hasStrange() )
+          ++thecHadC[Ds];
+        else
+          ++theccCounter;
       } else {
-        if ( thePid.hasUp() ) ++theanticHadC[ D0 ] ;
-        else if ( thePid.hasDown() ) ++theanticHadC[ Dch ] ;
-        else if ( thePid.hasStrange() ) ++theanticHadC[ Ds ] ;
-        else ++theccCounter ;
+        if ( thePid.hasUp() )
+          ++theanticHadC[D0];
+        else if ( thePid.hasDown() )
+          ++theanticHadC[Dch];
+        else if ( thePid.hasStrange() )
+          ++theanticHadC[Ds];
+        else
+          ++theccCounter;
       }
     } else if ( thePid.isBaryon() ) {
-      if ( thePid.pid() > 0 ) ++thecHadC[ cBaryon ] ;
-      else ++theanticHadC[ cBaryon ] ;
+      if ( thePid.pid() > 0 )
+        ++thecHadC[cBaryon];
+      else
+        ++theanticHadC[cBaryon];
     }
-  } 
+  }
 }
 
-
-//=============================================================================                    
-// Update the genFRS in selected events                                                            
-//=============================================================================                    
-void GenCounters::updateHadronFSR( const HepMC3::GenEvent* theEvent ,
-                                   LHCb::GenFSR* genFSR,
-                                   const std::string option)
-{  
-  if(!genFSR) return;
-  // Signal Vertex                                                                        
+//=============================================================================
+// Update the genFRS in selected events
+//=============================================================================
+void GenCounters::updateHadronFSR( const HepMC3::GenEvent* theEvent, LHCb::GenFSR* genFSR, const std::string option ) {
+  if ( !genFSR ) return;
+  // Signal Vertex
   // In HepMC3 now stored as an event attribute. If it does not exist, the default
   // constructor is used to construct the attribute. This will yield a GenVertexPtr
   // pointing to nullptr.
-  auto signal_process_vertex =
-      theEvent->attribute<HepMC3::VertexAttribute>( Gaussino::HepMC::Attributes::SignalProcessVertex )->value();
-  
-  // Count B :                                                                                    
-  std::vector< HepMC3::ConstGenParticlePtr > rootB ;
-  HepMC3::copy_if( std::begin(theEvent->particles()) , std::end(theEvent->particles()) ,
-                  std::back_inserter( rootB ) , isRootB() ) ;
-
-  std::vector< HepMC3::ConstGenParticlePtr >::const_iterator iter ;
-
-  for ( iter = rootB.begin() ; iter != rootB.end() ; ++iter )
-  {
-    if ( signal_process_vertex )
-    {  
-      if ( ! HepMCUtils::commonTrees( signal_process_vertex ,
-                                      (*iter) -> end_vertex() ) )
-        continue ; 
-    }    
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() ) ;
-
-    if (thePid.isMeson())
-    {
-      if (0 == thePid.lSpin())
-      {
-        if (1 == thePid.jSpin())
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("B"+option), 1);
+  auto signal_process_vertex_attribute =
+      theEvent->attribute<HepMC3::VertexAttribute>( Gaussino::HepMC::Attributes::SignalProcessVertex );
+  HepMC3::ConstGenVertexPtr signal_process_vertex{nullptr};
+  if ( signal_process_vertex_attribute ) { signal_process_vertex = signal_process_vertex_attribute->value(); }
+
+  // Count B :
+  std::vector<HepMC3::ConstGenParticlePtr> rootB;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( rootB ),
+                   isRootB() );
+
+  std::vector<HepMC3::ConstGenParticlePtr>::const_iterator iter;
+
+  for ( iter = rootB.begin(); iter != rootB.end(); ++iter ) {
+    if ( signal_process_vertex ) {
+      if ( !HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
+    }
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
+
+    if ( thePid.isMeson() ) {
+      if ( 0 == thePid.lSpin() ) {
+        if ( 1 == thePid.jSpin() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "B" + option ), 1 );
+        } else {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Bstar" + option ), 1 );
         }
-        else
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Bstar"+option), 1); 
-        } 
+      } else {
+        genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "B2star" + option ), 1 );
       }
-      else
-      {
-        genFSR->incrementGenCounter(
-            LHCb::GenCountersFSR::CounterKeyToType("B2star"+option), 1);
-      } 
-    } 
+    }
   }
 
-  // Count D :                                                                                     
-  std::vector< HepMC3::ConstGenParticlePtr > rootD ;  
-  HepMC3::copy_if( std::begin(theEvent->particles()) , std::end(theEvent->particles()),
-                  std::back_inserter( rootD ) , isRootD() ) ;
-
-  for ( iter = rootD.begin() ; iter != rootD.end() ; ++iter )
-  {
-    if ( signal_process_vertex)
-    {
-      if ( ! HepMCUtils::commonTrees( signal_process_vertex ,
-                                      (*iter) -> end_vertex() ) )
-        continue ; 
+  // Count D :
+  std::vector<HepMC3::ConstGenParticlePtr> rootD;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( rootD ),
+                   isRootD() );
+
+  for ( iter = rootD.begin(); iter != rootD.end(); ++iter ) {
+    if ( signal_process_vertex ) {
+      if ( !HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
     }
 
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() );
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
 
-    if (thePid.isMeson())
-    {
-      if (0 == thePid.lSpin())
-      {
-        if (1 == thePid.jSpin())
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("D"+option), 1); 
+    if ( thePid.isMeson() ) {
+      if ( 0 == thePid.lSpin() ) {
+        if ( 1 == thePid.jSpin() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "D" + option ), 1 );
+        } else {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Dstar" + option ), 1 );
         }
-        else
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Dstar"+option), 1); 
-        } 
+      } else {
+        genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "D2star" + option ), 1 );
       }
-      else
-      {
-        genFSR->incrementGenCounter(
-            LHCb::GenCountersFSR::CounterKeyToType("D2star"+option), 1); 
-      } 
-    } 
+    }
   }
 
-  // Count B:                                                                                     
-  std::vector< HepMC3::ConstGenParticlePtr > endB ;
-  HepMC3::copy_if( std::begin(theEvent->particles()) , std::end(theEvent->particles()) ,
-                  std::back_inserter( endB ) , isEndB() ) ;
-
-  for ( iter = endB.begin() ; iter != endB.end() ; ++iter )
-  {
-    if ( signal_process_vertex )
-    {
-      if ( HepMCUtils::commonTrees( signal_process_vertex ,
-                                    (*iter) -> end_vertex() ) )
-        continue ;      
+  // Count B:
+  std::vector<HepMC3::ConstGenParticlePtr> endB;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( endB ),
+                   isEndB() );
+
+  for ( iter = endB.begin(); iter != endB.end(); ++iter ) {
+    if ( signal_process_vertex ) {
+      if ( HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
     }
 
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() ) ;
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
 
-    if ( thePid.isMeson() )                                                                                                               
-    {                                                                                                                                  
-      if ( thePid.pid() > 0 )
-      {                                                                                                                              
-        if ( thePid.hasUp() )                                                                                                         
-        {                                                              
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Bplus"+option), 1);
-        }                                                                                                                          
-        else if ( thePid.hasDown() )                                                                                                  
-        {                                                                 
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("B0"+option), 1);
-        }                                                                                                                          
-        else if ( thePid.hasStrange() )                                                                                               
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Bs0"+option), 1);
+    if ( thePid.isMeson() ) {
+      if ( thePid.pid() > 0 ) {
+        if ( thePid.hasUp() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Bplus" + option ), 1 );
+        } else if ( thePid.hasDown() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "B0" + option ), 1 );
+        } else if ( thePid.hasStrange() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Bs0" + option ), 1 );
+        } else if ( thePid.hasCharm() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Bcplus" + option ), 1 );
+        } else {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "bb" + option ), 1 );
         }
-        else if ( thePid.hasCharm() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Bcplus"+option), 1); 
+      } else {
+        if ( thePid.hasUp() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Bminus" + option ), 1 );
+        } else if ( thePid.hasDown() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "antiB0" + option ), 1 );
+        } else if ( thePid.hasStrange() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "antiBs0" + option ), 1 );
+        } else if ( thePid.hasCharm() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Bcminus" + option ), 1 );
+        } else {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "bb" + option ), 1 );
         }
-        else
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("bb"+option), 1); 
-        } 
       }
-      else
-      {
-        if ( thePid.hasUp() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Bminus"+option), 1);
-        }
-        else if ( thePid.hasDown() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("antiB0"+option), 1); 
-        }
-        else if ( thePid.hasStrange() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("antiBs0"+option), 1); 
-        }
-        else if ( thePid.hasCharm() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Bcminus"+option), 1);
-        }
-        else
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("bb"+option), 1); 
-        } 
-      } 
-    }
-    else if ( thePid.isBaryon() )
-    {
-      if ( thePid.pid() < 0 )
-      {
-        genFSR->incrementGenCounter(
-            LHCb::GenCountersFSR::CounterKeyToType("bBaryon"+option), 1); 
+    } else if ( thePid.isBaryon() ) {
+      if ( thePid.pid() < 0 ) {
+        genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "bBaryon" + option ), 1 );
+      } else {
+        genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "antibBaryon" + option ), 1 );
       }
-      else
-      {
-        genFSR->incrementGenCounter(
-            LHCb::GenCountersFSR::CounterKeyToType("antibBaryon"+option), 1); 
-      } 
-    } 
+    }
   }
 
-  // Count D:                                                                                   
-  std::vector< HepMC3::ConstGenParticlePtr > endD ;
-  HepMC3::copy_if( std::begin(theEvent->particles()), std::end(theEvent->particles()) ,
-                  std::back_inserter( endD ) , isEndD() ) ;
-
-  for ( iter = endD.begin() ; iter != endD.end() ; ++iter )
-  {
-    if ( signal_process_vertex )
-    {
-      if ( HepMCUtils::commonTrees( signal_process_vertex ,
-                                    (*iter) -> end_vertex() ) )
-        continue ;      
+  // Count D:
+  std::vector<HepMC3::ConstGenParticlePtr> endD;
+  HepMC3::copy_if( std::begin( theEvent->particles() ), std::end( theEvent->particles() ), std::back_inserter( endD ),
+                   isEndD() );
+
+  for ( iter = endD.begin(); iter != endD.end(); ++iter ) {
+    if ( signal_process_vertex ) {
+      if ( HepMCUtils::commonTrees( signal_process_vertex, ( *iter )->end_vertex() ) ) continue;
     }
 
-    LHCb::ParticleID thePid( (*iter) -> pdg_id() ) ;
+    LHCb::ParticleID thePid( ( *iter )->pdg_id() );
 
-    if ( thePid.isMeson() )
-    {
-      if ( thePid.pid() > 0 )
-      {
-        if ( thePid.hasUp() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("D0"+option), 1); 
-        }
-        else if ( thePid.hasDown() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Dplus"+option), 1); 
+    if ( thePid.isMeson() ) {
+      if ( thePid.pid() > 0 ) {
+        if ( thePid.hasUp() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "D0" + option ), 1 );
+        } else if ( thePid.hasDown() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Dplus" + option ), 1 );
+        } else if ( thePid.hasStrange() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Dsplus" + option ), 1 );
+        } else {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "cc" + option ), 1 );
         }
-        else if ( thePid.hasStrange() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Dsplus"+option), 1);
+      } else {
+        if ( thePid.hasUp() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "antiD0" + option ), 1 );
+        } else if ( thePid.hasDown() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Dminus" + option ), 1 );
+        } else if ( thePid.hasStrange() ) {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "Dsminus" + option ), 1 );
+        } else {
+          genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "cc" + option ), 1 );
         }
-        else
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("cc"+option), 1); 
-        } 
       }
-      else
-      {
-        if ( thePid.hasUp() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("antiD0"+option), 1); 
-        }
-        else if ( thePid.hasDown() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Dminus"+option), 1); 
-        }
-        else if ( thePid.hasStrange() )
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("Dsminus"+option), 1); 
-        }
-        else
-        {
-          genFSR->incrementGenCounter(
-              LHCb::GenCountersFSR::CounterKeyToType("cc"+option), 1); 
-        } 
-      } 
-    }
-    else if ( thePid.isBaryon() )
-    {
-      if ( thePid.pid() > 0 )
-      {
-        genFSR->incrementGenCounter(
-            LHCb::GenCountersFSR::CounterKeyToType("cBaryon"+option), 1); 
+    } else if ( thePid.isBaryon() ) {
+      if ( thePid.pid() > 0 ) {
+        genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "cBaryon" + option ), 1 );
+      } else {
+        genFSR->incrementGenCounter( LHCb::GenCountersFSR::CounterKeyToType( "anticBaryon" + option ), 1 );
       }
-      else
-      {
-        genFSR->incrementGenCounter(
-            LHCb::GenCountersFSR::CounterKeyToType("anticBaryon"+option), 1); 
-      } 
-    } 
-  } 
+    }
+  }
 }
diff --git a/Gen/LbPGuns/CMakeLists.txt b/Gen/LbPGuns/CMakeLists.txt
index 9aa292f300dea0f8c6d17874e3c89929e8912a66..fc2399843ce5ce0df90b673c5aceddefc029bb68 100644
--- a/Gen/LbPGuns/CMakeLists.txt
+++ b/Gen/LbPGuns/CMakeLists.txt
@@ -8,29 +8,28 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: LbPGuns
-################################################################################
-gaudi_subdir(LbPGuns v6r1)
-
-gaudi_depends_on_subdirs(
-                         #FIXME: Det/DetDesc
-                         Event/GenEvent
-                         GaudiAlg
-                         Kernel/LHCbKernel
-                         Gen/GenInterfaces
-                         Gen/Generators
-                         HepMC3
-                         )
-
-AddHepMC3()
+#[=======================================================================[.rst:
+Gen/LbPGuns
+-----------
+#]=======================================================================]
+gaudi_add_header_only_library(LbPGunsLib)
 
 gaudi_add_module(LbPGuns
-                 src/*.cpp
-                 INCLUDE_DIRS Gen/GenInterfaces ${HEPMC3_INCLUDE_DIR}
-                 LINK_LIBRARIES GenEvent GaudiAlgLib LHCbKernel GeneratorsLib ${HEPMC3_LIBRARIES})
-
-add_dependencies(LbPGuns HepMC3Ext)
-
-gaudi_install_headers(LbPGuns)
-
+    SOURCES
+    	src/Components/BeamShape.cpp
+	src/Components/Cosmics.cpp
+	src/Components/FixedMomentum.cpp
+	src/Components/FlatNParticles.cpp
+	src/Components/FlatPtRapidity.cpp
+	src/Components/GaussianTheta.cpp
+	src/Components/GenericGun.cpp
+	src/Components/MaterialEval.cpp
+	src/Components/MomentumRange.cpp
+	src/Components/MomentumSpectrum.cpp
+	src/Components/ParticleGun.cpp
+    LINK
+	Gaussino::GeneratorsLib
+	Gaussino::Defaults
+	Gaussino::HepMCUserLib
+	Gaussino::LbPGunsLib
+)
diff --git a/Gen/LbPGuns/LbPGuns/IParticleGunTool.h b/Gen/LbPGuns/include/LbPGuns/IParticleGunTool.h
similarity index 100%
rename from Gen/LbPGuns/LbPGuns/IParticleGunTool.h
rename to Gen/LbPGuns/include/LbPGuns/IParticleGunTool.h
diff --git a/Gen/LbPGuns/src/BeamShape.cpp b/Gen/LbPGuns/src/Components/BeamShape.cpp
similarity index 100%
rename from Gen/LbPGuns/src/BeamShape.cpp
rename to Gen/LbPGuns/src/Components/BeamShape.cpp
diff --git a/Gen/LbPGuns/src/BeamShape.h b/Gen/LbPGuns/src/Components/BeamShape.h
similarity index 95%
rename from Gen/LbPGuns/src/BeamShape.h
rename to Gen/LbPGuns/src/Components/BeamShape.h
index 3abc6b1d1e7c81ba4e8cb39dc5200cec0bb6b457..3a64ca8cf1b2450d73bf605b2632039795df9cf7 100755
--- a/Gen/LbPGuns/src/BeamShape.h
+++ b/Gen/LbPGuns/src/Components/BeamShape.h
@@ -33,15 +33,15 @@ class BeamShape : public GaudiTool , virtual public IParticleGunTool {
   virtual ~BeamShape() ; ///< Destructor
   
   /// Initialize method
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
   
   /// Generate the particle
   virtual void generateParticle( Gaudi::LorentzVector & fourMomentum , 
                                  Gaudi::LorentzVector & origin , 
-                                 int & pdgId , HepRandomEnginePtr& engine ) ;
+                                 int & pdgId , HepRandomEnginePtr& engine ) override;
                                  
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
   
  private:
   // Setable Properties
diff --git a/Gen/LbPGuns/src/Cosmics.cpp b/Gen/LbPGuns/src/Components/Cosmics.cpp
similarity index 100%
rename from Gen/LbPGuns/src/Cosmics.cpp
rename to Gen/LbPGuns/src/Components/Cosmics.cpp
diff --git a/Gen/LbPGuns/src/Cosmics.h b/Gen/LbPGuns/src/Components/Cosmics.h
similarity index 95%
rename from Gen/LbPGuns/src/Cosmics.h
rename to Gen/LbPGuns/src/Components/Cosmics.h
index feb32a3b33cd7a30dc0d60ddce3bd957e176db46..f71a5cabe92339a8c1cc4ad3a3461cec04e11726 100755
--- a/Gen/LbPGuns/src/Cosmics.h
+++ b/Gen/LbPGuns/src/Components/Cosmics.h
@@ -38,16 +38,16 @@ class Cosmics : public GaudiTool , virtual public IParticleGunTool {
   virtual ~Cosmics();
   
   /// Initialize particle gun parameters
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
 
   /// Generation of particles
   virtual void generateParticle( Gaudi::LorentzVector & fourMomentum , 
                                  Gaudi::LorentzVector & origin , int & pdgId ,
-                                 HepRandomEnginePtr & engine ) ;
+                                 HepRandomEnginePtr & engine ) override;
 
 
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
     
  private:
 
diff --git a/Gen/LbPGuns/src/FixedMomentum.cpp b/Gen/LbPGuns/src/Components/FixedMomentum.cpp
similarity index 100%
rename from Gen/LbPGuns/src/FixedMomentum.cpp
rename to Gen/LbPGuns/src/Components/FixedMomentum.cpp
diff --git a/Gen/LbPGuns/src/FixedMomentum.h b/Gen/LbPGuns/src/Components/FixedMomentum.h
similarity index 95%
rename from Gen/LbPGuns/src/FixedMomentum.h
rename to Gen/LbPGuns/src/Components/FixedMomentum.h
index 7dd841b057a1f9cbae607d9e7cc6973363772902..38a8e1bbbd853ca7f9864bfcccb46833922fbf1a 100755
--- a/Gen/LbPGuns/src/FixedMomentum.h
+++ b/Gen/LbPGuns/src/Components/FixedMomentum.h
@@ -37,15 +37,15 @@ class FixedMomentum : public GaudiTool , virtual public IParticleGunTool {
   virtual ~FixedMomentum();
   
   /// Initialize particle gun parameters
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
 
   /// Generation of particles
   virtual void generateParticle( Gaudi::LorentzVector & momentum , 
                                  Gaudi::LorentzVector & origin , 
-                                 int & pdgId , HepRandomEnginePtr& engine ) ;
+                                 int & pdgId , HepRandomEnginePtr& engine ) override;
 
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
                                  
  private:
   double m_px; ///< px (Set by options)
diff --git a/Gen/LbPGuns/src/FlatNParticles.cpp b/Gen/LbPGuns/src/Components/FlatNParticles.cpp
similarity index 100%
rename from Gen/LbPGuns/src/FlatNParticles.cpp
rename to Gen/LbPGuns/src/Components/FlatNParticles.cpp
diff --git a/Gen/LbPGuns/src/FlatNParticles.h b/Gen/LbPGuns/src/Components/FlatNParticles.h
similarity index 95%
rename from Gen/LbPGuns/src/FlatNParticles.h
rename to Gen/LbPGuns/src/Components/FlatNParticles.h
index e6b87ae0f56f7891e7328c992c729c771b9f5888..2f5631c4b524cbb469390e8823a0a1a8738622bb 100755
--- a/Gen/LbPGuns/src/FlatNParticles.h
+++ b/Gen/LbPGuns/src/Components/FlatNParticles.h
@@ -39,16 +39,16 @@ public:
   virtual ~FlatNParticles( ); ///< Destructor
 
   /// Initialize method
-  virtual StatusCode initialize( ) ;
+  virtual StatusCode initialize( ) override;
   
   /** Implements IPileUpTool::numberOfPileUp
    *  Returns the number of particles in one event. It follows
    *  a flat distribution 
    */
-  virtual unsigned int numberOfPileUp( HepRandomEnginePtr& engine ) ;
+  virtual unsigned int numberOfPileUp( HepRandomEnginePtr& engine ) override;
 
   /// Implements IPileUpTool::printPileUpCounters
-  virtual void printPileUpCounters( ) { ; } ; 
+  virtual void printPileUpCounters( ) override {}; 
   
 protected:
 
diff --git a/Gen/LbPGuns/src/FlatPtRapidity.cpp b/Gen/LbPGuns/src/Components/FlatPtRapidity.cpp
similarity index 100%
rename from Gen/LbPGuns/src/FlatPtRapidity.cpp
rename to Gen/LbPGuns/src/Components/FlatPtRapidity.cpp
diff --git a/Gen/LbPGuns/src/FlatPtRapidity.h b/Gen/LbPGuns/src/Components/FlatPtRapidity.h
similarity index 95%
rename from Gen/LbPGuns/src/FlatPtRapidity.h
rename to Gen/LbPGuns/src/Components/FlatPtRapidity.h
index de7263c885126fbb35f5167be0ac43128e0f610a..8630f4c4ac4b7e7aa0bfc9021fcd8326746a9b84 100755
--- a/Gen/LbPGuns/src/FlatPtRapidity.h
+++ b/Gen/LbPGuns/src/Components/FlatPtRapidity.h
@@ -37,15 +37,15 @@ class FlatPtRapidity : public GaudiTool , virtual public IParticleGunTool {
   virtual ~FlatPtRapidity();
   
   /// Initialize particle gun parameters
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
 
   /// Generation of particles
   virtual void generateParticle( Gaudi::LorentzVector & momentum , 
                                  Gaudi::LorentzVector & origin , 
-                                 int & pdgId , HepRandomEnginePtr& engine ) ;
+                                 int & pdgId , HepRandomEnginePtr& engine ) override;
 
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
                                  
  private:  
   double m_minPt;       ///< Minimum pT (Set by options)  
diff --git a/Gen/LbPGuns/src/GaussianTheta.cpp b/Gen/LbPGuns/src/Components/GaussianTheta.cpp
similarity index 100%
rename from Gen/LbPGuns/src/GaussianTheta.cpp
rename to Gen/LbPGuns/src/Components/GaussianTheta.cpp
diff --git a/Gen/LbPGuns/src/GaussianTheta.h b/Gen/LbPGuns/src/Components/GaussianTheta.h
similarity index 95%
rename from Gen/LbPGuns/src/GaussianTheta.h
rename to Gen/LbPGuns/src/Components/GaussianTheta.h
index 7b8e78e5f568a5997defb5c9e22f1f92821cfc42..653b7579c0fd946a5618c8d044a7f4b37116b8a4 100755
--- a/Gen/LbPGuns/src/GaussianTheta.h
+++ b/Gen/LbPGuns/src/Components/GaussianTheta.h
@@ -37,15 +37,15 @@ class GaussianTheta : public GaudiTool , virtual public IParticleGunTool {
   virtual ~GaussianTheta() ; ///< Destructor
   
   /// Initialize method
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
   
   /// Generate the particle
   virtual void generateParticle( Gaudi::LorentzVector & fourMomentum , 
                                  Gaudi::LorentzVector & origin , 
-                                 int & pdgId , HepRandomEnginePtr & engine ) ;
+                                 int & pdgId , HepRandomEnginePtr & engine ) override;
                                  
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
   
  private:
   double m_mass ;
diff --git a/Gen/LbPGuns/src/GenericGun.cpp b/Gen/LbPGuns/src/Components/GenericGun.cpp
similarity index 100%
rename from Gen/LbPGuns/src/GenericGun.cpp
rename to Gen/LbPGuns/src/Components/GenericGun.cpp
diff --git a/Gen/LbPGuns/src/GenericGun.h b/Gen/LbPGuns/src/Components/GenericGun.h
similarity index 96%
rename from Gen/LbPGuns/src/GenericGun.h
rename to Gen/LbPGuns/src/Components/GenericGun.h
index 9b7b3764ef1effce9918c0f879caa0f3b3bd92f2..4933c339c53447bc29c595d52de1baffad5d048e 100755
--- a/Gen/LbPGuns/src/GenericGun.h
+++ b/Gen/LbPGuns/src/Components/GenericGun.h
@@ -49,15 +49,15 @@ class GenericGun : public GaudiTool , virtual public IParticleGunTool {
   virtual ~GenericGun() ; ///< Destructor
   
   /// Initialize method
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
   
   /// Generate the particle
   virtual void generateParticle( Gaudi::LorentzVector & fourMomentum , 
                                  Gaudi::LorentzVector & origin , 
-                                 int & pdgId , HepRandomEnginePtr & engine ) ;
+                                 int & pdgId , HepRandomEnginePtr & engine ) override;
                                  
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
   
  private:
 	// Setable Properties:-
diff --git a/Gen/LbPGuns/src/MaterialEval.cpp b/Gen/LbPGuns/src/Components/MaterialEval.cpp
similarity index 100%
rename from Gen/LbPGuns/src/MaterialEval.cpp
rename to Gen/LbPGuns/src/Components/MaterialEval.cpp
diff --git a/Gen/LbPGuns/src/MaterialEval.h b/Gen/LbPGuns/src/Components/MaterialEval.h
similarity index 95%
rename from Gen/LbPGuns/src/MaterialEval.h
rename to Gen/LbPGuns/src/Components/MaterialEval.h
index fb69e05fae8a57effc482795f702912611f4f27f..0b349d733eb24ce147d3542b805e0e25ad08b852 100755
--- a/Gen/LbPGuns/src/MaterialEval.h
+++ b/Gen/LbPGuns/src/Components/MaterialEval.h
@@ -40,15 +40,15 @@ public:
   
   virtual ~MaterialEval();         ///< Destructor
 
-  virtual StatusCode initialize();    ///< Algorithm initialization
+  virtual StatusCode initialize() override;    ///< Algorithm initialization
  
   /// Specialized method called by base class in execute
   virtual void generateParticle( Gaudi::LorentzVector & fourMomentum , 
                                  Gaudi::LorentzVector & origin , int & pdgId ,
-                                 HepRandomEnginePtr & engine ) ;
+                                 HepRandomEnginePtr & engine ) override;
 
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
   
 protected:
   
diff --git a/Gen/LbPGuns/src/MomentumRange.cpp b/Gen/LbPGuns/src/Components/MomentumRange.cpp
similarity index 100%
rename from Gen/LbPGuns/src/MomentumRange.cpp
rename to Gen/LbPGuns/src/Components/MomentumRange.cpp
diff --git a/Gen/LbPGuns/src/MomentumRange.h b/Gen/LbPGuns/src/Components/MomentumRange.h
similarity index 95%
rename from Gen/LbPGuns/src/MomentumRange.h
rename to Gen/LbPGuns/src/Components/MomentumRange.h
index 362e07f171bc475da50fd8a5aacff8f33fcd5bf6..85e2838cb8121eb22afa608fb24ded006a312e7f 100755
--- a/Gen/LbPGuns/src/MomentumRange.h
+++ b/Gen/LbPGuns/src/Components/MomentumRange.h
@@ -37,15 +37,15 @@ class MomentumRange : public GaudiTool , virtual public IParticleGunTool {
   virtual ~MomentumRange();
   
   /// Initialize particle gun parameters
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
 
   /// Generation of particles
   virtual void generateParticle( Gaudi::LorentzVector & momentum , 
                                  Gaudi::LorentzVector & origin , 
-                                 int & pdgId , HepRandomEnginePtr & engine ) ;
+                                 int & pdgId , HepRandomEnginePtr & engine ) override;
 
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
                                  
  private:  
   double m_minMom;   ///< Minimum momentum (Set by options)  
diff --git a/Gen/LbPGuns/src/MomentumSpectrum.cpp b/Gen/LbPGuns/src/Components/MomentumSpectrum.cpp
similarity index 100%
rename from Gen/LbPGuns/src/MomentumSpectrum.cpp
rename to Gen/LbPGuns/src/Components/MomentumSpectrum.cpp
diff --git a/Gen/LbPGuns/src/MomentumSpectrum.h b/Gen/LbPGuns/src/Components/MomentumSpectrum.h
similarity index 96%
rename from Gen/LbPGuns/src/MomentumSpectrum.h
rename to Gen/LbPGuns/src/Components/MomentumSpectrum.h
index 612ce918218f4ae5aa5c66428b829fcbf642423d..e6ff8d388573eaca9615697802beb2420b2233e8 100644
--- a/Gen/LbPGuns/src/MomentumSpectrum.h
+++ b/Gen/LbPGuns/src/Components/MomentumSpectrum.h
@@ -50,15 +50,15 @@ class MomentumSpectrum : public GaudiTool , virtual public IParticleGunTool {
   virtual ~MomentumSpectrum();
 
   /// Initialize particle gun parameters
-  virtual StatusCode initialize();
+  virtual StatusCode initialize() override;
 
   /// Generation of particles
   virtual void generateParticle( Gaudi::LorentzVector & momentum , 
                                  Gaudi::LorentzVector & origin , 
-                                 int & pdgId , HepRandomEnginePtr & engine ) ;
+                                 int & pdgId , HepRandomEnginePtr & engine ) override;
 
   /// Print counters
-  virtual void printCounters( ) { ; } ;
+  virtual void printCounters( ) override {};
 
  private:
   /// Pdg Codes of particles to generate (Set by options)
diff --git a/Gen/LbPGuns/src/ParticleGun.cpp b/Gen/LbPGuns/src/Components/ParticleGun.cpp
similarity index 100%
rename from Gen/LbPGuns/src/ParticleGun.cpp
rename to Gen/LbPGuns/src/Components/ParticleGun.cpp
diff --git a/Gen/LbPGuns/src/ParticleGun.h b/Gen/LbPGuns/src/Components/ParticleGun.h
similarity index 100%
rename from Gen/LbPGuns/src/ParticleGun.h
rename to Gen/LbPGuns/src/Components/ParticleGun.h
diff --git a/Gen/LbPythia8/CMakeLists.txt b/Gen/LbPythia8/CMakeLists.txt
index a696e4a10ed5e5a0367eb694b5519355df25b674..04b3cf5a1a32ce991b409f3630db499643dc0eb3 100644
--- a/Gen/LbPythia8/CMakeLists.txt
+++ b/Gen/LbPythia8/CMakeLists.txt
@@ -8,52 +8,55 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: LbPythia8
-################################################################################
-gaudi_subdir(LbPythia8 v12r0)
-
-gaudi_depends_on_subdirs(Gen/GenInterfaces
-                         Event/GenEvent
-                         Kernel/PartProp
-                         GaudiAlg
-                         NewRnd
-                         HepMC3
-                         HepMCUser
-                         Utils
-                         Defaults)
-
-find_package(Pythia8 COMPONENTS pythia8 pythia8tohepmc)
-AddHepMC3()
-find_package(LHAPDF)
-find_package(Boost COMPONENTS filesystem system)
-find_package(ROOT)
-find_package(CLHEP)
-
-include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${HEPMC3_INCLUDE_DIRS} ${PYTHIA8_INCLUDE_DIRS})
-
+#[=======================================================================[.rst:
+Gen/LbPytha8
+------------
+#]=======================================================================]
 gaudi_add_library(LbPythia8Lib
-                  src/Lib/*.cpp
-                  NO_PUBLIC_HEADERS
-                  INCLUDE_DIRS Boost Pythia8 ROOT ${HEPMC3_INCLUDE_DIR} Gen/GenInterfaces Defaults HepMCUser Utils NewRnd
-                  LINK_LIBRARIES Boost GaudiAlgLib Pythia8 ${HEPMC3_LIBRARIES} ROOT PartPropLib LHAPDF GenEvent)
-
-add_dependencies(LbPythia8Lib HepMC3Ext)
+    SOURCES
+        src/Lib/BeamToolForPythia8.cpp
+    	src/Lib/LhcbHooks.cpp
+	src/Lib/Pythia8Production.cpp
+	src/Lib/Pythia8ProductionMT.cpp
+    LINK
+        PUBLIC
+	    Pythia8::Pythia8
+	    HepMC3::HepMC3
+	    Gaudi::GaudiAlgLib
+	    LHCb::GenEvent     # TODO: [LHCb DEPENDENCY]
+	    LHCb::PartPropLib  # TODO: [LHCb DEPENDENCY]
+	    Gaussino::GenInterfacesLib
+	    Gaussino::UtilsLib
+	    Gaussino::NewRndLib
+	    Gaussino::HepMCUserLib
+	    Gaussino::Defaults
+)
 
 gaudi_add_module(LbPythia8
-                 src/component/*.cpp
-                 LINK_LIBRARIES LbPythia8Lib)
+    SOURCES
+        src/Components/Pythia8ProductionFactory.cpp
+    LINK
+    	Gaussino::LbPythia8Lib
+)
 
-gaudi_env(SET PYTHIA8XML ${PYTHIA8_XML})
+# TODO: [NEW CMAKE] needed?
+#gaudi_env(SET PYTHIA8XML ${PYTHIA8_XML})
 
 gaudi_add_executable(Pythia8Reproducibility
-                     exec/minimal.cxx
-                     INCLUDE_DIRS Pythia8 ${HEPMC3_INCLUDE_DIR} CLHEP HepMCUtils
-                     LINK_LIBRARIES Pythia8 ${HEPMC3_LIBRARIES} CLHEP HepMCUtils)
-
-find_package(HepMC)
+    SOURCES
+        exec/minimal.cxx
+    LINK
+        Pythia8::Pythia8
+	HepMC3::HepMC3
+	Gaussino::HepMCUtilsLib
+)
 
 gaudi_add_executable(HepMCConverterTest
-                     exec/convtest.cxx
-                     INCLUDE_DIRS Pythia8 ${HEPMC3_INCLUDE_DIR} CLHEP HepMCUtils HepMC
-                     LINK_LIBRARIES Pythia8 ${HEPMC3_LIBRARIES} CLHEP HepMCUtils HepMC)
+    SOURCES
+        exec/convtest.cxx
+    LINK
+    	Pythia8::Pythia8
+	HepMC3::HepMC3
+	HepMC::HepMC
+	Gaussino::HepMCUtilsLib
+)
diff --git a/Gen/LbPythia8/src/exec/convtest.cxx b/Gen/LbPythia8/exec/convtest.cxx
similarity index 100%
rename from Gen/LbPythia8/src/exec/convtest.cxx
rename to Gen/LbPythia8/exec/convtest.cxx
diff --git a/Gen/LbPythia8/src/exec/minimal.cxx b/Gen/LbPythia8/exec/minimal.cxx
similarity index 99%
rename from Gen/LbPythia8/src/exec/minimal.cxx
rename to Gen/LbPythia8/exec/minimal.cxx
index 10493248720b41ab0419f88e53e20be36c3b7533..3a69487e2a0ab1bf6cbcb14d673ea88a00e9e8a9 100644
--- a/Gen/LbPythia8/src/exec/minimal.cxx
+++ b/Gen/LbPythia8/exec/minimal.cxx
@@ -27,7 +27,7 @@ class RndForPythia : public Pythia8::RndmEngine
 {
 public:
   RndForPythia( CLHEP::HepRandomEngine& engine ) : m_gen( engine, 0, 1 ) {}
-  virtual double flat()
+  virtual double flat() override
   {
     auto val = m_gen();
     return val;
diff --git a/Gen/LbPythia8/LbPythia8/BeamToolForPythia8.h b/Gen/LbPythia8/include/LbPythia8/BeamToolForPythia8.h
similarity index 100%
rename from Gen/LbPythia8/LbPythia8/BeamToolForPythia8.h
rename to Gen/LbPythia8/include/LbPythia8/BeamToolForPythia8.h
diff --git a/Gen/LbPythia8/LbPythia8/LhcbHooks.h b/Gen/LbPythia8/include/LbPythia8/LhcbHooks.h
similarity index 100%
rename from Gen/LbPythia8/LbPythia8/LhcbHooks.h
rename to Gen/LbPythia8/include/LbPythia8/LhcbHooks.h
diff --git a/Gen/LbPythia8/LbPythia8/Pythia8Production.h b/Gen/LbPythia8/include/LbPythia8/Pythia8Production.h
similarity index 99%
rename from Gen/LbPythia8/LbPythia8/Pythia8Production.h
rename to Gen/LbPythia8/include/LbPythia8/Pythia8Production.h
index 95f79fe47e35fea49f57afd9976df3558dca2c89..7bc0ad13d84de5c03c6482c1f56506e68ce1a377 100755
--- a/Gen/LbPythia8/LbPythia8/Pythia8Production.h
+++ b/Gen/LbPythia8/include/LbPythia8/Pythia8Production.h
@@ -187,7 +187,7 @@ protected:
   class RndForPythia : public Pythia8::RndmEngine {
     public:
     RndForPythia(CLHEP::HepRandomEngine & engine ):m_gen(engine, 0, 1){}
-    virtual double flat(){return m_gen();}
+    virtual double flat() override { return m_gen(); }
 
     private:
       CLHEP::RandFlat m_gen;
diff --git a/Gen/LbPythia8/LbPythia8/Pythia8ProductionMT.h b/Gen/LbPythia8/include/LbPythia8/Pythia8ProductionMT.h
similarity index 99%
rename from Gen/LbPythia8/LbPythia8/Pythia8ProductionMT.h
rename to Gen/LbPythia8/include/LbPythia8/Pythia8ProductionMT.h
index dfdd6db0d9f9d90a48af09c770c6df701abb6d5b..345558136b4e01bfe1dca2c91dd27ccb6388e087 100755
--- a/Gen/LbPythia8/LbPythia8/Pythia8ProductionMT.h
+++ b/Gen/LbPythia8/include/LbPythia8/Pythia8ProductionMT.h
@@ -205,7 +205,7 @@ protected:
   {
   public:
     RndForPythia( CLHEP::HepRandomEngine& engine ) : m_gen( engine, 0, 1 ) {}
-    virtual double flat() { return m_gen(); }
+    virtual double flat() override { return m_gen(); }
 
   private:
     CLHEP::RandFlat m_gen;
diff --git a/Gen/LbPythia8/src/component/Pythia8ProductionFactory.cpp b/Gen/LbPythia8/src/Components/Pythia8ProductionFactory.cpp
similarity index 100%
rename from Gen/LbPythia8/src/component/Pythia8ProductionFactory.cpp
rename to Gen/LbPythia8/src/Components/Pythia8ProductionFactory.cpp
diff --git a/Gen/RndInit/CMakeLists.txt b/Gen/RndInit/CMakeLists.txt
index 2e070390b0d0a2ae40d3c68daafacde60a698ed2..a2ce1924e50753aa042567417bb341c0be62c5c1 100644
--- a/Gen/RndInit/CMakeLists.txt
+++ b/Gen/RndInit/CMakeLists.txt
@@ -8,25 +8,27 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: GaussAlgs
-################################################################################
-gaudi_subdir(RndInit v1r0)
-
-gaudi_depends_on_subdirs(GaudiAlg
-                         NewRnd
-                         Gen/GenBeam
-                         Event/GenEvent
-                         #FIXME: For platform and kernel streaming, I think ?!?!
-                         Kernel/LHCbKernel
-                         Defaults)
+#[=======================================================================[.rst:
+Gen/RndInit
+-----------
+#]=======================================================================]
 
 gaudi_add_library(RndInitLib
-                 src/lib/*.cpp
-                 PUBLIC_HEADERS RndInit
-                 INCLUDE_DIRS GenBeam
-                 LINK_LIBRARIES GaudiAlgLib GenEvent LHCbKernel NewRnd)
+    SOURCES
+        src/Lib/GenRndInit.cpp
+    LINK
+        PUBLIC
+	    Gaudi::GaudiAlgLib
+	    LHCb::GenEvent # TODO: [LHCb DEPENDENCY]
+	    Gaussino::Defaults
+	    Gaussino::NewRndLib
+	    Gaussino::GenBeamLib
+)
 
 gaudi_add_module(RndInit
-                 src/components/*.cpp
-                 LINK_LIBRARIES RndInitLib)
+    SOURCES
+        src/Components/GenRndInitComp.cpp
+	src/Components/SeedingTool.cpp
+    LINK
+        Gaussino::RndInitLib
+)
diff --git a/Gen/RndInit/RndInit/GenRndInit.h b/Gen/RndInit/include/RndInit/GenRndInit.h
similarity index 100%
rename from Gen/RndInit/RndInit/GenRndInit.h
rename to Gen/RndInit/include/RndInit/GenRndInit.h
diff --git a/Gen/RndInit/RndInit/IRndSeedingTool.h b/Gen/RndInit/include/RndInit/IRndSeedingTool.h
similarity index 100%
rename from Gen/RndInit/RndInit/IRndSeedingTool.h
rename to Gen/RndInit/include/RndInit/IRndSeedingTool.h
diff --git a/Gen/RndInit/src/components/GenRndInitComp.cpp b/Gen/RndInit/src/Components/GenRndInitComp.cpp
similarity index 100%
rename from Gen/RndInit/src/components/GenRndInitComp.cpp
rename to Gen/RndInit/src/Components/GenRndInitComp.cpp
diff --git a/Gen/RndInit/src/components/SeedingTool.cpp b/Gen/RndInit/src/Components/SeedingTool.cpp
similarity index 100%
rename from Gen/RndInit/src/components/SeedingTool.cpp
rename to Gen/RndInit/src/Components/SeedingTool.cpp
diff --git a/Gen/RndInit/src/components/SeedingTool.h b/Gen/RndInit/src/Components/SeedingTool.h
similarity index 100%
rename from Gen/RndInit/src/components/SeedingTool.h
rename to Gen/RndInit/src/Components/SeedingTool.h
diff --git a/Gen/RndInit/src/lib/GenRndInit.cpp b/Gen/RndInit/src/Lib/GenRndInit.cpp
similarity index 100%
rename from Gen/RndInit/src/lib/GenRndInit.cpp
rename to Gen/RndInit/src/Lib/GenRndInit.cpp
diff --git a/HepMC3/CMakeLists.txt b/HepMC3/CMakeLists.txt
deleted file mode 100644
index 0bf895c5d8dfb1c06ba19eb5f280a7f148e3d760..0000000000000000000000000000000000000000
--- a/HepMC3/CMakeLists.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-gaudi_subdir(HepMC3 v3r1)
-
-find_package(ROOT)
-
-# Define EvtGen external project
-include(ExternalProject)
-set(HEPMC3_GIT_SOURCE "https://gitlab.cern.ch/Gaussino/HepMC3.git" CACHE STRING "URL of the HepMC3 git repository")
-set(HEPMC3_GIT_TAG "official_patched" CACHE STRING "Tag of HepMC3 to be used")
-message(STATUS "HepMC3 will use tag \"${HEPMC3_GIT_TAG}\" from repository ${HEPMC3_GIT_SOURCE}")
-message(STATUS "Binary dir = ${PROJECT_BINARY_DIR}")
-message(STATUS "Build command = ${BUILD_COMMAND}")
-message(STATUS "CMake command = ${CMAKE_COMMAND}")
-string(REPLACE "c++" "" HEPMC_CXX_STANDARD "${GAUDI_CXX_STANDARD}")
-
-ExternalProject_Add(HepMC3Ext
-  GIT_REPOSITORY ${HEPMC3_GIT_SOURCE}
-  GIT_TAG ${HEPMC3_GIT_TAG}
-  CMAKE_ARGS 
-       -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-       -DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_LIST_DIR}/hepmc3_toolchain.cmake
-       -DHEPMC3_ENABLE_PYTHON=OFF
-       -DHEPMC3_ENABLE_ROOTIO=OFF # FIXME: disabled because of HepMC & HepMC3 namespace collision
-       -DHEPMC3_INSTALL_INTERFACES=ON
-       # Do not install examples (installed directories are detected as
-       # packages by the old Gaudi toolchain):
-       -DHEPMC3_INSTALL_EXAMPLES=OFF
-       -DCMAKE_BUILD_TYPE=Debug
-       -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
-       #-DROOT_DIR=${ROOTSYS}
-       -DCMAKE_INSTALL_LIBDIR=lib
-       -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
-       -DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}
-       -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-       -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-       -DCMAKE_CXX_STANDARD=${HEPMC_CXX_STANDARD}
-  CMAKE_COMMAND ${env_cmd} --xml ${env_xml} cmake
-  BUILD_COMMAND ${env_cmd} --xml ${env_xml} cmake --build .
-)
diff --git a/HepMC3/hepmc3_toolchain.cmake b/HepMC3/hepmc3_toolchain.cmake
deleted file mode 100644
index 1321282ccdae55a12feb6860853ca3e20d74156f..0000000000000000000000000000000000000000
--- a/HepMC3/hepmc3_toolchain.cmake
+++ /dev/null
@@ -1,41 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# Special toolchain file that inherits the same heptools version as the
-# used projects.
-#
-#
-# this check is needed because the toolchain is called when checking the
-# compiler (without the proper cache)
-if(NOT CMAKE_SOURCE_DIR MATCHES "CMakeTmp")
-  find_path(heptools_mod_dir UseHEPTools.cmake)
-  message(INFO heptools_mod_dir = ${heptools_mod_dir})
-  set(CMAKE_MODULE_PATH ${heptools_mod_dir} ${CMAKE_MODULE_PATH})
-  if(heptools_version)
-    include(UseHEPTools)
-    use_heptools(${heptools_version})
-  else()
-    include(InheritHEPTools)
-    inherit_heptools()
-  endif()
-
-  # FIXME: make sure we do not pick up unwanted/problematic projects from LCG
-  if(CMAKE_PREFIX_PATH)
-    # - ninja (it requires LD_LIBRARY_PATH set to run)
-    # - Gaudi (we do not want to use it from LCG)
-    # - xenv (conflicts with the version in the build environment)
-    list(FILTER CMAKE_PREFIX_PATH EXCLUDE REGEX "(LCG_|lcg/nightlies).*(ninja|Gaudi|xenv)")
-  endif()
-
-  # FIXME: make sure we do not pick up geant from LCG (it requires LD_LIBRARY_PATH set)
-  if(CMAKE_PREFIX_PATH AND CMAKE_VERSION VERSION_GREATER "3.6.0")
-    list(FILTER CMAKE_PREFIX_PATH EXCLUDE REGEX "(LCG_|lcg/nightlies).*Geant4")
-  endif()
-endif()
diff --git a/HepMCUser/CMakeLists.txt b/HepMCUser/CMakeLists.txt
index f23511b0fc6224ee8e2c954454eacb21df9b09e2..44744f62e59db7153c78237e6a2e050d731cf87f 100644
--- a/HepMCUser/CMakeLists.txt
+++ b/HepMCUser/CMakeLists.txt
@@ -8,37 +8,31 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: HepMCUser
-#
-#################################################################################
-
-gaudi_subdir(HepMCUser v1r0)
-
-gaudi_depends_on_subdirs(Defaults
-                         GaudiAlg
-                         HepMC3)
-
-gaudi_install_headers(HepMCUser)
-
-find_package(ROOT)
-AddHepMC3()
-
-gaudi_add_library(HepMCUtils
-                  src/utils/*.cpp
-                  PUBLIC_HEADERS HepMCUtils
-                  INCLUDE_DIRS HepMCUser Defaults ${RANGEV3_INCLUDE_DIRS} ROOT
-                  LINK_LIBRARIES ${HEPMC3_LIBRARIES} GaudiAlgLib ROOT PartPropLib)
-
-#gaudi_add_library(HepMCUser
-                  #src/user/*.cpp
-                  #PUBLIC_HEADERS HepMCUtils
-                  #INCLUDE_DIRS HepMCUser Defaults ${RANGEV3_INCLUDE_DIRS} ROOT
-                  #LINK_LIBRARIES ${HEPMC3_LIBRARIES} GaudiAlgLib ROOT)
-
-# FIXME: Force the external build before the Utils here. Hack it time
-add_dependencies(HepMCUtils HepMC3Ext)
+#[=======================================================================[.rst:
+HepMCUser
+---------
+#]=======================================================================]
+
+gaudi_add_header_only_library(HepMCUserLib)
+
+gaudi_add_library(HepMCUtilsLib
+    SOURCES
+        src/Lib/CompareGenEvent.cpp
+        src/Lib/PrintDecayTree.cpp
+	src/Lib/Relatives.cpp
+    LINK
+    	PUBLIC
+            HepMC3::HepMC3
+            HepMC3::HepMC3search
+	    Gaudi::GaudiAlgLib
+	    LHCb::PartPropLib     # TODO: [LHCb DEPENDENCY]
+	    Gaussino::Defaults
+            Gaussino::HepMCUserLib
+)
 
 gaudi_add_executable(compareHepMCEvents
-                     exec/*.cpp
-                     LINK_LIBRARIES HepMCUtils)
+    SOURCES
+        exec/compare.cpp
+    LINK
+        HepMCUtilsLib
+)
diff --git a/HepMCUser/HepMCUser/ParticleAttribute.h b/HepMCUser/include/HepMCUser/ParticleAttribute.h
similarity index 95%
rename from HepMCUser/HepMCUser/ParticleAttribute.h
rename to HepMCUser/include/HepMCUser/ParticleAttribute.h
index c10582f8a4fc020d160fa244add794920cb28096..72a84aa700b6a7320e66047ae4a3907f618838f3 100644
--- a/HepMCUser/HepMCUser/ParticleAttribute.h
+++ b/HepMCUser/include/HepMCUser/ParticleAttribute.h
@@ -20,8 +20,7 @@ namespace HepMC3
     ParticleAttribute() : Attribute(), m_val( nullptr ) {}
     ParticleAttribute( GenParticlePtr val ) : Attribute(), m_val( val ) {}
 
-    bool from_string( const string& att )
-    {
+    bool from_string( const string& att ) override {
       #ifdef HEPMC_HAS_CXX11
       index = std::stoi( att );
       #else
@@ -30,8 +29,7 @@ namespace HepMC3
       return true;
     }
 
-    bool to_string( string& att ) const
-    {
+    bool to_string( string& att ) const override {
       att = std::to_string( m_val->id() );
       return true;
     }
diff --git a/HepMCUser/HepMCUser/Status.h b/HepMCUser/include/HepMCUser/Status.h
similarity index 100%
rename from HepMCUser/HepMCUser/Status.h
rename to HepMCUser/include/HepMCUser/Status.h
diff --git a/HepMCUser/HepMCUser/TemplateAttribute.h b/HepMCUser/include/HepMCUser/TemplateAttribute.h
similarity index 100%
rename from HepMCUser/HepMCUser/TemplateAttribute.h
rename to HepMCUser/include/HepMCUser/TemplateAttribute.h
diff --git a/HepMCUser/HepMCUser/VertexAttribute.h b/HepMCUser/include/HepMCUser/VertexAttribute.h
similarity index 100%
rename from HepMCUser/HepMCUser/VertexAttribute.h
rename to HepMCUser/include/HepMCUser/VertexAttribute.h
diff --git a/HepMCUser/HepMCUser/typedefs.h b/HepMCUser/include/HepMCUser/typedefs.h
similarity index 100%
rename from HepMCUser/HepMCUser/typedefs.h
rename to HepMCUser/include/HepMCUser/typedefs.h
diff --git a/HepMCUser/HepMCUtils/CompareGenEvent.h b/HepMCUser/include/HepMCUtils/CompareGenEvent.h
similarity index 100%
rename from HepMCUser/HepMCUtils/CompareGenEvent.h
rename to HepMCUser/include/HepMCUtils/CompareGenEvent.h
diff --git a/HepMCUser/HepMCUtils/HepMCUtils.h b/HepMCUser/include/HepMCUtils/HepMCUtils.h
similarity index 100%
rename from HepMCUser/HepMCUtils/HepMCUtils.h
rename to HepMCUser/include/HepMCUtils/HepMCUtils.h
diff --git a/HepMCUser/HepMCUtils/PrintDecayTree.h b/HepMCUser/include/HepMCUtils/PrintDecayTree.h
similarity index 100%
rename from HepMCUser/HepMCUtils/PrintDecayTree.h
rename to HepMCUser/include/HepMCUtils/PrintDecayTree.h
diff --git a/HepMCUser/HepMCUtils/Relatives.h b/HepMCUser/include/HepMCUtils/Relatives.h
similarity index 100%
rename from HepMCUser/HepMCUtils/Relatives.h
rename to HepMCUser/include/HepMCUtils/Relatives.h
diff --git a/HepMCUser/src/utils/CompareGenEvent.cpp b/HepMCUser/src/Lib/CompareGenEvent.cpp
similarity index 100%
rename from HepMCUser/src/utils/CompareGenEvent.cpp
rename to HepMCUser/src/Lib/CompareGenEvent.cpp
diff --git a/HepMCUser/src/utils/PrintDecayTree.cpp b/HepMCUser/src/Lib/PrintDecayTree.cpp
similarity index 100%
rename from HepMCUser/src/utils/PrintDecayTree.cpp
rename to HepMCUser/src/Lib/PrintDecayTree.cpp
diff --git a/HepMCUser/src/utils/Relatives.cpp b/HepMCUser/src/Lib/Relatives.cpp
similarity index 100%
rename from HepMCUser/src/utils/Relatives.cpp
rename to HepMCUser/src/Lib/Relatives.cpp
diff --git a/Moni/GaussMonitor/CMakeLists.txt b/Moni/GaussMonitor/CMakeLists.txt
index 7acba27015897d4fb4eb275ba77326394f2a6ece..eb56aa883b0b5919d718b5bafb9469dfbcda7f14 100644
--- a/Moni/GaussMonitor/CMakeLists.txt
+++ b/Moni/GaussMonitor/CMakeLists.txt
@@ -8,24 +8,20 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: GaussMonitor
-################################################################################
-gaudi_subdir(GaussMonitor v8r2)
-
-gaudi_depends_on_subdirs(Event/GenEvent
-                         Event/MCEvent
-                         GaudiAlg
-                         Defaults
-                         HepMC3
-                         HepMCUser
-                         Kernel/PartProp)
-
-AddHepMC3()
+#[=======================================================================[.rst:
+Moni/GaussMonitor
+-----------------
+#]=======================================================================]
 
 gaudi_add_module(GaussMonitor
-                 src/*.cpp
-                 INCLUDE_DIRS AIDA ${HEPMC3_INCLUDE_DIR} HepMCUser
-                 LINK_LIBRARIES GaudiAlgLib GenEvent PartPropLib ${HEPMC3_LIBRARIES} MCEvent)
-
-add_dependencies(GaussMonitor HepMC3Ext)
+    SOURCES
+        src/Components/GaussGenUtil.cpp
+        src/Components/GenMonitorAlg.cpp
+        src/Components/MCTruthMonitor.cpp
+    LINK
+        HepMC3::HepMC3
+        LHCb::MCEvent     # TODO: [LHCb DEPENDENCY]
+        LHCb::PartPropLib # TODO: [LHCb DEPENDENCY]
+        Gaussino::Defaults
+        Gaussino::HepMCUserLib
+)
diff --git a/Moni/GaussMonitor/src/GaussGenUtil.cpp b/Moni/GaussMonitor/src/Components/GaussGenUtil.cpp
similarity index 100%
rename from Moni/GaussMonitor/src/GaussGenUtil.cpp
rename to Moni/GaussMonitor/src/Components/GaussGenUtil.cpp
diff --git a/Moni/GaussMonitor/src/GaussGenUtil.h b/Moni/GaussMonitor/src/Components/GaussGenUtil.h
similarity index 100%
rename from Moni/GaussMonitor/src/GaussGenUtil.h
rename to Moni/GaussMonitor/src/Components/GaussGenUtil.h
diff --git a/Moni/GaussMonitor/src/GenMonitorAlg.cpp b/Moni/GaussMonitor/src/Components/GenMonitorAlg.cpp
similarity index 94%
rename from Moni/GaussMonitor/src/GenMonitorAlg.cpp
rename to Moni/GaussMonitor/src/Components/GenMonitorAlg.cpp
index 0437324f6cb3621fb034f703797c22306c543471..387a082b306202e1f2346a61812bcc0b054d5376 100755
--- a/Moni/GaussMonitor/src/GenMonitorAlg.cpp
+++ b/Moni/GaussMonitor/src/Components/GenMonitorAlg.cpp
@@ -40,8 +40,7 @@
 // Declaration of the Algorithm Factory
 DECLARE_COMPONENT( GenMonitorAlg )
 
-StatusCode GenMonitorAlg::initialize()
-{
+StatusCode GenMonitorAlg::initialize() {
 
   StatusCode sc = GaudiHistoAlg::initialize(); // must be executed first
   if ( sc.isFailure() ) return sc;             // error printed already by GaudiHistoAlg
@@ -52,15 +51,12 @@ StatusCode GenMonitorAlg::initialize()
     info() << "Monitor will be applied to events produced with generator " << m_generatorName << endmsg;
   }
 
-  if ( produceHistos() ) {
-    bookHistos();
-  }
+  if ( produceHistos() ) { bookHistos(); }
 
   return StatusCode::SUCCESS;
 }
 
-void GenMonitorAlg::operator()( const HepMC3::GenEventPtrs& hepmcevents ) const
-{
+void GenMonitorAlg::operator()( const HepMC3::GenEventPtrs& hepmcevents ) const {
   std::lock_guard<std::mutex> lock( m_histo_lock );
   debug() << "==> Execute" << endmsg;
 
@@ -70,21 +66,23 @@ void GenMonitorAlg::operator()( const HepMC3::GenEventPtrs& hepmcevents ) const
   int nPileUp( 0 );
 
   for ( auto& hepmcevent : hepmcevents ) {
-    auto gen_name = hepmcevent->attribute<HepMC3::StringAttribute>( Gaussino::HepMC::Attributes::GeneratorName )->value();
+    auto gen_name =
+        hepmcevent->attribute<HepMC3::StringAttribute>( Gaussino::HepMC::Attributes::GeneratorName )->value();
 
     // Check if monitor has to be applied to this event
     if ( !m_generatorName.empty() ) {
-      if ( m_generatorName != gen_name ) {
-        continue;
-      }
+      if ( m_generatorName != gen_name ) { continue; }
     }
     debug() << "Monitor for " << gen_name << endmsg;
 
     // Get the signal process ID from the attributes
     if ( produceHistos() ) {
-      auto sig_proc_id = 
-          hepmcevent->attribute<HepMC3::IntAttribute>( Gaussino::HepMC::Attributes::SignalProcessID )->value();
-      m_hProcess->fill( sig_proc_id );
+      auto sig_proc_id_attr =
+          hepmcevent->attribute<HepMC3::IntAttribute>( Gaussino::HepMC::Attributes::SignalProcessID );
+      if ( sig_proc_id_attr ) {
+        auto sig_proc_id = sig_proc_id_attr->value();
+        m_hProcess->fill( sig_proc_id );
+      }
     }
 
     bool primFound = false;
@@ -135,9 +133,7 @@ void GenMonitorAlg::operator()( const HepMC3::GenEventPtrs& hepmcevents ) const
             ++nParticlesStableCharged;
             double pseudoRap = hepMCpart->momentum().pseudoRapidity();
             // in LHCb acceptance
-            if ( ( pseudoRap > m_minEta ) && ( pseudoRap < m_maxEta ) ) {
-              ++nParChStabEtaAcc;
-            }
+            if ( ( pseudoRap > m_minEta ) && ( pseudoRap < m_maxEta ) ) { ++nParChStabEtaAcc; }
             if ( produceHistos() ) {
               m_hStableEta->fill( pseudoRap );
               m_hStablePt->fill( hepMCpart->momentum().perp() / Gaudi::Units::GeV );
@@ -167,8 +163,7 @@ void GenMonitorAlg::operator()( const HepMC3::GenEventPtrs& hepmcevents ) const
 //=============================================================================
 //  Finalize
 //=============================================================================
-StatusCode GenMonitorAlg::finalize()
-{
+StatusCode GenMonitorAlg::finalize() {
 
   debug() << "==> Finalize" << endmsg;
 
@@ -199,8 +194,7 @@ StatusCode GenMonitorAlg::finalize()
 //============================================================================
 // Booking of histograms
 //============================================================================
-void GenMonitorAlg::bookHistos()
-{
+void GenMonitorAlg::bookHistos() {
 
   debug() << "==> Book histograms" << endmsg;
 
diff --git a/Moni/GaussMonitor/src/GenMonitorAlg.h b/Moni/GaussMonitor/src/Components/GenMonitorAlg.h
similarity index 100%
rename from Moni/GaussMonitor/src/GenMonitorAlg.h
rename to Moni/GaussMonitor/src/Components/GenMonitorAlg.h
diff --git a/Moni/GaussMonitor/src/MCTruthMonitor.cpp b/Moni/GaussMonitor/src/Components/MCTruthMonitor.cpp
similarity index 100%
rename from Moni/GaussMonitor/src/MCTruthMonitor.cpp
rename to Moni/GaussMonitor/src/Components/MCTruthMonitor.cpp
diff --git a/Moni/GaussMonitor/src/MCTruthMonitor.h b/Moni/GaussMonitor/src/Components/MCTruthMonitor.h
similarity index 100%
rename from Moni/GaussMonitor/src/MCTruthMonitor.h
rename to Moni/GaussMonitor/src/Components/MCTruthMonitor.h
diff --git a/NewRnd/CMakeLists.txt b/NewRnd/CMakeLists.txt
index 89c6a45f2b5513329aa0e358f33671bbe388f517..d5c3e09cb41fbf993d77f0ede8e642836be25e42 100644
--- a/NewRnd/CMakeLists.txt
+++ b/NewRnd/CMakeLists.txt
@@ -8,40 +8,36 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: NewRnd
-################################################################################
-gaudi_subdir(NewRnd v1r0)
-gaudi_depends_on_subdirs(GaudiAlg)
-
-gaudi_depends_on_subdirs(Utils)
-
-find_package(CLHEP)
-find_package(ROOT)
-
-# Decide whether to link against CLHEP:
-set( clhep_lib )
-if( CLHEP_FOUND )
-   set( clhep_lib CLHEP )
-endif()
-
-if( CLHEP_FOUND )
-   include_directories( SYSTEM ${CLHEP_INCLUDE_DIRS} )
-endif()
-
-
-gaudi_add_library(NewRnd
-  src/*.cpp
-  PUBLIC_HEADERS NewRnd
-  INCLUDE_DIRS ${clhep_lib} ROOT Utils
-  LINK_LIBRARIES GaudiAlgLib ${clhep_lib} ROOT GaudiKernel)
+#[=======================================================================[.rst:
+NewRnd
+------
+#]=======================================================================]
+
+gaudi_add_library(NewRndLib
+    SOURCES
+        src/Lib/RndAlgSeeder.cpp
+        src/Lib/RndCommon.cpp
+        src/Lib/RndGlobal.cpp
+    LINK
+        PUBLIC
+            CLHEP::Random
+            Gaudi::GaudiKernel
+            Gaudi::GaudiAlgLib
+            Gaussino::UtilsLib
+)
 
 gaudi_add_module(NewRndComponents
-        src/components/*.cpp
-        LINK_LIBRARIES NewRnd)
+    SOURCES
+        src/Components/Engines.cpp
+    LINK
+        NewRndLib
+)
 
 gaudi_add_executable(GaussinoTestgRandom
-                     exec/GaussinoTestgRandom.cxx
-                     LINK_LIBRARIES NewRnd)
+    SOURCES
+        exec/GaussinoTestgRandom.cxx
+    LINK
+        NewRndLib
+)
 
-gaudi_add_test(QMTest QMTEST)
+gaudi_add_tests(QMTest)
diff --git a/NewRnd/NewRnd/RndAlgSeeder.h b/NewRnd/include/NewRnd/RndAlgSeeder.h
similarity index 100%
rename from NewRnd/NewRnd/RndAlgSeeder.h
rename to NewRnd/include/NewRnd/RndAlgSeeder.h
diff --git a/NewRnd/NewRnd/RndCommon.h b/NewRnd/include/NewRnd/RndCommon.h
similarity index 100%
rename from NewRnd/NewRnd/RndCommon.h
rename to NewRnd/include/NewRnd/RndCommon.h
diff --git a/NewRnd/NewRnd/RndGlobal.h b/NewRnd/include/NewRnd/RndGlobal.h
similarity index 100%
rename from NewRnd/NewRnd/RndGlobal.h
rename to NewRnd/include/NewRnd/RndGlobal.h
diff --git a/NewRnd/src/components/Engines.cpp b/NewRnd/src/Components/Engines.cpp
similarity index 100%
rename from NewRnd/src/components/Engines.cpp
rename to NewRnd/src/Components/Engines.cpp
diff --git a/NewRnd/src/RndAlgSeeder.cpp b/NewRnd/src/Lib/RndAlgSeeder.cpp
similarity index 100%
rename from NewRnd/src/RndAlgSeeder.cpp
rename to NewRnd/src/Lib/RndAlgSeeder.cpp
diff --git a/NewRnd/src/RndCommon.cpp b/NewRnd/src/Lib/RndCommon.cpp
similarity index 100%
rename from NewRnd/src/RndCommon.cpp
rename to NewRnd/src/Lib/RndCommon.cpp
diff --git a/NewRnd/src/RndGlobal.cpp b/NewRnd/src/Lib/RndGlobal.cpp
similarity index 100%
rename from NewRnd/src/RndGlobal.cpp
rename to NewRnd/src/Lib/RndGlobal.cpp
diff --git a/Sim/ExternalDetector/CMakeLists.txt b/Sim/ExternalDetector/CMakeLists.txt
index 1cbfa4d84ce471571a361510b05a7343b639f3f3..3d42eac49c224f640423165aae7ec444231b19d3 100644
--- a/Sim/ExternalDetector/CMakeLists.txt
+++ b/Sim/ExternalDetector/CMakeLists.txt
@@ -8,31 +8,37 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: ExternalDetector
-################################################################################
-gaudi_subdir(ExternalDetector v1r0)
-
-gaudi_depends_on_subdirs(GaudiAlg
-                         Sim/GiGaMTCore
-                         Sim/GiGaMTFactories)
-
-
-AddHepMC3()                    
-find_package(Boost)
-find_package(CLHEP)
-
-include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${Geant4_INCLUDE_DIRS})
+#[=======================================================================[.rst:
+Sim/ExternalDetector
+--------------------
 
+Author: Michał Mazurek
+#]=======================================================================]
 gaudi_add_library(ExternalDetectorLib
-                  src/Lib/*.cpp
-                  PUBLIC_HEADERS ExternalDetector
-                  INCLUDE_DIRS GiGaMTFactories XercesC ${HEPMC3_INCLUDE_DIR}
-                  LINK_LIBRARIES GaudiAlgLib GiGaMTCoreRunLib XercesC ${HEPMC3_LIBRARIES} ${GEANT4_LIBS})
+    SOURCES
+        src/Lib/Embedder.cpp
+        src/Lib/MaterialFactory.cpp
+    LINK
+        PUBLIC
+            Gaudi::GaudiAlgLib
+            XercesC::XercesC
+            Geant4::G4digits_hits
+            Geant4::G4geometry
+            Gaussino::GiGaMTFactoriesLib
+            Gaussino::GiGaMTCoreDetLib
+)
 
 gaudi_add_module(ExternalDetector
-                 src/Components/*.cpp
-                 LINK_LIBRARIES ExternalDetectorLib)
+    SOURCES
+        src/Components/CuboidEmbedder.cpp
+        src/Components/MaterialFromChemicalPropertiesFactory.cpp
+        src/Components/MaterialFromElements.cpp
+        src/Components/WorldCreator.cpp
+    LINK
+        Gaussino::ExternalDetectorLib
+        Gaussino::GiGaMTGeoLib
+)
 
-gaudi_install_python_modules()
-gaudi_add_test(QMTest QMTEST)
+gaudi_install(PYTHON)
+gaudi_generate_confuserdb()
+gaudi_add_tests(QMTest)
diff --git a/Sim/ExternalDetector/ExternalDetector/Embedder.h b/Sim/ExternalDetector/include/ExternalDetector/Embedder.h
similarity index 98%
rename from Sim/ExternalDetector/ExternalDetector/Embedder.h
rename to Sim/ExternalDetector/include/ExternalDetector/Embedder.h
index 9ea601e0aa91bf06286560c25bc11f456bf9c217..73da3250270879806f7c69719b31864e5b3e7bdf 100644
--- a/Sim/ExternalDetector/ExternalDetector/Embedder.h
+++ b/Sim/ExternalDetector/include/ExternalDetector/Embedder.h
@@ -17,7 +17,7 @@
 #include "GiGaMTCoreDet/IExternalDetectorEmbedder.h"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 // Geant4
-#include "Geant4/G4VSensitiveDetector.hh"
+#include "G4VSensitiveDetector.hh"
 
 class G4VSolid;
 class G4VPhysicalVolume;
diff --git a/Sim/ExternalDetector/ExternalDetector/MaterialFactory.h b/Sim/ExternalDetector/include/ExternalDetector/MaterialFactory.h
similarity index 98%
rename from Sim/ExternalDetector/ExternalDetector/MaterialFactory.h
rename to Sim/ExternalDetector/include/ExternalDetector/MaterialFactory.h
index 5dbf43e16108096ea9fcc80807f8c1f464a5a85a..2e167cc2dea5f0bf630ea25715ae7814df3139a2 100644
--- a/Sim/ExternalDetector/ExternalDetector/MaterialFactory.h
+++ b/Sim/ExternalDetector/include/ExternalDetector/MaterialFactory.h
@@ -14,7 +14,7 @@
 #include "GaudiKernel/PhysicalConstants.h"
 #include "GaudiKernel/SystemOfUnits.h"
 // Geant4
-#include "Geant4/G4Material.hh"
+#include "G4Material.hh"
 // GiGaMT
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
diff --git a/Sim/ExternalDetector/src/Components/CuboidEmbedder.cpp b/Sim/ExternalDetector/src/Components/CuboidEmbedder.cpp
index e2fb707637b01e4ee6e303d3aee272fafa6024fc..f43a547c2c02550fdd483bf3d42eb467aeaeeb14 100644
--- a/Sim/ExternalDetector/src/Components/CuboidEmbedder.cpp
+++ b/Sim/ExternalDetector/src/Components/CuboidEmbedder.cpp
@@ -13,7 +13,7 @@
 // Gaudi
 #include "GaudiKernel/SystemOfUnits.h"
 // G4
-#include "Geant4/G4Box.hh"
+#include "G4Box.hh"
 
 namespace ExternalDetector {
   class CuboidEmbedder : public Embedder<G4Box> {
diff --git a/Sim/ExternalDetector/src/Components/WorldCreator.cpp b/Sim/ExternalDetector/src/Components/WorldCreator.cpp
index a2dede650f0dc1cba0837a139dab7701601ed10f..0bbb60976ed6cb182688bcb3d462e7ede3db1611 100644
--- a/Sim/ExternalDetector/src/Components/WorldCreator.cpp
+++ b/Sim/ExternalDetector/src/Components/WorldCreator.cpp
@@ -10,10 +10,10 @@
 \*****************************************************************************/
 
 // G4
-#include "Geant4/G4Box.hh"
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4Material.hh"
-#include "Geant4/G4PVPlacement.hh"
+#include "G4Box.hh"
+#include "G4LogicalVolume.hh"
+#include "G4Material.hh"
+#include "G4PVPlacement.hh"
 // Gaudi
 #include "GaudiKernel/Service.h"
 #include "GaudiKernel/SystemOfUnits.h"
diff --git a/Sim/ExternalDetector/src/Lib/Embedder.cpp b/Sim/ExternalDetector/src/Lib/Embedder.cpp
index a793ed6b7136c26d4d6c05fdbf4e24e1e86f2ecd..55a0e20402c8fb724e50c003c3ee754b5098dc18 100644
--- a/Sim/ExternalDetector/src/Lib/Embedder.cpp
+++ b/Sim/ExternalDetector/src/Lib/Embedder.cpp
@@ -11,13 +11,13 @@
 // local
 #include "ExternalDetector/Embedder.h"
 // G4
-#include "Geant4/G4Box.hh"
-#include "Geant4/G4GDMLParser.hh"
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4LogicalVolumeStore.hh"
-#include "Geant4/G4Material.hh"
-#include "Geant4/G4PVPlacement.hh"
-#include "Geant4/G4SDManager.hh"
+#include "G4Box.hh"
+#include "G4GDMLParser.hh"
+#include "G4LogicalVolume.hh"
+#include "G4LogicalVolumeStore.hh"
+#include "G4Material.hh"
+#include "G4PVPlacement.hh"
+#include "G4SDManager.hh"
 
 namespace ExternalDetector {
 
diff --git a/Sim/Gaussino/CMakeLists.txt b/Sim/Gaussino/CMakeLists.txt
index 55e68e50700859161ee02aca021a683ecd0b689d..4efc63fd51f232fee5b817146c35d8d7ce7de75e 100644
--- a/Sim/Gaussino/CMakeLists.txt
+++ b/Sim/Gaussino/CMakeLists.txt
@@ -8,9 +8,10 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-gaudi_subdir(Gaussino v1r0)
-
-gaudi_depends_on_subdirs(Kernel/PartProp)
-
-gaudi_install_python_modules()
-gaudi_add_test(QMTest QMTEST)
+#[=======================================================================[.rst:
+Sim/Gaussino
+------------
+#]=======================================================================]
+gaudi_install(PYTHON)
+gaudi_generate_confuserdb()
+gaudi_add_tests(QMTest)
diff --git a/Sim/Gaussino/data/ParticleTable.txt b/Sim/Gaussino/data/ParticleTable.txt
index eaffd58343b91c08d3ef5ca87ce99e42660a8727..9139665d48612115e8a2c7e91ea7acc49a3f6fdc 100644
--- a/Sim/Gaussino/data/ParticleTable.txt
+++ b/Sim/Gaussino/data/ParticleTable.txt
@@ -8,8 +8,8 @@ PARTICLE
 #                    GEANTID    PDGID  CHARGE   MASS(GeV)      TLIFE(s)                    EVTGENNAME    PYTHIAID    MAXWIDTH
 #
  gamma                   1          22   0.0      0.00000000      1.000000e+16                     gamma          22      0.00000000
- W+                     53          24   1.0     80.38500000      3.156893e-25                        W+          24      0.00000000
- W-                     54         -24  -1.0     80.38500000      3.156893e-25                        W-         -24      0.00000000
+ W+                     53          24   1.0     80.37900000      3.156893e-25                        W+          24      0.00000000
+ W-                     54         -24  -1.0     80.37900000      3.156893e-25                        W-         -24      0.00000000
  Z0                     55          23   0.0     91.18760000      2.637914e-25                        Z0          23      0.00000000
  e+                      2         -11   1.0      0.00051100      1.000000e+16                        e+         -11      0.00000000
  e-                      3          11  -1.0      0.00051100      1.000000e+16                        e-          11      0.00000000
@@ -19,23 +19,23 @@ PARTICLE
  mu-                     6          13  -1.0      0.10565837      2.196981e-06                       mu-          13      0.00000000
  nu_mu                 300          14   0.0      0.00000000      1.000000e+16                     nu_mu          14      0.00000000
  nu_mu~                301         -14   0.0      0.00000000      1.000000e+16                anti-nu_mu         -14      0.00000000
- tau+                   51         -15   1.0      1.77682000      2.903000e-13                      tau+         -15      0.00000000
- tau-                   52          15  -1.0      1.77682000      2.903000e-13                      tau-          15      0.00000000
- pi0                     7         111   0.0      0.13497660      8.520000e-17                       pi0         111      0.00000000
- pi+                     8         211   1.0      0.13957018      2.603300e-08                       pi+         211      0.00000000
- pi-                     9        -211  -1.0      0.13957018      2.603300e-08                       pi-        -211      0.00000000
+ tau+                   51         -15   1.0      1.77686000      2.903449e-13                      tau+         -15      0.00000000
+ tau-                   52          15  -1.0      1.77686000      2.903449e-13                      tau-          15      0.00000000
+ pi0                     7         111   0.0      0.13497700      8.520000e-17                       pi0         111      0.00000000
+ pi+                     8         211   1.0      0.13957061      2.603300e-08                       pi+         211      0.00000000
+ pi-                     9        -211  -1.0      0.13957061      2.603300e-08                       pi-        -211      0.00000000
  eta                    17         221   0.0      0.54786200      5.063171e-19                       eta         221      0.00000000
  rho(770)0              33         113   0.0      0.77526000      4.414569e-24                      rho0         113      0.00000000
  rho(770)+              34         213   1.0      0.77526000      4.414569e-24                      rho+         213      0.00000000
  rho(770)-              35        -213  -1.0      0.77526000      4.414569e-24                      rho-        -213      0.00000000
  omega(782)             36         223   0.0      0.78265000      7.752794e-23                     omega         223      0.00000000
- eta_prime             127         331   0.0      0.95778000      3.324303e-21                      eta'         331      0.00000000
+ eta_prime             127         331   0.0      0.95778000      3.358224e-21                      eta'         331      0.00000000
  sigma_0               850     9000221   0.0      0.47500000      1.196749e-24                   sigma_0           0      0.00000000
- f_0(980)              596     9010221   0.0      0.99000000      9.403031e-24                       f_0       10221      0.00000000
+ f_0(980)              596     9010221   0.0      0.99000000      1.097020e-23                       f_0       10221      0.00000000
  a_0(980)0             132     9000111   0.0      0.98000000      8.776163e-24                      a_00       10111      0.00000000
  a_0(980)+             133     9000211   1.0      0.98000000      8.776163e-24                      a_0+       10211      0.00000000
  a_0(980)-             134    -9000211  -1.0      0.98000000      8.776163e-24                      a_0-      -10211      0.00000000
- phi(1020)              37         333   0.0      1.01946100      1.545099e-22                       phi         333      0.00000000
+ phi(1020)              37         333   0.0      1.01946100      1.549099e-22                       phi         333      0.00000000
  h_1(1170)             597       10223   0.0      1.17000000      1.828367e-24                       h_1       10223      0.00000000
  b_1(1235)0            588       10113   0.0      1.22950000      4.635297e-24                      b_10       10113      0.00000000
  b_1(1235)+            592       10213   1.0      1.22950000      4.635297e-24                      b_1+       10213      0.00000000
@@ -43,72 +43,72 @@ PARTICLE
  a_1(1260)0            135       20113   0.0      1.23000000      1.567172e-24                      a_10       20113      0.00000000
  a_1(1260)+             42       20213   1.0      1.23000000      1.567172e-24                      a_1+       20213      0.00000000
  a_1(1260)-             43      -20213  -1.0      1.23000000      1.567172e-24                      a_1-      -20213      0.00000000
- f_2(1270)             367         225   0.0      1.27510000      3.555982e-24                       f_2         225      0.00000000
- f_1(1285)             687       20223   0.0      1.28190000      2.719885e-23                       f_1       20223      0.00000000
+ f_2(1270)             367         225   0.0      1.27550000      3.555982e-24                       f_2         225      0.00000000
+ f_1(1285)             687       20223   0.0      1.28190000      2.899612e-23                       f_1       20223      0.00000000
  eta(1295)             811      100221   0.0      1.29400000      1.196749e-23                   eta(2S)           0      0.00000000
  pi(1300)0             805      100111   0.0      1.30000000      1.645530e-24                   pi(2S)0           0      0.00000000
  pi(1300)+             807      100211   1.0      1.30000000      1.645530e-24                   pi(2S)+           0      0.00000000
  pi(1300)-             808     -100211  -1.0      1.30000000      1.645530e-24                   pi(2S)-           0      0.00000000
- a_2(1320)0            136         115   0.0      1.31830000      6.151516e-24                      a_20         115      0.00000000
- a_2(1320)+            137         215   1.0      1.31830000      6.151516e-24                      a_2+         215      0.00000000
- a_2(1320)-            138        -215  -1.0      1.31830000      6.151516e-24                      a_2-        -215      0.00000000
+ a_2(1320)0            136         115   0.0      1.31690000      6.151516e-24                      a_20         115      0.00000000
+ a_2(1320)+            137         215   1.0      1.31690000      6.151516e-24                      a_2+         215      0.00000000
+ a_2(1320)-            138        -215  -1.0      1.31690000      6.151516e-24                      a_2-        -215      0.00000000
  f_0(1370)             686       10221   0.0      1.35000000      1.880606e-24                      f'_0       10331      0.00000000
- h_1(1380)             604       10333   0.0      1.40000000      0.000000e+00                      h'_1       10333      0.00000000
+ h_1(1380)             604       10333   0.0      1.41600000      7.313467e-24                      h'_1       10333      0.00000000
  pi_1(1400)0          1021     9000113   0.0      1.35400000      1.994582e-24               pi_1(1400)0           0      0.00000000
  pi_1(1400)+          1023     9000213   1.0      1.35400000      1.994582e-24               pi_1(1400)+           0      0.00000000
  pi_1(1400)-          1024    -9000213  -1.0      1.35400000      1.994582e-24               pi_1(1400)-           0      0.00000000
- eta(1405)0           1025     9020221   0.0      1.40880000      1.290612e-23                eta(1405)0           0      0.00000000
+ eta(1405)0           1025     9020221   0.0      1.40880000      1.313796e-23                eta(1405)0           0      0.00000000
  omega(1420)           812      100223   0.0      1.42500000      3.061452e-24                 omega(2S)           0      0.00000000
  f_1(1420)             692       20333   0.0      1.42640000      1.198929e-23                      f'_1       20333      0.00000000
  rho(1450)0            806      100113   0.0      1.46500000      1.645530e-24                  rho(2S)0           0      0.00000000
  rho(1450)+            809      100213   1.0      1.46500000      1.645530e-24                  rho(2S)+           0      0.00000000
  rho(1450)-            810     -100213  -1.0      1.46500000      1.645530e-24                  rho(2S)-           0      0.00000000
- a_0(1450)0            587       10111   0.0      1.47400000      2.483820e-24                   unknown           0      0.00000000
- a_0(1450)+            590       10211   1.0      1.47400000      2.483820e-24                   unknown           0      0.00000000
- a_0(1450)-            591      -10211  -1.0      1.47400000      2.483820e-24                   unknown           0      0.00000000
- eta(1475)             826      100331   0.0      1.47600000      7.743673e-24                   unknown           0      0.00000000
- f_0(1500)             855     9030221   0.0      1.50500000      6.038644e-24                 f_0(1500)           0      0.00000000
+ a_0(1450)0            587       10111   0.0      1.46700000      2.483820e-24                a_0(1450)0           0      0.00000000
+ a_0(1450)+            590       10211   1.0      1.46700000      2.483820e-24                a_0(1450)+           0      0.00000000
+ a_0(1450)-            591      -10211  -1.0      1.46700000      2.483820e-24                a_0(1450)-           0      0.00000000
+ eta(1475)             826      100331   0.0      1.47500000      7.743673e-24                 eta(1475)           0      0.00000000
+ f_0(1500)             855     9030221   0.0      1.50600000      6.038644e-24                 f_0(1500)           0      0.00000000
  f'_2(1525)            380         335   0.0      1.52500000      9.016605e-24                      f'_2         335      0.00000000
- pi_1(1600)0          1027     9010113   0.0      1.66200000      2.742551e-24               pi_1(1600)0           0      0.00000000
- pi_1(1600)+          1029     9010213   1.0      1.66200000      2.742551e-24               pi_1(1600)+           0      0.00000000
- pi_1(1600)-          1030    -9010213  -1.0      1.66200000      2.742551e-24               pi_1(1600)-           0      0.00000000
- eta_2(1645)           598       10225   0.0      1.61700000      3.636531e-24                   unknown           0      0.00000000
+ pi_1(1600)0          1027     9010113   0.0      1.66000000      2.742551e-24               pi_1(1600)0           0      0.00000000
+ pi_1(1600)+          1029     9010213   1.0      1.66000000      2.742551e-24               pi_1(1600)+           0      0.00000000
+ pi_1(1600)-          1030    -9010213  -1.0      1.66000000      2.742551e-24               pi_1(1600)-           0      0.00000000
+ eta_2(1645)           598       10225   0.0      1.61700000      3.636531e-24               eta_2(1645)           0      0.00000000
  omega(1650)           746       30223   0.0      1.67000000      2.089563e-24               omega(1650)           0      0.00000000
- pi_2(1670)0           589       10115   0.0      1.67220000      2.531585e-24                   unknown           0      0.00000000
- pi_2(1670)+           594       10215   1.0      1.67220000      2.531585e-24                   unknown           0      0.00000000
- pi_2(1670)-           595      -10215  -1.0      1.67220000      2.531585e-24                   unknown           0      0.00000000
- omega_3(1670)         368         227   0.0      1.66700000      3.917930e-24                   unknown           0      0.00000000
+ pi_2(1670)0           589       10115   0.0      1.67060000      2.551209e-24               pi_2(1670)0           0      0.00000000
+ pi_2(1670)+           594       10215   1.0      1.67060000      2.551209e-24               pi_2(1670)+           0      0.00000000
+ pi_2(1670)-           595      -10215  -1.0      1.67060000      2.551209e-24               pi_2(1670)-           0      0.00000000
+ omega_3(1670)         368         227   0.0      1.66700000      3.917930e-24             omega_3(1670)           0      0.00000000
  phi(1680)             827      100333   0.0      1.68000000      4.388081e-24                 phi(1680)           0      0.00000000
- rho_3(1690)0          361         117   0.0      1.68880000      4.088274e-24                   unknown           0      0.00000000
- rho_3(1690)+          363         217   1.0      1.68880000      4.088274e-24                   unknown           0      0.00000000
- rho_3(1690)-          364        -217  -1.0      1.68880000      4.088274e-24                   unknown           0      0.00000000
+ rho_3(1690)0          361         117   0.0      1.68880000      4.088274e-24              rho_3(1690)0           0      0.00000000
+ rho_3(1690)+          363         217   1.0      1.68880000      4.088274e-24              rho_3(1690)+           0      0.00000000
+ rho_3(1690)-          364        -217  -1.0      1.68880000      4.088274e-24              rho_3(1690)-           0      0.00000000
  rho(1700)0            743       30113   0.0      1.72000000      2.632849e-24                  rho(3S)0           0      0.00000000
  rho(1700)+            744       30213   1.0      1.72000000      2.632849e-24                  rho(3S)+           0      0.00000000
  rho(1700)-            745      -30213  -1.0      1.72000000      2.632849e-24                  rho(3S)-           0      0.00000000
- f_0(1710)             603       10331   0.0      1.72200000      4.875646e-24                   unknown           0      0.00000000
- pi(1800)0             840     9010111   0.0      1.81200000      3.164482e-24                   unknown           0      0.00000000
- pi(1800)+             841     9010211   1.0      1.81200000      3.164482e-24                   unknown           0      0.00000000
- pi(1800)-             842    -9010211  -1.0      1.81200000      3.164482e-24                   unknown           0      0.00000000
- phi_3(1850)           381         337   0.0      1.85400000      7.565657e-24                   unknown           0      0.00000000
- eta_2(1870)           605       10335   0.0      1.85400000      0.000000e+00                   unknown           0      0.00000000
- f_2(1950)             813     9050225   0.0      1.94400000      1.394517e-24                   unknown           0      0.00000000
- f_2(2010)             828     9060225   0.0      2.01100000      3.291061e-24                   unknown           0      0.00000000
- a_4(2040)0            362         119   0.0      1.99600000      2.581224e-24                   unknown           0      0.00000000
- a_4(2040)+            365         219   1.0      1.99600000      2.581224e-24                   unknown           0      0.00000000
- a_4(2040)-            366        -219  -1.0      1.99600000      2.581224e-24                   unknown           0      0.00000000
- f_4(2050)             369         229   0.0      2.01800000      2.777267e-24                   unknown           0      0.00000000
- f_2(2300)             857     9080225   0.0      2.29700000      4.417530e-24                   unknown           0      0.00000000
- f_2(2340)             858     9090225   0.0      2.33900000      2.063361e-24                   unknown           0      0.00000000
- K0                    370         311   0.0      0.49761400      0.000000e+00                        K0         311      0.00000000
- K~0                   371        -311   0.0      0.49761400      0.000000e+00                   anti-K0        -311      0.00000000
- KS0                    16         310   0.0      0.49761400      8.956400e-11                      K_S0         310      0.00000000
- KL0                    10         130   0.0      0.49761400      5.116000e-08                      K_L0         130      0.00000000
+ f_0(1710)             603       10331   0.0      1.70400000      5.351317e-24                 f_0(1710)           0      0.00000000
+ pi(1800)0             840     9010111   0.0      1.81000000      3.164482e-24                 pi(1800)0           0      0.00000000
+ pi(1800)+             841     9010211   1.0      1.81000000      3.164482e-24                 pi(1800)+           0      0.00000000
+ pi(1800)-             842    -9010211  -1.0      1.81000000      3.164482e-24                 pi(1800)-           0      0.00000000
+ phi_3(1850)           381         337   0.0      1.85400000      7.565657e-24               phi_3(1850)           0      0.00000000
+ eta_2(1870)           605       10335   0.0      1.85400000      0.000000e+00               eta_2(1870)           0      0.00000000
+ f_2(1950)             813     9050225   0.0      1.93600000      1.418560e-24                 f_2(1950)           0      0.00000000
+ f_2(2010)             828     9060225   0.0      2.01000000      3.291061e-24                 f_2(2010)           0      0.00000000
+ a_4(2040)0            362         119   0.0      1.96700000      2.581224e-24                a_4(2040)0           0      0.00000000
+ a_4(2040)+            365         219   1.0      1.96700000      2.581224e-24                a_4(2040)+           0      0.00000000
+ a_4(2040)-            366        -219  -1.0      1.96700000      2.581224e-24                a_4(2040)-           0      0.00000000
+ f_4(2050)             369         229   0.0      2.01800000      2.777267e-24                 f_4(2050)           0      0.00000000
+ f_2(2300)             857     9080225   0.0      2.29700000      4.417530e-24                 f_2(2300)           0      0.00000000
+ f_2(2340)             858     9090225   0.0      2.35000000      2.063361e-24                 f_2(2340)           0      0.00000000
+ K0                    370         311   0.0      0.49761100      0.000000e+00                        K0         311      0.00000000
+ K~0                   371        -311   0.0      0.49761100      0.000000e+00                   anti-K0        -311      0.00000000
+ KS0                    16         310   0.0      0.49761100      8.956400e-11                      K_S0         310      0.00000000
+ KL0                    10         130   0.0      0.49761100      5.116000e-08                      K_L0         130      0.00000000
  K+                     11         321   1.0      0.49367700      1.238000e-08                        K+         321      0.00000000
  K-                     12        -321  -1.0      0.49367700      1.238000e-08                        K-        -321      0.00000000
- K*(892)0               40         313   0.0      0.89581000      1.388633e-23                       K*0         313      0.00000000
- K*(892)~0              41        -313   0.0      0.89581000      1.388633e-23                  anti-K*0        -313      0.00000000
- K*(892)+               38         323   1.0      0.89166000      1.295693e-23                       K*+         323      0.00000000
- K*(892)-               39        -323  -1.0      0.89166000      1.295693e-23                       K*-        -323      0.00000000
+ K*(892)0               40         313   0.0      0.89555000      1.391569e-23                       K*0         313      0.00000000
+ K*(892)~0              41        -313   0.0      0.89555000      1.391569e-23                  anti-K*0        -313      0.00000000
+ K*(892)+               38         323   1.0      0.89166000      1.308573e-23                       K*+         323      0.00000000
+ K*(892)-               39        -323  -1.0      0.89166000      1.308573e-23                       K*-        -323      0.00000000
  K_1(1270)0            141       10313   0.0      1.27200000      7.313469e-24                      K_10       10313      0.00000000
  K_1(1270)~0           142      -10313   0.0      1.27200000      7.313469e-24                 anti-K_10      -10313      0.00000000
  K_1(1270)+            139       10323   1.0      1.27200000      7.313469e-24                      K_1+       10323      0.00000000
@@ -117,70 +117,70 @@ PARTICLE
  K_1(1400)~0           146      -20313   0.0      1.40300000      3.782829e-24                anti-K'_10      -20313      0.00000000
  K_1(1400)+            143       20323   1.0      1.40300000      3.782829e-24                     K'_1+       20323      0.00000000
  K_1(1400)-            144      -20323  -1.0      1.40300000      3.782829e-24                     K'_1-      -20323      0.00000000
- K*(1410)0             816      100313   0.0      1.41400000      2.837122e-24                      K'*0           0      0.00000000
- K*(1410)~0            817     -100313   0.0      1.41400000      2.837122e-24                 anti-K'*0           0      0.00000000
- K*(1410)+             822      100323   1.0      1.41400000      2.837122e-24                      K'*+           0      0.00000000
- K*(1410)-             823     -100323  -1.0      1.41400000      2.837122e-24                      K'*-           0      0.00000000
- K*_0(1430)0           149       10311   0.0      1.42500000      2.437823e-24                     K_0*0       10311      0.00000000
- K*_0(1430)~0          150      -10311   0.0      1.42500000      2.437823e-24                anti-K_0*0      -10311      0.00000000
- K*_0(1430)+           147       10321   1.0      1.42500000      2.437823e-24                     K_0*+       10321      0.00000000
- K*_0(1430)-           148      -10321  -1.0      1.42500000      2.437823e-24                     K_0*-      -10321      0.00000000
+ K*(1410)0             816      100313   0.0      1.42100000      2.837122e-24                      K'*0           0      0.00000000
+ K*(1410)~0            817     -100313   0.0      1.42100000      2.837122e-24                 anti-K'*0           0      0.00000000
+ K*(1410)+             822      100323   1.0      1.42100000      2.837122e-24                      K'*+           0      0.00000000
+ K*(1410)-             823     -100323  -1.0      1.42100000      2.837122e-24                      K'*-           0      0.00000000
+ K*_0(1430)0           149       10311   0.0      1.43000000      2.437823e-24                     K_0*0       10311      0.00000000
+ K*_0(1430)~0          150      -10311   0.0      1.43000000      2.437823e-24                anti-K_0*0      -10311      0.00000000
+ K*_0(1430)+           147       10321   1.0      1.43000000      2.437823e-24                     K_0*+       10321      0.00000000
+ K*_0(1430)-           148      -10321  -1.0      1.43000000      2.437823e-24                     K_0*-      -10321      0.00000000
  K*_2(1430)0           153         315   0.0      1.43240000      6.038644e-24                     K_2*0         315      0.00000000
  K*_2(1430)~0          154        -315   0.0      1.43240000      6.038644e-24                anti-K_2*0        -315      0.00000000
  K*_2(1430)+           151         325   1.0      1.42560000      6.682357e-24                     K_2*+         325      0.00000000
  K*_2(1430)-           152        -325  -1.0      1.42560000      6.682357e-24                     K_2*-        -325      0.00000000
- K(1460)0              814      100311   0.0      1.43240000      0.000000e+00                   unknown           0      0.00000000
- K(1460)~0             815     -100311   0.0      1.43240000      0.000000e+00                   unknown           0      0.00000000
- K(1460)+              820      100321   1.0      1.43240000      0.000000e+00                   unknown           0      0.00000000
- K(1460)-              821     -100321  -1.0      1.43240000      0.000000e+00                   unknown           0      0.00000000
- K*(1680)0             747       30313   0.0      1.71700000      2.056913e-24                     K''*0           0      0.00000000
- K*(1680)~0            748      -30313   0.0      1.71700000      2.056913e-24                anti-K''*0           0      0.00000000
- K*(1680)+             749       30323   1.0      1.71700000      2.056913e-24                     K''*+           0      0.00000000
- K*(1680)-             750      -30323  -1.0      1.71700000      2.056913e-24                     K''*-           0      0.00000000
- K_2(1770)0            599       10315   0.0      1.77300000      3.538775e-24                   unknown           0      0.00000000
- K_2(1770)~0           600      -10315   0.0      1.77300000      3.538775e-24                   unknown           0      0.00000000
- K_2(1770)+            601       10325   1.0      1.77300000      3.538775e-24                   unknown           0      0.00000000
- K_2(1770)-            602      -10325  -1.0      1.77300000      3.538775e-24                   unknown           0      0.00000000
+ K(1460)0              814      100311   0.0      1.43240000      0.000000e+00                  K(1460)0           0      0.00000000
+ K(1460)~0             815     -100311   0.0      1.43240000      0.000000e+00             anti-K(1460)0           0      0.00000000
+ K(1460)+              820      100321   1.0      1.43240000      0.000000e+00                  K(1460)+           0      0.00000000
+ K(1460)-              821     -100321  -1.0      1.43240000      0.000000e+00                  K(1460)-           0      0.00000000
+ K*(1680)0             747       30313   0.0      1.71800000      2.056913e-24                     K''*0           0      0.00000000
+ K*(1680)~0            748      -30313   0.0      1.71800000      2.056913e-24                anti-K''*0           0      0.00000000
+ K*(1680)+             749       30323   1.0      1.71800000      2.056913e-24                     K''*+           0      0.00000000
+ K*(1680)-             750      -30323  -1.0      1.71800000      2.056913e-24                     K''*-           0      0.00000000
+ K_2(1770)0            599       10315   0.0      1.77300000      3.538775e-24                K_2(1770)0           0      0.00000000
+ K_2(1770)~0           600      -10315   0.0      1.77300000      3.538775e-24           anti-K_2(1770)0           0      0.00000000
+ K_2(1770)+            601       10325   1.0      1.77300000      3.538775e-24                K_2(1770)+           0      0.00000000
+ K_2(1770)-            602      -10325  -1.0      1.77300000      3.538775e-24                K_2(1770)-           0      0.00000000
  K*_3(1780)0           372         317   0.0      1.77600000      4.139699e-24                     K_3*0           0      0.00000000
  K*_3(1780)~0          373        -317   0.0      1.77600000      4.139699e-24                anti-K_3*0           0      0.00000000
  K*_3(1780)+           376         327   1.0      1.77600000      4.139699e-24                     K_3*+           0      0.00000000
  K*_3(1780)-           377        -327  -1.0      1.77600000      4.139699e-24                     K_3*-           0      0.00000000
- K_2(1820)0            688       20315   0.0      1.81600000      2.384827e-24                   unknown           0      0.00000000
- K_2(1820)~0           689      -20315   0.0      1.81600000      2.384827e-24                   unknown           0      0.00000000
- K_2(1820)+            690       20325   1.0      1.81600000      2.384827e-24                   unknown           0      0.00000000
- K_2(1820)-            691      -20325  -1.0      1.81600000      2.384827e-24                   unknown           0      0.00000000
- K*_2(1980)0           818      100315   0.0      1.97300000      0.000000e+00                   unknown           0      0.00000000
- K*_2(1980)~0          819     -100315   0.0      1.97300000      0.000000e+00                   unknown           0      0.00000000
- K*_2(1980)+           824      100325   1.0      1.97300000      0.000000e+00                   unknown           0      0.00000000
- K*_2(1980)-           825     -100325  -1.0      1.97300000      0.000000e+00                   unknown           0      0.00000000
+ K_2(1820)0            688       20315   0.0      1.81900000      2.493227e-24                K_2(1820)0           0      0.00000000
+ K_2(1820)~0           689      -20315   0.0      1.81900000      2.493227e-24           anti-K_2(1820)0           0      0.00000000
+ K_2(1820)+            690       20325   1.0      1.81900000      2.493227e-24                K_2(1820)+           0      0.00000000
+ K_2(1820)-            691      -20325  -1.0      1.81900000      2.493227e-24                K_2(1820)-           0      0.00000000
+ K*_2(1980)0           818      100315   0.0      1.97300000      0.000000e+00               K*_2(1980)0           0      0.00000000
+ K*_2(1980)~0          819     -100315   0.0      1.97300000      0.000000e+00          anti-K*_2(1980)0           0      0.00000000
+ K*_2(1980)+           824      100325   1.0      1.97300000      0.000000e+00               K*_2(1980)+           0      0.00000000
+ K*_2(1980)-           825     -100325  -1.0      1.97300000      0.000000e+00               K*_2(1980)-           0      0.00000000
  K*_4(2045)0           374         319   0.0      2.04500000      3.324304e-24                     K_4*0           0      0.00000000
  K*_4(2045)~0          375        -319   0.0      2.04500000      3.324304e-24                anti-K_4*0           0      0.00000000
  K*_4(2045)+           378         329   1.0      2.04500000      3.324304e-24                     K_4*+           0      0.00000000
  K*_4(2045)-           379        -329  -1.0      2.04500000      3.324304e-24                     K_4*-           0      0.00000000
- D0                     58         421   0.0      1.86484000      4.101000e-13                        D0         421      0.00000000
- D~0                    59        -421   0.0      1.86484000      4.101000e-13                   anti-D0        -421      0.00000000
- D+                     56         411   1.0      1.86961000      1.040000e-12                        D+         411      0.00000000
- D-                     57        -411  -1.0      1.86961000      1.040000e-12                        D-        -411      0.00000000
- D*(2007)0              67         423   0.0      2.00696000      1.000003e-19                       D*0         423      0.00000000
- D*(2007)~0             68        -423   0.0      2.00696000      1.000003e-19                  anti-D*0        -423      0.00000000
+ D0                     58         421   0.0      1.86483000      4.101000e-13                        D0         421      0.00000000
+ D~0                    59        -421   0.0      1.86483000      4.101000e-13                   anti-D0        -421      0.00000000
+ D+                     56         411   1.0      1.86965000      1.040000e-12                        D+         411      0.00000000
+ D-                     57        -411  -1.0      1.86965000      1.040000e-12                        D-        -411      0.00000000
+ D*(2007)0              67         423   0.0      2.00685000      1.000003e-19                       D*0         423      0.00000000
+ D*(2007)~0             68        -423   0.0      2.00685000      1.000003e-19                  anti-D*0        -423      0.00000000
  D*(2010)+              65         413   1.0      2.01026000      7.892230e-21                       D*+         413      0.00000000
  D*(2010)-              66        -413  -1.0      2.01026000      7.892230e-21                       D*-        -413      0.00000000
- D*_0+                 155       10411   1.0      2.31800000      2.465213e-24                     D_0*+       10411      0.00000000
- D*_0-                 159      -10411  -1.0      2.31800000      2.465213e-24                     D_0*-      -10411      0.00000000
- D*_00                 163       10421   0.0      2.31800000      2.465213e-24                     D_0*0       10421      0.00000000
- D*_0~0                167      -10421   0.0      2.31800000      2.465213e-24                anti-D_0*0      -10421      0.00000000
+ D*_0+                 155       10411   1.0      2.34900000      2.978335e-24                     D_0*+       10411      0.00000000
+ D*_0-                 159      -10411  -1.0      2.34900000      2.978335e-24                     D_0*-      -10411      0.00000000
+ D*_00                 163       10421   0.0      2.30000000      2.402234e-24                     D_0*0       10421      0.00000000
+ D*_0~0                167      -10421   0.0      2.30000000      2.402234e-24                anti-D_0*0      -10421      0.00000000
  D_1(H)0               164       20423   0.0      2.44500000      2.630000e-24                     D'_10       20423      0.00000000
  D_1(H)~0              168      -20423   0.0      2.44500000      2.630000e-24                anti-D'_10      -20423      0.00000000
  D_1(H)+               156       20413   1.0      2.44500000      2.630000e-24                     D'_1+       20413      0.00000000
  D_1(H)-               160      -20413  -1.0      2.44500000      2.630000e-24                     D'_1-      -20413      0.00000000
- D_1(2420)0            165       10423   0.0      2.42140000      2.428827e-23                      D_10       10423      0.00000000
- D_1(2420)~0           169      -10423   0.0      2.42140000      2.428827e-23                 anti-D_10      -10423      0.00000000
+ D_1(2420)0            165       10423   0.0      2.42080000      2.428827e-23                      D_10       10423      0.00000000
+ D_1(2420)~0           169      -10423   0.0      2.42080000      2.428827e-23                 anti-D_10      -10423      0.00000000
  D_1(2420)+            157       10413   1.0      2.42300000      3.290000e-23                      D_1+       10413      0.00000000
  D_1(2420)-            161      -10413  -1.0      2.42300000      3.290000e-23                      D_1-      -10413      0.00000000
- D*_2(2460)0           170         425   0.0      2.46260000      1.343290e-23                     D_2*0         425      0.00000000
- D*_2(2460)~0          166        -425   0.0      2.46260000      1.343290e-23                anti-D_2*0        -425      0.00000000
- D*_2(2460)+           162         415   1.0      2.46430000      1.778952e-23                     D_2*+         415      0.00000000
- D*_2(2460)-           158        -415  -1.0      2.46430000      1.778952e-23                     D_2*-        -415      0.00000000
+ D*_2(2460)0           170         425   0.0      2.46070000      1.385709e-23                     D_2*0         425      0.00000000
+ D*_2(2460)~0          166        -425   0.0      2.46070000      1.385709e-23                anti-D_2*0        -425      0.00000000
+ D*_2(2460)+           162         415   1.0      2.46540000      1.778952e-23                     D_2*+         415      0.00000000
+ D*_2(2460)-           158        -415  -1.0      2.46540000      1.778952e-23                     D_2*-        -415      0.00000000
  D(2S)0                761      100421   0.0      2.58000000      0.000000e+00                    D(2S)0           0      0.00000000
  D(2S)~0               762     -100421   0.0      2.58000000      0.000000e+00               anti-D(2S)0           0      0.00000000
  D(2S)+                757      100411   1.0      2.58000000      0.000000e+00                    D(2S)+           0      0.00000000
@@ -189,28 +189,28 @@ PARTICLE
  D*(2640)~0            764     -100423   0.0      2.64000000      0.000000e+00              anti-D*(2S)0           0      0.00000000
  D*(2640)+             759      100413   1.0      2.64000000      0.000000e+00                   D*(2S)+           0      0.00000000
  D*(2640)-             760     -100413  -1.0      2.64000000      0.000000e+00                   D*(2S)-           0      0.00000000
- D_s+                   60         431   1.0      1.96830000      5.000000e-13                      D_s+         431      0.00000000
- D_s-                   61        -431  -1.0      1.96830000      5.000000e-13                      D_s-        -431      0.00000000
- D*_s+                  69         433   1.0      2.11210000      1.000003e-19                     D_s*+         433      0.00000000
- D*_s-                  70        -433  -1.0      2.11210000      1.000003e-19                     D_s*-        -433      0.00000000
- D*_s0+                171       10431   1.0      2.31770000      6.582100e-22                    D_s0*+       10431      0.00000000
- D*_s0-                175      -10431  -1.0      2.31770000      6.582100e-22                    D_s0*-      -10431      0.00000000
+ D_s+                   60         431   1.0      1.96834000      5.043770e-13                      D_s+         431      0.00000000
+ D_s-                   61        -431  -1.0      1.96834000      5.043770e-13                      D_s-        -431      0.00000000
+ D*_s+                  69         433   1.0      2.11220000      1.000003e-19                     D_s*+         433      0.00000000
+ D*_s-                  70        -433  -1.0      2.11220000      1.000003e-19                     D_s*-        -433      0.00000000
+ D*_s0+                171       10431   1.0      2.31780000      6.582100e-22                    D_s0*+       10431      0.00000000
+ D*_s0-                175      -10431  -1.0      2.31780000      6.582100e-22                    D_s0*-      -10431      0.00000000
  D_s1(2460)+           172       20433   1.0      2.45950000      6.582100e-22                     D_s1+       20433      0.00000000
  D_s1(2460)-           176      -20433  -1.0      2.45950000      6.582100e-22                     D_s1-      -20433      0.00000000
- D_s1(2536)+           173       10433   1.0      2.53510000      7.154480e-22                    D'_s1+       10433      0.00000000
- D_s1(2536)-           177      -10433  -1.0      2.53510000      7.154480e-22                    D'_s1-      -10433      0.00000000
- D*_s2+                174         435   1.0      2.57190000      3.871836e-23                    D_s2*+         435      0.00000000
- D*_s2-                178        -435  -1.0      2.57190000      3.871836e-23                    D_s2*-        -435      0.00000000
- B0                     73         511   0.0      5.27958000      1.519000e-12                        B0         511      0.00000000
- B~0                    74        -511   0.0      5.27958000      1.519000e-12                   anti-B0        -511      0.00000000
+ D_s1(2536)+           173       10433   1.0      2.53511000      7.154480e-22                    D'_s1+       10433      0.00000000
+ D_s1(2536)-           177      -10433  -1.0      2.53511000      7.154480e-22                    D'_s1-      -10433      0.00000000
+ D*_s2+                174         435   1.0      2.56910000      3.894746e-23                    D_s2*+         435      0.00000000
+ D*_s2-                178        -435  -1.0      2.56910000      3.894746e-23                    D_s2*-        -435      0.00000000
+ B0                     73         511   0.0      5.27964000      1.520120e-12                        B0         511      0.00000000
+ B~0                    74        -511   0.0      5.27964000      1.520120e-12                   anti-B0        -511      0.00000000
  B0H                 99998         510   0.0      5.27958000      1.519000e-12                       B0H           0      0.00000000
  B0L                 99999         150   0.0      5.27958000      1.519000e-12                       B0L           0      0.00000000
- B+                     71         521   1.0      5.27926000      1.638000e-12                        B+         521      0.00000000
- B-                     72        -521  -1.0      5.27926000      1.638000e-12                        B-        -521      0.00000000
- B*0                   189         513   0.0      5.32520000      1.000019e-19                       B*0         513      0.00000000
- B*~0                  190        -513   0.0      5.32520000      1.000019e-19                  anti-B*0        -513      0.00000000
- B*-                   187        -523  -1.0      5.32520000      1.000019e-19                       B*-        -523      0.00000000
- B*+                   188         523   1.0      5.32520000      1.000019e-19                       B*+         523      0.00000000
+ B+                     71         521   1.0      5.27933000      1.638158e-12                        B+         521      0.00000000
+ B-                     72        -521  -1.0      5.27933000      1.638158e-12                        B-        -521      0.00000000
+ B*0                   189         513   0.0      5.32470000      1.000019e-19                       B*0         513      0.00000000
+ B*~0                  190        -513   0.0      5.32470000      1.000019e-19                  anti-B*0        -513      0.00000000
+ B*-                   187        -523  -1.0      5.32470000      1.000019e-19                       B*-        -523      0.00000000
+ B*+                   188         523   1.0      5.32470000      1.000019e-19                       B*+         523      0.00000000
  B*_00                 201       10511   0.0      5.73800000      4.390000e-24                     B_0*0       10511      0.00000000
  B*_0~0                205      -10511   0.0      5.73800000      4.390000e-24                anti-B_0*0      -10511      0.00000000
  B*_0+                 193       10521   1.0      5.73800000      4.390000e-24                     B_0*+       10521      0.00000000
@@ -219,16 +219,16 @@ PARTICLE
  B_1(H)~0              206      -20513   0.0      5.75700000      2.630000e-24                anti-B'_10      -20513      0.00000000
  B_1(H)+               194       20523   1.0      5.75700000      2.630000e-24                     B'_1+       20523      0.00000000
  B_1(H)-               198      -20523  -1.0      5.75700000      2.630000e-24                     B'_1-      -20523      0.00000000
- B_1(L)0               203       10513   0.0      5.72340000      3.134000e-23                      B_10       10513      0.00000000
- B_1(L)~0              207      -10513   0.0      5.72340000      3.134000e-23                 anti-B_10      -10513      0.00000000
- B_1(L)+               195       10523   1.0      5.72340000      3.134000e-23                      B_1+       10523      0.00000000
- B_1(L)-               199      -10523  -1.0      5.72340000      3.134000e-23                      B_1-      -10523      0.00000000
- B*_20                 204         515   0.0      5.74300000      2.861792e-23                     B_2*0         515      0.00000000
- B*_2~0                208        -515   0.0      5.74300000      2.861792e-23                anti-B_2*0        -515      0.00000000
- B*_2+                 196         525   1.0      5.74300000      2.861792e-23                     B_2*+         525      0.00000000
- B*_2-                 200        -525  -1.0      5.74300000      2.861792e-23                     B_2*-        -525      0.00000000
- B_s0                   75         531   0.0      5.36677000      1.512000e-12                      B_s0         531      0.00000000
- B_s~0                  76        -531   0.0      5.36677000      1.512000e-12                 anti-B_s0        -531      0.00000000
+ B_1(L)0               203       10513   0.0      5.72610000      3.134000e-23                      B_10       10513      0.00000000
+ B_1(L)~0              207      -10513   0.0      5.72610000      3.134000e-23                 anti-B_10      -10513      0.00000000
+ B_1(L)+               195       10523   1.0      5.72590000      3.134000e-23                      B_1+       10523      0.00000000
+ B_1(L)-               199      -10523  -1.0      5.72590000      3.134000e-23                      B_1-      -10523      0.00000000
+ B*_20                 204         515   0.0      5.73950000      2.861792e-23                     B_2*0         515      0.00000000
+ B*_2~0                208        -515   0.0      5.73950000      2.861792e-23                anti-B_2*0        -515      0.00000000
+ B*_2+                 196         525   1.0      5.73720000      3.291060e-23                     B_2*+         525      0.00000000
+ B*_2-                 200        -525  -1.0      5.73720000      3.291060e-23                     B_2*-        -525      0.00000000
+ B_s0                   75         531   0.0      5.36688000      1.512000e-12                      B_s0         531      0.00000000
+ B_s~0                  76        -531   0.0      5.36688000      1.512000e-12                 anti-B_s0        -531      0.00000000
  B_s0H               99996         530   0.0      5.36677000      1.661000e-12                     B_s0H           0      0.00000000
  B_s0L               99997         350   0.0      5.36677000      1.405000e-12                     B_s0L           0      0.00000000
  B*_s0                 191         533   0.0      5.41540000      1.000000e-19                     B_s*0         533      0.00000000
@@ -238,39 +238,43 @@ PARTICLE
  B_s1(H)0              210       20533   0.0      5.85900000      2.630000e-24                    B'_s10       20533      0.00000000
  B_s1(H)~0             214      -20533   0.0      5.85900000      2.630000e-24               anti-B'_s10      -20533      0.00000000
  B_s1(L)0              211       10533   0.0      5.82870000      1.316424e-21                     B_s10       10533      0.00000000
- B_s1(L)~0             215      -10533   0.0      5.82870000      1.316424e-22                anti-B_s10      -10533      0.00000000
- B*_s20                212         535   0.0      5.83996000      4.113825e-22                    B_s2*0         535      0.00000000
- B*_s2~0               216        -535   0.0      5.83996000      4.113825e-22               anti-B_s2*0        -535      0.00000000
- B_c+                   77         541   1.0      6.27370000      5.070000e-13                      B_c+         541      0.00000000
- B_c-                   78        -541  -1.0      6.27370000      5.070000e-13                      B_c-        -541      0.00000000
- B_c*+                 382         543   1.0      6.60200000      0.000000e+00                     B_c*+         543      0.00000000
- B_c*-                 383        -543  -1.0      6.60200000      0.000000e+00                     B_c*-        -543      0.00000000
- B_c0*+                607       10541   1.0      7.25000000      0.000000e+00                    B_c0*+       10541      0.00000000
- B_c0*-                608      -10541  -1.0      7.25000000      0.000000e+00                    B_c0*-      -10541      0.00000000
- B_c1(L)+              609       10543   1.0      7.30000000      0.000000e+00                     B_c1+       10543      0.00000000
- B_c1(L)-              610      -10543  -1.0      7.30000000      0.000000e+00                     B_c1-      -10543      0.00000000
- B_c1(H)+              693       20543   1.0      7.40000000      0.000000e+00                    B'_c1+       20543      0.00000000
- B_c1(H)-              694      -20543  -1.0      7.40000000      0.000000e+00                    B'_c1-      -20543      0.00000000
- B_c2*+                384         545   1.0      7.35000000      0.000000e+00                    B_c2*+         545      0.00000000
- B_c2*-                385        -545  -1.0      7.35000000      0.000000e+00                    B_c2*-        -545      0.00000000
- eta_c(1S)             128         441   0.0      2.98360000      2.216203e-23                     eta_c         441      0.00000000
- J/psi(1S)              64         443   0.0      3.09691600      7.085169e-21                     J/psi         443      0.00000000
- chi_c0(1P)            129       10441   0.0      3.41475000      6.328963e-23                    chi_c0       10441      0.00000000
- chi_c1(1P)            130       20443   0.0      3.51066000      7.835857e-22                    chi_c1       20443      0.00000000
+ B_s1(L)~0             215      -10533   0.0      5.82870000      1.316424e-21                anti-B_s10      -10533      0.00000000
+ B*_s20                212         535   0.0      5.83985000      4.477633e-22                    B_s2*0         535      0.00000000
+ B*_s2~0               216        -535   0.0      5.83985000      4.477633e-22               anti-B_s2*0        -535      0.00000000
+ B_c+                   77         541   1.0      6.27447000      5.070971e-13                      B_c+         541      0.00000000
+ B_c-                   78        -541  -1.0      6.27447000      5.070971e-13                      B_c-        -541      0.00000000
+ B_c*+                 382         543   1.0      6.33330000      0.000000e+00                     B_c*+         543      0.00000000
+ B_c*-                 383        -543  -1.0      6.33330000      0.000000e+00                     B_c*-        -543      0.00000000
+ B_c0*+                607       10541   1.0      6.70600000      0.000000e+00                    B_c0*+       10541      0.00000000
+ B_c0*-                608      -10541  -1.0      6.70600000      0.000000e+00                    B_c0*-      -10541      0.00000000
+ B_c1(L)+              609       10543   1.0      6.74100000      0.000000e+00                     B_c1+       10543      0.00000000
+ B_c1(L)-              610      -10543  -1.0      6.74100000      0.000000e+00                     B_c1-      -10543      0.00000000
+ B_c1(H)+              693       20543   1.0      6.75000000      0.000000e+00                    B'_c1+       20543      0.00000000
+ B_c1(H)-              694      -20543  -1.0      6.75000000      0.000000e+00                    B'_c1-      -20543      0.00000000
+ B_c2*+                384         545   1.0      6.76800000      0.000000e+00                    B_c2*+         545      0.00000000
+ B_c2*-                385        -545  -1.0      6.76800000      0.000000e+00                    B_c2*-        -545      0.00000000
+ B_c(2S)+           100541      100541   1.0      6.87210000      0.000000e+00                  B_c(2S)+      100541      0.00000000
+ B_c(2S)-           100542     -100541  -1.0      6.87210000      0.000000e+00                  B_c(2S)-     -100541      0.00000000
+ B_c*(2S)+          100543      100543   1.0      6.90000000      0.000000e+00                 B_c*(2S)+      100543      0.00000000
+ B_c*(2S)-          100544     -100543  -1.0      6.90000000      0.000000e+00                 B_c*(2S)-     -100543      0.00000000
+ eta_c(1S)             128         441   0.0      2.98390000      2.216203e-23                     eta_c         441      0.00000000
+ J/psi(1S)              64         443   0.0      3.09690000      7.085169e-21                     J/psi         443      0.00000000
+ chi_c0(1P)            129       10441   0.0      3.41471000      6.328963e-23                    chi_c0       10441      0.00000000
+ chi_c1(1P)            130       20443   0.0      3.51067000      7.835857e-22                    chi_c1       20443      0.00000000
  h_c(1P)               606       10443   0.0      3.52538000      9.403029e-22                       h_c       10443      0.00000000
- chi_c2(1P)            131         445   0.0      3.55620000      3.410425e-22                    chi_c2         445      0.00000000
- eta_c(2S)             829      100441   0.0      3.63940000      6.582122e-23                 eta_c(2S)      100441      0.00000000
- psi(2S)               126      100443   0.0      3.68610900      2.201378e-21                   psi(2S)      100443      0.00000000
- psi(3770)             765       30443   0.0      3.77315000      2.419898e-23                 psi(3770)       30443      0.00000000
+ chi_c2(1P)            131         445   0.0      3.55617000      3.410425e-22                    chi_c2         445      0.00000000
+ eta_c(2S)             829      100441   0.0      3.63750000      6.582122e-23                 eta_c(2S)      100441      0.00000000
+ psi(2S)               126      100443   0.0      3.68609700      2.238816e-21                   psi(2S)      100443      0.00000000
+ psi(3770)             765       30443   0.0      3.77313000      2.419898e-23                 psi(3770)       30443      0.00000000
  chi_c2(2P)           1031      100445   0.0      3.92720000      2.742551e-23                chi_c2(2P)           0      0.00000000
  psi(4040)             851     9000443   0.0      4.03900000      8.227652e-24                 psi(4040)           0      0.00000000
  psi(4160)             853     9010443   0.0      4.19100000      9.403029e-24                 psi(4160)           0      0.00000000
  psi(4415)             856     9020443   0.0      4.42100000      1.061633e-23                 psi(4415)           0      0.00000000
  X_1(3872)            1016     9920443   0.0      3.87169000      2.076340e-21                 X_1(3872)     9920443      0.00000000
  X_2(3872)            1017     9910445   0.0      3.87169000      2.076340e-21                 X_2(3872)     9910445      0.00000000
- Z(4430)+             1018     9042413   1.0      4.43300000      2.076340e-21                  Z(4430)+     9042413      0.00000000
- Z(4430)-             1019    -9042413  -1.0      4.43300000      2.076340e-21                  Z(4430)-    -9042413      0.00000000
- eta_b(1S)             386         551   0.0      9.40300000      0.000000e+00                     eta_b         551      0.00000000
+ Z(4430)+             1018     9042413   1.0      4.47800000      3.630504e-24                  Z(4430)+     9042413      0.00000000
+ Z(4430)-             1019    -9042413  -1.0      4.47800000      3.630504e-24                  Z(4430)-    -9042413      0.00000000
+ eta_b(1S)             386         551   0.0      9.39870000      6.582120e-23                     eta_b         551      0.00000000
  eta_b(2S)             830      100551   0.0      9.99700000      0.000000e+00                 eta_b(2S)           0      0.00000000
  eta_b(3S)             843      200551   0.0     10.33500000      0.000000e+00                 eta_b(3S)           0      0.00000000
  eta_b2(1D)            613       10555   0.0     10.15700000      0.000000e+00                eta_b2(1D)       10555      0.00000000
@@ -285,13 +289,13 @@ PARTICLE
  Upsilon_3(1D)         389         557   0.0     10.15990000      0.000000e+00             Upsilon_3(1D)         557      0.00000000
  Upsilon_3(2D)         833      100557   0.0     10.44430000      0.000000e+00             Upsilon_3(2D)      100557      0.00000000
  Upsilon(4S)           849      300553   0.0     10.57940000      3.210791e-23               Upsilon(4S)      300553      0.00000000
- Upsilon(10860)        852     9000553   0.0     10.87600000      1.196749e-23               Upsilon(5S)           0      0.00000000
- Upsilon(11020)        854     9010553   0.0     11.01900000      8.331800e-24                   unknown           0      0.00000000
- chi_b0(1P)            611       10551   0.0      9.85944000      0.000000e+00                    chi_b0       10551      0.00000000
+ Upsilon(10860)        852     9000553   0.0     10.88990000      1.290612e-23               Upsilon(5S)           0      0.00000000
+ Upsilon(11020)        854     9010553   0.0     10.99290000      1.343290e-23            Upsilon(11020)           0      0.00000000
+ chi_b0(1P)            611       10551   0.0      9.85940000      0.000000e+00                    chi_b0       10551      0.00000000
  chi_b0(2P)            834      110551   0.0     10.23250000      0.000000e+00                chi_b0(2P)      110551      0.00000000
  chi_b0(3P)            846      210551   0.0     10.50040000      0.000000e+00                chi_b0(3P)      210551      0.00000000
- chi_b1(3P)            848      220553   0.0     10.51570000      0.000000e+00                chi_b1(3P)      220553      0.00000000
- chi_b1(1P)            695       20553   0.0      9.89278000      0.000000e+00                    chi_b1       20553      0.00000000
+ chi_b1(3P)            848      220553   0.0     10.51210000      0.000000e+00                chi_b1(3P)      220553      0.00000000
+ chi_b1(1P)            695       20553   0.0      9.89287800      0.000000e+00                    chi_b1       20553      0.00000000
  chi_b1(2P)            837      120553   0.0     10.25546000      0.000000e+00                chi_b1(2P)      120553      0.00000000
  chi_b2(1P)            388         555   0.0      9.91221000      0.000000e+00                    chi_b2         555      0.00000000
  chi_b2(2P)            832      100555   0.0     10.26865000      0.000000e+00                chi_b2(2P)      100555      0.00000000
@@ -299,38 +303,38 @@ PARTICLE
  h_b(1P)               612       10553   0.0      9.89930000      0.000000e+00                       h_b       10553      0.00000000
  h_b(2P)               835      110553   0.0     10.25500000      0.000000e+00                   h_b(2P)      110553      0.00000000
  h_b(3P)               847      210553   0.0     10.51600000      0.000000e+00                   h_b(3P)      210553      0.00000000
- n0                     13        2112   0.0      0.93956538      8.803000e+02                        n0        2112      0.00000000
- n~0                    25       -2112   0.0      0.93956538      8.803000e+02                   anti-n0       -2112      0.00000000
- p+                     14        2212   1.0      0.93827205      1.000000e+16                        p+        2212      0.00000000
- p~-                    15       -2212  -1.0      0.93827205      1.000000e+16                   anti-p-       -2212      0.00000000
- N(1440)0              624       12112   0.0      1.43000000      2.194041e-24                  N(1440)0           0      0.00000000
- N(1440)~0             625      -12112   0.0      1.43000000      2.194041e-24             anti-N(1440)0           0      0.00000000
- N(1440)+              636       12212   1.0      1.43000000      2.194041e-24                  N(1440)+           0      0.00000000
- N(1440)~-             637      -12212  -1.0      1.43000000      2.194041e-24             anti-N(1440)-           0      0.00000000
- N(1520)0              404        1214   0.0      1.51500000      5.723584e-24                  N(1520)0           0      0.00000000
- N(1520)~0             405       -1214   0.0      1.51500000      5.723584e-24             anti-N(1520)0           0      0.00000000
- N(1520)+              420        2124   1.0      1.51500000      5.723584e-24                  N(1520)+           0      0.00000000
- N(1520)~-             421       -2124  -1.0      1.51500000      5.723584e-24             anti-N(1520)-           0      0.00000000
- N(1535)0              705       22112   0.0      1.53500000      4.388081e-24                  N(1535)0           0      0.00000000
- N(1535)~0             706      -22112   0.0      1.53500000      4.388081e-24             anti-N(1535)0           0      0.00000000
- N(1535)+              713       22212   1.0      1.53500000      4.388081e-24                  N(1535)+           0      0.00000000
- N(1535)~-             714      -22212  -1.0      1.53500000      4.388081e-24             anti-N(1535)-           0      0.00000000
- N(1650)0              771       32112   0.0      1.65500000      4.701514e-24                  N(1650)0           0      0.00000000
- N(1650)~0             772      -32112   0.0      1.65500000      4.701514e-24             anti-N(1650)0           0      0.00000000
- N(1650)+              777       32212   1.0      1.65500000      4.701514e-24                  N(1650)+           0      0.00000000
- N(1650)~-             778      -32212  -1.0      1.65500000      4.701514e-24             anti-N(1650)-           0      0.00000000
- N(1675)0              414        2116   0.0      1.67500000      4.388081e-24                  N(1675)0           0      0.00000000
- N(1675)~0             415       -2116   0.0      1.67500000      4.388081e-24             anti-N(1675)0           0      0.00000000
- N(1675)+              428        2216   1.0      1.67500000      4.388081e-24                  N(1675)+           0      0.00000000
- N(1675)~-             429       -2216  -1.0      1.67500000      4.388081e-24             anti-N(1675)-           0      0.00000000
- N(1680)0              628       12116   0.0      1.68500000      5.063171e-24                  N(1680)0           0      0.00000000
- N(1680)~0             629      -12116   0.0      1.68500000      5.063171e-24             anti-N(1680)0           0      0.00000000
- N(1680)+              640       12216   1.0      1.68500000      5.063171e-24                  N(1680)+           0      0.00000000
- N(1680)~-             641      -12216  -1.0      1.68500000      5.063171e-24             anti-N(1680)-           0      0.00000000
- N(1700)+              711       22124   1.0      1.70000000      4.388081e-24                  N(1700)+           0      0.00000000
- N(1700)~-             712      -22124  -1.0      1.70000000      4.388081e-24             anti-N(1700)-           0      0.00000000
- N(1700)0              703       21214   0.0      1.70000000      4.388081e-24                  N(1700)0           0      0.00000000
- N(1700)~0             704      -21214   0.0      1.70000000      4.388081e-24             anti-N(1700)0           0      0.00000000
+ n0                     13        2112   0.0      0.93956541      8.803000e+02                        n0        2112      0.00000000
+ n~0                    25       -2112   0.0      0.93956541      8.803000e+02                   anti-n0       -2112      0.00000000
+ p+                     14        2212   1.0      0.93827208      1.000000e+16                        p+        2212      0.00000000
+ p~-                    15       -2212  -1.0      0.93827208      1.000000e+16                   anti-p-       -2212      0.00000000
+ N(1440)0              624       12112   0.0      1.44000000      2.194041e-24                  N(1440)0           0      0.00000000
+ N(1440)~0             625      -12112   0.0      1.44000000      2.194041e-24             anti-N(1440)0           0      0.00000000
+ N(1440)+              636       12212   1.0      1.44000000      2.194041e-24                  N(1440)+           0      0.00000000
+ N(1440)~-             637      -12212  -1.0      1.44000000      2.194041e-24             anti-N(1440)-           0      0.00000000
+ N(1520)0              404        1214   0.0      1.51500000      5.983745e-24                  N(1520)0           0      0.00000000
+ N(1520)~0             405       -1214   0.0      1.51500000      5.983745e-24             anti-N(1520)0           0      0.00000000
+ N(1520)+              420        2124   1.0      1.51500000      5.983745e-24                  N(1520)+           0      0.00000000
+ N(1520)~-             421       -2124  -1.0      1.51500000      5.983745e-24             anti-N(1520)-           0      0.00000000
+ N(1535)0              705       22112   0.0      1.53000000      4.388081e-24                  N(1535)0           0      0.00000000
+ N(1535)~0             706      -22112   0.0      1.53000000      4.388081e-24             anti-N(1535)0           0      0.00000000
+ N(1535)+              713       22212   1.0      1.53000000      4.388081e-24                  N(1535)+           0      0.00000000
+ N(1535)~-             714      -22212  -1.0      1.53000000      4.388081e-24             anti-N(1535)-           0      0.00000000
+ N(1650)0              771       32112   0.0      1.65000000      5.265696e-24                  N(1650)0           0      0.00000000
+ N(1650)~0             772      -32112   0.0      1.65000000      5.265696e-24             anti-N(1650)0           0      0.00000000
+ N(1650)+              777       32212   1.0      1.65000000      5.265696e-24                  N(1650)+           0      0.00000000
+ N(1650)~-             778      -32212  -1.0      1.65000000      5.265696e-24             anti-N(1650)-           0      0.00000000
+ N(1675)0              414        2116   0.0      1.67500000      4.539393e-24                  N(1675)0           0      0.00000000
+ N(1675)~0             415       -2116   0.0      1.67500000      4.539393e-24             anti-N(1675)0           0      0.00000000
+ N(1675)+              428        2216   1.0      1.67500000      4.539393e-24                  N(1675)+           0      0.00000000
+ N(1675)~-             429       -2216  -1.0      1.67500000      4.539393e-24             anti-N(1675)-           0      0.00000000
+ N(1680)0              628       12116   0.0      1.68500000      5.485100e-24                  N(1680)0           0      0.00000000
+ N(1680)~0             629      -12116   0.0      1.68500000      5.485100e-24             anti-N(1680)0           0      0.00000000
+ N(1680)+              640       12216   1.0      1.68500000      5.485100e-24                  N(1680)+           0      0.00000000
+ N(1680)~-             641      -12216  -1.0      1.68500000      5.485100e-24             anti-N(1680)-           0      0.00000000
+ N(1700)+              711       22124   1.0      1.72000000      4.388081e-24                  N(1700)+           0      0.00000000
+ N(1700)~-             712      -22124  -1.0      1.72000000      4.388081e-24             anti-N(1700)-           0      0.00000000
+ N(1700)0              703       21214   0.0      1.72000000      4.388081e-24                  N(1700)0           0      0.00000000
+ N(1700)~0             704      -21214   0.0      1.72000000      4.388081e-24             anti-N(1700)0           0      0.00000000
  N(1710)0              791       42112   0.0      1.71000000      6.582122e-24                  N(1710)0           0      0.00000000
  N(1710)~0             792      -42112   0.0      1.71000000      6.582122e-24             anti-N(1710)0           0      0.00000000
  N(1710)+              795       42212   1.0      1.71000000      6.582122e-24                  N(1710)+           0      0.00000000
@@ -339,10 +343,10 @@ PARTICLE
  N(1720)~0             770      -31214   0.0      1.72000000      2.632849e-24             anti-N(1720)0           0      0.00000000
  N(1720)+              775       32124   1.0      1.72000000      2.632849e-24                  N(1720)+           0      0.00000000
  N(1720)~-             776      -32124  -1.0      1.72000000      2.632849e-24             anti-N(1720)-           0      0.00000000
- N(1900)0              789       41214   0.0      1.85000000      0.000000e+00                  N(1900)0           0      0.00000000
- N(1900)~0             790      -41214   0.0      1.85000000      0.000000e+00             anti-N(1900)0           0      0.00000000
- N(1900)+              793       42124   1.0      1.85000000      0.000000e+00                  N(1900)+           0      0.00000000
- N(1900)~-             794      -42124  -1.0      1.85000000      0.000000e+00             anti-N(1900)-           0      0.00000000
+ N(1900)0              789       41214   0.0      1.89500000      5.476011e-24                  N(1900)0           0      0.00000000
+ N(1900)~0             790      -41214   0.0      1.89500000      5.476011e-24             anti-N(1900)0           0      0.00000000
+ N(1900)+              793       42124   1.0      1.89500000      5.476011e-24                  N(1900)+           0      0.00000000
+ N(1900)~-             794      -42124  -1.0      1.89500000      5.476011e-24             anti-N(1900)-           0      0.00000000
  N(1990)0              630       12118   0.0      1.95000000      0.000000e+00                  N(1990)0           0      0.00000000
  N(1990)~0             631      -12118   0.0      1.95000000      0.000000e+00             anti-N(1990)0           0      0.00000000
  N(1990)+              642       12218   1.0      1.95000000      0.000000e+00                  N(1990)+           0      0.00000000
@@ -351,10 +355,10 @@ PARTICLE
  N(2090)~0             800      -52114   0.0      2.00000000      0.000000e+00             anti-N(2090)0           0      0.00000000
  N(2090)+              801       52214   1.0      2.00000000      0.000000e+00                  N(2090)+           0      0.00000000
  N(2090)~-             802      -52214  -1.0      2.00000000      0.000000e+00             anti-N(2090)-           0      0.00000000
- N(2190)0              408        1218   0.0      2.19000000      1.316424e-24                  N(2190)0           0      0.00000000
- N(2190)~0             409       -1218   0.0      2.19000000      1.316424e-24             anti-N(2190)0           0      0.00000000
- N(2190)+              424        2128   1.0      2.19000000      1.316424e-24                  N(2190)+           0      0.00000000
- N(2190)~-             425       -2128  -1.0      2.19000000      1.316424e-24             anti-N(2190)-           0      0.00000000
+ N(2190)0              408        1218   0.0      2.18000000      1.645530e-24                  N(2190)0           0      0.00000000
+ N(2190)~0             409       -1218   0.0      2.18000000      1.645530e-24             anti-N(2190)0           0      0.00000000
+ N(2190)+              424        2128   1.0      2.18000000      1.645530e-24                  N(2190)+           0      0.00000000
+ N(2190)~-             425       -2128  -1.0      2.18000000      1.645530e-24             anti-N(2190)-           0      0.00000000
  Delta-                182        1114  -1.0      1.23200000      5.625745e-24                    Delta-        1114      0.00000000
  Delta~+               186       -1114   1.0      1.23200000      5.625745e-24               anti-Delta+       -1114      0.00000000
  Delta0                181        2114   0.0      1.23200000      5.625745e-24                    Delta0        2114      0.00000000
@@ -363,38 +367,38 @@ PARTICLE
  Delta~-               184       -2214  -1.0      1.23200000      5.625745e-24               anti-Delta-       -2214      0.00000000
  Delta++               179        2224   2.0      1.23200000      5.625745e-24                   Delta++        2224      0.00000000
  Delta~--              183       -2224  -2.0      1.23200000      5.625745e-24              anti-Delta--       -2224      0.00000000
- Delta(1600)-          767       31114  -1.0      1.60000000      2.056913e-24              Delta(1600)-           0      0.00000000
- Delta(1600)~+         768      -31114   1.0      1.60000000      2.056913e-24         anti-Delta(1600)+           0      0.00000000
- Delta(1600)0          773       32114   0.0      1.60000000      2.056913e-24              Delta(1600)0           0      0.00000000
- Delta(1600)~0         774      -32114   0.0      1.60000000      2.056913e-24         anti-Delta(1600)0           0      0.00000000
- Delta(1600)+          779       32214   1.0      1.60000000      2.056913e-24              Delta(1600)+           0      0.00000000
- Delta(1600)~-         780      -32214  -1.0      1.60000000      2.056913e-24         anti-Delta(1600)-           0      0.00000000
- Delta(1600)++         781       32224   2.0      1.60000000      2.056913e-24             Delta(1600)++           0      0.00000000
- Delta(1600)~--        782      -32224  -2.0      1.60000000      2.056913e-24        anti-Delta(1600)--           0      0.00000000
- Delta(1620)-          396        1112  -1.0      1.63000000      4.701516e-24              Delta(1620)-           0      0.00000000
- Delta(1620)~+         397       -1112   1.0      1.63000000      4.701516e-24         anti-Delta(1620)+           0      0.00000000
- Delta(1620)0          402        1212   0.0      1.63000000      4.701516e-24              Delta(1620)0           0      0.00000000
- Delta(1620)~0         403       -1212   0.0      1.63000000      4.701516e-24         anti-Delta(1620)0           0      0.00000000
- Delta(1620)+          418        2122   1.0      1.63000000      4.701516e-24              Delta(1620)+           0      0.00000000
- Delta(1620)~-         419       -2122  -1.0      1.63000000      4.701516e-24         anti-Delta(1620)-           0      0.00000000
- Delta(1620)++         432        2222   2.0      1.63000000      4.701516e-24             Delta(1620)++           0      0.00000000
- Delta(1620)~--        433       -2222  -2.0      1.63000000      4.701516e-24        anti-Delta(1620)--           0      0.00000000
- Delta(1700)-          616       11114  -1.0      1.70000000      2.194041e-24              Delta(1700)-           0      0.00000000
- Delta(1700)~+         617      -11114   1.0      1.70000000      2.194041e-24         anti-Delta(1700)+           0      0.00000000
- Delta(1700)0          626       12114   0.0      1.70000000      2.194041e-24              Delta(1700)0           0      0.00000000
- Delta(1700)~0         627      -12114   0.0      1.70000000      2.194041e-24         anti-Delta(1700)0           0      0.00000000
- Delta(1700)+          638       12214   1.0      1.70000000      2.194041e-24              Delta(1700)+           0      0.00000000
- Delta(1700)~-         639      -12214  -1.0      1.70000000      2.194041e-24         anti-Delta(1700)-           0      0.00000000
- Delta(1700)++         646       12224   2.0      1.70000000      2.194041e-24             Delta(1700)++           0      0.00000000
- Delta(1700)~--        647      -12224  -2.0      1.70000000      2.194041e-24        anti-Delta(1700)--           0      0.00000000
- Delta(1900)-          614       11112  -1.0      1.84000000      0.000000e+00              Delta(1900)-           0      0.00000000
- Delta(1900)~+         615      -11112   1.0      1.84000000      0.000000e+00         anti-Delta(1900)+           0      0.00000000
- Delta(1900)0          620       11212   0.0      1.93000000      1.880606e-24              Delta(1900)0           0      0.00000000
- Delta(1900)~0         621      -11212   0.0      1.93000000      1.880606e-24         anti-Delta(1900)0           0      0.00000000
- Delta(1900)+          632       12122   1.0      1.84000000      0.000000e+00              Delta(1900)+           0      0.00000000
- Delta(1900)~-         633      -12122  -1.0      1.84000000      0.000000e+00         anti-Delta(1900)-           0      0.00000000
- Delta(1900)++         644       12222   2.0      1.84000000      0.000000e+00             Delta(1900)++           0      0.00000000
- Delta(1900)~--        645      -12222  -2.0      1.84000000      0.000000e+00        anti-Delta(1900)--           0      0.00000000
+ Delta(1600)-          767       31114  -1.0      1.57000000      2.632848e-24              Delta(1600)-           0      0.00000000
+ Delta(1600)~+         768      -31114   1.0      1.57000000      2.632848e-24         anti-Delta(1600)+           0      0.00000000
+ Delta(1600)0          773       32114   0.0      1.57000000      2.632848e-24              Delta(1600)0           0      0.00000000
+ Delta(1600)~0         774      -32114   0.0      1.57000000      2.632848e-24         anti-Delta(1600)0           0      0.00000000
+ Delta(1600)+          779       32214   1.0      1.57000000      2.632848e-24              Delta(1600)+           0      0.00000000
+ Delta(1600)~-         780      -32214  -1.0      1.57000000      2.632848e-24         anti-Delta(1600)-           0      0.00000000
+ Delta(1600)++         781       32224   2.0      1.57000000      2.632848e-24             Delta(1600)++           0      0.00000000
+ Delta(1600)~--        782      -32224  -2.0      1.57000000      2.632848e-24        anti-Delta(1600)--           0      0.00000000
+ Delta(1620)-          396        1112  -1.0      1.61000000      5.063169e-24              Delta(1620)-           0      0.00000000
+ Delta(1620)~+         397       -1112   1.0      1.61000000      5.063169e-24         anti-Delta(1620)+           0      0.00000000
+ Delta(1620)0          402        1212   0.0      1.61000000      5.063169e-24              Delta(1620)0           0      0.00000000
+ Delta(1620)~0         403       -1212   0.0      1.61000000      5.063169e-24         anti-Delta(1620)0           0      0.00000000
+ Delta(1620)+          418        2122   1.0      1.61000000      5.063169e-24              Delta(1620)+           0      0.00000000
+ Delta(1620)~-         419       -2122  -1.0      1.61000000      5.063169e-24         anti-Delta(1620)-           0      0.00000000
+ Delta(1620)++         432        2222   2.0      1.61000000      5.063169e-24             Delta(1620)++           0      0.00000000
+ Delta(1620)~--        433       -2222  -2.0      1.61000000      5.063169e-24        anti-Delta(1620)--           0      0.00000000
+ Delta(1700)-          616       11114  -1.0      1.71000000      2.194041e-24              Delta(1700)-           0      0.00000000
+ Delta(1700)~+         617      -11114   1.0      1.71000000      2.194041e-24         anti-Delta(1700)+           0      0.00000000
+ Delta(1700)0          626       12114   0.0      1.71000000      2.194041e-24              Delta(1700)0           0      0.00000000
+ Delta(1700)~0         627      -12114   0.0      1.71000000      2.194041e-24         anti-Delta(1700)0           0      0.00000000
+ Delta(1700)+          638       12214   1.0      1.71000000      2.194041e-24              Delta(1700)+           0      0.00000000
+ Delta(1700)~-         639      -12214  -1.0      1.71000000      2.194041e-24         anti-Delta(1700)-           0      0.00000000
+ Delta(1700)++         646       12224   2.0      1.71000000      2.194041e-24             Delta(1700)++           0      0.00000000
+ Delta(1700)~--        647      -12224  -2.0      1.71000000      2.194041e-24        anti-Delta(1700)--           0      0.00000000
+ Delta(1900)-          614       11112  -1.0      1.86000000      2.632848e-24              Delta(1900)-           0      0.00000000
+ Delta(1900)~+         615      -11112   1.0      1.86000000      2.632848e-24         anti-Delta(1900)+           0      0.00000000
+ Delta(1900)0          620       11212   0.0      1.86000000      2.632848e-24              Delta(1900)0           0      0.00000000
+ Delta(1900)~0         621      -11212   0.0      1.86000000      2.632848e-24         anti-Delta(1900)0           0      0.00000000
+ Delta(1900)+          632       12122   1.0      1.86000000      2.632848e-24              Delta(1900)+           0      0.00000000
+ Delta(1900)~-         633      -12122  -1.0      1.86000000      2.632848e-24         anti-Delta(1900)-           0      0.00000000
+ Delta(1900)++         644       12222   2.0      1.86000000      2.632848e-24             Delta(1900)++           0      0.00000000
+ Delta(1900)~--        645      -12222  -2.0      1.86000000      2.632848e-24        anti-Delta(1900)--           0      0.00000000
  Delta(1905)-          398        1116  -1.0      1.88000000      1.994582e-24              Delta(1905)-           0      0.00000000
  Delta(1905)~+         399       -1116   1.0      1.88000000      1.994582e-24         anti-Delta(1905)+           0      0.00000000
  Delta(1905)0          406        1216   0.0      1.88000000      1.994582e-24              Delta(1905)0           0      0.00000000
@@ -403,14 +407,14 @@ PARTICLE
  Delta(1905)~-         423       -2126  -1.0      1.88000000      1.994582e-24         anti-Delta(1905)-           0      0.00000000
  Delta(1905)++         434        2226   2.0      1.88000000      1.994582e-24             Delta(1905)++           0      0.00000000
  Delta(1905)~--        435       -2226  -2.0      1.88000000      1.994582e-24        anti-Delta(1905)--           0      0.00000000
- Delta(1910)-          697       21112  -1.0      1.89000000      2.350758e-24              Delta(1910)-           0      0.00000000
- Delta(1910)~+         698      -21112   1.0      1.89000000      2.350758e-24         anti-Delta(1910)+           0      0.00000000
- Delta(1910)0          701       21212   0.0      1.89000000      2.350758e-24              Delta(1910)0           0      0.00000000
- Delta(1910)~0         702      -21212   0.0      1.89000000      2.350758e-24         anti-Delta(1910)0           0      0.00000000
- Delta(1910)+          709       22122   1.0      1.89000000      2.350758e-24              Delta(1910)+           0      0.00000000
- Delta(1910)~-         710      -22122  -1.0      1.89000000      2.350758e-24         anti-Delta(1910)-           0      0.00000000
- Delta(1910)++         717       22222   2.0      1.89000000      2.350758e-24             Delta(1910)++           0      0.00000000
- Delta(1910)~--        718      -22222  -2.0      1.89000000      2.350758e-24        anti-Delta(1910)--           0      0.00000000
+ Delta(1910)-          697       21112  -1.0      1.90000000      2.350758e-24              Delta(1910)-           0      0.00000000
+ Delta(1910)~+         698      -21112   1.0      1.90000000      2.350758e-24         anti-Delta(1910)+           0      0.00000000
+ Delta(1910)0          701       21212   0.0      1.90000000      2.350758e-24              Delta(1910)0           0      0.00000000
+ Delta(1910)~0         702      -21212   0.0      1.90000000      2.350758e-24         anti-Delta(1910)0           0      0.00000000
+ Delta(1910)+          709       22122   1.0      1.90000000      2.350758e-24              Delta(1910)+           0      0.00000000
+ Delta(1910)~-         710      -22122  -1.0      1.90000000      2.350758e-24         anti-Delta(1910)-           0      0.00000000
+ Delta(1910)++         717       22222   2.0      1.90000000      2.350758e-24             Delta(1910)++           0      0.00000000
+ Delta(1910)~--        718      -22222  -2.0      1.90000000      2.350758e-24        anti-Delta(1910)--           0      0.00000000
  Delta(1920)-          699       21114  -1.0      1.92000000      2.531585e-24              Delta(1920)-           0      0.00000000
  Delta(1920)~+         700      -21114   1.0      1.92000000      2.531585e-24         anti-Delta(1920)+           0      0.00000000
  Delta(1920)0          707       22114   0.0      1.92000000      2.531585e-24              Delta(1920)0           0      0.00000000
@@ -419,14 +423,14 @@ PARTICLE
  Delta(1920)~-         716      -22214  -1.0      1.92000000      2.531585e-24         anti-Delta(1920)-           0      0.00000000
  Delta(1920)++         719       22224   2.0      1.92000000      2.531585e-24             Delta(1920)++           0      0.00000000
  Delta(1920)~--        720      -22224  -2.0      1.92000000      2.531585e-24        anti-Delta(1920)--           0      0.00000000
- Delta(1930)-          618       11116  -1.0      1.95000000      1.828367e-24              Delta(1930)-           0      0.00000000
- Delta(1930)~+         619      -11116   1.0      1.95000000      1.828367e-24         anti-Delta(1930)+           0      0.00000000
- Delta(1930)0          622       11216   0.0      1.95000000      1.828367e-24              Delta(1930)0           0      0.00000000
- Delta(1930)~0         623      -11216   0.0      1.95000000      1.828367e-24         anti-Delta(1930)0           0      0.00000000
- Delta(1930)+          634       12126   1.0      1.95000000      1.828367e-24              Delta(1930)+           0      0.00000000
- Delta(1930)~-         635      -12126  -1.0      1.95000000      1.828367e-24         anti-Delta(1930)-           0      0.00000000
- Delta(1930)++         648       12226   2.0      1.95000000      1.828367e-24             Delta(1930)++           0      0.00000000
- Delta(1930)~--        649      -12226  -2.0      1.95000000      1.828367e-24        anti-Delta(1930)--           0      0.00000000
+ Delta(1930)-          618       11116  -1.0      1.95000000      2.194040e-24              Delta(1930)-           0      0.00000000
+ Delta(1930)~+         619      -11116   1.0      1.95000000      2.194040e-24         anti-Delta(1930)+           0      0.00000000
+ Delta(1930)0          622       11216   0.0      1.95000000      2.194040e-24              Delta(1930)0           0      0.00000000
+ Delta(1930)~0         623      -11216   0.0      1.95000000      2.194040e-24         anti-Delta(1930)0           0      0.00000000
+ Delta(1930)+          634       12126   1.0      1.95000000      2.194040e-24              Delta(1930)+           0      0.00000000
+ Delta(1930)~-         635      -12126  -1.0      1.95000000      2.194040e-24         anti-Delta(1930)-           0      0.00000000
+ Delta(1930)++         648       12226   2.0      1.95000000      2.194040e-24             Delta(1930)++           0      0.00000000
+ Delta(1930)~--        649      -12226  -2.0      1.95000000      2.194040e-24        anti-Delta(1930)--           0      0.00000000
  Delta(1950)-          400        1118  -1.0      1.93000000      2.350758e-24              Delta(1950)-           0      0.00000000
  Delta(1950)~+         401       -1118   1.0      1.93000000      2.350758e-24         anti-Delta(1950)+           0      0.00000000
  Delta(1950)0          416        2118   0.0      1.93000000      2.350758e-24              Delta(1950)0           0      0.00000000
@@ -457,16 +461,16 @@ PARTICLE
  Lambda(1830)~0        661      -13126   0.0      1.83000000      6.928549e-24        anti-Lambda(1830)0           0      0.00000000
  Lambda(1890)0         727       23124   0.0      1.89000000      6.582122e-24             Lambda(1890)0           0      0.00000000
  Lambda(1890)~0        728      -23124   0.0      1.89000000      6.582122e-24        anti-Lambda(1890)0           0      0.00000000
- Lambda(2100)0         452        3128   0.0      2.10000000      3.291061e-24                   unknown           0      0.00000000
- Lambda(2100)~0        453       -3128   0.0      2.10000000      3.291061e-24                   unknown           0      0.00000000
- Lambda(2110)0         729       23126   0.0      2.11000000      3.291061e-24                   unknown           0      0.00000000
- Lambda(2110)~0        730      -23126   0.0      2.11000000      3.291061e-24                   unknown           0      0.00000000
- Sigma-                 21        3112  -1.0      1.19744900      1.479000e-10                    Sigma-        3112      0.00000000
- Sigma~+                29       -3112   1.0      1.19744900      1.479000e-10               anti-Sigma+       -3112      0.00000000
+ Lambda(2100)0         452        3128   0.0      2.10000000      3.291061e-24             Lambda(2100)0           0      0.00000000
+ Lambda(2100)~0        453       -3128   0.0      2.10000000      3.291061e-24        anti-Lambda(2100)0           0      0.00000000
+ Lambda(2110)0         729       23126   0.0      2.11000000      3.291061e-24             Lambda(2110)0           0      0.00000000
+ Lambda(2110)~0        730      -23126   0.0      2.11000000      3.291061e-24        anti-Lambda(2110)0           0      0.00000000
+ Sigma-                 21        3112  -1.0      1.19744900      1.479128e-10                    Sigma-        3112      0.00000000
+ Sigma~+                29       -3112   1.0      1.19744900      1.479128e-10               anti-Sigma+       -3112      0.00000000
  Sigma0                 20        3212   0.0      1.19264200      7.400000e-20                    Sigma0        3212      0.00000000
  Sigma~0                28       -3212   0.0      1.19264200      7.400000e-20               anti-Sigma0       -3212      0.00000000
- Sigma+                 19        3222   1.0      1.18937000      8.018000e-11                    Sigma+        3222      0.00000000
- Sigma~-                27       -3222  -1.0      1.18937000      8.018000e-11               anti-Sigma-       -3222      0.00000000
+ Sigma+                 19        3222   1.0      1.18937000      8.018175e-11                    Sigma+        3222      0.00000000
+ Sigma~-                27       -3222  -1.0      1.18937000      8.018175e-11               anti-Sigma-       -3222      0.00000000
  Sigma*-               442        3114  -1.0      1.38720000      1.670589e-23                   Sigma*-        3114      0.00000000
  Sigma*~+              443       -3114   1.0      1.38720000      1.670589e-23              anti-Sigma*+       -3114      0.00000000
  Sigma*0               458        3214   0.0      1.38370000      1.828367e-23                   Sigma*0        3214      0.00000000
@@ -509,12 +513,12 @@ PARTICLE
  Sigma(1940)~0         734      -23214   0.0      1.94000000      2.991874e-24         anti-Sigma(1940)0           0      0.00000000
  Sigma(1940)+          737       23224   1.0      1.94000000      2.991874e-24              Sigma(1940)+           0      0.00000000
  Sigma(1940)~-         738      -23224  -1.0      1.94000000      2.991874e-24         anti-Sigma(1940)-           0      0.00000000
- Sigma(2030)0          462        3218   0.0      2.03000000      3.656734e-24                   unknown           0      0.00000000
- Sigma(2030)~0         463       -3218   0.0      2.03000000      3.656734e-24                   unknown           0      0.00000000
- Sigma(2030)+          468        3228   1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000
- Sigma(2030)~-         469       -3228  -1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000
- Sigma(2030)-          446        3118  -1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000
- Sigma(2030)~+         447       -3118   1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000
+ Sigma(2030)0          462        3218   0.0      2.03000000      3.656734e-24              Sigma(2030)0           0      0.00000000
+ Sigma(2030)~0         463       -3218   0.0      2.03000000      3.656734e-24         anti-Sigma(2030)0           0      0.00000000
+ Sigma(2030)+          468        3228   1.0      2.03000000      3.656734e-24              Sigma(2030)+           0      0.00000000
+ Sigma(2030)~-         469       -3228  -1.0      2.03000000      3.656734e-24         anti-Sigma(2030)-           0      0.00000000
+ Sigma(2030)-          446        3118  -1.0      2.03000000      3.656734e-24              Sigma(2030)-           0      0.00000000
+ Sigma(2030)~+         447       -3118   1.0      2.03000000      3.656734e-24         anti-Sigma(2030)+           0      0.00000000
  Sigma(2250)0         1059      103212   0.0      2.25000000      6.580000e-24              Sigma(2250)0           0      0.00000000
  Sigma(2250)~0        1060     -103212   0.0      2.25000000      6.580000e-24         anti-Sigma(2250)0           0      0.00000000
  Sigma(2250)+         1061      103222   1.0      2.25000000      6.580000e-24              Sigma(2250)+           0      0.00000000
@@ -533,10 +537,10 @@ PARTICLE
  Xi(1690)~+           1034     -203312   1.0      1.69000000      0.000000e+00            anti-Xi(1690)+           0      0.00000000
  Xi(1690)0            1035      203322   0.0      1.69000000      0.000000e+00                 Xi(1690)0           0      0.00000000
  Xi(1690)~0           1036     -203322   0.0      1.69000000      0.000000e+00            anti-Xi(1690)0           0      0.00000000
- Xi(1820)-             674       13314  -1.0      1.82300000      2.742551e-23                   unknown           0      0.00000000
- Xi(1820)~+            675      -13314   1.0      1.82300000      2.742551e-23                   unknown           0      0.00000000
- Xi(1820)0             678       13324   0.0      1.82300000      2.742551e-23                   unknown           0      0.00000000
- Xi(1820)~0            679      -13324   0.0      1.82300000      2.742551e-23                   unknown           0      0.00000000
+ Xi(1820)-             674       13314  -1.0      1.82300000      2.742551e-23                 Xi(1820)-           0      0.00000000
+ Xi(1820)~+            675      -13314   1.0      1.82300000      2.742551e-23            anti-Xi(1820)+           0      0.00000000
+ Xi(1820)0             678       13324   0.0      1.82300000      2.742551e-23                 Xi(1820)0           0      0.00000000
+ Xi(1820)~0            679      -13324   0.0      1.82300000      2.742551e-23            anti-Xi(1820)0           0      0.00000000
  Xi(1950)-            1037      103316  -1.0      1.95000000      1.097020e-23                 Xi(1950)-           0      0.00000000
  Xi(1950)~+           1038     -103316   1.0      1.95000000      1.097020e-23            anti-Xi(1950)+           0      0.00000000
  Xi(1950)0            1039      103326   0.0      1.95000000      1.097020e-23                 Xi(1950)0           0      0.00000000
@@ -555,80 +559,80 @@ PARTICLE
  Lambda_c(2595)~-      683      -14122  -1.0      2.59225000      2.531585e-22      anti-Lambda_c(2593)-           0      0.00000000
  Lambda_c(2625)+      1047      104124   1.0      2.62811000      0.000000e+00           Lambda_c(2625)+           0      0.00000000
  Lambda_c(2625)~-     1048     -104124  -1.0      2.62811000      0.000000e+00      anti-Lambda_c(2625)-           0      0.00000000
- Lambda_c(2880)+      1049      204126   1.0      2.88153000      1.134849e-22           Lambda_c(2880)+           0      0.00000000
- Lambda_c(2880)~-     1050     -204126  -1.0      2.88153000      1.134849e-22      anti-Lambda_c(2880)-           0      0.00000000
- Sigma_c0               81        4112   0.0      2.45374000      3.047279e-22                  Sigma_c0        4112      0.00000000
- Sigma_c~0              82       -4112   0.0      2.45374000      3.047279e-22             anti-Sigma_c0       -4112      0.00000000
+ Lambda_c(2880)+      1049      204126   1.0      2.88163000      1.175379e-22           Lambda_c(2880)+           0      0.00000000
+ Lambda_c(2880)~-     1050     -204126  -1.0      2.88163000      1.175379e-22      anti-Lambda_c(2880)-           0      0.00000000
+ Sigma_c0               81        4112   0.0      2.45375000      3.596787e-22                  Sigma_c0        4112      0.00000000
+ Sigma_c~0              82       -4112   0.0      2.45375000      3.596787e-22             anti-Sigma_c0       -4112      0.00000000
  Sigma_c+               83        4212   1.0      2.45290000      3.999999e-22                  Sigma_c+        4212      0.00000000
  Sigma_c~-              84       -4212  -1.0      2.45290000      3.999999e-22             anti-Sigma_c-       -4212      0.00000000
- Sigma_c++              85        4222   2.0      2.45398000      2.912443e-22                 Sigma_c++        4222      0.00000000
- Sigma_c~--             86       -4222  -2.0      2.45398000      2.912443e-22            anti-Sigma_c--       -4222      0.00000000
- Sigma_c*0             480        4114   0.0      2.51880000      4.539394e-23                 Sigma_c*0        4114      0.00000000
- Sigma_c*~0            481       -4114   0.0      2.51880000      4.539394e-23            anti-Sigma_c*0       -4114      0.00000000
+ Sigma_c++              85        4222   2.0      2.45397000      3.482603e-22                 Sigma_c++        4222      0.00000000
+ Sigma_c~--             86       -4222  -2.0      2.45397000      3.482603e-22            anti-Sigma_c--       -4222      0.00000000
+ Sigma_c*0             480        4114   0.0      2.51848000      4.539394e-23                 Sigma_c*0        4114      0.00000000
+ Sigma_c*~0            481       -4114   0.0      2.51848000      4.539394e-23            anti-Sigma_c*0       -4114      0.00000000
  Sigma_c*+             486        4214   1.0      2.51750000      3.291061e-22                 Sigma_c*+        4214      0.00000000
  Sigma_c*~-            487       -4214  -1.0      2.51750000      3.291061e-22            anti-Sigma_c*-       -4214      0.00000000
- Sigma_c*++            488        4224   2.0      2.51790000      4.417531e-23                Sigma_c*++        4224      0.00000000
- Sigma_c*~--           489       -4224  -2.0      2.51790000      4.417531e-23           anti-Sigma_c*--       -4224      0.00000000
- Xi_c0                 106        4132   0.0      2.47088000      1.120000e-13                     Xi_c0        4132      0.00000000
- Xi_c~0                107       -4132   0.0      2.47088000      1.120000e-13                anti-Xi_c0       -4132      0.00000000
- Xi_c+                 108        4232   1.0      2.46780000      4.420000e-13                     Xi_c+        4232      0.00000000
- Xi_c~-                109       -4232  -1.0      2.46780000      4.420000e-13                anti-Xi_c-       -4232      0.00000000
- Xi'_c0                100        4312   0.0      2.57790000      0.000000e+00                    Xi'_c0        4312      0.00000000
- Xi'_c~0               101       -4312   0.0      2.57790000      0.000000e+00               anti-Xi'_c0       -4312      0.00000000
- Xi'_c+                102        4322   1.0      2.57560000      0.000000e+00                    Xi'_c+        4322      0.00000000
- Xi'_c~-               103       -4322  -1.0      2.57560000      0.000000e+00               anti-Xi'_c-       -4322      0.00000000
- Xi_c*0                494        4314   0.0      2.64590000      0.000000e+00                    Xi_c*0        4314      0.00000000
- Xi_c*~0               495       -4314   0.0      2.64590000      0.000000e+00               anti-Xi_c*0       -4314      0.00000000
- Xi_c*+                496        4324   1.0      2.64590000      0.000000e+00                    Xi_c*+        4324      0.00000000
- Xi_c*~-               497       -4324  -1.0      2.64590000      0.000000e+00               anti-Xi_c*-       -4324      0.00000000
- Xi_c(2790)+          1051      104324   1.0      2.78910000      0.000000e+00               Xi_c(2790)+           0      0.00000000
- Xi_c(2790)~-         1052     -104324  -1.0      2.78910000      0.000000e+00          anti-Xi_c(2790)-           0      0.00000000
- Xi_c(2790)0          1053      104314   0.0      2.79180000      0.000000e+00               Xi_c(2790)0           0      0.00000000
- Xi_c(2790)~0         1054     -104314   0.0      2.79180000      0.000000e+00          anti-Xi_c(2790)0           0      0.00000000
- Xi_c(2815)+          1055      104322   1.0      2.81660000      0.000000e+00               Xi_c(2815)+           0      0.00000000
- Xi_c(2815)~-         1056     -104322  -1.0      2.81660000      0.000000e+00          anti-Xi_c(2815)-           0      0.00000000
- Xi_c(2815)0          1057      104312   0.0      2.81960000      0.000000e+00               Xi_c(2815)0           0      0.00000000
- Xi_c(2815)~0         1058     -104312   0.0      2.81960000      0.000000e+00          anti-Xi_c(2815)0           0      0.00000000
- Omega_c0              104        4332   0.0      2.69520000      6.900000e-14                  Omega_c0        4332      0.00000000
- Omega_c~0             105       -4332   0.0      2.69520000      6.900000e-14             anti-Omega_c0       -4332      0.00000000
+ Sigma_c*++            488        4224   2.0      2.51841000      4.453396e-23                Sigma_c*++        4224      0.00000000
+ Sigma_c*~--           489       -4224  -2.0      2.51841000      4.453396e-23           anti-Sigma_c*--       -4224      0.00000000
+ Xi_c0                 106        4132   0.0      2.47091000      1.530726e-13                     Xi_c0        4132      0.00000000
+ Xi_c~0                107       -4132   0.0      2.47091000      1.530726e-13                anti-Xi_c0       -4132      0.00000000
+ Xi_c+                 108        4232   1.0      2.46793000      4.420000e-13                     Xi_c+        4232      0.00000000
+ Xi_c~-                109       -4232  -1.0      2.46793000      4.420000e-13                anti-Xi_c-       -4232      0.00000000
+ Xi'_c0                100        4312   0.0      2.57920000      0.000000e+00                    Xi'_c0        4312      0.00000000
+ Xi'_c~0               101       -4312   0.0      2.57920000      0.000000e+00               anti-Xi'_c0       -4312      0.00000000
+ Xi'_c+                102        4322   1.0      2.57840000      0.000000e+00                    Xi'_c+        4322      0.00000000
+ Xi'_c~-               103       -4322  -1.0      2.57840000      0.000000e+00               anti-Xi'_c-       -4322      0.00000000
+ Xi_c*0                494        4314   0.0      2.64638000      2.800902e-22                    Xi_c*0        4314      0.00000000
+ Xi_c*~0               495       -4314   0.0      2.64638000      2.800902e-22               anti-Xi_c*0       -4314      0.00000000
+ Xi_c*+                496        4324   1.0      2.64557000      3.075757e-22                    Xi_c*+        4324      0.00000000
+ Xi_c*~-               497       -4324  -1.0      2.64557000      3.075757e-22               anti-Xi_c*-       -4324      0.00000000
+ Xi_c(2790)+          1051      104324   1.0      2.79240000      7.395640e-23               Xi_c(2790)+           0      0.00000000
+ Xi_c(2790)~-         1052     -104324  -1.0      2.79240000      7.395640e-23          anti-Xi_c(2790)-           0      0.00000000
+ Xi_c(2790)0          1053      104314   0.0      2.79410000      6.582120e-23               Xi_c(2790)0           0      0.00000000
+ Xi_c(2790)~0         1054     -104314   0.0      2.79410000      6.582120e-23          anti-Xi_c(2790)0           0      0.00000000
+ Xi_c(2815)+          1055      104322   1.0      2.81673000      2.708691e-22               Xi_c(2815)+           0      0.00000000
+ Xi_c(2815)~-         1056     -104322  -1.0      2.81673000      2.708691e-22          anti-Xi_c(2815)-           0      0.00000000
+ Xi_c(2815)0          1057      104312   0.0      2.82026000      2.591386e-22               Xi_c(2815)0           0      0.00000000
+ Xi_c(2815)~0         1058     -104312   0.0      2.82026000      2.591386e-22          anti-Xi_c(2815)0           0      0.00000000
+ Omega_c0              104        4332   0.0      2.69520000      2.680000e-13                  Omega_c0        4332      0.00000000
+ Omega_c~0             105       -4332   0.0      2.69520000      2.680000e-13             anti-Omega_c0       -4332      0.00000000
  Omega_c*0             498        4334   0.0      2.76590000      0.000000e+00                 Omega_c*0        4334      0.00000000
  Omega_c*~0            499       -4334   0.0      2.76590000      0.000000e+00            anti-Omega_c*0       -4334      0.00000000
- Xi_cc+                502        4412   1.0      3.62140000      3.335641e-13                    Xi_cc+        4412      0.00000000
- Xi_cc~-               503       -4412  -1.0      3.62140000      3.335641e-13               anti-Xi_cc-       -4412      0.00000000
+ Xi_cc+                502        4412   1.0      3.62140000      0.800000e-13                    Xi_cc+        4412      0.00000000
+ Xi_cc~-               503       -4412  -1.0      3.62140000      0.800000e-13               anti-Xi_cc-       -4412      0.00000000
  Xi*_cc+               504        4414   1.0      3.65648000      0.000000e+00                   Xi_cc*+        4414      0.00000000
  Xi*_cc~-              505       -4414  -1.0      3.65648000      0.000000e+00              anti-Xi_cc*-       -4414      0.00000000
- Xi_cc++               506        4422   2.0      3.62140000      3.335641e-13                   Xi_cc++        4422      0.00000000
- Xi_cc~--              507       -4422  -2.0      3.62140000      3.335641e-13              anti-Xi_cc--       -4422      0.00000000
+ Xi_cc++               506        4422   2.0      3.62140000      2.560000e-13                   Xi_cc++        4422      0.00000000
+ Xi_cc~--              507       -4422  -2.0      3.62140000      2.560000e-13              anti-Xi_cc--       -4422      0.00000000
  Xi*_cc++              508        4424   2.0      3.65648000      0.000000e+00                  Xi_cc*++        4424      0.00000000
  Xi*_cc~--             509       -4424  -2.0      3.65648000      0.000000e+00             anti-Xi_cc*--       -4424      0.00000000
- Omega_cc+             510        4432   1.0      3.78663000      3.335641e-13                 Omega_cc+        4432      0.00000000
- Omega_cc~-            511       -4432  -1.0      3.78663000      3.335641e-13            anti-Omega_cc-       -4432      0.00000000
+ Omega_cc+             510        4432   1.0      3.73800000      1.600000e-13                 Omega_cc+        4432      0.00000000
+ Omega_cc~-            511       -4432  -1.0      3.73800000      1.600000e-13            anti-Omega_cc-       -4432      0.00000000
  Omega*_cc+            512        4434   1.0      3.82466000      0.000000e+00                Omega_cc*+        4434      0.00000000
  Omega*_cc~-           513       -4434  -1.0      3.82466000      0.000000e+00           anti-Omega_cc*-       -4434      0.00000000
- Omega*_ccc++          514        4444   2.0      4.91594000      0.000000e+00                   unknown        4444      0.00000000
- Omega*_ccc~--         515       -4444  -2.0      4.91594000      0.000000e+00                   unknown       -4444      0.00000000
- Lambda_b0              79        5122   0.0      5.61950000      1.451000e-12                 Lambda_b0        5122      0.00000000
- Lambda_b~0             80       -5122   0.0      5.61950000      1.451000e-12            anti-Lambda_b0       -5122      0.00000000
- Lambda_b(5912)0      1065       15122   0.0      5.91197000      1.316000e-21           Lambda_b(5912)0       15122      0.00000000
- Lambda_b(5912)~0     1066      -15122   0.0      5.91197000      1.316000e-21      anti-Lambda_b(5912)0      -15122      0.00000000
- Lambda_b(5920)0      1067        5124   0.0      5.91977000      1.316000e-21           Lambda_b(5920)0        5124      0.00000000
- Lambda_b(5920)~0     1068       -5124   0.0      5.91977000      1.316000e-21      anti-Lambda_b(5920)0       -5124      0.00000000
- Sigma_b-              114        5112  -1.0      5.81550000      1.343290e-22                  Sigma_b-        5112      0.00000000
- Sigma_b~+             115       -5112   1.0      5.81550000      1.343290e-22             anti-Sigma_b+       -5112      0.00000000
+ Omega*_ccc++          514        4444   2.0      4.91594000      0.000000e+00              Omega*_ccc++        4444      0.00000000
+ Omega*_ccc~--         515       -4444  -2.0      4.91594000      0.000000e+00         anti-Omega*_ccc--       -4444      0.00000000
+ Lambda_b0              79        5122   0.0      5.61960000      1.470865e-12                 Lambda_b0        5122      0.00000000
+ Lambda_b~0             80       -5122   0.0      5.61960000      1.470865e-12            anti-Lambda_b0       -5122      0.00000000
+ Lambda_b(5912)0      1065       15122   0.0      5.91220000      1.316000e-21           Lambda_b(5912)0       15122      0.00000000
+ Lambda_b(5912)~0     1066      -15122   0.0      5.91220000      1.316000e-21      anti-Lambda_b(5912)0      -15122      0.00000000
+ Lambda_b(5920)0      1067        5124   0.0      5.91992000      1.316000e-21           Lambda_b(5920)0        5124      0.00000000
+ Lambda_b(5920)~0     1068       -5124   0.0      5.91992000      1.316000e-21      anti-Lambda_b(5920)0       -5124      0.00000000
+ Sigma_b-              114        5112  -1.0      5.81564000      1.343290e-22                  Sigma_b-        5112      0.00000000
+ Sigma_b~+             115       -5112   1.0      5.81564000      1.343290e-22             anti-Sigma_b+       -5112      0.00000000
  Sigma_b0              112        5212   0.0      5.80780000      1.000000e-19                  Sigma_b0        5212      0.00000000
  Sigma_b~0             113       -5212   0.0      5.80780000      1.000000e-19             anti-Sigma_b0       -5212      0.00000000
- Sigma_b+              110        5222   1.0      5.81130000      6.785693e-23                  Sigma_b+        5222      0.00000000
- Sigma_b~-             111       -5222  -1.0      5.81130000      6.785693e-23             anti-Sigma_b-       -5222      0.00000000
- Sigma_b*-             520        5114  -1.0      5.83510000      8.776160e-23                 Sigma_b*-        5114      0.00000000
- Sigma_b*~+            521       -5114   1.0      5.83510000      8.776160e-23            anti-Sigma_b*+       -5114      0.00000000
+ Sigma_b+              110        5222   1.0      5.81056000      1.316424e-22                  Sigma_b+        5222      0.00000000
+ Sigma_b~-             111       -5222  -1.0      5.81056000      1.316424e-22             anti-Sigma_b-       -5222      0.00000000
+ Sigma_b*-             520        5114  -1.0      5.83474000      8.776160e-23                 Sigma_b*-        5114      0.00000000
+ Sigma_b*~+            521       -5114   1.0      5.83474000      8.776160e-23            anti-Sigma_b*+       -5114      0.00000000
  Sigma_b*0             528        5214   0.0      5.82900000      0.000000e+00                 Sigma_b*0        5214      0.00000000
  Sigma_b*~0            529       -5214   0.0      5.82900000      0.000000e+00            anti-Sigma_b*0       -5214      0.00000000
- Sigma_b*+             530        5224   1.0      5.83210000      5.723583e-23                 Sigma_b*+        5224      0.00000000
- Sigma_b*~-            531       -5224  -1.0      5.83210000      5.723583e-23            anti-Sigma_b*-       -5224      0.00000000
- Xi_b-                 122        5132  -1.0      5.79490000      1.560000e-12                     Xi_b-        5132      0.00000000
- Xi_b~+                123       -5132   1.0      5.79490000      1.560000e-12                anti-Xi_b+       -5132      0.00000000
- Xi_b0                 124        5232   0.0      5.79310000      1.490000e-12                     Xi_b0        5232      0.00000000
- Xi_b~0                125       -5232   0.0      5.79310000      1.490000e-12                anti-Xi_b0       -5232      0.00000000
+ Sigma_b*+             530        5224   1.0      5.83032000      7.002255e-23                 Sigma_b*+        5224      0.00000000
+ Sigma_b*~-            531       -5224  -1.0      5.83032000      7.002255e-23            anti-Sigma_b*-       -5224      0.00000000
+ Xi_b-                 122        5132  -1.0      5.79700000      1.570912e-12                     Xi_b-        5132      0.00000000
+ Xi_b~+                123       -5132   1.0      5.79700000      1.570912e-12                anti-Xi_b+       -5132      0.00000000
+ Xi_b0                 124        5232   0.0      5.79190000      1.490000e-12                     Xi_b0        5232      0.00000000
+ Xi_b~0                125       -5232   0.0      5.79190000      1.490000e-12                anti-Xi_b0       -5232      0.00000000
  Xi'_b-                116        5312  -1.0      5.96000000      1.000000e-19                    Xi'_b-        5312      0.00000000
  Xi'_b~+               117       -5312   1.0      5.96000000      1.000000e-19               anti-Xi'_b+       -5312      0.00000000
  Xi'_b0                118        5322   0.0      5.96000000      1.000000e-19                    Xi'_b0        5322      0.00000000
@@ -639,54 +643,54 @@ PARTICLE
  Xi_b*~0               541       -5324   0.0      5.97000000      0.000000e+00               anti-Xi_b*0       -5324      0.00000000
  Omega_b*-             542        5334  -1.0      6.13000000      0.000000e+00                 Omega_b*-        5334      0.00000000
  Omega_b*~+            543       -5334   1.0      6.13000000      0.000000e+00            anti-Omega_b*+       -5334      0.00000000
- Omega_b-              120        5332  -1.0      6.04880000      1.100000e-12                  Omega_b-        5332      0.00000000
- Omega_b~+             121       -5332   1.0      6.04880000      1.100000e-12             anti-Omega_b+       -5332      0.00000000
+ Omega_b-              120        5332  -1.0      6.04610000      1.645530e-12                  Omega_b-        5332      0.00000000
+ Omega_b~+             121       -5332   1.0      6.04610000      1.645530e-12             anti-Omega_b+       -5332      0.00000000
  Xi_bc0                522        5142   0.0      6.90000000      0.500000e-12                    Xi_bc0        5142      0.00000000
  Xi_bc~0               523       -5142   0.0      6.90000000      0.500000e-12               anti-Xi_bc0       -5142      0.00000000
  Xi_bc+                532        5242   1.0      6.90000000      0.500000e-12                    Xi_bc+        5242      0.00000000
  Xi_bc~-               533       -5242  -1.0      6.90000000      0.500000e-12               anti-Xi_bc-       -5242      0.00000000
- Omega_bc0             544        5342   0.0      7.19099000      0.500000e-12                   unknown        5342      0.00000000
- Omega_bc~0            545       -5342   0.0      7.19099000      0.500000e-12                   unknown       -5342      0.00000000
- Xi'_bc0               550        5412   0.0      7.03724000      0.000000e+00                   unknown        5412      0.00000000
- Xi'_bc~0              551       -5412   0.0      7.03724000      0.000000e+00                   unknown       -5412      0.00000000
- Xi*_bc0               552        5414   0.0      7.04850000      0.000000e+00                   unknown        5414      0.00000000
- Xi*_bc~0              553       -5414   0.0      7.04850000      0.000000e+00                   unknown       -5414      0.00000000
- Xi'_bc+               554        5422   1.0      7.03724000      0.000000e+00                   unknown        5422      0.00000000
- Xi'_bc~-              555       -5422  -1.0      7.03724000      0.000000e+00                   unknown       -5422      0.00000000
- Xi*_bc+               556        5424   1.0      7.04850000      0.000000e+00                   unknown        5424      0.00000000
- Xi*_bc~-              557       -5424  -1.0      7.04850000      0.000000e+00                   unknown       -5424      0.00000000
- Omega'_bc0            558        5432   0.0      7.21101000      0.000000e+00                   unknown        5432      0.00000000
- Omega'_bc~0           559       -5432   0.0      7.21101000      0.000000e+00                   unknown       -5432      0.00000000
- Omega*_bc0            560        5434   0.0      7.21900000      0.000000e+00                   unknown        5434      0.00000000
- Omega*_bc~0           561       -5434   0.0      7.21900000      0.000000e+00                   unknown       -5434      0.00000000
- Omega_bcc+            562        5442   1.0      8.30945000      1.290893e-12                   unknown        5442      0.00000000
- Omega_bcc~-           563       -5442  -1.0      8.30945000      1.290893e-12                   unknown       -5442      0.00000000
- Omega*_bcc+           564        5444   1.0      8.31325000      0.000000e+00                   unknown        5444      0.00000000
- Omega*_bcc~-          565       -5444  -1.0      8.31325000      0.000000e+00                   unknown       -5444      0.00000000
- Xi_bb-                568        5512  -1.0     10.42272000      1.290893e-12                   unknown        5512      0.00000000
- Xi_bb~+               569       -5512   1.0     10.42272000      1.290893e-12                   unknown       -5512      0.00000000
- Xi*_bb-               570        5514  -1.0     10.44144000      0.000000e+00                   unknown        5514      0.00000000
- Xi*_bb~+              571       -5514   1.0     10.44144000      0.000000e+00                   unknown       -5514      0.00000000
- Xi_bb0                572        5522   0.0     10.42272000      1.290893e-12                   unknown        5522      0.00000000
- Xi_bb~0               573       -5522   0.0     10.42272000      1.290893e-12                   unknown       -5522      0.00000000
- Xi*_bb0               574        5524   0.0     10.44144000      0.000000e+00                   unknown        5524      0.00000000
- Xi*_bb~0              575       -5524   0.0     10.44144000      0.000000e+00                   unknown       -5524      0.00000000
- Omega_bb-             576        5532  -1.0     10.60209000      1.290893e-12                   unknown        5532      0.00000000
- Omega_bb~+            577       -5532   1.0     10.60209000      1.290893e-12                   unknown       -5532      0.00000000
- Omega*_bb-            578        5534  -1.0     10.61426000      0.000000e+00                   unknown        5534      0.00000000
- Omega*_bb~+           579       -5534   1.0     10.61426000      0.000000e+00                   unknown       -5534      0.00000000
- Omega_bbc0            580        5542   0.0     11.70767000      1.290893e-12                   unknown        5542      0.00000000
- Omega_bbc~0           581       -5542   0.0     11.70767000      1.290893e-12                   unknown       -5542      0.00000000
- Omega*_bbc0           582        5544   0.0     11.71147000      0.000000e+00                   unknown        5544      0.00000000
- Omega*_bbc~0          583       -5544   0.0     11.71147000      0.000000e+00                   unknown       -5544      0.00000000
- Omega*_bbb-           584        5554  -1.0     15.11061000      0.000000e+00                   unknown        5554      0.00000000
- Omega*_bbb~+          585       -5554   1.0     15.11061000      0.000000e+00                   unknown       -5554      0.00000000
+ Omega_bc0             544        5342   0.0      7.19099000      0.500000e-12                 Omega_bc0        5342      0.00000000
+ Omega_bc~0            545       -5342   0.0      7.19099000      0.500000e-12            anti-Omega_bc0       -5342      0.00000000
+ Xi'_bc0               550        5412   0.0      7.03724000      0.000000e+00                   Xi'_bc0        5412      0.00000000
+ Xi'_bc~0              551       -5412   0.0      7.03724000      0.000000e+00              anti-Xi'_bc0       -5412      0.00000000
+ Xi*_bc0               552        5414   0.0      7.04850000      0.000000e+00                   Xi*_bc0        5414      0.00000000
+ Xi*_bc~0              553       -5414   0.0      7.04850000      0.000000e+00              anti-Xi*_bc0       -5414      0.00000000
+ Xi'_bc+               554        5422   1.0      7.03724000      0.000000e+00                   Xi'_bc+        5422      0.00000000
+ Xi'_bc~-              555       -5422  -1.0      7.03724000      0.000000e+00              anti-Xi'_bc-       -5422      0.00000000
+ Xi*_bc+               556        5424   1.0      7.04850000      0.000000e+00                   Xi*_bc+        5424      0.00000000
+ Xi*_bc~-              557       -5424  -1.0      7.04850000      0.000000e+00              anti-Xi*_bc+       -5424      0.00000000
+ Omega'_bc0            558        5432   0.0      7.21101000      0.000000e+00                Omega'_bc0        5432      0.00000000
+ Omega'_bc~0           559       -5432   0.0      7.21101000      0.000000e+00           anti-Omega'_bc0       -5432      0.00000000
+ Omega*_bc0            560        5434   0.0      7.21900000      0.000000e+00                Omega*_bc0        5434      0.00000000
+ Omega*_bc~0           561       -5434   0.0      7.21900000      0.000000e+00           anti-Omega*_bc0       -5434      0.00000000
+ Omega_bcc+            562        5442   1.0      8.30945000      1.290893e-12                Omega_bcc+        5442      0.00000000
+ Omega_bcc~-           563       -5442  -1.0      8.30945000      1.290893e-12           anti-Omega_bcc-       -5442      0.00000000
+ Omega*_bcc+           564        5444   1.0      8.31325000      0.000000e+00               Omega*_bcc+        5444      0.00000000
+ Omega*_bcc~-          565       -5444  -1.0      8.31325000      0.000000e+00          anti-Omega*_bcc-       -5444      0.00000000
+ Xi_bb-                568        5512  -1.0     10.42272000      1.290893e-12                    Xi_bb-        5512      0.00000000
+ Xi_bb~+               569       -5512   1.0     10.42272000      1.290893e-12               anti-Xi_bb+       -5512      0.00000000
+ Xi*_bb-               570        5514  -1.0     10.44144000      0.000000e+00                   Xi*_bb-        5514      0.00000000
+ Xi*_bb~+              571       -5514   1.0     10.44144000      0.000000e+00              anti-Xi*_bb+       -5514      0.00000000
+ Xi_bb0                572        5522   0.0     10.42272000      1.290893e-12                    Xi_bb0        5522      0.00000000
+ Xi_bb~0               573       -5522   0.0     10.42272000      1.290893e-12               anti-Xi_bb0       -5522      0.00000000
+ Xi*_bb0               574        5524   0.0     10.44144000      0.000000e+00                   Xi*_bb0        5524      0.00000000
+ Xi*_bb~0              575       -5524   0.0     10.44144000      0.000000e+00              anti-Xi*_bb0       -5524      0.00000000
+ Omega_bb-             576        5532  -1.0     10.60209000      1.290893e-12                 Omega_bb-        5532      0.00000000
+ Omega_bb~+            577       -5532   1.0     10.60209000      1.290893e-12            anti-Omega_bb+       -5532      0.00000000
+ Omega*_bb-            578        5534  -1.0     10.61426000      0.000000e+00                Omega*_bb-        5534      0.00000000
+ Omega*_bb~+           579       -5534   1.0     10.61426000      0.000000e+00           anti-Omega*_bb+       -5534      0.00000000
+ Omega_bbc0            580        5542   0.0     11.70767000      1.290893e-12                Omega_bbc0        5542      0.00000000
+ Omega_bbc~0           581       -5542   0.0     11.70767000      1.290893e-12           anti-Omega_bbc0       -5542      0.00000000
+ Omega*_bbc0           582        5544   0.0     11.71147000      0.000000e+00               Omega*_bbc0        5544      0.00000000
+ Omega*_bbc~0          583       -5544   0.0     11.71147000      0.000000e+00          anti-Omega*_bbc0       -5544      0.00000000
+ Omega*_bbb-           584        5554  -1.0     15.11061000      0.000000e+00               Omega*_bbb-        5554      0.00000000
+ Omega*_bbb~+          585       -5554   1.0     15.11061000      0.000000e+00          anti-Omega*_bbb+       -5554      0.00000000
  deuteron               45  1000010020   1.0      1.87561300      1.000000e+15                  deuteron           0      0.00000000
  triton                 46  1000010030   1.0      2.80925000      1.000000e+15                   tritium           0      0.00000000
  alpha                  47  1000020040   2.0      3.72741700      1.000000e+15                     alpha           0      0.00000000
  geantino               48   480000000   0.0      0.00000000      1.000000e+15                  geantino           0      0.00000000
  opticalphoton          50       20022   0.0      0.00000000      1.000000e+16                  Cerenkov           0      0.00000000
- H_10                   87          25   0.0    125.70000000      9.400000e-26                    Higgs0          25      0.00000000
+ H_10                   87          25   0.0    125.10000000      9.400000e-26                    Higgs0          25      0.00000000
  H_20                   88          35   0.0    310.00000000      9.400000e-26                   Higgs'0          35      0.00000000
  H_30                   89          36   0.0    310.00000000      9.400000e-26                        A0          36      0.00000000
  H+                     90          37   1.0    310.00000000      9.400000e-26                    Higgs+          37      0.00000000
@@ -749,9 +753,9 @@ PARTICLE
  CLUSjet               358          97   0.0      0.00000000      0.000000e+00                   CLUSjet          97      0.00000000
  CELLjet               359          98   0.0      0.00000000      0.000000e+00                   CELLjet          98      0.00000000
  table                 360          99   0.0      0.00000000      0.000000e+00                     table          99      0.00000000
- deutron~              390 -1000010020  -1.0      1.87561300      0.000000e+00             anti-deuteron           0      0.00000000
- triton~               392 -1000010030  -1.0      2.80925000      0.000000e+00              anti-tritium           0      0.00000000
- alpha~                393 -1000020040  -2.0      3.72741700      0.000000e+00                anti-alpha           0      0.00000000
+ deuteron~             390 -1000010020  -1.0      1.87561300      1.000000e+15             anti-deuteron           0      0.00000000
+ triton~               392 -1000010030  -1.0      2.80925000      1.000000e+15              anti-tritium           0      0.00000000
+ alpha~                393 -1000020040  -2.0      3.72741700      1.000000e+15                anti-alpha           0      0.00000000
  dd_1                  394        1103  -0.7      0.00000000      0.000000e+00                      dd_1        1103      0.00000000
  anti-dd_1             395       -1103   0.7      0.00000000      0.000000e+00                 anti-dd_1       -1103      0.00000000
  ud_0                  410        2101   0.3      0.00000000      0.000000e+00                      ud_0        2101      0.00000000
@@ -891,6 +895,16 @@ PARTICLE
  e*bar+                938    -4000011   1.0    400.00000000      0.000000e+00                   unknown    -4000011      0.00000000
  nu*_e0                939     4000012   0.0    400.00000000      0.000000e+00                   unknown     4000012      0.00000000
  nu*_ebar0             940    -4000012   0.0    400.00000000      0.000000e+00                   unknown    -4000012      0.00000000
+ gv                4900021     4900021   0.0      0.00000000        0.0000e+00                        gv     4900021      0.00000000
+ Zv                4900023     4900023   0.0    125.00000000        6.5800e-23                        Zv     4900023      0.01000000
+ qv                4900101     4900101   0.0      1.00000000        0.0000e+00                        qv     4900101      0.00000000
+ qvbar            -4900101    -4900101   0.0      1.00000000        0.0000e+00                     qvbar    -4900101      0.00000000
+ pivDiag           4900111     4900111   0.0      1.20000000        5.0000e-12                   pivDiag     4900111      2.0000e-11
+ pivUp             4900211     4900211   0.0      1.20000000        0.0000e+00                     pivUp     4900211      0.00000000
+ pivDn            -4900211    -4900211   0.0      1.20000000        0.0000e+00                     pivDn    -4900211      0.00000000
+ rhovDiag          4900113     4900113   0.0      1.20000000        0.0000e+00                  rhovDiag     4900113      0.00000000
+ rhovUp            4900213     4900213   0.0      1.20000000        0.0000e+00                    rhovUp     4900213      0.00000000
+ rhovDn           -4900213    -4900213   0.0      1.20000000        0.0000e+00                    rhovDn    -4900213      0.00000000
  Graviton*             941     5000039   0.0   1000.00000000      0.000000e+00                   unknown     5000039      0.00000000
  nu_Re                 942     9900012   0.0    500.00000000      0.000000e+00                   unknown     9900012      0.00000000
  nu_Rmu                943     9900014   0.0    500.00000000      0.000000e+00                   unknown     9900014      0.00000000
@@ -903,7 +917,7 @@ PARTICLE
  H_R++                 950     9900042   2.0    200.00000000      0.000000e+00                   unknown     9900042      0.00000000
  H_R--                 951    -9900042  -2.0    200.00000000      0.000000e+00                   unknown    -9900042      0.00000000
  He3[0.0]               49  1000020030   2.0      2.80923000      1.000000e+15                       He3           0      0.00000000
- He3~[0.0]             391 -1000020030  -2.0      2.80923000      0.000000e+00                  anti-He3           0      0.00000000
+ He3~[0.0]             391 -1000020030  -2.0      2.80923000      1.000000e+15                  anti-He3           0      0.00000000
  Li7[0.0]              988  1000030070   3.0      6.53536500      0.000000e+00                   unknown           0      0.00000000
  Be8[0.0]              992  1000040080   4.0      7.45689300      0.000000e+00                   unknown           0      0.00000000
  Be9[0.0]              959  1000040090   4.0      8.39479200      0.000000e+00                   unknown           0      0.00000000
@@ -971,5 +985,3 @@ PARTICLE
  Intermediate          971   -99000000   0.0      0.00000000      0.000000e+00                   unknown           0      0.00000000
 #
 END PARTICLE
-# # ParticleTable.txt file containing particle # properties for ParticlePropertySvc, EvtGen and Pythia. # Uses PDG 2014 when available. # PARTICLE # #                    GEANTID    PDGID  CHARGE   MASS(GeV)      TLIFE(s)                    EVTGENNAME    PYTHIAID    MAXWIDTH #  gamma                   1          22   0.0      0.00000000      1.000000e+16                     gamma          22      0.00000000  W+                     53          24   1.0     80.38500000      3.156893e-25                        W+          24      0.00000000  W-                     54         -24  -1.0     80.38500000      3.156893e-25                        W-         -24      0.00000000  Z0                     55          23   0.0     91.18760000      2.637914e-25                        Z0          23      0.00000000  e+                      2         -11   1.0      0.00051100      1.000000e+16                        e+         -11      0.00000000  e-                      3          11  -1.0      0.00051100      1.000000e+16                        e-          11      0.00000000  nu_e                    4          12   0.0      0.00000000      1.000000e+16                      nu_e          12      0.00000000  nu_e~                 302         -12   0.0      0.00000000      1.000000e+16                 anti-nu_e         -12      0.00000000  mu+                     5         -13   1.0      0.10565837      2.196981e-06                       mu+         -13      0.00000000  mu-                     6          13  -1.0      0.10565837      2.196981e-06                       mu-          13      0.00000000  nu_mu                 300          14   0.0      0.00000000      1.000000e+16                     nu_mu          14      0.00000000  nu_mu~                301         -14   0.0      0.00000000      1.000000e+16                anti-nu_mu         -14      0.00000000  tau+                   51         -15   1.0      1.77682000      2.903000e-13                      tau+         -15      0.00000000  tau-                   52          15  -1.0      1.77682000      2.903000e-13                      tau-          15      0.00000000  pi0                     7         111   0.0      0.13497660      8.520000e-17                       pi0         111      0.00000000  pi+                     8         211   1.0      0.13957018      2.603300e-08                       pi+         211      0.00000000  pi-                     9        -211  -1.0      0.13957018      2.603300e-08                       pi-        -211      0.00000000  eta                    17         221   0.0      0.54786200      5.063171e-19                       eta         221      0.00000000  rho(770)0              33         113   0.0      0.77526000      4.414569e-24                      rho0         113      0.00000000  rho(770)+              34         213   1.0      0.77526000      4.414569e-24                      rho+         213      0.00000000  rho(770)-              35        -213  -1.0      0.77526000      4.414569e-24                      rho-        -213      0.00000000  omega(782)             36         223   0.0      0.78265000      7.752794e-23                     omega         223      0.00000000  eta_prime             127         331   0.0      0.95778000      3.324303e-21                      eta'         331      0.00000000  sigma_0               850     9000221   0.0      0.47500000      1.196749e-24                   sigma_0           0      0.00000000  f_0(980)              596     9010221   0.0      0.99000000      9.403031e-24                       f_0       10221      0.00000000  a_0(980)0             132     9000111   0.0      0.98000000      8.776163e-24                      a_00       10111      0.00000000  a_0(980)+             133     9000211   1.0      0.98000000      8.776163e-24                      a_0+       10211      0.00000000  a_0(980)-             134    -9000211  -1.0      0.98000000      8.776163e-24                      a_0-      -10211      0.00000000  phi(1020)              37         333   0.0      1.01946100      1.545099e-22                       phi         333      0.00000000  h_1(1170)             597       10223   0.0      1.17000000      1.828367e-24                       h_1       10223      0.00000000  b_1(1235)0            588       10113   0.0      1.22950000      4.635297e-24                      b_10       10113      0.00000000  b_1(1235)+            592       10213   1.0      1.22950000      4.635297e-24                      b_1+       10213      0.00000000  b_1(1235)-            593      -10213  -1.0      1.22950000      4.635297e-24                      b_1-      -10213      0.00000000  a_1(1260)0            135       20113   0.0      1.23000000      1.567172e-24                      a_10       20113      0.00000000  a_1(1260)+             42       20213   1.0      1.23000000      1.567172e-24                      a_1+       20213      0.00000000  a_1(1260)-             43      -20213  -1.0      1.23000000      1.567172e-24                      a_1-      -20213      0.00000000  f_2(1270)             367         225   0.0      1.27510000      3.555982e-24                       f_2         225      0.00000000  f_1(1285)             687       20223   0.0      1.28190000      2.719885e-23                       f_1       20223      0.00000000  eta(1295)             811      100221   0.0      1.29400000      1.196749e-23                   eta(2S)           0      0.00000000  pi(1300)0             805      100111   0.0      1.30000000      1.645530e-24                   pi(2S)0           0      0.00000000  pi(1300)+             807      100211   1.0      1.30000000      1.645530e-24                   pi(2S)+           0      0.00000000  pi(1300)-             808     -100211  -1.0      1.30000000      1.645530e-24                   pi(2S)-           0      0.00000000  a_2(1320)0            136         115   0.0      1.31830000      6.151516e-24                      a_20         115      0.00000000  a_2(1320)+            137         215   1.0      1.31830000      6.151516e-24                      a_2+         215      0.00000000  a_2(1320)-            138        -215  -1.0      1.31830000      6.151516e-24                      a_2-        -215      0.00000000  f_0(1370)             686       10221   0.0      1.35000000      1.880606e-24                      f'_0       10331      0.00000000  h_1(1380)             604       10333   0.0      1.40000000      0.000000e+00                      h'_1       10333      0.00000000  pi_1(1400)0          1021     9000113   0.0      1.35400000      1.994582e-24               pi_1(1400)0           0      0.00000000  pi_1(1400)+          1023     9000213   1.0      1.35400000      1.994582e-24               pi_1(1400)+           0      0.00000000  pi_1(1400)-          1024    -9000213  -1.0      1.35400000      1.994582e-24               pi_1(1400)-           0      0.00000000  eta(1405)0           1025     9020221   0.0      1.40880000      1.290612e-23                eta(1405)0           0      0.00000000  omega(1420)           812      100223   0.0      1.42500000      3.061452e-24                 omega(2S)           0      0.00000000  f_1(1420)             692       20333   0.0      1.42640000      1.198929e-23                      f'_1       20333      0.00000000  rho(1450)0            806      100113   0.0      1.46500000      1.645530e-24                  rho(2S)0           0      0.00000000  rho(1450)+            809      100213   1.0      1.46500000      1.645530e-24                  rho(2S)+           0      0.00000000  rho(1450)-            810     -100213  -1.0      1.46500000      1.645530e-24                  rho(2S)-           0      0.00000000  a_0(1450)0            587       10111   0.0      1.47400000      2.483820e-24                   unknown           0      0.00000000  a_0(1450)+            590       10211   1.0      1.47400000      2.483820e-24                   unknown           0      0.00000000  a_0(1450)-            591      -10211  -1.0      1.47400000      2.483820e-24                   unknown           0      0.00000000  eta(1475)             826      100331   0.0      1.47600000      7.743673e-24                   unknown           0      0.00000000  f_0(1500)             855     9030221   0.0      1.50500000      6.038644e-24                 f_0(1500)           0      0.00000000  f'_2(1525)            380         335   0.0      1.52500000      9.016605e-24                      f'_2         335      0.00000000  pi_1(1600)0          1027     9010113   0.0      1.66200000      2.742551e-24               pi_1(1600)0           0      0.00000000  pi_1(1600)+          1029     9010213   1.0      1.66200000      2.742551e-24               pi_1(1600)+           0      0.00000000  pi_1(1600)-          1030    -9010213  -1.0      1.66200000      2.742551e-24               pi_1(1600)-           0      0.00000000  eta_2(1645)           598       10225   0.0      1.61700000      3.636531e-24                   unknown           0      0.00000000  omega(1650)           746       30223   0.0      1.67000000      2.089563e-24               omega(1650)           0      0.00000000  pi_2(1670)0           589       10115   0.0      1.67220000      2.531585e-24                   unknown           0      0.00000000  pi_2(1670)+           594       10215   1.0      1.67220000      2.531585e-24                   unknown           0      0.00000000  pi_2(1670)-           595      -10215  -1.0      1.67220000      2.531585e-24                   unknown           0      0.00000000  omega_3(1670)         368         227   0.0      1.66700000      3.917930e-24                   unknown           0      0.00000000  phi(1680)             827      100333   0.0      1.68000000      4.388081e-24                 phi(1680)           0      0.00000000  rho_3(1690)0          361         117   0.0      1.68880000      4.088274e-24                   unknown           0      0.00000000  rho_3(1690)+          363         217   1.0      1.68880000      4.088274e-24                   unknown           0      0.00000000  rho_3(1690)-          364        -217  -1.0      1.68880000      4.088274e-24                   unknown           0      0.00000000  rho(1700)0            743       30113   0.0      1.72000000      2.632849e-24                  rho(3S)0           0      0.00000000  rho(1700)+            744       30213   1.0      1.72000000      2.632849e-24                  rho(3S)+           0      0.00000000  rho(1700)-            745      -30213  -1.0      1.72000000      2.632849e-24                  rho(3S)-           0      0.00000000  f_0(1710)             603       10331   0.0      1.72200000      4.875646e-24                   unknown           0      0.00000000  pi(1800)0             840     9010111   0.0      1.81200000      3.164482e-24                   unknown           0      0.00000000  pi(1800)+             841     9010211   1.0      1.81200000      3.164482e-24                   unknown           0      0.00000000  pi(1800)-             842    -9010211  -1.0      1.81200000      3.164482e-24                   unknown           0      0.00000000  phi_3(1850)           381         337   0.0      1.85400000      7.565657e-24                   unknown           0      0.00000000  eta_2(1870)           605       10335   0.0      1.85400000      0.000000e+00                   unknown           0      0.00000000  f_2(1950)             813     9050225   0.0      1.94400000      1.394517e-24                   unknown           0      0.00000000  f_2(2010)             828     9060225   0.0      2.01100000      3.291061e-24                   unknown           0      0.00000000  a_4(2040)0            362         119   0.0      1.99600000      2.581224e-24                   unknown           0      0.00000000  a_4(2040)+            365         219   1.0      1.99600000      2.581224e-24                   unknown           0      0.00000000  a_4(2040)-            366        -219  -1.0      1.99600000      2.581224e-24                   unknown           0      0.00000000  f_4(2050)             369         229   0.0      2.01800000      2.777267e-24                   unknown           0      0.00000000  f_2(2300)             857     9080225   0.0      2.29700000      4.417530e-24                   unknown           0      0.00000000  f_2(2340)             858     9090225   0.0      2.33900000      2.063361e-24                   unknown           0      0.00000000  K0                    370         311   0.0      0.49761400      0.000000e+00                        K0         311      0.00000000  K~0                   371        -311   0.0      0.49761400      0.000000e+00                   anti-K0        -311      0.00000000  KS0                    16         310   0.0      0.49761400      8.956400e-11                      K_S0         310      0.00000000  KL0                    10         130   0.0      0.49761400      5.116000e-08                      K_L0         130      0.00000000  K+                     11         321   1.0      0.49367700      1.238000e-08                        K+         321      0.00000000  K-                     12        -321  -1.0      0.49367700      1.238000e-08                        K-        -321      0.00000000  K*(892)0               40         313   0.0      0.89581000      1.388633e-23                       K*0         313      0.00000000  K*(892)~0              41        -313   0.0      0.89581000      1.388633e-23                  anti-K*0        -313      0.00000000  K*(892)+               38         323   1.0      0.89166000      1.295693e-23                       K*+         323      0.00000000  K*(892)-               39        -323  -1.0      0.89166000      1.295693e-23                       K*-        -323      0.00000000  K_1(1270)0            141       10313   0.0      1.27200000      7.313469e-24                      K_10       10313      0.00000000  K_1(1270)~0           142      -10313   0.0      1.27200000      7.313469e-24                 anti-K_10      -10313      0.00000000  K_1(1270)+            139       10323   1.0      1.27200000      7.313469e-24                      K_1+       10323      0.00000000  K_1(1270)-            140      -10323  -1.0      1.27200000      7.313469e-24                      K_1-      -10323      0.00000000  K_1(1400)0            145       20313   0.0      1.40300000      3.782829e-24                     K'_10       20313      0.00000000  K_1(1400)~0           146      -20313   0.0      1.40300000      3.782829e-24                anti-K'_10      -20313      0.00000000  K_1(1400)+            143       20323   1.0      1.40300000      3.782829e-24                     K'_1+       20323      0.00000000  K_1(1400)-            144      -20323  -1.0      1.40300000      3.782829e-24                     K'_1-      -20323      0.00000000  K*(1410)0             816      100313   0.0      1.41400000      2.837122e-24                      K'*0           0      0.00000000  K*(1410)~0            817     -100313   0.0      1.41400000      2.837122e-24                 anti-K'*0           0      0.00000000  K*(1410)+             822      100323   1.0      1.41400000      2.837122e-24                      K'*+           0      0.00000000  K*(1410)-             823     -100323  -1.0      1.41400000      2.837122e-24                      K'*-           0      0.00000000  K*_0(1430)0           149       10311   0.0      1.42500000      2.437823e-24                     K_0*0       10311      0.00000000  K*_0(1430)~0          150      -10311   0.0      1.42500000      2.437823e-24                anti-K_0*0      -10311      0.00000000  K*_0(1430)+           147       10321   1.0      1.42500000      2.437823e-24                     K_0*+       10321      0.00000000  K*_0(1430)-           148      -10321  -1.0      1.42500000      2.437823e-24                     K_0*-      -10321      0.00000000  K*_2(1430)0           153         315   0.0      1.43240000      6.038644e-24                     K_2*0         315      0.00000000  K*_2(1430)~0          154        -315   0.0      1.43240000      6.038644e-24                anti-K_2*0        -315      0.00000000  K*_2(1430)+           151         325   1.0      1.42560000      6.682357e-24                     K_2*+         325      0.00000000  K*_2(1430)-           152        -325  -1.0      1.42560000      6.682357e-24                     K_2*-        -325      0.00000000  K(1460)0              814      100311   0.0      1.43240000      0.000000e+00                   unknown           0      0.00000000  K(1460)~0             815     -100311   0.0      1.43240000      0.000000e+00                   unknown           0      0.00000000  K(1460)+              820      100321   1.0      1.43240000      0.000000e+00                   unknown           0      0.00000000  K(1460)-              821     -100321  -1.0      1.43240000      0.000000e+00                   unknown           0      0.00000000  K*(1680)0             747       30313   0.0      1.71700000      2.056913e-24                     K''*0           0      0.00000000  K*(1680)~0            748      -30313   0.0      1.71700000      2.056913e-24                anti-K''*0           0      0.00000000  K*(1680)+             749       30323   1.0      1.71700000      2.056913e-24                     K''*+           0      0.00000000  K*(1680)-             750      -30323  -1.0      1.71700000      2.056913e-24                     K''*-           0      0.00000000  K_2(1770)0            599       10315   0.0      1.77300000      3.538775e-24                   unknown           0      0.00000000  K_2(1770)~0           600      -10315   0.0      1.77300000      3.538775e-24                   unknown           0      0.00000000  K_2(1770)+            601       10325   1.0      1.77300000      3.538775e-24                   unknown           0      0.00000000  K_2(1770)-            602      -10325  -1.0      1.77300000      3.538775e-24                   unknown           0      0.00000000  K*_3(1780)0           372         317   0.0      1.77600000      4.139699e-24                     K_3*0           0      0.00000000  K*_3(1780)~0          373        -317   0.0      1.77600000      4.139699e-24                anti-K_3*0           0      0.00000000  K*_3(1780)+           376         327   1.0      1.77600000      4.139699e-24                     K_3*+           0      0.00000000  K*_3(1780)-           377        -327  -1.0      1.77600000      4.139699e-24                     K_3*-           0      0.00000000  K_2(1820)0            688       20315   0.0      1.81600000      2.384827e-24                   unknown           0      0.00000000  K_2(1820)~0           689      -20315   0.0      1.81600000      2.384827e-24                   unknown           0      0.00000000  K_2(1820)+            690       20325   1.0      1.81600000      2.384827e-24                   unknown           0      0.00000000  K_2(1820)-            691      -20325  -1.0      1.81600000      2.384827e-24                   unknown           0      0.00000000  K*_2(1980)0           818      100315   0.0      1.97300000      0.000000e+00                   unknown           0      0.00000000  K*_2(1980)~0          819     -100315   0.0      1.97300000      0.000000e+00                   unknown           0      0.00000000  K*_2(1980)+           824      100325   1.0      1.97300000      0.000000e+00                   unknown           0      0.00000000  K*_2(1980)-           825     -100325  -1.0      1.97300000      0.000000e+00                   unknown           0      0.00000000  K*_4(2045)0           374         319   0.0      2.04500000      3.324304e-24                     K_4*0           0      0.00000000  K*_4(2045)~0          375        -319   0.0      2.04500000      3.324304e-24                anti-K_4*0           0      0.00000000  K*_4(2045)+           378         329   1.0      2.04500000      3.324304e-24                     K_4*+           0      0.00000000  K*_4(2045)-           379        -329  -1.0      2.04500000      3.324304e-24                     K_4*-           0      0.00000000  D0                     58         421   0.0      1.86484000      4.101000e-13                        D0         421      0.00000000  D~0                    59        -421   0.0      1.86484000      4.101000e-13                   anti-D0        -421      0.00000000  D+                     56         411   1.0      1.86961000      1.040000e-12                        D+         411      0.00000000  D-                     57        -411  -1.0      1.86961000      1.040000e-12                        D-        -411      0.00000000  D*(2007)0              67         423   0.0      2.00696000      1.000003e-19                       D*0         423      0.00000000  D*(2007)~0             68        -423   0.0      2.00696000      1.000003e-19                  anti-D*0        -423      0.00000000  D*(2010)+              65         413   1.0      2.01026000      7.892230e-21                       D*+         413      0.00000000  D*(2010)-              66        -413  -1.0      2.01026000      7.892230e-21                       D*-        -413      0.00000000  D*_0+                 155       10411   1.0      2.31800000      2.465213e-24                     D_0*+       10411      0.00000000  D*_0-                 159      -10411  -1.0      2.31800000      2.465213e-24                     D_0*-      -10411      0.00000000  D*_00                 163       10421   0.0      2.31800000      2.465213e-24                     D_0*0       10421      0.00000000  D*_0~0                167      -10421   0.0      2.31800000      2.465213e-24                anti-D_0*0      -10421      0.00000000  D_1(H)0               164       20423   0.0      2.44500000      2.630000e-24                     D'_10       20423      0.00000000  D_1(H)~0              168      -20423   0.0      2.44500000      2.630000e-24                anti-D'_10      -20423      0.00000000  D_1(H)+               156       20413   1.0      2.44500000      2.630000e-24                     D'_1+       20413      0.00000000  D_1(H)-               160      -20413  -1.0      2.44500000      2.630000e-24                     D'_1-      -20413      0.00000000  D_1(2420)0            165       10423   0.0      2.42140000      2.428827e-23                      D_10       10423      0.00000000  D_1(2420)~0           169      -10423   0.0      2.42140000      2.428827e-23                 anti-D_10      -10423      0.00000000  D_1(2420)+            157       10413   1.0      2.42300000      3.290000e-23                      D_1+       10413      0.00000000  D_1(2420)-            161      -10413  -1.0      2.42300000      3.290000e-23                      D_1-      -10413      0.00000000  D*_2(2460)0           170         425   0.0      2.46260000      1.343290e-23                     D_2*0         425      0.00000000  D*_2(2460)~0          166        -425   0.0      2.46260000      1.343290e-23                anti-D_2*0        -425      0.00000000  D*_2(2460)+           162         415   1.0      2.46430000      1.778952e-23                     D_2*+         415      0.00000000  D*_2(2460)-           158        -415  -1.0      2.46430000      1.778952e-23                     D_2*-        -415      0.00000000  D(2S)0                761      100421   0.0      2.58000000      0.000000e+00                    D(2S)0           0      0.00000000  D(2S)~0               762     -100421   0.0      2.58000000      0.000000e+00               anti-D(2S)0           0      0.00000000  D(2S)+                757      100411   1.0      2.58000000      0.000000e+00                    D(2S)+           0      0.00000000  D(2S)-                758     -100411  -1.0      2.58000000      0.000000e+00                    D(2S)-           0      0.00000000  D*(2640)0             763      100423   0.0      2.64000000      0.000000e+00                   D*(2S)0           0      0.00000000  D*(2640)~0            764     -100423   0.0      2.64000000      0.000000e+00              anti-D*(2S)0           0      0.00000000  D*(2640)+             759      100413   1.0      2.64000000      0.000000e+00                   D*(2S)+           0      0.00000000  D*(2640)-             760     -100413  -1.0      2.64000000      0.000000e+00                   D*(2S)-           0      0.00000000  D_s+                   60         431   1.0      1.96830000      5.000000e-13                      D_s+         431      0.00000000  D_s-                   61        -431  -1.0      1.96830000      5.000000e-13                      D_s-        -431      0.00000000  D*_s+                  69         433   1.0      2.11210000      1.000003e-19                     D_s*+         433      0.00000000  D*_s-                  70        -433  -1.0      2.11210000      1.000003e-19                     D_s*-        -433      0.00000000  D*_s0+                171       10431   1.0      2.31770000      6.582100e-22                    D_s0*+       10431      0.00000000  D*_s0-                175      -10431  -1.0      2.31770000      6.582100e-22                    D_s0*-      -10431      0.00000000  D_s1(2460)+           172       20433   1.0      2.45950000      6.582100e-22                     D_s1+       20433      0.00000000  D_s1(2460)-           176      -20433  -1.0      2.45950000      6.582100e-22                     D_s1-      -20433      0.00000000  D_s1(2536)+           173       10433   1.0      2.53510000      7.154480e-22                    D'_s1+       10433      0.00000000  D_s1(2536)-           177      -10433  -1.0      2.53510000      7.154480e-22                    D'_s1-      -10433      0.00000000  D*_s2+                174         435   1.0      2.57190000      3.871836e-23                    D_s2*+         435      0.00000000  D*_s2-                178        -435  -1.0      2.57190000      3.871836e-23                    D_s2*-        -435      0.00000000  B0                     73         511   0.0      5.27958000      1.519000e-12                        B0         511      0.00000000  B~0                    74        -511   0.0      5.27958000      1.519000e-12                   anti-B0        -511      0.00000000  B0H                 99998         510   0.0      5.27958000      1.519000e-12                       B0H           0      0.00000000  B0L                 99999         150   0.0      5.27958000      1.519000e-12                       B0L           0      0.00000000  B+                     71         521   1.0      5.27926000      1.638000e-12                        B+         521      0.00000000  B-                     72        -521  -1.0      5.27926000      1.638000e-12                        B-        -521      0.00000000  B*0                   189         513   0.0      5.32520000      1.000019e-19                       B*0         513      0.00000000  B*~0                  190        -513   0.0      5.32520000      1.000019e-19                  anti-B*0        -513      0.00000000  B*-                   187        -523  -1.0      5.32520000      1.000019e-19                       B*-        -523      0.00000000  B*+                   188         523   1.0      5.32520000      1.000019e-19                       B*+         523      0.00000000  B*_00                 201       10511   0.0      5.73800000      4.390000e-24                     B_0*0       10511      0.00000000  B*_0~0                205      -10511   0.0      5.73800000      4.390000e-24                anti-B_0*0      -10511      0.00000000  B*_0+                 193       10521   1.0      5.73800000      4.390000e-24                     B_0*+       10521      0.00000000  B*_0-                 197      -10521  -1.0      5.73800000      4.390000e-24                     B_0*-      -10521      0.00000000  B_1(H)0               202       20513   0.0      5.75700000      2.630000e-24                     B'_10       20513      0.00000000  B_1(H)~0              206      -20513   0.0      5.75700000      2.630000e-24                anti-B'_10      -20513      0.00000000  B_1(H)+               194       20523   1.0      5.75700000      2.630000e-24                     B'_1+       20523      0.00000000  B_1(H)-               198      -20523  -1.0      5.75700000      2.630000e-24                     B'_1-      -20523      0.00000000  B_1(L)0               203       10513   0.0      5.72340000      3.134000e-23                      B_10       10513      0.00000000  B_1(L)~0              207      -10513   0.0      5.72340000      3.134000e-23                 anti-B_10      -10513      0.00000000  B_1(L)+               195       10523   1.0      5.72340000      3.134000e-23                      B_1+       10523      0.00000000  B_1(L)-               199      -10523  -1.0      5.72340000      3.134000e-23                      B_1-      -10523      0.00000000  B*_20                 204         515   0.0      5.74300000      2.861792e-23                     B_2*0         515      0.00000000  B*_2~0                208        -515   0.0      5.74300000      2.861792e-23                anti-B_2*0        -515      0.00000000  B*_2+                 196         525   1.0      5.74300000      2.861792e-23                     B_2*+         525      0.00000000  B*_2-                 200        -525  -1.0      5.74300000      2.861792e-23                     B_2*-        -525      0.00000000  B_s0                   75         531   0.0      5.36677000      1.512000e-12                      B_s0         531      0.00000000  B_s~0                  76        -531   0.0      5.36677000      1.512000e-12                 anti-B_s0        -531      0.00000000  B_s0H               99996         530   0.0      5.36677000      1.661000e-12                     B_s0H           0      0.00000000  B_s0L               99997         350   0.0      5.36677000      1.405000e-12                     B_s0L           0      0.00000000  B*_s0                 191         533   0.0      5.41540000      1.000000e-19                     B_s*0         533      0.00000000  B*_s~0                192        -533   0.0      5.41540000      1.000000e-19                anti-B_s*0        -533      0.00000000  B*_s00                209       10531   0.0      5.84100000      4.390000e-24                    B_s0*0       10531      0.00000000  B*_s0~0               213      -10531   0.0      5.84100000      4.390000e-24               anti-B_s0*0      -10531      0.00000000  B_s1(H)0              210       20533   0.0      5.85900000      2.630000e-24                    B'_s10       20533      0.00000000  B_s1(H)~0             214      -20533   0.0      5.85900000      2.630000e-24               anti-B'_s10      -20533      0.00000000  B_s1(L)0              211       10533   0.0      5.82870000      1.316424e-21                     B_s10       10533      0.00000000  B_s1(L)~0             215      -10533   0.0      5.82870000      1.316424e-22                anti-B_s10      -10533      0.00000000  B*_s20                212         535   0.0      5.83996000      4.113825e-22                    B_s2*0         535      0.00000000  B*_s2~0               216        -535   0.0      5.83996000      4.113825e-22               anti-B_s2*0        -535      0.00000000  B_c+                   77         541   1.0      6.27370000      5.070000e-13                      B_c+         541      0.00000000  B_c-                   78        -541  -1.0      6.27370000      5.070000e-13                      B_c-        -541      0.00000000  B_c*+                 382         543   1.0      6.60200000      0.000000e+00                     B_c*+         543      0.00000000  B_c*-                 383        -543  -1.0      6.60200000      0.000000e+00                     B_c*-        -543      0.00000000  B_c0*+                607       10541   1.0      7.25000000      0.000000e+00                    B_c0*+       10541      0.00000000  B_c0*-                608      -10541  -1.0      7.25000000      0.000000e+00                    B_c0*-      -10541      0.00000000  B_c1(L)+              609       10543   1.0      7.30000000      0.000000e+00                     B_c1+       10543      0.00000000  B_c1(L)-              610      -10543  -1.0      7.30000000      0.000000e+00                     B_c1-      -10543      0.00000000  B_c1(H)+              693       20543   1.0      7.40000000      0.000000e+00                    B'_c1+       20543      0.00000000  B_c1(H)-              694      -20543  -1.0      7.40000000      0.000000e+00                    B'_c1-      -20543      0.00000000  B_c2*+                384         545   1.0      7.35000000      0.000000e+00                    B_c2*+         545      0.00000000  B_c2*-                385        -545  -1.0      7.35000000      0.000000e+00                    B_c2*-        -545      0.00000000  eta_c(1S)             128         441   0.0      2.98360000      2.216203e-23                     eta_c         441      0.00000000  J/psi(1S)              64         443   0.0      3.09691600      7.085169e-21                     J/psi         443      0.00000000  chi_c0(1P)            129       10441   0.0      3.41475000      6.328963e-23                    chi_c0       10441      0.00000000  chi_c1(1P)            130       20443   0.0      3.51066000      7.835857e-22                    chi_c1       20443      0.00000000  h_c(1P)               606       10443   0.0      3.52538000      9.403029e-22                       h_c       10443      0.00000000  chi_c2(1P)            131         445   0.0      3.55620000      3.410425e-22                    chi_c2         445      0.00000000  eta_c(2S)             829      100441   0.0      3.63940000      6.582122e-23                 eta_c(2S)      100441      0.00000000  psi(2S)               126      100443   0.0      3.68610900      2.201378e-21                   psi(2S)      100443      0.00000000  psi(3770)             765       30443   0.0      3.77315000      2.419898e-23                 psi(3770)       30443      0.00000000  chi_c2(2P)           1031      100445   0.0      3.92720000      2.742551e-23                chi_c2(2P)           0      0.00000000  psi(4040)             851     9000443   0.0      4.03900000      8.227652e-24                 psi(4040)           0      0.00000000  psi(4160)             853     9010443   0.0      4.19100000      9.403029e-24                 psi(4160)           0      0.00000000  psi(4415)             856     9020443   0.0      4.42100000      1.061633e-23                 psi(4415)           0      0.00000000  X_1(3872)            1016     9920443   0.0      3.87169000      2.076340e-21                 X_1(3872)     9920443      0.00000000  X_2(3872)            1017     9910445   0.0      3.87169000      2.076340e-21                 X_2(3872)     9910445      0.00000000  Z(4430)+             1018     9042413   1.0      4.43300000      2.076340e-21                  Z(4430)+     9042413      0.00000000  Z(4430)-             1019    -9042413  -1.0      4.43300000      2.076340e-21                  Z(4430)-    -9042413      0.00000000  eta_b(1S)             386         551   0.0      9.40300000      0.000000e+00                     eta_b         551      0.00000000  eta_b(2S)             830      100551   0.0      9.99700000      0.000000e+00                 eta_b(2S)           0      0.00000000  eta_b(3S)             843      200551   0.0     10.33500000      0.000000e+00                 eta_b(3S)           0      0.00000000  eta_b2(1D)            613       10555   0.0     10.15700000      0.000000e+00                eta_b2(1D)       10555      0.00000000  eta_b2(2D)            836      110555   0.0     10.44100000      0.000000e+00                eta_b2(2D)      110555      0.00000000  Upsilon(1S)           387         553   0.0      9.46030000      1.218911e-20                   Upsilon         553      0.00000000  Upsilon(2S)           831      100553   0.0     10.02326000      2.058199e-20               Upsilon(2S)      100553      0.00000000  Upsilon(3S)           844      200553   0.0     10.35520000      3.242425e-20               Upsilon(3S)      200553      0.00000000  Upsilon_1(1D)         766       30553   0.0     10.16370000      0.000000e+00             Upsilon_1(1D)       30553      0.00000000  Upsilon_1(2D)         839      130553   0.0     10.43490000      0.000000e+00             Upsilon_1(2D)      130553      0.00000000  Upsilon_2(1D)         696       20555   0.0     10.15620000      0.000000e+00             Upsilon_2(1D)       20555      0.00000000  Upsilon_2(2D)         838      120555   0.0     10.44060000      0.000000e+00             Upsilon_2(2D)      120555      0.00000000  Upsilon_3(1D)         389         557   0.0     10.15990000      0.000000e+00             Upsilon_3(1D)         557      0.00000000  Upsilon_3(2D)         833      100557   0.0     10.44430000      0.000000e+00             Upsilon_3(2D)      100557      0.00000000  Upsilon(4S)           849      300553   0.0     10.57940000      3.210791e-23               Upsilon(4S)      300553      0.00000000  Upsilon(10860)        852     9000553   0.0     10.87600000      1.196749e-23               Upsilon(5S)           0      0.00000000  Upsilon(11020)        854     9010553   0.0     11.01900000      8.331800e-24                   unknown           0      0.00000000  chi_b0(1P)            611       10551   0.0      9.85944000      0.000000e+00                    chi_b0       10551      0.00000000  chi_b0(2P)            834      110551   0.0     10.23250000      0.000000e+00                chi_b0(2P)      110551      0.00000000  chi_b0(3P)            846      210551   0.0     10.50040000      0.000000e+00                chi_b0(3P)      210551      0.00000000  chi_b1(3P)            848      220553   0.0     10.51570000      0.000000e+00                chi_b1(3P)      220553      0.00000000  chi_b1(1P)            695       20553   0.0      9.89278000      0.000000e+00                    chi_b1       20553      0.00000000  chi_b1(2P)            837      120553   0.0     10.25546000      0.000000e+00                chi_b1(2P)      120553      0.00000000  chi_b2(1P)            388         555   0.0      9.91221000      0.000000e+00                    chi_b2         555      0.00000000  chi_b2(2P)            832      100555   0.0     10.26865000      0.000000e+00                chi_b2(2P)      100555      0.00000000  chi_b2(3P)            845      200555   0.0     10.52620000      0.000000e+00                chi_b2(3P)      200555      0.00000000  h_b(1P)               612       10553   0.0      9.89930000      0.000000e+00                       h_b       10553      0.00000000  h_b(2P)               835      110553   0.0     10.25500000      0.000000e+00                   h_b(2P)      110553      0.00000000  h_b(3P)               847      210553   0.0     10.51600000      0.000000e+00                   h_b(3P)      210553      0.00000000  n0                     13        2112   0.0      0.93956538      8.803000e+02                        n0        2112      0.00000000  n~0                    25       -2112   0.0      0.93956538      8.803000e+02                   anti-n0       -2112      0.00000000  p+                     14        2212   1.0      0.93827205      1.000000e+16                        p+        2212      0.00000000  p~-                    15       -2212  -1.0      0.93827205      1.000000e+16                   anti-p-       -2212      0.00000000  N(1440)0              624       12112   0.0      1.43000000      2.194041e-24                  N(1440)0           0      0.00000000  N(1440)~0             625      -12112   0.0      1.43000000      2.194041e-24             anti-N(1440)0           0      0.00000000  N(1440)+              636       12212   1.0      1.43000000      2.194041e-24                  N(1440)+           0      0.00000000  N(1440)~-             637      -12212  -1.0      1.43000000      2.194041e-24             anti-N(1440)-           0      0.00000000  N(1520)0              404        1214   0.0      1.51500000      5.723584e-24                  N(1520)0           0      0.00000000  N(1520)~0             405       -1214   0.0      1.51500000      5.723584e-24             anti-N(1520)0           0      0.00000000  N(1520)+              420        2124   1.0      1.51500000      5.723584e-24                  N(1520)+           0      0.00000000  N(1520)~-             421       -2124  -1.0      1.51500000      5.723584e-24             anti-N(1520)-           0      0.00000000  N(1535)0              705       22112   0.0      1.53500000      4.388081e-24                  N(1535)0           0      0.00000000  N(1535)~0             706      -22112   0.0      1.53500000      4.388081e-24             anti-N(1535)0           0      0.00000000  N(1535)+              713       22212   1.0      1.53500000      4.388081e-24                  N(1535)+           0      0.00000000  N(1535)~-             714      -22212  -1.0      1.53500000      4.388081e-24             anti-N(1535)-           0      0.00000000  N(1650)0              771       32112   0.0      1.65500000      4.701514e-24                  N(1650)0           0      0.00000000  N(1650)~0             772      -32112   0.0      1.65500000      4.701514e-24             anti-N(1650)0           0      0.00000000  N(1650)+              777       32212   1.0      1.65500000      4.701514e-24                  N(1650)+           0      0.00000000  N(1650)~-             778      -32212  -1.0      1.65500000      4.701514e-24             anti-N(1650)-           0      0.00000000  N(1675)0              414        2116   0.0      1.67500000      4.388081e-24                  N(1675)0           0      0.00000000  N(1675)~0             415       -2116   0.0      1.67500000      4.388081e-24             anti-N(1675)0           0      0.00000000  N(1675)+              428        2216   1.0      1.67500000      4.388081e-24                  N(1675)+           0      0.00000000  N(1675)~-             429       -2216  -1.0      1.67500000      4.388081e-24             anti-N(1675)-           0      0.00000000  N(1680)0              628       12116   0.0      1.68500000      5.063171e-24                  N(1680)0           0      0.00000000  N(1680)~0             629      -12116   0.0      1.68500000      5.063171e-24             anti-N(1680)0           0      0.00000000  N(1680)+              640       12216   1.0      1.68500000      5.063171e-24                  N(1680)+           0      0.00000000  N(1680)~-             641      -12216  -1.0      1.68500000      5.063171e-24             anti-N(1680)-           0      0.00000000  N(1700)+              711       22124   1.0      1.70000000      4.388081e-24                  N(1700)+           0      0.00000000  N(1700)~-             712      -22124  -1.0      1.70000000      4.388081e-24             anti-N(1700)-           0      0.00000000  N(1700)0              703       21214   0.0      1.70000000      4.388081e-24                  N(1700)0           0      0.00000000  N(1700)~0             704      -21214   0.0      1.70000000      4.388081e-24             anti-N(1700)0           0      0.00000000  N(1710)0              791       42112   0.0      1.71000000      6.582122e-24                  N(1710)0           0      0.00000000  N(1710)~0             792      -42112   0.0      1.71000000      6.582122e-24             anti-N(1710)0           0      0.00000000  N(1710)+              795       42212   1.0      1.71000000      6.582122e-24                  N(1710)+           0      0.00000000  N(1710)~-             796      -42212  -1.0      1.71000000      6.582122e-24             anti-N(1710)-           0      0.00000000  N(1720)0              769       31214   0.0      1.72000000      2.632849e-24                  N(1720)0           0      0.00000000  N(1720)~0             770      -31214   0.0      1.72000000      2.632849e-24             anti-N(1720)0           0      0.00000000  N(1720)+              775       32124   1.0      1.72000000      2.632849e-24                  N(1720)+           0      0.00000000  N(1720)~-             776      -32124  -1.0      1.72000000      2.632849e-24             anti-N(1720)-           0      0.00000000  N(1900)0              789       41214   0.0      1.85000000      0.000000e+00                  N(1900)0           0      0.00000000  N(1900)~0             790      -41214   0.0      1.85000000      0.000000e+00             anti-N(1900)0           0      0.00000000  N(1900)+              793       42124   1.0      1.85000000      0.000000e+00                  N(1900)+           0      0.00000000  N(1900)~-             794      -42124  -1.0      1.85000000      0.000000e+00             anti-N(1900)-           0      0.00000000  N(1990)0              630       12118   0.0      1.95000000      0.000000e+00                  N(1990)0           0      0.00000000  N(1990)~0             631      -12118   0.0      1.95000000      0.000000e+00             anti-N(1990)0           0      0.00000000  N(1990)+              642       12218   1.0      1.95000000      0.000000e+00                  N(1990)+           0      0.00000000  N(1990)~-             643      -12218  -1.0      1.95000000      0.000000e+00             anti-N(1990)-           0      0.00000000  N(2090)0              799       52114   0.0      2.00000000      0.000000e+00                  N(2090)0           0      0.00000000  N(2090)~0             800      -52114   0.0      2.00000000      0.000000e+00             anti-N(2090)0           0      0.00000000  N(2090)+              801       52214   1.0      2.00000000      0.000000e+00                  N(2090)+           0      0.00000000  N(2090)~-             802      -52214  -1.0      2.00000000      0.000000e+00             anti-N(2090)-           0      0.00000000  N(2190)0              408        1218   0.0      2.19000000      1.316424e-24                  N(2190)0           0      0.00000000  N(2190)~0             409       -1218   0.0      2.19000000      1.316424e-24             anti-N(2190)0           0      0.00000000  N(2190)+              424        2128   1.0      2.19000000      1.316424e-24                  N(2190)+           0      0.00000000  N(2190)~-             425       -2128  -1.0      2.19000000      1.316424e-24             anti-N(2190)-           0      0.00000000  Delta-                182        1114  -1.0      1.23200000      5.625745e-24                    Delta-        1114      0.00000000  Delta~+               186       -1114   1.0      1.23200000      5.625745e-24               anti-Delta+       -1114      0.00000000  Delta0                181        2114   0.0      1.23200000      5.625745e-24                    Delta0        2114      0.00000000  Delta~0               185       -2114   0.0      1.23200000      5.625745e-24               anti-Delta0       -2114      0.00000000  Delta+                180        2214   1.0      1.23200000      5.625745e-24                    Delta+        2214      0.00000000  Delta~-               184       -2214  -1.0      1.23200000      5.625745e-24               anti-Delta-       -2214      0.00000000  Delta++               179        2224   2.0      1.23200000      5.625745e-24                   Delta++        2224      0.00000000  Delta~--              183       -2224  -2.0      1.23200000      5.625745e-24              anti-Delta--       -2224      0.00000000  Delta(1600)-          767       31114  -1.0      1.60000000      2.056913e-24              Delta(1600)-           0      0.00000000  Delta(1600)~+         768      -31114   1.0      1.60000000      2.056913e-24         anti-Delta(1600)+           0      0.00000000  Delta(1600)0          773       32114   0.0      1.60000000      2.056913e-24              Delta(1600)0           0      0.00000000  Delta(1600)~0         774      -32114   0.0      1.60000000      2.056913e-24         anti-Delta(1600)0           0      0.00000000  Delta(1600)+          779       32214   1.0      1.60000000      2.056913e-24              Delta(1600)+           0      0.00000000  Delta(1600)~-         780      -32214  -1.0      1.60000000      2.056913e-24         anti-Delta(1600)-           0      0.00000000  Delta(1600)++         781       32224   2.0      1.60000000      2.056913e-24             Delta(1600)++           0      0.00000000  Delta(1600)~--        782      -32224  -2.0      1.60000000      2.056913e-24        anti-Delta(1600)--           0      0.00000000  Delta(1620)-          396        1112  -1.0      1.63000000      4.701516e-24              Delta(1620)-           0      0.00000000  Delta(1620)~+         397       -1112   1.0      1.63000000      4.701516e-24         anti-Delta(1620)+           0      0.00000000  Delta(1620)0          402        1212   0.0      1.63000000      4.701516e-24              Delta(1620)0           0      0.00000000  Delta(1620)~0         403       -1212   0.0      1.63000000      4.701516e-24         anti-Delta(1620)0           0      0.00000000  Delta(1620)+          418        2122   1.0      1.63000000      4.701516e-24              Delta(1620)+           0      0.00000000  Delta(1620)~-         419       -2122  -1.0      1.63000000      4.701516e-24         anti-Delta(1620)-           0      0.00000000  Delta(1620)++         432        2222   2.0      1.63000000      4.701516e-24             Delta(1620)++           0      0.00000000  Delta(1620)~--        433       -2222  -2.0      1.63000000      4.701516e-24        anti-Delta(1620)--           0      0.00000000  Delta(1700)-          616       11114  -1.0      1.70000000      2.194041e-24              Delta(1700)-           0      0.00000000  Delta(1700)~+         617      -11114   1.0      1.70000000      2.194041e-24         anti-Delta(1700)+           0      0.00000000  Delta(1700)0          626       12114   0.0      1.70000000      2.194041e-24              Delta(1700)0           0      0.00000000  Delta(1700)~0         627      -12114   0.0      1.70000000      2.194041e-24         anti-Delta(1700)0           0      0.00000000  Delta(1700)+          638       12214   1.0      1.70000000      2.194041e-24              Delta(1700)+           0      0.00000000  Delta(1700)~-         639      -12214  -1.0      1.70000000      2.194041e-24         anti-Delta(1700)-           0      0.00000000  Delta(1700)++         646       12224   2.0      1.70000000      2.194041e-24             Delta(1700)++           0      0.00000000  Delta(1700)~--        647      -12224  -2.0      1.70000000      2.194041e-24        anti-Delta(1700)--           0      0.00000000  Delta(1900)-          614       11112  -1.0      1.84000000      0.000000e+00              Delta(1900)-           0      0.00000000  Delta(1900)~+         615      -11112   1.0      1.84000000      0.000000e+00         anti-Delta(1900)+           0      0.00000000  Delta(1900)0          620       11212   0.0      1.93000000      1.880606e-24              Delta(1900)0           0      0.00000000  Delta(1900)~0         621      -11212   0.0      1.93000000      1.880606e-24         anti-Delta(1900)0           0      0.00000000  Delta(1900)+          632       12122   1.0      1.84000000      0.000000e+00              Delta(1900)+           0      0.00000000  Delta(1900)~-         633      -12122  -1.0      1.84000000      0.000000e+00         anti-Delta(1900)-           0      0.00000000  Delta(1900)++         644       12222   2.0      1.84000000      0.000000e+00             Delta(1900)++           0      0.00000000  Delta(1900)~--        645      -12222  -2.0      1.84000000      0.000000e+00        anti-Delta(1900)--           0      0.00000000  Delta(1905)-          398        1116  -1.0      1.88000000      1.994582e-24              Delta(1905)-           0      0.00000000  Delta(1905)~+         399       -1116   1.0      1.88000000      1.994582e-24         anti-Delta(1905)+           0      0.00000000  Delta(1905)0          406        1216   0.0      1.88000000      1.994582e-24              Delta(1905)0           0      0.00000000  Delta(1905)~0         407       -1216   0.0      1.88000000      1.994582e-24         anti-Delta(1905)0           0      0.00000000  Delta(1905)+          422        2126   1.0      1.88000000      1.994582e-24              Delta(1905)+           0      0.00000000  Delta(1905)~-         423       -2126  -1.0      1.88000000      1.994582e-24         anti-Delta(1905)-           0      0.00000000  Delta(1905)++         434        2226   2.0      1.88000000      1.994582e-24             Delta(1905)++           0      0.00000000  Delta(1905)~--        435       -2226  -2.0      1.88000000      1.994582e-24        anti-Delta(1905)--           0      0.00000000  Delta(1910)-          697       21112  -1.0      1.89000000      2.350758e-24              Delta(1910)-           0      0.00000000  Delta(1910)~+         698      -21112   1.0      1.89000000      2.350758e-24         anti-Delta(1910)+           0      0.00000000  Delta(1910)0          701       21212   0.0      1.89000000      2.350758e-24              Delta(1910)0           0      0.00000000  Delta(1910)~0         702      -21212   0.0      1.89000000      2.350758e-24         anti-Delta(1910)0           0      0.00000000  Delta(1910)+          709       22122   1.0      1.89000000      2.350758e-24              Delta(1910)+           0      0.00000000  Delta(1910)~-         710      -22122  -1.0      1.89000000      2.350758e-24         anti-Delta(1910)-           0      0.00000000  Delta(1910)++         717       22222   2.0      1.89000000      2.350758e-24             Delta(1910)++           0      0.00000000  Delta(1910)~--        718      -22222  -2.0      1.89000000      2.350758e-24        anti-Delta(1910)--           0      0.00000000  Delta(1920)-          699       21114  -1.0      1.92000000      2.531585e-24              Delta(1920)-           0      0.00000000  Delta(1920)~+         700      -21114   1.0      1.92000000      2.531585e-24         anti-Delta(1920)+           0      0.00000000  Delta(1920)0          707       22114   0.0      1.92000000      2.531585e-24              Delta(1920)0           0      0.00000000  Delta(1920)~0         708      -22114   0.0      1.92000000      2.531585e-24         anti-Delta(1920)0           0      0.00000000  Delta(1920)+          715       22214   1.0      1.92000000      2.531585e-24              Delta(1920)+           0      0.00000000  Delta(1920)~-         716      -22214  -1.0      1.92000000      2.531585e-24         anti-Delta(1920)-           0      0.00000000  Delta(1920)++         719       22224   2.0      1.92000000      2.531585e-24             Delta(1920)++           0      0.00000000  Delta(1920)~--        720      -22224  -2.0      1.92000000      2.531585e-24        anti-Delta(1920)--           0      0.00000000  Delta(1930)-          618       11116  -1.0      1.95000000      1.828367e-24              Delta(1930)-           0      0.00000000  Delta(1930)~+         619      -11116   1.0      1.95000000      1.828367e-24         anti-Delta(1930)+           0      0.00000000  Delta(1930)0          622       11216   0.0      1.95000000      1.828367e-24              Delta(1930)0           0      0.00000000  Delta(1930)~0         623      -11216   0.0      1.95000000      1.828367e-24         anti-Delta(1930)0           0      0.00000000  Delta(1930)+          634       12126   1.0      1.95000000      1.828367e-24              Delta(1930)+           0      0.00000000  Delta(1930)~-         635      -12126  -1.0      1.95000000      1.828367e-24         anti-Delta(1930)-           0      0.00000000  Delta(1930)++         648       12226   2.0      1.95000000      1.828367e-24             Delta(1930)++           0      0.00000000  Delta(1930)~--        649      -12226  -2.0      1.95000000      1.828367e-24        anti-Delta(1930)--           0      0.00000000  Delta(1950)-          400        1118  -1.0      1.93000000      2.350758e-24              Delta(1950)-           0      0.00000000  Delta(1950)~+         401       -1118   1.0      1.93000000      2.350758e-24         anti-Delta(1950)+           0      0.00000000  Delta(1950)0          416        2118   0.0      1.93000000      2.350758e-24              Delta(1950)0           0      0.00000000  Delta(1950)~0         417       -2118   0.0      1.93000000      2.350758e-24         anti-Delta(1950)0           0      0.00000000  Delta(1950)+          430        2218   1.0      1.93000000      2.350758e-24              Delta(1950)+           0      0.00000000  Delta(1950)~-         431       -2218  -1.0      1.93000000      2.350758e-24         anti-Delta(1950)-           0      0.00000000  Delta(1950)++         436        2228   2.0      1.93000000      2.350758e-24             Delta(1950)++           0      0.00000000  Delta(1950)~--        437       -2228  -2.0      1.93000000      2.350758e-24        anti-Delta(1950)--           0      0.00000000  Lambda0                18        3122   0.0      1.11568300      2.632000e-10                   Lambda0        3122      0.00000000  Lambda~0               26       -3122   0.0      1.11568300      2.632000e-10              anti-Lambda0       -3122      0.00000000  Lambda(1405)0         656       13122   0.0      1.40510000      1.316424e-23             Lambda(1405)0           0      0.00000000  Lambda(1405)~0        657      -13122   0.0      1.40510000      1.316424e-23        anti-Lambda(1405)0           0      0.00000000  Lambda(1520)0         448        3124   0.0      1.51950000      4.219309e-23             Lambda(1520)0           0      0.00000000  Lambda(1520)~0        449       -3124   0.0      1.51950000      4.219309e-23        anti-Lambda(1520)0           0      0.00000000  Lambda(1600)0         725       23122   0.0      1.60000000      4.388081e-24             Lambda(1600)0           0      0.00000000  Lambda(1600)~0        726      -23122   0.0      1.60000000      4.388081e-24        anti-Lambda(1600)0           0      0.00000000  Lambda(1670)0         783       33122   0.0      1.67000000      1.880606e-23             Lambda(1670)0           0      0.00000000  Lambda(1670)~0        784      -33122   0.0      1.67000000      1.880606e-23        anti-Lambda(1670)0           0      0.00000000  Lambda(1690)0         658       13124   0.0      1.69000000      1.097020e-23             Lambda(1690)0           0      0.00000000  Lambda(1690)~0        659      -13124   0.0      1.69000000      1.097020e-23        anti-Lambda(1690)0           0      0.00000000  Lambda(1800)0         797       43122   0.0      1.80000000      2.194041e-24             Lambda(1800)0           0      0.00000000  Lambda(1800)~0        798      -43122   0.0      1.80000000      2.194041e-24        anti-Lambda(1800)0           0      0.00000000  Lambda(1810)0         803       53122   0.0      1.81000000      4.388081e-24             Lambda(1810)0           0      0.00000000  Lambda(1810)~0        804      -53122   0.0      1.81000000      4.388081e-24        anti-Lambda(1810)0           0      0.00000000  Lambda(1820)0         450        3126   0.0      1.82000000      8.227652e-24             Lambda(1820)0           0      0.00000000  Lambda(1820)~0        451       -3126   0.0      1.82000000      8.227652e-24        anti-Lambda(1820)0           0      0.00000000  Lambda(1830)0         660       13126   0.0      1.83000000      6.928549e-24             Lambda(1830)0           0      0.00000000  Lambda(1830)~0        661      -13126   0.0      1.83000000      6.928549e-24        anti-Lambda(1830)0           0      0.00000000  Lambda(1890)0         727       23124   0.0      1.89000000      6.582122e-24             Lambda(1890)0           0      0.00000000  Lambda(1890)~0        728      -23124   0.0      1.89000000      6.582122e-24        anti-Lambda(1890)0           0      0.00000000  Lambda(2100)0         452        3128   0.0      2.10000000      3.291061e-24                   unknown           0      0.00000000  Lambda(2100)~0        453       -3128   0.0      2.10000000      3.291061e-24                   unknown           0      0.00000000  Lambda(2110)0         729       23126   0.0      2.11000000      3.291061e-24                   unknown           0      0.00000000  Lambda(2110)~0        730      -23126   0.0      2.11000000      3.291061e-24                   unknown           0      0.00000000  Sigma-                 21        3112  -1.0      1.19744900      1.479000e-10                    Sigma-        3112      0.00000000  Sigma~+                29       -3112   1.0      1.19744900      1.479000e-10               anti-Sigma+       -3112      0.00000000  Sigma0                 20        3212   0.0      1.19264200      7.400000e-20                    Sigma0        3212      0.00000000  Sigma~0                28       -3212   0.0      1.19264200      7.400000e-20               anti-Sigma0       -3212      0.00000000  Sigma+                 19        3222   1.0      1.18937000      8.018000e-11                    Sigma+        3222      0.00000000  Sigma~-                27       -3222  -1.0      1.18937000      8.018000e-11               anti-Sigma-       -3222      0.00000000  Sigma*-               442        3114  -1.0      1.38720000      1.670589e-23                   Sigma*-        3114      0.00000000  Sigma*~+              443       -3114   1.0      1.38720000      1.670589e-23              anti-Sigma*+       -3114      0.00000000  Sigma*0               458        3214   0.0      1.38370000      1.828367e-23                   Sigma*0        3214      0.00000000  Sigma*~0              459       -3214   0.0      1.38370000      1.828367e-23              anti-Sigma*0       -3214      0.00000000  Sigma*+               464        3224   1.0      1.38280000      1.828367e-23                   Sigma*+        3224      0.00000000  Sigma*~-              465       -3224  -1.0      1.38280000      1.828367e-23              anti-Sigma*-       -3224      0.00000000  Sigma(1660)-          650       13112  -1.0      1.66000000      6.582122e-24              Sigma(1660)-           0      0.00000000  Sigma(1660)~+         651      -13112   1.0      1.66000000      6.582122e-24         anti-Sigma(1660)+           0      0.00000000  Sigma(1660)0          662       13212   0.0      1.66000000      6.582122e-24              Sigma(1660)0           0      0.00000000  Sigma(1660)~0         663      -13212   0.0      1.66000000      6.582122e-24         anti-Sigma(1660)0           0      0.00000000  Sigma(1660)+          668       13222   1.0      1.66000000      6.582122e-24              Sigma(1660)+           0      0.00000000  Sigma(1660)~-         669      -13222  -1.0      1.66000000      6.582122e-24         anti-Sigma(1660)-           0      0.00000000  Sigma(1670)-          652       13114  -1.0      1.67000000      1.097020e-23              Sigma(1670)-           0      0.00000000  Sigma(1670)~+         653      -13114   1.0      1.67000000      1.097020e-23         anti-Sigma(1670)+           0      0.00000000  Sigma(1670)0          664       13214   0.0      1.67000000      1.097020e-23              Sigma(1670)0           0      0.00000000  Sigma(1670)~0         665      -13214   0.0      1.67000000      1.097020e-23         anti-Sigma(1670)0           0      0.00000000  Sigma(1670)+          670       13224   1.0      1.67000000      1.097020e-23              Sigma(1670)+           0      0.00000000  Sigma(1670)~-         671      -13224  -1.0      1.67000000      1.097020e-23         anti-Sigma(1670)-           0      0.00000000  Sigma(1750)-          721       23112  -1.0      1.75000000      7.313469e-24              Sigma(1750)-           0      0.00000000  Sigma(1750)~+         722      -23112   1.0      1.75000000      7.313469e-24         anti-Sigma(1750)+           0      0.00000000  Sigma(1750)0          731       23212   0.0      1.75000000      7.313469e-24              Sigma(1750)0           0      0.00000000  Sigma(1750)~0         732      -23212   0.0      1.75000000      7.313469e-24         anti-Sigma(1750)0           0      0.00000000  Sigma(1750)+          735       23222   1.0      1.75000000      7.313469e-24              Sigma(1750)+           0      0.00000000  Sigma(1750)~-         736      -23222  -1.0      1.75000000      7.313469e-24         anti-Sigma(1750)-           0      0.00000000  Sigma(1775)-          444        3116  -1.0      1.77500000      5.485102e-24              Sigma(1775)-           0      0.00000000  Sigma(1775)~+         445       -3116   1.0      1.77500000      5.485102e-24         anti-Sigma(1775)+           0      0.00000000  Sigma(1775)0          460        3216   0.0      1.77500000      5.485102e-24              Sigma(1775)0           0      0.00000000  Sigma(1775)~0         461       -3216   0.0      1.77500000      5.485102e-24         anti-Sigma(1775)0           0      0.00000000  Sigma(1775)+          466        3226   1.0      1.77500000      5.485102e-24              Sigma(1775)+           0      0.00000000  Sigma(1775)~-         467       -3226  -1.0      1.77500000      5.485102e-24         anti-Sigma(1775)-           0      0.00000000  Sigma(1915)-          654       13116  -1.0      1.91500000      5.485102e-24              Sigma(1915)-           0      0.00000000  Sigma(1915)~+         655      -13116   1.0      1.91500000      5.485102e-24         anti-Sigma(1915)+           0      0.00000000  Sigma(1915)0          666       13216   0.0      1.91500000      5.485102e-24              Sigma(1915)0           0      0.00000000  Sigma(1915)~0         667      -13216   0.0      1.91500000      5.485102e-24         anti-Sigma(1915)0           0      0.00000000  Sigma(1915)+          672       13226   1.0      1.91500000      5.485102e-24              Sigma(1915)+           0      0.00000000  Sigma(1915)~-         673      -13226  -1.0      1.91500000      5.485102e-24         anti-Sigma(1915)-           0      0.00000000  Sigma(1940)-          723       23114  -1.0      1.94000000      2.991874e-24              Sigma(1940)-           0      0.00000000  Sigma(1940)~+         724      -23114   1.0      1.94000000      2.991874e-24         anti-Sigma(1940)+           0      0.00000000  Sigma(1940)0          733       23214   0.0      1.94000000      2.991874e-24              Sigma(1940)0           0      0.00000000  Sigma(1940)~0         734      -23214   0.0      1.94000000      2.991874e-24         anti-Sigma(1940)0           0      0.00000000  Sigma(1940)+          737       23224   1.0      1.94000000      2.991874e-24              Sigma(1940)+           0      0.00000000  Sigma(1940)~-         738      -23224  -1.0      1.94000000      2.991874e-24         anti-Sigma(1940)-           0      0.00000000  Sigma(2030)0          462        3218   0.0      2.03000000      3.656734e-24                   unknown           0      0.00000000  Sigma(2030)~0         463       -3218   0.0      2.03000000      3.656734e-24                   unknown           0      0.00000000  Sigma(2030)+          468        3228   1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000  Sigma(2030)~-         469       -3228  -1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000  Sigma(2030)-          446        3118  -1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000  Sigma(2030)~+         447       -3118   1.0      2.03000000      3.656734e-24                   unknown           0      0.00000000  Sigma(2250)0         1059      103212   0.0      2.25000000      6.580000e-24              Sigma(2250)0           0      0.00000000  Sigma(2250)~0        1060     -103212   0.0      2.25000000      6.580000e-24         anti-Sigma(2250)0           0      0.00000000  Sigma(2250)+         1061      103222   1.0      2.25000000      6.580000e-24              Sigma(2250)+           0      0.00000000  Sigma(2250)~-        1062     -103222  -1.0      2.25000000      6.580000e-24         anti-Sigma(2250)-           0      0.00000000  Sigma(2250)-         1063      103112  -1.0      2.25000000      6.580000e-24              Sigma(2250)-           0      0.00000000  Sigma(2250)~+        1064     -103112   1.0      2.25000000      6.580000e-24         anti-Sigma(2250)+           0      0.00000000  Xi-                    23        3312  -1.0      1.32171000      1.639000e-10                       Xi-        3312      0.00000000  Xi~+                   31       -3312   1.0      1.32171000      1.639000e-10                  anti-Xi+       -3312      0.00000000  Xi0                    22        3322   0.0      1.31486000      2.900000e-10                       Xi0        3322      0.00000000  Xi~0                   30       -3322   0.0      1.31486000      2.900000e-10                  anti-Xi0       -3322      0.00000000  Xi*-                  472        3314  -1.0      1.53500000      6.648608e-23                      Xi*-        3314      0.00000000  Xi*~+                 473       -3314   1.0      1.53500000      6.648608e-23                 anti-Xi*+       -3314      0.00000000  Xi*0                  474        3324   0.0      1.53180000      7.233101e-23                      Xi*0        3324      0.00000000  Xi*~0                 475       -3324   0.0      1.53180000      7.233101e-23                 anti-Xi*0       -3324      0.00000000  Xi(1690)-            1033      203312  -1.0      1.69000000      0.000000e+00                 Xi(1690)-           0      0.00000000  Xi(1690)~+           1034     -203312   1.0      1.69000000      0.000000e+00            anti-Xi(1690)+           0      0.00000000  Xi(1690)0            1035      203322   0.0      1.69000000      0.000000e+00                 Xi(1690)0           0      0.00000000  Xi(1690)~0           1036     -203322   0.0      1.69000000      0.000000e+00            anti-Xi(1690)0           0      0.00000000  Xi(1820)-             674       13314  -1.0      1.82300000      2.742551e-23                   unknown           0      0.00000000  Xi(1820)~+            675      -13314   1.0      1.82300000      2.742551e-23                   unknown           0      0.00000000  Xi(1820)0             678       13324   0.0      1.82300000      2.742551e-23                   unknown           0      0.00000000  Xi(1820)~0            679      -13324   0.0      1.82300000      2.742551e-23                   unknown           0      0.00000000  Xi(1950)-            1037      103316  -1.0      1.95000000      1.097020e-23                 Xi(1950)-           0      0.00000000  Xi(1950)~+           1038     -103316   1.0      1.95000000      1.097020e-23            anti-Xi(1950)+           0      0.00000000  Xi(1950)0            1039      103326   0.0      1.95000000      1.097020e-23                 Xi(1950)0           0      0.00000000  Xi(1950)~0           1040     -103326   0.0      1.95000000      1.097020e-23            anti-Xi(1950)0           0      0.00000000  Xi(2030)-            1041      203316  -1.0      2.02500000      3.291061e-23                 Xi(2030)-           0      0.00000000  Xi(2030)~+           1042     -203316   1.0      2.02500000      3.291061e-23            anti-Xi(2030)+           0      0.00000000  Xi(2030)0            1043      203326   0.0      2.02500000      3.291061e-23                 Xi(2030)0           0      0.00000000  Xi(2030)~0           1044     -203326   0.0      2.02500000      3.291061e-23            anti-Xi(2030)0           0      0.00000000  Omega-                 24        3334  -1.0      1.67245000      8.210000e-11                    Omega-        3334      0.00000000  Omega~+                32       -3334   1.0      1.67245000      8.210000e-11               anti-Omega+       -3334      0.00000000  Omega(2250)-         1045      203338  -1.0      2.25200000      1.196749e-23              Omega(2250)-           0      0.00000000  Omega(2250)~+        1046     -203338   1.0      2.25200000      1.196749e-23         anti-Omega(2250)+           0      0.00000000  Lambda_c+              62        4122   1.0      2.28646000      2.000000e-13                 Lambda_c+        4122      0.00000000  Lambda_c~-             63       -4122  -1.0      2.28646000      2.000000e-13            anti-Lambda_c-       -4122      0.00000000  Lambda_c(2595)+       682       14122   1.0      2.59225000      2.531585e-22           Lambda_c(2593)+           0      0.00000000  Lambda_c(2595)~-      683      -14122  -1.0      2.59225000      2.531585e-22      anti-Lambda_c(2593)-           0      0.00000000  Lambda_c(2625)+      1047      104124   1.0      2.62811000      0.000000e+00           Lambda_c(2625)+           0      0.00000000  Lambda_c(2625)~-     1048     -104124  -1.0      2.62811000      0.000000e+00      anti-Lambda_c(2625)-           0      0.00000000  Lambda_c(2880)+      1049      204126   1.0      2.88153000      1.134849e-22           Lambda_c(2880)+           0      0.00000000  Lambda_c(2880)~-     1050     -204126  -1.0      2.88153000      1.134849e-22      anti-Lambda_c(2880)-           0      0.00000000  Sigma_c0               81        4112   0.0      2.45374000      3.047279e-22                  Sigma_c0        4112      0.00000000  Sigma_c~0              82       -4112   0.0      2.45374000      3.047279e-22             anti-Sigma_c0       -4112      0.00000000  Sigma_c+               83        4212   1.0      2.45290000      3.999999e-22                  Sigma_c+        4212      0.00000000  Sigma_c~-              84       -4212  -1.0      2.45290000      3.999999e-22             anti-Sigma_c-       -4212      0.00000000  Sigma_c++              85        4222   2.0      2.45398000      2.912443e-22                 Sigma_c++        4222      0.00000000  Sigma_c~--             86       -4222  -2.0      2.45398000      2.912443e-22            anti-Sigma_c--       -4222      0.00000000  Sigma_c*0             480        4114   0.0      2.51880000      4.539394e-23                 Sigma_c*0        4114      0.00000000  Sigma_c*~0            481       -4114   0.0      2.51880000      4.539394e-23            anti-Sigma_c*0       -4114      0.00000000  Sigma_c*+             486        4214   1.0      2.51750000      3.291061e-22                 Sigma_c*+        4214      0.00000000  Sigma_c*~-            487       -4214  -1.0      2.51750000      3.291061e-22            anti-Sigma_c*-       -4214      0.00000000  Sigma_c*++            488        4224   2.0      2.51790000      4.417531e-23                Sigma_c*++        4224      0.00000000  Sigma_c*~--           489       -4224  -2.0      2.51790000      4.417531e-23           anti-Sigma_c*--       -4224      0.00000000  Xi_c0                 106        4132   0.0      2.47088000      1.120000e-13                     Xi_c0        4132      0.00000000  Xi_c~0                107       -4132   0.0      2.47088000      1.120000e-13                anti-Xi_c0       -4132      0.00000000  Xi_c+                 108        4232   1.0      2.46780000      4.420000e-13                     Xi_c+        4232      0.00000000  Xi_c~-                109       -4232  -1.0      2.46780000      4.420000e-13                anti-Xi_c-       -4232      0.00000000  Xi'_c0                100        4312   0.0      2.57790000      0.000000e+00                    Xi'_c0        4312      0.00000000  Xi'_c~0               101       -4312   0.0      2.57790000      0.000000e+00               anti-Xi'_c0       -4312      0.00000000  Xi'_c+                102        4322   1.0      2.57560000      0.000000e+00                    Xi'_c+        4322      0.00000000  Xi'_c~-               103       -4322  -1.0      2.57560000      0.000000e+00               anti-Xi'_c-       -4322      0.00000000  Xi_c*0                494        4314   0.0      2.64590000      0.000000e+00                    Xi_c*0        4314      0.00000000  Xi_c*~0               495       -4314   0.0      2.64590000      0.000000e+00               anti-Xi_c*0       -4314      0.00000000  Xi_c*+                496        4324   1.0      2.64590000      0.000000e+00                    Xi_c*+        4324      0.00000000  Xi_c*~-               497       -4324  -1.0      2.64590000      0.000000e+00               anti-Xi_c*-       -4324      0.00000000  Xi_c(2790)+          1051      104324   1.0      2.78910000      0.000000e+00               Xi_c(2790)+           0      0.00000000  Xi_c(2790)~-         1052     -104324  -1.0      2.78910000      0.000000e+00          anti-Xi_c(2790)-           0      0.00000000  Xi_c(2790)0          1053      104314   0.0      2.79180000      0.000000e+00               Xi_c(2790)0           0      0.00000000  Xi_c(2790)~0         1054     -104314   0.0      2.79180000      0.000000e+00          anti-Xi_c(2790)0           0      0.00000000  Xi_c(2815)+          1055      104322   1.0      2.81660000      0.000000e+00               Xi_c(2815)+           0      0.00000000  Xi_c(2815)~-         1056     -104322  -1.0      2.81660000      0.000000e+00          anti-Xi_c(2815)-           0      0.00000000  Xi_c(2815)0          1057      104312   0.0      2.81960000      0.000000e+00               Xi_c(2815)0           0      0.00000000  Xi_c(2815)~0         1058     -104312   0.0      2.81960000      0.000000e+00          anti-Xi_c(2815)0           0      0.00000000  Omega_c0              104        4332   0.0      2.69520000      6.900000e-14                  Omega_c0        4332      0.00000000  Omega_c~0             105       -4332   0.0      2.69520000      6.900000e-14             anti-Omega_c0       -4332      0.00000000  Omega_c*0             498        4334   0.0      2.76590000      0.000000e+00                 Omega_c*0        4334      0.00000000  Omega_c*~0            499       -4334   0.0      2.76590000      0.000000e+00            anti-Omega_c*0       -4334      0.00000000  Xi_cc+                502        4412   1.0      3.62140000      3.335641e-13                    Xi_cc+        4412      0.00000000  Xi_cc~-               503       -4412  -1.0      3.62140000      3.335641e-13               anti-Xi_cc-       -4412      0.00000000  Xi*_cc+               504        4414   1.0      3.65648000      0.000000e+00                   Xi_cc*+        4414      0.00000000  Xi*_cc~-              505       -4414  -1.0      3.65648000      0.000000e+00              anti-Xi_cc*-       -4414      0.00000000  Xi_cc++               506        4422   2.0      3.62140000      3.335641e-13                   Xi_cc++        4422      0.00000000  Xi_cc~--              507       -4422  -2.0      3.62140000      3.335641e-13              anti-Xi_cc--       -4422      0.00000000  Xi*_cc++              508        4424   2.0      3.65648000      0.000000e+00                  Xi_cc*++        4424      0.00000000  Xi*_cc~--             509       -4424  -2.0      3.65648000      0.000000e+00             anti-Xi_cc*--       -4424      0.00000000  Omega_cc+             510        4432   1.0      3.78663000      3.335641e-13                 Omega_cc+        4432      0.00000000  Omega_cc~-            511       -4432  -1.0      3.78663000      3.335641e-13            anti-Omega_cc-       -4432      0.00000000  Omega*_cc+            512        4434   1.0      3.82466000      0.000000e+00                Omega_cc*+        4434      0.00000000  Omega*_cc~-           513       -4434  -1.0      3.82466000      0.000000e+00           anti-Omega_cc*-       -4434      0.00000000  Omega*_ccc++          514        4444   2.0      4.91594000      0.000000e+00                   unknown        4444      0.00000000  Omega*_ccc~--         515       -4444  -2.0      4.91594000      0.000000e+00                   unknown       -4444      0.00000000  Lambda_b0              79        5122   0.0      5.61950000      1.451000e-12                 Lambda_b0        5122      0.00000000  Lambda_b~0             80       -5122   0.0      5.61950000      1.451000e-12            anti-Lambda_b0       -5122      0.00000000  Lambda_b(5912)0      1065       15122   0.0      5.91197000      1.316000e-21           Lambda_b(5912)0       15122      0.00000000  Lambda_b(5912)~0     1066      -15122   0.0      5.91197000      1.316000e-21      anti-Lambda_b(5912)0      -15122      0.00000000  Lambda_b(5920)0      1067        5124   0.0      5.91977000      1.316000e-21           Lambda_b(5920)0        5124      0.00000000  Lambda_b(5920)~0     1068       -5124   0.0      5.91977000      1.316000e-21      anti-Lambda_b(5920)0       -5124      0.00000000  Sigma_b-              114        5112  -1.0      5.81550000      1.343290e-22                  Sigma_b-        5112      0.00000000  Sigma_b~+             115       -5112   1.0      5.81550000      1.343290e-22             anti-Sigma_b+       -5112      0.00000000  Sigma_b0              112        5212   0.0      5.80780000      1.000000e-19                  Sigma_b0        5212      0.00000000  Sigma_b~0             113       -5212   0.0      5.80780000      1.000000e-19             anti-Sigma_b0       -5212      0.00000000  Sigma_b+              110        5222   1.0      5.81130000      6.785693e-23                  Sigma_b+        5222      0.00000000  Sigma_b~-             111       -5222  -1.0      5.81130000      6.785693e-23             anti-Sigma_b-       -5222      0.00000000  Sigma_b*-             520        5114  -1.0      5.83510000      8.776160e-23                 Sigma_b*-        5114      0.00000000  Sigma_b*~+            521       -5114   1.0      5.83510000      8.776160e-23            anti-Sigma_b*+       -5114      0.00000000  Sigma_b*0             528        5214   0.0      5.82900000      0.000000e+00                 Sigma_b*0        5214      0.00000000  Sigma_b*~0            529       -5214   0.0      5.82900000      0.000000e+00            anti-Sigma_b*0       -5214      0.00000000  Sigma_b*+             530        5224   1.0      5.83210000      5.723583e-23                 Sigma_b*+        5224      0.00000000  Sigma_b*~-            531       -5224  -1.0      5.83210000      5.723583e-23            anti-Sigma_b*-       -5224      0.00000000  Xi_b-                 122        5132  -1.0      5.79490000      1.560000e-12                     Xi_b-        5132      0.00000000  Xi_b~+                123       -5132   1.0      5.79490000      1.560000e-12                anti-Xi_b+       -5132      0.00000000  Xi_b0                 124        5232   0.0      5.79310000      1.490000e-12                     Xi_b0        5232      0.00000000  Xi_b~0                125       -5232   0.0      5.79310000      1.490000e-12                anti-Xi_b0       -5232      0.00000000  Xi'_b-                116        5312  -1.0      5.96000000      1.000000e-19                    Xi'_b-        5312      0.00000000  Xi'_b~+               117       -5312   1.0      5.96000000      1.000000e-19               anti-Xi'_b+       -5312      0.00000000  Xi'_b0                118        5322   0.0      5.96000000      1.000000e-19                    Xi'_b0        5322      0.00000000  Xi'_b~0               119       -5322   0.0      5.96000000      1.000000e-19               anti-Xi'_b0       -5322      0.00000000  Xi_b*-                538        5314  -1.0      5.97000000      0.000000e+00                    Xi_b*-        5314      0.00000000  Xi_b*~+               539       -5314   1.0      5.97000000      0.000000e+00               anti-Xi_b*+       -5314      0.00000000  Xi_b*0                540        5324   0.0      5.97000000      0.000000e+00                    Xi_b*0        5324      0.00000000  Xi_b*~0               541       -5324   0.0      5.97000000      0.000000e+00               anti-Xi_b*0       -5324      0.00000000  Omega_b*-             542        5334  -1.0      6.13000000      0.000000e+00                 Omega_b*-        5334      0.00000000  Omega_b*~+            543       -5334   1.0      6.13000000      0.000000e+00            anti-Omega_b*+       -5334      0.00000000  Omega_b-              120        5332  -1.0      6.04880000      1.100000e-12                  Omega_b-        5332      0.00000000  Omega_b~+             121       -5332   1.0      6.04880000      1.100000e-12             anti-Omega_b+       -5332      0.00000000  Xi_bc0                522        5142   0.0      6.90000000      0.500000e-12                    Xi_bc0        5142      0.00000000  Xi_bc~0               523       -5142   0.0      6.90000000      0.500000e-12               anti-Xi_bc0       -5142      0.00000000  Xi_bc+                532        5242   1.0      6.90000000      0.500000e-12                    Xi_bc+        5242      0.00000000  Xi_bc~-               533       -5242  -1.0      6.90000000      0.500000e-12               anti-Xi_bc-       -5242      0.00000000  Omega_bc0             544        5342   0.0      7.19099000      0.500000e-12                   unknown        5342      0.00000000  Omega_bc~0            545       -5342   0.0      7.19099000      0.500000e-12                   unknown       -5342      0.00000000  Xi'_bc0               550        5412   0.0      7.03724000      0.000000e+00                   unknown        5412      0.00000000  Xi'_bc~0              551       -5412   0.0      7.03724000      0.000000e+00                   unknown       -5412      0.00000000  Xi*_bc0               552        5414   0.0      7.04850000      0.000000e+00                   unknown        5414      0.00000000  Xi*_bc~0              553       -5414   0.0      7.04850000      0.000000e+00                   unknown       -5414      0.00000000  Xi'_bc+               554        5422   1.0      7.03724000      0.000000e+00                   unknown        5422      0.00000000  Xi'_bc~-              555       -5422  -1.0      7.03724000      0.000000e+00                   unknown       -5422      0.00000000  Xi*_bc+               556        5424   1.0      7.04850000      0.000000e+00                   unknown        5424      0.00000000  Xi*_bc~-              557       -5424  -1.0      7.04850000      0.000000e+00                   unknown       -5424      0.00000000  Omega'_bc0            558        5432   0.0      7.21101000      0.000000e+00                   unknown        5432      0.00000000  Omega'_bc~0           559       -5432   0.0      7.21101000      0.000000e+00                   unknown       -5432      0.00000000  Omega*_bc0            560        5434   0.0      7.21900000      0.000000e+00                   unknown        5434      0.00000000  Omega*_bc~0           561       -5434   0.0      7.21900000      0.000000e+00                   unknown       -5434      0.00000000  Omega_bcc+            562        5442   1.0      8.30945000      1.290893e-12                   unknown        5442      0.00000000  Omega_bcc~-           563       -5442  -1.0      8.30945000      1.290893e-12                   unknown       -5442      0.00000000  Omega*_bcc+           564        5444   1.0      8.31325000      0.000000e+00                   unknown        5444      0.00000000  Omega*_bcc~-          565       -5444  -1.0      8.31325000      0.000000e+00                   unknown       -5444      0.00000000  Xi_bb-                568        5512  -1.0     10.42272000      1.290893e-12                   unknown        5512      0.00000000  Xi_bb~+               569       -5512   1.0     10.42272000      1.290893e-12                   unknown       -5512      0.00000000  Xi*_bb-               570        5514  -1.0     10.44144000      0.000000e+00                   unknown        5514      0.00000000  Xi*_bb~+              571       -5514   1.0     10.44144000      0.000000e+00                   unknown       -5514      0.00000000  Xi_bb0                572        5522   0.0     10.42272000      1.290893e-12                   unknown        5522      0.00000000  Xi_bb~0               573       -5522   0.0     10.42272000      1.290893e-12                   unknown       -5522      0.00000000  Xi*_bb0               574        5524   0.0     10.44144000      0.000000e+00                   unknown        5524      0.00000000  Xi*_bb~0              575       -5524   0.0     10.44144000      0.000000e+00                   unknown       -5524      0.00000000  Omega_bb-             576        5532  -1.0     10.60209000      1.290893e-12                   unknown        5532      0.00000000  Omega_bb~+            577       -5532   1.0     10.60209000      1.290893e-12                   unknown       -5532      0.00000000  Omega*_bb-            578        5534  -1.0     10.61426000      0.000000e+00                   unknown        5534      0.00000000  Omega*_bb~+           579       -5534   1.0     10.61426000      0.000000e+00                   unknown       -5534      0.00000000  Omega_bbc0            580        5542   0.0     11.70767000      1.290893e-12                   unknown        5542      0.00000000  Omega_bbc~0           581       -5542   0.0     11.70767000      1.290893e-12                   unknown       -5542      0.00000000  Omega*_bbc0           582        5544   0.0     11.71147000      0.000000e+00                   unknown        5544      0.00000000  Omega*_bbc~0          583       -5544   0.0     11.71147000      0.000000e+00                   unknown       -5544      0.00000000  Omega*_bbb-           584        5554  -1.0     15.11061000      0.000000e+00                   unknown        5554      0.00000000  Omega*_bbb~+          585       -5554   1.0     15.11061000      0.000000e+00                   unknown       -5554      0.00000000  deuteron               45  1000010020   1.0      1.87561300      1.000000e+15                  deuteron           0      0.00000000  triton                 46  1000010030   1.0      2.80925000      1.000000e+15                   tritium           0      0.00000000  alpha                  47  1000020040   2.0      3.72741700      1.000000e+15                     alpha           0      0.00000000  geantino               48   480000000   0.0      0.00000000      1.000000e+15                  geantino           0      0.00000000  opticalphoton          50       20022   0.0      0.00000000      1.000000e+16                  Cerenkov           0      0.00000000  H_10                   87          25   0.0    125.70000000      9.400000e-26                    Higgs0          25      0.00000000  H_20                   88          35   0.0    310.00000000      9.400000e-26                   Higgs'0          35      0.00000000  H_30                   89          36   0.0    310.00000000      9.400000e-26                        A0          36      0.00000000  H+                     90          37   1.0    310.00000000      9.400000e-26                    Higgs+          37      0.00000000  H-                     91         -37  -1.0    310.00000000      9.400000e-26                    Higgs-         -37      0.00000000  d                     303           1  -0.3      0.00990000      0.000000e+00                         d           1      0.00000000  anti-d                304          -1   0.3      0.00990000      0.000000e+00                    anti-d          -1      0.00000000  u                     305           2   0.7      0.00560000      0.000000e+00                         u           2      0.00000000  anti-u                306          -2  -0.7      0.00560000      0.000000e+00                    anti-u          -2      0.00000000  s                     307           3  -0.3      0.19900000      0.000000e+00                         s           3      0.00000000  anti-s                308          -3   0.3      0.19900000      0.000000e+00                    anti-s          -3      0.00000000  c                     309           4   0.7      1.35000000      0.000000e+00                         c           4      0.00000000  anti-c                310          -4  -0.7      1.35000000      0.000000e+00                    anti-c          -4      0.00000000  b                     311           5  -0.3      5.00000000      0.000000e+00                         b           5      0.00000000  anti-b                312          -5   0.3      5.00000000      0.000000e+00                    anti-b          -5      0.00000000  t                     313           6   0.7    173.50000000      3.291061e-25                         t           6      0.00000000  anti-t                314          -6  -0.7    173.50000000      3.291061e-25                    anti-t          -6      0.00000000  b'                    315           7  -0.3    400.00000000      0.000000e+00                        b'           7      0.00000000  anti-b'               316          -7   0.3    400.00000000      0.000000e+00                   anti-b'          -7      0.00000000  t'                    317           8   0.7    500.00000000      0.000000e+00                        t'           8      0.00000000  anti-t'               318          -8  -0.7    500.00000000      0.000000e+00                   anti-t'          -8      0.00000000  nu_tau                319          16   0.0      0.00000000      1.000000e+16                    nu_tau          16      0.00000000  nu_tau~               320         -16   0.0      0.00000000      1.000000e+16               anti-nu_tau         -16      0.00000000  L-                    321          17  -1.0    400.00000000      0.000000e+00                        L-          17      0.00000000  L+                    322         -17   1.0    400.00000000      0.000000e+00                        L+         -17      0.00000000  nu_L                  323          18   0.0      0.00000000      0.000000e+00                      nu_L          18      0.00000000  anti-nu_L             324         -18   0.0      0.00000000      0.000000e+00                 anti-nu_L         -18      0.00000000  g                     325          21   0.0      0.00000000      1.000000e+16                         g          21      0.00000000  Z'0                   326          32   0.0    500.00000000      0.000000e+00                       Z'0          32      0.00000000  Z''0                  327          33   0.0    900.00000000      0.000000e+00                      Z''0          33      0.00000000  W'+                   328          34   1.0    500.00000000      0.000000e+00                       W'+          34      0.00000000  W'-                   329         -34  -1.0    500.00000000      0.000000e+00                       W'-         -34      0.00000000  Graviton              330          39   0.0      0.00000000      0.000000e+00                   unknown          39      0.00000000  R0                    331          41   0.0   5000.00000000      0.000000e+00                        R0          41      0.00000000  anti-R0               332         -41   0.0   5000.00000000      0.000000e+00                   anti-R0         -41      0.00000000  LQ_ue                 333          42  -0.3    200.00000000      0.000000e+00                   unknown          42      0.00000000  LQ_uebar              334         -42   0.3    200.00000000      0.000000e+00                   unknown         -42      0.00000000  Xu0                   335          43   0.0      1.00000000      0.000000e+00                       Xu0          43      0.00000000  Xu+                   336          44   1.0      1.00000000      0.000000e+00                       Xu+          44      0.00000000  Xu-                   337         -44  -1.0      1.00000000      0.000000e+00                       Xu-         -44      0.00000000  specflav              338          81   0.0      0.00000000      0.000000e+00                  specflav          81      0.00000000  rndmflav              339          82   0.0      0.00000000      0.000000e+00                  rndmflav          82      0.00000000  anti-rndmflav         340         -82   0.0      0.00000000      0.000000e+00             anti-rndmflav         -82      0.00000000  phasespa              341          83   0.0      1.00000000      0.000000e+00                  phasespa          83      0.00000000  c-hadron              342          84   0.7      2.00000000      3.335641e-13                  c-hadron          84      0.00000000  anti-c-hadron         343         -84  -0.7      2.00000000      3.335641e-13             anti-c-hadron         -84      0.00000000  b-hadron              344          85  -0.3      5.00000000      1.290893e-12                  b-hadron          85      0.00000000  anti-b-hadron         345         -85   0.3      5.00000000      1.290893e-12             anti-b-hadron         -85      0.00000000  t-hadron              346          86   0.7    175.00000000      0.000000e+00                  t-hadron           0      0.00000000  anti-t-hadron         347         -86  -0.7    175.00000000      0.000000e+00             anti-t-hadron           0      0.00000000  b'-hadron             348          87  -0.3    400.00000000      0.000000e+00                 b'-hadron           0      0.00000000  anti-b'-hadron        349         -87   0.3    400.00000000      0.000000e+00            anti-b'-hadron           0      0.00000000  junction              350          88   0.0      0.00000000      0.000000e+00                  junction          88      0.00000000  system                351          90   0.0      0.00000000      0.000000e+00                    system          90      0.00000000  cluster               352          91   0.0      0.00000000      0.000000e+00                   cluster          91      0.00000000  string                353          92   0.0      0.00000000      0.000000e+00                    string          92      0.00000000  indep                 354          93   0.0      0.00000000      0.000000e+00                     indep          93      0.00000000  CMshower              355          94   0.0      0.00000000      0.000000e+00                  CMshower          94      0.00000000  SPHEaxis              356          95   0.0      0.00000000      0.000000e+00                  SPHEaxis          95      0.00000000  THRUaxis              357          96   0.0      0.00000000      0.000000e+00                  THRUaxis          96      0.00000000  CLUSjet               358          97   0.0      0.00000000      0.000000e+00                   CLUSjet          97      0.00000000  CELLjet               359          98   0.0      0.00000000      0.000000e+00                   CELLjet          98      0.00000000  table                 360          99   0.0      0.00000000      0.000000e+00                     table          99      0.00000000  deutron~              390 -1000010020  -1.0      1.87561300      0.000000e+00             anti-deuteron           0      0.00000000  triton~               392 -1000010030  -1.0      2.80925000      0.000000e+00              anti-tritium           0      0.00000000  alpha~                393 -1000020040  -2.0      3.72741700      0.000000e+00                anti-alpha           0      0.00000000  dd_1                  394        1103  -0.7      0.00000000      0.000000e+00                      dd_1        1103      0.00000000  anti-dd_1             395       -1103   0.7      0.00000000      0.000000e+00                 anti-dd_1       -1103      0.00000000  ud_0                  410        2101   0.3      0.00000000      0.000000e+00                      ud_0        2101      0.00000000  anti-ud_0             411       -2101  -0.3      0.00000000      0.000000e+00                 anti-ud_0       -2101      0.00000000  ud_1                  412        2103   0.3      0.00000000      0.000000e+00                      ud_1        2103      0.00000000  anti-ud_1             413       -2103  -0.3      0.00000000      0.000000e+00                 anti-ud_1       -2103      0.00000000  uu_1                  426        2203   1.3      0.00000000      0.000000e+00                      uu_1        2203      0.00000000  anti-uu_1             427       -2203  -1.3      0.00000000      0.000000e+00                 anti-uu_1       -2203      0.00000000  sd_0                  438        3101  -0.7      0.00000000      0.000000e+00                      sd_0        3101      0.00000000  anti-sd_0             439       -3101   0.7      0.00000000      0.000000e+00                 anti-sd_0       -3101      0.00000000  sd_1                  440        3103  -0.7      0.00000000      0.000000e+00                      sd_1        3103      0.00000000  anti-sd_1             441       -3103   0.7      0.00000000      0.000000e+00                 anti-sd_1       -3103      0.00000000  su_0                  454        3201   0.3      0.00000000      0.000000e+00                      su_0        3201      0.00000000  anti-su_0             455       -3201  -0.3      0.00000000      0.000000e+00                 anti-su_0       -3201      0.00000000  su_1                  456        3203   0.3      0.00000000      0.000000e+00                      su_1        3203      0.00000000  anti-su_1             457       -3203  -0.3      0.00000000      0.000000e+00                 anti-su_1       -3203      0.00000000  ss_1                  470        3303  -0.7      0.00000000      0.000000e+00                      ss_1        3303      0.00000000  anti-ss_1             471       -3303   0.7      0.00000000      0.000000e+00                 anti-ss_1       -3303      0.00000000  cd_0                  476        4101   0.3      0.00000000      0.000000e+00                      cd_0        4101      0.00000000  anti-cd_0             477       -4101  -0.3      0.00000000      0.000000e+00                 anti-cd_0       -4101      0.00000000  cd_1                  478        4103   0.3      0.00000000      0.000000e+00                      cd_1        4103      0.00000000  anti-cd_1             479       -4103  -0.3      0.00000000      0.000000e+00                 anti-cd_1       -4103      0.00000000  cu_0                  482        4201   1.3      0.00000000      0.000000e+00                      cu_0        4201      0.00000000  anti-cu_0             483       -4201  -1.3      0.00000000      0.000000e+00                 anti-cu_0       -4201      0.00000000  cu_1                  484        4203   1.3      0.00000000      0.000000e+00                      cu_1        4203      0.00000000  anti-cu_1             485       -4203  -1.3      0.00000000      0.000000e+00                 anti-cu_1       -4203      0.00000000  cs_0                  490        4301   0.3      0.00000000      0.000000e+00                      cs_0        4301      0.00000000  anti-cs_0             491       -4301  -0.3      0.00000000      0.000000e+00                 anti-cs_0       -4301      0.00000000  cs_1                  492        4303   0.3      0.00000000      0.000000e+00                      cs_1        4303      0.00000000  anti-cs_1             493       -4303  -0.3      0.00000000      0.000000e+00                 anti-cs_1       -4303      0.00000000  cc_1                  500        4403   1.3      0.00000000      0.000000e+00                      cc_1        4403      0.00000000  anti-cc_1             501       -4403  -1.3      0.00000000      0.000000e+00                 anti-cc_1       -4403      0.00000000  bd_0                  516        5101  -0.7      0.00000000      0.000000e+00                      bd_0        5101      0.00000000  anti-bd_0             517       -5101   0.7      0.00000000      0.000000e+00                 anti-bd_0       -5101      0.00000000  bd_1                  518        5103  -0.7      0.00000000      0.000000e+00                      bd_1        5103      0.00000000  anti-bd_1             519       -5103   0.7      0.00000000      0.000000e+00                 anti-bd_1       -5103      0.00000000  bu_0                  524        5201   0.3      0.00000000      0.000000e+00                      bu_0        5201      0.00000000  anti-bu_0             525       -5201  -0.3      0.00000000      0.000000e+00                 anti-bu_0       -5201      0.00000000  bu_1                  526        5203   0.3      0.00000000      0.000000e+00                      bu_1        5203      0.00000000  anti-bu_1             527       -5203  -0.3      0.00000000      0.000000e+00                 anti-bu_1       -5203      0.00000000  bs_0                  534        5301  -0.7      0.00000000      0.000000e+00                      bs_0        5301      0.00000000  anti-bs_0             535       -5301   0.7      0.00000000      0.000000e+00                 anti-bs_0       -5301      0.00000000  bs_1                  536        5303  -0.7      0.00000000      0.000000e+00                      bs_1        5303      0.00000000  anti-bs_1             537       -5303   0.7      0.00000000      0.000000e+00                 anti-bs_1       -5303      0.00000000  bc_0                  546        5401   0.3      0.00000000      0.000000e+00                      bc_0        5401      0.00000000  anti-bc_0             547       -5401  -0.3      0.00000000      0.000000e+00                 anti-bc_0       -5401      0.00000000  bc_1                  548        5403   0.3      0.00000000      0.000000e+00                      bc_1        5403      0.00000000  anti-bc_1             549       -5403  -0.3      0.00000000      0.000000e+00                 anti-bc_1       -5403      0.00000000  bb_1                  566        5503  -0.7      0.00000000      0.000000e+00                      bb_1        5503      0.00000000  anti-bb_1             567       -5503   0.7      0.00000000      0.000000e+00                 anti-bb_1       -5503      0.00000000  vpho                  586       10022   0.0      0.00000000      0.000000e+00                      vpho           0      0.00000000  Xsd                   751       30343   0.0      1.60000000      0.000000e+00                       Xsd       30343      0.00000000  anti-Xsd              752      -30343   0.0      1.60000000      0.000000e+00                  anti-Xsd      -30343      0.00000000  Xsu                   753       30353   1.0      1.60000000      0.000000e+00                       Xsu       30353      0.00000000  anti-Xsu              754      -30353  -1.0      1.60000000      0.000000e+00                  anti-Xsu      -30353      0.00000000  Xss                   755       30363   0.0      1.80000000      0.000000e+00                       Xss       30363      0.00000000  anti-Xss              756      -30363   0.0      1.80000000      0.000000e+00                  anti-Xss      -30363      0.00000000  ~d_L                  859     1000001  -0.3    500.00000000      0.000000e+00                   unknown     1000001      0.00000000  ~d_Lbar               860    -1000001   0.3    500.00000000      0.000000e+00                   unknown    -1000001      0.00000000  ~u_L                  861     1000002   0.7    500.00000000      0.000000e+00                   unknown     1000002      0.00000000  ~u_Lbar               862    -1000002  -0.7    500.00000000      0.000000e+00                   unknown    -1000002      0.00000000  ~s_L                  863     1000003  -0.3    500.00000000      0.000000e+00                   unknown     1000003      0.00000000  ~s_Lbar               864    -1000003   0.3    500.00000000      0.000000e+00                   unknown    -1000003      0.00000000  ~c_L                  865     1000004   0.7    500.00000000      0.000000e+00                   unknown     1000004      0.00000000  ~c_Lbar               866    -1000004  -0.7    500.00000000      0.000000e+00                   unknown    -1000004      0.00000000  ~b_1                  867     1000005  -0.3    500.00000000      0.000000e+00                   unknown     1000005      0.00000000  ~b_1bar               868    -1000005   0.3    500.00000000      0.000000e+00                   unknown    -1000005      0.00000000  ~t_1                  869     1000006   0.7    500.00000000      0.000000e+00                   unknown     1000006      0.00000000  ~t_1bar               870    -1000006  -0.7    500.00000000      0.000000e+00                   unknown    -1000006      0.00000000  ~e_L-                 871     1000011  -1.0    500.00000000      0.000000e+00                   unknown     1000011      0.00000000  ~e_L+                 872    -1000011   1.0    500.00000000      0.000000e+00                   unknown    -1000011      0.00000000  ~nu_eL                873     1000012   0.0    500.00000000      0.000000e+00                   unknown     1000012      0.00000000  ~nu_eLbar             874    -1000012   0.0    500.00000000      0.000000e+00                   unknown    -1000012      0.00000000  ~mu_L-                875     1000013  -1.0    500.00000000      0.000000e+00                   unknown     1000013      0.00000000  ~mu_L+                876    -1000013   1.0    500.00000000      0.000000e+00                   unknown    -1000013      0.00000000  ~nu_muL               877     1000014   0.0    500.00000000      0.000000e+00                   unknown     1000014      0.00000000  ~nu_muLbar            878    -1000014   0.0    500.00000000      0.000000e+00                   unknown    -1000014      0.00000000  ~tau_1-               879     1000015  -1.0    500.00000000      0.000000e+00                   unknown     1000015      0.00000000  ~tau_1+               880    -1000015   1.0    500.00000000      0.000000e+00                   unknown    -1000015      0.00000000  ~nu_tauL              881     1000016   0.0    500.00000000      0.000000e+00                   unknown     1000016      0.00000000  ~nu_tauLbar           882    -1000016   0.0    500.00000000      0.000000e+00                   unknown    -1000016      0.00000000  ~g                    883     1000021   0.0    500.00000000      0.000000e+00                   unknown     1000021      0.00000000  ~chi_10               884     1000022   0.0    500.00000000      0.000000e+00                   unknown     1000022      0.00000000  ~chi_20               885     1000023   0.0    500.00000000      0.000000e+00                   unknown     1000023      0.00000000  ~chi_1+               886     1000024   1.0    500.00000000      0.000000e+00                   unknown     1000024      0.00000000  ~chi_1-               887    -1000024  -1.0    500.00000000      0.000000e+00                   unknown    -1000024      0.00000000  ~chi_30               888     1000025   0.0    500.00000000      0.000000e+00                   unknown     1000025      0.00000000  ~chi_40               889     1000035   0.0    500.00000000      0.000000e+00                   unknown     1000035      0.00000000  ~chi_2+               890     1000037   1.0    500.00000000      0.000000e+00                   unknown     1000037      0.00000000  ~chi_2-               891    -1000037  -1.0    500.00000000      0.000000e+00                   unknown    -1000037      0.00000000  ~Gravitino            892     1000039   0.0    500.00000000      0.000000e+00                   unknown     1000039      0.00000000  ~d_R                  893     2000001  -0.3    500.00000000      0.000000e+00                   unknown     2000001      0.00000000  ~d_Rbar               894    -2000001   0.3    500.00000000      0.000000e+00                   unknown    -2000001      0.00000000  ~u_R                  895     2000002   0.7    500.00000000      0.000000e+00                   unknown     2000002      0.00000000  ~u_Rbar               896    -2000002  -0.7    500.00000000      0.000000e+00                   unknown    -2000002      0.00000000  ~s_R                  897     2000003  -0.3    500.00000000      0.000000e+00                   unknown     2000003      0.00000000  ~s_Rbar               898    -2000003   0.3    500.00000000      0.000000e+00                   unknown    -2000003      0.00000000  ~c_R                  899     2000004   0.7    500.00000000      0.000000e+00                   unknown     2000004      0.00000000  ~c_Rbar               900    -2000004  -0.7    500.00000000      0.000000e+00                   unknown    -2000004      0.00000000  ~b_2                  901     2000005  -0.3    500.00000000      0.000000e+00                   unknown     2000005      0.00000000  ~b_2bar               902    -2000005   0.3    500.00000000      0.000000e+00                   unknown    -2000005      0.00000000  ~t_2                  903     2000006   0.7    500.00000000      0.000000e+00                   unknown     2000006      0.00000000  ~t_2bar               904    -2000006  -0.7    500.00000000      0.000000e+00                   unknown    -2000006      0.00000000  ~e_R-                 905     2000011  -1.0    500.00000000      0.000000e+00                   unknown     2000011      0.00000000  ~e_R+                 906    -2000011   1.0    500.00000000      0.000000e+00                   unknown    -2000011      0.00000000  ~nu_eR                907     2000012   0.0    500.00000000      0.000000e+00                   unknown     2000012      0.00000000  ~nu_eRbar             908    -2000012   0.0    500.00000000      0.000000e+00                   unknown    -2000012      0.00000000  ~mu_R-                909     2000013  -1.0    500.00000000      0.000000e+00                   unknown     2000013      0.00000000  ~mu_R+                910    -2000013   1.0    500.00000000      0.000000e+00                   unknown    -2000013      0.00000000  ~nu_muR               911     2000014   0.0    500.00000000      0.000000e+00                   unknown     2000014      0.00000000  ~nu_muRbar            912    -2000014   0.0    500.00000000      0.000000e+00                   unknown    -2000014      0.00000000  ~tau_2-               913     2000015  -1.0    500.00000000      0.000000e+00                   unknown     2000015      0.00000000  ~tau_2+               914    -2000015   1.0    500.00000000      0.000000e+00                   unknown    -2000015      0.00000000  ~nu_tauR              915     2000016   0.0    500.00000000      0.000000e+00                   unknown     2000016      0.00000000  ~nu_tauRbar           916    -2000016   0.0    500.00000000      0.000000e+00                   unknown    -2000016      0.00000000  pi_tc0                917     3000111   0.0    110.00000000      0.000000e+00                   unknown     3000111      0.00000000  rho_tc0               918     3000113   0.0    210.00000000      0.000000e+00                   unknown     3000113      0.00000000  pi_tc+                919     3000211   1.0    110.00000000      0.000000e+00                   unknown     3000211      0.00000000  pi_tc-                920    -3000211  -1.0    110.00000000      0.000000e+00                   unknown    -3000211      0.00000000  rho_tc+               921     3000213   1.0    210.00000000      0.000000e+00                   unknown     3000213      0.00000000  rho_tc-               922    -3000213  -1.0    210.00000000      0.000000e+00                   unknown    -3000213      0.00000000  pi'_tc0               923     3000221   0.0    110.00000000      0.000000e+00                   unknown     3000221      0.00000000  omega_tc              924     3000223   0.0    210.00000000      0.000000e+00                   unknown     3000223      0.00000000  eta_tc0               925     3000331   0.0    350.00000000      0.000000e+00                   unknown     3000331      0.00000000  V8_tc                 926     3100021   0.0    500.00000000      0.000000e+00                   unknown     3100021      0.00000000  pi_22_1_tc            927     3100111   0.0    125.00000000      0.000000e+00                   unknown     3100111      0.00000000  rho_11_tc             928     3100113   0.0    400.00000000      0.000000e+00                   unknown     3100113      0.00000000  pi_22_8_tc            929     3200111   0.0    250.00000000      0.000000e+00                   unknown     3200111      0.00000000  rho_12_tc             930     3200113   0.0    350.00000000      0.000000e+00                   unknown     3200113      0.00000000  rho_21_tc             931     3300113   0.0    350.00000000      0.000000e+00                   unknown     3300113      0.00000000  rho_22_tc             932     3400113   0.0    300.00000000      0.000000e+00                   unknown     3400113      0.00000000  d*                    933     4000001  -0.3    400.00000000      0.000000e+00                   unknown     4000001      0.00000000  d*bar                 934    -4000001   0.3    400.00000000      0.000000e+00                   unknown    -4000001      0.00000000  u*                    935     4000002   0.7    400.00000000      0.000000e+00                   unknown     4000002      0.00000000  u*bar                 936    -4000002  -0.7    400.00000000      0.000000e+00                   unknown    -4000002      0.00000000  e*-                   937     4000011  -1.0    400.00000000      0.000000e+00                   unknown     4000011      0.00000000  e*bar+                938    -4000011   1.0    400.00000000      0.000000e+00                   unknown    -4000011      0.00000000  nu*_e0                939     4000012   0.0    400.00000000      0.000000e+00                   unknown     4000012      0.00000000  nu*_ebar0             940    -4000012   0.0    400.00000000      0.000000e+00                   unknown    -4000012      0.00000000  Graviton*             941     5000039   0.0   1000.00000000      0.000000e+00                   unknown     5000039      0.00000000  nu_Re                 942     9900012   0.0    500.00000000      0.000000e+00                   unknown     9900012      0.00000000  nu_Rmu                943     9900014   0.0    500.00000000      0.000000e+00                   unknown     9900014      0.00000000  nu_Rtau               944     9900016   0.0    500.00000000      0.000000e+00                   unknown     9900016      0.00000000  Z_R0                  945     9900023   0.0   1200.00000000      0.000000e+00                   unknown     9900023      0.00000000  W_R+                  946     9900024   1.0    750.00000000      0.000000e+00                   unknown     9900024      0.00000000  W_R-                  947    -9900024  -1.0    750.00000000      0.000000e+00                   unknown    -9900024      0.00000000  H_L++                 948     9900041   2.0    200.00000000      0.000000e+00                   unknown     9900041      0.00000000  H_L--                 949    -9900041  -2.0    200.00000000      0.000000e+00                   unknown    -9900041      0.00000000  H_R++                 950     9900042   2.0    200.00000000      0.000000e+00                   unknown     9900042      0.00000000  H_R--                 951    -9900042  -2.0    200.00000000      0.000000e+00                   unknown    -9900042      0.00000000  He3[0.0]               49  1000020030   2.0      2.80923000      1.000000e+15                       He3           0      0.00000000  He3~[0.0]             391 -1000020030  -2.0      2.80923000      0.000000e+00                  anti-He3           0      0.00000000  Li7[0.0]              988  1000030070   3.0      6.53536500      0.000000e+00                   unknown           0      0.00000000  Be8[0.0]              992  1000040080   4.0      7.45689300      0.000000e+00                   unknown           0      0.00000000  Be9[0.0]              959  1000040090   4.0      8.39479200      0.000000e+00                   unknown           0      0.00000000  Be10[0.0]             993  1000040100   4.0      9.32754500      0.000000e+00                   unknown           0      0.00000000  B10[0.0]              994  1000050100   5.0      9.32698900      0.000000e+00                   unknown           0      0.00000000  B11[0.0]              974  1000050110   5.0     10.25510100      0.000000e+00                   unknown           0      0.00000000  B12[0.0]              975  1000050120   5.0     11.19129500      0.000000e+00                   unknown           0      0.00000000  C12[0.0]              953  1000060120   6.0     11.17490000      0.000000e+00                   unknown           0      0.00000000  C13[0.0]              976  1000060130   6.0     12.11254500      0.000000e+00                   unknown           0      0.00000000  C14[0.0]              977  1000060140   6.0     13.04393400      0.000000e+00                   unknown           0      0.00000000  N14[0.0]              955  1000070140   7.0     13.04378000      0.000000e+00                   unknown           0      0.00000000  N15[0.0]              982  1000070150   7.0     13.04377800      0.000000e+00                   unknown           0      0.00000000  N16[0.0]              995  1000070160   7.0     14.90958500      0.000000e+00                   unknown           0      0.00000000  O16[0.0]              956  1000080160   8.0     14.89510000      0.000000e+00                   unknown           0      0.00000000  O17[0.0]              996  1000080170   8.0     15.83458700      0.000000e+00                   unknown           0      0.00000000  O18[0.0]              967  1000080180   8.0     16.76610800      0.000000e+00                   unknown           0      0.00000000  O19[0.0]              997  1000080190   8.0     17.70171700      0.000000e+00                   unknown           0      0.00000000  F19[0.0]              960  1000090190   9.0     17.69689600      0.000000e+00                   unknown           0      0.00000000  Ne22[0.0]             983  1000100220  10.0     20.48484100      0.000000e+00                   unknown           0      0.00000000  Ne23[0.0]             998  1000100230  10.0     21.41920500      0.000000e+00                   unknown           0      0.00000000  Na24[0.0]             999  1000110240  11.0     22.34743500      0.000000e+00                   unknown           0      0.00000000  Mg24[0.0]             979  1000120240  12.0     22.34192000      0.000000e+00                   unknown           0      0.00000000  Mg25[0.0]             989  1000120250  12.0     23.27415400      0.000000e+00                   unknown           0      0.00000000  Mg26[0.0]             980  1000120260  12.0     24.20262600      0.000000e+00                   unknown           0      0.00000000  Mg27[0.0]             981  1000120270  12.0     25.13574800      0.000000e+00                   unknown           0      0.00000000  Al27[0.0]             952  1000130270  13.0     25.12650000      0.000000e+00                   unknown           0      0.00000000  Al28[0.0]             972  1000130280  13.0     26.06497800      0.000000e+00                   unknown           0      0.00000000  Si28[0.0]             957  1000140280  14.0     26.05320000      0.000000e+00                   unknown           0      0.00000000  Si29[0.0]             964  1000140290  14.0     26.99142700      0.000000e+00                   unknown           0      0.00000000  Si30[0.0]             968  1000140300  14.0     27.92038300      0.000000e+00                   unknown           0      0.00000000  P31[0.0]             1000  1000150310  15.0     28.85186900      0.000000e+00                   unknown           0      0.00000000  Cl39[0.0]            1001  1000170390  17.0     36.29846000      0.000000e+00                   unknown           0      0.00000000  Cl40[0.0]            1002  1000170400  17.0     37.23220100      0.000000e+00                   unknown           0      0.00000000  Ar36[0.0]            1003  1000180360  18.0     33.50354900      0.000000e+00                   unknown           0      0.00000000  Ar40[0.0]             973  1000180400  18.0     37.22471500      0.000000e+00                   unknown           0      0.00000000  Cr50[0.0]            1004  1000240500  24.0     46.52443900      0.000000e+00                   unknown           0      0.00000000  Cr52[0.0]             978  1000240520  24.0     48.37010000      0.000000e+00                   unknown           0      0.00000000  Cr53[0.0]             990  1000240530  24.0     49.31389400      0.000000e+00                   unknown           0      0.00000000  Cr54[0.0]            1005  1000240540  24.0     50.24374100      0.000000e+00                   unknown           0      0.00000000  Mn55[0.0]             991  1000250550  25.0     51.17445700      0.000000e+00                   unknown           0      0.00000000  Fe54[0.0]             966  1000260540  26.0     50.24442100      0.000000e+00                   unknown           0      0.00000000  Fe56[0.0]             961  1000260560  26.0     52.10305600      0.000000e+00                   unknown           0      0.00000000  Fe57[0.0]             969  1000260570  26.0     53.03497500      0.000000e+00                   unknown           0      0.00000000  Fe59[0.0]            1006  1000260590  26.0     54.89748000      0.000000e+00                   unknown           0      0.00000000  Ni58[0.0]             984  1000280580  28.0     53.96642200      0.000000e+00                   unknown           0      0.00000000  Ni60[0.0]             985  1000280600  28.0     55.82516400      0.000000e+00                   unknown           0      0.00000000  Ni61[0.0]            1007  1000280610  28.0     56.75690900      0.000000e+00                   unknown           0      0.00000000  Ni62[0.0]             986  1000280620  28.0     57.68587700      0.000000e+00                   unknown           0      0.00000000  Ni63[0.0]            1008  1000280630  28.0     58.61860500      0.000000e+00                   unknown           0      0.00000000  Ni64[0.0]             987  1000280640  28.0     59.54851200      0.000000e+00                   unknown           0      0.00000000  Cu63[0.0]             954  1000290630  29.0     58.61860000      0.000000e+00                   unknown           0      0.00000000  Cu65[0.0]             958  1000290650  29.0     60.47984200      0.000000e+00                   unknown           0      0.00000000  Mo92[0.0]            1009  1000420920  42.0     85.61063000      0.000000e+00                   unknown           0      0.00000000  Mo95[0.0]            1010  1000420950  42.0     88.40421000      0.000000e+00                   unknown           0      0.00000000  Mo96[0.0]            1011  1000420960  42.0     89.33462100      0.000000e+00                   unknown           0      0.00000000  Mo97[0.0]            1012  1000420970  42.0     90.26736500      0.000000e+00                   unknown           0      0.00000000  Mo98[0.0]            1013  1000420980  42.0     91.19828700      0.000000e+00                   unknown           0      0.00000000  Mo100[0.0]           1014  1000421000  42.0     93.06320300      0.000000e+00                   unknown           0      0.00000000  Pd108[0.0]           1015  1000461080  46.0    100.51181600      0.000000e+00                   unknown           0      0.00000000  Au197[0.0]           1020  1000791970  79.0    183.43336000      0.000000e+00                   unknown           0      0.00000000  Pb207[0.0]            962  1000822070  82.0    192.79676500      0.000000e+00                   unknown           0      0.00000000  Pb208[0.0]            963  1000822080  82.0    193.72896200      0.000000e+00                   unknown           0      0.00000000  Pb206[0.0]            965  1000822060  82.0    191.86393700      0.000000e+00                   unknown           0      0.00000000  Pb204[0.0]            970  1000822040  82.0    189.99962700      0.000000e+00                   unknown           0      0.00000000  Intermediate          971   -99000000   0.0      0.00000000      0.000000e+00                   unknown           0      0.00000000 # END PARTICLE
-
diff --git a/Sim/Gaussino/python/Gaussino/Configuration.py b/Sim/Gaussino/python/Gaussino/Configuration.py
index f24d865fe1027da6d940ee58761c6851b98abdfe..f3be354756a7a9d8f6c15f3738f359177fcc5bd4 100644
--- a/Sim/Gaussino/python/Gaussino/Configuration.py
+++ b/Sim/Gaussino/python/Gaussino/Configuration.py
@@ -79,16 +79,16 @@ class Gaussino(ConfigurableUser):
     :var EvtMax: default: ``-1``
     :vartype EvtMax: int, optional
 
-    :var EnableHive: default: ``False``
+    :var EnableHive: default: ``True``
     :vartype EnableHive: bool, optional
 
     :var ReDecay: default: ``False``
     :vartype ReDecay: bool, optional
 
-    :var ThreadPoolSize: default: ``2``
+    :var ThreadPoolSize: default: ``1``
     :vartype ThreadPoolSize: int, optional
 
-    :var EventSlots: default: ``2``
+    :var EventSlots: default: ``1``
     :vartype EventSlots: int, optional
 
     :var ConvertEDM: default: ``False``
@@ -154,16 +154,16 @@ class Gaussino(ConfigurableUser):
         -1  # NOQA
         ,
         "EnableHive":
-        False  # NOQA
+        True  # NOQA
         ,
         "ReDecay":
         False  # NOQA
         ,
         "ThreadPoolSize":
-        2  # NOQA
+        1  # NOQA
         ,
         "EventSlots":
-        2  # NOQA
+        1  # NOQA
         ,
         "ConvertEDM":
         False  # NOQA
@@ -196,7 +196,17 @@ class Gaussino(ConfigurableUser):
         self.propagateProperties(names, other)
 
     def setupHive(self):
-        '''Enable Hive event loop manager'''
+        '''Enable Hive event loop manager
+           this is a very similar method as in LHCbApp
+        '''
+        if not self.getProp("EnableHive"):
+            # FIXME: Running without GaudiHive has not been tested
+            #        and may lead to unexpected behaviour
+            #        this is disabled for now
+            log.error("EnableHive must be set. Running without "
+                      "GaudiHive has not been tested and may lead to"
+                      "unexpected behaviour")
+            raise ValueError("EnableHive must be set.")
         from Configurables import HiveWhiteBoard
         whiteboard = HiveWhiteBoard("EventDataSvc")
         whiteboard.EventSlots = self.getProp('EventSlots')
@@ -213,8 +223,7 @@ class Gaussino(ConfigurableUser):
         # appendPostConfigAction(self.co)
 
     def __apply_configuration__(self):
-        if self.getProp("EnableHive"):
-            self.setupHive()
+        self.setupHive()
         ppService(self.getProp('ParticleTable'))
         dataService()
         auditorService()
diff --git a/Sim/Gaussino/python/Gaussino/Generation.py b/Sim/Gaussino/python/Gaussino/Generation.py
index 6b69039b5294d4ec2197fc8eda6bb25c48b9f2c9..0b23b4102284ea431debe44959700c4198576305 100644
--- a/Sim/Gaussino/python/Gaussino/Generation.py
+++ b/Sim/Gaussino/python/Gaussino/Generation.py
@@ -100,6 +100,9 @@ class GenPhase(ConfigurableUser):
     :var ProductionTool: default: ``'Pythia8Production'``
     :vartype ProductionTool: str, optional
 
+    :var ProductionToolOpts: default: ``{}``
+    :vartype ProductionToolOpts: dict, optional
+
     :var DecayTool: default: ``''``
     :vartype DecayTool: str, optional
 
@@ -165,6 +168,7 @@ class GenPhase(ConfigurableUser):
         'FixedLuminosityWithSvc',  # NOQA
         "ProductionTool":
         'Pythia8Production',  # NOQA
+        "ProductionToolOpts": {},
         "DecayTool":
         '',  # NOQA
         "CutTool":
@@ -248,6 +252,11 @@ class GenPhase(ConfigurableUser):
             gen_alg.FullGenEventCutTool = ''
         prod = get_set_configurable(sgt, 'ProductionTool', ProductionTool)
         if ProductionTool in ["Pythia8Production", "Pythia8ProductionMT"]:
+            # For now keep it only for Pythia, but potentially in future we
+            # want to do this for all possible production tools
+            prot_opts = self.getProp('ProductionToolOpts')
+            for n, v in prot_opts.items():
+                prod.setProp(n, v)
             prod.BeamToolName = 'CollidingBeamsWithSvc'
 
         if ProductionTool == "Pythia8ProductionMT":
diff --git a/Sim/Gaussino/python/Gaussino/Simulation.py b/Sim/Gaussino/python/Gaussino/Simulation.py
index 19b66d70b98df301bb78d81f5386f5b8bd31d819..8a7b95b051c715f0d4fe31dc1f3e65db5bd7b34a 100644
--- a/Sim/Gaussino/python/Gaussino/Simulation.py
+++ b/Sim/Gaussino/python/Gaussino/Simulation.py
@@ -74,6 +74,9 @@ class SimPhase(ConfigurableUser):
     :var ExportGDML: default: ``{}``
     :vartype ExportGDML: dict, optional
 
+    :var ImportGDML: default: ``[]``
+    :vartype ImportGDML: list, optional
+
     :var ExternalDetectorEmbedder: default: ``""``, name of the embedder used
         when creating external geometry
     :vartype ExternalDetectorEmbedder: str, optional
@@ -99,6 +102,7 @@ class SimPhase(ConfigurableUser):
         "SensDetMap": {},
         "ExtraGeoTools": [],
         "ExportGDML": {},
+        "ImportGDML": [],
         "ExternalDetectorEmbedder": "",
         "ParallelGeometry": False,
     }
@@ -165,6 +169,11 @@ class SimPhase(ConfigurableUser):
         gmpl.PhysicsConstructors = phys_list
         self._addConstructorsWithNames(gmpl, phys_list)
 
+        gmpl.CutForElectron = self.getProp("CutForElectron")
+        gmpl.CutForGamma = self.getProp("CutForGamma")
+        gmpl.CutForPositron = self.getProp("CutForPositron")
+        gmpl.DumpCutsTable = self.getProp("DumpCutsTable")
+
         # Add parallel physics
         par_geo = self.getProp("ParallelGeometry")
         if par_geo:
@@ -211,14 +220,28 @@ class SimPhase(ConfigurableUser):
             #    self._external_embedders.append(par_ext_emd)
             #par_geo.world_to_gdml(giga.RunSeq)
 
+        self._setup_gdml_import(dettool)
+
         # Save as a GDML File
         gdml_export = self.getProp("ExportGDML")
         if type(gdml_export) is not dict:
             raise RuntimeError("ExportGDML should be a dictionary of options")
-        else:
-            for name, value in gdml_export.items():
-                if name.startswith('GDML'):
-                    setattr(dettool, name, value)
-                else:
-                    raise RuntimeError("GDML options start with GDML")
+        for name, value in gdml_export.items():
+            if name.startswith('GDML'):
+                setattr(dettool, name, value)
+            else:
+                raise RuntimeError("GDML options start with GDML")
         return algs
+
+    def _setup_gdml_import(self, dettool):
+        gdml_imports = self.getProp("ImportGDML")
+        if type(gdml_imports) is not list:
+            raise RuntimeError("ImportGDML should be a list of dicts")
+        from Configurables import GDMLReader
+        for gdml_import in gdml_imports:
+            if type(gdml_import) is not dict:
+                raise RuntimeError("Elements of ImportGDML should be dicts")
+            name = gdml_import["GDMLFileName"] + "Reader"
+            reader = GDMLReader(name, **gdml_import)
+            dettool.addTool(reader, name=name)
+            dettool.GDMLReaders.append('GDMLReader/' + name)
diff --git a/Sim/Gaussino/tests/scripts/pgun_reproducibility.sh b/Sim/Gaussino/tests/scripts/pgun_reproducibility.sh
index b73bd19e21a7660b13cc46d2ba23d5b07375d353..411570189b2720f392cc1b3a82ec3338c04c725c 100755
--- a/Sim/Gaussino/tests/scripts/pgun_reproducibility.sh
+++ b/Sim/Gaussino/tests/scripts/pgun_reproducibility.sh
@@ -12,4 +12,4 @@
 
 gaudirun.py $GAUSSINOROOT/tests/options/pgun_reproducibility_A.py
 gaudirun.py $GAUSSINOROOT/tests/options/pgun_reproducibility_B.py
-compareHepMCEvents.exe FirstRun-HepMC.txt SecondRun-HepMC.txt
+compareHepMCEvents FirstRun-HepMC.txt SecondRun-HepMC.txt
diff --git a/Sim/GiGaMT/CMakeLists.txt b/Sim/GiGaMT/CMakeLists.txt
index 04fa8ffb0f4f4969e177c7e30b0b7edf383b17c5..2c141617abb8543c8596fcf0ea8b1f93b696bf57 100644
--- a/Sim/GiGaMT/CMakeLists.txt
+++ b/Sim/GiGaMT/CMakeLists.txt
@@ -8,37 +8,36 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: GiGaMT 
-# This contains the fundamental GiGaMT service that sets up the entire mess in
-# its initialization and provides the function to call that handles the simulation.
-# Also there is the main simulation algorithm that actually uses the service
-#################################################################################
-gaudi_subdir(GiGaMT v1r0)
+#[=======================================================================[.rst:
+Sim/GiGaMT
+----------
 
-gaudi_depends_on_subdirs(GaudiAlg
-                         HepMCUser
-                         NewRnd
-                         Sim/SimInterfaces
-                         Sim/GiGaMTFactories
-                         Sim/GiGaMTTruth
-                         Sim/GiGaMTCore)
-
-AddHepMC3()
-find_package(ROOT COMPONENTS MathCore GenVector)
-
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
+This contains the fundamental GiGaMT service that sets up the entire mess in
+its initialization and provides the function to call that handles the simulation.
+Also there is the main simulation algorithm that actually uses the service
+#]=======================================================================]
 
 gaudi_add_library(GiGaMTLib
-                  src/Lib/*.cpp
-                  PUBLIC_HEADERS GiGaMT 
-                  INCLUDE_DIRS HepMC GiGaMTFactories SimInterfaces HepMCUser GiGaMTTruth ${HEPMC3_INCLUDE_DIR}
-                  LINK_LIBRARIES GaudiAlgLib GiGaMTCoreRunLib ${HEPMC3_LIBRARIES} NewRnd )
-add_dependencies(GiGaMTLib HepMC3Ext)
+    SOURCES
+        src/Lib/GiGaException.cpp
+	src/Lib/GiGaUtil.cpp
+    LINK
+        PUBLIC
+	    Gaussino::GiGaMTFactoriesLib
+	    Gaussino::HepMCUserLib
+	    Gaussino::SimInterfacesLib
+)
 
 gaudi_add_module(GiGaMT
-        src/components/*.cpp
-        LINK_LIBRARIES GiGaMTLib ROOT)
+    SOURCES
+        src/Components/GiGaActionInitializer.cpp
+	src/Components/GiGaAlg.cpp
+	src/Components/GiGaMT.cpp
+	src/Components/GiGaMTISetUpSvc.cpp
+	src/Components/HepMC3ToMCTruthConverter.cpp
+	src/Components/SkipSimAlg.cpp
+    LINK
+        Gaussino::GiGaMTCoreRunLib
+        Gaussino::GiGaMTTruthLib
+        Gaussino::GiGaMTLib
+)
diff --git a/Sim/GiGaMT/GiGaMT/GiGaActionInitializer.h b/Sim/GiGaMT/include/GiGaMT/GiGaActionInitializer.h
similarity index 99%
rename from Sim/GiGaMT/GiGaMT/GiGaActionInitializer.h
rename to Sim/GiGaMT/include/GiGaMT/GiGaActionInitializer.h
index 81f295158bfa94d6263965e8d5bc84e7544897ce..d3702af655317cc277971a040cb63e27c547d944 100644
--- a/Sim/GiGaMT/GiGaMT/GiGaActionInitializer.h
+++ b/Sim/GiGaMT/include/GiGaMT/GiGaActionInitializer.h
@@ -11,7 +11,7 @@
 #pragma once
 
 #include "GaudiAlg/GaudiTool.h"
-#include "Geant4/G4VUserActionInitialization.hh"
+#include "G4VUserActionInitialization.hh"
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
diff --git a/Sim/GiGaMT/GiGaMT/GiGaException.h b/Sim/GiGaMT/include/GiGaMT/GiGaException.h
similarity index 100%
rename from Sim/GiGaMT/GiGaMT/GiGaException.h
rename to Sim/GiGaMT/include/GiGaMT/GiGaException.h
diff --git a/Sim/GiGaMT/GiGaMT/GiGaUtil.h b/Sim/GiGaMT/include/GiGaMT/GiGaUtil.h
similarity index 100%
rename from Sim/GiGaMT/GiGaMT/GiGaUtil.h
rename to Sim/GiGaMT/include/GiGaMT/GiGaUtil.h
diff --git a/Sim/GiGaMT/GiGaMT/IGiGaMTSetUpSvc.h b/Sim/GiGaMT/include/GiGaMT/IGiGaMTSetUpSvc.h
similarity index 94%
rename from Sim/GiGaMT/GiGaMT/IGiGaMTSetUpSvc.h
rename to Sim/GiGaMT/include/GiGaMT/IGiGaMTSetUpSvc.h
index fee9ab0dcf6f6125c60d5b1d0217c1efe2309982..e8ca5002ee4d3f64ad767739585f07fe46b02246 100755
--- a/Sim/GiGaMT/GiGaMT/IGiGaMTSetUpSvc.h
+++ b/Sim/GiGaMT/include/GiGaMT/IGiGaMTSetUpSvc.h
@@ -41,12 +41,12 @@ public:
   /** initialize method
    *  @return status code
    */
-  virtual StatusCode initialize() = 0;
+  virtual StatusCode initialize() override = 0;
 
   /** finalize  method
    *  @return status code
    */
-  virtual StatusCode finalize() = 0;
+  virtual StatusCode finalize() override = 0;
 
 public:
 
diff --git a/Sim/GiGaMT/GiGaMT/IGiGaMTSvc.h b/Sim/GiGaMT/include/GiGaMT/IGiGaMTSvc.h
similarity index 94%
rename from Sim/GiGaMT/GiGaMT/IGiGaMTSvc.h
rename to Sim/GiGaMT/include/GiGaMT/IGiGaMTSvc.h
index 420b8cf810883d853f7d96c25cd2353ab2d5b8f3..8e0c7f40c6b9efc713281bf23198ef5d5d4e3ae7 100755
--- a/Sim/GiGaMT/GiGaMT/IGiGaMTSvc.h
+++ b/Sim/GiGaMT/include/GiGaMT/IGiGaMTSvc.h
@@ -16,7 +16,7 @@
 #include "GaudiKernel/StatusCode.h"
 #include "GiGaMTCoreRun/G4EventProxy.h"
 #include "NewRnd/RndCommon.h"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include "HepMCUser/typedefs.h"
 
 
@@ -51,12 +51,12 @@ public:
   /**  initialize
    *   @return status code
    */
-  virtual StatusCode initialize() = 0;
+  virtual StatusCode initialize() override = 0;
 
   /**  initialize
    *   @return status code
    */
-  virtual StatusCode finalize() = 0;
+  virtual StatusCode finalize() override = 0;
 
   /**  initialize
    *   TODO: Simulate HepMC events. Currently does not return anything,
diff --git a/Sim/GiGaMT/src/components/GiGaActionInitializer.cpp b/Sim/GiGaMT/src/Components/GiGaActionInitializer.cpp
similarity index 95%
rename from Sim/GiGaMT/src/components/GiGaActionInitializer.cpp
rename to Sim/GiGaMT/src/Components/GiGaActionInitializer.cpp
index c4f88b0679a21578fca407fcafee805564b2ba7c..d97267e1b5d1e7fdf4bb8b1807ca906198b2efe1 100644
--- a/Sim/GiGaMT/src/components/GiGaActionInitializer.cpp
+++ b/Sim/GiGaMT/src/Components/GiGaActionInitializer.cpp
@@ -12,10 +12,10 @@
 
 // Using the Multi-action lists in Geant4 since 10.3
 // Even though they publically inherit from std::vector
-#include "Geant4/G4MultiEventAction.hh"
-#include "Geant4/G4MultiRunAction.hh"
-#include "Geant4/G4MultiSteppingAction.hh"
-#include "Geant4/G4MultiTrackingAction.hh"
+#include "G4MultiEventAction.hh"
+#include "G4MultiRunAction.hh"
+#include "G4MultiSteppingAction.hh"
+#include "G4MultiTrackingAction.hh"
 
 DECLARE_COMPONENT( GiGaActionInitializer )
 
diff --git a/Sim/GiGaMT/src/components/GiGaAlg.cpp b/Sim/GiGaMT/src/Components/GiGaAlg.cpp
similarity index 100%
rename from Sim/GiGaMT/src/components/GiGaAlg.cpp
rename to Sim/GiGaMT/src/Components/GiGaAlg.cpp
diff --git a/Sim/GiGaMT/src/components/GiGaAlg.h b/Sim/GiGaMT/src/Components/GiGaAlg.h
similarity index 100%
rename from Sim/GiGaMT/src/components/GiGaAlg.h
rename to Sim/GiGaMT/src/Components/GiGaAlg.h
diff --git a/Sim/GiGaMT/src/components/GiGaMT.cpp b/Sim/GiGaMT/src/Components/GiGaMT.cpp
similarity index 96%
rename from Sim/GiGaMT/src/components/GiGaMT.cpp
rename to Sim/GiGaMT/src/Components/GiGaMT.cpp
index a5e428a1278185d3da617b29df4b4f02a8acd5ed..bb85c37e4d4f47c7297ac2d887f2a7201c3cd215 100755
--- a/Sim/GiGaMT/src/components/GiGaMT.cpp
+++ b/Sim/GiGaMT/src/Components/GiGaMT.cpp
@@ -24,14 +24,14 @@
 #include "GaudiKernel/Stat.h"
 
 // from G4
-#include "Geant4/G4MaterialTable.hh"
-#include "Geant4/G4NistManager.hh"
-#include "Geant4/G4ParticlePropertyTable.hh"
-#include "Geant4/G4ParticleTable.hh"
-#include "Geant4/G4UIsession.hh"
-#include "Geant4/G4VUserActionInitialization.hh"
-#include "Geant4/G4VUserPhysicsList.hh"
-#include "Geant4/G4VVisManager.hh"
+#include "G4MaterialTable.hh"
+#include "G4NistManager.hh"
+#include "G4ParticlePropertyTable.hh"
+#include "G4ParticleTable.hh"
+#include "G4UIsession.hh"
+#include "G4VUserActionInitialization.hh"
+#include "G4VUserPhysicsList.hh"
+#include "G4VVisManager.hh"
 
 // from GiGaMT
 #include "CLHEP/Random/RandomEngine.h"
diff --git a/Sim/GiGaMT/src/components/GiGaMT.h b/Sim/GiGaMT/src/Components/GiGaMT.h
similarity index 99%
rename from Sim/GiGaMT/src/components/GiGaMT.h
rename to Sim/GiGaMT/src/Components/GiGaMT.h
index 1de56acbea5eb4d3c949ab3d911a109afe955967..59c939f4440f4137b01051b18190824798f93c6f 100755
--- a/Sim/GiGaMT/src/components/GiGaMT.h
+++ b/Sim/GiGaMT/src/Components/GiGaMT.h
@@ -85,7 +85,7 @@ class GiGaMT : public Service, virtual public IGiGaMTSvc, virtual public IGiGaMT
   Gaudi::Property<std::vector<std::string>> m_MoniToolNames{
       this, "MonitorTools", {}, tool_array_setter( m_MoniTools, m_MoniToolNames )};
 
-  Gaudi::Property<size_t> m_nWorkerThreads{this, "NumberOfWorkerThreads", 0};
+  Gaudi::Property<size_t> m_nWorkerThreads{this, "NumberOfWorkerThreads", 1};
   Gaudi::Property<bool> m_splitPileUp{this, "SplitPileUp", false};
   Gaudi::Property<bool> m_printParticles{this, "PrintG4Particles", false};
   Gaudi::Property<bool> m_printMaterials{this, "PrintG4Materials", false};
diff --git a/Sim/GiGaMT/src/components/GiGaMTISetUpSvc.cpp b/Sim/GiGaMT/src/Components/GiGaMTISetUpSvc.cpp
similarity index 90%
rename from Sim/GiGaMT/src/components/GiGaMTISetUpSvc.cpp
rename to Sim/GiGaMT/src/Components/GiGaMTISetUpSvc.cpp
index 5549e1f1fcf66721028c5e1bfd3bea442c347b8b..6648397d65ed2a3d588ef99268f0fe0378834dac 100755
--- a/Sim/GiGaMT/src/components/GiGaMTISetUpSvc.cpp
+++ b/Sim/GiGaMT/src/Components/GiGaMTISetUpSvc.cpp
@@ -17,15 +17,15 @@
 #include "GaudiKernel/StatusCode.h"
 #include "GaudiKernel/System.h"
 /// G4
-#include "Geant4/G4UserEventAction.hh"
-#include "Geant4/G4UserRunAction.hh"
-#include "Geant4/G4UserStackingAction.hh"
-#include "Geant4/G4UserSteppingAction.hh"
-#include "Geant4/G4UserTrackingAction.hh"
-#include "Geant4/G4VPhysicalVolume.hh"
-#include "Geant4/G4VUserDetectorConstruction.hh"
-#include "Geant4/G4VUserPhysicsList.hh"
-#include "Geant4/G4VUserPrimaryGeneratorAction.hh"
+#include "G4UserEventAction.hh"
+#include "G4UserRunAction.hh"
+#include "G4UserStackingAction.hh"
+#include "G4UserSteppingAction.hh"
+#include "G4UserTrackingAction.hh"
+#include "G4VPhysicalVolume.hh"
+#include "G4VUserDetectorConstruction.hh"
+#include "G4VUserPhysicsList.hh"
+#include "G4VUserPrimaryGeneratorAction.hh"
 
 /// GiGa
 #include "GiGaMT/GiGaException.h"
diff --git a/Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.cpp b/Sim/GiGaMT/src/Components/HepMC3ToMCTruthConverter.cpp
similarity index 99%
rename from Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.cpp
rename to Sim/GiGaMT/src/Components/HepMC3ToMCTruthConverter.cpp
index d6832a85e324e4686dc28ee6eecb9e80b20d3ed8..e6b2b1d2cec9763b70bce43a5afa14447e3d1d6f 100644
--- a/Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.cpp
+++ b/Sim/GiGaMT/src/Components/HepMC3ToMCTruthConverter.cpp
@@ -17,9 +17,9 @@
 #include "Kernel/ParticleProperty.h"
 
 // Geant4
-#include "Geant4/G4Event.hh"
-#include "Geant4/G4SystemOfUnits.hh"
-#include "Geant4/G4ParticleTable.hh"
+#include "G4Event.hh"
+#include "G4SystemOfUnits.hh"
+#include "G4ParticleTable.hh"
 
 // HepMC3
 #include "GaudiKernel/Vector4DTypes.h"
diff --git a/Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.h b/Sim/GiGaMT/src/Components/HepMC3ToMCTruthConverter.h
similarity index 98%
rename from Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.h
rename to Sim/GiGaMT/src/Components/HepMC3ToMCTruthConverter.h
index 80a2dd25e6c0cd13b32730ca8cf27aadb08eb59c..38aa093f37da2572be7497990a96c3f2fbf4542c 100644
--- a/Sim/GiGaMT/src/components/HepMC3ToMCTruthConverter.h
+++ b/Sim/GiGaMT/src/Components/HepMC3ToMCTruthConverter.h
@@ -14,7 +14,7 @@
 #include "GaudiAlg/GaudiTool.h"
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/SystemOfUnits.h"
-#include "Geant4/G4SystemOfUnits.hh"
+#include "G4SystemOfUnits.hh"
 
 #include "GiGaMTTruth/IHepMC3ToMCTruthConverter.h"
 #include "HepMC3/GenParticle.h"
diff --git a/Sim/GiGaMT/src/components/SkipSimAlg.cpp b/Sim/GiGaMT/src/Components/SkipSimAlg.cpp
similarity index 97%
rename from Sim/GiGaMT/src/components/SkipSimAlg.cpp
rename to Sim/GiGaMT/src/Components/SkipSimAlg.cpp
index 8589681a3ded0331ff2aa7414f52027a288a6ce1..785836bf2245722915ba40f1b26ac308afde9feb 100755
--- a/Sim/GiGaMT/src/components/SkipSimAlg.cpp
+++ b/Sim/GiGaMT/src/Components/SkipSimAlg.cpp
@@ -10,7 +10,7 @@
 \*****************************************************************************/
 // local
 #include "SkipSimAlg.h"
-#include "GiGaMTCoreTruth/GaussinoEventInformation.h"
+#include "GiGaMTCoreRun/GaussinoEventInformation.h"
 #include "GiGaMTTruth/IHepMC3ToMCTruthConverter.h"
 #include "Kernel/IParticlePropertySvc.h"
 #include "Kernel/ParticleProperty.h"
diff --git a/Sim/GiGaMT/src/components/SkipSimAlg.h b/Sim/GiGaMT/src/Components/SkipSimAlg.h
similarity index 100%
rename from Sim/GiGaMT/src/components/SkipSimAlg.h
rename to Sim/GiGaMT/src/Components/SkipSimAlg.h
diff --git a/Sim/GiGaMTCore/CMakeLists.txt b/Sim/GiGaMTCore/CMakeLists.txt
index 8a3310ff5c7718a2ce0cb7c8d88d745c2220f129..97c6be3c575dc559d04960b640225805cde9daf1 100644
--- a/Sim/GiGaMTCore/CMakeLists.txt
+++ b/Sim/GiGaMTCore/CMakeLists.txt
@@ -15,54 +15,81 @@
 # run managers). While the Gaudi cmake plugins are used to handle this package,
 # none of the modified classes should depend on anything Gaudi related.
 #################################################################################
-gaudi_subdir(GiGaMTCore v1r0)
-gaudi_depends_on_subdirs(NewRnd
-                         Event/MCEvent  # FIXME: Don't like this
-                         HepMC3
-                         HepMCUser)
-
-find_package(CLHEP COMPONENTS Random Vector)
-find_package(XercesC)
-AddHepMC3()
-find_package(ROOT COMPONENTS MathCore GenVector)
-
-FindG4libs(digits_hits event geometry global graphics_reps materials persistency
-           particles processes run tracking track intercoms physicslists)
-
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
+#[=======================================================================[.rst:
+Sim/GiGaMTCore
+--------------
+#]=======================================================================]
 
+gaudi_add_header_only_library(GiGaMTCoreUtilsLib)
+gaudi_add_header_only_library(GiGaMTCoreDetLib)
 
 gaudi_add_library(GiGaMTCoreMessageLib
-                 src/message/*.cpp
-                 PUBLIC_HEADERS GiGaMTCoreMessage)
-
-gaudi_add_library(GiGaMTCoreTruthLib
-                 src/truth/*.cpp
-                 PUBLIC_HEADERS GiGaMTCoreTruth
-                 INCLUDE_DIRS ${HEPMC3_INCLUDE_DIR} CLHEP Geant4 XercesC NewRnd HepMCUtils
-                 LINK_LIBRARIES ${HEPMC3_LIBRARIES} CLHEP ${GEANT4_LIBS} XercesC ${ROOT_LIBRARIES} HepMCUtils MCEvent  GiGaMTCoreMessageLib)
+    SOURCES
+        src/Lib/GiGaMessage.cpp
+)
 
-add_dependencies(GiGaMTCoreTruthLib HepMC3Ext)
-
-gaudi_add_unit_test(test_zMaxTilt tests/src/test_zMaxTilt.cpp
-                    LINK_LIBRARIES GaudiKernel GiGaMTCoreTruthLib
-                    TYPE Boost)
+gaudi_add_library(GiGaMTCoreCutLib
+    SOURCES
+        src/Lib/GaussinoG4UserLimits.cpp
+    LINK
+        PUBLIC
+            CLHEP::Vector
+            CLHEP::Random
+	    Geant4::G4global
+            Gaussino::GiGaMTCoreMessageLib
+)
 
 gaudi_add_library(GiGaMTCoreRunLib
-                 src/run/*.cpp
-                 PUBLIC_HEADERS GiGaMTCoreRun
-                 INCLUDE_DIRS ${HEPMC3_INCLUDE_DIR} CLHEP Geant4 XercesC NewRnd
-                 LINK_LIBRARIES ${HEPMC3_LIBRARIES} CLHEP ${GEANT4_LIBS} XercesC GiGaMTCoreTruthLib GiGaMTCoreMessageLib)
-
-gaudi_add_library(GiGaMTCoreCutLib
-                 src/cut/*.cpp
-                 PUBLIC_HEADERS GiGaMTCoreCut
-                 INCLUDE_DIRS CLHEP Geant4
-                 LINK_LIBRARIES CLHEP ${GEANT4_LIBS}  GiGaMTCoreMessageLib)
+    SOURCES
+        src/Lib/Common.cpp
+        src/Lib/ConverterInfo.cpp
+        src/Lib/G4EventProxy.cpp
+	src/Lib/G4EventProxyAttribute.cpp
+        src/Lib/GaussinoEventInformation.cpp
+        src/Lib/GaussinoPrimaryParticleInformation.cpp
+        src/Lib/GaussinoTrackInformation.cpp
+	src/Lib/GiGaMTRunManager.cpp
+	src/Lib/GiGaRunActionCommand.cpp
+	src/Lib/GiGaWorkerPayload.cpp
+	src/Lib/GiGaWorkerPilot.cpp
+	src/Lib/GiGaWorkerRunManager.cpp
+        src/Lib/Helpers.cpp
+        src/Lib/LinkedParticle.cpp
+        src/Lib/LinkedParticleHelpers.cpp
+        src/Lib/MCTruthAttribute.cpp
+        src/Lib/MCTruthConverter.cpp
+        src/Lib/SimResultsAttribute.cpp
+        src/Lib/TruthFlaggingTrackAction.cpp
+        src/Lib/TruthStoringTrackAction.cpp
+        src/Lib/ZMaxPlane.cpp
+    LINK
+        PUBLIC
+	    HepMC3::HepMC3
+	    HepMC3::HepMC3search
+	    Geant4::G4event
+	    Geant4::G4geometry
+	    Geant4::G4global
+	    Geant4::G4intercoms
+	    Geant4::G4particles
+	    Geant4::G4processes
+	    Geant4::G4run
+	    Geant4::G4track
+	    Geant4::G4tracking
+	    LHCb::MCEvent         # TODO: [LHCb DEPENDENCY]
+	    Gaussino::HepMCUtilsLib
+	    Gaussino::NewRndLib
+            Gaussino::GiGaMTCoreUtilsLib
+            Gaussino::GiGaMTCoreMessageLib
+            Gaussino::GiGaMTCoreDetLib
+)
 
-gaudi_install_headers(GiGaMTCoreDet)
+gaudi_add_tests(QMTest)
 
-gaudi_add_test(QMTest QMTEST)
+gaudi_add_executable(test_zMaxTilt
+    SOURCES tests/test_zMaxTilt.cpp
+    LINK
+    	Boost::unit_test_framework
+	Gaudi::GaudiKernel
+	Gaussino::GiGaMTCoreRunLib
+    TEST
+)
diff --git a/Sim/GiGaMTCore/GiGaMTCoreCut/GaussinoG4UserLimits.h b/Sim/GiGaMTCore/include/GiGaMTCoreCut/GaussinoG4UserLimits.h
similarity index 97%
rename from Sim/GiGaMTCore/GiGaMTCoreCut/GaussinoG4UserLimits.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreCut/GaussinoG4UserLimits.h
index 3d795ee3999b1502fb99d987c10a2de709492af8..4da752156e97fe0a6305fcb429385a5ead730568 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreCut/GaussinoG4UserLimits.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreCut/GaussinoG4UserLimits.h
@@ -15,8 +15,8 @@
 
 enum ULtype {ULMinEkine, ULMaxTime, ULMaxStepLength, ULMaxTrackLength, ULMinRange};
 
-#include "Geant4/globals.hh"
-#include "Geant4/G4UserLimits.hh"
+#include "globals.hh"
+#include "G4UserLimits.hh"
 #include <map>
 
 class G4Track;
@@ -94,7 +94,7 @@ inline bool operator!= ( const Gaussino::UserLimits& ul1 ,
 { return !(ul1 == ul2) ; }
 
 }
-#include "Geant4/G4Track.hh"
+#include "G4Track.hh"
 
 inline const G4String& Gaussino::UserLimits::GetType() const
 {
diff --git a/Sim/GiGaMTCore/GiGaMTCoreDet/GaussHitBase.h b/Sim/GiGaMTCore/include/GiGaMTCoreDet/GaussHitBase.h
similarity index 98%
rename from Sim/GiGaMTCore/GiGaMTCoreDet/GaussHitBase.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreDet/GaussHitBase.h
index efe69880c424aa230dbf417db2868bfe8cb046d4..c8f0b2782aa686635c31e7c6583e0f7448a04a85 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreDet/GaussHitBase.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreDet/GaussHitBase.h
@@ -10,7 +10,7 @@
 \*****************************************************************************/
 #pragma once
 // Include files
-#include "Geant4/G4VHit.hh"
+#include "G4VHit.hh"
 
 /** @class Det/GaussHitBase Det/GaussHitBase.h GaussTools/Det/GaussHitBase.h
  *
diff --git a/Sim/GiGaMTCore/GiGaMTCoreDet/GdmlDetectorConstruction.h b/Sim/GiGaMTCore/include/GiGaMTCoreDet/GdmlDetectorConstruction.h
similarity index 96%
rename from Sim/GiGaMTCore/GiGaMTCoreDet/GdmlDetectorConstruction.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreDet/GdmlDetectorConstruction.h
index 89899e15089b31c380ab784e776a94dbcd5faca5..d86c634b774141ee5f0f443a3ab530a99e9914bc 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreDet/GdmlDetectorConstruction.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreDet/GdmlDetectorConstruction.h
@@ -10,8 +10,8 @@
 \*****************************************************************************/
 #pragma once
 // Geant
-#include "Geant4/G4GDMLParser.hh"
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4GDMLParser.hh"
+#include "G4VUserDetectorConstruction.hh"
 #include <functional>
 
 /** @class GDMLDetectorConstruction
diff --git a/Sim/GiGaMTCore/GiGaMTCoreDet/GiGaMTDetectorConstruction.h b/Sim/GiGaMTCore/include/GiGaMTCoreDet/GiGaMTDetectorConstruction.h
similarity index 95%
rename from Sim/GiGaMTCore/GiGaMTCoreDet/GiGaMTDetectorConstruction.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreDet/GiGaMTDetectorConstruction.h
index 2e9c6c629a92f3c5f622e360195e51f51620ebf7..f107a893dcfdce04db0dbc25f16703d7b66060b6 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreDet/GiGaMTDetectorConstruction.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreDet/GiGaMTDetectorConstruction.h
@@ -11,8 +11,8 @@
 #pragma once
 
 // from Gaudi
-#include "Geant4/G4VPhysicalVolume.hh"
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4VPhysicalVolume.hh"
+#include "G4VUserDetectorConstruction.hh"
 #include <functional>
 
 //@class GiGaMTDetectorConstruction
diff --git a/Sim/GiGaMTCore/GiGaMTCoreDet/IExternalDetectorEmbedder.h b/Sim/GiGaMTCore/include/GiGaMTCoreDet/IExternalDetectorEmbedder.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreDet/IExternalDetectorEmbedder.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreDet/IExternalDetectorEmbedder.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreMessage/IGiGaMessage.h b/Sim/GiGaMTCore/include/GiGaMTCoreMessage/IGiGaMessage.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreMessage/IGiGaMessage.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreMessage/IGiGaMessage.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/Common.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/Common.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/Common.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/Common.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/DetTrackInfo.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/DetTrackInfo.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/DetTrackInfo.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/DetTrackInfo.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxy.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/G4EventProxy.h
similarity index 97%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxy.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/G4EventProxy.h
index 30e7be8e2fdd8c4b048a80aba87d949493857688..66ec8fcf02d30199f799e558acf01bf49abc51f5 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxy.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/G4EventProxy.h
@@ -10,8 +10,8 @@
 \*****************************************************************************/
 #pragma once
 
-#include "Geant4/G4Event.hh"
-#include "Geant4/G4VHitsCollection.hh"
+#include "G4Event.hh"
+#include "G4VHitsCollection.hh"
 #include <memory>
 
 class GiGaWorkerPilot;
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxyAttribute.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/G4EventProxyAttribute.h
similarity index 97%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxyAttribute.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/G4EventProxyAttribute.h
index e5dd41d850b8aa0d4dff3f66917902065f59c3d5..c2b01d31253410d32f8f409e3988aa91f333c6a9 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/G4EventProxyAttribute.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/G4EventProxyAttribute.h
@@ -9,7 +9,7 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #include "HepMC3/Attribute.h"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include <string>
 
 namespace HepMC3
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/G4TruthParticle.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/G4TruthParticle.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/G4TruthParticle.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/G4TruthParticle.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoEventInformation.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoEventInformation.h
similarity index 95%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoEventInformation.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoEventInformation.h
index 9f2e4e2b0d851cc7469ea8e4a516c0b8ed8d7a0b..3ebbea1c9bc6f02f9cee2966ae48e7d1bdc1f2c6 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoEventInformation.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoEventInformation.h
@@ -15,9 +15,9 @@
 #include <string>
 #include <vector>
 /// Geant4
-#include "Geant4/G4EventManager.hh"
-#include "Geant4/G4VUserEventInformation.hh"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "G4EventManager.hh"
+#include "G4VUserEventInformation.hh"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 
 /** @class GaussinoTrackInformation GaussinoTrackInformation.h
  *
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h
similarity index 96%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h
index d6250cca2a106946d3c6e7b7b3d2132ceab06a07..bfb2704c2169b5da0d406bb8903d8f7d5bfb686e 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h
@@ -9,8 +9,8 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #pragma once
-#include "Geant4/G4VUserPrimaryParticleInformation.hh"
-#include "Geant4/G4PrimaryParticle.hh"
+#include "G4VUserPrimaryParticleInformation.hh"
+#include "G4PrimaryParticle.hh"
 
 /** @class GaussinoPrimaryParticleInformation
  *
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoTrackInformation.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoTrackInformation.h
similarity index 97%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoTrackInformation.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoTrackInformation.h
index e9066ebf04eeef03419bd0652e3a52822b9c52f7..1b828899ae6d9401eed044a5a42067bb7a3a7da9 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/GaussinoTrackInformation.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GaussinoTrackInformation.h
@@ -14,13 +14,13 @@
 #include <string>
 #include <vector>
 /// Geant4
-#include "Geant4/G4Allocator.hh"
-#include "Geant4/G4EventManager.hh"
-#include "Geant4/G4TrackingManager.hh"
-#include "Geant4/G4VUserTrackInformation.hh"
+#include "G4Allocator.hh"
+#include "G4EventManager.hh"
+#include "G4TrackingManager.hh"
+#include "G4VUserTrackInformation.hh"
 /// GaussTools
 #include "GiGaMTCoreDet/GaussHitBase.h"
-#include "GiGaMTCoreTruth/DetTrackInfo.h"
+#include "GiGaMTCoreRun/DetTrackInfo.h"
 
 /** @class GaussinoTrackInformation GaussinoTrackInformation.h
  *
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaMTRunManager.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaMTRunManager.h
similarity index 98%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/GiGaMTRunManager.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaMTRunManager.h
index 61983b8d48b8ff6d20b0350eda39b7de4f7d2069..e3bfcfd8f08a2a0f7eaee7ed76e7c37e14579a39 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaMTRunManager.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaMTRunManager.h
@@ -12,7 +12,7 @@
 
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 // Geant4 includes
-#include "Geant4/G4MTRunManager.hh"
+#include "G4MTRunManager.hh"
 
 //@class GiGaMTRunManager
 //@brief Specilization of the G4MTRunManager class for Gaussino
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaRunActionCommand.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaRunActionCommand.h
similarity index 97%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/GiGaRunActionCommand.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaRunActionCommand.h
index ea8764f7f5e1ba67d8e7191f9ded2c0df63c2a65..cbd315cb2704bbd770a541464be4140958afcf21 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaRunActionCommand.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaRunActionCommand.h
@@ -10,7 +10,7 @@
 \*****************************************************************************/
 #pragma once
 
-#include "Geant4/G4UserRunAction.hh"
+#include "G4UserRunAction.hh"
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 #include <string>
 #include <vector>
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPayload.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerPayload.h
similarity index 97%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPayload.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerPayload.h
index 87bdc9e5b68c2ff3ff5a75ea453f2f2aae490347..b80850840fdb652e1657ac893fcbdb9f3f41e578 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPayload.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerPayload.h
@@ -11,7 +11,7 @@
 #pragma once
 
 #include "GiGaMTCoreRun/G4EventProxy.h"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include "Utils/blockingconcurrentqueue.h"
 #include <future>
 #include <vector>
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPilot.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerPilot.h
similarity index 98%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPilot.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerPilot.h
index 02d580dadbbc3a741f43f0223a242592385eca2e..7a3c153106ce1d2094baf3f57d6ff48301ce1285 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerPilot.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerPilot.h
@@ -15,9 +15,9 @@
 #include "GiGaMTCoreUtils/GiGaMTUtils.h"
 #include "GiGaMTCoreRun/GiGaWorkerPayload.h"
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 
-#include "Geant4/G4Event.hh"
+#include "G4Event.hh"
 #include "HepMC3/GenEvent.h"
 
 // Main worker thread class that is instantiated in the
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerRunManager.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerRunManager.h
similarity index 97%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerRunManager.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerRunManager.h
index ed794d2b6e48def87538a551c98f5888f5fa6656..e3f26674d5c00ab4f8fc17e605e5276c27d88103 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/GiGaWorkerRunManager.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/GiGaWorkerRunManager.h
@@ -10,7 +10,7 @@
 \*****************************************************************************/
 #pragma once
 
-#include "Geant4/G4WorkerRunManager.hh"
+#include "G4WorkerRunManager.hh"
 
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticle.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/LinkedParticle.h
similarity index 98%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticle.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/LinkedParticle.h
index c5d4150c231f26ca0d39574b2f3c8dd1b2aad6dd..51e4484476991bf35071a565435898febea299a7 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticle.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/LinkedParticle.h
@@ -11,9 +11,9 @@
 #pragma once
 #include <set>
 
-#include "Geant4/G4PrimaryParticle.hh"
-#include "GiGaMTCoreTruth/Common.h"
-#include "GiGaMTCoreTruth/G4TruthParticle.h"
+#include "G4PrimaryParticle.hh"
+#include "GiGaMTCoreRun/Common.h"
+#include "GiGaMTCoreRun/G4TruthParticle.h"
 #include "HepMC3/FourVector.h"
 #include "HepMC3/GenParticle.h"
 #include "HepMC3/GenVertex.h"
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticleHelpers.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/LinkedParticleHelpers.h
similarity index 96%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticleHelpers.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/LinkedParticleHelpers.h
index a8947eec3deb87738c332f2f7af9203e535d0e6f..9233439ddb0f601895d966f7022d569f8767533d 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/LinkedParticleHelpers.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/LinkedParticleHelpers.h
@@ -10,7 +10,7 @@
 \*****************************************************************************/
 #pragma once
 
-#include "GiGaMTCoreTruth/LinkedParticle.h"
+#include "GiGaMTCoreRun/LinkedParticle.h"
 
 namespace Gaussino::LPUtils {
     bool ShouldHaveButWasNotSimulated( const LinkedParticle* lp );
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthAttribute.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/MCTruthAttribute.h
similarity index 89%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthAttribute.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/MCTruthAttribute.h
index e5dd41d850b8aa0d4dff3f66917902065f59c3d5..675caa0a1d739b91fa98f806c33ce88363b6f883 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthAttribute.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/MCTruthAttribute.h
@@ -9,7 +9,7 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #include "HepMC3/Attribute.h"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include <string>
 
 namespace HepMC3
@@ -20,9 +20,9 @@ namespace HepMC3
     MCTruthAttribute() : Attribute(), m_val( nullptr ) {}
     MCTruthAttribute( Gaussino::MCTruthPtr val ) : Attribute(), m_val( val ) {}
 
-    bool from_string( const string& ){ return true;};
+    bool from_string( const string& ) override { return true; };
 
-    bool to_string( string& ) const { return true;};
+    bool to_string( string& ) const override { return true; };
 
     Gaussino::MCTruthPtr value() const { return m_val; }
 
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthConverter.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/MCTruthConverter.h
similarity index 98%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthConverter.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/MCTruthConverter.h
index feafd051696619609b0b2a7384f542abab2df806..63722904f12021555d4c40ed782b9e211fc34abf 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/MCTruthConverter.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/MCTruthConverter.h
@@ -20,12 +20,12 @@
 #include "HepMCUtils/PrintDecayTree.h"
 #include "HepMC3/GenEvent.h"
 
-#include "GiGaMTCoreTruth/Common.h"
-#include "GiGaMTCoreTruth/LinkedParticle.h"
+#include "GiGaMTCoreRun/Common.h"
+#include "GiGaMTCoreRun/LinkedParticle.h"
 
-#include "Geant4/G4Event.hh"
-#include "Geant4/G4PrimaryParticle.hh"
-#include "Geant4/G4PrimaryVertex.hh"
+#include "G4Event.hh"
+#include "G4PrimaryParticle.hh"
+#include "G4PrimaryVertex.hh"
 
 #include <functional>
 
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/SimResults.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/SimResults.h
similarity index 95%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/SimResults.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/SimResults.h
index b6ee185142ad66ec5b4e0cbfffa5bd335fd6208e..f427e47c37bf1cf66f2a1a2bb442a7897071edf5 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/SimResults.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/SimResults.h
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include "GiGaMTCoreRun/G4EventProxy.h"
 
 namespace Gaussino {
diff --git a/Sim/GiGaMTCore/GiGaMTCoreRun/SimResultsProxyAttribute.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/SimResultsProxyAttribute.h
similarity index 92%
rename from Sim/GiGaMTCore/GiGaMTCoreRun/SimResultsProxyAttribute.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/SimResultsProxyAttribute.h
index ce89de59f1fa112c6f119d6e6969668438c8bc9d..6ca2dec65480dd9f51b0c724abe0a2c4d0375899 100644
--- a/Sim/GiGaMTCore/GiGaMTCoreRun/SimResultsProxyAttribute.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/SimResultsProxyAttribute.h
@@ -19,9 +19,9 @@ namespace HepMC3 {
     SimResultsAttribute( Gaussino::GiGaSimReturn val ) : Attribute(), m_val( val ) {}
     SimResultsAttribute( Gaussino::MCTruthPtr val, G4EventProxyPtr val2 ) : Attribute(), m_val{val2, val} {}
 
-    bool from_string( const string& ) { return true; };
+    bool from_string( const string& ) override { return true; };
 
-    bool to_string( string& ) const { return true; };
+    bool to_string( string& ) const override { return true; };
 
     Gaussino::GiGaSimReturn value() const { return m_val; }
 
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthFlaggingTrackAction.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/TruthFlaggingTrackAction.h
similarity index 98%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/TruthFlaggingTrackAction.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/TruthFlaggingTrackAction.h
index 79ddb3ad86415fdd151e4282f7ba4144b90933a1..184181804ee66f684d5d42287b24492823526315 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthFlaggingTrackAction.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/TruthFlaggingTrackAction.h
@@ -15,9 +15,9 @@
 #include <vector>
 // GiGa
 #include "CLHEP/Units/SystemOfUnits.h"
-#include "Geant4/G4UserTrackingAction.hh"
+#include "G4UserTrackingAction.hh"
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
-#include "GiGaMTCoreTruth/ZMaxPlane.h"
+#include "GiGaMTCoreRun/ZMaxPlane.h"
 
 #include <unordered_set>
 // forward declarations
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthFlaggingTrackAction.icpp b/Sim/GiGaMTCore/include/GiGaMTCoreRun/TruthFlaggingTrackAction.icpp
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/TruthFlaggingTrackAction.icpp
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/TruthFlaggingTrackAction.icpp
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthStoringTrackAction.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/TruthStoringTrackAction.h
similarity index 97%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/TruthStoringTrackAction.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/TruthStoringTrackAction.h
index 5b296efff98d9c83eaab98ee8957635d8462df70..b65b23970a939afc6d3ce5d18f71bbfb567db87e 100755
--- a/Sim/GiGaMTCore/GiGaMTCoreTruth/TruthStoringTrackAction.h
+++ b/Sim/GiGaMTCore/include/GiGaMTCoreRun/TruthStoringTrackAction.h
@@ -10,8 +10,8 @@
 \*****************************************************************************/
 #pragma once
 
-#include "Geant4/G4UserTrackingAction.hh"
-#include "Geant4/G4VProcess.hh"
+#include "G4UserTrackingAction.hh"
+#include "G4VProcess.hh"
 
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 #include "HepMC3/FourVector.h"
diff --git a/Sim/GiGaMTCore/GiGaMTCoreTruth/ZMaxPlane.h b/Sim/GiGaMTCore/include/GiGaMTCoreRun/ZMaxPlane.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreTruth/ZMaxPlane.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreRun/ZMaxPlane.h
diff --git a/Sim/GiGaMTCore/GiGaMTCoreUtils/GiGaMTUtils.h b/Sim/GiGaMTCore/include/GiGaMTCoreUtils/GiGaMTUtils.h
similarity index 100%
rename from Sim/GiGaMTCore/GiGaMTCoreUtils/GiGaMTUtils.h
rename to Sim/GiGaMTCore/include/GiGaMTCoreUtils/GiGaMTUtils.h
diff --git a/Sim/GiGaMTCore/src/truth/Common.cpp b/Sim/GiGaMTCore/src/Lib/Common.cpp
similarity index 97%
rename from Sim/GiGaMTCore/src/truth/Common.cpp
rename to Sim/GiGaMTCore/src/Lib/Common.cpp
index c735d15a33764054f331c8675001dbbeb4125811..061ed5bef20136019dccad2351c808d02fc0b2ea 100644
--- a/Sim/GiGaMTCore/src/truth/Common.cpp
+++ b/Sim/GiGaMTCore/src/Lib/Common.cpp
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/Common.h"
+#include "GiGaMTCoreRun/Common.h"
 
 std::ostream& operator<<( std::ostream& out, const Gaussino::ConversionType& type )
 {
diff --git a/Sim/GiGaMTCore/src/truth/ConverterInfo.cpp b/Sim/GiGaMTCore/src/Lib/ConverterInfo.cpp
similarity index 100%
rename from Sim/GiGaMTCore/src/truth/ConverterInfo.cpp
rename to Sim/GiGaMTCore/src/Lib/ConverterInfo.cpp
diff --git a/Sim/GiGaMTCore/src/truth/ConverterInfo.h b/Sim/GiGaMTCore/src/Lib/ConverterInfo.h
similarity index 96%
rename from Sim/GiGaMTCore/src/truth/ConverterInfo.h
rename to Sim/GiGaMTCore/src/Lib/ConverterInfo.h
index 6c99f2d1692e0d745129c4c12f6a8319a8ef63a5..bbdee09c5acbe3c8022e7ec1b5f8ad4ecdee6b7c 100644
--- a/Sim/GiGaMTCore/src/truth/ConverterInfo.h
+++ b/Sim/GiGaMTCore/src/Lib/ConverterInfo.h
@@ -12,7 +12,7 @@
 #include "HepMC3/GenEvent.h"
 #include "HepMC3/GenParticle.h"
 
-#include "GiGaMTCoreTruth/Common.h"
+#include "GiGaMTCoreRun/Common.h"
 
 namespace Gaussino
 {
diff --git a/Sim/GiGaMTCore/src/run/G4EventProxy.cpp b/Sim/GiGaMTCore/src/Lib/G4EventProxy.cpp
similarity index 100%
rename from Sim/GiGaMTCore/src/run/G4EventProxy.cpp
rename to Sim/GiGaMTCore/src/Lib/G4EventProxy.cpp
diff --git a/Sim/GiGaMTCore/src/run/G4EventProxyAttribute.cpp b/Sim/GiGaMTCore/src/Lib/G4EventProxyAttribute.cpp
similarity index 94%
rename from Sim/GiGaMTCore/src/run/G4EventProxyAttribute.cpp
rename to Sim/GiGaMTCore/src/Lib/G4EventProxyAttribute.cpp
index 249326614d0327d9a694705e046c437d4244aaad..c6f5cb02a6e494e07902eea49cb9c72ea61921d9 100644
--- a/Sim/GiGaMTCore/src/run/G4EventProxyAttribute.cpp
+++ b/Sim/GiGaMTCore/src/Lib/G4EventProxyAttribute.cpp
@@ -8,4 +8,4 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/MCTruthAttribute.h"
+#include "GiGaMTCoreRun/MCTruthAttribute.h"
diff --git a/Sim/GiGaMTCore/src/truth/GaussinoEventInformation.cpp b/Sim/GiGaMTCore/src/Lib/GaussinoEventInformation.cpp
similarity index 93%
rename from Sim/GiGaMTCore/src/truth/GaussinoEventInformation.cpp
rename to Sim/GiGaMTCore/src/Lib/GaussinoEventInformation.cpp
index 6cda1748f86753c46d6c812f8f5b551aff3f3f0b..a02ef3be20473cc6339bcc3d40db50707f2da03e 100755
--- a/Sim/GiGaMTCore/src/truth/GaussinoEventInformation.cpp
+++ b/Sim/GiGaMTCore/src/Lib/GaussinoEventInformation.cpp
@@ -8,4 +8,4 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/GaussinoEventInformation.h"
+#include "GiGaMTCoreRun/GaussinoEventInformation.h"
diff --git a/Sim/GiGaMTCore/src/cut/GaussinoG4UserLimits.cpp b/Sim/GiGaMTCore/src/Lib/GaussinoG4UserLimits.cpp
similarity index 100%
rename from Sim/GiGaMTCore/src/cut/GaussinoG4UserLimits.cpp
rename to Sim/GiGaMTCore/src/Lib/GaussinoG4UserLimits.cpp
diff --git a/Sim/GiGaMTCore/src/truth/GaussinoPrimaryParticleInformation.cpp b/Sim/GiGaMTCore/src/Lib/GaussinoPrimaryParticleInformation.cpp
similarity index 93%
rename from Sim/GiGaMTCore/src/truth/GaussinoPrimaryParticleInformation.cpp
rename to Sim/GiGaMTCore/src/Lib/GaussinoPrimaryParticleInformation.cpp
index b809e6acbbd7c67d3b54c7f9796ae54f9c5aef0d..4981f11b826b45ee1bdd559c2836b43e798b71c2 100644
--- a/Sim/GiGaMTCore/src/truth/GaussinoPrimaryParticleInformation.cpp
+++ b/Sim/GiGaMTCore/src/Lib/GaussinoPrimaryParticleInformation.cpp
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h"
+#include "GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h"
 
 std::ostream& operator<<( std::ostream& out, const GaussinoPrimaryParticleInformation& lp )
 {
diff --git a/Sim/GiGaMTCore/src/truth/GaussinoTrackInformation.cpp b/Sim/GiGaMTCore/src/Lib/GaussinoTrackInformation.cpp
similarity index 96%
rename from Sim/GiGaMTCore/src/truth/GaussinoTrackInformation.cpp
rename to Sim/GiGaMTCore/src/Lib/GaussinoTrackInformation.cpp
index 7e5d8ab01bd4fcb68a1f8f93da4bb1cf83ccb8cf..9b944147c0d1ff25cd8257290cd591f915015dd7 100755
--- a/Sim/GiGaMTCore/src/truth/GaussinoTrackInformation.cpp
+++ b/Sim/GiGaMTCore/src/Lib/GaussinoTrackInformation.cpp
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/GaussinoTrackInformation.h"
+#include "GiGaMTCoreRun/GaussinoTrackInformation.h"
 
 // ============================================================================
 /** @file
diff --git a/Sim/GiGaMTCore/src/run/GiGaMTRunManager.cpp b/Sim/GiGaMTCore/src/Lib/GiGaMTRunManager.cpp
similarity index 90%
rename from Sim/GiGaMTCore/src/run/GiGaMTRunManager.cpp
rename to Sim/GiGaMTCore/src/Lib/GiGaMTRunManager.cpp
index 3535ad61a18c49f79aeae6afe5a5c2703f35cf7d..7e4daf548d62257d508caa91eb15d144b8ab52e3 100644
--- a/Sim/GiGaMTCore/src/run/GiGaMTRunManager.cpp
+++ b/Sim/GiGaMTCore/src/Lib/GiGaMTRunManager.cpp
@@ -10,16 +10,16 @@
 \*****************************************************************************/
 #include "GiGaMTCoreRun/GiGaMTRunManager.h"
 
-#include "Geant4/G4StateManager.hh"
-#include "Geant4/G4GeometryManager.hh"
-#include "Geant4/G4UserRunAction.hh"
-#include "Geant4/G4Run.hh"
-#include "Geant4/G4LogicalVolumeStore.hh"
-#include "Geant4/G4MTRunManagerKernel.hh"
-
-#include "Geant4/G4IonTable.hh"
-#include "Geant4/G4ParticleTable.hh"
-#include "Geant4/G4CascadeInterface.hh"
+#include "G4StateManager.hh"
+#include "G4GeometryManager.hh"
+#include "G4UserRunAction.hh"
+#include "G4Run.hh"
+#include "G4LogicalVolumeStore.hh"
+#include "G4MTRunManagerKernel.hh"
+
+#include "G4IonTable.hh"
+#include "G4ParticleTable.hh"
+#include "G4CascadeInterface.hh"
 
 #include "GaudiKernel/ISvcLocator.h"
 #include "GaudiKernel/Bootstrap.h"
diff --git a/Sim/GiGaMTCore/src/message/GiGaMessage.cpp b/Sim/GiGaMTCore/src/Lib/GiGaMessage.cpp
similarity index 100%
rename from Sim/GiGaMTCore/src/message/GiGaMessage.cpp
rename to Sim/GiGaMTCore/src/Lib/GiGaMessage.cpp
diff --git a/Sim/GiGaMTCore/src/run/GiGaRunActionCommand.cpp b/Sim/GiGaMTCore/src/Lib/GiGaRunActionCommand.cpp
similarity index 98%
rename from Sim/GiGaMTCore/src/run/GiGaRunActionCommand.cpp
rename to Sim/GiGaMTCore/src/Lib/GiGaRunActionCommand.cpp
index 8e5c894e5952444a0c9817fc1f12886ea4446f4b..d82fcf7d661a2c6a3d11fbf9fbbd1f5463d8c292 100755
--- a/Sim/GiGaMTCore/src/run/GiGaRunActionCommand.cpp
+++ b/Sim/GiGaMTCore/src/Lib/GiGaRunActionCommand.cpp
@@ -9,7 +9,7 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #include "GiGaMTCoreRun/GiGaRunActionCommand.h"
-#include "Geant4/G4UImanager.hh"
+#include "G4UImanager.hh"
 
 // ============================================================================
 /** performe the action at the begin of each run
diff --git a/Sim/GiGaMTCore/src/run/GiGaWorkerPayload.cpp b/Sim/GiGaMTCore/src/Lib/GiGaWorkerPayload.cpp
similarity index 100%
rename from Sim/GiGaMTCore/src/run/GiGaWorkerPayload.cpp
rename to Sim/GiGaMTCore/src/Lib/GiGaWorkerPayload.cpp
diff --git a/Sim/GiGaMTCore/src/run/GiGaWorkerPilot.cpp b/Sim/GiGaMTCore/src/Lib/GiGaWorkerPilot.cpp
similarity index 97%
rename from Sim/GiGaMTCore/src/run/GiGaWorkerPilot.cpp
rename to Sim/GiGaMTCore/src/Lib/GiGaWorkerPilot.cpp
index 638362a88f351d55cd8cdca6d64794517d6ea526..e6f5930ccfc7299c66a2debee15495aff966b8d2 100644
--- a/Sim/GiGaMTCore/src/run/GiGaWorkerPilot.cpp
+++ b/Sim/GiGaMTCore/src/Lib/GiGaWorkerPilot.cpp
@@ -13,16 +13,16 @@
 #include "GiGaMTCoreRun/GiGaWorkerRunManager.h"
 #include "GaudiKernel/GaudiException.h"
 
-#include "GiGaMTCoreTruth/GaussinoEventInformation.h"
+#include "GiGaMTCoreRun/GaussinoEventInformation.h"
 
 #include <string>
 
-#include "Geant4/G4AutoDelete.hh"
-#include "Geant4/G4Event.hh"
-#include "Geant4/G4UImanager.hh"
-#include "Geant4/G4UserWorkerThreadInitialization.hh"
-#include "Geant4/G4VUserActionInitialization.hh"
-#include "Geant4/G4WorkerThread.hh"
+#include "G4AutoDelete.hh"
+#include "G4Event.hh"
+#include "G4UImanager.hh"
+#include "G4UserWorkerThreadInitialization.hh"
+#include "G4VUserActionInitialization.hh"
+#include "G4WorkerThread.hh"
 
 GiGaWorkerPilot::GiGaWorkerPilot( GiGaWorkerPilot&& right ) : GiGaMessage( std::move( right ) )
 {
diff --git a/Sim/GiGaMTCore/src/run/GiGaWorkerRunManager.cpp b/Sim/GiGaMTCore/src/Lib/GiGaWorkerRunManager.cpp
similarity index 94%
rename from Sim/GiGaMTCore/src/run/GiGaWorkerRunManager.cpp
rename to Sim/GiGaMTCore/src/Lib/GiGaWorkerRunManager.cpp
index bab58e4c1c0e880fa829a326ac1d99d962746b75..445ffb76b228ac5262362c250e7354727c77c021 100644
--- a/Sim/GiGaMTCore/src/run/GiGaWorkerRunManager.cpp
+++ b/Sim/GiGaMTCore/src/Lib/GiGaWorkerRunManager.cpp
@@ -10,14 +10,14 @@
 \*****************************************************************************/
 #include "GiGaMTCoreRun/GiGaWorkerRunManager.h"
 
-#include "Geant4/G4Event.hh"
-#include "Geant4/G4GeometryManager.hh"
-#include "Geant4/G4LogicalVolumeStore.hh"
-#include "Geant4/G4MTRunManager.hh"
-#include "Geant4/G4StateManager.hh"
-#include "Geant4/G4TransportationManager.hh"
-#include "Geant4/G4UImanager.hh"
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4Event.hh"
+#include "G4GeometryManager.hh"
+#include "G4LogicalVolumeStore.hh"
+#include "G4MTRunManager.hh"
+#include "G4StateManager.hh"
+#include "G4TransportationManager.hh"
+#include "G4UImanager.hh"
+#include "G4VUserDetectorConstruction.hh"
 
 #include <mutex>
 
diff --git a/Sim/GiGaMTCore/src/truth/Helpers.cpp b/Sim/GiGaMTCore/src/Lib/Helpers.cpp
similarity index 96%
rename from Sim/GiGaMTCore/src/truth/Helpers.cpp
rename to Sim/GiGaMTCore/src/Lib/Helpers.cpp
index b52843c64902237d9b88046f8137f09a0c033337..f3662dfcdc64ec5655b32654c76e71b8157bbe32 100644
--- a/Sim/GiGaMTCore/src/truth/Helpers.cpp
+++ b/Sim/GiGaMTCore/src/Lib/Helpers.cpp
@@ -9,7 +9,7 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #include "Helpers.h"
-#include "GiGaMTCoreTruth/LinkedParticle.h"
+#include "GiGaMTCoreRun/LinkedParticle.h"
 
 namespace Gaussino::LinkedParticleHelpers
 {
diff --git a/Sim/GiGaMTCore/src/truth/Helpers.h b/Sim/GiGaMTCore/src/Lib/Helpers.h
similarity index 100%
rename from Sim/GiGaMTCore/src/truth/Helpers.h
rename to Sim/GiGaMTCore/src/Lib/Helpers.h
diff --git a/Sim/GiGaMTCore/src/truth/LinkedParticle.cpp b/Sim/GiGaMTCore/src/Lib/LinkedParticle.cpp
similarity index 98%
rename from Sim/GiGaMTCore/src/truth/LinkedParticle.cpp
rename to Sim/GiGaMTCore/src/Lib/LinkedParticle.cpp
index 5859dae0f79c83e658986e924b4b384266433587..77ca94bec0f84b27cc8e5de9365dfde6fd512439 100644
--- a/Sim/GiGaMTCore/src/truth/LinkedParticle.cpp
+++ b/Sim/GiGaMTCore/src/Lib/LinkedParticle.cpp
@@ -8,11 +8,11 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/LinkedParticle.h"
+#include "GiGaMTCoreRun/LinkedParticle.h"
 
 #include "CLHEP/Units/PhysicalConstants.h"
-#include "GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h"
-#include "GiGaMTCoreTruth/LinkedParticleHelpers.h"
+#include "GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h"
+#include "GiGaMTCoreRun/LinkedParticleHelpers.h"
 #include "Helpers.h"
 #include "Math/GenVector/Boost.h"
 #include "Math/Vector4D.h"
diff --git a/Sim/GiGaMTCore/src/truth/LinkedParticleHelpers.cpp b/Sim/GiGaMTCore/src/Lib/LinkedParticleHelpers.cpp
similarity index 97%
rename from Sim/GiGaMTCore/src/truth/LinkedParticleHelpers.cpp
rename to Sim/GiGaMTCore/src/Lib/LinkedParticleHelpers.cpp
index 3ba8757d495642b97e682da0e2a65610c9449e64..92f564dccf0bab3fc684cf25c53276a85f3b3f8a 100644
--- a/Sim/GiGaMTCore/src/truth/LinkedParticleHelpers.cpp
+++ b/Sim/GiGaMTCore/src/Lib/LinkedParticleHelpers.cpp
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/LinkedParticleHelpers.h"
+#include "GiGaMTCoreRun/LinkedParticleHelpers.h"
 
 namespace Gaussino::LPUtils {
     bool ShouldHaveButWasNotSimulated( const LinkedParticle* lp ) {
diff --git a/Sim/GiGaMTCore/src/truth/MCTruthAttribute.cpp b/Sim/GiGaMTCore/src/Lib/MCTruthAttribute.cpp
similarity index 94%
rename from Sim/GiGaMTCore/src/truth/MCTruthAttribute.cpp
rename to Sim/GiGaMTCore/src/Lib/MCTruthAttribute.cpp
index 249326614d0327d9a694705e046c437d4244aaad..c6f5cb02a6e494e07902eea49cb9c72ea61921d9 100644
--- a/Sim/GiGaMTCore/src/truth/MCTruthAttribute.cpp
+++ b/Sim/GiGaMTCore/src/Lib/MCTruthAttribute.cpp
@@ -8,4 +8,4 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/MCTruthAttribute.h"
+#include "GiGaMTCoreRun/MCTruthAttribute.h"
diff --git a/Sim/GiGaMTCore/src/truth/MCTruthConverter.cpp b/Sim/GiGaMTCore/src/Lib/MCTruthConverter.cpp
similarity index 99%
rename from Sim/GiGaMTCore/src/truth/MCTruthConverter.cpp
rename to Sim/GiGaMTCore/src/Lib/MCTruthConverter.cpp
index 50ec76c4694b3b42c51643a5eec2db45947b4404..217e638563048ed8d83394c62bccc5412505dd28 100644
--- a/Sim/GiGaMTCore/src/truth/MCTruthConverter.cpp
+++ b/Sim/GiGaMTCore/src/Lib/MCTruthConverter.cpp
@@ -8,13 +8,12 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include "ConverterInfo.h"
 #include "GaudiKernel/GaudiException.h"
-#include "Geant4/G4SystemOfUnits.hh"
-#include "GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h"
-#include "GiGaMTCoreTruth/LinkedParticleHelpers.h"
-#include "GiGaMTCoreRun/SimResults.h"
+#include "G4SystemOfUnits.hh"
+#include "GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h"
+#include "GiGaMTCoreRun/LinkedParticleHelpers.h"
 #include "GiGaMTCoreRun/SimResultsProxyAttribute.h"
 #include "Defaults/HepMCAttributes.h"
 #include "Helpers.h"
diff --git a/Sim/GiGaMTCore/src/run/SimResultsAttribute.cpp b/Sim/GiGaMTCore/src/Lib/SimResultsAttribute.cpp
similarity index 100%
rename from Sim/GiGaMTCore/src/run/SimResultsAttribute.cpp
rename to Sim/GiGaMTCore/src/Lib/SimResultsAttribute.cpp
diff --git a/Sim/GiGaMTCore/src/truth/TruthFlaggingTrackAction.cpp b/Sim/GiGaMTCore/src/Lib/TruthFlaggingTrackAction.cpp
similarity index 97%
rename from Sim/GiGaMTCore/src/truth/TruthFlaggingTrackAction.cpp
rename to Sim/GiGaMTCore/src/Lib/TruthFlaggingTrackAction.cpp
index 75ba10f63837da0eb3f18d46152f8d04ca09652b..c37b34fd385214fb02678cc2b006ce0201766232 100755
--- a/Sim/GiGaMTCore/src/truth/TruthFlaggingTrackAction.cpp
+++ b/Sim/GiGaMTCore/src/Lib/TruthFlaggingTrackAction.cpp
@@ -11,22 +11,22 @@
 /// CLHEP
 #include "CLHEP/Geometry/Point3D.h"
 /// Geant4
-#include "Geant4/G4ParticleDefinition.hh"
-#include "Geant4/G4ParticleTable.hh"
-#include "Geant4/G4PrimaryParticle.hh"
-#include "Geant4/G4Track.hh"
-#include "Geant4/G4TrackVector.hh"
-#include "Geant4/G4TrackingManager.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4ParticleTable.hh"
+#include "G4PrimaryParticle.hh"
+#include "G4Track.hh"
+#include "G4TrackVector.hh"
+#include "G4TrackingManager.hh"
 /// GaudiKernel
 #include "GaudiKernel/MsgStream.h"
 /// GiGa
 //#include "GiGaCnv/GiGaPrimaryParticleInformation.h"
 // GaussTools
 //#include "GaussTools/GaussTrajectory.h"
-#include "GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h"
-#include "GiGaMTCoreTruth/GaussinoTrackInformation.h"
+#include "GiGaMTCoreRun/GaussinoTrackInformation.h"
+#include "GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h"
 /// local
-#include "GiGaMTCoreTruth/TruthFlaggingTrackAction.h"
+#include "GiGaMTCoreRun/TruthFlaggingTrackAction.h"
 
 // ============================================================================
 /** initialize the track action
diff --git a/Sim/GiGaMTCore/src/truth/TruthStoringTrackAction.cpp b/Sim/GiGaMTCore/src/Lib/TruthStoringTrackAction.cpp
similarity index 94%
rename from Sim/GiGaMTCore/src/truth/TruthStoringTrackAction.cpp
rename to Sim/GiGaMTCore/src/Lib/TruthStoringTrackAction.cpp
index a6603ce127395f8229229d745eb55692d7fd7bba..9ad4fac3d89a38ce8315cfe6ea269701f1bac26a 100755
--- a/Sim/GiGaMTCore/src/truth/TruthStoringTrackAction.cpp
+++ b/Sim/GiGaMTCore/src/Lib/TruthStoringTrackAction.cpp
@@ -22,20 +22,20 @@
 #include "Kernel/ParticleProperty.h"
 
 // G4
-#include "Geant4/G4ParticleDefinition.hh"
-#include "Geant4/G4PrimaryParticle.hh"
-#include "Geant4/G4TrackingManager.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4PrimaryParticle.hh"
+#include "G4TrackingManager.hh"
 
 // Included for vertex types
 // FIXME: Need to reorganise when splitting LHCb
 #include "Event/MCVertex.h"
 
 // local
-#include "GiGaMTCoreTruth/G4TruthParticle.h"
-#include "GiGaMTCoreTruth/GaussinoEventInformation.h"
-#include "GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h"
-#include "GiGaMTCoreTruth/GaussinoTrackInformation.h"
-#include "GiGaMTCoreTruth/TruthStoringTrackAction.h"
+#include "GiGaMTCoreRun/G4TruthParticle.h"
+#include "GiGaMTCoreRun/GaussinoEventInformation.h"
+#include "GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h"
+#include "GiGaMTCoreRun/GaussinoTrackInformation.h"
+#include "GiGaMTCoreRun/TruthStoringTrackAction.h"
 
 /*static*/ std::unordered_set<std::string> TruthStoringTrackAction::m_hadronicProcesses = {
     "KaonPlusInelastic",
@@ -174,9 +174,12 @@ void TruthStoringTrackAction::PostUserTrackingAction( const G4Track* track ) {
     // and continued later on. If the track is not in suspended state, it is the true end of the
     // processing
     if(addEndVertices && track->GetTrackStatus() != G4TrackStatus::fSuspend){
-      int type = 0;
+      // int type = 0;
       if(auto stepproc = track->GetStep()->GetPostStepPoint()->GetProcessDefinedStep();stepproc){
-        type = processID(stepproc);
+        // type = processID(stepproc);
+        // FIXME: commented out to remove the warning about unused varaible,
+        // what does it do anyway?
+        processID(stepproc);
       }
       event_info->TruthTracker()->BufferEnd(endpos, 0, track->GetTrackID());
     }
diff --git a/Sim/GiGaMTCore/src/truth/ZMaxPlane.cpp b/Sim/GiGaMTCore/src/Lib/ZMaxPlane.cpp
similarity index 97%
rename from Sim/GiGaMTCore/src/truth/ZMaxPlane.cpp
rename to Sim/GiGaMTCore/src/Lib/ZMaxPlane.cpp
index 5a41abcacdee5fc441e09dd08a020380fdbe4bfd..e9af8ad0de595c028fbbc1f5e9d8fc3e73f379fa 100644
--- a/Sim/GiGaMTCore/src/truth/ZMaxPlane.cpp
+++ b/Sim/GiGaMTCore/src/Lib/ZMaxPlane.cpp
@@ -12,7 +12,7 @@
 #include "GaudiKernel/SystemOfUnits.h"
 #include "GaudiKernel/Transform3DTypes.h"
 // local
-#include "GiGaMTCoreTruth/ZMaxPlane.h"
+#include "GiGaMTCoreRun/ZMaxPlane.h"
 
 void ZMaxPlane::prepare( double zMax, double tilt, double yShift ) {
   // apply a rotation around X axis by tilt (radians)
diff --git a/Sim/GiGaMTCore/tests/src/test_zMaxTilt.cpp b/Sim/GiGaMTCore/tests/test_zMaxTilt.cpp
similarity index 98%
rename from Sim/GiGaMTCore/tests/src/test_zMaxTilt.cpp
rename to Sim/GiGaMTCore/tests/test_zMaxTilt.cpp
index 0fed173b26dfb172716b369cfb99af764850c271..974959dba046a85fc4764f9d90b2952cd463c285 100644
--- a/Sim/GiGaMTCore/tests/src/test_zMaxTilt.cpp
+++ b/Sim/GiGaMTCore/tests/test_zMaxTilt.cpp
@@ -11,7 +11,7 @@
 #define BOOST_TEST_DYN_LINK
 #define BOOST_TEST_MODULE utestZMaxTilt
 #include "GaudiKernel/SystemOfUnits.h"
-#include "GiGaMTCoreTruth/ZMaxPlane.h"
+#include "GiGaMTCoreRun/ZMaxPlane.h"
 #include <boost/test/unit_test.hpp>
 #include <iostream>
 
diff --git a/Sim/GiGaMTDD4hep/CMakeLists.txt b/Sim/GiGaMTDD4hep/CMakeLists.txt
index f39be9c7a1ad1fd5685ef710a1b8e0c4704d4a7c..19effac16dc9ecb2bd70c28f6bc4686034bd0ea6 100644
--- a/Sim/GiGaMTDD4hep/CMakeLists.txt
+++ b/Sim/GiGaMTDD4hep/CMakeLists.txt
@@ -8,52 +8,36 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
+#[=======================================================================[.rst:
+Sim/GiGaMTDD4hep
+----------------
+#]=======================================================================]
 ################################################################################
 # Package: GiGaMTDD4hep
 # Interfaces to load the detector from the DD4hep geometry service
 ################################################################################
-gaudi_subdir(GiGaMTDD4hep v1r0)
 
-
-gaudi_depends_on_subdirs(GaudiAlg
-                         Sim/GiGaMTFactories
-                         Sim/GiGaMTCore
-                         Sim/SimInterfaces
-                         Sim/GiGaMTGeo
-                         DD4hepDDG4Ext
-                         Det/LbDD4hep)
-
-find_package(ROOT COMPONENTS Geom Core GenVector Matrix Physics)
-
-find_package(Boost COMPONENTS system thread filesystem)
-
-include_directories(SYSTEM  ${ROOT_INCLUDE_DIRS})
-AddHepMC3()
-AddDD4hepDDG4()
-
-message(STATUS "ROOTSYS -> ${ROOTSYS}")
-set(ENV{ROOTSYS} ${ROOTSYS})
-
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
+if(USE_DD4HEP)
+    gaudi_add_library(GiGaMTDD4hepLib
+        SOURCES
+            src/Lib/DD4hepCnvSvc.cpp
+            src/Lib/DD4hepDetectorConstruction.cpp
+            src/Lib/Utilities.cpp
+        LINK
+            PUBLIC
+                DD4hep::DDCore
+                DD4hep::DDG4
+                Gaussino::GiGaMTFactoriesLib
+		Gaussino::GiGaMTGeoLib
+                Gaussino::GiGaMTCoreRunLib
+    ) 
+
+    gaudi_add_module(GiGaMTDD4hep
+        SOURCES
+            src/Components/DD4hepCnvSvcConf.cpp
+            src/Components/DD4hepDetectorConstructionFAC.cpp
+        LINK
+            LHCb::LbDD4hepLib # FIXME: [LHCb DEPENDENCY]
+            Gaussino::GiGaMTDD4hepLib
+    )
 endif()
-
-find_package(DD4hep REQUIRED CONFIG COMPONENTS DDCore)
-
-message(STATUS "DD4hepDDG4_INCLUDE_DIRS: ${DD4hepDDG4_INCLUDE_DIRS}")
-message(STATUS "DD4hepDDG4_LIBRARIES: ${DD4hepDDG4_LIBRARIES}")
-
-include_directories(SYSTEM  ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${DD4hep_INCLUDE_DIRS}  ${DD4hepDDG4_INCLUDE_DIRS})
-
-gaudi_add_library(GiGaMTDD4hepLib
-                  src/lib/*.cpp 
-                  PUBLIC_HEADERS GiGaMTDD4hep
-                  INCLUDE_DIRS LbDD4hep DD4hep
-                  LINK_LIBRARIES DD4hep ${DD4hep_COMPONENT_LIBRARIES} ROOT GiGaMTCoreRunLib ${DD4hepDDG4_LIBRARIES}) 
-
-add_dependencies(GiGaMTDD4hepLib DD4hepDDG4Ext) 
-
-gaudi_add_module(GiGaMTDD4hep
-                 src/components/*.cpp 
-                 LINK_LIBRARIES GiGaMTDD4hepLib GaudiAlgLib)
diff --git a/Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepCnvSvc.h b/Sim/GiGaMTDD4hep/include/GiGaMTDD4hep/DD4hepCnvSvc.h
similarity index 99%
rename from Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepCnvSvc.h
rename to Sim/GiGaMTDD4hep/include/GiGaMTDD4hep/DD4hepCnvSvc.h
index 875973bb454fbf9e41c4b5b746455620a849b0b6..fa7ff27899996c96242f528e6310e3bd14aefb74 100644
--- a/Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepCnvSvc.h
+++ b/Sim/GiGaMTDD4hep/include/GiGaMTDD4hep/DD4hepCnvSvc.h
@@ -20,7 +20,7 @@
 #include "GaudiKernel/IIncidentSvc.h"
 #include "GaudiKernel/Service.h"
 #include "GaudiKernel/Transform3DTypes.h"
-#include "Geant4/G4VSensitiveDetector.hh"
+#include "G4VSensitiveDetector.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 
 #include "Kernel/IPropertyConfigSvc.h"
diff --git a/Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepDetectorConstruction.h b/Sim/GiGaMTDD4hep/include/GiGaMTDD4hep/DD4hepDetectorConstruction.h
similarity index 98%
rename from Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepDetectorConstruction.h
rename to Sim/GiGaMTDD4hep/include/GiGaMTDD4hep/DD4hepDetectorConstruction.h
index 1ed11c6e3bf795c1f741bced7d0395e320277eb4..358c4248aee093e0f004cba8d8e7773e65ae1c90 100644
--- a/Sim/GiGaMTDD4hep/GiGaMTDD4hep/DD4hepDetectorConstruction.h
+++ b/Sim/GiGaMTDD4hep/include/GiGaMTDD4hep/DD4hepDetectorConstruction.h
@@ -12,7 +12,7 @@
 // Geant
 #include <functional>
 #include "DD4hep/Printout.h"
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4VUserDetectorConstruction.hh"
 
 namespace dd4hep {
 class Detector;
diff --git a/Sim/GiGaMTDD4hep/GiGaMTDD4hep/Utilities.h b/Sim/GiGaMTDD4hep/include/GiGaMTDD4hep/Utilities.h
similarity index 100%
rename from Sim/GiGaMTDD4hep/GiGaMTDD4hep/Utilities.h
rename to Sim/GiGaMTDD4hep/include/GiGaMTDD4hep/Utilities.h
diff --git a/Sim/GiGaMTDD4hep/src/components/DD4hepCnvSvcConf.cpp b/Sim/GiGaMTDD4hep/src/Components/DD4hepCnvSvcConf.cpp
similarity index 100%
rename from Sim/GiGaMTDD4hep/src/components/DD4hepCnvSvcConf.cpp
rename to Sim/GiGaMTDD4hep/src/Components/DD4hepCnvSvcConf.cpp
diff --git a/Sim/GiGaMTDD4hep/src/components/DD4hepDetectorConstructionFAC.cpp b/Sim/GiGaMTDD4hep/src/Components/DD4hepDetectorConstructionFAC.cpp
similarity index 98%
rename from Sim/GiGaMTDD4hep/src/components/DD4hepDetectorConstructionFAC.cpp
rename to Sim/GiGaMTDD4hep/src/Components/DD4hepDetectorConstructionFAC.cpp
index 446bed5b47eae22587890af5790855a1ba886810..12b9ead8d254b06f58ead08c867bdee7b6fc45f3 100644
--- a/Sim/GiGaMTDD4hep/src/components/DD4hepDetectorConstructionFAC.cpp
+++ b/Sim/GiGaMTDD4hep/src/Components/DD4hepDetectorConstructionFAC.cpp
@@ -17,8 +17,8 @@
 #include "TSystem.h"
 
 // Geant4
-#include "Geant4/G4VUserDetectorConstruction.hh"
-#include "Geant4/G4FieldManager.hh"
+#include "G4VUserDetectorConstruction.hh"
+#include "G4FieldManager.hh"
 
 /** @class DD4hepDetectorConstructionFAC SimG4Components/src/DD4hepDetectorConstructionFAC.h DD4hepDetectorConstructionFAC.h
  *
diff --git a/Sim/GiGaMTDD4hep/src/lib/DD4hepCnvSvc.cpp b/Sim/GiGaMTDD4hep/src/Lib/DD4hepCnvSvc.cpp
similarity index 98%
rename from Sim/GiGaMTDD4hep/src/lib/DD4hepCnvSvc.cpp
rename to Sim/GiGaMTDD4hep/src/Lib/DD4hepCnvSvc.cpp
index 45dc9e38d30588034985f521a03743e2f6b263cd..5c787802205127c299af7e859ae7c783e178bde3 100644
--- a/Sim/GiGaMTDD4hep/src/lib/DD4hepCnvSvc.cpp
+++ b/Sim/GiGaMTDD4hep/src/Lib/DD4hepCnvSvc.cpp
@@ -12,7 +12,7 @@
 #include "GiGaMTDD4hep/DD4hepCnvSvc.h"
 
 // Geant4
-#include "Geant4/G4SDManager.hh"
+#include "G4SDManager.hh"
 #include "TSystem.h"
 
 // ============================================================================
@@ -47,13 +47,12 @@ StatusCode DD4hepCnvSvc::initialize() {
     for ( auto& pp : g4map.volumeManager()->g4Paths ) {
       debug() << "/";
       for ( auto& pv : pp.first ) { debug() << pv->GetName() << "/"; }
-      debug() << " ID:" << pp.second << endmsg;
+      debug() << " ID:" << pp.second.volumeID << endmsg;
     }
     for ( auto& [dd4hep_volume, g4_volume] : g4map.data().g4Volumes ) {
       if ( !dd4hep_volume.isValid() || !dd4hep_volume.isSensitive() ) { continue; }
       auto dd4hep_sensdet_name = dd4hep_volume.sensitiveDetector().name();
       debug() << "Active volume '" << dd4hep_volume.name() << "' SensDet: '" << dd4hep_sensdet_name << "'" << endmsg;
-      if ( dd4hep_volume.isSensitive() ) {}
     }
   }
 
diff --git a/Sim/GiGaMTDD4hep/src/lib/DD4hepDetectorConstruction.cpp b/Sim/GiGaMTDD4hep/src/Lib/DD4hepDetectorConstruction.cpp
similarity index 97%
rename from Sim/GiGaMTDD4hep/src/lib/DD4hepDetectorConstruction.cpp
rename to Sim/GiGaMTDD4hep/src/Lib/DD4hepDetectorConstruction.cpp
index 34511c0e65b1f6844c4bca63acbed0cb7c8fe28f..f8cd63bfcfc5f9b86866a58fb53055a92ff3abda 100644
--- a/Sim/GiGaMTDD4hep/src/lib/DD4hepDetectorConstruction.cpp
+++ b/Sim/GiGaMTDD4hep/src/Lib/DD4hepDetectorConstruction.cpp
@@ -17,7 +17,7 @@
 #include "DDG4/Geant4Converter.h"
 #include "DDG4/Geant4Mapping.h"
 
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4VUserDetectorConstruction.hh"
 
 DD4hepDetectorConstruction::DD4hepDetectorConstruction(
     const dd4hep::Detector& detector)
diff --git a/Sim/GiGaMTDD4hep/src/lib/Utilities.cpp b/Sim/GiGaMTDD4hep/src/Lib/Utilities.cpp
similarity index 100%
rename from Sim/GiGaMTDD4hep/src/lib/Utilities.cpp
rename to Sim/GiGaMTDD4hep/src/Lib/Utilities.cpp
diff --git a/Sim/GiGaMTDebug/CMakeLists.txt b/Sim/GiGaMTDebug/CMakeLists.txt
index dc96bd3a6a7b7888fc908683eea39bbfebb6d6b7..765a973b5ce1e7b84f4a723ab3ba648e937a3bf9 100644
--- a/Sim/GiGaMTDebug/CMakeLists.txt
+++ b/Sim/GiGaMTDebug/CMakeLists.txt
@@ -8,27 +8,16 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: GiGaMTDebug
-#
-# Collection of G4 objects used for debugging
-#################################################################################
-gaudi_subdir(GiGaMTDebug v1r0)
-gaudi_depends_on_subdirs(Sim/GiGaMTCore
-                         Sim/GiGaMTFactories)
-
-AddHepMC3()
-find_package(ROOT COMPONENTS MathCore GenVector)
-
-FindG4libs(digits_hits event geometry global graphics_reps materials persistency
-           particles processes run tracking track intercoms physicslists)
-
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
-
+#[=======================================================================[.rst:
+Sim/GiGaMTDebug
+---------------
+#]=======================================================================]
+# ./Sim/GiGaMTDebug/CMakeLists.txt
 gaudi_add_module(GiGaMTDebug
-        src/*.cpp
-        INCLUDE_DIRS GiGaMTFactories
-        LINK_LIBRARIES GaudiAlgLib GiGaMTCoreTruthLib)
+    SOURCES
+    	src/Components/DebugStepAction.cpp
+        src/Components/DebugTrackAction.cpp
+    LINK
+        Gaussino::GiGaMTCoreRunLib
+	Gaussino::GiGaMTFactoriesLib
+)
diff --git a/Sim/GiGaMTDebug/src/DebugStepAction.cpp b/Sim/GiGaMTDebug/src/Components/DebugStepAction.cpp
similarity index 93%
rename from Sim/GiGaMTDebug/src/DebugStepAction.cpp
rename to Sim/GiGaMTDebug/src/Components/DebugStepAction.cpp
index dbeda9e1335f8d95e745b739e6a82ae7563af5aa..c435cbbd2cf110ebdd544297ab2cf9718820772f 100644
--- a/Sim/GiGaMTDebug/src/DebugStepAction.cpp
+++ b/Sim/GiGaMTDebug/src/Components/DebugStepAction.cpp
@@ -8,8 +8,8 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "Geant4/G4UserSteppingAction.hh"
-#include "Geant4/globals.hh"
+#include "G4UserSteppingAction.hh"
+#include "globals.hh"
 
 namespace Gaussino
 {
@@ -24,10 +24,10 @@ namespace Gaussino
   };
 }
 
-#include "Geant4/G4Event.hh"
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4RunManager.hh"
-#include "Geant4/G4Step.hh"
+#include "G4Event.hh"
+#include "G4LogicalVolume.hh"
+#include "G4RunManager.hh"
+#include "G4Step.hh"
 #include "HepMC3/FourVector.h"
 
 template <typename T>
@@ -73,7 +73,7 @@ void Gaussino::DebugStepAction::UserSteppingAction( const G4Step* step )
 #include "GaudiAlg/GaudiTool.h"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 
-#include "Geant4/G4UserTrackingAction.hh"
+#include "G4UserTrackingAction.hh"
 
 class DebugStepActionFAC : public extends<GaudiTool, GiGaFactoryBase<G4UserSteppingAction>>
 {
diff --git a/Sim/GiGaMTDebug/src/DebugTrackAction.cpp b/Sim/GiGaMTDebug/src/Components/DebugTrackAction.cpp
similarity index 95%
rename from Sim/GiGaMTDebug/src/DebugTrackAction.cpp
rename to Sim/GiGaMTDebug/src/Components/DebugTrackAction.cpp
index 5d3ce8b25d73d59c7fb82314f529ace9415e116b..c0c706e811b7faadcfff75850f4437168f6858d3 100755
--- a/Sim/GiGaMTDebug/src/DebugTrackAction.cpp
+++ b/Sim/GiGaMTDebug/src/Components/DebugTrackAction.cpp
@@ -8,8 +8,8 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "Geant4/G4UserTrackingAction.hh"
-#include "Geant4/G4VProcess.hh"
+#include "G4UserTrackingAction.hh"
+#include "G4VProcess.hh"
 
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 #include "HepMC3/FourVector.h"
@@ -22,19 +22,19 @@
 // from Gaudi
 
 // G4
-#include "Geant4/G4ParticleDefinition.hh"
-#include "Geant4/G4PrimaryParticle.hh"
-#include "Geant4/G4TrackingManager.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4PrimaryParticle.hh"
+#include "G4TrackingManager.hh"
 
 // Included for vertex types
 // FIXME: Need to reorganise when splitting LHCb
 #include "Event/MCVertex.h"
 
 // local
-#include "GiGaMTCoreTruth/G4TruthParticle.h"
-#include "GiGaMTCoreTruth/GaussinoEventInformation.h"
-#include "GiGaMTCoreTruth/GaussinoPrimaryParticleInformation.h"
-#include "GiGaMTCoreTruth/GaussinoTrackInformation.h"
+#include "GiGaMTCoreRun/G4TruthParticle.h"
+#include "GiGaMTCoreRun/GaussinoEventInformation.h"
+#include "GiGaMTCoreRun/GaussinoPrimaryParticleInformation.h"
+#include "GiGaMTCoreRun/GaussinoTrackInformation.h"
 
 // namespace LHCb {
 // class IParticlePropertySvc;
@@ -197,7 +197,7 @@ namespace Gaussino
 #include "GaudiAlg/GaudiTool.h"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 
-#include "Geant4/G4UserTrackingAction.hh"
+#include "G4UserTrackingAction.hh"
 
 class DebugTrackActionFAC : public extends<GaudiTool, GiGaFactoryBase<G4UserTrackingAction>>
 {
diff --git a/Sim/GiGaMTExamples/FCCTest/CMakeLists.txt b/Sim/GiGaMTExamples/FCCTest/CMakeLists.txt
index 5f693c59a0d3153384108e8af27a620e501a6ab4..0859f1b9bb6f1903dbc0aef88d13fff05df5c811 100644
--- a/Sim/GiGaMTExamples/FCCTest/CMakeLists.txt
+++ b/Sim/GiGaMTExamples/FCCTest/CMakeLists.txt
@@ -8,48 +8,39 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
+#[=======================================================================[.rst:
+Sim/GiGaMTExamples/FCCTest
+--------------------------
+#]=======================================================================]
 ################################################################################
 # Package: FCCTest
 # Adapted from Gaussino FCC TestGeometry package: https://gitlab.cern.ch/jlingema/Gauss/tree/refactor/
 # Original author: Anna Zaborowska
 #
 ################################################################################
-gaudi_subdir(FCCTest v1r0)
 
-gaudi_depends_on_subdirs(GaudiKernel
-                         GaudiAlg
-                         Sim/GiGaMTFactories
-                         Sim/GiGaMTCore
-                         Sim/SimInterfaces
-                         Sim/GiGaMTGeo)
-
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
-
-AddHepMC3()
-
-find_package(XercesC)
-#find_package(ROOT)
-
-#find_package(ROOT COMPONENTS MathCore GenVector Geom RIO Hist REQUIRED)
-
-#gaudi_install_headers(TestGeometry)
-
-gaudi_add_library(FCCTest
-          src/lib/*.cpp
-          INCLUDE_DIRS Geant4 ROOT XercesC SimInterfaces AIDA
-          LINK_LIBRARIES GaudiKernel GaudiAlgLib Geant4 ROOT XercesC GiGaMTCoreRunLib
-          PUBLIC_HEADERS FCCTest)
-add_dependencies(FCCTest HepMC3Ext)
+gaudi_add_library(FCCTestLib
+    SOURCES
+        src/Lib/CalorimeterHit.cpp
+	src/Lib/CalorimeterSD.cpp
+    LINK
+        PUBLIC
+	    Gaussino::GiGaMTCoreRunLib
+	    Gaussino::SimInterfacesLib
+)
 
 gaudi_add_module(FCCTestPlugins
-          src/components/*.cpp
-          INCLUDE_DIRS Geant4 FCCTest GaudiKernel
-          LINK_LIBRARIES GaudiKernel Geant4 FCCTest ROOT)
-
-include(CTest)
-gaudi_add_test(GeantGdmlWithSD
-               WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
-               FRAMEWORK tests/options/geant_fullsim_gdml.py)
+    SOURCES
+        src/Components/G4GdmlTestDetector.cpp
+	src/Components/G4SaveTestCalHits.cpp
+    LINK
+    	Geant4::G4persistency
+        Gaussino::FCCTestLib
+    	Gaussino::GiGaMTFactoriesLib
+)
+
+# FIXME: this test is stupid, what does it test?
+#gaudi_add_tests(GeantGdmlWithSD
+#    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+#    FRAMEWORK tests/options/geant_fullsim_gdml.py
+#    #)
diff --git a/Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterHit.h b/Sim/GiGaMTExamples/FCCTest/include/FCCTest/CalorimeterHit.h
similarity index 93%
rename from Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterHit.h
rename to Sim/GiGaMTExamples/FCCTest/include/FCCTest/CalorimeterHit.h
index 684b5762704e5171eedf4a5fa7a0c88232ca4a3e..5f2d46805504786d735f16c1b9bbcf6bf6448ac9 100644
--- a/Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterHit.h
+++ b/Sim/GiGaMTExamples/FCCTest/include/FCCTest/CalorimeterHit.h
@@ -10,13 +10,13 @@
 \*****************************************************************************/
 #pragma once
 
-#include "Geant4/G4Allocator.hh"
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4RotationMatrix.hh"
-#include "Geant4/G4THitsCollection.hh"
-#include "Geant4/G4ThreeVector.hh"
-#include "Geant4/G4Transform3D.hh"
-#include "Geant4/G4VHit.hh"
+#include "G4Allocator.hh"
+#include "G4LogicalVolume.hh"
+#include "G4RotationMatrix.hh"
+#include "G4THitsCollection.hh"
+#include "G4ThreeVector.hh"
+#include "G4Transform3D.hh"
+#include "G4VHit.hh"
 
 class G4AttDef;
 class G4AttValue;
diff --git a/Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterSD.h b/Sim/GiGaMTExamples/FCCTest/include/FCCTest/CalorimeterSD.h
similarity index 93%
rename from Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterSD.h
rename to Sim/GiGaMTExamples/FCCTest/include/FCCTest/CalorimeterSD.h
index 77f46344a77fc21460bd02205c109bb95e956db4..f256bef74bfda1e0eb1994c4be7f2b494d74ef5c 100644
--- a/Sim/GiGaMTExamples/FCCTest/FCCTest/CalorimeterSD.h
+++ b/Sim/GiGaMTExamples/FCCTest/include/FCCTest/CalorimeterSD.h
@@ -11,7 +11,7 @@
 #pragma once
 #include "FCCTest/CalorimeterHit.h"
 
-#include "Geant4/G4VSensitiveDetector.hh"
+#include "G4VSensitiveDetector.hh"
 class G4Step;
 class G4HCofThisEvent;
 class G4TouchableHistory;
@@ -38,8 +38,8 @@ namespace FCCTest
     CalorimeterSD( G4String name );
     CalorimeterSD( G4String name, G4int aCellNoInAxis );
     virtual ~CalorimeterSD();
-    virtual void Initialize( G4HCofThisEvent* HCE );
-    virtual G4bool ProcessHits( G4Step* aStep, G4TouchableHistory* ROhist );
+    virtual void Initialize( G4HCofThisEvent* HCE ) override;
+    virtual G4bool ProcessHits( G4Step* aStep, G4TouchableHistory* ROhist ) override;
 
   private:
     CalorimeterHitsCollection* fHitsCollection;
diff --git a/Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.cpp b/Sim/GiGaMTExamples/FCCTest/src/Components/G4GdmlTestDetector.cpp
similarity index 98%
rename from Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.cpp
rename to Sim/GiGaMTExamples/FCCTest/src/Components/G4GdmlTestDetector.cpp
index eb11c50d56cf19e46f1cdc143e966f8cf418bfef..475cbd690811fd9b7d79608e4261055770b7abb0 100644
--- a/Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.cpp
+++ b/Sim/GiGaMTExamples/FCCTest/src/Components/G4GdmlTestDetector.cpp
@@ -11,7 +11,7 @@
 #include "G4GdmlTestDetector.h"
 
 #include "FCCTest/CalorimeterSD.h"
-#include "Geant4/G4SDManager.hh"
+#include "G4SDManager.hh"
 #include "GiGaMTCoreDet/GdmlDetectorConstruction.h"
 
 DECLARE_COMPONENT( G4GdmlTestDetector )
diff --git a/Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.h b/Sim/GiGaMTExamples/FCCTest/src/Components/G4GdmlTestDetector.h
similarity index 96%
rename from Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.h
rename to Sim/GiGaMTExamples/FCCTest/src/Components/G4GdmlTestDetector.h
index 442a545eff362afc03e1bd23601c59a650fd0573..2fb290d502ae4b116ca09d3b8a283fa00501996b 100644
--- a/Sim/GiGaMTExamples/FCCTest/src/components/G4GdmlTestDetector.h
+++ b/Sim/GiGaMTExamples/FCCTest/src/Components/G4GdmlTestDetector.h
@@ -12,7 +12,7 @@
 
 // Gaudi
 #include "GaudiAlg/GaudiTool.h"
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4VUserDetectorConstruction.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 
 /** @class G4GdmlTestDetector SimG4Components/src/G4GdmlTestDetector.h G4GdmlTestDetector.h
diff --git a/Sim/GiGaMTExamples/FCCTest/src/components/G4SaveTestCalHits.cpp b/Sim/GiGaMTExamples/FCCTest/src/Components/G4SaveTestCalHits.cpp
similarity index 99%
rename from Sim/GiGaMTExamples/FCCTest/src/components/G4SaveTestCalHits.cpp
rename to Sim/GiGaMTExamples/FCCTest/src/Components/G4SaveTestCalHits.cpp
index 4c538225a1ec2d4d14322a794c8ea1bc54e8a160..36055c1d63cd3b2b79c89d53bb2d155f07a594c1 100644
--- a/Sim/GiGaMTExamples/FCCTest/src/components/G4SaveTestCalHits.cpp
+++ b/Sim/GiGaMTExamples/FCCTest/src/Components/G4SaveTestCalHits.cpp
@@ -17,7 +17,7 @@
 #include "GaudiKernel/ITHistSvc.h"
 
 // Geant4
-#include "Geant4/G4Event.hh"
+#include "G4Event.hh"
 
 DECLARE_COMPONENT( G4SaveTestCalHits )
 
diff --git a/Sim/GiGaMTExamples/FCCTest/src/components/G4SaveTestCalHits.h b/Sim/GiGaMTExamples/FCCTest/src/Components/G4SaveTestCalHits.h
similarity index 100%
rename from Sim/GiGaMTExamples/FCCTest/src/components/G4SaveTestCalHits.h
rename to Sim/GiGaMTExamples/FCCTest/src/Components/G4SaveTestCalHits.h
diff --git a/Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterHit.cpp b/Sim/GiGaMTExamples/FCCTest/src/Lib/CalorimeterHit.cpp
similarity index 91%
rename from Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterHit.cpp
rename to Sim/GiGaMTExamples/FCCTest/src/Lib/CalorimeterHit.cpp
index 42d22ea442e78c10d3eb45bcdadb6b17e9a195ea..35787b352e3e0b5ee5a5a6806dd68894184e9804 100644
--- a/Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterHit.cpp
+++ b/Sim/GiGaMTExamples/FCCTest/src/Lib/CalorimeterHit.cpp
@@ -10,17 +10,17 @@
 \*****************************************************************************/
 #include "FCCTest/CalorimeterHit.h"
 
-#include "Geant4/G4AttDef.hh"
-#include "Geant4/G4AttDefStore.hh"
-#include "Geant4/G4AttValue.hh"
-#include "Geant4/G4Box.hh"
-#include "Geant4/G4Colour.hh"
-#include "Geant4/G4SystemOfUnits.hh"
-#include "Geant4/G4UIcommand.hh"
-#include "Geant4/G4UnitsTable.hh"
-#include "Geant4/G4VVisManager.hh"
-#include "Geant4/G4VisAttributes.hh"
-#include "Geant4/G4ios.hh"
+#include "G4AttDef.hh"
+#include "G4AttDefStore.hh"
+#include "G4AttValue.hh"
+#include "G4Box.hh"
+#include "G4Colour.hh"
+#include "G4SystemOfUnits.hh"
+#include "G4UIcommand.hh"
+#include "G4UnitsTable.hh"
+#include "G4VVisManager.hh"
+#include "G4VisAttributes.hh"
+#include "G4ios.hh"
 
 namespace FCCTest
 {
diff --git a/Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterSD.cpp b/Sim/GiGaMTExamples/FCCTest/src/Lib/CalorimeterSD.cpp
similarity index 94%
rename from Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterSD.cpp
rename to Sim/GiGaMTExamples/FCCTest/src/Lib/CalorimeterSD.cpp
index c5d8f202b72e37fd32169da46cb925172b8cb9c1..1abb1ede6f1c2449a5a2ac0fe6d0f32aedcc9fb7 100644
--- a/Sim/GiGaMTExamples/FCCTest/src/lib/CalorimeterSD.cpp
+++ b/Sim/GiGaMTExamples/FCCTest/src/Lib/CalorimeterSD.cpp
@@ -11,12 +11,12 @@
 #include "FCCTest/CalorimeterSD.h"
 #include "FCCTest/CalorimeterHit.h"
 
-#include "Geant4/G4HCofThisEvent.hh"
-#include "Geant4/G4SDManager.hh"
-#include "Geant4/G4Step.hh"
-#include "Geant4/G4TouchableHistory.hh"
-#include "Geant4/G4Track.hh"
-#include "Geant4/G4VTouchable.hh"
+#include "G4HCofThisEvent.hh"
+#include "G4SDManager.hh"
+#include "G4Step.hh"
+#include "G4TouchableHistory.hh"
+#include "G4Track.hh"
+#include "G4VTouchable.hh"
 
 namespace FCCTest
 {
diff --git a/Sim/GiGaMTExamples/IronBox/CMakeLists.txt b/Sim/GiGaMTExamples/IronBox/CMakeLists.txt
index 1ba1e5a573bc301cbd0bae4387ec1369b1b1ed06..7b0fc29e4cbdbc3f7517476007850c0784780d5c 100644
--- a/Sim/GiGaMTExamples/IronBox/CMakeLists.txt
+++ b/Sim/GiGaMTExamples/IronBox/CMakeLists.txt
@@ -8,28 +8,22 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
+#[=======================================================================[.rst:
+Sim/GiGaMTExamples/IronBox
+--------------------------
+#]=======================================================================]
 ################################################################################
 # Package: GiGaMTExamples/IronBox
 # All GiGa extensions to create a simple running example to test MT prototype.
 # Detector is a 1m^3 iron cube in the center.
 #################################################################################
-gaudi_subdir(IronBox v1r0)
-
-gaudi_depends_on_subdirs(GaudiAlg
-                         Gen/GenInterfaces 
-                         Event/GenEvent
-                         Sim/GiGaMTFactories
-                         Sim/GiGaMTCore
-                         Sim/GiGaMTGeo)
-AddHepMC3()
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
-
-
 gaudi_add_module(IronBoxExample
-                  src/*.cpp
-                  INCLUDE_DIRS GiGaMTFactories GenInterfaces ${HEPMC3_INCLUDE_DIR}
-                  LINK_LIBRARIES GaudiAlgLib GiGaMTCoreRunLib ${HEPMC3_LIBRARIES} GenEvent)
-add_dependencies(IronBoxExample HepMC3Ext)
+    SOURCES
+        src/IronBoxGeo.cpp
+        src/MinimalParticles.cpp
+    LINK
+        HepMC::HepMC
+        Gaussino::GiGaMTCoreRunLib
+        Gaussino::GiGaMTGeoLib
+        Gaussino::GenInterfacesLib
+)
diff --git a/Sim/GiGaMTExamples/IronBox/src/IronBoxGeo.cpp b/Sim/GiGaMTExamples/IronBox/src/IronBoxGeo.cpp
index 76e213a9c7bf2b5dc6b528d9287356f16e872332..a6f188ac9c2b59277734d2cdc31e148734a28a65 100755
--- a/Sim/GiGaMTExamples/IronBox/src/IronBoxGeo.cpp
+++ b/Sim/GiGaMTExamples/IronBox/src/IronBoxGeo.cpp
@@ -8,11 +8,11 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "Geant4/G4Box.hh"
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4NistManager.hh"
-#include "Geant4/G4PVPlacement.hh"
-#include "Geant4/G4SystemOfUnits.hh"
+#include "G4Box.hh"
+#include "G4LogicalVolume.hh"
+#include "G4NistManager.hh"
+#include "G4PVPlacement.hh"
+#include "G4SystemOfUnits.hh"
 
 // local
 #include "IronBoxGeo.h"
diff --git a/Sim/GiGaMTExamples/LHCbFromGDML/CMakeLists.txt b/Sim/GiGaMTExamples/LHCbFromGDML/CMakeLists.txt
index 25b799ca846e48dba10e55ad450c76fb2b9004e9..2542bb82350b6d0d0a13895894604123039c27d4 100644
--- a/Sim/GiGaMTExamples/LHCbFromGDML/CMakeLists.txt
+++ b/Sim/GiGaMTExamples/LHCbFromGDML/CMakeLists.txt
@@ -8,6 +8,10 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
+#[=======================================================================[.rst:
+Sim/GiGaMTExamples/LHCbFromGDML
+-------------------------------
+#]=======================================================================]
 ################################################################################
 # Package: LHCbFromGDML
 # Simple setup to add the frozen LHCb geometry from a GDML file to Gaussino.
@@ -15,18 +19,13 @@
 # Author: Dominik Muller, GDML file from Ben Couturier
 #
 ################################################################################
-gaudi_subdir(LHCbFromGDML v1r0)
-
-gaudi_depends_on_subdirs(GaudiKernel
-                         GaudiAlg
-                         HepMC3
-                         HepMCUser
-                         Gen/GenInterfaces)
-
-AddHepMC3()
-
 gaudi_add_module(LHCbFromGDML
-                  src/*.cpp
-                  INCLUDE_DIRS GenInterfaces ${HEPMC3_INCLUDE_DIR} HepMCUser
-                  LINK_LIBRARIES GaudiAlgLib ${HEPMC3_LIBRARIES} GenEvent)
-add_dependencies(LHCbFromGDML HepMC3Ext)
+    SOURCES
+        src/MinimalStableInLHCb.cpp
+    LINK
+        HepMC3::HepMC3
+        Gaudi::GaudiAlgLib
+        LHCb::GenEvent  # TODO: [LHCb DEPENDENCY]
+        Gaussino::GenInterfacesLib
+        Gaussino::HepMCUserLib
+)
diff --git a/Sim/GiGaMTFactories/CMakeLists.txt b/Sim/GiGaMTFactories/CMakeLists.txt
index e2fb57e2aa3f57f6fd63305aa11d545658eef443..c5a4f4bbf7e686848dd985f2d022868fc1fb2713 100644
--- a/Sim/GiGaMTFactories/CMakeLists.txt
+++ b/Sim/GiGaMTFactories/CMakeLists.txt
@@ -18,44 +18,100 @@
 # FIXME: This requirement should probably be enforced somehow...
 # 
 #################################################################################
-gaudi_subdir(GiGaMTFactories v1r0)
+#[=======================================================================[.rst:
+Sim/GiGaMTFactories
+---------------------------
+#]=======================================================================]
 
-gaudi_depends_on_subdirs(GaudiAlg
-                         Sim/GiGaMTCore
-                         Sim/SimInterfaces
-                         HepMC3
-                         Sim/GiGaMTGeo) 
+gaudi_add_header_only_library(GiGaMTFactoriesLib
+    LINK
+        Gaudi::GaudiKernel
+)
 
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
-
-AddHepMC3()
 
-# GigaMTCoreLib should pull in all the dependencies on Geant 4 etc
 gaudi_add_module(GiGaMTRunFactories
-        src/run/*.cpp
-        LINK_LIBRARIES GiGaMTCoreRunLib GaudiAlgLib)
+    SOURCES
+        src/Components/GiGaMTRunManagerFAC.cpp
+	src/Components/GiGaRunActionCommandFAC.cpp
+	src/Components/GiGaWorkerPilotFAC.cpp
+    LINK
+        HepMC3::HepMC3
+        Gaussino::GiGaMTFactoriesLib
+	Gaussino::GiGaMTCoreRunLib
+)
+
+gaudi_add_header_only_library(GiGaMTPhysFactoriesLib)
+
 
 gaudi_add_module(GiGaMTPhysFactories
-        src/phys/*.cpp
-        LINK_LIBRARIES GiGaMTCoreRunLib GaudiAlgLib)
+    SOURCES
+	src/Components/GiGaMTModularPhysListFAC.cpp
+	src/Components/GiGaMTG4PhysicsConstrFAC.cpp
+	src/Components/GiGaMTG4PhysicsFactory.cpp
+    LINK
+        CLHEP::CLHEP
+        Geant4::G4run
+        Geant4::G4physicslists
+        Gaudi::GaudiAlgLib
+        Gaussino::GiGaMTFactoriesLib
+        Gaussino::GiGaMTCoreMessageLib
+)
+
+gaudi_add_header_only_library(GiGaMTDetFactoriesLib)
+
 
 gaudi_add_module(GiGaMTDetFactories
-        src/det/*.cpp
-        INCLUDE_DIRS SimInterfaces
-        LINK_LIBRARIES GiGaMTCoreRunLib GaudiAlgLib)
+    SOURCES
+        src/Components/GiGaMTDetectorConstructionFAC.cpp
+	src/Components/GDMLConstructionFactory.cpp
+    LINK
+    	CLHEP::Vector
+	Geant4::G4digits_hits
+	Geant4::G4geometry
+	Geant4::G4global
+	Geant4::G4persistency
+	Geant4::G4run
+	Gaudi::GaudiAlgLib
+	XercesC::XercesC
+	Gaussino::UtilsLib
+	Gaussino::GiGaMTCoreDetLib
+	Gaussino::GiGaMTFactoriesLib
+	Gaussino::GiGaMTGeoLib
+	Gaussino::SimInterfacesLib
+)
 
 gaudi_add_module(GiGaMTTruthFactories
-        src/truth/*.cpp
-        LINK_LIBRARIES GiGaMTCoreTruthLib GaudiAlgLib)
+    SOURCES
+        src/Components/TruthActionFactories.cpp
+    LINK
+        Gaussino::GiGaMTFactoriesLib
+	Gaussino::GiGaMTCoreMessageLib
+	Gaussino::GiGaMTCoreRunLib
+)
 
 gaudi_add_library(GiGaMTMagnetFactoriesLib
-                  src/magnet/lib/*.cpp
-                  PUBLIC_HEADERS GiGaMTFactories
-                  LINK_LIBRARIES GiGaMTCoreRunLib GaudiAlgLib GaudiKernel)
+    SOURCES
+        src/Lib/FieldMgrBase.cpp
+    LINK
+        PUBLIC
+	    CLHEP::CLHEP
+	    Geant4::G4geometry
+	    Gaudi::GaudiKernel
+	    Gaudi::GaudiAlgLib
+	    Gaussino::GiGaMTCoreMessageLib
+)
+
+# Workaround for unresolved symbol
+if(CMAKE_BUILD_TYPE STREQUAL "Release")
+  set_source_files_properties(src/Lib/FieldMgrBase.cpp PROPERTIES COMPILE_OPTIONS "-O2")
+endif()
 
 gaudi_add_module(GiGaMTMagnetFactories
-        src/magnet/components/*.cpp
-        LINK_LIBRARIES GiGaMTMagnetFactoriesLib)
+    SOURCES
+        src/Components/MagFieldFromSvc.cpp
+	src/Components/Steppers.cpp
+	src/Components/ToolFieldMgr.cpp
+	src/Components/ZeroFieldMgr.cpp
+    LINK
+        Gaussino::GiGaMTMagnetFactoriesLib
+)
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4SensDetFactory.h b/Sim/GiGaMTFactories/include/GiGaMTDetFactories/GiGaMTG4SensDetFactory.h
similarity index 98%
rename from Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4SensDetFactory.h
rename to Sim/GiGaMTFactories/include/GiGaMTDetFactories/GiGaMTG4SensDetFactory.h
index 10a3314270deb220095a3443756aea1510630273..8c06330ebffaf9b1814e61257a78936e3297817a 100755
--- a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4SensDetFactory.h
+++ b/Sim/GiGaMTFactories/include/GiGaMTDetFactories/GiGaMTG4SensDetFactory.h
@@ -11,7 +11,7 @@
 #pragma once
 
 // Include files
-#include "Geant4/G4VSensitiveDetector.hh"
+#include "G4VSensitiveDetector.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
 
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaFactoryBase.h b/Sim/GiGaMTFactories/include/GiGaMTFactories/GiGaFactoryBase.h
similarity index 100%
rename from Sim/GiGaMTFactories/GiGaMTFactories/GiGaFactoryBase.h
rename to Sim/GiGaMTFactories/include/GiGaMTFactories/GiGaFactoryBase.h
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaTool.h b/Sim/GiGaMTFactories/include/GiGaMTFactories/GiGaTool.h
similarity index 100%
rename from Sim/GiGaMTFactories/GiGaMTFactories/GiGaTool.h
rename to Sim/GiGaMTFactories/include/GiGaMTFactories/GiGaTool.h
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/Magnet/FieldMgrBase.h b/Sim/GiGaMTFactories/include/GiGaMTMagnetFactories/FieldMgrBase.h
similarity index 94%
rename from Sim/GiGaMTFactories/GiGaMTFactories/Magnet/FieldMgrBase.h
rename to Sim/GiGaMTFactories/include/GiGaMTMagnetFactories/FieldMgrBase.h
index dfdd37dc41f91d1ebeb2a5b283351ef02bb25c0d..cd3b01c33e14c787d6fbef2aa0797593aa04e4d1 100755
--- a/Sim/GiGaMTFactories/GiGaMTFactories/Magnet/FieldMgrBase.h
+++ b/Sim/GiGaMTFactories/include/GiGaMTMagnetFactories/FieldMgrBase.h
@@ -13,10 +13,10 @@
 // Include files
 #include "CLHEP/Units/SystemOfUnits.h"
 #include "GaudiKernel/ToolHandle.h"
-#include "Geant4/G4Mag_EqRhs.hh"
-#include "Geant4/G4FieldManager.hh"
-#include "Geant4/G4MagIntegratorStepper.hh"
-#include "Geant4/G4MagneticField.hh"
+#include "G4Mag_EqRhs.hh"
+#include "G4FieldManager.hh"
+#include "G4MagIntegratorStepper.hh"
+#include "G4MagneticField.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
 
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsConstrFAC.h b/Sim/GiGaMTFactories/include/GiGaMTPhysFactories/GiGaMTG4PhysicsConstrFAC.h
similarity index 96%
rename from Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsConstrFAC.h
rename to Sim/GiGaMTFactories/include/GiGaMTPhysFactories/GiGaMTG4PhysicsConstrFAC.h
index b54461d3e8f28fbf42ed7a2d2a87c7d44d535840..576ec75199e31716a20b16565295845ec62c4f8c 100755
--- a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsConstrFAC.h
+++ b/Sim/GiGaMTFactories/include/GiGaMTPhysFactories/GiGaMTG4PhysicsConstrFAC.h
@@ -12,8 +12,8 @@
 
 // Include files
 #include "GiGaMTFactories/GiGaTool.h"
-#include "Geant4/G4EmStandardPhysics_option1.hh"
-#include "Geant4/G4VPhysicsConstructor.hh"
+#include "G4EmStandardPhysics_option1.hh"
+#include "G4VPhysicsConstructor.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 
 /** GiGaMTPhysConstr
diff --git a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsFactory.h b/Sim/GiGaMTFactories/include/GiGaMTPhysFactories/GiGaMTG4PhysicsFactory.h
similarity index 97%
rename from Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsFactory.h
rename to Sim/GiGaMTFactories/include/GiGaMTPhysFactories/GiGaMTG4PhysicsFactory.h
index cb9bf96c623e27177540494be7f331d89ea21b19..479a98052f77a1449ec69215036e8dbb49483d5a 100755
--- a/Sim/GiGaMTFactories/GiGaMTFactories/GiGaMTG4PhysicsFactory.h
+++ b/Sim/GiGaMTFactories/include/GiGaMTPhysFactories/GiGaMTG4PhysicsFactory.h
@@ -10,7 +10,7 @@
 \*****************************************************************************/
 #pragma once
 
-#include "Geant4/G4VUserPhysicsList.hh"
+#include "G4VUserPhysicsList.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GaudiAlg/GaudiTool.h"
 
diff --git a/Sim/GiGaMTFactories/src/det/GDMLConstructionFactory.cpp b/Sim/GiGaMTFactories/src/Components/GDMLConstructionFactory.cpp
similarity index 100%
rename from Sim/GiGaMTFactories/src/det/GDMLConstructionFactory.cpp
rename to Sim/GiGaMTFactories/src/Components/GDMLConstructionFactory.cpp
diff --git a/Sim/GiGaMTFactories/src/det/GDMLConstructionFactory.h b/Sim/GiGaMTFactories/src/Components/GDMLConstructionFactory.h
similarity index 96%
rename from Sim/GiGaMTFactories/src/det/GDMLConstructionFactory.h
rename to Sim/GiGaMTFactories/src/Components/GDMLConstructionFactory.h
index 0efc28c0772924e45625abc5643f577f560c7f88..ff203c77fed4284d7501549e9ea9dc8495ad81d2 100644
--- a/Sim/GiGaMTFactories/src/det/GDMLConstructionFactory.h
+++ b/Sim/GiGaMTFactories/src/Components/GDMLConstructionFactory.h
@@ -12,7 +12,7 @@
 
 // Gaudi
 #include "GaudiAlg/GaudiTool.h"
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4VUserDetectorConstruction.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 
 /** @class GDMLConstructionFactory SimG4Components/src/GDMLConstructionFactory.h GDMLConstructionFactory.h
diff --git a/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.cpp b/Sim/GiGaMTFactories/src/Components/GiGaMTDetectorConstructionFAC.cpp
similarity index 76%
rename from Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.cpp
rename to Sim/GiGaMTFactories/src/Components/GiGaMTDetectorConstructionFAC.cpp
index 83126223b44746bcdad6a3a1417459b9b5398b9b..6477f4049b4c63d0a283fb4d78dd6733b2c23c1b 100644
--- a/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.cpp
+++ b/Sim/GiGaMTFactories/src/Components/GiGaMTDetectorConstructionFAC.cpp
@@ -11,6 +11,7 @@
 #include "GiGaMTDetectorConstructionFAC.h"
 #include "GiGaMTCoreDet/GiGaMTDetectorConstruction.h"
 #include "GiGaMTCoreDet/IExternalDetectorEmbedder.h"
+#include "GiGaMTGeo/IGDMLReader.h"
 #include "GiGaMTGeo/IGiGaMTGeoSvc.h"
 #include "SimInterfaces/IGaussinoTool.h"
 #include <filesystem>
@@ -60,9 +61,21 @@ G4VUserDetectorConstruction* GiGaMTDetectorConstructionFAC::construct() const {
     auto world = m_geoSvc->constructWorld();
     for ( auto& tool : m_afterGeo ) { tool->process().ignore(); }
 
+    // Import GDML geometry
+    debug() << "Setting up volumes from GDML in mass geometry" << endmsg;
+    for ( auto& reader : m_gdml_readers ) {
+      if ( reader->import( world ).isFailure() ) {
+        throw GaudiException( "Failed to import the GDML geometry", "GDMLReader", StatusCode::FAILURE );
+      }
+    }
+
     // Import external geometry
     debug() << "Setting up external embedder volumes in mass geometry" << endmsg;
-    for ( auto& embedder : m_ext_dets ) { embedder->embed( world ).ignore(); }
+    for ( auto& embedder : m_ext_dets ) {
+      if ( embedder->embed( world ).isFailure() ) {
+        throw GaudiException( "Failed to embed external geometry", "ExternalGeometry", StatusCode::FAILURE );
+      }
+    }
 
     return world;
   } );
@@ -72,9 +85,15 @@ G4VUserDetectorConstruction* GiGaMTDetectorConstructionFAC::construct() const {
 
     // Import external SD
     debug() << "Setting up external embedder SD in mass geometry" << endmsg;
-    for ( auto& embedder : m_ext_dets ) { embedder->embedSD().ignore(); }
+    for ( auto& embedder : m_ext_dets ) {
+      if ( embedder->embedSD().isFailure() ) {
+        throw GaudiException( "Failed to embed external sensitive detectors", "ExternalGeometry", StatusCode::FAILURE );
+      }
+    }
 
-    DressVolumes();
+    if ( DressVolumes().isFailure() ) {
+      throw GaudiException( "Failed to attach sensitive detector classes", "DressVolumes", StatusCode::FAILURE );
+    }
   } );
 
   // Setup parallel worlds
@@ -87,10 +106,10 @@ G4VUserDetectorConstruction* GiGaMTDetectorConstructionFAC::construct() const {
   return detconst;
 }
 
-#include "Geant4/G4LogicalVolumeStore.hh"
-#include "Geant4/G4SDManager.hh"
+#include "G4LogicalVolumeStore.hh"
+#include "G4SDManager.hh"
 
-void GiGaMTDetectorConstructionFAC::DressVolumes() const {
+StatusCode GiGaMTDetectorConstructionFAC::DressVolumes() const {
   auto sdmanager = G4SDManager::GetSDMpointer();
   for ( auto& [name, volumes] : m_namemap ) {
     auto& tool    = m_sens_dets.at( name );
@@ -103,12 +122,14 @@ void GiGaMTDetectorConstructionFAC::DressVolumes() const {
         vol->SetSensitiveDetector( sensdet );
       } else {
         error() << "Couldn't find " << volname << endmsg;
+        return StatusCode::FAILURE;
       }
     }
   }
+  return StatusCode::SUCCESS;
 }
 
-#include "Geant4/G4GDMLParser.hh"
+#include "G4GDMLParser.hh"
 
 StatusCode GiGaMTDetectorConstructionFAC::SaveGDML() const {
   try {
@@ -116,7 +137,11 @@ StatusCode GiGaMTDetectorConstructionFAC::SaveGDML() const {
     g4writer.SetSDExport( m_exportSD.value() );
     g4writer.SetEnergyCutsExport( m_exportEnergyCuts.value() );
     G4LogicalVolume* world = nullptr;
-    g4writer.Write( m_outfile.value(), world, m_refs.value(), m_schema.value() );
+    if ( !m_schema.value().empty() ) {
+      g4writer.Write( m_outfile.value(), world, m_refs.value(), m_schema.value() );
+    } else {
+      g4writer.Write( m_outfile.value(), world, m_refs.value() );
+    }
   } catch ( std::exception& err ) {
     error() << "Caught an exception while writing a GDML file: " << err.what() << endmsg;
     return StatusCode::FAILURE;
diff --git a/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.h b/Sim/GiGaMTFactories/src/Components/GiGaMTDetectorConstructionFAC.h
similarity index 89%
rename from Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.h
rename to Sim/GiGaMTFactories/src/Components/GiGaMTDetectorConstructionFAC.h
index ed0b4e157490acf9d9e1a08cda81ee224f6a877c..ae8fec0bb24eaa6abb13a338b90e93af50d806f5 100644
--- a/Sim/GiGaMTFactories/src/det/GiGaMTDetectorConstructionFAC.h
+++ b/Sim/GiGaMTFactories/src/Components/GiGaMTDetectorConstructionFAC.h
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "Geant4/G4VUserDetectorConstruction.hh"
+#include "G4VUserDetectorConstruction.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
 
@@ -20,6 +20,7 @@ class IGiGaMTGeoSvc;
 class IGaussinoTool;
 class G4Material;
 class G4VUserParallelWorld;
+class IGDMLReader;
 
 namespace ExternalDetector {
   class IEmbedder;
@@ -42,7 +43,7 @@ protected:
   typedef ToolHandle<GiGaFactoryBase<G4VSensitiveDetector>> SensDetFac;
   typedef std::map<std::string, SensDetFac>                 SensDetVolumeMap;
 
-  void                                      DressVolumes() const;
+  StatusCode                                DressVolumes() const;
   StatusCode                                SaveGDML() const;
   ServiceHandle<IGiGaMTGeoSvc>              m_geoSvc{this, "GiGaMTGeoSvc", "GiGaMTGeo"};
   ToolHandleArray<IGaussinoTool>            m_afterGeo{this};
@@ -63,7 +64,7 @@ private:
                                                       Gaudi::Details::Property::ImmediatelyInvokeHandler{true}};
 
   // GDML Export
-  Gaudi::Property<std::string> m_schema{this, "GDMLSchema", "$GDML_base/src/GDMLSchema/gdml.xsd"};
+  Gaudi::Property<std::string> m_schema{this, "GDMLSchema", ""};
   Gaudi::Property<bool>        m_refs{this, "GDMLAddReferences", true};
   Gaudi::Property<std::string> m_outfile{this, "GDMLFileName", ""};
   Gaudi::Property<bool>        m_outfileOverwrite{this, "GDMLFileNameOverwrite", false,
@@ -72,6 +73,15 @@ private:
   Gaudi::Property<bool> m_exportSD{this, "GDMLExportSD", false};
   Gaudi::Property<bool> m_exportEnergyCuts{this, "GDMLExportEnergyCuts", false};
 
+  // GDML Import
+  ToolHandleArray<IGDMLReader> m_gdml_readers{this};
+  using GDMLReaders = std::vector<std::string>;
+  Gaudi::Property<GDMLReaders> m_gdml_readers_names{this,
+                                                    "GDMLReaders",
+                                                    {},
+                                                    tool_array_setter( m_gdml_readers, m_gdml_readers_names ),
+                                                    Gaudi::Details::Property::ImmediatelyInvokeHandler{true}};
+
   SensDetVolumeMap                       m_sens_dets;
   Gaudi::Property<SensDetNameVolumesMap> m_namemap{this,
                                                    "SensDetVolumeMap",
diff --git a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp b/Sim/GiGaMTFactories/src/Components/GiGaMTG4PhysicsConstrFAC.cpp
similarity index 70%
rename from Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp
rename to Sim/GiGaMTFactories/src/Components/GiGaMTG4PhysicsConstrFAC.cpp
index 05e0ed406b8f8435772078542db95ed6ce2d3396..2396111aceea9b73fe9bf38a69f6c6144836a314 100644
--- a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsConstrFAC.cpp
+++ b/Sim/GiGaMTFactories/src/Components/GiGaMTG4PhysicsConstrFAC.cpp
@@ -10,32 +10,35 @@
 \*****************************************************************************/
 // Include files
 
-#include "GiGaMTFactories/GiGaMTG4PhysicsConstrFAC.h"
+#include "GiGaMTPhysFactories/GiGaMTG4PhysicsConstrFAC.h"
 
 // Geant4 physics lists
-#include "Geant4/G4DecayPhysics.hh"
+#include "G4DecayPhysics.hh"
 
 // EM physics
-#include "Geant4/G4EmExtraPhysics.hh"
-#include "Geant4/G4EmStandardPhysics.hh"
-#include "Geant4/G4EmStandardPhysics_option1.hh"
-#include "Geant4/G4EmStandardPhysics_option2.hh"
-#include "Geant4/G4EmStandardPhysics_option3.hh"
+#include "G4EmExtraPhysics.hh"
+#include "G4EmStandardPhysics.hh"
+#include "G4EmStandardPhysics_option1.hh"
+#include "G4EmStandardPhysics_option2.hh"
+#include "G4EmStandardPhysics_option3.hh"
 
 // Ion and hadrons
-#include "Geant4/G4HadronElasticPhysics.hh"
-#include "Geant4/G4HadronElasticPhysicsHP.hh"
-#include "Geant4/G4IonPhysics.hh"
-#include "Geant4/G4NeutronTrackingCut.hh"
-#include "Geant4/G4StoppingPhysics.hh"
+#include "G4HadronElasticPhysics.hh"
+#include "G4HadronElasticPhysicsHP.hh"
+#include "G4IonPhysics.hh"
+#include "G4NeutronTrackingCut.hh"
+#include "G4StoppingPhysics.hh"
 
-#include "Geant4/G4HadronPhysicsQGSP_BERT.hh"
-#include "Geant4/G4HadronPhysicsQGSP_BERT_HP.hh"
-#include "Geant4/G4HadronPhysicsQGSP_FTFP_BERT.hh"
+#include "G4HadronPhysicsQGSP_BERT.hh"
+#include "G4HadronPhysicsQGSP_BERT_HP.hh"
+#include "G4HadronPhysicsQGSP_FTFP_BERT.hh"
 
 // FTFP hadrons
-#include "Geant4/G4HadronPhysicsFTFP_BERT.hh"
-#include "Geant4/G4HadronPhysicsFTFP_BERT_HP.hh"
+#include "G4HadronPhysicsFTFP_BERT.hh"
+#include "G4HadronPhysicsFTFP_BERT_HP.hh"
+
+// Optical physics
+#include "G4OpticalPhysics.hh"
 
 typedef GiGaMTG4PhysicsConstrFAC<G4DecayPhysics> GiGaMT_G4DecayPhysics;
 DECLARE_COMPONENT_WITH_ID( GiGaMT_G4DecayPhysics, "GiGaMT_G4DecayPhysics" )
@@ -55,18 +58,15 @@ typedef GiGaMTG4PhysicsConstrFAC<G4IonPhysics> GiGaMT_G4IonPhysics;
 DECLARE_COMPONENT_WITH_ID( GiGaMT_G4IonPhysics, "GiGaMT_G4IonPhysics" )
 
 template <typename PhysConstr>
-class GiGaMTG4PhysicsConstrFAC<PhysConstr,
-                               typename std::enable_if<std::is_same<PhysConstr, G4StoppingPhysics>::value,
-                                                       PhysConstr>::type>
-    : public extends<GiGaMTPhysConstr, GiGaFactoryBase<G4VPhysicsConstructor>>
-{
-  Gaudi::Property<bool> m_useMuonMinusCapturetool{this, "UseMuonMinusCapture", true,
-                          "Parameter 'UseMuonMinusCapture' for the constructor of G4StoppingPhysics"};
+class GiGaMTG4PhysicsConstrFAC<
+    PhysConstr, typename std::enable_if<std::is_same<PhysConstr, G4StoppingPhysics>::value, PhysConstr>::type>
+    : public extends<GiGaMTPhysConstr, GiGaFactoryBase<G4VPhysicsConstructor>> {
+  Gaudi::Property<bool> m_useMuonMinusCapturetool{
+      this, "UseMuonMinusCapture", true, "Parameter 'UseMuonMinusCapture' for the constructor of G4StoppingPhysics"};
 
 public:
   using extends::extends;
-  PhysConstr* construct() const override
-  {
+  PhysConstr* construct() const override {
     auto tmp = new PhysConstr{name(), verbosity(), m_useMuonMinusCapturetool.value()};
     return tmp;
   }
@@ -82,22 +82,20 @@ DECLARE_COMPONENT_WITH_ID( GiGaMT_G4NeutronTrackingCut, "GiGaMT_G4NeutronTrackin
 
 // Specialization for those HadronPhysics lists with quasi elastic option
 template <typename PhysConstr>
-class GiGaMTG4PhysicsConstrFAC<PhysConstr,
-                               typename std::enable_if<std::is_same<PhysConstr, G4HadronPhysicsQGSP_BERT>::value ||
-                                                       std::is_same<PhysConstr, G4HadronPhysicsQGSP_BERT_HP>::value ||
-                                                       std::is_same<PhysConstr, G4HadronPhysicsQGSP_FTFP_BERT>::value ||
-                                                       std::is_same<PhysConstr, G4HadronPhysicsFTFP_BERT>::value ||
-                                                       std::is_same<PhysConstr, G4HadronPhysicsFTFP_BERT_HP>::value,
-                                                       PhysConstr>::type>
-    : public extends<GiGaMTPhysConstr, GiGaFactoryBase<G4VPhysicsConstructor>>
-{
+class GiGaMTG4PhysicsConstrFAC<
+    PhysConstr, typename std::enable_if<std::is_same<PhysConstr, G4HadronPhysicsQGSP_BERT>::value ||
+                                            std::is_same<PhysConstr, G4HadronPhysicsQGSP_BERT_HP>::value ||
+                                            std::is_same<PhysConstr, G4HadronPhysicsQGSP_FTFP_BERT>::value ||
+                                            std::is_same<PhysConstr, G4HadronPhysicsFTFP_BERT>::value ||
+                                            std::is_same<PhysConstr, G4HadronPhysicsFTFP_BERT_HP>::value,
+                                        PhysConstr>::type>
+    : public extends<GiGaMTPhysConstr, GiGaFactoryBase<G4VPhysicsConstructor>> {
   Gaudi::Property<bool> m_quasiElastic{this, "QuasiElastic", true,
                                        "Parameter 'quasiElastic' for the constructor of HadronPhysicsQGSP_BERT"};
 
 public:
   using extends::extends;
-  PhysConstr* construct() const override
-  {
+  PhysConstr* construct() const override {
     auto tmp = new PhysConstr{name(), m_quasiElastic.value()};
     tmp->SetVerboseLevel( verbosity() );
     return tmp;
@@ -117,3 +115,7 @@ DECLARE_COMPONENT_WITH_ID( GiGaMT_G4HadronPhysicsFTFP_BERT_HP, "GiGaMT_G4HadronP
 
 typedef GiGaMTG4PhysicsConstrFAC<G4NeutronTrackingCut> GiGaMT_G4NeutronTrackingCut;
 DECLARE_COMPONENT_WITH_ID( GiGaMT_G4NeutronTrackingCut, "GiGaMT_G4NeutronTrackingCut" )
+
+// Cerenkov and Optical physics
+typedef GiGaMTG4PhysicsConstrFAC<G4OpticalPhysics> GiGaMT_G4OpticalPhysics;
+DECLARE_COMPONENT_WITH_ID( GiGaMT_G4OpticalPhysics, "GiGaMT_G4OpticalPhysics" )
diff --git a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsFactory.cpp b/Sim/GiGaMTFactories/src/Components/GiGaMTG4PhysicsFactory.cpp
similarity index 84%
rename from Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsFactory.cpp
rename to Sim/GiGaMTFactories/src/Components/GiGaMTG4PhysicsFactory.cpp
index 70bda93e3981657291f7de939c6db18169a26879..6f335415358e57503a6317cd6909e73a55960597 100644
--- a/Sim/GiGaMTFactories/src/phys/GiGaMTG4PhysicsFactory.cpp
+++ b/Sim/GiGaMTFactories/src/Components/GiGaMTG4PhysicsFactory.cpp
@@ -8,33 +8,33 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTFactories/GiGaMTG4PhysicsFactory.h"
+#include "GiGaMTPhysFactories/GiGaMTG4PhysicsFactory.h"
 
 // All includes I could find that definethe physics lists
 // that are directly provided by Geant4
 
-#include "Geant4/FTFP_BERT.hh"
-#include "Geant4/FTFP_BERT_ATL.hh"
-#include "Geant4/FTFP_BERT_HP.hh"
-#include "Geant4/FTFP_BERT_TRV.hh"
-#include "Geant4/FTFP_INCLXX.hh"
-#include "Geant4/FTFP_INCLXX_HP.hh"
-#include "Geant4/FTFQGSP_BERT.hh"
-#include "Geant4/FTF_BIC.hh"
-#include "Geant4/INCLXXPhysicsListHelper.hh"
-#include "Geant4/LBE.hh"
-#include "Geant4/NuBeam.hh"
-#include "Geant4/QGSP_BERT.hh"
-#include "Geant4/QGSP_BERT_HP.hh"
-#include "Geant4/QGSP_BIC.hh"
-#include "Geant4/QGSP_BIC_AllHP.hh"
-#include "Geant4/QGSP_BIC_HP.hh"
-#include "Geant4/QGSP_FTFP_BERT.hh"
-#include "Geant4/QGSP_INCLXX.hh"
-#include "Geant4/QGSP_INCLXX_HP.hh"
-#include "Geant4/QGS_BIC.hh"
-#include "Geant4/Shielding.hh"
-#include "Geant4/ShieldingLEND.hh"
+#include "FTFP_BERT.hh"
+#include "FTFP_BERT_ATL.hh"
+#include "FTFP_BERT_HP.hh"
+#include "FTFP_BERT_TRV.hh"
+#include "FTFP_INCLXX.hh"
+#include "FTFP_INCLXX_HP.hh"
+#include "FTFQGSP_BERT.hh"
+#include "FTF_BIC.hh"
+#include "INCLXXPhysicsListHelper.hh"
+#include "LBE.hh"
+#include "NuBeam.hh"
+#include "QGSP_BERT.hh"
+#include "QGSP_BERT_HP.hh"
+#include "QGSP_BIC.hh"
+#include "QGSP_BIC_AllHP.hh"
+#include "QGSP_BIC_HP.hh"
+#include "QGSP_FTFP_BERT.hh"
+#include "QGSP_INCLXX.hh"
+#include "QGSP_INCLXX_HP.hh"
+#include "QGS_BIC.hh"
+#include "Shielding.hh"
+#include "ShieldingLEND.hh"
 
 typedef GiGaMTG4PhysicsFactory<FTFP_BERT> GiGaMT_FTFP_BERT;
 DECLARE_COMPONENT_WITH_ID( GiGaMT_FTFP_BERT, "GiGaMT_FTFP_BERT" )
diff --git a/Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.cpp b/Sim/GiGaMTFactories/src/Components/GiGaMTModularPhysListFAC.cpp
similarity index 98%
rename from Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.cpp
rename to Sim/GiGaMTFactories/src/Components/GiGaMTModularPhysListFAC.cpp
index 0774d46ed19b53215cc2a59e3013fba462338aef..825b92f0acb7d555887ba63e168b30f3d599aa89 100755
--- a/Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.cpp
+++ b/Sim/GiGaMTFactories/src/Components/GiGaMTModularPhysListFAC.cpp
@@ -9,7 +9,7 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #include "GiGaMTModularPhysListFAC.h"
-#include "Geant4/G4VModularPhysicsList.hh"
+#include "G4VModularPhysicsList.hh"
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 
 DECLARE_COMPONENT( GiGaMTModularPhysListFAC )
diff --git a/Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.h b/Sim/GiGaMTFactories/src/Components/GiGaMTModularPhysListFAC.h
similarity index 96%
rename from Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.h
rename to Sim/GiGaMTFactories/src/Components/GiGaMTModularPhysListFAC.h
index 183ca042045207017c04adaf37c3121cfa8b0175..b91efad216f54200329528b00dcf416af93c9f65 100755
--- a/Sim/GiGaMTFactories/src/phys/GiGaMTModularPhysListFAC.h
+++ b/Sim/GiGaMTFactories/src/Components/GiGaMTModularPhysListFAC.h
@@ -12,8 +12,8 @@
 // G4
 #include "GaudiAlg/GaudiTool.h"
 #include "GaudiKernel/ToolHandle.h"
-#include "Geant4/G4VPhysicsConstructor.hh"
-#include "Geant4/G4VUserPhysicsList.hh"
+#include "G4VPhysicsConstructor.hh"
+#include "G4VUserPhysicsList.hh"
 
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
diff --git a/Sim/GiGaMTFactories/src/run/GiGaMTRunManagerFAC.cpp b/Sim/GiGaMTFactories/src/Components/GiGaMTRunManagerFAC.cpp
similarity index 100%
rename from Sim/GiGaMTFactories/src/run/GiGaMTRunManagerFAC.cpp
rename to Sim/GiGaMTFactories/src/Components/GiGaMTRunManagerFAC.cpp
diff --git a/Sim/GiGaMTFactories/src/run/GiGaMTRunManagerFAC.h b/Sim/GiGaMTFactories/src/Components/GiGaMTRunManagerFAC.h
similarity index 100%
rename from Sim/GiGaMTFactories/src/run/GiGaMTRunManagerFAC.h
rename to Sim/GiGaMTFactories/src/Components/GiGaMTRunManagerFAC.h
diff --git a/Sim/GiGaMTFactories/src/run/GiGaRunActionCommandFAC.cpp b/Sim/GiGaMTFactories/src/Components/GiGaRunActionCommandFAC.cpp
similarity index 100%
rename from Sim/GiGaMTFactories/src/run/GiGaRunActionCommandFAC.cpp
rename to Sim/GiGaMTFactories/src/Components/GiGaRunActionCommandFAC.cpp
diff --git a/Sim/GiGaMTFactories/src/run/GiGaRunActionCommandFAC.h b/Sim/GiGaMTFactories/src/Components/GiGaRunActionCommandFAC.h
similarity index 100%
rename from Sim/GiGaMTFactories/src/run/GiGaRunActionCommandFAC.h
rename to Sim/GiGaMTFactories/src/Components/GiGaRunActionCommandFAC.h
diff --git a/Sim/GiGaMTFactories/src/run/GiGaWorkerPilotFAC.cpp b/Sim/GiGaMTFactories/src/Components/GiGaWorkerPilotFAC.cpp
similarity index 100%
rename from Sim/GiGaMTFactories/src/run/GiGaWorkerPilotFAC.cpp
rename to Sim/GiGaMTFactories/src/Components/GiGaWorkerPilotFAC.cpp
diff --git a/Sim/GiGaMTFactories/src/run/GiGaWorkerPilotFAC.h b/Sim/GiGaMTFactories/src/Components/GiGaWorkerPilotFAC.h
similarity index 100%
rename from Sim/GiGaMTFactories/src/run/GiGaWorkerPilotFAC.h
rename to Sim/GiGaMTFactories/src/Components/GiGaWorkerPilotFAC.h
diff --git a/Sim/GiGaMTFactories/src/magnet/components/MagFieldFromSvc.cpp b/Sim/GiGaMTFactories/src/Components/MagFieldFromSvc.cpp
similarity index 99%
rename from Sim/GiGaMTFactories/src/magnet/components/MagFieldFromSvc.cpp
rename to Sim/GiGaMTFactories/src/Components/MagFieldFromSvc.cpp
index de5ac762333143a9273c856017730cfad0891927..c671eb977141f766ee548ace52c93017b58ebcf2 100755
--- a/Sim/GiGaMTFactories/src/magnet/components/MagFieldFromSvc.cpp
+++ b/Sim/GiGaMTFactories/src/Components/MagFieldFromSvc.cpp
@@ -21,7 +21,7 @@
 #include "GaudiKernel/Vector3DTypes.h"
 
 // local
-#include "Geant4/G4MagneticField.hh"
+#include "G4MagneticField.hh"
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
diff --git a/Sim/GiGaMTFactories/src/magnet/components/Steppers.cpp b/Sim/GiGaMTFactories/src/Components/Steppers.cpp
similarity index 84%
rename from Sim/GiGaMTFactories/src/magnet/components/Steppers.cpp
rename to Sim/GiGaMTFactories/src/Components/Steppers.cpp
index e56c9311b7de84372f90a9a1705a227a513dc024..34477831c24ea3d0482152a29eaa19f34eabf1ab 100644
--- a/Sim/GiGaMTFactories/src/magnet/components/Steppers.cpp
+++ b/Sim/GiGaMTFactories/src/Components/Steppers.cpp
@@ -9,22 +9,22 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 #include "GaudiAlg/GaudiTool.h"
-#include "Geant4/G4EquationOfMotion.hh"
-#include "Geant4/G4MagIntegratorStepper.hh"
+#include "G4EquationOfMotion.hh"
+#include "G4MagIntegratorStepper.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
 
-#include "Geant4/G4ExplicitEuler.hh"
-#include "Geant4/G4ImplicitEuler.hh"
-#include "Geant4/G4SimpleRunge.hh"
-#include "Geant4/G4SimpleHeum.hh"
-#include "Geant4/G4ClassicalRK4.hh"
-#include "Geant4/G4CashKarpRKF45.hh"
-#include "Geant4/G4RKG3_Stepper.hh"
-#include "Geant4/G4HelixExplicitEuler.hh"
-#include "Geant4/G4HelixImplicitEuler.hh"
-#include "Geant4/G4HelixSimpleRunge.hh"
-#include "Geant4/G4HelixHeum.hh"
+#include "G4ExplicitEuler.hh"
+#include "G4ImplicitEuler.hh"
+#include "G4SimpleRunge.hh"
+#include "G4SimpleHeum.hh"
+#include "G4ClassicalRK4.hh"
+#include "G4CashKarpRKF45.hh"
+#include "G4RKG3_Stepper.hh"
+#include "G4HelixExplicitEuler.hh"
+#include "G4HelixImplicitEuler.hh"
+#include "G4HelixSimpleRunge.hh"
+#include "G4HelixHeum.hh"
 
 template <typename STEPPER>
 class GiGaMTMagnetStepperFAC : public extends<GaudiTool, GiGaFactoryBase<G4MagIntegratorStepper, G4Mag_EqRhs*> >
diff --git a/Sim/GiGaMTFactories/src/magnet/components/ToolFieldMgr.cpp b/Sim/GiGaMTFactories/src/Components/ToolFieldMgr.cpp
similarity index 94%
rename from Sim/GiGaMTFactories/src/magnet/components/ToolFieldMgr.cpp
rename to Sim/GiGaMTFactories/src/Components/ToolFieldMgr.cpp
index 8f68a3b7df13c151c9e9f04734d2f879f14dec73..c25208f88f9e017771e43559f9348de6df62b4fa 100755
--- a/Sim/GiGaMTFactories/src/magnet/components/ToolFieldMgr.cpp
+++ b/Sim/GiGaMTFactories/src/Components/ToolFieldMgr.cpp
@@ -8,9 +8,9 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "Geant4/G4MagneticField.hh"
+#include "G4MagneticField.hh"
 #include "GiGaMTFactories/GiGaFactoryBase.h"
-#include "GiGaMTFactories/Magnet/FieldMgrBase.h"
+#include "GiGaMTMagnetFactories/FieldMgrBase.h"
 #include "GaudiKernel/ToolHandle.h"
 
 /** @class ToolFieldMgr
diff --git a/Sim/GiGaMTFactories/src/truth/TruthActionFactories.cpp b/Sim/GiGaMTFactories/src/Components/TruthActionFactories.cpp
similarity index 97%
rename from Sim/GiGaMTFactories/src/truth/TruthActionFactories.cpp
rename to Sim/GiGaMTFactories/src/Components/TruthActionFactories.cpp
index 992d8fe2d95dec122f62cae4064425f48e8ad062..978436a51cea3a9ecc2fe17aeb56754623c6ffe4 100644
--- a/Sim/GiGaMTFactories/src/truth/TruthActionFactories.cpp
+++ b/Sim/GiGaMTFactories/src/Components/TruthActionFactories.cpp
@@ -11,10 +11,10 @@
 #include "GiGaMTFactories/GiGaFactoryBase.h"
 #include "GiGaMTFactories/GiGaTool.h"
 
-#include "GiGaMTCoreTruth/TruthFlaggingTrackAction.h"
-#include "GiGaMTCoreTruth/TruthStoringTrackAction.h"
+#include "GiGaMTCoreRun/TruthFlaggingTrackAction.h"
+#include "GiGaMTCoreRun/TruthStoringTrackAction.h"
 
-#include "Geant4/G4UserTrackingAction.hh"
+#include "G4UserTrackingAction.hh"
 
 class TruthFlaggingTrackActionFAC : public extends<GiGaTool, GiGaFactoryBase<G4UserTrackingAction>> {
   using extends::extends;
diff --git a/Sim/GiGaMTFactories/src/magnet/components/ZeroFieldMgr.cpp b/Sim/GiGaMTFactories/src/Components/ZeroFieldMgr.cpp
similarity index 96%
rename from Sim/GiGaMTFactories/src/magnet/components/ZeroFieldMgr.cpp
rename to Sim/GiGaMTFactories/src/Components/ZeroFieldMgr.cpp
index af961ed3762c862523f0740b205e76eff9007d00..2936ec3ef6738a5c77a837eb6dbf3dcd309add9d 100755
--- a/Sim/GiGaMTFactories/src/magnet/components/ZeroFieldMgr.cpp
+++ b/Sim/GiGaMTFactories/src/Components/ZeroFieldMgr.cpp
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTFactories/Magnet/FieldMgrBase.h"
+#include "GiGaMTMagnetFactories/FieldMgrBase.h"
 class G4ChordFinder;
 
 /** @class ZeroFieldMgr
diff --git a/Sim/GiGaMTFactories/src/magnet/lib/FieldMgrBase.cpp b/Sim/GiGaMTFactories/src/Lib/FieldMgrBase.cpp
similarity index 91%
rename from Sim/GiGaMTFactories/src/magnet/lib/FieldMgrBase.cpp
rename to Sim/GiGaMTFactories/src/Lib/FieldMgrBase.cpp
index 5694c8ba5f1b1f1cf076d272470702bddbd769ba..4f4d609561b0025a325ad829d1290e8925d09ce2 100755
--- a/Sim/GiGaMTFactories/src/magnet/lib/FieldMgrBase.cpp
+++ b/Sim/GiGaMTFactories/src/Lib/FieldMgrBase.cpp
@@ -8,13 +8,13 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTFactories/Magnet/FieldMgrBase.h"
+#include "GiGaMTMagnetFactories/FieldMgrBase.h"
 #include "GaudiKernel/GaudiException.h"
-#include "Geant4/G4ChordFinder.hh"
-#include "Geant4/G4MagIntegratorStepper.hh"
-#include "Geant4/G4Mag_UsualEqRhs.hh"
-#include "Geant4/G4PropagatorInField.hh"
-#include "Geant4/G4TransportationManager.hh"
+#include "G4ChordFinder.hh"
+#include "G4MagIntegratorStepper.hh"
+#include "G4Mag_UsualEqRhs.hh"
+#include "G4PropagatorInField.hh"
+#include "G4TransportationManager.hh"
 
 namespace Gaussino
 {
diff --git a/Sim/GiGaMTGeo/CMakeLists.txt b/Sim/GiGaMTGeo/CMakeLists.txt
index e873fe024bc06036630d528c31e2e32b05bd70ee..94283c0ee5d487d5b7175f98d5d0fe2aacdfa670 100644
--- a/Sim/GiGaMTGeo/CMakeLists.txt
+++ b/Sim/GiGaMTGeo/CMakeLists.txt
@@ -8,7 +8,11 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
+#[=======================================================================[.rst:
+Sim/GiGaMTGeo
+-------------
+#]=======================================================================]
+###############################################################################
 # Package: GiGaMTGeo 
 #
 # This package will contain the factories to construct the various G4 objects.
@@ -17,23 +21,24 @@
 # and returns the constructed type by value.
 # FIXME: This requirement should probably be enforced somehow...
 # 
-#################################################################################
-gaudi_subdir(GiGaMTGeo v1r0)
-
-gaudi_depends_on_subdirs(GaudiAlg
-                         Sim/SimInterfaces
-                         Sim/GiGaMTCore) 
+###############################################################################
 
-AddHepMC3()
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
+gaudi_add_header_only_library(GiGaMTGeoLib)
+gaudi_add_header_only_library(GiGaMTRegionsLib)
 
 gaudi_add_module(GiGaMTGeoUtils
-        src/*.cpp
-        INCLUDE_DIRS SimInterfaces
-        LINK_LIBRARIES GiGaMTCoreRunLib GaudiAlgLib GiGaMTCoreCutLib)
+    SOURCES
+	src/Components/GDMLReader.cpp
+        src/Components/GiGaRegionsTool.cpp
+	src/Components/GiGaRegionTool.cpp
+	src/Components/GiGaSetSimAttributes.cpp
+    LINK
+    	Gaudi::GaudiAlgLib
+	Gaussino::GiGaMTRegionsLib
+        Gaussino::SimInterfacesLib
+	Gaussino::GiGaMTCoreCutLib
+	Gaussino::GiGaMTCoreRunLib
+	Geant4::G4persistency
+)
 
-gaudi_install_headers(GiGaMTGeo)
-gaudi_install_headers(GiGaMTRegions)
+gaudi_add_tests(QMTest)
diff --git a/Sim/GiGaMTGeo/include/GiGaMTGeo/IGDMLReader.h b/Sim/GiGaMTGeo/include/GiGaMTGeo/IGDMLReader.h
new file mode 100644
index 0000000000000000000000000000000000000000..a216af1a7687ab983ba4b9ced288cfa1ae4b8bf9
--- /dev/null
+++ b/Sim/GiGaMTGeo/include/GiGaMTGeo/IGDMLReader.h
@@ -0,0 +1,27 @@
+/*****************************************************************************\
+* (c) Copyright 2022 CERN for the benefit of the LHCb and FCC Collaborations  *
+*                                                                             *
+* This software is distributed under the terms of the Apache License          *
+* version 2 (Apache-2.0), copied verbatim in the file "COPYING".              *
+*                                                                             *
+* In applying this licence, CERN does not waive the privileges and immunities *
+* granted to it by virtue of its status as an Intergovernmental Organization  *
+* or submit itself to any jurisdiction.                                       *
+\*****************************************************************************/
+#pragma once
+
+#include "GaudiKernel/IAlgTool.h"
+
+class G4VPhysicalVolume;
+
+/** @class IGDMLReader IGDMLReader.h
+ *  Interface class for importing GDML files
+ *
+ */
+
+class IGDMLReader : virtual public IAlgTool {
+public:
+  DeclareInterfaceID( IGDMLReader, 1, 0 );
+
+  virtual StatusCode import( G4VPhysicalVolume* world ) const = 0;
+};
diff --git a/Sim/GiGaMTGeo/GiGaMTGeo/IGiGaMTGeoSvc.h b/Sim/GiGaMTGeo/include/GiGaMTGeo/IGiGaMTGeoSvc.h
similarity index 100%
rename from Sim/GiGaMTGeo/GiGaMTGeo/IGiGaMTGeoSvc.h
rename to Sim/GiGaMTGeo/include/GiGaMTGeo/IGiGaMTGeoSvc.h
diff --git a/Sim/GiGaMTGeo/GiGaMTRegions/IRegionsDefinitionSvc.h b/Sim/GiGaMTGeo/include/GiGaMTRegions/IRegionsDefinitionSvc.h
similarity index 100%
rename from Sim/GiGaMTGeo/GiGaMTRegions/IRegionsDefinitionSvc.h
rename to Sim/GiGaMTGeo/include/GiGaMTRegions/IRegionsDefinitionSvc.h
diff --git a/Sim/GiGaMTGeo/GiGaMTRegions/RegionCuts.h b/Sim/GiGaMTGeo/include/GiGaMTRegions/RegionCuts.h
similarity index 100%
rename from Sim/GiGaMTGeo/GiGaMTRegions/RegionCuts.h
rename to Sim/GiGaMTGeo/include/GiGaMTRegions/RegionCuts.h
diff --git a/Sim/GiGaMTGeo/GiGaMTRegions/SimAttribute.h b/Sim/GiGaMTGeo/include/GiGaMTRegions/SimAttribute.h
similarity index 100%
rename from Sim/GiGaMTGeo/GiGaMTRegions/SimAttribute.h
rename to Sim/GiGaMTGeo/include/GiGaMTRegions/SimAttribute.h
diff --git a/Sim/GiGaMTGeo/src/Components/GDMLReader.cpp b/Sim/GiGaMTGeo/src/Components/GDMLReader.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..81f206ba7fecf2168dc21b93c0fc05c9e7b92441
--- /dev/null
+++ b/Sim/GiGaMTGeo/src/Components/GDMLReader.cpp
@@ -0,0 +1,101 @@
+/*****************************************************************************\
+* (c) Copyright 2022 CERN for the benefit of the LHCb and FCC Collaborations  *
+*                                                                             *
+* This software is distributed under the terms of the Apache License          *
+* version 2 (Apache-2.0), copied verbatim in the file "COPYING".              *
+*                                                                             *
+* In applying this licence, CERN does not waive the privileges and immunities *
+* granted to it by virtue of its status as an Intergovernmental Organization  *
+* or submit itself to any jurisdiction.                                       *
+\*****************************************************************************/
+
+// Gaudi
+#include "GaudiAlg/GaudiTool.h"
+#include "GaudiKernel/SystemOfUnits.h"
+// Interface
+#include "GiGaMTGeo/IGDMLReader.h"
+// Geant4
+#include "G4AssemblyVolume.hh"
+#include "G4GDMLParser.hh"
+#include "G4LogicalVolume.hh"
+#include "G4LogicalVolumeStore.hh"
+#include "G4PVPlacement.hh"
+#include "G4VPhysicalVolume.hh"
+#include "G4VisAttributes.hh"
+
+/** @class GDMLReader GDMLReader.h
+ *
+ *  Tool to import geometry from GDML file
+ *
+ */
+
+class GDMLReader : public extends<GaudiTool, IGDMLReader> {
+
+public:
+  using extends::extends;
+
+  StatusCode import( G4VPhysicalVolume* world ) const override;
+
+private:
+  Gaudi::Property<std::string> m_gdmlfile{this, "GDMLFileName", "", "Name of the GDML file to be loaded"};
+  Gaudi::Property<double>      m_tx{this, "GDMLTranslationX", 0. * Gaudi::Units::mm};
+  Gaudi::Property<double>      m_ty{this, "GDMLTranslationY", 0. * Gaudi::Units::mm};
+  Gaudi::Property<double>      m_tz{this, "GDMLTranslationZ", 0. * Gaudi::Units::mm};
+  Gaudi::Property<double>      m_rx{this, "GDMLRotationX", 0. * Gaudi::Units::deg};
+  Gaudi::Property<double>      m_ry{this, "GDMLRotationY", 0. * Gaudi::Units::deg};
+  Gaudi::Property<double>      m_rz{this, "GDMLRotationZ", 0. * Gaudi::Units::deg};
+};
+
+DECLARE_COMPONENT( GDMLReader )
+
+StatusCode GDMLReader::import( G4VPhysicalVolume* world ) const {
+
+  info() << "Loading GDML geometry description from file " << m_gdmlfile.value() << "." << endmsg;
+  /// Read the GDML file.
+  G4GDMLParser g4parser;
+  g4parser.Read( m_gdmlfile.value(), true );
+  /// Get the world volume.
+  auto gdmlWorldPV = g4parser.GetWorldVolume();
+  if ( !gdmlWorldPV ) {
+    error() << "Could not retrieve world volume from file " << m_gdmlfile.value() << "." << endmsg;
+    return StatusCode::FAILURE;
+  }
+  auto gdmlWorldLV = gdmlWorldPV->GetLogicalVolume();
+
+  if ( gdmlWorldLV->GetName() == world->GetLogicalVolume()->GetName() ) {
+    error() << "The name of the imported world from GDML is the same "
+            << "as the name of the already exisiting world! "
+            << "GDMLReader will not work correctly in this case." << endmsg;
+    return StatusCode::FAILURE;
+  }
+
+  /// Make an assembly volume to hold the daughter volumes of the GDML world.
+  auto gdmlAssembly = new G4AssemblyVolume();
+  // Loop over the daughter volumes.
+  const int nDaughters = gdmlWorldLV->GetNoDaughters();
+  info() << "GDML world volume " << gdmlWorldLV->GetName() << " has " << nDaughters << " daughter(s)" << endmsg;
+  for ( int i = nDaughters; i--; ) {
+    auto gdmlDaughterPV = gdmlWorldLV->GetDaughter( i );
+    auto nameDaughter   = gdmlDaughterPV->GetName();
+    info() << "Picking up volume " << nameDaughter << " from " << m_gdmlfile.value() << endmsg;
+    auto transDaughter  = gdmlDaughterPV->GetTranslation();
+    auto rotDaughter    = gdmlDaughterPV->GetRotation();
+    auto gdmlDaughterLV = gdmlDaughterPV->GetLogicalVolume();
+    /// Give the GDML volume a different colour (to better distinguish it
+    /// in the G4 visualization)
+    auto gdmlDaughterVisAtt = new G4VisAttributes( G4Colour( 0, 1, 1 ) );
+    gdmlDaughterLV->SetVisAttributes( gdmlDaughterVisAtt );
+
+    /// Add the volume to the assembly
+    gdmlAssembly->AddPlacedVolume( gdmlDaughterLV, transDaughter, rotDaughter );
+  }
+  /// Set the position of the GDML assembly in the LHCb world.
+  G4ThreeVector transAssembly( m_tx.value(), m_ty.value(), m_tz.value() );
+  auto          rotAssembly = new G4RotationMatrix();
+  rotAssembly->rotateX( m_rx.value() * Gaudi::Units::deg );
+  rotAssembly->rotateY( m_ry.value() * Gaudi::Units::deg );
+  rotAssembly->rotateZ( m_rz.value() * Gaudi::Units::deg );
+  /// Place the assembly volume in the LHCb world.
+  gdmlAssembly->MakeImprint( world->GetLogicalVolume(), transAssembly, rotAssembly );
+  return StatusCode::SUCCESS;
+}
diff --git a/Sim/GiGaMTGeo/src/GiGaRegionTool.cpp b/Sim/GiGaMTGeo/src/Components/GiGaRegionTool.cpp
similarity index 94%
rename from Sim/GiGaMTGeo/src/GiGaRegionTool.cpp
rename to Sim/GiGaMTGeo/src/Components/GiGaRegionTool.cpp
index e70fc585e252d2b5c6e7c5e69a2df1938c147e7e..0eba5d31469dd62f54c1003cd7b889294b093ba8 100755
--- a/Sim/GiGaMTGeo/src/GiGaRegionTool.cpp
+++ b/Sim/GiGaMTGeo/src/Components/GiGaRegionTool.cpp
@@ -9,11 +9,11 @@
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
 // G4
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4LogicalVolumeStore.hh"
-#include "Geant4/G4ProductionCuts.hh"
-#include "Geant4/G4Region.hh"
-#include "Geant4/G4RegionStore.hh"
+#include "G4LogicalVolume.hh"
+#include "G4LogicalVolumeStore.hh"
+#include "G4ProductionCuts.hh"
+#include "G4Region.hh"
+#include "G4RegionStore.hh"
 
 // local
 #include "GiGaRegionTool.h"
diff --git a/Sim/GiGaMTGeo/src/GiGaRegionTool.h b/Sim/GiGaMTGeo/src/Components/GiGaRegionTool.h
similarity index 100%
rename from Sim/GiGaMTGeo/src/GiGaRegionTool.h
rename to Sim/GiGaMTGeo/src/Components/GiGaRegionTool.h
diff --git a/Sim/GiGaMTGeo/src/GiGaRegionsTool.cpp b/Sim/GiGaMTGeo/src/Components/GiGaRegionsTool.cpp
similarity index 96%
rename from Sim/GiGaMTGeo/src/GiGaRegionsTool.cpp
rename to Sim/GiGaMTGeo/src/Components/GiGaRegionsTool.cpp
index 155ec92d172698d6c782932fa7a48f8bf7c5f68b..166011cbed3d6e8c76634c3f61fad7f25c58e3e4 100755
--- a/Sim/GiGaMTGeo/src/GiGaRegionsTool.cpp
+++ b/Sim/GiGaMTGeo/src/Components/GiGaRegionsTool.cpp
@@ -15,15 +15,15 @@
 #include "GiGaMTRegions/IRegionsDefinitionSvc.h"
 #include "GiGaMTRegions/RegionCuts.h"
 
-#include "Geant4/G4LogicalVolumeStore.hh"
+#include "G4LogicalVolumeStore.hh"
 
 // local
 #include "GiGaRegionsTool.h"
 
 // G4
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4ProductionCuts.hh"
-#include "Geant4/G4Region.hh"
+#include "G4LogicalVolume.hh"
+#include "G4ProductionCuts.hh"
+#include "G4Region.hh"
 
 // Declaration of the Tool Factory
 DECLARE_COMPONENT( GiGaRegionsTool )
diff --git a/Sim/GiGaMTGeo/src/GiGaRegionsTool.h b/Sim/GiGaMTGeo/src/Components/GiGaRegionsTool.h
similarity index 100%
rename from Sim/GiGaMTGeo/src/GiGaRegionsTool.h
rename to Sim/GiGaMTGeo/src/Components/GiGaRegionsTool.h
diff --git a/Sim/GiGaMTGeo/src/GiGaSetSimAttributes.cpp b/Sim/GiGaMTGeo/src/Components/GiGaSetSimAttributes.cpp
similarity index 98%
rename from Sim/GiGaMTGeo/src/GiGaSetSimAttributes.cpp
rename to Sim/GiGaMTGeo/src/Components/GiGaSetSimAttributes.cpp
index 1bb73fca55d82b37ef2d21b0f8d3e25f9db4e9cd..03368654d0541b374c86725518c3366d21507c95 100755
--- a/Sim/GiGaMTGeo/src/GiGaSetSimAttributes.cpp
+++ b/Sim/GiGaMTGeo/src/Components/GiGaSetSimAttributes.cpp
@@ -14,8 +14,8 @@
 // SimSvc
 #include "GiGaMTRegions/IRegionsDefinitionSvc.h"
 // Geant4
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4LogicalVolumeStore.hh"
+#include "G4LogicalVolume.hh"
+#include "G4LogicalVolumeStore.hh"
 #include "GiGaMTCoreCut/GaussinoG4UserLimits.h"
 // local
 #include "GiGaSetSimAttributes.h"
diff --git a/Sim/GiGaMTGeo/src/GiGaSetSimAttributes.h b/Sim/GiGaMTGeo/src/Components/GiGaSetSimAttributes.h
similarity index 100%
rename from Sim/GiGaMTGeo/src/GiGaSetSimAttributes.h
rename to Sim/GiGaMTGeo/src/Components/GiGaSetSimAttributes.h
diff --git a/Sim/GiGaMTGeo/tests/data/cube_to_import.gdml b/Sim/GiGaMTGeo/tests/data/cube_to_import.gdml
new file mode 100644
index 0000000000000000000000000000000000000000..0836816c0a625736d57a4e3cef2862f5a23838ac
--- /dev/null
+++ b/Sim/GiGaMTGeo/tests/data/cube_to_import.gdml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd">
+<!--
+    (c) Copyright 2022 CERN for the benefit of the LHCb and FCC Collaborations
+
+    This software is distributed under the terms of the Apache License
+    version 2 (Apache-2.0), copied verbatim in the file "COPYING".
+
+    In applying this licence, CERN does not waive the privileges and immunities
+    granted to it by virtue of its status as an Intergovernmental Organization
+    or submit itself to any jurisdiction.
+-->
+
+  <define/>
+
+  <materials>
+    <isotope N="1" Z="1" name="H10x1ee5e10">
+      <atom unit="g/mole" value="1.00782503081372"/>
+    </isotope>
+    <isotope N="2" Z="1" name="H20x1ee5e80">
+      <atom unit="g/mole" value="2.01410199966617"/>
+    </isotope>
+    <element name="H0x1ee5ef0">
+      <fraction n="0.999885" ref="H10x1ee5e10"/>
+      <fraction n="0.000115" ref="H20x1ee5e80"/>
+    </element>
+    <material name="OuterSpace0x1ee5ce0" state="gas">
+      <T unit="K" value="2.73"/>
+      <P unit="pascal" value="1.87245306593404e-14"/>
+      <MEE unit="eV" value="19.2"/>
+      <D unit="g/cm3" value="6.24151021978012e-07"/>
+      <fraction n="1" ref="H0x1ee5ef0"/>
+    </material>
+  </materials>
+
+  <solids>
+    <box lunit="mm" name="Cuboid0x1eef200" x="1000" y="1000" z="1000"/>
+    <box lunit="mm" name="WorldBox0x1eeecd0" x="100000" y="100000" z="100000"/>
+  </solids>
+
+  <structure>
+    <volume name="CubeToImportLVol0x1eefa70">
+      <materialref ref="OuterSpace0x1ee5ce0"/>
+      <solidref ref="Cuboid0x1eef200"/>
+      <auxiliary auxtype="gammaECut" auxunit="MeV" auxvalue="0"/>
+      <auxiliary auxtype="electronECut" auxunit="MeV" auxvalue="0"/>
+      <auxiliary auxtype="positronECut" auxunit="MeV" auxvalue="0"/>
+      <auxiliary auxtype="protonECut" auxunit="MeV" auxvalue="0"/>
+      <auxiliary auxtype="SensDet" auxvalue="MyCubeSDet"/>
+    </volume>
+    <volume name="WorldLVol0x1eef630">
+      <materialref ref="OuterSpace0x1ee5ce0"/>
+      <solidref ref="WorldBox0x1eeecd0"/>
+      <physvol name="CubeToImportPVol0x1eefa10">
+        <volumeref ref="CubeToImportLVol0x1eefa70"/>
+        <position name="CubeToImportPVol0x1eefa10_pos" unit="mm" x="0" y="0" z="10000"/>
+      </physvol>
+      <auxiliary auxtype="gammaECut" auxunit="MeV" auxvalue="0"/>
+      <auxiliary auxtype="electronECut" auxunit="MeV" auxvalue="0"/>
+      <auxiliary auxtype="positronECut" auxunit="MeV" auxvalue="0"/>
+      <auxiliary auxtype="protonECut" auxunit="MeV" auxvalue="0"/>
+    </volume>
+  </structure>
+
+  <setup name="Default" version="1.0">
+    <world ref="WorldLVol0x1eef630"/>
+  </setup>
+
+</gdml>
diff --git a/Sim/GiGaMTGeo/tests/options/cube_import_export.py b/Sim/GiGaMTGeo/tests/options/cube_import_export.py
new file mode 100644
index 0000000000000000000000000000000000000000..89ad9ba7c0df066034bdba9a1fd52f8b60a4dd3e
--- /dev/null
+++ b/Sim/GiGaMTGeo/tests/options/cube_import_export.py
@@ -0,0 +1,111 @@
+###############################################################################
+# (c) Copyright 2022 CERN for the benefit of the LHCb and FCC Collaborations  #
+#                                                                             #
+# This software is distributed under the terms of the Apache License          #
+# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+# standard Gaussino
+from Configurables import Gaussino
+Gaussino().EvtMax = 1
+Gaussino().EnableHive = True
+Gaussino().ThreadPoolSize = 1
+Gaussino().EventSlots = 1
+
+from Configurables import GiGaMT
+GiGaMT().NumberOfWorkerThreads = 1
+
+# some dumb generation, not important, just fast
+from Gaussino.Generation import GenPhase
+GenPhase().ParticleGun = True
+GenPhase().ParticleGunUseDefault = False
+
+# Particle Gun On
+# shoots one 1 GeV e- along z-axis
+from Gaussino.Generation import GenPhase
+GenPhase().ParticleGun = True
+GenPhase().ParticleGunUseDefault = False
+from Configurables import ParticleGun
+pgun = ParticleGun("ParticleGun")
+from Configurables import FixedMomentum
+pgun.ParticleGunTool = "FixedMomentum"
+pgun.addTool(FixedMomentum, name="FixedMomentum")
+from GaudiKernel.SystemOfUnits import GeV
+pgun.FixedMomentum.px = 0. * GeV
+pgun.FixedMomentum.py = 0. * GeV
+pgun.FixedMomentum.pz = 1. * GeV
+pgun.FixedMomentum.PdgCodes = [11]
+from Configurables import FlatNParticles
+pgun.NumberOfParticlesTool = "FlatNParticles"
+pgun.addTool(FlatNParticles, name="FlatNParticles")
+pgun.FlatNParticles.MinNParticles = 1
+pgun.FlatNParticles.MaxNParticles = 1
+
+from Gaussino.Simulation import SimPhase
+SimPhase().PhysicsConstructors = [
+    "GiGaMT_G4EmStandardPhysics",
+]
+
+# adding external detectors
+from Configurables import ExternalDetectorEmbedder
+external = ExternalDetectorEmbedder("Testing")
+from GaudiKernel.SystemOfUnits import m
+from Gaudi.Configuration import DEBUG
+
+# plain/testing geometry service
+external.World = {
+    "WorldMaterial": "OuterSpace",
+    "Type": "ExternalWorldCreator",
+    "WorldLogicalVolumeName": "NewWorldLvol",
+    "WorldPhysicalVolumeName": "NewWorldPvol",
+    "OutputLevel": DEBUG,
+}
+
+# material needed for the external world
+from GaudiKernel.SystemOfUnits import g, cm3, pascal, mole, kelvin
+external.Materials = {
+    "OuterSpace": {
+        "AtomicNumber": 1.,
+        "MassNumber": 1.01 * g / mole,
+        "Density": 1.e-25 * g / cm3,
+        "Pressure": 3.e-18 * pascal,
+        "Temperature": 2.73 * kelvin,
+    },
+}
+
+# here embedding of the geometry takes place
+from Gaussino.Simulation import SimPhase
+SimPhase().ExternalDetectorEmbedder = "Testing"
+
+# Import GDML
+import os
+root = os.getenv("GIGAMTGEOROOT")
+SimPhase().ImportGDML = [
+    {
+        "GDMLFileName": root + "/tests/data/cube_to_import.gdml",
+        "OutputLevel": DEBUG,
+    },
+]
+
+SimPhase().SensDetMap = {
+    "MCCollectorSensDet/CubeToImportSDet": ["CubeToImportLVol"],
+}
+
+from Configurables import MCCollectorSensDet
+MCCollectorSensDet(
+    "GiGaMT.DetConst.CubeToImportSDet",
+    OutputLevel=DEBUG,
+    PrintStats=True,
+)
+
+# Export GDML
+SimPhase().ExportGDML = {
+    "GDMLFileName": "cube_to_export.gdml",
+    "GDMLFileNameOverwrite": True,
+    "GDMLExportEnergyCuts": True,
+    "GDMLExportSD": True,
+    "GDMLAddReferences": True,
+}
diff --git a/Sim/GiGaMTGeo/tests/qmtest/cube_import_export.qmt b/Sim/GiGaMTGeo/tests/qmtest/cube_import_export.qmt
new file mode 100644
index 0000000000000000000000000000000000000000..2b141269d852139bdfdfb8ae848c18e81438c2e7
--- /dev/null
+++ b/Sim/GiGaMTGeo/tests/qmtest/cube_import_export.qmt
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE extension  PUBLIC '-//QM/2.3/Extension//EN'  'http://www.codesourcery.com/qm/dtds/2.3/-//qm/2.3/extension//en.dtd'>
+<!--
+    (c) Copyright 2022 CERN for the benefit of the LHCb and FCC Collaborations
+
+    This software is distributed under the terms of the Apache License
+    version 2 (Apache-2.0), copied verbatim in the file "COPYING".
+
+    In applying this licence, CERN does not waive the privileges and immunities
+    granted to it by virtue of its status as an Intergovernmental Organization
+    or submit itself to any jurisdiction.
+-->
+<extension class="GaudiTest.GaudiExeTest" kind="test">
+<argument name="program"><text>gaudirun.py</text></argument>
+<argument name="timeout"><integer>600</integer></argument>
+<argument name="args"><set>
+  <text>../options/cube_import_export.py</text>a
+</set></argument>
+<argument name="validator"><text>
+import re
+
+# check if import/export is successful
+try:
+    with open('cube_to_export.gdml') as gdml:
+        data = gdml.read()
+        if data.find("CubeToImportLVol") == -1:
+            causes.append('Imported GDML volumes were not correctly exported.')
+        if data.find("CubeToImportSDet") == -1:
+            causes.append('Sensitive information not exported correctly.')
+except FileNotFoundError:
+    causes.append('GDML not exported')
+
+# check if sensitive detector is attached correctly to the imported volume
+hits_reg = "Hits=    1 Energy=-?[\d.]+(?:e-?\d+)?\[GeV\] #Particles=    1 in CubeToImportSDet"
+matches = re.findall(hits_reg, stdout)
+if not matches:
+    causes.append('Imported sensitive detector class not activated!')
+    result['GaudiTest.expected_string'] = result.Quote(option)
+</text></argument>
+</extension>
diff --git a/Sim/GiGaMTReDecay/CMakeLists.txt b/Sim/GiGaMTReDecay/CMakeLists.txt
index 6386e125ecb7f81dc838f636a66f9856d7304284..dc6ee11c71a1eae83010d905de8af030b667d9e3 100644
--- a/Sim/GiGaMTReDecay/CMakeLists.txt
+++ b/Sim/GiGaMTReDecay/CMakeLists.txt
@@ -8,48 +8,41 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: GiGaMTReDecay
-#
-# This package contains all the optional ReDecay configuration to coordinate 
-# the re-use of parts over the event between multiple events.
-# 
-#################################################################################
-gaudi_subdir(GiGaMTReDecay v1r0)
+#[=======================================================================[.rst:
+Sim/GiGaMTReDecay
+-----------------
 
-gaudi_depends_on_subdirs(NewRnd
-                         Gen/GenBeam
-                         Gen/Generators
-                         EDMdev/MCTruthToEDM
-                         Gen/RndInit
-                         Sim/GiGaMTTruth
-                         Sim/GiGaMT)
-
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
-
-AddHepMC3()
-find_package(ROOT COMPONENTS MathCore GenVector)
+This package contains all the optional ReDecay configuration to coordinate 
+the re-use of parts over the event between multiple events.
+#]=======================================================================]
 
 gaudi_add_library(GiGaMTReDecayLib
-                  src/lib/token/*.cpp
-                  PUBLIC_HEADERS GiGaMTReDecay
-                  INCLUDE_DIRS GenBeam RndInit GiGaMTTruth
-                  LINK_LIBRARIES GiGaMTLib NewRnd GeneratorsLib)
+    SOURCES
+        src/Lib/Token.cpp
+    LINK
+        PUBLIC
+	    Gaussino::RndInitLib
+	    Gaussino::GiGaMTLib
+	    Gaussino::NewRndLib
+	    Gaussino::GiGaMTCoreRunLib
+	    Gaussino::GeneratorsLib
+)
 
 gaudi_add_module(GiGaMTReDecay
-        src/components/service/*.cpp
-        src/components/gen_tools/*.cpp
-        src/components/*.cpp
-        src/components/sorters/*.cpp
-        src/components/sim/*.cpp
-        src/components/edm/*.cpp
-        LINK_LIBRARIES GiGaMTReDecayLib ROOT RndInitLib MCTruthToEDMLib)
-
-add_dependencies(GiGaMTReDecayLib HepMC3Ext)
-
-#gaudi_add_module(GiGaMT
-        #src/components/*.cpp
-        #LINK_LIBRARIES GiGaMTLib ROOT)
+    SOURCES
+	src/Components/ReDecayInit.cpp
+        src/Components/service/ReDecaySvc.cpp
+	src/Components/gen_tools/ReDecayGeneration.cpp
+	src/Components/gen_tools/ReDecayPileUp.cpp
+	src/Components/gen_tools/ReDecayProduction.cpp
+	src/Components/gen_tools/ReDecaySignalGeneration.cpp
+	src/Components/service/ReDecaySvc.cpp
+	src/Components/sorters/BaseSorter.cpp
+	src/Components/sorters/SignalOnly.cpp
+	src/Components/sim/ReDecaySimAlg.cpp
+	src/Components/sim/ReDecaySkipSimAlg.cpp
+	src/Components/edm/ReDecayMCTruthToEDM.cpp
+    LINK
+        Gaussino::GiGaMTReDecayLib
+	Gaussino::MCTruthToEDMLib
+)
diff --git a/Sim/GiGaMTReDecay/GiGaMTReDecay/IReDecaySorter.h b/Sim/GiGaMTReDecay/include/GiGaMTReDecay/IReDecaySorter.h
similarity index 100%
rename from Sim/GiGaMTReDecay/GiGaMTReDecay/IReDecaySorter.h
rename to Sim/GiGaMTReDecay/include/GiGaMTReDecay/IReDecaySorter.h
diff --git a/Sim/GiGaMTReDecay/GiGaMTReDecay/IRedecaySvc.h b/Sim/GiGaMTReDecay/include/GiGaMTReDecay/IRedecaySvc.h
similarity index 98%
rename from Sim/GiGaMTReDecay/GiGaMTReDecay/IRedecaySvc.h
rename to Sim/GiGaMTReDecay/include/GiGaMTReDecay/IRedecaySvc.h
index 17cb596e919c28ccab66bd76754a84cae0d623c2..5a496ac646eea0d57bfada478b124b91f03e1167 100755
--- a/Sim/GiGaMTReDecay/GiGaMTReDecay/IRedecaySvc.h
+++ b/Sim/GiGaMTReDecay/include/GiGaMTReDecay/IRedecaySvc.h
@@ -24,7 +24,7 @@
 
 #include "Event/GenCollision.h"
 
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include "GiGaMTCoreRun/SimResults.h"
 // GiGa
 
diff --git a/Sim/GiGaMTReDecay/GiGaMTReDecay/Token.h b/Sim/GiGaMTReDecay/include/GiGaMTReDecay/Token.h
similarity index 100%
rename from Sim/GiGaMTReDecay/GiGaMTReDecay/Token.h
rename to Sim/GiGaMTReDecay/include/GiGaMTReDecay/Token.h
diff --git a/Sim/GiGaMTReDecay/GiGaMTReDecay/typedefs.h b/Sim/GiGaMTReDecay/include/GiGaMTReDecay/typedefs.h
similarity index 91%
rename from Sim/GiGaMTReDecay/GiGaMTReDecay/typedefs.h
rename to Sim/GiGaMTReDecay/include/GiGaMTReDecay/typedefs.h
index ed4b5856d662f0da1936c5c0137e0748c56d4035..18511113cbd7fa9f6974c1b7bfb1c105e8416d9d 100644
--- a/Sim/GiGaMTReDecay/GiGaMTReDecay/typedefs.h
+++ b/Sim/GiGaMTReDecay/include/GiGaMTReDecay/typedefs.h
@@ -8,9 +8,9 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "GiGaMTCoreTruth/LinkedParticle.h"
+#include "GiGaMTCoreRun/LinkedParticle.h"
 #include <map>
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 
 namespace Gaussino::ReDecay {
   typedef std::map<const LinkedParticle*, MCTruthPtr> SignalTruths;
diff --git a/Sim/GiGaMTReDecay/src/components/ReDecayInit.cpp b/Sim/GiGaMTReDecay/src/Components/ReDecayInit.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/ReDecayInit.cpp
rename to Sim/GiGaMTReDecay/src/Components/ReDecayInit.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/backup/ReDecaySampleGenerationTool.cpp b/Sim/GiGaMTReDecay/src/Components/backup/ReDecaySampleGenerationTool.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/backup/ReDecaySampleGenerationTool.cpp
rename to Sim/GiGaMTReDecay/src/Components/backup/ReDecaySampleGenerationTool.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/edm/ReDecayMCTruthToEDM.cpp b/Sim/GiGaMTReDecay/src/Components/edm/ReDecayMCTruthToEDM.cpp
similarity index 99%
rename from Sim/GiGaMTReDecay/src/components/edm/ReDecayMCTruthToEDM.cpp
rename to Sim/GiGaMTReDecay/src/Components/edm/ReDecayMCTruthToEDM.cpp
index be06682eeadc67253976d032ca597903fbc797fd..caff814546e82d4a6ca3d28b13ad562c46321c27 100755
--- a/Sim/GiGaMTReDecay/src/components/edm/ReDecayMCTruthToEDM.cpp
+++ b/Sim/GiGaMTReDecay/src/Components/edm/ReDecayMCTruthToEDM.cpp
@@ -47,7 +47,7 @@
 #include "Event/MCVertex.h"
 #include "MCTruthToEDM/LinkedParticleMCParticleLink.h"
 
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 
 #include "Defaults/Locations.h"
 #include "GiGaMTReDecay/typedefs.h"
diff --git a/Sim/GiGaMTReDecay/src/components/gen_tools/ReDecayGeneration.cpp b/Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecayGeneration.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/gen_tools/ReDecayGeneration.cpp
rename to Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecayGeneration.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/gen_tools/ReDecayPileUp.cpp b/Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecayPileUp.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/gen_tools/ReDecayPileUp.cpp
rename to Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecayPileUp.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/gen_tools/ReDecayProduction.cpp b/Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecayProduction.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/gen_tools/ReDecayProduction.cpp
rename to Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecayProduction.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/gen_tools/ReDecaySignalGeneration.cpp b/Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecaySignalGeneration.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/gen_tools/ReDecaySignalGeneration.cpp
rename to Sim/GiGaMTReDecay/src/Components/gen_tools/ReDecaySignalGeneration.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/service/ReDecaySvc.cpp b/Sim/GiGaMTReDecay/src/Components/service/ReDecaySvc.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/service/ReDecaySvc.cpp
rename to Sim/GiGaMTReDecay/src/Components/service/ReDecaySvc.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/sim/ReDecaySimAlg.cpp b/Sim/GiGaMTReDecay/src/Components/sim/ReDecaySimAlg.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/sim/ReDecaySimAlg.cpp
rename to Sim/GiGaMTReDecay/src/Components/sim/ReDecaySimAlg.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/sim/ReDecaySimAlg.h b/Sim/GiGaMTReDecay/src/Components/sim/ReDecaySimAlg.h
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/sim/ReDecaySimAlg.h
rename to Sim/GiGaMTReDecay/src/Components/sim/ReDecaySimAlg.h
diff --git a/Sim/GiGaMTReDecay/src/components/sim/ReDecaySkipSimAlg.cpp b/Sim/GiGaMTReDecay/src/Components/sim/ReDecaySkipSimAlg.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/sim/ReDecaySkipSimAlg.cpp
rename to Sim/GiGaMTReDecay/src/Components/sim/ReDecaySkipSimAlg.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/sim/ReDecaySkipSimAlg.h b/Sim/GiGaMTReDecay/src/Components/sim/ReDecaySkipSimAlg.h
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/sim/ReDecaySkipSimAlg.h
rename to Sim/GiGaMTReDecay/src/Components/sim/ReDecaySkipSimAlg.h
diff --git a/Sim/GiGaMTReDecay/src/components/sorters/BaseSorter.cpp b/Sim/GiGaMTReDecay/src/Components/sorters/BaseSorter.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/sorters/BaseSorter.cpp
rename to Sim/GiGaMTReDecay/src/Components/sorters/BaseSorter.cpp
diff --git a/Sim/GiGaMTReDecay/src/components/sorters/BaseSorter.h b/Sim/GiGaMTReDecay/src/Components/sorters/BaseSorter.h
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/sorters/BaseSorter.h
rename to Sim/GiGaMTReDecay/src/Components/sorters/BaseSorter.h
diff --git a/Sim/GiGaMTReDecay/src/components/sorters/SignalOnly.cpp b/Sim/GiGaMTReDecay/src/Components/sorters/SignalOnly.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/components/sorters/SignalOnly.cpp
rename to Sim/GiGaMTReDecay/src/Components/sorters/SignalOnly.cpp
diff --git a/Sim/GiGaMTReDecay/src/lib/token/Token.cpp b/Sim/GiGaMTReDecay/src/Lib/Token.cpp
similarity index 100%
rename from Sim/GiGaMTReDecay/src/lib/token/Token.cpp
rename to Sim/GiGaMTReDecay/src/Lib/Token.cpp
diff --git a/Sim/GiGaMTTruth/CMakeLists.txt b/Sim/GiGaMTTruth/CMakeLists.txt
index c97d6f387f66b8f059837134d135dfcd63f189c7..20e679aeb92b5a67c8fd1f26f43f0d23f4388d4d 100644
--- a/Sim/GiGaMTTruth/CMakeLists.txt
+++ b/Sim/GiGaMTTruth/CMakeLists.txt
@@ -8,28 +8,11 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: GiGaMTTruth 
-#
-# This package contains all code related to the tracking and extraction of truth
-# information from the Geant4 propagation
-#################################################################################
-gaudi_subdir(GiGaMTTruth v1r0)
-gaudi_depends_on_subdirs(NewRnd
-                         GaudiAlg
-                         HepMCUser
-                         Kernel/PartProp
-                         Sim/GiGaMTCore)
+#[=======================================================================[.rst:
+Sim/GiGaMTTruth
+---------------
 
-if(${Geant4_config_version} VERSION_LESS "10.06")
-  add_definitions(-DG4MULTITHREADED)
-  add_definitions(-DG4USE_STD11)
-endif()
-
-
-AddHepMC3()
-
-FindG4libs(digits_hits event geometry global graphics_reps materials persistency
-           particles processes run tracking track intercoms physicslists)
-
-gaudi_install_headers(GiGaMTTruth)
+This package contains all code related to the tracking and extraction of truth
+information from the Geant4 propagation
+#]=======================================================================]
+gaudi_add_header_only_library(GiGaMTTruthLib)
diff --git a/Sim/GiGaMTTruth/GiGaMTTruth/IHepMC3ToMCTruthConverter.h b/Sim/GiGaMTTruth/include/GiGaMTTruth/IHepMC3ToMCTruthConverter.h
similarity index 97%
rename from Sim/GiGaMTTruth/GiGaMTTruth/IHepMC3ToMCTruthConverter.h
rename to Sim/GiGaMTTruth/include/GiGaMTTruth/IHepMC3ToMCTruthConverter.h
index cc20f8d41927229002c359506417b25a56c34a9a..d06d2ecdf727762acd55e8532072a9e6c98d6c08 100644
--- a/Sim/GiGaMTTruth/GiGaMTTruth/IHepMC3ToMCTruthConverter.h
+++ b/Sim/GiGaMTTruth/include/GiGaMTTruth/IHepMC3ToMCTruthConverter.h
@@ -13,7 +13,7 @@
 
 // from Gaudi
 #include "GaudiKernel/IAlgTool.h"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include "HepMCUser/typedefs.h"
 
 class G4Event;
diff --git a/Sim/MCCollector/CMakeLists.txt b/Sim/MCCollector/CMakeLists.txt
index 48c559671b331541fca0d63a169c7a3ade7f0487..a737225a4581e61701495167788d5f01b7f1ccfa 100644
--- a/Sim/MCCollector/CMakeLists.txt
+++ b/Sim/MCCollector/CMakeLists.txt
@@ -8,22 +8,20 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: MCCollector
-################################################################################
-gaudi_subdir(MCCollector v1r0)
-
-gaudi_depends_on_subdirs(Sim/GiGaMTCore
-			 Sim/GiGaMTFactories
-             Sim/GiGaMTCore
-             EDMdev/MCTruthToEDM)
-
-AddHepMC3()
-find_package(Boost)
-find_package(CLHEP)
-include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${Geant4_INCLUDE_DIRS})
+#[=======================================================================[.rst:
+Sim/MCCollector
+---------------
 
+Author: Michał Mazurek
+#]=======================================================================]
 gaudi_add_module(MCCollector
-                 src/*.cpp
-		 INCLUDE_DIRS GiGaMTFactories
-                 LINK_LIBRARIES GiGaMTCoreTruthLib MCTruthToEDMLib)
+    SOURCES
+        src/Components/GetMCCollectorHitsAlg.cpp
+        src/Components/MCCollectorHit.cpp
+        src/Components/MCCollectorSensDet.cpp
+    LINK
+        Gaussino::GiGaMTCoreRunLib
+        Gaussino::GiGaMTFactoriesLib
+        Gaussino::GiGaMTDetFactoriesLib
+        Gaussino::MCTruthToEDMLib
+)
diff --git a/Sim/MCCollector/src/GetMCCollectorHitsAlg.cpp b/Sim/MCCollector/src/Components/GetMCCollectorHitsAlg.cpp
similarity index 98%
rename from Sim/MCCollector/src/GetMCCollectorHitsAlg.cpp
rename to Sim/MCCollector/src/Components/GetMCCollectorHitsAlg.cpp
index c52ea89d3b24cb8791b932072009da4ac34da624..2438c4b8334c84388c9ba126aa03e7c67e1a89c5 100755
--- a/Sim/MCCollector/src/GetMCCollectorHitsAlg.cpp
+++ b/Sim/MCCollector/src/Components/GetMCCollectorHitsAlg.cpp
@@ -15,7 +15,7 @@
 // GiGaMT
 #include "Defaults/Locations.h"
 #include "GiGaMTCoreRun/G4EventProxy.h"
-#include "GiGaMTCoreTruth/MCTruthConverter.h"
+#include "GiGaMTCoreRun/MCTruthConverter.h"
 #include "MCTruthToEDM/LinkedParticleMCParticleLink.h"
 // local
 #include "MCCollectorHit.h"
diff --git a/Sim/MCCollector/src/MCCollectorHit.cpp b/Sim/MCCollector/src/Components/MCCollectorHit.cpp
similarity index 100%
rename from Sim/MCCollector/src/MCCollectorHit.cpp
rename to Sim/MCCollector/src/Components/MCCollectorHit.cpp
diff --git a/Sim/MCCollector/src/MCCollectorHit.h b/Sim/MCCollector/src/Components/MCCollectorHit.h
similarity index 94%
rename from Sim/MCCollector/src/MCCollectorHit.h
rename to Sim/MCCollector/src/Components/MCCollectorHit.h
index f6b7bae12ab55ed94622e2c551dfd4ae2f648024..250e6caf26f17fcf559d2214e1de6d7ebeedc41f 100755
--- a/Sim/MCCollector/src/MCCollectorHit.h
+++ b/Sim/MCCollector/src/Components/MCCollectorHit.h
@@ -14,9 +14,9 @@
 #include "GiGaMTCoreDet/GaussHitBase.h"
 
 // G4
-#include "Geant4/G4Allocator.hh"
-#include "Geant4/G4THitsCollection.hh"
-#include "Geant4/G4ThreeVector.hh"
+#include "G4Allocator.hh"
+#include "G4THitsCollection.hh"
+#include "G4ThreeVector.hh"
 
 namespace MCCollector {
   class Hit : public Gaussino::HitBase {
diff --git a/Sim/MCCollector/src/MCCollectorSensDet.cpp b/Sim/MCCollector/src/Components/MCCollectorSensDet.cpp
similarity index 93%
rename from Sim/MCCollector/src/MCCollectorSensDet.cpp
rename to Sim/MCCollector/src/Components/MCCollectorSensDet.cpp
index 75b314dda0d0764ffabbd35355b16ca3e67facff..5b21473ab934c6fec6fead3b25875765f3c60451 100755
--- a/Sim/MCCollector/src/MCCollectorSensDet.cpp
+++ b/Sim/MCCollector/src/Components/MCCollectorSensDet.cpp
@@ -12,8 +12,8 @@
 
 // local
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
-#include "GiGaMTCoreTruth/GaussinoTrackInformation.h"
-#include "GiGaMTFactories/GiGaMTG4SensDetFactory.h"
+#include "GiGaMTCoreRun/GaussinoTrackInformation.h"
+#include "GiGaMTDetFactories/GiGaMTG4SensDetFactory.h"
 #include "MCCollectorHit.h"
 
 // from CLHEP
@@ -24,15 +24,15 @@
 #include "GaudiKernel/SystemOfUnits.h"
 
 // from Geant4
-#include "Geant4/G4HCofThisEvent.hh"
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4SDManager.hh"
-#include "Geant4/G4Step.hh"
-#include "Geant4/G4TouchableHistory.hh"
-#include "Geant4/G4Track.hh"
-#include "Geant4/G4VPhysicalVolume.hh"
-#include "Geant4/G4VSensitiveDetector.hh"
-#include "Geant4/G4ios.hh"
+#include "G4HCofThisEvent.hh"
+#include "G4LogicalVolume.hh"
+#include "G4SDManager.hh"
+#include "G4Step.hh"
+#include "G4TouchableHistory.hh"
+#include "G4Track.hh"
+#include "G4VPhysicalVolume.hh"
+#include "G4VSensitiveDetector.hh"
+#include "G4ios.hh"
 
 namespace MCCollector {
   class SensDet : public G4VSensitiveDetector, public virtual GiGaMessage {
diff --git a/Sim/ParallelGeometry/CMakeLists.txt b/Sim/ParallelGeometry/CMakeLists.txt
index 0b28dbb76988501387e2b25a43a638279a8fdbee..652050de2d93ff517ea81a3026744362a68d4931 100644
--- a/Sim/ParallelGeometry/CMakeLists.txt
+++ b/Sim/ParallelGeometry/CMakeLists.txt
@@ -8,30 +8,31 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: ParallelGeometry
-################################################################################
-gaudi_subdir(ParallelGeometry v1r0)
-
-gaudi_depends_on_subdirs(GaudiAlg
-                         Sim/GiGaMTCore
-                         Sim/GiGaMTFactories)
-
-AddHepMC3()                                              
-find_package(Boost)
-find_package(CLHEP)
-
-include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${Geant4_INCLUDE_DIRS})
-
+#[=======================================================================[.rst:
+Sim/ParallelGeometry
+--------------------
+#]=======================================================================]
 gaudi_add_library(ParallelGeometryLib
-                  src/Lib/*.cpp
-                  PUBLIC_HEADERS ParallelGeometry
-                  INCLUDE_DIRS Sim/GiGaMTFactories ${RANGEV3_INCLUDE_DIRS}
-                  LINK_LIBRARIES GaudiAlgLib GiGaMTCoreRunLib ${HEPMC3_LIBRARIES} ${GEANT4_LIBS})
+    SOURCES
+        src/Lib/Physics.cpp
+        src/Lib/World.cpp
+    LINK
+        PUBLIC
+            XercesC::XercesC
+            Geant4::G4physicslists
+            Gaussino::GiGaMTPhysFactoriesLib
+            Gaussino::GiGaMTCoreRunLib
+)
 
 gaudi_add_module(ParallelGeometry
-                 src/Components/*.cpp
-                 LINK_LIBRARIES ParallelGeometryLib)
+    SOURCES
+        src/Components/DefaultPhysicsFactory.cpp
+        src/Components/DefaultWorldFactory.cpp
+    LINK
+        Geant4::G4persistency
+        Gaussino::ParallelGeometryLib
+)
 
-gaudi_install_python_modules()
-gaudi_add_test(QMTest QMTEST)
+gaudi_install(PYTHON)
+gaudi_generate_confuserdb()
+gaudi_add_tests(QMTest)
diff --git a/Sim/ParallelGeometry/ParallelGeometry/Physics.h b/Sim/ParallelGeometry/include/ParallelGeometry/Physics.h
similarity index 97%
rename from Sim/ParallelGeometry/ParallelGeometry/Physics.h
rename to Sim/ParallelGeometry/include/ParallelGeometry/Physics.h
index 5f75d4c358c9d54632c2732a6f8f7652e10c6eca..762628facefd95d60de8a8416b379f97f232b185 100644
--- a/Sim/ParallelGeometry/ParallelGeometry/Physics.h
+++ b/Sim/ParallelGeometry/include/ParallelGeometry/Physics.h
@@ -11,7 +11,7 @@
 #pragma once
 
 // Geant4
-#include "Geant4/G4ParallelWorldPhysics.hh"
+#include "G4ParallelWorldPhysics.hh"
 #include "GiGaMTCoreMessage/IGiGaMessage.h"
 
 namespace ParallelGeometry {
diff --git a/Sim/ParallelGeometry/ParallelGeometry/PhysicsFactory.h b/Sim/ParallelGeometry/include/ParallelGeometry/PhysicsFactory.h
similarity index 92%
rename from Sim/ParallelGeometry/ParallelGeometry/PhysicsFactory.h
rename to Sim/ParallelGeometry/include/ParallelGeometry/PhysicsFactory.h
index 0ae1f1e1b9d16cb5502f3c1a1e780f3af58e6ac3..7eac945fa244340ad4af42ce5bc05669571eb9a0 100644
--- a/Sim/ParallelGeometry/ParallelGeometry/PhysicsFactory.h
+++ b/Sim/ParallelGeometry/include/ParallelGeometry/PhysicsFactory.h
@@ -10,10 +10,10 @@
 \*****************************************************************************/
 #pragma once
 // Geant4
-#include "Geant4/G4ParallelWorldPhysics.hh"
+#include "G4ParallelWorldPhysics.hh"
 // local
-#include "GiGaMTFactories/GiGaMTG4PhysicsConstrFAC.h"
-#include "GiGaMTFactories/GiGaMTG4PhysicsFactory.h"
+#include "GiGaMTPhysFactories/GiGaMTG4PhysicsConstrFAC.h"
+#include "GiGaMTPhysFactories/GiGaMTG4PhysicsFactory.h"
 #include "ParallelGeometry/Physics.h"
 
 namespace ParallelGeometry {
diff --git a/Sim/ParallelGeometry/ParallelGeometry/PhysicsFactory.icpp b/Sim/ParallelGeometry/include/ParallelGeometry/PhysicsFactory.icpp
similarity index 100%
rename from Sim/ParallelGeometry/ParallelGeometry/PhysicsFactory.icpp
rename to Sim/ParallelGeometry/include/ParallelGeometry/PhysicsFactory.icpp
diff --git a/Sim/ParallelGeometry/ParallelGeometry/World.h b/Sim/ParallelGeometry/include/ParallelGeometry/World.h
similarity index 97%
rename from Sim/ParallelGeometry/ParallelGeometry/World.h
rename to Sim/ParallelGeometry/include/ParallelGeometry/World.h
index 6a29ebc82a95ba89da179fd39fa11aa46835b34e..c250d2967e39b3621e9ea9759563912b8717befb 100644
--- a/Sim/ParallelGeometry/ParallelGeometry/World.h
+++ b/Sim/ParallelGeometry/include/ParallelGeometry/World.h
@@ -11,7 +11,7 @@
 #pragma once
 
 // Geant4
-#include "Geant4/G4VUserParallelWorld.hh"
+#include "G4VUserParallelWorld.hh"
 
 class G4VPhysicalVolume;
 
diff --git a/Sim/ParallelGeometry/ParallelGeometry/WorldFactory.h b/Sim/ParallelGeometry/include/ParallelGeometry/WorldFactory.h
similarity index 95%
rename from Sim/ParallelGeometry/ParallelGeometry/WorldFactory.h
rename to Sim/ParallelGeometry/include/ParallelGeometry/WorldFactory.h
index 89b04ac6c57d08e83f1aab2aa21a6733b8ec1e1f..1eb6a105fdeff01ee7043fea1fc1acf98f07acef 100644
--- a/Sim/ParallelGeometry/ParallelGeometry/WorldFactory.h
+++ b/Sim/ParallelGeometry/include/ParallelGeometry/WorldFactory.h
@@ -11,10 +11,10 @@
 #pragma once
 
 // Geant4
-#include "Geant4/G4LogicalVolume.hh"
-#include "Geant4/G4Material.hh"
-#include "Geant4/G4VPhysicalVolume.hh"
-#include "Geant4/G4VUserParallelWorld.hh"
+#include "G4LogicalVolume.hh"
+#include "G4Material.hh"
+#include "G4VPhysicalVolume.hh"
+#include "G4VUserParallelWorld.hh"
 // local
 #include "GaudiAlg/FunctionalDetails.h"
 #include "GiGaMTCoreDet/IExternalDetectorEmbedder.h"
diff --git a/Sim/ParallelGeometry/ParallelGeometry/WorldFactory.icpp b/Sim/ParallelGeometry/include/ParallelGeometry/WorldFactory.icpp
similarity index 99%
rename from Sim/ParallelGeometry/ParallelGeometry/WorldFactory.icpp
rename to Sim/ParallelGeometry/include/ParallelGeometry/WorldFactory.icpp
index a4e7945b3a69472047960646d08a4850544f6745..b19c3fef7e8865a4b45a86fd59551408e46f60d9 100644
--- a/Sim/ParallelGeometry/ParallelGeometry/WorldFactory.icpp
+++ b/Sim/ParallelGeometry/include/ParallelGeometry/WorldFactory.icpp
@@ -8,7 +8,7 @@
 * granted to it by virtue of its status as an Intergovernmental Organization  *
 * or submit itself to any jurisdiction.                                       *
 \*****************************************************************************/
-#include "Geant4/G4GDMLParser.hh"
+#include "G4GDMLParser.hh"
 #include <filesystem>
 
 template <class ParallelWorld>
diff --git a/Sim/ParallelGeometry/src/Lib/Physics.cpp b/Sim/ParallelGeometry/src/Lib/Physics.cpp
index 8d7e5ef79b628a6e638f331e71ccd7c148518f27..3c1ee037a7202df14e8a59dc7db0ad8e4f414fbb 100644
--- a/Sim/ParallelGeometry/src/Lib/Physics.cpp
+++ b/Sim/ParallelGeometry/src/Lib/Physics.cpp
@@ -13,12 +13,12 @@
 #include "ParallelGeometry/Physics.h"
 
 // Geant4
-#include "Geant4/G4ParallelWorldPhysics.hh"
-#include "Geant4/G4ParallelWorldProcess.hh"
-#include "Geant4/G4ParticleDefinition.hh"
-#include "Geant4/G4ParticleTable.hh"
-#include "Geant4/G4ProcessManager.hh"
-#include "Geant4/G4TransportationManager.hh"
+#include "G4ParallelWorldPhysics.hh"
+#include "G4ParallelWorldProcess.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4ParticleTable.hh"
+#include "G4ProcessManager.hh"
+#include "G4TransportationManager.hh"
 
 ParallelGeometry::Physics::Physics( std::string parallelWorld, bool layeredMass )
     : G4ParallelWorldPhysics( parallelWorld, layeredMass ), m_layeredMass( layeredMass ) {}
diff --git a/Sim/SimInterfaces/CMakeLists.txt b/Sim/SimInterfaces/CMakeLists.txt
index 51218c0968fd431626325a1bf84366586e607f46..7ee25dfce308bca63b0460e7a2ae647577c37dd4 100644
--- a/Sim/SimInterfaces/CMakeLists.txt
+++ b/Sim/SimInterfaces/CMakeLists.txt
@@ -8,9 +8,8 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: SimInterface
-################################################################################
-gaudi_subdir(SimInterfaces v1r0)
-
-gaudi_install_headers(SimInterfaces)
+#[=======================================================================[.rst:
+Sim/SimInterfaces
+-----------------
+#]=======================================================================]
+gaudi_add_header_only_library(SimInterfacesLib)
diff --git a/Sim/SimInterfaces/SimInterfaces/IG4MonitoringTool.h b/Sim/SimInterfaces/include/SimInterfaces/IG4MonitoringTool.h
similarity index 100%
rename from Sim/SimInterfaces/SimInterfaces/IG4MonitoringTool.h
rename to Sim/SimInterfaces/include/SimInterfaces/IG4MonitoringTool.h
diff --git a/Sim/SimInterfaces/SimInterfaces/IGaussinoTool.h b/Sim/SimInterfaces/include/SimInterfaces/IGaussinoTool.h
similarity index 100%
rename from Sim/SimInterfaces/SimInterfaces/IGaussinoTool.h
rename to Sim/SimInterfaces/include/SimInterfaces/IGaussinoTool.h
diff --git a/Sim/SimInterfaces/SimInterfaces/ISimSvc.h b/Sim/SimInterfaces/include/SimInterfaces/ISimSvc.h
similarity index 100%
rename from Sim/SimInterfaces/SimInterfaces/ISimSvc.h
rename to Sim/SimInterfaces/include/SimInterfaces/ISimSvc.h
diff --git a/Utils/CMakeLists.txt b/Utils/CMakeLists.txt
index eb2d7f85b0084911004d3f898868fe626b48daba..8292b24659ca7b378b799b3a03e5090013e792a6 100644
--- a/Utils/CMakeLists.txt
+++ b/Utils/CMakeLists.txt
@@ -8,9 +8,8 @@
 # granted to it by virtue of its status as an Intergovernmental Organization  #
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
-################################################################################
-# Package: Utils
-################################################################################
-gaudi_subdir(Utils v1r0)
-
-gaudi_install_headers(Utils)
+#[=======================================================================[.rst:
+Utils
+-----
+#]=======================================================================]
+gaudi_add_header_only_library(UtilsLib)
diff --git a/Utils/Utils/LocalTL.h b/Utils/include/Utils/LocalTL.h
similarity index 100%
rename from Utils/Utils/LocalTL.h
rename to Utils/include/Utils/LocalTL.h
diff --git a/Utils/Utils/ToolProperty.h b/Utils/include/Utils/ToolProperty.h
similarity index 100%
rename from Utils/Utils/ToolProperty.h
rename to Utils/include/Utils/ToolProperty.h
diff --git a/Utils/Utils/blockingconcurrentqueue.h b/Utils/include/Utils/blockingconcurrentqueue.h
similarity index 100%
rename from Utils/Utils/blockingconcurrentqueue.h
rename to Utils/include/Utils/blockingconcurrentqueue.h
diff --git a/Utils/Utils/concurrentqueue.h b/Utils/include/Utils/concurrentqueue.h
similarity index 99%
rename from Utils/Utils/concurrentqueue.h
rename to Utils/include/Utils/concurrentqueue.h
index 68f66df10da96f1e009071c0438568eda975157b..91eb9a6942ba24003eba188018fe18768f161d57 100644
--- a/Utils/Utils/concurrentqueue.h
+++ b/Utils/include/Utils/concurrentqueue.h
@@ -1,4 +1,4 @@
-// Provides a C++11 implementation of a multi-producer, multi-consumer lock-free queue.
+// Provides a C++11 implementation of a multi-producer, multi-consumer lock-free queue.
 // An overview, including benchmark results, is provided here:
 //     http://moodycamel.com/blog/2014/a-fast-general-purpose-lock-free-queue-for-c++
 // The full design is also described in excruciating detail at:
diff --git a/cmake/FindALPGEN.cmake b/cmake/FindALPGEN.cmake
deleted file mode 100644
index 24d22f6fc4b0cf5cddc659579d25129a43f8f03d..0000000000000000000000000000000000000000
--- a/cmake/FindALPGEN.cmake
+++ /dev/null
@@ -1,60 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find ALPGEN
-# Defines:
-#
-#  ALPGEN_FOUND
-#  ALPGEN_INCLUDE_DIR
-#  ALPGEN_INCLUDE_DIRS (not cached)
-#  ALPGEN_<component>_LIBRARY
-#  ALPGEN_<component>_FOUND
-#  ALPGEN_LIBRARIES (not cached)
-#  ALPGEN_LIBRARY_DIRS (not cached)
-#  ALPGEN_PYTHON_PATH
-#  ALPGEN_BINARY_PATH (not cached)
-
-# Enforce a minimal list if none is explicitly requested
-if(NOT ALPGEN_FIND_COMPONENTS)
-  set(ALPGEN_FIND_COMPONENTS alpgen alpsho)
-endif()
-
-foreach(component ${ALPGEN_FIND_COMPONENTS})
-  find_library(ALPGEN_${component}_LIBRARY NAMES ${component})
-  if (ALPGEN_${component}_LIBRARY)
-    set(ALPGEN_${component}_FOUND 1)
-    list(APPEND ALPGEN_LIBRARIES ${ALPGEN_${component}_LIBRARY})
-
-    get_filename_component(libdir ${ALPGEN_${component}_LIBRARY} PATH)
-    list(APPEND ALPGEN_LIBRARY_DIRS ${libdir})
-  else()
-    set(ALPGEN_${component}_FOUND 0)
-  endif()
-  mark_as_advanced(ALPGEN_${component}_LIBRARY)
-endforeach()
-
-if(ALPGEN_LIBRARY_DIRS)
-  list(REMOVE_DUPLICATES ALPGEN_LIBRARY_DIRS)
-endif()
-
-find_file(ALPGEN_AUTHOR_DIR alpgen-author
-          HINTS ${ALPGEN_LIBRARY_DIRS}
-          PATH_SUFFIXES share ../../share)
-mark_as_advanced(ALPGEN_AUTHOR_DIR)
-set(ALPGEN_INCLUDE_DIRS ${ALPGEN_AUTHOR_DIR} ${ALPGEN_AUTHOR_DIR}/alplib)
-
-# handle the QUIETLY and REQUIRED arguments and set ALPGEN_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(ALPGEN DEFAULT_MSG ALPGEN_LIBRARY_DIRS ALPGEN_LIBRARIES ALPGEN_AUTHOR_DIR)
-
-mark_as_advanced(ALPGEN_FOUND)
-
-set(ALPGEN_ENVIRONMENT SET ALPGEN_AUTHOR_DIR "${ALPGEN_AUTHOR_DIR}")
diff --git a/cmake/FindCRMC.cmake b/cmake/FindCRMC.cmake
deleted file mode 100644
index a5ca3a181cd218755264fd4d1026eda34f4c8135..0000000000000000000000000000000000000000
--- a/cmake/FindCRMC.cmake
+++ /dev/null
@@ -1,44 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find CRMC
-# Defines:
-#
-#  CRMC_FOUND
-#  CRMC_HOME (not cached)
-#  CRMC_INCLUDE_DIR
-#  CRMC_INCLUDE_DIRS (not cached)
-#  CRMC_LIBRARY
-#  CRMC_LIBRARIES (not cached)
-#  CRMC_LIBRARY_DIRS (not cached)
-
-
-find_path(CRMC_INCLUDE_DIR CRMCconfig.h
-          HINTS $ENV{CRMC_ROOT_DIR}/src
-          PATH_SUFFIXES src)
-
-if(CRMC_INCLUDE_DIR)
-  get_filename_component(CRMC_HOME "${CRMC_INCLUDE_DIR}" DIRECTORY)
-  set(CRMC_INCLUDE_DIRS "${CRMC_INCLUDE_DIR}")
-  set(CRMC_LIBRARY_DIRS "${CRMC_HOME}/lib")
-  set(CRMC_LIBRARIES "${CRMC_LIBRARY_DIRS}/libCrmcBasic.so" "${CRMC_LIBRARY_DIRS}/libHepEvtDummy.so")
-  
-endif()
-
-mark_as_advanced(CRMC_INCLUDE_DIR)
-
-# handle the QUIETLY and REQUIRED arguments and set CRMC_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(CRMC DEFAULT_MSG CRMC_INCLUDE_DIR)
-
-mark_as_advanced(CRMC_FOUND)
-
-set(CRMC_ENVIRONMENT SET CRMC_TABS ${CRMC_HOME}/tabs)
diff --git a/cmake/FindHIJING.cmake b/cmake/FindHIJING.cmake
deleted file mode 100644
index 1a5037f37880c7971900721a00377224340fc052..0000000000000000000000000000000000000000
--- a/cmake/FindHIJING.cmake
+++ /dev/null
@@ -1,51 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find HIJING
-# Defines:
-#
-#  HIJING_FOUND
-#  HIJING_INCLUDE_DIR
-#  HIJING_INCLUDE_DIRS (not cached)
-#  HIJING_<component>_LIBRARY
-#  HIJING_<component>_FOUND
-#  HIJING_LIBRARIES (not cached)
-#  HIJING_LIBRARY_DIRS (not cached)
-
-# Enforce a minimal list if none is explicitly requested
-if(NOT HIJING_FIND_COMPONENTS)
-  set(HIJING_FIND_COMPONENTS hijing hijing_dummy)
-endif()
-
-foreach(component ${HIJING_FIND_COMPONENTS})
-  find_library(HIJING_${component}_LIBRARY NAMES ${component}
-               HINTS $ENV{HIJING_ROOT_DIR}/lib ${HIJING_ROOT_DIR}/lib)
-  if (HIJING_${component}_LIBRARY)
-    set(HIJING_${component}_FOUND 1)
-    list(APPEND HIJING_LIBRARIES ${HIJING_${component}_LIBRARY})
-
-    get_filename_component(libdir ${HIJING_${component}_LIBRARY} PATH)
-    list(APPEND HIJING_LIBRARY_DIRS ${libdir})
-  else()
-    set(HIJING_${component}_FOUND 0)
-  endif()
-  mark_as_advanced(HIJING_${component}_LIBRARY)
-endforeach()
-
-if(HIJING_LIBRARY_DIRS)
-  list(REMOVE_DUPLICATES HIJING_LIBRARY_DIRS)
-endif()
-
-# handle the QUIETLY and REQUIRED arguments and set HIJING_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(HIJING DEFAULT_MSG HIJING_LIBRARIES CMAKE_Fortran_COMPILER)
-
-mark_as_advanced(HIJING_FOUND)
diff --git a/cmake/FindHepMC3.cmake b/cmake/FindHepMC3.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..3e1c5f2e59b91a996e90d5c72012d521e7634f24
--- /dev/null
+++ b/cmake/FindHepMC3.cmake
@@ -0,0 +1,61 @@
+###############################################################################
+# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
+#                                                                             #
+# This software is distributed under the terms of the Apache License          #
+# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+# - Locate HepMC3 library
+# Defines:
+#  Variables:
+#   HepMC3_FOUND
+#   HepMC3_INCLUDE_DIR
+#   HepMC3_INCLUDE_DIRS (not cached)
+#   HepMC3_<component>_LIBRARY
+#   HepMC3_LIBRARIES (not cached)
+#   HepMC3_LIBRARY_DIRS (not cached)
+#  Targets:
+#   HepMC3::HepMC3 (default)
+#   HepMC3::HepMC3search
+
+if(NOT HepMC3_FIND_COMPONENTS)
+  set(HepMC3_FIND_COMPONENTS "HepMC3" "HepMC3search")
+endif()
+
+set(HepMC3_INCLUDE_DIR ${GAUSSINOEXTLIBS_PREFIX_DIR}/include)
+mark_as_advanced(HepMC3_INCLUDE_DIR)
+
+foreach(component IN LISTS HepMC3_FIND_COMPONENTS)
+  find_library(HepMC3_${component}_LIBRARY
+	       ${component}
+           PATHS ${GAUSSINOEXTLIBS_PREFIX_DIR}/lib)
+  mark_as_advanced(HepMC3_${component}_LIBRARY)
+  if(HepMC3_${component}_LIBRARY)
+    set(HepMC3_${component}_FOUND ${HepMC3_${component}_LIBRARY})
+    list(APPEND HepMC3_LIBRARIES ${HepMC3_${component}_LIBRARY})
+    get_filename_component(_comp_dir ${HepMC3_${component}_LIBRARY} DIRECTORY)
+    list(APPEND HepMC3_LIBRARY_DIRS ${_comp_dir})
+  endif()
+endforeach()
+
+# handle the QUIETLY and REQUIRED arguments and set HepMC_FOUND to TRUE if
+# all listed variables are TRUE
+INCLUDE(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(HepMC3
+  HANDLE_COMPONENTS
+  VERSION_VAR 0.1
+  REQUIRED_VARS HepMC3_INCLUDE_DIR HepMC3_LIBRARIES
+)
+
+foreach(component IN LISTS HepMC3_FIND_COMPONENTS)
+    if(NOT TARGET HepMC3::${component})
+    	add_library(HepMC3::${component} UNKNOWN IMPORTED)
+    	set_target_properties(HepMC3::${component} PROPERTIES IMPORTED_LOCATION ${HepMC3_${component}_LIBRARY})
+    	target_include_directories(HepMC3::${component} 
+	    SYSTEM INTERFACE "${GAUSSINOEXTLIBS_PREFIX_DIR}/include"
+	    "${GAUSSINOEXTLIBS_PREFIX_DIR}/share/HepMC3/interfaces")
+    endif()
+endforeach()
diff --git a/cmake/FindHerwig++.cmake b/cmake/FindHerwig++.cmake
deleted file mode 100644
index dfd61d6d097ea42457010b477dedc037612edfec..0000000000000000000000000000000000000000
--- a/cmake/FindHerwig++.cmake
+++ /dev/null
@@ -1,51 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find Herwig++
-# Defines:
-#
-#  HERWIG++_FOUND
-#  HERWIG++_EXECUTABLE
-#  HERWIG++_BINARY_PATH (not cached)
-#  HERWIG++_HOME (not cached)
-#  HERWIG++_INCLUDE_DIR
-#  HERWIG++_INCLUDE_DIRS (not cached)
-#  HERWIG++_LIBRARY_DIR
-#  HERWIG++_LIBRARY_DIRS (not cached)
-
-find_program(HERWIG++_EXECUTABLE Herwig++
-             HINTS ${HERWIG++_ROOT_DIR}/bin
-                   $ENV{HERWIGPP_ROOT_DIR}/bin
-                   ${HERWIGPP_ROOT_DIR}/bin)
-if(HERWIG++_EXECUTABLE)
-  get_filename_component(HERWIG++_BINARY_PATH ${HERWIG++_EXECUTABLE} PATH)
-endif()
-
-find_file(HERWIG++_INCLUDE_DIR Herwig++
-          HINTS ${HERWIG++_ROOT_DIR}/include
-                $ENV{HERWIGPP_ROOT_DIR}/include
-                ${HERWIGPP_ROOT_DIR}/include
-          PATH_SUFFIXES include)
-set(HERWIG++_INCLUDE_DIRS ${HERWIG++_INCLUDE_DIR})
-find_file(HERWIG++_LIBRARY_DIR Herwig++
-          HINTS ${HERWIG++_ROOT_DIR}/lib
-                $ENV{HERWIGPP_ROOT_DIR}/lib
-                ${HERWIGPP_ROOT_DIR}/lib
-          PATH_SUFFIXES lib)
-set(HERWIG++_LIBRARY_DIRS ${HERWIG++_LIBRARY_DIR})
- 
-mark_as_advanced(HERWIG++_EXECUTABLE HERWIG++_INCLUDE_DIR HERWIG++_LIBRARY_DIR HERWIG++_EXECUTABLE)
-
-# handle the QUIETLY and REQUIRED arguments and set HERWIG++_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Herwig++ DEFAULT_MSG HERWIG++_INCLUDE_DIR HERWIG++_LIBRARY_DIR)
-
-mark_as_advanced(HERWIG++_FOUND)
diff --git a/cmake/FindLHAPDF.cmake b/cmake/FindLHAPDF.cmake
deleted file mode 100644
index 9db74a98fed0873083fff4a48bc89feb67a4f6cc..0000000000000000000000000000000000000000
--- a/cmake/FindLHAPDF.cmake
+++ /dev/null
@@ -1,39 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find LHAPDF
-# Defines:
-#
-#  LHAPDF_FOUND
-#  LHAPDF_INCLUDE_DIR
-#  LHAPDF_INCLUDE_DIRS (not cached)
-#  LHAPDF_LIBRARY
-#  LHAPDF_LIBRARIES (not cached)
-#  LHAPDF_LIBRARY_DIRS (not cached)
-
-find_library(LHAPDF_LIBRARY NAMES LHAPDF
-             HINTS $ENV{LHAPDF_ROOT_DIR}/lib ${LHAPDF_ROOT_DIR}/lib)
-
-find_path(LHAPDF_INCLUDE_DIR LHAPDF/LHAPDF.h
-          HINTS $ENV{LHAPDF_ROOT_DIR}/include ${LHAPDF_ROOT_DIR}/include)
-
-mark_as_advanced(LHAPDF_INCLUDE_DIR LHAPDF_LIBRARY)
-
-# handle the QUIETLY and REQUIRED arguments and set LHAPDF_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(LHAPDF DEFAULT_MSG LHAPDF_INCLUDE_DIR LHAPDF_LIBRARY)
-
-set(LHAPDF_LIBRARIES ${LHAPDF_LIBRARY})
-get_filename_component(LHAPDF_LIBRARY_DIRS ${LHAPDF_LIBRARY} PATH)
-
-set(LHAPDF_INCLUDE_DIRS ${LHAPDF_INCLUDE_DIR})
-
-mark_as_advanced(LHAPDF_FOUND)
diff --git a/cmake/FindPOWHEG-BOX.cmake b/cmake/FindPOWHEG-BOX.cmake
deleted file mode 100644
index 7d073cfcfb35bb94a9a2cd68afe9e6ca29afc52b..0000000000000000000000000000000000000000
--- a/cmake/FindPOWHEG-BOX.cmake
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-#  Try to find POWHEG-BOX
-# Defines:
-#
-#  POWHEG-BOX_BINARY_PATH
-
-find_path(POWHEG-BOX_BINARY_PATH NAMES ZZ Dijet
-          HINTS ${powhegbox_home}/bin 
-          PATH_SUFFIXES bin)
-
-# handle the QUIETLY and REQUIRED arguments and set POWHEG-BOX_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(POWHEG-BOX DEFAULT_MSG POWHEG-BOX_BINARY_PATH)
-
-mark_as_advanced(POWHEG-BOX_FOUND)
diff --git a/cmake/FindPhotos++.cmake b/cmake/FindPhotos++.cmake
deleted file mode 100644
index 2095a0ecef12ccc39a24fb55d36af23129a203cb..0000000000000000000000000000000000000000
--- a/cmake/FindPhotos++.cmake
+++ /dev/null
@@ -1,62 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find Photos++
-# Defines:
-#
-#  PHOTOS++_FOUND
-#  PHOTOS++_INCLUDE_DIR
-#  PHOTOS++_INCLUDE_DIRS (not cached)
-#  PHOTOS++_<component>_LIBRARY
-#  PHOTOS++_<component>_FOUND
-#  PHOTOS++_LIBRARIES (not cached)
-#  PHOTOS++_LIBRARY_DIRS (not cached)
-
-# Enforce a minimal list if none is explicitly requested
-if(NOT PHOTOS++_FIND_COMPONENTS)
-  set(PHOTOS++_FIND_COMPONENTS Fortran CxxInterface  # versions <3.58
-                               pp HEPEVT ppHepMC)    # versions >=3.58
-endif()
-
-foreach(component ${PHOTOS++_FIND_COMPONENTS})
-  find_library(PHOTOS++_${component}_LIBRARY NAMES Photos${component}
-               HINTS ${PHOTOS++_ROOT_DIR}/lib
-                     $ENV{PHOTOSPP_ROOT_DIR}/lib
-                     ${PHOTOSPP_ROOT_DIR}/lib)
-  if (PHOTOS++_${component}_LIBRARY)
-    set(PHOTOS++_${component}_FOUND 1)
-    list(APPEND PHOTOS++_LIBRARIES ${PHOTOS++_${component}_LIBRARY})
-
-    get_filename_component(libdir ${PHOTOS++_${component}_LIBRARY} PATH)
-    list(APPEND PHOTOS++_LIBRARY_DIRS ${libdir})
-  else()
-    set(PHOTOS++_${component}_FOUND 0)
-  endif()
-  mark_as_advanced(PHOTOS++_${component}_LIBRARY)
-endforeach()
-
-if(PHOTOS++_LIBRARY_DIRS)
-  list(REMOVE_DUPLICATES PHOTOS++_LIBRARY_DIRS)
-endif()
-
-find_path(PHOTOS++_INCLUDE_DIR Photos/Photos.h
-          HINTS ${PHOTOS++_ROOT_DIR}/include
-                $ENV{PHOTOSPP_ROOT_DIR}/include
-                ${PHOTOSPP_ROOT_DIR}/include)
-
-set(PHOTOS++_INCLUDE_DIRS ${PHOTOS++_INCLUDE_DIR})
-mark_as_advanced(PHOTOS++_INCLUDE_DIR)
-
-# handle the QUIETLY and REQUIRED arguments and set PHOTOS++_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Photos++ DEFAULT_MSG PHOTOS++_INCLUDE_DIR PHOTOS++_LIBRARIES)
-
-mark_as_advanced(PHOTOS++_FOUND)
diff --git a/cmake/FindPythia6.cmake b/cmake/FindPythia6.cmake
deleted file mode 100644
index 1883764457efc7e60d0e507168817eb8cbb6bf9d..0000000000000000000000000000000000000000
--- a/cmake/FindPythia6.cmake
+++ /dev/null
@@ -1,56 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find Pythia6
-# Defines:
-#
-#  PYTHIA6_FOUND
-#  PYTHIA6_INCLUDE_DIR
-#  PYTHIA6_INCLUDE_DIRS (not cached)
-#  PYTHIA6_<component>_LIBRARY
-#  PYTHIA6_<component>_FOUND
-#  PYTHIA6_LIBRARIES (not cached)
-#  PYTHIA6_LIBRARY_DIRS (not cached)
-
-# Enforce a minimal list if none is explicitly requested
-if(NOT Pythia6_FIND_COMPONENTS)
-  set(Pythia6_FIND_COMPONENTS pythia6 pythia6_dummy)
-endif()
-
-foreach(component ${Pythia6_FIND_COMPONENTS})
-  find_library(PYTHIA6_${component}_LIBRARY NAMES ${component}
-               HINTS $ENV{PYTHIA6_ROOT_DIR}/lib ${PYTHIA6_ROOT_DIR}/lib)
-  if (PYTHIA6_${component}_LIBRARY)
-    set(PYTHIA6_${component}_FOUND 1)
-    list(APPEND PYTHIA6_LIBRARIES ${PYTHIA6_${component}_LIBRARY})
-
-    get_filename_component(libdir ${PYTHIA6_${component}_LIBRARY} PATH)
-    list(APPEND PYTHIA6_LIBRARY_DIRS ${libdir})
-  else()
-    set(PYTHIA6_${component}_FOUND 0)
-  endif()
-  mark_as_advanced(PYTHIA6_${component}_LIBRARY)
-endforeach()
-
-if(PYTHIA6_LIBRARY_DIRS)
-  list(REMOVE_DUPLICATES PYTHIA6_LIBRARY_DIRS)
-endif()
-
-find_path(PYTHIA6_INCLUDE_DIR general_pythia.inc
-          HINTS $ENV{PYTHIA6_ROOT_DIR}/include ${PYTHIA6_ROOT_DIR}/include)
-set(PYTHIA6_INCLUDE_DIRS ${PYTHIA6_INCLUDE_DIR})
-mark_as_advanced(PYTHIA6_INCLUDE_DIR)
-
-# handle the QUIETLY and REQUIRED arguments and set PYTHIA6_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Pythia6 DEFAULT_MSG PYTHIA6_INCLUDE_DIR PYTHIA6_LIBRARIES CMAKE_Fortran_COMPILER)
-
-mark_as_advanced(PYTHIA6_FOUND)
diff --git a/cmake/FindPythia8.cmake b/cmake/FindPythia8.cmake
index d485487d736372d9d51db75239f30e36b7065e16..477d83bf2840378a4fce110fff0c507d0623f901 100644
--- a/cmake/FindPythia8.cmake
+++ b/cmake/FindPythia8.cmake
@@ -71,3 +71,8 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(Pythia8 DEFAULT_MSG PYTHIA8_INCLUDE_DIR PYTHIA
 set(PYTHIA8_INCLUDE_DIRS ${PYTHIA8_INCLUDE_DIR})
 
 mark_as_advanced(PYTHIA8_FOUND)
+
+# FIXME: well-defined target
+add_library(Pythia8::Pythia8 UNKNOWN IMPORTED)
+set_target_properties(Pythia8::Pythia8 PROPERTIES IMPORTED_LOCATION ${PYTHIA8_LIBRARIES})
+target_include_directories(Pythia8::Pythia8 SYSTEM INTERFACE ${PYTHIA8_INCLUDE_DIR})
diff --git a/cmake/FindRivet.cmake b/cmake/FindRivet.cmake
deleted file mode 100644
index 0610aadc239696b7282f0249114219b083a4830b..0000000000000000000000000000000000000000
--- a/cmake/FindRivet.cmake
+++ /dev/null
@@ -1,42 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find Rivet
-# Defines:
-#
-#  RIVET_FOUND
-#  RIVET_INCLUDE_DIR
-#  RIVET_INCLUDE_DIRS (not cached)
-#  RIVET_LIBRARY
-#  RIVET_LIBRARIES (not cached)
-#  RIVET_LIBRARY_DIRS (not cached)
-
-find_library(RIVET_LIBRARY NAMES Rivet)
-
-find_path(RIVET_INCLUDE_DIR Rivet/Rivet.hh)
-
-find_program(RIVET_EXECUTABLE NAMES rivet)
-find_program(RIVET_buildplugin_EXECUTABLE NAMES rivet-buildplugin)
-
-mark_as_advanced(RIVET_INCLUDE_DIR RIVET_LIBRARY RIVET_EXECUTABLE RIVET_buildplugin_EXECUTABLE)
-
-# handle the QUIETLY and REQUIRED arguments and set Rivet_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Rivet DEFAULT_MSG RIVET_INCLUDE_DIR RIVET_LIBRARY RIVET_EXECUTABLE RIVET_buildplugin_EXECUTABLE)
-
-set(RIVET_LIBRARIES ${RIVET_LIBRARY})
-get_filename_component(RIVET_LIBRARY_DIRS ${RIVET_LIBRARY} PATH)
-
-set(RIVET_INCLUDE_DIRS ${RIVET_INCLUDE_DIR})
-
-get_filename_component(RIVET_BINARY_PATH ${RIVET_EXECUTABLE} PATH)
-
-mark_as_advanced(Rivet_FOUND)
diff --git a/cmake/FindTauola++.cmake b/cmake/FindTauola++.cmake
deleted file mode 100644
index 33eccf9c25c78a6cb60821bab791f38e26dc6a51..0000000000000000000000000000000000000000
--- a/cmake/FindTauola++.cmake
+++ /dev/null
@@ -1,63 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find Tauola++
-# Defines:
-#
-#  TAUOLA++_FOUND
-#  TAUOLA++_INCLUDE_DIR
-#  TAUOLA++_INCLUDE_DIRS (not cached)
-#  TAUOLA++_<component>_LIBRARY
-#  TAUOLA++_<component>_FOUND
-#  TAUOLA++_LIBRARIES (not cached)
-#  TAUOLA++_LIBRARY_DIRS (not cached)
-
-# Enforce a minimal list if none is explicitly requested
-if(NOT Tauola++_FIND_COMPONENTS)
-  set(Tauola++_FIND_COMPONENTS Fortran CxxInterface)
-endif()
-
-#message(STATUS "Tauola++ CMAKE_PREFIX_PATH")
-#foreach(_x ${CMAKE_PREFIX_PATH})
-#  message(STATUS "Tauola++ -- ${_x}")
-#endforeach()
-
-foreach(component ${Tauola++_FIND_COMPONENTS})
-  find_library(TAUOLA++_${component}_LIBRARY NAMES Tauola${component}
-               HINTS ${TAUOLA++_ROOT_DIR}/lib
-                     $ENV{TAUOLAPP_ROOT_DIR}/lib ${TAUOLAPP_ROOT_DIR}/lib)
-  if (TAUOLA++_${component}_LIBRARY)
-    set(TAUOLA++_${component}_FOUND 1)
-    list(APPEND TAUOLA++_LIBRARIES ${TAUOLA++_${component}_LIBRARY})
-
-    get_filename_component(libdir ${TAUOLA++_${component}_LIBRARY} PATH)
-    list(APPEND TAUOLA++_LIBRARY_DIRS ${libdir})
-  else()
-    set(TAUOLA++_${component}_FOUND 0)
-  endif()
-  mark_as_advanced(TAUOLA++_${component}_LIBRARY)
-endforeach()
-
-if(TAUOLA++_LIBRARY_DIRS)
-  list(REMOVE_DUPLICATES TAUOLA++_LIBRARY_DIRS)
-endif()
-
-find_path(TAUOLA++_INCLUDE_DIR Tauola/Tauola.h
-          HINTS ${TAUOLA++_ROOT_DIR}/include
-                $ENV{TAUOLAPP_ROOT_DIR}/include ${TAUOLAPP_ROOT_DIR}/include)
-set(TAUOLA++_INCLUDE_DIRS ${TAUOLA++_INCLUDE_DIR})
-mark_as_advanced(TAUOLA++_INCLUDE_DIR)
-
-# handle the QUIETLY and REQUIRED arguments and set TAUOLA++_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Tauola++ DEFAULT_MSG TAUOLA++_INCLUDE_DIR TAUOLA++_LIBRARIES)
-
-mark_as_advanced(TAUOLA++_FOUND)
diff --git a/cmake/FindThePEG.cmake b/cmake/FindThePEG.cmake
deleted file mode 100644
index c1a4e440f36561ebc387fa7263faaefff3db5e22..0000000000000000000000000000000000000000
--- a/cmake/FindThePEG.cmake
+++ /dev/null
@@ -1,40 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find ThePEG
-# Defines:
-#
-#  THEPEG_FOUND
-#  THEPEG_INCLUDE_DIR
-#  THEPEG_INCLUDE_DIRS (not cached)
-#  THEPEG_LIBRARY
-#  THEPEG_LIBRARIES (not cached)
-#  THEPEG_LIBRARY_DIRS (not cached)
-
-find_path(THEPEG_INCLUDE_DIR ThePEG/Config/ThePEG.h
-          HINTS $ENV{THEPEG_ROOT_DIR}/include ${THEPEG_ROOT_DIR}/include)
-
-find_library(THEPEG_LIBRARY NAMES ThePEG
-             HINTS $ENV{THEPEG_ROOT_DIR}/lib ${THEPEG_ROOT_DIR}/lib
-             PATH_SUFFIXES ThePEG)
-
-mark_as_advanced(THEPEG_INCLUDE_DIR THEPEG_LIBRARY)
-
-# handle the QUIETLY and REQUIRED arguments and set ThePEG_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(ThePEG DEFAULT_MSG THEPEG_INCLUDE_DIR THEPEG_LIBRARY)
-
-mark_as_advanced(THEPEG_FOUND)
-
-set(THEPEG_LIBRARIES ${THEPEG_LIBRARY})
-get_filename_component(THEPEG_LIBRARY_DIRS ${THEPEG_LIBRARY} PATH)
-
-set(THEPEG_INCLUDE_DIRS ${THEPEG_INCLUDE_DIR})
diff --git a/cmake/FindYODA.cmake b/cmake/FindYODA.cmake
deleted file mode 100644
index 6e3f042f8033336db1b749100841fa7c97c2323e..0000000000000000000000000000000000000000
--- a/cmake/FindYODA.cmake
+++ /dev/null
@@ -1,43 +0,0 @@
-###############################################################################
-# (c) Copyright 2021 CERN for the benefit of the LHCb and FCC Collaborations  #
-#                                                                             #
-# This software is distributed under the terms of the Apache License          #
-# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-# - Try to find YODA
-# Defines:
-#
-#  YODA_FOUND
-#  YODA_HOME (not cached)
-#  YODA_INCLUDE_DIRS (not cached)
-#  YODA_LIBRARY
-#  YODA_LIBRARIES (not cached)
-#  YODA_LIBRARY_DIRS (not cached)
-
-
-find_library(YODA_LIBRARY YODA
-             HINTS $ENV{YODA_ROOT_DIR}/lib)
-
-if(YODA_LIBRARY)
-  get_filename_component(YODA_LIBRARY_DIRS "${YODA_LIBRARY}" DIRECTORY)
-  get_filename_component(YODA_HOME "${YODA_LIBRARY_DIRS}" DIRECTORY)
-  set(YODA_INCLUDE_DIRS "${YODA_HOME}/include")
-  set(YODA_LIBRARIES "${YODA_LIBRARY}")
-  
-endif()
-
-mark_as_advanced(YODA_LIBRARY)
-
-# handle the QUIETLY and REQUIRED arguments and set YODA_FOUND to TRUE if
-# all listed variables are TRUE
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(YODA DEFAULT_MSG YODA_LIBRARY)
-
-mark_as_advanced(YODA_FOUND)
-
-set(YODA_PYTHON_PATH ${YODA_HOME}/lib/python${Python_config_version_twodigit}/site-packages)
-set(YODA_BINARY_PATH ${YODA_HOME}/bin)
diff --git a/cmake/GaussinoConfig.cmake.in b/cmake/GaussinoConfig.cmake.in
new file mode 100644
index 0000000000000000000000000000000000000000..105ef0b49cbfdc8fdb796406662104dbdbabd226
--- /dev/null
+++ b/cmake/GaussinoConfig.cmake.in
@@ -0,0 +1,41 @@
+cmake_policy(PUSH)
+cmake_policy(VERSION 3.15)
+
+@PACKAGE_INIT@
+
+set(@PROJECT_NAME_UPCASE@_PREFIX_DIR "${PACKAGE_PREFIX_DIR}")
+
+if(PACKAGE_PREFIX_DIR MATCHES "/InstallArea/")
+    get_filename_component(@PROJECT_NAME_UPCASE@_PROJECT_ROOT "${PACKAGE_PREFIX_DIR}/../.." ABSOLUTE)
+else()
+    set(@PROJECT_NAME_UPCASE@_PROJECT_ROOT "${PACKAGE_PREFIX_DIR}")
+endif()
+@CONFIG_OPTIONS@
+list(PREPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
+include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Dependencies.cmake)
+@CONFIG_IMPORT_TARGETS@
+# environment
+gaussino_env(@ENVIRONMENT@)
+
+if(NOT TARGET target_runtime_paths)
+    add_custom_target(target_runtime_paths)
+endif()
+if(EXISTS "${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/bin")
+    _gaudi_runtime_prepend(path ${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/bin)
+endif()
+if(EXISTS "${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/lib")
+    _gaudi_runtime_prepend(ld_library_path ${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/lib)
+endif()
+if(EXISTS "${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/python")
+    _gaudi_runtime_prepend(pythonpath ${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/python)
+endif()
+if(EXISTS "${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/include")
+    _gaudi_runtime_prepend(root_include_path ${@PROJECT_NAME_UPCASE@_PREFIX_DIR}/include)
+endif()
+
+if(NOT @PROJECT_NAME@_FIND_QUIETLY)
+    message(STATUS "Found @PROJECT_NAME@: ${CMAKE_CURRENT_LIST_DIR} (found version @PROJECT_VERSION@)")
+endif()
+
+cmake_policy(POP)
+
diff --git a/cmake/GaussinoConfigUtils.cmake b/cmake/GaussinoConfigUtils.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..1b9070a278c7e157079b7aaaecdcfaf9e9a0a208
--- /dev/null
+++ b/cmake/GaussinoConfigUtils.cmake
@@ -0,0 +1,309 @@
+###############################################################################
+# (c) Copyright 2022 CERN for the benefit of the LHCb and FCC Collaborations  #
+#                                                                             #
+# This software is distributed under the terms of the Apache License          #
+# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+
+
+# copied & modified from LHCbConfigUtils.cmake
+set(GAUSSINO_UNUSED_SUBDIR_MESSAGE_TYPE "WARNING"
+    CACHE STRING "Message type for detected unused subdirs")
+# copied & modified from LHCbConfigUtils.cmake
+set(GAUSSINO_UNUSED_SOURCE_MESSAGE_TYPE "WARNING"
+    CACHE STRING "Message type for detected unused source files")
+
+
+function(gaussino_env)
+    # copied & modified from lhcb_env in LHCbConfigUtils.cmake
+    message(DEBUG "gaussino_env(${ARGV})")
+    if(ARGC GREATER 0 AND ARGV0 STREQUAL "PRIVATE")
+        # drop the flag and do not propagate the change downstream
+        list(REMOVE_AT ARGV 0)
+    else()
+        # not PRIVATE, so propagate the change downstream
+        set_property(GLOBAL APPEND PROPERTY ${PROJECT_NAME}_ENVIRONMENT ${ARGV})
+    endif()
+    if(NOT TARGET target_runtime_paths)
+        # this usually means we are not using GaudiToolbox.cmake, like in old
+        # style projects
+        return()
+    endif()
+    while(ARGV)
+        list(POP_FRONT ARGV action variable value)
+        if(action STREQUAL "SET")
+            set_property(TARGET target_runtime_paths APPEND_STRING
+                PROPERTY extra_commands "export ${variable}=${value}\n")
+        elseif(action STREQUAL "PREPEND")
+            set_property(TARGET target_runtime_paths APPEND_STRING
+                PROPERTY extra_commands "export ${variable}=${value}:\$${variable}\n")
+        elseif(action STREQUAL "APPEND")
+            set_property(TARGET target_runtime_paths APPEND_STRING
+                PROPERTY extra_commands "export ${variable}=\$${variable}:${value}\n")
+        elseif(action STREQUAL "DEFAULT")
+            set_property(TARGET target_runtime_paths APPEND_STRING
+                PROPERTY extra_commands "export ${variable}=\${${variable}:-${value}}\n")
+        else()
+            message(FATAL_ERROR "invalid environment action ${action}")
+        endif()
+    endwhile()
+endfunction()
+
+macro(gaussino_add_subdirectories)
+    # copied & modified from lhcb_add_subdirectories in LHCbConfigUtils.cmake
+    message(STATUS "Adding ${ARGC} subdirectories:")
+    set(gaussino_add_subdirectories_index 0)
+    foreach(subdir IN ITEMS ${ARGN})
+        math(EXPR gaussino_add_subdirectories_index "${gaussino_add_subdirectories_index} + 1")
+        math(EXPR gaussino_add_subdirectories_progress "${gaussino_add_subdirectories_index} * 100 / ${ARGC}")
+        if(gaussino_add_subdirectories_progress LESS 10)
+            set(gaussino_add_subdirectories_progress "  ${gaussino_add_subdirectories_progress}")
+        elseif(gaussino_add_subdirectories_progress LESS 100)
+            set(gaussino_add_subdirectories_progress " ${gaussino_add_subdirectories_progress}")
+        endif()
+        message(STATUS "    (${gaussino_add_subdirectories_progress}%) ${subdir}")
+        add_subdirectory(${subdir})
+        string(TOUPPER "${subdir}ROOT" root_var)
+        string(REGEX REPLACE ".*/" "" root_var "${root_var}")
+        gaussino_env(SET "${root_var}" "${CMAKE_CURRENT_SOURCE_DIR}/${subdir}")
+    endforeach()
+endmacro()
+
+function(gaussino_initialize_configuration)
+    # copied & modified from lhcb_env in LHCbConfigUtils.cmake
+
+    # Optionally enable compatibility with old-style CMake configurations, via helper module
+    option(GAUDI_LEGACY_CMAKE_SUPPORT "Enable compatibility with old-style CMake builds" "$ENV{GAUDI_LEGACY_CMAKE_SUPPORT}")
+
+    # default install prefix when building in legacy mode
+    # note: this doplicates a bit of code in LegacyGaudiCMakeSupport.cmake, but we need to set CMAKE_INSTALL_PREFIX
+    #       before we use it later in this macro (and before we can include LegacyGaudiCMakeSupport.cmake)
+    if(GAUDI_LEGACY_CMAKE_SUPPORT)
+        # make sure we have a BINARY_TAG CMake variable set
+        if(NOT BINARY_TAG)
+            if(NOT "$ENV{BINARY_TAG}" STREQUAL "")
+                set(BINARY_TAG $ENV{BINARY_TAG})
+            elseif(LHCB_PLATFORM)
+                set(BINARY_TAG ${LHCB_PLATFORM})
+            else()
+                message(AUTHOR_WARNING "BINARY_TAG not set")
+            endif()
+        endif()
+
+        if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+            set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/InstallArea/${BINARY_TAG}"
+                CACHE PATH "Install prefix" FORCE)
+        endif()
+    endif()
+
+    # environment for the project
+    gaussino_env(PREPEND PATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
+    gaussino_env(PREPEND LD_LIBRARY_PATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
+    if(NOT CMAKE_INSTALL_LIBDIR STREQUAL GAUDI_INSTALL_PLUGINDIR)
+        gaussino_env(PREPEND LD_LIBRARY_PATH "${CMAKE_INSTALL_PREFIX}/${GAUDI_INSTALL_PLUGINDIR}")
+    endif()
+    gaussino_env(PREPEND PYTHONPATH "${CMAKE_INSTALL_PREFIX}/${GAUDI_INSTALL_PYTHONDIR}")
+    gaussino_env(PREPEND ROOT_INCLUDE_PATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
+
+    # override GaudiToolbox internal macro to use gaussino_env
+    macro(_gaudi_runtime_prepend runtime value)
+        string(TOUPPER "${runtime}" _runtime_var)
+        gaussino_env(PRIVATE PREPEND "${_runtime_var}" "${value}")
+    endmacro()
+endfunction()
+
+function(gaussino_finalize_configuration)
+    # copied & modified from gaussino_finalize_configuration in LHCbConfigUtils.cmake
+    # environment for data packages
+    get_property(data_packages_found GLOBAL PROPERTY DATA_PACKAGES_FOUND)
+    foreach(data_package IN LISTS data_packages_found)
+        if(data_package MATCHES "^([^:]*):(.*)\$")
+            set(data_package ${CMAKE_MATCH_1})
+        endif()
+        string(TOUPPER "${data_package}" DP_NAME)
+        string(REGEX REPLACE ".*/" "" DP_NAME "${DP_NAME}")
+        gaussino_env(PRIVATE DEFAULT "${DP_NAME}ROOT" "${${data_package}_ROOT_DIR}")
+        if(IS_DIRECTORY "${${data_package}_ROOT_DIR}/options")
+            gaussino_env(PRIVATE SET "${DP_NAME}OPTS" "\${${DP_NAME}ROOT}/options")
+            string(APPEND datapkg_env "export ${DP_NAME}OPTS=${${data_package}_ROOT_DIR}/options\n")
+        endif()
+        if(IS_DIRECTORY "${${data_package}_ROOT_DIR}/python")
+            gaussino_env(PRIVATE PREPEND "PYTHONPATH" "\${${DP_NAME}ROOT}/python")
+        endif()
+    endforeach()
+
+    # environment used by lbexec
+    gaussino_env(PRIVATE DEFAULT "GAUDIAPPNAME" "${CMAKE_PROJECT_NAME}")
+    gaussino_env(PRIVATE DEFAULT "GAUDIAPPVERSION" "${CMAKE_PROJECT_VERSION}")
+
+    set_property(TARGET target_runtime_paths APPEND_STRING
+        PROPERTY extra_commands "# remove duplicates\neval $(python3 -c \"import os; print(*('export {}={} ;'.format(n, ':'.join(dict.fromkeys(os.environ.get(n,'').split(':')))) for n in ('PATH','PYTHONPATH','LD_LIBRARY_PATH','ROOT_INCLUDE_PATH')),sep='\\n')\")\n")
+
+    include(CMakePackageConfigHelpers)
+    # special variables needed in the config file
+    string(TOUPPER "${PROJECT_NAME}" PROJECT_NAME_UPCASE)
+    get_property(packages_found GLOBAL PROPERTY PACKAGES_FOUND)
+    get_property(ENVIRONMENT GLOBAL PROPERTY ${PROJECT_NAME}_ENVIRONMENT)
+    string(REPLACE "${PROJECT_SOURCE_DIR}" "\${${PROJECT_NAME_UPCASE}_PROJECT_ROOT}"
+        ENVIRONMENT "${ENVIRONMENT}")
+    foreach(pack IN LISTS packages_found)
+        string(TOUPPER "${pack}" PROJ)
+        if(DEFINED ${PROJ}_PROJECT_ROOT)
+            string(REPLACE "${${PROJ}_PROJECT_ROOT}" "\${${PROJ}_PROJECT_ROOT}"
+                ENVIRONMENT "${ENVIRONMENT}")
+        endif()
+    endforeach()
+    #  record "persistent options" for downstream projects
+    set(CONFIG_OPTIONS "")
+    foreach(option IN LISTS ${PROJECT_NAME}_PERSISTENT_OPTIONS)
+        if(DEFINED ${option})
+            string(APPEND CONFIG_OPTIONS "set(${option} ${${option}} CACHE BOOL \"value used at compile time for ${option}\" FORCE)\n")
+        endif()
+    endforeach()
+    if(CONFIG_OPTIONS) # this is just to make the generated file nicer
+        string(PREPEND CONFIG_OPTIONS "\n# Options used when compiling\n")
+    endif()
+    #  record versions of upstream LHCb projects
+    set(DEPS_VERSIONS "")
+    foreach(pack IN LISTS packages_found)
+        # we want to record the versions of projects with /InstallArea/
+        # as we usually have multiple versions available in the search path
+        # and we want to pick up the same version that was used during the build
+        if("${${pack}_DIR}${${pack}_ROOT_DIR}" MATCHES "/InstallArea/" AND "${${pack}_VERSION}" MATCHES "^[0-9.]+$")
+            string(APPEND DEPS_VERSIONS
+                "if(NOT DEFINED ${pack}_EXACT_VERSION)\n"
+                "    set(${pack}_EXACT_VERSION ${${pack}_VERSION} CACHE STRING \"Version of ${pack} used in upstream builds\")\n"
+                "    mark_as_advanced(${pack}_EXACT_VERSION)\n"
+                "elseif(NOT ${pack}_EXACT_VERSION STREQUAL \"${${pack}_VERSION}\")\n"
+                "    message(WARNING \"Requested version of ${pack} (\${${pack}_EXACT_VERSION}) differs from that used for build (${${pack}_VERSION})\")\n"
+                "endif()\n")
+        endif()
+    endforeach()
+    if(DEPS_VERSIONS)
+        string(APPEND CONFIG_OPTIONS "\n# Versions of upstream projects used for the build\n${DEPS_VERSIONS}")
+    endif()
+
+    if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND NOT "${ARGV0}" STREQUAL "NO_EXPORT")
+        # install exports only if we are a master project we were not given the "NO_EXPORT" option
+        install(EXPORT ${PROJECT_NAME} NAMESPACE ${PROJECT_NAME}::
+            FILE "${PROJECT_NAME}Targets.cmake"
+            DESTINATION "${GAUDI_INSTALL_CONFIGDIR}")
+        set(CONFIG_IMPORT_TARGETS "include(\${CMAKE_CURRENT_LIST_DIR}/${PROJECT_NAME}Targets.cmake)\n")
+    endif()
+
+    # generate config files
+    configure_package_config_file(
+        ${PROJECT_SOURCE_DIR}/cmake/GaussinoConfig.cmake.in ${PROJECT_NAME}Config.cmake
+        INSTALL_DESTINATION "${GAUDI_INSTALL_CONFIGDIR}"
+        PATH_VARS
+            CMAKE_INSTALL_BINDIR
+            CMAKE_INSTALL_LIBDIR
+            CMAKE_INSTALL_INCLUDEDIR
+            GAUDI_INSTALL_PLUGINDIR
+            GAUDI_INSTALL_PYTHONDIR
+        NO_CHECK_REQUIRED_COMPONENTS_MACRO
+    )
+    write_basic_package_version_file(${PROJECT_NAME}ConfigVersion.cmake
+        COMPATIBILITY AnyNewerVersion)
+
+    gaudi_generate_version_header_file()
+
+    gaudi_install(CMAKE
+        cmake/${PROJECT_NAME}Dependencies.cmake
+        "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+        "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
+    )
+    if(EXISTS lhcbproject.yml)
+        gaudi_install(CMAKE lhcbproject.yml)
+    endif()
+
+    # check that we actually build everything in the project
+    # - check all subdirs are included (except for those listed in GAUSSINO_IGNORE_SUBDIRS)
+    get_property(added_subdirs DIRECTORY PROPERTY SUBDIRECTORIES)
+    file(GLOB_RECURSE detected_subdirs "*/CMakeLists.txt")
+    if(detected_subdirs)
+        set(missed_subdirs)
+        list(TRANSFORM detected_subdirs REPLACE "/CMakeLists.txt" "")
+        list(SORT detected_subdirs)
+        foreach(subdir IN LISTS detected_subdirs)
+            list(FIND added_subdirs ${subdir} idx)
+            if(idx STREQUAL "-1" AND NOT subdir MATCHES "^${CMAKE_BINARY_DIR}/.*")
+                file(GLOB subdir RELATIVE "${PROJECT_SOURCE_DIR}" ${subdir})
+                list(APPEND missed_subdirs ${subdir})
+            endif()
+        endforeach()
+        if(missed_subdirs AND GAUSSINO_IGNORE_SUBDIRS)
+            list(REMOVE_ITEM missed_subdirs ${GAUSSINO_IGNORE_SUBDIRS})
+        endif()
+        if(missed_subdirs)
+            list(JOIN missed_subdirs "\n - " missed_subdirs)
+            message(${GAUSSINO_UNUSED_SUBDIR_MESSAGE_TYPE}
+                "Project ${PROJECT_NAME} contains subdirectories that are not used:\n - ${missed_subdirs}\n")
+        endif()
+    endif()
+    # - check for all files (*.cpp and *.cxx in source directories)
+    if(NOT GAUSSINO_UNUSED_SOURCE_MESSAGE_TYPE STREQUAL "IGNORE")
+        # for each directory (including the top one) we get the targets and for
+        # each target we get the source files excluding absolute paths
+        # (which means also those in the build directory), then we prefix the subdir
+        # path
+        set(used_sources)
+        list(PREPEND added_subdirs ${PROJECT_SOURCE_DIR})
+        foreach(subdir IN LISTS added_subdirs)
+            get_property(targets DIRECTORY ${subdir} PROPERTY BUILDSYSTEM_TARGETS)
+            foreach(target IN LISTS targets)
+                get_target_property(target_type ${target} TYPE)
+                if(target_type STREQUAL "INTERFACE_LIBRARY" AND CMAKE_VERSION VERSION_LESS "3.19")
+                    continue()  # sources for interface libraries were introduced only in cmake 3.19
+                endif()
+                get_target_property(sources ${target} SOURCES)
+                list(FILTER sources EXCLUDE REGEX "^/")
+                list(TRANSFORM sources PREPEND "${subdir}/")
+                list(APPEND used_sources ${sources})
+            endforeach()
+        endforeach()
+        list(REMOVE_DUPLICATES used_sources)
+        # from the list of of source files we guess the directories meant to contain
+        # source files
+        list(TRANSFORM used_sources REPLACE "/[^/]*$" ""
+            OUTPUT_VARIABLE source_dirs)
+        list(REMOVE_DUPLICATES source_dirs)
+        # and we look for all *.cpp and *.cxx files in these directories
+        list(TRANSFORM source_dirs APPEND "/*.cpp" OUTPUT_VARIABLE source_cpp_globs)
+        list(TRANSFORM source_dirs APPEND "/*.cxx" OUTPUT_VARIABLE source_cxx_globs)
+        file(GLOB all_sources ${source_cpp_globs} ${source_cxx_globs})
+        # check if they are all used
+        set(missed_sources)
+        foreach(src IN LISTS all_sources)
+            list(FIND used_sources ${src} idx)
+            if(idx STREQUAL "-1")
+                file(GLOB src RELATIVE "${PROJECT_SOURCE_DIR}" ${src})
+                list(APPEND missed_sources ${src})
+            endif()
+        endforeach()
+        # and report any missing file
+        if(missed_sources)
+            list(JOIN missed_sources "\n - " missed_sources)
+            message(${GAUSSINO_UNUSED_SOURCE_MESSAGE_TYPE}
+                "Project ${PROJECT_NAME} contains source files which are not used in any target:\n - ${missed_sources}\n")
+        endif()
+    endif()
+
+
+    # Set the version of the project as a cache variable to be seen by other
+    # projects in the same super-project.
+    set(${PROJECT_NAME}_VERSION "${PROJECT_VERSION}" CACHE STRING "Version of ${PROJECT_NAME}" FORCE)
+
+    if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND GAUDI_LEGACY_CMAKE_SUPPORT)
+        find_file(legacy_cmake_config_support NAMES LegacyGaudiCMakeSupport.cmake)
+        if(legacy_cmake_config_support)
+            include(${legacy_cmake_config_support})
+        else()
+            message(FATAL_ERROR "GAUDI_LEGACY_CMAKE_SUPPORT set to TRUE, but cannot find LegacyGaudiCMakeSupport.cmake")
+        endif()
+    endif()
+endfunction()
diff --git a/cmake/GaussinoDependencies.cmake b/cmake/GaussinoDependencies.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..08d0f00935ff2a18f80dfd55a9aac6a7145b0825
--- /dev/null
+++ b/cmake/GaussinoDependencies.cmake
@@ -0,0 +1,59 @@
+###############################################################################
+# (c) Copyright 2022 CERN for the benefit of the LHCb and FCC Collaborations  #
+#                                                                             #
+# This software is distributed under the terms of the Apache License          #
+# version 2 (Apache-2.0), copied verbatim in the file "COPYING".              #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+include(${CMAKE_CURRENT_LIST_DIR}/GaussinoConfigUtils.cmake)
+
+# TODO: [LHCb DEPENDENCY]
+if(NOT COMMAND lhcb_find_package)
+  # Look for LHCb find_package wrapper
+  find_file(LHCbFindPackage_FILE LHCbFindPackage.cmake)
+  if(LHCbFindPackage_FILE)
+      include(${LHCbFindPackage_FILE})
+  else()
+      # if not found, use the standard find_package
+      macro(lhcb_find_package)
+          find_package(${ARGV})
+      endmacro()
+  endif()
+endif()
+
+# -- Public dependencies
+lhcb_find_package(GaussinoExtLibs REQUIRED) # TODO: [NEW CMAKE] temporary project
+
+if(Geant4_FOUND)
+    get_cmake_property(variables VARIABLES)
+    foreach(var ${variables})
+	string(REGEX MATCH "Geant4_DATASET_([A-Za-z0-9]+)_ENVVAR" _ ${var})
+	if(NOT CMAKE_MATCH_1 STREQUAL "")
+	    # copy the Geant4Data variables using GaudiToolbox.cmake
+	    lhcb_env(SET ${Geant4_DATASET_${CMAKE_MATCH_1}_ENVVAR} ${Geant4_DATASET_${CMAKE_MATCH_1}_PATH})
+	endif()
+    endforeach()
+endif()
+
+find_package(HepMC3 REQUIRED)
+find_package(Pythia8 REQUIRED)
+
+if(USE_DD4HEP)
+    set(CMAKE_CXX_STANDARD ${GAUDI_CXX_STANDARD})
+    find_package(DD4hep REQUIRED DDCore)
+    find_package(DD4hepDDG4 
+	REQUIRED 
+	PATHS ${GAUSSINOEXTLIBS_PREFIX_DIR}/cmake
+       	NO_DEFAULT_PATH
+    )
+endif()
+
+# -- Private dependencies
+if(WITH_Gaussino_PRIVATE_DEPENDENCIES)
+    if(BUILD_TESTING)
+        find_package(Boost REQUIRED unit_test_framework)
+    endif()
+endif()
diff --git a/docs/conf.py b/docs/conf.py
index 08c20735870608bad155e5196cebd26828f7da33..9138aa28f35a78f88e6fc0b1a629454c7207d7c4 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -10,14 +10,14 @@
 # add these directories to sys.path here. If the directory is relative to the
 # documentation root, use os.path.abspath to make it absolute, like shown here.
 #
-# import os
+import os
 # import sys
 # sys.path.insert(0, os.path.abspath('.'))
 
 # -- Project information -----------------------------------------------------
 
 project = 'Gaussino'
-copyright = '2021, LHCb Collaboration'
+copyright = '2017-2022, CERN for the benefit of the LHCb and FCC collaborations'
 author = 'LHCb Collaboration'
 
 # The full version, including alpha/beta/rc tags
@@ -55,6 +55,13 @@ master_doc = 'index'
 #
 html_theme = 'sphinx_rtd_theme'
 
+html_logo = 'images/gaussino_logo.png'
+
+html_theme_options = {
+    'logo_only': True,
+    'style_nav_header_background': '#343131',
+}
+
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
@@ -76,19 +83,16 @@ napoleon_numpy_docstring = True
 # -- Custom Versioning settings -----------------------------------------------
 # Implemented manually as READTHEDOCS handle them once already hosted
 
-website_root = 'gaussino'
 html_context['display_lower_left'] = True
 
 # visible versions
 versions = [
     'master',
     'v0r1',
+    'FASTSIM',
 ]
 
-# from git import Repo
-# repo = Repo(search_parent_directories=True)
-# current_version = repo.active_branch.name
-current_version = 'master'
+current_version = os.getenv("DOCS_VERSION", "master")
 
 # tell the theme which version we're currently on ('current_version' affects
 # the lower-left rtd menu and 'version' affects the logo-area version)
@@ -98,9 +102,11 @@ html_context['version'] = current_version
 # POPULATE LINKS TO OTHER VERSIONS
 html_context['versions'] = list()
 
+# Auto-generated header anchors
+myst_heading_anchors = 3
+
 for version in versions:
-    html_context['versions'].append((version,
-                                     '/' + website_root + '/' + version + '/'))
+    html_context['versions'].append((version, '/' + version + '/'))
 
 from importlib import import_module
 from pprint import pformat
diff --git a/docs/configuration/gdml.md b/docs/configuration/gdml.md
new file mode 100644
index 0000000000000000000000000000000000000000..f4533141cd020b1dce6bde272a79708770008713
--- /dev/null
+++ b/docs/configuration/gdml.md
@@ -0,0 +1,84 @@
+
+# Handling GDML files
+
+Handling of GDML files is performed via the `SimPhase()` configurable (this might change in the nearest future).
+
+## GDML import
+
+If you wish to import the logical volumes from the GDML file you have to provide all the necessary options in the `ImportGDML` property of `SimPhase`. All the imported volumes will be embedded in a `G4Assembly` that can be translated and rotated with respect to the existing world. For example:
+
+```python
+from Gaudi.Configuration import DEBUG
+from GaudiKernel.SystemOfUnits import m, deg
+from Gaussino.Simulation import SimPhase
+SimPhase().ImportGDML = [
+    {
+        "GDMLFileName": "path_to_your_gdml_file_1.gdml",
+        "OutputLevel": DEBUG,
+        "GDMLTranslationX": 10. * mm,
+        "GDMLRotationX": 45. * deg,
+    },
+    {
+        "GDMLFileName": "path_to_your_gdml_file_2.gdml",
+        "OutputLevel": DEBUG,
+    },
+]
+```
+
+It will import the volumes from the two files: `path_to_your_gdml_file_1.gdml` and `path_to_your_gdml_file_2.gdml`. Volumes from the first files will be embedded in a rotated and translated assembly.
+
+
+### Making the imported volumes sensitive
+
+The sensitve detector classes have to be added manually to the imported sensitive volumes. Below you will find an example of how to add a generic `MCCollectorSensDet` factory to an imported volume `ImportedLVol`:
+
+```python
+from Gaussino.Simulation import SimPhase
+SimPhase().SensDetMap = { 
+    "MCCollectorSensDet/ImportedSDet": ["ImportedLVol"],
+}
+
+# and if you wish to change the default properties of the factory
+
+from Configurables import MCCollectorSensDet
+MCCollectorSensDet(
+    "GiGaMT.DetConst.CubeToImportSDet",
+    OutputLevel=DEBUG,
+    PrintStats=True,
+)
+```
+
+## GDML export
+
+If you wish to export the whole world to aGDML file you have to provide all the necessary options in the `ExportGDML` property of `SimPhase`. For example:
+
+```python
+SimPhase().ExportGDML = {
+    "GDMLFileName": "export.gdml",
+    # G4 will crash if the file with same name already exists
+    "GDMLFileNameOverwrite": True,
+    # add unique references to the names
+    "GDMLAddReferences": True, 
+    # export auxilliary information
+    "GDMLExportEnergyCuts": True,
+    "GDMLExportSD": True,
+}
+```
+
+### GDML exporting of a parallel world
+
+Parallel worlds follow the same configuration as in the mass geometry case, but it has to be provided in the properties of you parallel world. For example:
+
+```python
+ParallelGeometry().ParallelWorlds = {
+    'ParallelWorld1': {
+        'ExternalDetectorEmbedder': 'ParallelEmbedder',
+        'ExportGDML': {
+            'GDMLFileName': 'ParallelWorld1.gdml',
+            'GDMLFileNameOverwrite': True,
+            'GDMLExportSD': True,
+            'GDMLExportEnergyCuts': True,
+        },
+    },
+}
+```
diff --git a/docs/examples/adding_subdetector_in_dd4hep.md b/docs/examples/adding_subdetector_in_dd4hep.md
new file mode 100644
index 0000000000000000000000000000000000000000..17a8578db78817611bfb002ac0f39c16de081096
--- /dev/null
+++ b/docs/examples/adding_subdetector_in_dd4hep.md
@@ -0,0 +1,6 @@
+# Adding a new sub-detector with DD4hep standalone
+
+```{eval-rst}
+.. attention::
+    The generic way of doing this is a work-in-progress.
+```
diff --git a/docs/examples/adding_subdetector_in_detector.md b/docs/examples/adding_subdetector_in_detector.md
new file mode 100644
index 0000000000000000000000000000000000000000..fe07406d657a2c9add96cec85b01eeee7c663d61
--- /dev/null
+++ b/docs/examples/adding_subdetector_in_detector.md
@@ -0,0 +1,187 @@
+# Adding a new DD4hep sub-detector with Detector [TO BE MOVED]
+
+## Preparing Gauss for adding new sub-detectors
+
+```{eval-rst}
+.. attention::
+    This section will be moved to a new documentation website dedicated to Gauss.
+```
+
+Make sure that before you start this tutorial you have followed the examples that show how to build Gaussino with DD4hep support. In particular, the decision has to be made if you want work with your local copy of the Detector or the Detector project built in the nightly system:
+
+- [](../getting_started/gauss.md#example-3-working-with-dd4hep-and-detector-from-the-nightlies)
+- [](../getting_started/gauss.md#example-4-working-with-dd4hep-and-detector-built-locally)
+
+```{eval-rst}
+.. tip::
+    Use ``x86_64_v2-centos7-gcc11+dd4hep-opt`` if you want to work with **Detector/DD4hep**.
+```
+
+## Checklist to activate a sub-detector
+
+Once you have correctly configured Gauss, you can start integrating your sub-detector with the simulation framework. We have prepared a list of the required tasks:
+
+1. [](./adding_subdetector_in_detector.md#modify-the-xml-geometry-description)
+2. [](./adding_subdetector_in_detector.md#implement-python-configuration)
+3. [](./adding_subdetector_in_detector.md#check-if-extra-modifications-are-needed)
+4. [](./adding_subdetector_in_detector.md#create-a-mr-in-gauss-targeting-futurev4-branch)
+5. [](./adding_subdetector_in_detector.md#put-the-sub-detector-in-the-nighlty-and-lhcbpr-tests)
+
+### Modify the XML geometry description
+
+In order to load the geometry in Gauss from the Detector project, you have to make sure that your sub-detector is completely described in XML files in `Detector/compact/trunk` directory of the Detector project. Therefore, Gauss has to know what is the hiararchy of the volumes in the geometry and this has to be implemented in [xml_writer.py](https://gitlab.cern.ch/lhcb/Gauss/-/blob/Futurev4/Sim/Gauss/python/Gauss/Geometry/xml_writer.py). We will use `VP` as an example. `VP` has to be added in `/world/BeforeMagnetRegion` and therefore the following changes
+
+```diff
++     ET.SubElement(define, "constant", name="VP:parent",
++                   value="/world/BeforeMagnetRegion", type="string")
+```
+
+are needed in the `xml_writer.py`:
+
+```python
+# Combine the includes into a valid LHCb DD4hep xml and return name of temporary
+# file
+def create_xml(includesfiles):
+    unique_includes = list(OrderedDict.fromkeys(includesfiles))
+    detectorroot = os.path.join(os.environ['DETECTOR_PROJECT_ROOT'], 'compact/trunk/')
+
+    def addroot(p):
+        if p[0] != '.' and p[0] != '/':
+            return detectorroot + p
+        return p
+
+    root = ET.Element("lccdd")
+    ET.SubElement(root, "std_conditions", type="STP")
+    debug = ET.SubElement(root, "debug")
+    ET.SubElement(debug, "type", name="includes", value="0")
+    ET.SubElement(debug, "type", name="materials", value="0")
+    includes = ET.SubElement(root, "includes")
+    ET.SubElement(includes, "gdmlFile", ref=addroot("defaults.xml"))
+    define = ET.SubElement(root, "define")
+    ET.SubElement(define, "constant", name="Bls:parent",
+                  value="/world/BeforeMagnetRegion/BeforeVelo", type="string")
+    ET.SubElement(define, "constant", name="BcmUp:parent",
+                  value="/world/BeforeMagnetRegion/BeforeVelo", type="string")
+    ET.SubElement(define, "constant", name="BcmDown:parent",
+                  value="/world/DownstreamRegion/AfterMuon", type="string")
+    ET.SubElement(define, "constant", name="GValve:parent",
+                  value="/world/BeforeMagnetRegion/BeforeVelo", type="string")
+    ET.SubElement(define, "constant", name="MBXWUp:parent",
+                  value="/world/UpstreamRegion", type="string")
+    ET.SubElement(define, "constant", name="Cavern:parent",
+                  value="/world/Infrastructure", type="string")
+    ET.SubElement(define, "constant", name="Tunnel:parent",
+                  value="/world/Infrastructure", type="string")
+    ET.SubElement(define, "constant", name="Bunker:parent",
+                  value="/world/Infrastructure", type="string")
+    # here we added VP
+    ET.SubElement(define, "constant", name="VP:parent",
+                  value="/world/BeforeMagnetRegion", type="string")
+    ET.SubElement(define, "constant", name="UT:parent",
+                  value="/world/BeforeMagnetRegion", type="string")
+    ET.SubElement(define, "constant", name="FT:parent",
+                  value="/world/AfterMagnetRegion/T", type="string")
+    ET.SubElement(define, "constant", name="Magnet:parent",
+                  value="/world/MagnetRegion", type="string")
+    ET.SubElement(define, "constant", name="Magnet:ignore", value="0")
+    ET.SubElement(define, "constant", name="UpstreamRegion:ignore", value="0")
+    ET.SubElement(define, "constant", name="BeforeMagnetRegion:ignore", value="0")  # NOQA
+    ET.SubElement(define, "constant", name="MagnetRegion:ignore", value="0")
+    ET.SubElement(define, "constant", name="AfterMagnetRegion:ignore", value="0")  # NOQA
+    ET.SubElement(define, "constant", name="DownstreamRegion:ignore", value="0")
+
+    ET.SubElement(root, "include", ref=addroot("global/conditions.xml"))
+
+    # FIXME: Regions need something from this file
+    ET.SubElement(root, "include", ref=addroot("T/parameters.xml"))
+    ET.SubElement(root, "include", ref=addroot("Regions/detector.xml"))
+
+    for inc in unique_includes:
+        ET.SubElement(root, "include", ref=addroot(inc))
+
+    _, tmpfile = tempfile.mkstemp('.xml')
+    xmlstr = minidom.parseString(ET.tostring(root)).toprettyxml(indent="   ")
+    with open(tmpfile, "w") as f:
+        f.write(xmlstr)
+    log.info('Wrote xml file to {}'.format(tmpfile))
+    return tempfile.tempdir, tmpfile.replace(tempfile.tempdir + '/', '')
+```
+
+A temporary XML file will be created in `/tmp` on your local machine.
+
+
+### Implement python configuration
+
+
+What happens in Gauss is that we use the python configuration to decide which sub-detectors should be included and which not. If a sub-detector is added, then all of its XML files have to be imported. Please note that Gauss has to support both DD4hep and DetDesc geometries and therefore we need a separate configuration for each of them. Python configuration of each sub-detector should be handled in a separate python file in `Sim/Gauss/python/Gauss/Geometry/`. We will use `VP` again as an example. In this case, a file `VP.py` is already there. If the sub-detector is completely new, you should create a new file and add the following import in [__init__.py](https://gitlab.cern.ch/lhcb/Gauss/-/blob/Futurev4/Sim/Gauss/python/Gauss/Geometry/__init__.py):
+
+```diff
++ from Gauss.Geometry.VP import *
+```   
+
+You have to make sure that you sub-detector class inherits from `det_base` and uses the `subdetector` decorator. There is also a set of functions that have to be implemented. For `VP`:
+
+```python
+from Gauss.Geometry.det_base import det_base
+from Gauss.Geometry.Helpers import subdetector
+
+@subdetector
+class VP(det_base):
+
+    def ApplyDetectorDetDesc(self, basePieces, detPieces):
+        # Add the necessary detector pieces for DetDesc
+  
+    def ApplyDetectorDD4hep(self, basePieces, detPieces):
+        # Add a list of all the necessary DD4hep includes
+
+    def SetupExtractionImpl(self, slot=''):
+        # Configure the hit getter that transforms the Geant4 hit collection
+        # to our event model. Wrapping function in base class configures SimConf.
+
+    def SetupMonitor(self, slot=''):
+        # Setup any necessary monitoring algorithms
+``` 
+
+Therefore, in order to use the DD4hep implementation of your sub-detector you have to implement `ApplyDetectorDetDesc` and populate the `LHCbGeo._listOfXMLIncludes_` list with the XML files required for your sub-detector. If your sub-detector is registering hits, then you should also provide a mapping between the name of the sensitive volume and the name of the factory used to construct the sensitive detector object. For `VP` we have:
+
+```python
+def ApplyDetectorDD4hep(self, basePieces, detPieces):
+    # Configuring the DD4hep detector conversion.
+    # 1. Add the mapping to have the LHCbDD4hepCnvSvc instrument
+    # the G4 volume with the correct sensdet factory if marked with a
+    # dd4hep sensitive detector named VP
+    from Configurables import LHCbDD4hepCnvSvc
+    mappings = LHCbDD4hepCnvSvc().getProp('SensDetMappings')
+    mappings['VP'] = 'GiGaSensDetTrackerDD4hep/VPSDet'
+    LHCbDD4hepCnvSvc().SensDetMappings = mappings
+
+    # Add the necessary dd4hep includes for the VP. Also added all the
+    # dependencies for material definitions that were identified using
+    # trial and error. As the list is made unique before being added to
+    # the xml this should be fine if they appear in multiple places
+    from Gauss.Geometry import LHCbGeo
+    go = LHCbGeo._listOfXMLIncludes_
+
+    go += ["Pipe/parameters.xml"]
+    go += ["Rich1/DetElem/RichRun3PropertySpecParam.xml"]
+    go += ["Rich1/RichMatDir/RichMaterials.xml"]
+    go += ["VP/parameters.xml"]
+    go += ["VP/visualization.xml"]
+    go += ["VP/detector.xml"]
+    go += ["VP/conditions.xml"]
+```
+
+### Check if extra modifications are needed
+
+This is more as a reminder. You have to make sure that the extraction hits classes and monitoring classes are implemented or modernized. Moreover, some sub-detectors use non-standard classes that might need additional changes for the Detector/DD4hep implementation. This has to be checked.
+
+### Create a MR in Gauss targeting Futurev4 branch
+
+Simply follow the same procedure as in: [](../getting_started/contributing.md#developing-gauss-on-gaussino).
+
+### Put the sub-detector in the nighlty and LHCbPR tests
+
+```{eval-rst}
+.. attention::
+    The generic way of doing this is a work-in-progress.
+```
diff --git a/docs/getting_started/contributing.md b/docs/getting_started/contributing.md
index 793616dc95f6b19888e4827ac377a0be88b962e8..c07af06a9d6bde0760d761f20feef8446226d70f 100644
--- a/docs/getting_started/contributing.md
+++ b/docs/getting_started/contributing.md
@@ -1,8 +1,35 @@
 # Contributing
 
-The future framework (for LHCb) consists of two components, Gaussino and Gauss. Gaussino contains all core functionality which should be independent of LHCb. It should incorporate all framework related issues and define all necessary interfaces and implement the interplay between them. Gauss itself is based on Gaussino and should only contain the specific implementations of the interfaces defined in Gaussino and the necessary configuration to setup the application. Changes should be introduced via merge requests targetting the `master` branch. Adding the label `lhcb-gaussino` will include them in the nightly build.
+The future framework (for LHCb) consists of two components, Gaussino and Gauss. Gaussino contains all core functionality which should be independent of LHCb. It should incorporate all framework related issues and define all necessary interfaces and implement the interplay between them. Gauss itself is based on Gaussino and should only contain the specific implementations of the interfaces defined in Gaussino and the necessary configuration to setup the application. 
 
-## Documenting
+## Developing Gaussino
+
+Please make sure that you followed the recipe described in [](./gaussino.md#working-with-gaussino) and make sure that you work on your local development branch.
+
+Changes should be introduced via merge requests targeting the `master` branch. If you wish to open a MR with your local branch (the name of the branch should start with your username, e.g. `username-some-changes`), then you can directly push the changes to the branch in the remote repository:
+
+```shell
+git add file1 file2
+git commit -m "The description of your commit"
+git push origin username-some-changes
+```  
+
+In gitlab, open a MR targeting the `master` branch. Adding the `lhcb-gaussino` label will include your changes in the next nightly build of `lhcb-gaussino`.
+
+## Developing Gauss-on-Gaussino
+
+```{eval-rst}
+.. attention::
+    This sub-section will be moved to a new documentation website dedicated to Gauss.
+```
+
+The instructions are almost the same as for Gaussino in the previous section: [](./contributing.md#developing-gaussino). The only difference is that the MR should be targeting `Futurev5` branch.
+
+## Fast simulation developments with Geant4 10.7
+
+All the developments related to fast simulations with Geant4 10.7 are tested in the `lhcb-gaussino-fastsim` nightly slot. We have a dedicated target branch in Gaussino and Gauss-on-Gaussino for these developments: `FASTSIM`. Therefore, you can follow the instructions as in [](./gaussino.md#working-with-gaussino), [](./gauss.md#working-with-gauss-on-gaussino-to-be-moved), [](./contributing.md#developing-gaussino) and [](./contributing.md#developing-gauss-on-gaussino) and change `lhcb-gaussino` to `lhcb-gaussino-fastsim` and `master` to `FASTSIM` (in Gauss: `Futurev5` to `FASTSIM`). 
+
+## Documentation
 
 1. Add a `Documentation` label to your MR. This will activate the gitlab CI pipeline.
 
diff --git a/docs/getting_started/gauss.md b/docs/getting_started/gauss.md
new file mode 100644
index 0000000000000000000000000000000000000000..41d4ebe084de850dfceb2bd9d07a9f274047c180
--- /dev/null
+++ b/docs/getting_started/gauss.md
@@ -0,0 +1,247 @@
+# Working with Gauss-on-Gaussino [TO BE MOVED]
+```{eval-rst}
+.. attention::
+    This section will be moved to a new documentation website dedicated to Gauss.
+```
+
+## Using the LHCb nightly build system
+
+### Building Gauss and Gaussino from source
+
+If you wish to work with Gauss (LHCb simulation framework) based on Gaussino's core functionalities, follow the recipe in the section dedicated to Gaussino (see: [](./gaussino.md#working-with-gaussino)) and go back to the directory where your local copy of the nighly slot resides. 
+
+```{eval-rst}
+.. tip::
+    If you do not have any changes in Gaussino, you can use Gaussino directly from the nightlies. Just follow the same recipe up to the section `Fetch the nightlies locally <./gaussino.md#fetch-the-nightlies-locally>`_ and add Gaussino to the list of copied projects:
+
+    .. code-block:: shell
+
+        lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,Gaussino, GaussinoExtLibs lhcb-gaussino Today
+
+We really encourage you to use `lbn-install` as it generates a local copy of the nightly build directly on your machine and will create the most stable environment for your developments.  
+```
+
+
+#### Clone Gauss and prepare your local development branch
+```shell
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
+cd Gauss
+```
+
+Gauss-on-Gaussino is develped on a dedicated branch: `Futurev5`. So your development has to start from this branch. 
+
+```shell
+git checkout Futurev5
+git checkout -b your_local_dev_branch
+```
+The rest is very similar to the development in Gaussino:
+
+```{eval-rst}
+.. attention::
+    Don't forget to merge all pending merge requests with a label ``lhcb-gaussino`` (or any other MR that was picked up in the nightly)!
+```
+
+```{eval-rst}
+.. hint::
+    The list of open merge requests with the label ``lhcb-gaussino`` can be acquired automatically with this command:
+
+    .. code-block:: shell-session
+    
+        curl -s "https://gitlab.cern.ch/api/v4/projects/2606/merge_requests?state=opened&labels=lhcb-gaussino" | jq '.[].iid'
+```
+
+In order to get the list of pending merge requests check the checkout report by clicking on the **black arrow** next to the **Gauss project** on the [website](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino). You will get a list of the MR ids that are needed to work with this build of Gauss. For example, if the MRs are Gauss!800 and Gauss!845, you can do the following:
+
+```shell
+git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+git merge --no-edit 800 845
+```
+
+
+#### Configure, build and install Gauss-on-Gaussino
+
+```shell
+lb-project-init .
+make -j4 install
+``` 
+
+#### Run Gauss
+
+```shell
+./build.x86_64_v2-centos7-gcc11-opt/run gaudirun.py your_options.py
+```
+
+### Example 1 building Gauss only
+
+Below you will find a summary of the commands that should cover the majority of the use cases.
+
+```shell
+source /cvmfs/lhcb.cern.ch/lib/LbEnv
+lb-set-platform x86_64_v2-centos7-gcc11-opt
+export LCG_VERSION=101a
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-gaussino Today
+cd lhcb-gaussino/Today
+lb-set-workspace .
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
+cd Gauss
+git checkout Futurev5
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+lb-project-init .
+make -j4 install
+```
+
+### Example 2 building Gauss and Gaussino
+
+Below you will find a summary of the commands that should cover the majority of the use cases in which we need to modify both Gauss & Gaussino.
+
+```shell
+source /cvmfs/lhcb.cern.ch/lib/LbEnv
+lb-set-platform x86_64_v2-centos7-gcc11-opt
+export LCG_VERSION=101a
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-gaussino Today
+cd lhcb-gaussino/Today
+lb-set-workspace .
+git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
+cd Gaussino
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 23 45
+lb-project-init .
+make -j4 install
+cd ..
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
+cd Gauss
+git checkout Futurev5
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+lb-project-init .
+make -j4 install
+```
+
+### Example 3 working with DD4hep and Detector from the nightlies
+
+Below you will find a summary of the commands needed to work with DD4hep/Detector that is taken from the nightlies. There should be ne need to change anything in Gaussino, so we will only build Gauss.
+
+```shell
+source /cvmfs/lhcb.cern.ch/lib/LbEnv
+lb-set-platform x86_64_v2-centos7-gcc11+dd4hep-opt
+export LCG_VERSION=101a
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-dd4hep Today
+cd lhcb-dd4hep/Today
+lb-set-workspace .
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
+cd Gauss
+git checkout Futurev5
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+lb-project-init .
+make -j4 install
+```
+
+### Example 4 working with DD4hep and Detector built locally
+
+Below you will find a summary of the commands needed to work with DD4hep/Detector that is built locally. In this case, we have to rebuild all the projects downstream with respect to the Detector.
+
+```shell
+source /cvmfs/lhcb.cern.ch/lib/LbEnv
+lb-set-platform x86_64_v2-centos7-gcc11+dd4hep-opt
+export LCG_VERSION=101a
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE lhcb-dd4hep Today
+cd lhcb-dd4hep/Today
+lb-set-workspace .
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Detector.git
+cd Detector
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+lb-project-init .
+make -j4 install
+cd ..
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/LHCb.git
+cd LHCb
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+lb-project-init .
+make -j4 install
+cd ..
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Run2Support.git
+cd Run2Support
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+lb-project-init .
+make -j4 install
+cd ..
+git clone ssh://git@gitlab.cern.ch:7999/Gaussino/GaussinoExtLibs.git
+cd GaussinoExtLibs
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 23 45
+lb-project-init .
+make -j4 install
+cd ..
+git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
+cd Gaussino
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 23 45
+lb-project-init .
+make -j4 install
+cd ..
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
+cd Gauss
+git checkout Futurev5
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+lb-project-init .
+make -j4 install
+```
+
+### Example 5: working with fast simulations with Geant4 10.7
+
+Below you will find a summary of the commands needed to work with fast simulations with Geant4 10.7. In this example we will also build Gaussino as there might be some changes required in the generic fast simulation interface.
+
+```shell
+source /cvmfs/lhcb.cern.ch/lib/LbEnv
+lb-set-platform x86_64_v2-centos7-gcc11-opt
+export LCG_VERSION=101a
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs
+lhcb-gaussino-fastsim Today
+cd lhcb-gaussino-fastsim/Today
+lb-set-workspace .
+git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
+cd Gaussino
+git checkout FASTSIM
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 23 45
+lb-project-init .
+make -j4 install
+cd ..
+git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
+cd Gauss
+git checkout FASTSIM
+git checkout -b your_local_dev_branch
+# check the MRs!
+# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+# git merge --no-edit 800 845
+lb-project-init .
+make -j4 install
+```
diff --git a/docs/getting_started/gaussino.md b/docs/getting_started/gaussino.md
new file mode 100644
index 0000000000000000000000000000000000000000..4efb9bd09c66c238f47adb41b48f4bdacbeeca84
--- /dev/null
+++ b/docs/getting_started/gaussino.md
@@ -0,0 +1,210 @@
+# Working with Gaussino
+
+Please note that Gaussino is an experiment-independent package. If you are looking for a concrete experiment implementation, here is the list:
+- Gauss-on-Gaussino (LHCb Experiment, for now using the nightly build system)
+
+## Using the LHCb nightly build system
+
+### About the nightly system
+
+You can check the nighlty build status by visiting https://lhcb-nightlies.web.cern.ch/nightly/. There are a few nightly slots currently available for Gaussino:
+-  [```lhcb-gaussino```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino/) standard slot for the majority of developments,
+-  [```lhcb-dd4hep```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino/) the nightly slot used for the integration of DD4hep sub-detectors,
+-  [```lhcb-gaussino-fastsim```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino-fastsim/) nightly slot dedicated to fast simulation developments with Geant4 10.7,
+-  [```lhcb-gaussino-prerelease```](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino-prerelease/) the most stable version of Gaussino used to prepare beta releases with LHCb stack,
+
+Gaussino is built in each nightly slots on 3 platforms:
+- ```x86_64_v2-centos7-gcc11-opt``` release build with DetDesc geometry,
+- ```x86_64_v2-centos7-gcc11-dbg``` debug build with DetDesc geometry,
+- ```x86_64_v2-centos7-gcc11+dd4hep-opt``` release build with DD4Hep geometry,
+
+### Configuring the environment 
+
+Make sure that you are using LbEnv on lxplus or similar. You can run this to be sure:
+
+```shell
+source /cvmfs/lhcb.cern.ch/lib/LbEnv
+```
+
+### Configure the platform
+
+The following will make sure that you have the most recent platform.
+
+```shell
+lb-set-platform x86_64_v2-centos7-gcc11-opt
+export LCG_VERSION=101a
+```
+
+```{eval-rst}
+.. tip::
+    Use ``x86_64_v2-centos7-gcc11+dd4hep-opt`` on ``lhcb-dd4hep`` if you want to work with **Detector/DD4hep**.
+```
+
+### Building Gaussino from source
+
+```{eval-rst}
+.. note::
+    This is the recommended way for now.
+```
+
+#### Fetch the nightlies locally
+
+We're going to create a local copy of the projects used in the nightly slot. Gaussino requires Gaudi, Detector, LHCb, Run2Support and GaussinoExtLibs. LHCb and Run2Support are used when building Gaussino in the LHCb stack.
+    
+
+```shell
+lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs lhcb-gaussino Today
+cd lhcb-gaussino/Today
+lb-set-workspace .
+```
+
+```{eval-rst}
+.. tip::
+    Use ``x86_64_v2-centos7-gcc11+dd4hep-opt`` on ``lhcb-dd4hep`` if you want to work with **Detector/DD4hep**.
+```
+
+```{eval-rst}
+.. attention::
+    The ``Today`` version of the nightly slot might not always be available. Please, always check directly on the website if the build of Gaussino & Gauss was successful (cells in the `table <https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino/>`_ should be either orange or green, but not red!). Always use the latest version that was successful (``yesterday``, ``1222`` etc.). 
+```
+
+#### Clone Gaussino and prepare your local development branch
+
+```shell
+git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
+cd Gaussino
+git checkout -b your_local_dev_branch
+```
+
+```{eval-rst}
+.. attention::
+    Don't forget to merge all pending merge requests with a label ``lhcb-gaussino`` (or any other MR that was picked up in the nightly)!
+```
+
+In order to get the list of pending merge requests check the checkout report by clicking on the **black arrow** next to the **Gaussino project** on the [website](https://lhcb-nightlies.web.cern.ch/nightly/lhcb-gaussino). You will get a list of the MR ids that are needed to work with this build of Gaussino. For example, if the MRs are Gaussino!24 and Gaussino!51, you can do the following:
+
+```shell
+git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
+git merge --no-edit 24 51
+```
+
+#### Configure, build and install Gaussino
+
+```shell
+lb-project-init .
+make -j4 install
+``` 
+
+#### Run Gaussino
+
+```shell
+./build.x86_64_v2-centos7-gcc11-opt/run gaudirun.py your_options.py
+```
+
+### Working on a satellite project
+
+```{eval-rst}
+.. error::
+    This is not working yet and has to be updated.
+```
+
+#### Get a skeleton of your project
+
+```shell
+lb-dev --nightly lhcb-gaussino/Today Gaussino/HEAD -c x86_64-centos7-gcc9-opt
+```
+#### Additional configuration.
+
+```shell
+cd GaussinoDev_HEAD
+```
+
+```shell
+git lb-use Gaussino https://gitlab.cern.ch/Gaussino/Gaussino
+```
+
+#### Configure the package
+Conifure the package you'd like to develop. Here `Sim/Gaussino`
+
+```shell
+git lb-checkout Gaussino/master Sim/Gaussino
+```
+
+#### Build
+
+```shell
+make
+```
+
+### Working on a satellite project with nightlies locally
+
+```{eval-rst}
+.. error::
+    This is not working yet and has to be updated.
+```
+
+This might be useful if you want a local copy of the projects in the nighlt slot or if you're looking for a nightly slot that is no longer present in `/cvmfs/lhcbdev.cern.ch/nightlies/lhcb-gaussino`
+
+
+```shell
+ll /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-gaussino
+```
+
+Here is an exemplary list of nighlty slots:
+
+```
+total 5.0K
+drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 24 01:44 931
+drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 26 01:05 932
+drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 27 01:43 933
+drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 29 01:20 934
+drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 30 02:30 935
+drwxr-xr-x. 12 cvmfs cvmfs 224 May  2 02:53 936
+lrwxrwxrwx.  1 cvmfs cvmfs   3 Apr 30 01:11 Fri -> 935
+lrwxrwxrwx.  1 cvmfs cvmfs   3 May  2 00:10 latest -> 936
+lrwxrwxrwx.  1 cvmfs cvmfs   3 May  2 00:10 Sun -> 936
+lrwxrwxrwx.  1 cvmfs cvmfs   3 Apr 29 00:35 Thu -> 934
+```
+
+`Today` nighlty slot will be used in further steps.  
+
+#### Create a base directory for your nighlties
+
+```shell
+mkdir gaussino_base
+```
+
+#### Install the nightlies in your base directory
+
+```shell
+lbn-install --verbose --projects Gaussino --platforms x86_64-centos7-gcc9-opt --dest gaussino_base/lhcb-gaussino/Today lhcb-gaussino Today
+```
+
+#### Use the nightlies in your base directory
+
+```shell
+lb-dev --nightly-base gaussino_base --nightly lhcb-gaussino/Today Gaussino/HEAD -c x86_64-centos7-gcc9-opt
+```
+
+#### Additional configuration
+
+```shell
+cd GaussinoDev_HEAD
+```
+
+```shell
+git lb-use Gaussino https://gitlab.cern.ch/Gaussino/Gaussino
+```
+
+#### Configure the package
+Configure the package you'd like to develop. Here ```Sim/Gaussino```
+
+```shell
+git lb-checkout Gaussino/master Sim/Gaussino
+```
+
+#### Build
+
+```shell
+make
+```
diff --git a/docs/getting_started/installing.md b/docs/getting_started/installing.md
deleted file mode 100644
index 8b55af2c7b5de4d47ff40051c1315ea721d37190..0000000000000000000000000000000000000000
--- a/docs/getting_started/installing.md
+++ /dev/null
@@ -1,184 +0,0 @@
-# Running Gaussino
-
-Please note that Gaussino is an experiment-independent package. If you are looking for a concrete experiment implementation, here is the list:
-- Gauss-on-Gaussino (LHCb Experiment)
-
-## Running from the nighlties
-
-Currently it is only possible to build Gaussino with the help of nightly builds.
-
-You can check the nighlty build status by visiting https://lhcb-nightlies.web.cern.ch/nightly/. The nightly slot currently available for Gaussino is ```lhcb-gaussino```. You can either install the latest build or one from the past in case the current one is failed. 
-
-### Configuring the environment 
-
-1. Make sure you're using LbEnv on lxplus or similar. You can run this to be sure:
-
-```
-source /cvmfs/lhcb.cern.ch/lib/LbEnv
-```
-
-2. Configure the platform
-
-```
-lb-set-platform x86_64_v2-centos7-gcc11-opt
-```
-
-```{eval-rst}
-.. note::
-    Use `x86_64_v2-centos7-gcc10+dd4hep-opt` if you want work with Detector/DD4hep.
-```
-
-### Building from source
-
-```{eval-rst}
-.. note::
-    This is the recommended way for now.
-```
-
-1. Fetch the nightlies locally 
-
-    ```
-    lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support lhcb-gaussino Today
-    export CMAKE_PREFIX_PATH=$PWD:${CMAKE_PREFIX_PATH}
-    ```
-
-    ```{eval-rst}
-    .. note::
-        Use `x86_64_v2-centos7-gcc11+dd4hep-opt` if you want work with Detector/DD4hep.
-    ```
-
-    OR (less recommended) add the nightlies path to ```CMAKE_PREFIX_PATH``` directly from the destination
-
-    ```
-    export CMAKE_PREFIX_PATH=/cvmfs/lhcbdev.cern.ch/nightlies/lhcb-gaussino/latest:${CMAKE_PREFIX_PATH}
-    ```
-
-2. Clone the repository.
-
-    ```
-    git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
-    cd Gaussino
-    ```
-    
-    ```{eval-rst}
-    .. note::
-       Don't forget to merge all pending merge requests with a label ```lhcb-gaussino```!
-    ```
-
-
-3. Configure, build and install:
-    ```
-    cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build
-    make -C build -j4 install
-    ``` 
-
-4. Run
-
-    ```
-    ./build/run gaudirun.py your_options.py
-    ```
-
-### Working on a satellite project
-
-```{eval-rst}
-.. warning::
-    This is not working yet.
-```
-
-1. Get a skeleton of your project by typing:
-
-    ```bash
-    lb-dev --nightly lhcb-gaussino/Today Gaussino/HEAD -c x86_64-centos7-gcc9-opt
-    ```
-2. Additional configuration.
-
-    ```bash
-    cd GaussinoDev_HEAD
-    ```
-
-    ```bash
-    git lb-use Gaussino https://gitlab.cern.ch/Gaussino/Gaussino
-    ```
-
-3. Configure the package you'd like to develop. Here ```Sim/Gaussino```
-
-    ```bash
-    git lb-checkout Gaussino/master Sim/Gaussino
-    ```
-
-4. Build.
-
-    ```
-    make
-    ```
-
-### Working on a satellite project with nightlies locally
-
-```{eval-rst}
-.. warning::
-    This is not working yet.
-```
-
-This might be useful if you want a local copy of the projects in the nighlt slot or if you're looking for a nightly slot that is no longer present in ```/cvmfs/lhcbdev.cern.ch/nightlies/lhcb-gaussino```
-
-
-```bash
-ll /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-gaussino
-```
-
-Here is an exemplary list of nighlty slots:
-
-```
-total 5.0K
-drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 24 01:44 931
-drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 26 01:05 932
-drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 27 01:43 933
-drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 29 01:20 934
-drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 30 02:30 935
-drwxr-xr-x. 12 cvmfs cvmfs 224 May  2 02:53 936
-lrwxrwxrwx.  1 cvmfs cvmfs   3 Apr 30 01:11 Fri -> 935
-lrwxrwxrwx.  1 cvmfs cvmfs   3 May  2 00:10 latest -> 936
-lrwxrwxrwx.  1 cvmfs cvmfs   3 May  2 00:10 Sun -> 936
-lrwxrwxrwx.  1 cvmfs cvmfs   3 Apr 29 00:35 Thu -> 934
-```
-
-```Today```` nighlty slot will be used in further steps.  
-
-1. Create a base directory for your nighlties. 
-
-    ```bash
-    mkdir gaussino_base
-    ```
-
-2. Install the nightlies in your base directory.
-
-    ```bash
-    lbn-install --verbose --projects Gaussino --platforms x86_64-centos7-gcc9-opt --dest gaussino_base/lhcb-gaussino/Today lhcb-gaussino Today
-    ```
-
-3. Use the nightlies in your base directory to work on a satellite project.
-
-    ```bash
-    lb-dev --nightly-base gaussino_base --nightly lhcb-gaussino/Today Gaussino/HEAD -c x86_64-centos7-gcc9-opt
-    ```
-4. Additional configuration.
-
-    ```bash
-    cd GaussinoDev_HEAD
-    ```
-
-    ```bash
-    git lb-use Gaussino https://gitlab.cern.ch/Gaussino/Gaussino
-    ```
-
-5. Configure the package you'd like to develop. Here ```Sim/Gaussino```
-
-    ```bash
-    git lb-checkout Gaussino/master Sim/Gaussino
-    ```
-
-6. Build.
-
-    ```
-    make
-    ```
diff --git a/docs/images/gaussino_logo.png b/docs/images/gaussino_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..918a4f11d406b9ce40da51c87a72252a13d14af6
Binary files /dev/null and b/docs/images/gaussino_logo.png differ
diff --git a/docs/index.rst b/docs/index.rst
index 84dd8ae1d7c8de7232ea7ca37a187c8508cce1c4..d9fb3a662dc1447ca7ecb8ae0af3b131a60c2eaf 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -3,7 +3,7 @@
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
 
-Welcome to Gaussino's documentation!
+Welcome to the Gaussino's documentation!
 ====================================
 .. toctree::
    :caption: About
@@ -14,10 +14,10 @@ Welcome to Gaussino's documentation!
 
 .. toctree::
    :caption: Getting started
-   :hidden:
    :maxdepth: 2
 
-   getting_started/installing.md
+   getting_started/gaussino.md
+   getting_started/gauss.md
    getting_started/contributing.md
 
 .. toctree::
@@ -29,14 +29,16 @@ Welcome to Gaussino's documentation!
    configuration/simulation
    configuration/external_detector
    configuration/parallel_geometry
+   configuration/gdml
 
 .. toctree::
    :caption: Examples
-   :hidden:
    :maxdepth: 2
    
    examples/external_detector
    examples/parallel_geometry
+   examples/adding_subdetector_in_detector
+   examples/adding_subdetector_in_dd4hep
 
 
 Indices and tables
diff --git a/lhcbproject.yml b/lhcbproject.yml
new file mode 100644
index 0000000000000000000000000000000000000000..43f573511af248582b97e0db2e3bf2864635d0fc
--- /dev/null
+++ b/lhcbproject.yml
@@ -0,0 +1,4 @@
+name: Gaussino
+licence: Apache-2.0
+dependencies:
+  - GaussinoExtLibs
diff --git a/toolchain.cmake b/toolchain.cmake
deleted file mode 100644
index e5fd2055175f9ab4695d9e9c146cd4aeb6d9bd98..0000000000000000000000000000000000000000
--- a/toolchain.cmake
+++ /dev/null
@@ -1,55 +0,0 @@
-###############################################################################
-# (c) Copyright 2018 CERN                                                     #
-#                                                                             #
-# This software is distributed under the terms of the GNU General Public      #
-# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
-#                                                                             #
-# In applying this licence, CERN does not waive the privileges and immunities #
-# granted to it by virtue of its status as an Intergovernmental Organization  #
-# or submit itself to any jurisdiction.                                       #
-###############################################################################
-cmake_minimum_required(VERSION 3.6)
-
-set(LCG_LAYER LHCB_7 CACHE STRING "Specific set of version to use")
-option(LCG_USE_GENERATORS "enable/disable use of LCG generators" ON)
-
-
-# this check is needed because the toolchain is called when checking the
-# compiler (without the proper cache)
-if(NOT CMAKE_SOURCE_DIR MATCHES "CMakeTmp")
-  # Avoid using Gaudi's get_host_binary_tag.py script as it doesn't support Python 3.8
-  # https://gitlab.cern.ch/gaudi/Gaudi/-/issues/123
-  execute_process(COMMAND "lb-host-binary-tag"
-                  OUTPUT_VARIABLE HOST_BINARY_TAG
-                  RESULT_VARIABLE HOST_BINARY_RETURN
-                  ERROR_VARIABLE  HOST_BINARY_ERROR
-                  OUTPUT_STRIP_TRAILING_WHITESPACE)
-  set(HOST_BINARY_TAG ${HOST_BINARY_TAG} CACHE STRING "BINARY_TAG of the host")
-  if(HOST_BINARY_RETURN OR NOT HOST_BINARY_TAG)
-    message(FATAL_ERROR "Error getting host binary tag\nFailed to execute ${HOST_BINARY_TAG_COMMAND}\n"
-                        "HOST_BINARY_TAG value: ${HOST_BINARY_TAG}\n"
-                        "Program Return Value: ${HOST_BINARY_RETURN}\n"
-                        "Error Message: ${HOST_BINARY_ERROR}\n")
-  endif()
-
-  find_file(default_toolchain NAMES GaudiDefaultToolchain.cmake
-            HINTS ${CMAKE_SOURCE_DIR}/cmake
-                  ${CMAKE_CURRENT_LIST_DIR}/cmake)
-  if(default_toolchain)
-    include(${default_toolchain})
-    if(NOT DEFINED CMAKE_USE_CCACHE)
-      set(CMAKE_USE_CCACHE "YES" CACHE BOOL "...")
-    endif()
-  else()
-    message(FATAL_ERROR "Cannot find GaudiDefaultToolchain.cmake")
-  endif()
-
-  # FIXME: make sure we do not pick up unwanted/problematic projects from LCG
-  if(CMAKE_PREFIX_PATH)
-    # - ninja (it requires LD_LIBRARY_PATH set to run)
-    # - Gaudi (we do not want to use it from LCG)
-    # - Geant4 (we do not want to use it from LCG)
-    # - xenv (conflicts with the version in the build environment)
-    list(FILTER CMAKE_PREFIX_PATH EXCLUDE REGEX "(LCG_|lcg/nightlies).*(ninja|Gaudi|Geant4|xenv|git)/")
-  endif()
-endif()