From ceeddb3421870f10e8f45c546938041cd6649b7d Mon Sep 17 00:00:00 2001
From: Chengdong Fu <fucd@ihep.ac.cn>
Date: Fri, 11 Sep 2020 13:54:08 +0800
Subject: [PATCH] fix re-generate issue for root dict

---
 Utilities/KalDet/CMakeLists.txt               |  79 +++--
 .../KalDet/cmake/MacroCheckPackageLibs.cmake  | 164 ---------
 .../cmake/MacroCheckPackageVersion.cmake      | 108 ------
 Utilities/KalDet/cmake/MacroRootDict.cmake    | 145 --------
 Utilities/KalDet/cmake/MyFindROOT.cmake       | 316 ------------------
 Utilities/KalDet/src/gen/EXEventGen.cxx       |   4 +-
 .../lctpc/gearTPC/GearTPCCylinderMeasLayer.h  |   2 +-
 Utilities/KalTest/CMakeLists.txt              |  74 ++--
 .../KalTest/cmake/MacroCheckPackageLibs.cmake | 164 ---------
 .../cmake/MacroCheckPackageVersion.cmake      | 108 ------
 Utilities/KalTest/cmake/MacroRootDict.cmake   | 145 --------
 Utilities/KalTest/cmake/MyFindROOT.cmake      | 316 ------------------
 12 files changed, 91 insertions(+), 1534 deletions(-)
 delete mode 100644 Utilities/KalDet/cmake/MacroCheckPackageLibs.cmake
 delete mode 100644 Utilities/KalDet/cmake/MacroCheckPackageVersion.cmake
 delete mode 100644 Utilities/KalDet/cmake/MacroRootDict.cmake
 delete mode 100644 Utilities/KalDet/cmake/MyFindROOT.cmake
 delete mode 100644 Utilities/KalTest/cmake/MacroCheckPackageLibs.cmake
 delete mode 100644 Utilities/KalTest/cmake/MacroCheckPackageVersion.cmake
 delete mode 100644 Utilities/KalTest/cmake/MacroRootDict.cmake
 delete mode 100644 Utilities/KalTest/cmake/MyFindROOT.cmake

diff --git a/Utilities/KalDet/CMakeLists.txt b/Utilities/KalDet/CMakeLists.txt
index a5bac19d..5b4c1a94 100644
--- a/Utilities/KalDet/CMakeLists.txt
+++ b/Utilities/KalDet/CMakeLists.txt
@@ -12,52 +12,67 @@ find_package(ROOT COMPONENTS MathCore)
 find_package(EDM4HEP REQUIRED)
 
 gaudi_depends_on_subdirs(
-    Detector/DetInterface
-    Utilities/KalTest
+  Detector/DetInterface
+  Utilities/KalTest
 )
 
-list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake)
+get_target_property(to_incl KalTestLib SOURCE_DIR)
+if (to_incl)
+  LIST( APPEND DICT_INCLUDE_DIRS ${to_incl})
+else()
+  message(FATAL_ERROR "Failed to get the source dir for package KalTestLib")
+endif()
 
-INCLUDE( MyFindROOT )
-INCLUDE( MacroRootDict )
+set( DICT_CINT_DEFINITIONS "HANDLE_DICT_EXCEPTIONS=IGNORED_FOR_CINT" )
+set( DICT_INPUT_DIRS gen kern lctpc/gearTPC )
+set( DICT_OUTPUT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/rootdict )
 
-SET( ROOT_DICT_CINT_DEFINITIONS "-DHANDLE_DICT_EXCEPTIONS=IGNORED_FOR_CINT" )
+foreach( DICT_DIR ${DICT_INPUT_DIRS} )
+  list( APPEND DICT_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/src/${DICT_DIR} )
+  aux_source_directory( src/${DICT_DIR} LIB_SOURCES )
+endforeach()
 
-INCLUDE( ${ROOT_DICT_MACROS_FILE} )
+foreach( DICT_DIR ${DICT_INPUT_DIRS} )
+  file( GLOB DICT_HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/${DICT_DIR}/*.h" )
+  file( GLOB LINKDEFS "${CMAKE_CURRENT_SOURCE_DIR}/src/${DICT_DIR}/LinkDef.h" )
 
-SET( lib_input_dirs src/gen src/kern src/lctpc/gearTPC )
+  if( LINKDEFS )
+    list( REMOVE_ITEM DICT_HEADER_FILES "${LINKDEFS}" )
+  endif()
 
-FOREACH( lib_input_dir ${lib_input_dirs} )
-    LIST( APPEND ROOT_DICT_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/${lib_input_dir} )
-ENDFOREACH()
+  string(REGEX REPLACE "/" "_" DICT ${DICT_DIR})    
 
-# LIST( APPEND ROOT_DICT_INCLUDE_DIRS /workfs/bes/fucd/Key4hep/CEPCSW/Utilities/KalTest )
-# get the include directory of KalTest
-get_target_property(to_incl KalTestLib SOURCE_DIR)
-if (to_incl)
-   LIST( APPEND ROOT_DICT_INCLUDE_DIRS ${to_incl})
-else()
-  message(FATAL_ERROR "Failed to get the source dir for package KalTestLib")
-endif()
+  add_custom_command(OUTPUT ${DICT_OUTPUT_DIR}/${DICT}.cxx ${DICT_OUTPUT_DIR}/${DICT}_rdict.pcm
+  	             COMMAND mkdir -p ${DICT_OUTPUT_DIR}   
+                     COMMAND ${ROOT_rootcling_CMD}
+                     ARGS -f ${DICT_OUTPUT_DIR}/${DICT}.cxx -s ${DICT_OUTPUT_DIR}/${DICT} -inlineInputHeader
+                     "$<$<BOOL:$<JOIN:${DICT_CINT_DEFINITIONS},>>:-D$<JOIN:${DICT_CINT_DEFINITIONS},;-D>>"
+                     "$<$<BOOL:$<JOIN:${DICT_INCLUDE_DIRS},>>:-I$<JOIN:${DICT_INCLUDE_DIRS},;-I>>"
+                     "$<JOIN:${DICT_HEADER_FILES},;>" "$<JOIN:${LINKDEFS},;>"
+                     DEPENDS ${DICT_HEADER_FILES} ${LINKDEFS}
+                     COMMAND_EXPAND_LISTS
+                     )
+
+  add_custom_target( ${DICT} DEPENDS ${DICT_OUTPUT_DIR}/${DICT}.cxx ${DICT_OUTPUT_DIR}/${DICT}_rdict.pcm )
+
+  set_source_files_properties(${DICT_OUTPUT_DIR}/${DICT}.cxx ${DICT_OUTPUT_DIR}/${DICT}_rdict.pcm
+                              PROPERTIES
+                              GENERATED TRUE
+                              COMPILE_FLAGS "-Wno-unused-function -Wno-overlength-strings"
+                              )
 
-#MESSAGE( STATUS "ROOT_DICT_INCLUDE_DIRS: ${ROOT_DICT_INCLUDE_DIRS}" )
+  install(FILES ${DICT_OUTPUT_DIR}/${DICT}_rdict.pcm DESTINATION lib)
 
-FOREACH( lib_input_dir ${lib_input_dirs} )
-    AUX_SOURCE_DIRECTORY( ${lib_input_dir} lib_sources )
-    PREPARE_ROOT_DICT_HEADERS( ${lib_input_dir} )
-    INSTALL(DIRECTORY ${lib_input_dir}/ DESTINATION "include/kaldet"
-        FILES_MATCHING PATTERN "*.h" PATTERN "LinkDef.h" EXCLUDE
-    )
-    GEN_ROOT_DICT_SOURCES( ${lib_input_dir}Dict.cxx )
-    LIST( APPEND lib_sources ${ROOT_DICT_OUTPUT_SOURCES} )
-ENDFOREACH()
+  list( APPEND LIB_SOURCES ${DICT_OUTPUT_DIR}/${DICT}.cxx )
+endforeach()
 
-FILE( GLOB_RECURSE ild_sources "src/ild/*.cc" )
+FILE( GLOB_RECURSE COMMON_SOURCES "src/ild/*.cc" )
 FILE( GLOB_RECURSE lib_headers "src/ild/*.h" )
 
-include_directories(src/ild/common)
+include_directories( src/ild/common )
+include_directories( ${DICT_INCLUDE_DIRS} )
 
-set(KalDetLib_srcs ${lib_sources} src/ild/*/*.cc )
+set( KalDetLib_srcs ${LIB_SOURCES} ${COMMON_SOURCES} )
 
 gaudi_add_library(KalDetLib ${KalDetLib_srcs}
 		 PUBLIC_HEADERS kaldet
diff --git a/Utilities/KalDet/cmake/MacroCheckPackageLibs.cmake b/Utilities/KalDet/cmake/MacroCheckPackageLibs.cmake
deleted file mode 100644
index c4451b3e..00000000
--- a/Utilities/KalDet/cmake/MacroCheckPackageLibs.cmake
+++ /dev/null
@@ -1,164 +0,0 @@
-##############################################################################
-# macro for checkin package libraries in ${PKG_ROOT}/lib
-#
-#
-# macro usage:
-#   CHECK_PACKAGE_LIBS( PACKAGE_NAME stdlib1 stdlib2 ... stdlibn )
-#       only standard libraries should be passed as arguments to the macro
-#       component libraries are set by cmake in PKG_FIND_COMPONENTS (when
-#       calling FIND_PACKAGE with COMPONENTS argument) or through the
-#       variable PKG_USE_COMPONENTS
-#
-#
-# required variables:
-#   PKG_ROOT    : path to PKG root directory
-#
-#
-# returns following variables:
-#   PKG_LIBRARY_DIRS : list of paths to be used with LINK_DIRECTORIES
-#   PGK_LIBRARIES    : list of STANDARD libraries (NOT including COMPONENTS)
-#   PKG_COMPONENT_LIBRARIES    : list of COMPONENT libraries
-#   PKG_${COMPONENT}_FOUND     : set to TRUE or FALSE for each library
-#   PKG_${COMPONENT}_LIBRARY   : path to each individual library
-#
-#
-# PKG_LIBRARIES and PKG_LIBRARY_DIRS will be empty if any of the standard
-#   libraries is missing
-#
-# @author Jan Engels, Desy
-##############################################################################
-
-
-SET( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE )
-
-MACRO( CHECK_PACKAGE_LIBS _pkgname )
-
-    SET( _std_lib_missing FALSE )
-    SET( _ext_lib_missing FALSE )
-
-    SET( _std_libnames ${ARGN} )
-    SET( _ext_libnames ${${_pkgname}_FIND_COMPONENTS} ${${_pkgname}_USE_COMPONENTS} )
-
-    IF( _ext_libnames )
-        SEPARATE_ARGUMENTS( _ext_libnames )
-        LIST( REMOVE_DUPLICATES _ext_libnames )
-    ENDIF()
-
-    IF( NOT ${_pkgname}_FIND_QUIETLY )
-        MESSAGE( STATUS "Check for ${_pkgname}_LIBRARIES: ${_std_libnames}" )
-        IF( _ext_libnames )
-            MESSAGE( STATUS "Check for ${_pkgname}_COMPONENT_LIBRARIES: ${_ext_libnames}" )
-        ENDIF()
-    ENDIF()
-
-    SET( ${_pkgname}_LIBRARY_DIRS )
-    MARK_AS_ADVANCED( ${_pkgname}_LIBRARY_DIRS )
-
-    SET( ${_pkgname}_LIBRARIES )
-    MARK_AS_ADVANCED( ${_pkgname}_LIBRARIES )
-    
-    SET( ${_pkgname}_COMPONENT_LIBRARIES )
-    MARK_AS_ADVANCED( ${_pkgname}_COMPONENT_LIBRARIES )
-
-    SET( ${_pkgname}_COMPONENT_VARIABLES )
-    MARK_AS_ADVANCED( ${_pkgname}_COMPONENT_VARIABLES )
-
-    FOREACH( _libname ${_std_libnames} ${_ext_libnames} )
-
-        # flag to check if it is a standard or a component library
-        LIST( FIND _std_libnames "${_libname}" _aux )
-        IF( ${_aux} LESS 0 )
-           SET( _is_std_lib FALSE )
-        ELSE()
-           SET( _is_std_lib TRUE )
-        ENDIF()
-
-        # libname in upper case
-        STRING( TOUPPER ${_libname} _ulibname )
-
-        SET( ${_pkgname}_${_ulibname}_LIBRARY ${_pkgname}_${_ulibname}_LIBRARY-NOTFOUND )
-        MARK_AS_ADVANCED( ${_pkgname}_${_ulibname}_LIBRARY )
-
-        # WARNING: using PATH_SUFFIXES may cause problems when using variable CMAKE_FIND_ROOT_PATH
-        #           this problem does not occur if expanding PATHS
-        #           look in FindMySQL.cmake for more info
-        #FIND_LIBRARY( ${_pkgname}_${_ulibname}_LIBRARY NAMES ${_libname} PATHS
-        #    ${${_pkgname}_ROOT} ${${_pkgname}_DIR} ${${_pkgname}_LIB_SEARCH_PATH}
-        #    PATH_SUFFIXES lib64 lib
-        #    NO_DEFAULT_PATH
-        #)
-
-        FIND_LIBRARY( ${_pkgname}_${_ulibname}_LIBRARY NAMES ${_libname} PATHS
-            ${${_pkgname}_ROOT}/lib64 ${${_pkgname}_ROOT}/lib
-            ${${_pkgname}_DIR}/lib64 ${${_pkgname}_DIR}/lib
-            ${${_pkgname}_LIB_SEARCH_PATH} ${${_pkgname}_LIB_SEARCH_PATH}/lib64 ${${_pkgname}_LIB_SEARCH_PATH}/lib
-            NO_DEFAULT_PATH
-        )
-
-        IF( NOT ${_pkgname}_DIR )
-            FIND_LIBRARY( ${_pkgname}_${_ulibname}_LIBRARY NAMES ${_libname} )
-        ENDIF()
-        
-        IF( ${_pkgname}_FIND_REQUIRED )
-            LIST( APPEND ${_pkgname}_COMPONENT_VARIABLES ${_pkgname}_${_ulibname}_LIBRARY )
-        ENDIF()
-
-        IF( ${_pkgname}_${_ulibname}_LIBRARY ) # if library found
-
-            SET( ${_pkgname}_${_ulibname}_FOUND TRUE )
-            
-            # split libraries in PKG_LIBRARIES and PKG_COMPONENT_LIBRARIES
-            IF( _is_std_lib )
-                LIST( APPEND ${_pkgname}_LIBRARIES ${${_pkgname}_${_ulibname}_LIBRARY} )
-            ELSE()
-                LIST( APPEND ${_pkgname}_COMPONENT_LIBRARIES ${${_pkgname}_${_ulibname}_LIBRARY} )
-            ENDIF()
-
-            GET_FILENAME_COMPONENT( _aux ${${_pkgname}_${_ulibname}_LIBRARY} PATH )
-            LIST( APPEND ${_pkgname}_LIBRARY_DIRS ${_aux} )
-
-            IF( NOT ${_pkgname}_FIND_QUIETLY )
-                MESSAGE( STATUS "Check for ${_pkgname}_${_ulibname}_LIBRARY: ${${_pkgname}_${_ulibname}_LIBRARY} -- ok" )
-            ENDIF()
-
-        ELSE() # library not found
-
-            SET( ${_pkgname}_${_ulibname}_FOUND FALSE )
-
-            IF( _is_std_lib )
-                SET( _std_lib_missing TRUE )
-            ELSE()
-                SET( _ext_lib_missing TRUE )
-            ENDIF()
-
-            IF( NOT ${_pkgname}_FIND_QUIETLY )
-                MESSAGE( STATUS "Check for ${_pkgname}_${_ulibname}_LIBRARY: ${_libname} -- failed" )
-            ENDIF()
-
-        ENDIF()
-
-    ENDFOREACH()
-
-    # clear PKG_LIBRARIES if standard library is missing
-    IF( _std_lib_missing )
-        SET( ${_pkgname}_LIBRARIES )
-    ENDIF()
-
-    # clear PKG_COMPONENT_LIBRARIES if a component library is missing and
-    # FIND_PACKAGE called with REQUIRED argument
-    IF( _ext_lib_missing AND ${_pkgname}_FIND_REQUIRED )
-        SET( ${_pkgname}_COMPONENT_LIBRARIES )
-    ENDIF()
-
-    # remove duplicate paths in PKG_LIBRARY_DIRS
-    IF( ${_pkgname}_LIBRARY_DIRS )
-        LIST( REMOVE_DUPLICATES ${_pkgname}_LIBRARY_DIRS )
-    ENDIF()
-
-    # debug
-    #MESSAGE( STATUS "${_pkgname}_LIBRARIES: ${${_pkgname}_LIBRARIES}" )
-    #MESSAGE( STATUS "${_pkgname}_COMPONENT_LIBRARIES: ${${_pkgname}_COMPONENT_LIBRARIES}" )
-    #MESSAGE( STATUS "${_pkgname}_LIBRARY_DIRS: ${${_pkgname}_LIBRARY_DIRS}" )
-
-ENDMACRO( CHECK_PACKAGE_LIBS _pkgname )
-
diff --git a/Utilities/KalDet/cmake/MacroCheckPackageVersion.cmake b/Utilities/KalDet/cmake/MacroCheckPackageVersion.cmake
deleted file mode 100644
index e3ec75d9..00000000
--- a/Utilities/KalDet/cmake/MacroCheckPackageVersion.cmake
+++ /dev/null
@@ -1,108 +0,0 @@
-##############################################################################
-# macro for checking a package version
-#
-# this macro should be called from your PKGVersion.cmake or from a
-#   FindPKG.cmake module with the following arguments:
-#       _pkgname    : The package name
-#       _iversion   : The installed version of the package
-#
-#
-# the following conventions are used:
-#
-#   if FIND_PACKAGE is called with EXACT argument than the version has to
-#   match EXACTLY, i.e.:
-#       1.5 == 1.5
-#       1.5 == 1.5.0
-#       1.5 == 1.5.0.0
-#       1.5.2 == 1.5.2.0
-#       1.5.2.1 == 1.5.2.1
-#       1.5.2 != 1.5.2.1
-#       1.5 != 1.5.0.1
-#
-#
-#   otherwise a MINIMUM_REQUIRED version is checked for, i.e. the same
-#   behavior as with the cmake variable CMAKE_MINIMUM_REQUIRED, e.g.:
-#       searching: 1.2     --> installed: 1.5.2.2 --> compatible
-#       searching: 1.5     --> installed: 1.5.2.2 --> compatible
-#       searching: 1.5.2.1 --> installed: 1.5.2.2 --> compatible
-#       searching: 1.5.2.3 --> installed: 1.5.2.2 --> unsuitable
-#       searching: 1.7     --> installed: 1.5.2.2 --> unsuitable
-#
-#
-# following variables are returned (internally to cmake):
-#   PACKAGE_VERSION_EXACT       : set to TRUE if exact version was found
-#   PACKAGE_VERSION_COMPATIBLE  : set to TRUE if version is compatible
-#   PACKAGE_VERSION_UNSUITABLE  : set to TRUE if version found is unsuitable
-#
-#
-# @author Jan Engels, Desy IT
-##############################################################################
-
-# these variables are evaluated internally by the cmake command FIND_PACKAGE to mark this
-# package as suitable or not depending on the required version
-SET( PACKAGE_VERSION_EXACT FALSE )
-SET( PACKAGE_VERSION_COMPATIBLE TRUE )
-SET( PACKAGE_VERSION_UNSUITABLE FALSE )
-
-
-# cmake internal variable PACKAGE_FIND_NAME is not defined on FindPKG.cmake
-# modules, therefore it is passed as an argument to the macro
-# _iversion is the installed version of the package
-# _sversion is the version searched by the user with FIND_PACKAGE
-#MACRO( CHECK_PACKAGE_VERSION _pkgname _iversion )
-MACRO( CHECK_PACKAGE_VERSION _pkgname ) # left with one argument only for backwards compatibility
-
-    IF( NOT "${ARGV1}" STREQUAL "" )
-        SET( _iversion ${ARGV1} )
-    ELSE()
-        SET( _iversion ${${_pkgname}_VERSION_MAJOR}.${${_pkgname}_VERSION_MINOR}.${${_pkgname}_VERSION_PATCH}.${${_pkgname}_VERSION_TWEAK} )
-    ENDIF()
-
-    #SET( _sversion_major ${${_pkgname}_FIND_VERSION_MAJOR} )
-    #SET( _sversion_minor ${${_pkgname}_FIND_VERSION_MINOR} )
-
-    SET( _sversion ${${_pkgname}_FIND_VERSION} )
-
-    IF( NOT ${_pkgname}_FIND_QUIETLY )
-        MESSAGE( STATUS "Check for ${_pkgname} (${_iversion})" )
-    ENDIF()
-
-    # only do work if FIND_PACKAGE called with a version argument
-    IF( _sversion )
-
-        #IF( NOT ${_pkgname}_FIND_QUIETLY )
-        #    MESSAGE( STATUS "Check for ${_pkgname}: looking for version ${_sversion}" )
-        #ENDIF()
-
-        IF( ${_iversion} VERSION_EQUAL ${_sversion} ) # if version matches EXACTLY
-            #IF( NOT ${_pkgname}_FIND_QUIETLY )
-            #    MESSAGE( STATUS "Check for ${_pkgname}: exact version found: ${_iversion}" )
-            #ENDIF()
-            SET( PACKAGE_VERSION_EXACT TRUE )
-        ELSE() # if version does not match EXACTLY, check if it is compatible/suitable
-
-            # installed version must be greater or equal than version searched by the user, i.e.
-            # like with the CMAKE_MINIMUM_REQUIRED commando
-            # if user asks for version 1.2.5 then any version >= 1.2.5 is suitable/compatible
-            IF( NOT ${_sversion} VERSION_LESS ${_iversion} )
-                SET( PACKAGE_VERSION_UNSUITABLE TRUE )
-            ENDIF()
-            # -------------------------------------------------------------------------------------
-
-            IF( ${_pkgname}_FIND_VERSION_EXACT ) # if exact version was required search must fail!!
-                #IF( NOT ${_pkgname}_FIND_QUIETLY )
-                #    MESSAGE( "Check for ${_pkgname}: could not find exact version" )
-                #ENDIF()
-                SET( PACKAGE_VERSION_UNSUITABLE TRUE )
-            ENDIF()
-
-        ENDIF()
-
-        IF( PACKAGE_VERSION_UNSUITABLE )
-            SET( PACKAGE_VERSION_COMPATIBLE FALSE )
-        ENDIF()
-
-    ENDIF( _sversion )
-
-ENDMACRO( CHECK_PACKAGE_VERSION )
-
diff --git a/Utilities/KalDet/cmake/MacroRootDict.cmake b/Utilities/KalDet/cmake/MacroRootDict.cmake
deleted file mode 100644
index eb1059ed..00000000
--- a/Utilities/KalDet/cmake/MacroRootDict.cmake
+++ /dev/null
@@ -1,145 +0,0 @@
-IF(APPLE)
-    SET( LD_LIBRARY_PATH_VAR DYLD_LIBRARY_PATH )
-ELSE()
-    SET( LD_LIBRARY_PATH_VAR LD_LIBRARY_PATH )
-ENDIF()
-SET( LD_LIBRARY_PATH_CONTENTS $ENV{${LD_LIBRARY_PATH_VAR}} )
-#MESSAGE( STATUS "LD_LIBRARY_PATH_CONTENTS: ${LD_LIBRARY_PATH_CONTENTS}" )
-#MESSAGE( STATUS "ROOT_CINT_EXECUTABLE: ${ROOT_CINT_EXECUTABLE}" )
-
-SET( ROOT_CINT_WRAPPER ${LD_LIBRARY_PATH_VAR}=${ROOT_LIBRARY_DIR}:${LD_LIBRARY_PATH_CONTENTS} ${ROOT_CINT_EXECUTABLE} )
-
-IF( NOT DEFINED ROOT_DICT_OUTPUT_DIR )
-    SET( ROOT_DICT_OUTPUT_DIR "${PROJECT_BINARY_DIR}/rootdict" )
-ENDIF()
-
-# clean generated header files with 'make clean'
-SET_DIRECTORY_PROPERTIES( PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${ROOT_DICT_OUTPUT_DIR}" )
-
-IF( NOT ROOT_FIND_QUIETLY )
-    MESSAGE( STATUS "Check for ROOT_DICT_OUTPUT_DIR: ${PROJECT_BINARY_DIR}/rootdict" )
-    MESSAGE( STATUS "Check for ROOT_DICT_CINT_DEFINITIONS: ${ROOT_DICT_CINT_DEFINITIONS}" )
-ENDIF()
-
-
-# ============================================================================
-# helper macro to prepare input headers for GEN_ROOT_DICT_SOURCES
-#   sorts LinkDef.h to be the last header (required by rootcint)
-#
-# arguments:
-#   input_dir - directory to search for headers matching *.h
-#
-# returns:
-#   ROOT_DICT_INPUT_HEADERS - all header files found in input_dir with
-#       LinkDef.h as the last header (if found)
-#
-# ----------------------------------------------------------------------------
-MACRO( PREPARE_ROOT_DICT_HEADERS _input_dir )
-
-    FILE( GLOB ROOT_DICT_INPUT_HEADERS "${_input_dir}/*.h" )
-    FILE( GLOB _linkdef_hdr "${_input_dir}/LinkDef.h" )
-
-    #LIST( FIND ROOT_DICT_INPUT_HEADERS ${_linkdef_hdr} _aux )
-    #IF( ${_aux} EQUAL 0 OR ${_aux} GREATER 0 )
-    #    LIST( REMOVE_ITEM ROOT_DICT_INPUT_HEADERS "${_linkdef_hdr}" )
-    #    LIST( APPEND ROOT_DICT_INPUT_HEADERS "${_linkdef_hdr}" )
-    #ENDIF()
-
-    IF( _linkdef_hdr )
-        LIST( REMOVE_ITEM ROOT_DICT_INPUT_HEADERS "${_linkdef_hdr}" )
-        LIST( APPEND ROOT_DICT_INPUT_HEADERS "${_linkdef_hdr}")
-    ENDIF()
-
-    #MESSAGE( STATUS "ROOT_DICT_INPUT_HEADERS: ${ROOT_DICT_INPUT_HEADERS}" )
-
-ENDMACRO( PREPARE_ROOT_DICT_HEADERS )
-
-
-
-# ============================================================================
-# helper macro to generate Linkdef.h files for rootcint
-#
-# arguments:
-#   namespace - prefix used for creating header <namespace>_Linkdef.h
-#   ARGN      - list of sources to be used for generating Linkdef.h
-#
-# returns:
-#   ROOT_DICT_INPUT_HEADERS - all header files + <namespace>_LinkDef.h in the
-#       correct order to be used by macro GEN_ROOT_DICT_SOURCES
-#
-# ----------------------------------------------------------------------------
-MACRO( GEN_ROOT_DICT_LINKDEF_HEADER _namespace )
-
-    SET( _input_headers ${ARGN} )
-    SET( _linkdef_header "${ROOT_DICT_OUTPUT_DIR}/${_namespace}_Linkdef.h" )
-
-    FOREACH( _header ${_input_headers} )
-        SET( ${_namespace}_file_contents "${${_namespace}_file_contents}\\#pragma link C++ defined_in \\\"${_header}\\\"\\;\\\\n" )
-    ENDFOREACH()
-
-    ADD_CUSTOM_COMMAND(
-        OUTPUT ${_linkdef_header}
-        COMMAND mkdir -p ${ROOT_DICT_OUTPUT_DIR}
-        COMMAND printf "${${_namespace}_file_contents}" > ${_linkdef_header}
-        DEPENDS ${_input_headers}
-        COMMENT "generating: ${_linkdef_header}"
-    )
-
-    SET( ROOT_DICT_INPUT_HEADERS ${_input_headers} ${_linkdef_header} )
-
-ENDMACRO()
-
-
-# ============================================================================
-# macro for generating root dict sources with rootcint
-#
-# arguments:
-#   dict_src_filename - filename of the dictionary source (to be generated)
-#
-# requires following variables:
-#       ROOT_DICT_INPUT_HEADERS - list of headers needed to generate dict source
-#           * if LinkDef.h is in the list it must be at the end !!
-#       ROOT_DICT_INCLUDE_DIRS - list of include dirs to pass to rootcint -I..
-#       ROOT_DICT_CINT_DEFINITIONS - extra definitions to pass to rootcint
-#       ROOT_DICT_OUTPUT_DIR - where dictionary source should be generated
-#
-# returns:
-#       ROOT_DICT_OUTPUT_SOURCES - list containing generated source and other
-#           previously generated sources
-                                    
-# ----------------------------------------------------------------------------
-MACRO( GEN_ROOT_DICT_SOURCE _dict_src_filename )
-
-    # TODO check for ROOT_CINT_EXECUTABLE
-
-    # need to prefix all include dirs with -I
-    set( _dict_includes )
-    FOREACH( _inc ${ROOT_DICT_INCLUDE_DIRS} )
-        SET( _dict_includes "${_dict_includes}\t-I${_inc}")  #fg: the \t fixes a wired string expansion 
-        #SET( _dict_includes ${_dict_includes} -I${_inc} )
-    ENDFOREACH()
-
-    STRING( REPLACE "/" "_" _dict_src_filename_nosc ${_dict_src_filename} )
-    SET( _dict_src_file ${ROOT_DICT_OUTPUT_DIR}/${_dict_src_filename_nosc} )
-    STRING( REGEX REPLACE "^(.*)\\.(.*)$" "\\1.h" _dict_hdr_file "${_dict_src_file}" )
-    #message("fucd debug: ${_dict_src_file} ${ROOT_DICT_CINT_DEFINITIONS} ${_dict_includes} ${ROOT_DICT_INPUT_HEADERS}")
-    ADD_CUSTOM_COMMAND(
-        OUTPUT  ${_dict_src_file} ${_dict_hdr_file}
-        COMMAND mkdir -p ${ROOT_DICT_OUTPUT_DIR}
-        COMMAND ${ROOT_CINT_WRAPPER} -f "${_dict_src_file}" -c ${ROOT_DICT_CINT_DEFINITIONS} ${_dict_includes} ${ROOT_DICT_INPUT_HEADERS}
-        WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-        DEPENDS ${ROOT_DICT_INPUT_HEADERS}
-        COMMENT "generating: ${_dict_src_file} ${_dict_hdr_file}"
-    )
-    LIST( APPEND ROOT_DICT_OUTPUT_SOURCES ${_dict_src_file} )
-
-ENDMACRO()
-
-# for backwards compatibility
-MACRO( GEN_ROOT_DICT_SOURCES _dict_src_filename )
-    #MESSAGE( "USING DEPRECATED GEN_ROOT_DICT_SOURCES. PLEASE USE GEN_ROOT_DICT_SOURCE instead." )
-    SET( ROOT_DICT_OUTPUT_SOURCES )
-    GEN_ROOT_DICT_SOURCE( ${_dict_src_filename} )
-ENDMACRO()
-# ============================================================================
-
diff --git a/Utilities/KalDet/cmake/MyFindROOT.cmake b/Utilities/KalDet/cmake/MyFindROOT.cmake
deleted file mode 100644
index 567ce159..00000000
--- a/Utilities/KalDet/cmake/MyFindROOT.cmake
+++ /dev/null
@@ -1,316 +0,0 @@
-###############################################################################
-# cmake module for finding ROOT
-#
-# requires:
-#   MacroCheckPackageLibs.cmake for checking package libraries
-#
-# Following cmake variables are returned by this module:
-#
-#   ROOT_FOUND              : set to TRUE if ROOT found
-#       If FIND_PACKAGE is called with REQUIRED and COMPONENTS arguments
-#       ROOT_FOUND is only set to TRUE if ALL components are found.
-#       If REQUIRED is NOT set components may or may not be available
-#
-#   ROOT_LIBRARIES          : list of ROOT libraries (NOT including COMPONENTS)
-#   ROOT_INCLUDE_DIRS       : list of paths to be used with INCLUDE_DIRECTORIES
-#   ROOT_LIBRARY_DIRS       : list of paths to be used with LINK_DIRECTORIES
-#   ROOT_COMPONENT_LIBRARIES    : list of ROOT component libraries
-#   ROOT_${COMPONENT}_FOUND     : set to TRUE or FALSE for each library
-#   ROOT_${COMPONENT}_LIBRARY   : path to individual libraries
-#   
-#
-#   Please note that by convention components should be entered exactly as
-#   the library names, i.e. the component name equivalent to the library
-#   $ROOTSYS/lib/libMathMore.so should be called MathMore and NOT:
-#       mathmore or Mathmore or MATHMORE
-#
-#   However to follow the usual cmake convention it is agreed that the
-#   ROOT_${COMPONENT}_FOUND and ROOT_${COMPONENT}_LIBRARY variables are ALL
-#   uppercase, i.e. the MathMore component returns: ROOT_MATHMORE_FOUND and
-#   ROOT_MATHMORE_LIBRARY NOT ROOT_MathMore_FOUND or ROOT_MathMore_LIBRARY
-#
-#
-# The additional ROOT components should be defined as follows:
-# FIND_PACKAGE( ROOT COMPONENTS MathMore Gdml Geom ...)
-#
-# If components are required use:
-# FIND_PACKAGE( ROOT REQUIRED COMPONENTS MathMore Gdml Geom ...)
-#
-# If only root is required and components are NOT required use:
-# FIND_PACKAGE( ROOT REQUIRED )
-# FIND_PACKAGE( ROOT COMPONENTS MathMore Gdml Geom ... QUIET )
-#   then you need to check for ROOT_MATHMORE_FOUND, ROOT_GDML_FOUND, etc.
-#
-# The variable ROOT_USE_COMPONENTS can also be used before calling
-# FIND_PACKAGE, i.e.:
-# SET( ROOT_USE_COMPONENTS MathMore Gdml Geom )
-# FIND_PACKAGE( ROOT REQUIRED ) # all ROOT_USE_COMPONENTS must also be found
-# FIND_PACKAGE( ROOT ) # check for ROOT_FOUND, ROOT_MATHMORE_FOUND, etc.
-#
-# @author Jan Engels, DESY
-###############################################################################
-
-# ==============================================
-# ===        ROOT_CONFIG_EXECUTABLE          ===
-# ==============================================
-
-SET( ROOT_CONFIG_EXECUTABLE ROOT_CONFIG_EXECUTABLE-NOTFOUND )
-MARK_AS_ADVANCED( ROOT_CONFIG_EXECUTABLE )
-# FIND_PROGRAM: Once one of the calls succeeds the result variable will be set and stored in the cache so that no call will search again. 
-FIND_PROGRAM( ROOT_CONFIG_EXECUTABLE root-config PATHS ${ROOT_DIR}/bin NO_DEFAULT_PATH )
-FIND_PROGRAM( ROOT_CONFIG_EXECUTABLE root-config PATHS $ENV{ROOTSYS}/bin NO_DEFAULT_PATH)
-FIND_PROGRAM( ROOT_CONFIG_EXECUTABLE root-config PATHS ENV PATH )
-FIND_PROGRAM( ROOT_CONFIG_EXECUTABLE root-config )
-
-IF( NOT ROOT_FIND_QUIETLY )
-    MESSAGE( STATUS "Check for ROOT_CONFIG_EXECUTABLE: ${ROOT_CONFIG_EXECUTABLE}" )
-ENDIF()
-
-IF( ROOT_CONFIG_EXECUTABLE )
-
-
-    # ==============================================
-    # ===          ROOT_VERSION                  ===
-    # ==============================================
-
-    INCLUDE( MacroCheckPackageVersion )
-    
-    EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --version
-        OUTPUT_VARIABLE _version
-        RESULT_VARIABLE _exit_code
-        OUTPUT_STRIP_TRAILING_WHITESPACE
-    )
-    IF( _exit_code EQUAL 0 )
-
-        # set required variables for MacroCheckPackageVersion
-        STRING(REGEX REPLACE "^([0-9]+).*" "\\1" ROOT_VERSION_MAJOR "${_version}")
-        STRING(REGEX REPLACE "^[0-9]+.([0-9]+).*" "\\1" ROOT_VERSION_MINOR "${_version}")
-        STRING(REGEX REPLACE "^[0-9]+.[0-9]+.([0-9]+).*" "\\1" ROOT_VERSION_PATCH "${_version}")
-
-        SET( ROOT_VERSION "${ROOT_VERSION_MAJOR}.${ROOT_VERSION_MINOR}.${ROOT_VERSION_PATCH}" )
-    ENDIF()
-
-    CHECK_PACKAGE_VERSION( ROOT ${ROOT_VERSION} )
-
-
-
-    # ==============================================
-    # ===          ROOT_PREFIX                   ===
-    # ==============================================
-
-    # get root prefix from root-config output
-    EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --prefix
-        OUTPUT_VARIABLE ROOT_PREFIX
-        RESULT_VARIABLE _exit_code
-        OUTPUT_STRIP_TRAILING_WHITESPACE
-    )
-    IF( NOT _exit_code EQUAL 0 )
-        # clear variable if root-config exits with error
-        # it might contain garbage
-        SET( ROOT_PREFIX )
-    ENDIF()
-
-    # PKG_ROOT variables are a cmake standard
-    # since this package is also called ROOT the variable name
-    # becomes ROOT_ROOT ...
-    SET( ROOT_ROOT ${ROOT_PREFIX} )
-
-
-
-    # ==============================================
-    # ===          ROOT_BIN_DIR                  ===
-    # ==============================================
-
-    # get bindir from root-config output
-    EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --bindir
-        OUTPUT_VARIABLE ROOT_BIN_DIR
-        RESULT_VARIABLE _exit_code
-        OUTPUT_STRIP_TRAILING_WHITESPACE
-    )
-    IF( NOT _exit_code EQUAL 0 )
-        # clear variable if root-config exits with error
-        # it might contain garbage
-        SET( ROOT_BIN_DIR )
-    ENDIF()
-
-
-
-    # ==============================================
-    # ===          ROOT_EXECUTABLE               ===
-    # ==============================================
-
-
-    SET( ROOT_EXECUTABLE ROOT_EXECUTABLE-NOTFOUND )
-    MARK_AS_ADVANCED( ROOT_EXECUTABLE )
-    FIND_PROGRAM( ROOT_EXECUTABLE root PATHS ${ROOT_BIN_DIR} NO_DEFAULT_PATH )
-
-    IF( NOT ROOT_FIND_QUIETLY )
-        MESSAGE( STATUS "Check for ROOT_EXECUTABLE: ${ROOT_EXECUTABLE}" )
-    ENDIF()
-
-
-
-
-    # ==============================================
-    # ===          ROOT_CINT_EXECUTABLE          ===
-    # ==============================================
-
-
-    # find rootcint
-    SET( ROOT_CINT_EXECUTABLE ROOT_CINT_EXECUTABLE-NOTFOUND )
-    MARK_AS_ADVANCED( ROOT_CINT_EXECUTABLE )
-    FIND_PROGRAM( ROOT_CINT_EXECUTABLE rootcint PATHS ${ROOT_BIN_DIR} NO_DEFAULT_PATH )
-
-    IF( NOT ROOT_FIND_QUIETLY )
-        MESSAGE( STATUS "Check for ROOT_CINT_EXECUTABLE: ${ROOT_CINT_EXECUTABLE}" )
-    ENDIF()
-
-
-
-    # ==============================================
-    # ===          ROOT_INCLUDE_DIR              ===
-    # ==============================================
-
-    # get include dir from root-config output
-    EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --incdir
-        OUTPUT_VARIABLE _inc_dir
-        RESULT_VARIABLE _exit_code
-        OUTPUT_STRIP_TRAILING_WHITESPACE
-    )
-    IF( NOT _exit_code EQUAL 0 )
-        # clear variable if root-config exits with error
-        # it might contain garbage
-        SET( _inc_dir )
-    ENDIF()
-
-
-    SET( ROOT_INCLUDE_DIRS ROOT_INCLUDE_DIRS-NOTFOUND )
-    MARK_AS_ADVANCED( ROOT_INCLUDE_DIRS )
-
-    FIND_PATH( ROOT_INCLUDE_DIRS
-        NAMES TH1.h
-        PATHS ${ROOT_DIR}/include ${_inc_dir}
-        NO_DEFAULT_PATH
-    )
-
-
-
-    # ==============================================
-    # ===            ROOT_LIBRARIES              ===
-    # ==============================================
-
-    # get library dir from root-config output
-    EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --libdir
-        OUTPUT_VARIABLE ROOT_LIBRARY_DIR
-        RESULT_VARIABLE _exit_code
-        OUTPUT_STRIP_TRAILING_WHITESPACE
-    )
-    IF( NOT _exit_code EQUAL 0 )
-        # clear variable if root-config exits with error
-        # it might contain garbage
-        SET( ROOT_LIBRARY_DIR )
-    ENDIF()
-
-
-
-    # ========== standard root libraries =================
-
-    # standard root libraries (without components)
-    SET( _root_libnames )
-
-    # get standard root libraries from 'root-config --libs' output
-    EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --noauxlibs --libs
-        OUTPUT_VARIABLE _aux
-        RESULT_VARIABLE _exit_code
-        OUTPUT_STRIP_TRAILING_WHITESPACE
-    )
-    IF( _exit_code EQUAL 0 )
-        
-        # create a list out of the output
-        SEPARATE_ARGUMENTS( _aux )
-
-        # remove first item -L compiler flag
-        LIST( REMOVE_AT _aux 0 )
-
-        FOREACH( _lib ${_aux} )
-
-            # extract libnames from -l compiler flags
-            STRING( REGEX REPLACE "^-.(.*)$" "\\1" _libname "${_lib}")
-
-            # fix for some root-config versions which export -lz even if using --noauxlibs
-            IF( NOT _libname STREQUAL "z" )
-
-                # append all library names into a list
-                LIST( APPEND _root_libnames ${_libname} )
-
-            ENDIF()
-
-        ENDFOREACH()
-
-    ENDIF()
-
-
-
-    # ========== additional root components =================
-
-    #LIST( APPEND ROOT_FIND_COMPONENTS Minuit2 ) # DEPRECATED !!!
-
-
-    # ---------- libraries --------------------------------------------------------
-    INCLUDE( MacroCheckPackageLibs )
-
-    SET( ROOT_LIB_SEARCH_PATH ${ROOT_LIBRARY_DIR} )
-
-    # only standard libraries should be passed as arguments to CHECK_PACKAGE_LIBS
-    # additional components are set by cmake in variable PKG_FIND_COMPONENTS
-    # first argument should be the package name
-    CHECK_PACKAGE_LIBS( ROOT ${_root_libnames} )
-
-
-
-
-    # ====== DL LIBRARY ==================================================
-    # workaround for cmake bug in 64 bit:
-    # see: http://public.kitware.com/mantis/view.php?id=10813
-    IF( CMAKE_SIZEOF_VOID_P EQUAL 8 )
-        FIND_LIBRARY( DL_LIB NAMES ${CMAKE_DL_LIBS} dl PATHS /usr/lib64 /lib64 NO_DEFAULT_PATH )
-    ENDIF( CMAKE_SIZEOF_VOID_P EQUAL 8 )
-
-    FIND_LIBRARY( DL_LIB NAMES ${CMAKE_DL_LIBS} dl )
-    MARK_AS_ADVANCED( DL_LIB )
-
-    IF( NOT ROOT_FIND_QUIETLY )
-        MESSAGE( STATUS "Check for libdl.so: ${DL_LIB}" )
-    ENDIF()
-
-ENDIF( ROOT_CONFIG_EXECUTABLE )
-
-# Threads library
-#FIND_PACKAGE( Threads REQUIRED)
-
-
-# ---------- final checking ---------------------------------------------------
-INCLUDE( FindPackageHandleStandardArgs )
-# set ROOT_FOUND to TRUE if all listed variables are TRUE and not empty
-# ROOT_COMPONENT_VARIABLES will be set if FIND_PACKAGE is called with REQUIRED argument
-FIND_PACKAGE_HANDLE_STANDARD_ARGS( ROOT DEFAULT_MSG ROOT_INCLUDE_DIRS ROOT_LIBRARIES ${ROOT_COMPONENT_VARIABLES} PACKAGE_VERSION_COMPATIBLE DL_LIB )
-
-IF( ROOT_FOUND )
-    LIST( APPEND ROOT_LIBRARIES ${DL_LIB} )
-    # FIXME DEPRECATED
-    SET( ROOT_DEFINITIONS "-DUSEROOT -DUSE_ROOT -DMARLIN_USE_ROOT" )
-    MARK_AS_ADVANCED( ROOT_DEFINITIONS )
-
-    # file including MACROS for generating root dictionary sources
-    GET_FILENAME_COMPONENT( _aux ${CMAKE_CURRENT_LIST_FILE} PATH )
-    SET( ROOT_DICT_MACROS_FILE ${_aux}/MacroRootDict.cmake )
-
-ENDIF( ROOT_FOUND )
-
-# ---------- cmake bug --------------------------------------------------------
-# ROOT_FIND_REQUIRED is not reset between FIND_PACKAGE calls, i.e. the following
-# code fails when geartgeo component not available: (fixed in cmake 2.8)
-# FIND_PACKAGE( ROOT REQUIRED )
-# FIND_PACKAGE( ROOT COMPONENTS geartgeo QUIET )
-SET( ROOT_FIND_REQUIRED )
-
diff --git a/Utilities/KalDet/src/gen/EXEventGen.cxx b/Utilities/KalDet/src/gen/EXEventGen.cxx
index fa509413..c10325c4 100644
--- a/Utilities/KalDet/src/gen/EXEventGen.cxx
+++ b/Utilities/KalDet/src/gen/EXEventGen.cxx
@@ -1,8 +1,8 @@
 #include "EXEventGen.h"
 //#include "EXVKalDetector.h"
 //#include <EXVMeasLayer.h>
-#include "kaldet/EXTPCKalDetector.h"
-#include <kaldet/EXTPCMeasLayer.h>
+#include "EXTPCKalDetector.h"
+#include <EXTPCMeasLayer.h>
 #include <kaltest/TPlane.h>
 #include <TRandom.h>
 #include <TMath.h>
diff --git a/Utilities/KalDet/src/lctpc/gearTPC/GearTPCCylinderMeasLayer.h b/Utilities/KalDet/src/lctpc/gearTPC/GearTPCCylinderMeasLayer.h
index e20af5be..14e60fdf 100644
--- a/Utilities/KalDet/src/lctpc/gearTPC/GearTPCCylinderMeasLayer.h
+++ b/Utilities/KalDet/src/lctpc/gearTPC/GearTPCCylinderMeasLayer.h
@@ -3,7 +3,7 @@
 #include <TVector3.h>
 #include <kaltest/TKalMatrix.h>
 #include <kaltest/TCylinder.h>
-#include <kaldet/EXTPCMeasLayer.h>
+#include <EXTPCMeasLayer.h>
 //#include <KalTrackDim.h>
 
 #include <TMath.h>
diff --git a/Utilities/KalTest/CMakeLists.txt b/Utilities/KalTest/CMakeLists.txt
index 65fba19a..296cf824 100644
--- a/Utilities/KalTest/CMakeLists.txt
+++ b/Utilities/KalTest/CMakeLists.txt
@@ -9,41 +9,49 @@ find_package(ROOT REQUIRED COMPONENTS MathCore)
 
 gaudi_depends_on_subdirs()
 
-list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake)
-
-SET( ROOT_DICT_CINT_DEFINITIONS "-DHANDLE_DICT_EXCEPTIONS=IGNORED_FOR_CINT" )
-
-INCLUDE( MyFindROOT )
-INCLUDE( MacroRootDict )
-
-SET( lib_input_dirs src/geomlib src/kallib src/kaltracklib src/utils )
-
-FOREACH( lib_input_dir ${lib_input_dirs} )
-    LIST( APPEND ROOT_DICT_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/${lib_input_dir} )
-ENDFOREACH()
-
-#MESSAGE( STATUS "ROOT_DICT_INCLUDE_DIRS: ${ROOT_DICT_INCLUDE_DIRS}" )
-
-FOREACH( lib_input_dir ${lib_input_dirs} )
-
-    AUX_SOURCE_DIRECTORY( ${lib_input_dir} lib_sources )
-
-    PREPARE_ROOT_DICT_HEADERS( ${lib_input_dir} )
-
-    INSTALL(DIRECTORY ${lib_input_dir}/ DESTINATION "include/kaltest"
-        FILES_MATCHING PATTERN "*.h" PATTERN "LinkDef.h" EXCLUDE
-    )
-
-    GEN_ROOT_DICT_SOURCES( ${lib_input_dir}Dict.cxx )
-
-    LIST( APPEND lib_sources ${ROOT_DICT_OUTPUT_SOURCES} )
-
-ENDFOREACH()
-
-include_directories( ${ROOT_DICT_INCLUDE_DIRS} )
+set( DICT_CINT_DEFINITIONS "HANDLE_DICT_EXCEPTIONS=IGNORED_FOR_CINT" )
+set( DICT_INPUT_DIRS geomlib kallib kaltracklib utils )
+set( DICT_OUTPUT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/rootdict )
+
+foreach( DICT ${DICT_INPUT_DIRS} )
+  list( APPEND DICT_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/src/${DICT} )
+  aux_source_directory( src/${DICT} LIB_SOURCES )
+endforeach()
+
+foreach( DICT ${DICT_INPUT_DIRS} )
+  file( GLOB DICT_HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/${DICT}/*.h" )
+  file( GLOB LINKDEFS "${CMAKE_CURRENT_SOURCE_DIR}/src/${DICT}/LinkDef.h" )
+
+  if( LINKDEFS )
+    list( REMOVE_ITEM DICT_HEADER_FILES "${LINKDEFS}" )
+  endif()
+    
+  add_custom_command(OUTPUT ${DICT_OUTPUT_DIR}/${DICT}.cxx ${DICT_OUTPUT_DIR}/${DICT}_rdict.pcm
+                     COMMAND ${ROOT_rootcling_CMD}
+                     ARGS -f ${DICT_OUTPUT_DIR}/${DICT}.cxx -s ${DICT_OUTPUT_DIR}/${DICT} -inlineInputHeader
+                     "$<$<BOOL:$<JOIN:${DICT_CINT_DEFINITIONS},>>:-D$<JOIN:${DICT_CINT_DEFINITIONS},;-D>>"
+                     "$<$<BOOL:$<JOIN:${DICT_INCLUDE_DIRS},>>:-I$<JOIN:${DICT_INCLUDE_DIRS},;-I>>"
+                     "$<JOIN:${DICT_HEADER_FILES},;>" "$<JOIN:${LINKDEFS},;>"
+                     DEPENDS ${DICT_HEADER_FILES} ${LINKDEFS}
+                     COMMAND_EXPAND_LISTS
+                     )
+  add_custom_target( ${DICT} DEPENDS ${DICT_OUTPUT_DIR}/${DICT}.cxx ${DICT_OUTPUT_DIR}/${DICT}_rdict.pcm )
+
+  set_source_files_properties(${DICT_OUTPUT_DIR}/${DICT}.cxx ${DICT_OUTPUT_DIR}/${DICT}_rdict.pcm
+                              PROPERTIES
+                              GENERATED TRUE
+                              COMPILE_FLAGS "-Wno-unused-function -Wno-overlength-strings"
+			      )
+
+  install(FILES ${DICT_OUTPUT_DIR}/${DICT}_rdict.pcm DESTINATION lib)
+
+  list( APPEND LIB_SOURCES ${DICT_OUTPUT_DIR}/${DICT}.cxx )
+endforeach()
+
+include_directories( ${DICT_INCLUDE_DIRS} )
 include_directories( ${ROOT_INCLUDE_DIRS} )
 
-set(KalTestLib_srcs ${lib_sources})
+set(KalTestLib_srcs ${LIB_SOURCES})
 
 gaudi_add_library(KalTestLib ${KalTestLib_srcs}
 			     PUBLIC_HEADERS kaltest
diff --git a/Utilities/KalTest/cmake/MacroCheckPackageLibs.cmake b/Utilities/KalTest/cmake/MacroCheckPackageLibs.cmake
deleted file mode 100644
index c4451b3e..00000000
--- a/Utilities/KalTest/cmake/MacroCheckPackageLibs.cmake
+++ /dev/null
@@ -1,164 +0,0 @@
-##############################################################################
-# macro for checkin package libraries in ${PKG_ROOT}/lib
-#
-#
-# macro usage:
-#   CHECK_PACKAGE_LIBS( PACKAGE_NAME stdlib1 stdlib2 ... stdlibn )
-#       only standard libraries should be passed as arguments to the macro
-#       component libraries are set by cmake in PKG_FIND_COMPONENTS (when
-#       calling FIND_PACKAGE with COMPONENTS argument) or through the
-#       variable PKG_USE_COMPONENTS
-#
-#
-# required variables:
-#   PKG_ROOT    : path to PKG root directory
-#
-#
-# returns following variables:
-#   PKG_LIBRARY_DIRS : list of paths to be used with LINK_DIRECTORIES
-#   PGK_LIBRARIES    : list of STANDARD libraries (NOT including COMPONENTS)
-#   PKG_COMPONENT_LIBRARIES    : list of COMPONENT libraries
-#   PKG_${COMPONENT}_FOUND     : set to TRUE or FALSE for each library
-#   PKG_${COMPONENT}_LIBRARY   : path to each individual library
-#
-#
-# PKG_LIBRARIES and PKG_LIBRARY_DIRS will be empty if any of the standard
-#   libraries is missing
-#
-# @author Jan Engels, Desy
-##############################################################################
-
-
-SET( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE )
-
-MACRO( CHECK_PACKAGE_LIBS _pkgname )
-
-    SET( _std_lib_missing FALSE )
-    SET( _ext_lib_missing FALSE )
-
-    SET( _std_libnames ${ARGN} )
-    SET( _ext_libnames ${${_pkgname}_FIND_COMPONENTS} ${${_pkgname}_USE_COMPONENTS} )
-
-    IF( _ext_libnames )
-        SEPARATE_ARGUMENTS( _ext_libnames )
-        LIST( REMOVE_DUPLICATES _ext_libnames )
-    ENDIF()
-
-    IF( NOT ${_pkgname}_FIND_QUIETLY )
-        MESSAGE( STATUS "Check for ${_pkgname}_LIBRARIES: ${_std_libnames}" )
-        IF( _ext_libnames )
-            MESSAGE( STATUS "Check for ${_pkgname}_COMPONENT_LIBRARIES: ${_ext_libnames}" )
-        ENDIF()
-    ENDIF()
-
-    SET( ${_pkgname}_LIBRARY_DIRS )
-    MARK_AS_ADVANCED( ${_pkgname}_LIBRARY_DIRS )
-
-    SET( ${_pkgname}_LIBRARIES )
-    MARK_AS_ADVANCED( ${_pkgname}_LIBRARIES )
-    
-    SET( ${_pkgname}_COMPONENT_LIBRARIES )
-    MARK_AS_ADVANCED( ${_pkgname}_COMPONENT_LIBRARIES )
-
-    SET( ${_pkgname}_COMPONENT_VARIABLES )
-    MARK_AS_ADVANCED( ${_pkgname}_COMPONENT_VARIABLES )
-
-    FOREACH( _libname ${_std_libnames} ${_ext_libnames} )
-
-        # flag to check if it is a standard or a component library
-        LIST( FIND _std_libnames "${_libname}" _aux )
-        IF( ${_aux} LESS 0 )
-           SET( _is_std_lib FALSE )
-        ELSE()
-           SET( _is_std_lib TRUE )
-        ENDIF()
-
-        # libname in upper case
-        STRING( TOUPPER ${_libname} _ulibname )
-
-        SET( ${_pkgname}_${_ulibname}_LIBRARY ${_pkgname}_${_ulibname}_LIBRARY-NOTFOUND )
-        MARK_AS_ADVANCED( ${_pkgname}_${_ulibname}_LIBRARY )
-
-        # WARNING: using PATH_SUFFIXES may cause problems when using variable CMAKE_FIND_ROOT_PATH
-        #           this problem does not occur if expanding PATHS
-        #           look in FindMySQL.cmake for more info
-        #FIND_LIBRARY( ${_pkgname}_${_ulibname}_LIBRARY NAMES ${_libname} PATHS
-        #    ${${_pkgname}_ROOT} ${${_pkgname}_DIR} ${${_pkgname}_LIB_SEARCH_PATH}
-        #    PATH_SUFFIXES lib64 lib
-        #    NO_DEFAULT_PATH
-        #)
-
-        FIND_LIBRARY( ${_pkgname}_${_ulibname}_LIBRARY NAMES ${_libname} PATHS
-            ${${_pkgname}_ROOT}/lib64 ${${_pkgname}_ROOT}/lib
-            ${${_pkgname}_DIR}/lib64 ${${_pkgname}_DIR}/lib
-            ${${_pkgname}_LIB_SEARCH_PATH} ${${_pkgname}_LIB_SEARCH_PATH}/lib64 ${${_pkgname}_LIB_SEARCH_PATH}/lib
-            NO_DEFAULT_PATH
-        )
-
-        IF( NOT ${_pkgname}_DIR )
-            FIND_LIBRARY( ${_pkgname}_${_ulibname}_LIBRARY NAMES ${_libname} )
-        ENDIF()
-        
-        IF( ${_pkgname}_FIND_REQUIRED )
-            LIST( APPEND ${_pkgname}_COMPONENT_VARIABLES ${_pkgname}_${_ulibname}_LIBRARY )
-        ENDIF()
-
-        IF( ${_pkgname}_${_ulibname}_LIBRARY ) # if library found
-
-            SET( ${_pkgname}_${_ulibname}_FOUND TRUE )
-            
-            # split libraries in PKG_LIBRARIES and PKG_COMPONENT_LIBRARIES
-            IF( _is_std_lib )
-                LIST( APPEND ${_pkgname}_LIBRARIES ${${_pkgname}_${_ulibname}_LIBRARY} )
-            ELSE()
-                LIST( APPEND ${_pkgname}_COMPONENT_LIBRARIES ${${_pkgname}_${_ulibname}_LIBRARY} )
-            ENDIF()
-
-            GET_FILENAME_COMPONENT( _aux ${${_pkgname}_${_ulibname}_LIBRARY} PATH )
-            LIST( APPEND ${_pkgname}_LIBRARY_DIRS ${_aux} )
-
-            IF( NOT ${_pkgname}_FIND_QUIETLY )
-                MESSAGE( STATUS "Check for ${_pkgname}_${_ulibname}_LIBRARY: ${${_pkgname}_${_ulibname}_LIBRARY} -- ok" )
-            ENDIF()
-
-        ELSE() # library not found
-
-            SET( ${_pkgname}_${_ulibname}_FOUND FALSE )
-
-            IF( _is_std_lib )
-                SET( _std_lib_missing TRUE )
-            ELSE()
-                SET( _ext_lib_missing TRUE )
-            ENDIF()
-
-            IF( NOT ${_pkgname}_FIND_QUIETLY )
-                MESSAGE( STATUS "Check for ${_pkgname}_${_ulibname}_LIBRARY: ${_libname} -- failed" )
-            ENDIF()
-
-        ENDIF()
-
-    ENDFOREACH()
-
-    # clear PKG_LIBRARIES if standard library is missing
-    IF( _std_lib_missing )
-        SET( ${_pkgname}_LIBRARIES )
-    ENDIF()
-
-    # clear PKG_COMPONENT_LIBRARIES if a component library is missing and
-    # FIND_PACKAGE called with REQUIRED argument
-    IF( _ext_lib_missing AND ${_pkgname}_FIND_REQUIRED )
-        SET( ${_pkgname}_COMPONENT_LIBRARIES )
-    ENDIF()
-
-    # remove duplicate paths in PKG_LIBRARY_DIRS
-    IF( ${_pkgname}_LIBRARY_DIRS )
-        LIST( REMOVE_DUPLICATES ${_pkgname}_LIBRARY_DIRS )
-    ENDIF()
-
-    # debug
-    #MESSAGE( STATUS "${_pkgname}_LIBRARIES: ${${_pkgname}_LIBRARIES}" )
-    #MESSAGE( STATUS "${_pkgname}_COMPONENT_LIBRARIES: ${${_pkgname}_COMPONENT_LIBRARIES}" )
-    #MESSAGE( STATUS "${_pkgname}_LIBRARY_DIRS: ${${_pkgname}_LIBRARY_DIRS}" )
-
-ENDMACRO( CHECK_PACKAGE_LIBS _pkgname )
-
diff --git a/Utilities/KalTest/cmake/MacroCheckPackageVersion.cmake b/Utilities/KalTest/cmake/MacroCheckPackageVersion.cmake
deleted file mode 100644
index e3ec75d9..00000000
--- a/Utilities/KalTest/cmake/MacroCheckPackageVersion.cmake
+++ /dev/null
@@ -1,108 +0,0 @@
-##############################################################################
-# macro for checking a package version
-#
-# this macro should be called from your PKGVersion.cmake or from a
-#   FindPKG.cmake module with the following arguments:
-#       _pkgname    : The package name
-#       _iversion   : The installed version of the package
-#
-#
-# the following conventions are used:
-#
-#   if FIND_PACKAGE is called with EXACT argument than the version has to
-#   match EXACTLY, i.e.:
-#       1.5 == 1.5
-#       1.5 == 1.5.0
-#       1.5 == 1.5.0.0
-#       1.5.2 == 1.5.2.0
-#       1.5.2.1 == 1.5.2.1
-#       1.5.2 != 1.5.2.1
-#       1.5 != 1.5.0.1
-#
-#
-#   otherwise a MINIMUM_REQUIRED version is checked for, i.e. the same
-#   behavior as with the cmake variable CMAKE_MINIMUM_REQUIRED, e.g.:
-#       searching: 1.2     --> installed: 1.5.2.2 --> compatible
-#       searching: 1.5     --> installed: 1.5.2.2 --> compatible
-#       searching: 1.5.2.1 --> installed: 1.5.2.2 --> compatible
-#       searching: 1.5.2.3 --> installed: 1.5.2.2 --> unsuitable
-#       searching: 1.7     --> installed: 1.5.2.2 --> unsuitable
-#
-#
-# following variables are returned (internally to cmake):
-#   PACKAGE_VERSION_EXACT       : set to TRUE if exact version was found
-#   PACKAGE_VERSION_COMPATIBLE  : set to TRUE if version is compatible
-#   PACKAGE_VERSION_UNSUITABLE  : set to TRUE if version found is unsuitable
-#
-#
-# @author Jan Engels, Desy IT
-##############################################################################
-
-# these variables are evaluated internally by the cmake command FIND_PACKAGE to mark this
-# package as suitable or not depending on the required version
-SET( PACKAGE_VERSION_EXACT FALSE )
-SET( PACKAGE_VERSION_COMPATIBLE TRUE )
-SET( PACKAGE_VERSION_UNSUITABLE FALSE )
-
-
-# cmake internal variable PACKAGE_FIND_NAME is not defined on FindPKG.cmake
-# modules, therefore it is passed as an argument to the macro
-# _iversion is the installed version of the package
-# _sversion is the version searched by the user with FIND_PACKAGE
-#MACRO( CHECK_PACKAGE_VERSION _pkgname _iversion )
-MACRO( CHECK_PACKAGE_VERSION _pkgname ) # left with one argument only for backwards compatibility
-
-    IF( NOT "${ARGV1}" STREQUAL "" )
-        SET( _iversion ${ARGV1} )
-    ELSE()
-        SET( _iversion ${${_pkgname}_VERSION_MAJOR}.${${_pkgname}_VERSION_MINOR}.${${_pkgname}_VERSION_PATCH}.${${_pkgname}_VERSION_TWEAK} )
-    ENDIF()
-
-    #SET( _sversion_major ${${_pkgname}_FIND_VERSION_MAJOR} )
-    #SET( _sversion_minor ${${_pkgname}_FIND_VERSION_MINOR} )
-
-    SET( _sversion ${${_pkgname}_FIND_VERSION} )
-
-    IF( NOT ${_pkgname}_FIND_QUIETLY )
-        MESSAGE( STATUS "Check for ${_pkgname} (${_iversion})" )
-    ENDIF()
-
-    # only do work if FIND_PACKAGE called with a version argument
-    IF( _sversion )
-
-        #IF( NOT ${_pkgname}_FIND_QUIETLY )
-        #    MESSAGE( STATUS "Check for ${_pkgname}: looking for version ${_sversion}" )
-        #ENDIF()
-
-        IF( ${_iversion} VERSION_EQUAL ${_sversion} ) # if version matches EXACTLY
-            #IF( NOT ${_pkgname}_FIND_QUIETLY )
-            #    MESSAGE( STATUS "Check for ${_pkgname}: exact version found: ${_iversion}" )
-            #ENDIF()
-            SET( PACKAGE_VERSION_EXACT TRUE )
-        ELSE() # if version does not match EXACTLY, check if it is compatible/suitable
-
-            # installed version must be greater or equal than version searched by the user, i.e.
-            # like with the CMAKE_MINIMUM_REQUIRED commando
-            # if user asks for version 1.2.5 then any version >= 1.2.5 is suitable/compatible
-            IF( NOT ${_sversion} VERSION_LESS ${_iversion} )
-                SET( PACKAGE_VERSION_UNSUITABLE TRUE )
-            ENDIF()
-            # -------------------------------------------------------------------------------------
-
-            IF( ${_pkgname}_FIND_VERSION_EXACT ) # if exact version was required search must fail!!
-                #IF( NOT ${_pkgname}_FIND_QUIETLY )
-                #    MESSAGE( "Check for ${_pkgname}: could not find exact version" )
-                #ENDIF()
-                SET( PACKAGE_VERSION_UNSUITABLE TRUE )
-            ENDIF()
-
-        ENDIF()
-
-        IF( PACKAGE_VERSION_UNSUITABLE )
-            SET( PACKAGE_VERSION_COMPATIBLE FALSE )
-        ENDIF()
-
-    ENDIF( _sversion )
-
-ENDMACRO( CHECK_PACKAGE_VERSION )
-
diff --git a/Utilities/KalTest/cmake/MacroRootDict.cmake b/Utilities/KalTest/cmake/MacroRootDict.cmake
deleted file mode 100644
index ed7747fd..00000000
--- a/Utilities/KalTest/cmake/MacroRootDict.cmake
+++ /dev/null
@@ -1,145 +0,0 @@
-IF(APPLE)
-    SET( LD_LIBRARY_PATH_VAR DYLD_LIBRARY_PATH )
-ELSE()
-    SET( LD_LIBRARY_PATH_VAR LD_LIBRARY_PATH )
-ENDIF()
-SET( LD_LIBRARY_PATH_CONTENTS $ENV{${LD_LIBRARY_PATH_VAR}} )
-#MESSAGE( STATUS "LD_LIBRARY_PATH_CONTENTS: ${LD_LIBRARY_PATH_CONTENTS}" )
-#MESSAGE( STATUS "ROOT_CINT_EXECUTABLE: ${ROOT_CINT_EXECUTABLE}" )
-
-SET( ROOT_CINT_WRAPPER ${LD_LIBRARY_PATH_VAR}=${ROOT_LIBRARY_DIR}:${LD_LIBRARY_PATH_CONTENTS} ${ROOT_CINT_EXECUTABLE} )
-
-IF( NOT DEFINED ROOT_DICT_OUTPUT_DIR )
-    SET( ROOT_DICT_OUTPUT_DIR "${PROJECT_BINARY_DIR}/rootdict" )
-ENDIF()
-
-# clean generated header files with 'make clean'
-SET_DIRECTORY_PROPERTIES( PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${ROOT_DICT_OUTPUT_DIR}" )
-
-IF( NOT ROOT_FIND_QUIETLY )
-    MESSAGE( STATUS "Check for ROOT_DICT_OUTPUT_DIR: ${PROJECT_BINARY_DIR}/rootdict" )
-    MESSAGE( STATUS "Check for ROOT_DICT_CINT_DEFINITIONS: ${ROOT_DICT_CINT_DEFINITIONS}" )
-ENDIF()
-
-
-# ============================================================================
-# helper macro to prepare input headers for GEN_ROOT_DICT_SOURCES
-#   sorts LinkDef.h to be the last header (required by rootcint)
-#
-# arguments:
-#   input_dir - directory to search for headers matching *.h
-#
-# returns:
-#   ROOT_DICT_INPUT_HEADERS - all header files found in input_dir with
-#       LinkDef.h as the last header (if found)
-#
-# ----------------------------------------------------------------------------
-MACRO( PREPARE_ROOT_DICT_HEADERS _input_dir )
-
-    FILE( GLOB ROOT_DICT_INPUT_HEADERS "${_input_dir}/*.h" )
-    FILE( GLOB _linkdef_hdr "${_input_dir}/LinkDef.h" )
-
-    #LIST( FIND ROOT_DICT_INPUT_HEADERS ${_linkdef_hdr} _aux )
-    #IF( ${_aux} EQUAL 0 OR ${_aux} GREATER 0 )
-    #    LIST( REMOVE_ITEM ROOT_DICT_INPUT_HEADERS "${_linkdef_hdr}" )
-    #    LIST( APPEND ROOT_DICT_INPUT_HEADERS "${_linkdef_hdr}" )
-    #ENDIF()
-
-    IF( _linkdef_hdr )
-        LIST( REMOVE_ITEM ROOT_DICT_INPUT_HEADERS "${_linkdef_hdr}" )
-        LIST( APPEND ROOT_DICT_INPUT_HEADERS "${_linkdef_hdr}")
-    ENDIF()
-
-    #MESSAGE( STATUS "ROOT_DICT_INPUT_HEADERS: ${ROOT_DICT_INPUT_HEADERS}" )
-
-ENDMACRO( PREPARE_ROOT_DICT_HEADERS )
-
-
-
-# ============================================================================
-# helper macro to generate Linkdef.h files for rootcint
-#
-# arguments:
-#   namespace - prefix used for creating header <namespace>_Linkdef.h
-#   ARGN      - list of sources to be used for generating Linkdef.h
-#
-# returns:
-#   ROOT_DICT_INPUT_HEADERS - all header files + <namespace>_LinkDef.h in the
-#       correct order to be used by macro GEN_ROOT_DICT_SOURCES
-#
-# ----------------------------------------------------------------------------
-MACRO( GEN_ROOT_DICT_LINKDEF_HEADER _namespace )
-
-    SET( _input_headers ${ARGN} )
-    SET( _linkdef_header "${ROOT_DICT_OUTPUT_DIR}/${_namespace}_Linkdef.h" )
-
-    FOREACH( _header ${_input_headers} )
-        SET( ${_namespace}_file_contents "${${_namespace}_file_contents}\\#pragma link C++ defined_in \\\"${_header}\\\"\\;\\\\n" )
-    ENDFOREACH()
-
-    ADD_CUSTOM_COMMAND(
-        OUTPUT ${_linkdef_header}
-        COMMAND mkdir -p ${ROOT_DICT_OUTPUT_DIR}
-        COMMAND printf "${${_namespace}_file_contents}" > ${_linkdef_header}
-        DEPENDS ${_input_headers}
-        COMMENT "generating: ${_linkdef_header}"
-    )
-
-    SET( ROOT_DICT_INPUT_HEADERS ${_input_headers} ${_linkdef_header} )
-
-ENDMACRO()
-
-
-# ============================================================================
-# macro for generating root dict sources with rootcint
-#
-# arguments:
-#   dict_src_filename - filename of the dictionary source (to be generated)
-#
-# requires following variables:
-#       ROOT_DICT_INPUT_HEADERS - list of headers needed to generate dict source
-#           * if LinkDef.h is in the list it must be at the end !!
-#       ROOT_DICT_INCLUDE_DIRS - list of include dirs to pass to rootcint -I..
-#       ROOT_DICT_CINT_DEFINITIONS - extra definitions to pass to rootcint
-#       ROOT_DICT_OUTPUT_DIR - where dictionary source should be generated
-#
-# returns:
-#       ROOT_DICT_OUTPUT_SOURCES - list containing generated source and other
-#           previously generated sources
-                                    
-# ----------------------------------------------------------------------------
-MACRO( GEN_ROOT_DICT_SOURCE _dict_src_filename )
-
-    # TODO check for ROOT_CINT_EXECUTABLE
-
-    # need to prefix all include dirs with -I
-    set( _dict_includes )
-    FOREACH( _inc ${ROOT_DICT_INCLUDE_DIRS} )
-        SET( _dict_includes "${_dict_includes}\t-I${_inc}")  #fg: the \t fixes a wired string expansion 
-        #SET( _dict_includes ${_dict_includes} -I${_inc} )
-    ENDFOREACH()
-
-    STRING( REPLACE "/" "_" _dict_src_filename_nosc ${_dict_src_filename} )
-    SET( _dict_src_file ${ROOT_DICT_OUTPUT_DIR}/${_dict_src_filename_nosc} )
-    STRING( REGEX REPLACE "^(.*)\\.(.*)$" "\\1.h" _dict_hdr_file "${_dict_src_file}" )
-    #message("${ROOT_DICT_INPUT_HEADERS}")
-    ADD_CUSTOM_COMMAND(
-        OUTPUT  ${_dict_src_file} ${_dict_hdr_file}
-        COMMAND mkdir -p ${ROOT_DICT_OUTPUT_DIR}
-        COMMAND ${ROOT_CINT_WRAPPER} -f "${_dict_src_file}" -c ${ROOT_DICT_CINT_DEFINITIONS} ${_dict_includes} ${ROOT_DICT_INPUT_HEADERS}
-        WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-        DEPENDS ${ROOT_DICT_INPUT_HEADERS}
-        COMMENT "generating: ${_dict_src_file} ${_dict_hdr_file}"
-    )
-    LIST( APPEND ROOT_DICT_OUTPUT_SOURCES ${_dict_src_file} )
-
-ENDMACRO()
-
-# for backwards compatibility
-MACRO( GEN_ROOT_DICT_SOURCES _dict_src_filename )
-    #MESSAGE( "USING DEPRECATED GEN_ROOT_DICT_SOURCES. PLEASE USE GEN_ROOT_DICT_SOURCE instead." )
-    SET( ROOT_DICT_OUTPUT_SOURCES )
-    GEN_ROOT_DICT_SOURCE( ${_dict_src_filename} )
-ENDMACRO()
-# ============================================================================
-
diff --git a/Utilities/KalTest/cmake/MyFindROOT.cmake b/Utilities/KalTest/cmake/MyFindROOT.cmake
deleted file mode 100644
index 567ce159..00000000
--- a/Utilities/KalTest/cmake/MyFindROOT.cmake
+++ /dev/null
@@ -1,316 +0,0 @@
-###############################################################################
-# cmake module for finding ROOT
-#
-# requires:
-#   MacroCheckPackageLibs.cmake for checking package libraries
-#
-# Following cmake variables are returned by this module:
-#
-#   ROOT_FOUND              : set to TRUE if ROOT found
-#       If FIND_PACKAGE is called with REQUIRED and COMPONENTS arguments
-#       ROOT_FOUND is only set to TRUE if ALL components are found.
-#       If REQUIRED is NOT set components may or may not be available
-#
-#   ROOT_LIBRARIES          : list of ROOT libraries (NOT including COMPONENTS)
-#   ROOT_INCLUDE_DIRS       : list of paths to be used with INCLUDE_DIRECTORIES
-#   ROOT_LIBRARY_DIRS       : list of paths to be used with LINK_DIRECTORIES
-#   ROOT_COMPONENT_LIBRARIES    : list of ROOT component libraries
-#   ROOT_${COMPONENT}_FOUND     : set to TRUE or FALSE for each library
-#   ROOT_${COMPONENT}_LIBRARY   : path to individual libraries
-#   
-#
-#   Please note that by convention components should be entered exactly as
-#   the library names, i.e. the component name equivalent to the library
-#   $ROOTSYS/lib/libMathMore.so should be called MathMore and NOT:
-#       mathmore or Mathmore or MATHMORE
-#
-#   However to follow the usual cmake convention it is agreed that the
-#   ROOT_${COMPONENT}_FOUND and ROOT_${COMPONENT}_LIBRARY variables are ALL
-#   uppercase, i.e. the MathMore component returns: ROOT_MATHMORE_FOUND and
-#   ROOT_MATHMORE_LIBRARY NOT ROOT_MathMore_FOUND or ROOT_MathMore_LIBRARY
-#
-#
-# The additional ROOT components should be defined as follows:
-# FIND_PACKAGE( ROOT COMPONENTS MathMore Gdml Geom ...)
-#
-# If components are required use:
-# FIND_PACKAGE( ROOT REQUIRED COMPONENTS MathMore Gdml Geom ...)
-#
-# If only root is required and components are NOT required use:
-# FIND_PACKAGE( ROOT REQUIRED )
-# FIND_PACKAGE( ROOT COMPONENTS MathMore Gdml Geom ... QUIET )
-#   then you need to check for ROOT_MATHMORE_FOUND, ROOT_GDML_FOUND, etc.
-#
-# The variable ROOT_USE_COMPONENTS can also be used before calling
-# FIND_PACKAGE, i.e.:
-# SET( ROOT_USE_COMPONENTS MathMore Gdml Geom )
-# FIND_PACKAGE( ROOT REQUIRED ) # all ROOT_USE_COMPONENTS must also be found
-# FIND_PACKAGE( ROOT ) # check for ROOT_FOUND, ROOT_MATHMORE_FOUND, etc.
-#
-# @author Jan Engels, DESY
-###############################################################################
-
-# ==============================================
-# ===        ROOT_CONFIG_EXECUTABLE          ===
-# ==============================================
-
-SET( ROOT_CONFIG_EXECUTABLE ROOT_CONFIG_EXECUTABLE-NOTFOUND )
-MARK_AS_ADVANCED( ROOT_CONFIG_EXECUTABLE )
-# FIND_PROGRAM: Once one of the calls succeeds the result variable will be set and stored in the cache so that no call will search again. 
-FIND_PROGRAM( ROOT_CONFIG_EXECUTABLE root-config PATHS ${ROOT_DIR}/bin NO_DEFAULT_PATH )
-FIND_PROGRAM( ROOT_CONFIG_EXECUTABLE root-config PATHS $ENV{ROOTSYS}/bin NO_DEFAULT_PATH)
-FIND_PROGRAM( ROOT_CONFIG_EXECUTABLE root-config PATHS ENV PATH )
-FIND_PROGRAM( ROOT_CONFIG_EXECUTABLE root-config )
-
-IF( NOT ROOT_FIND_QUIETLY )
-    MESSAGE( STATUS "Check for ROOT_CONFIG_EXECUTABLE: ${ROOT_CONFIG_EXECUTABLE}" )
-ENDIF()
-
-IF( ROOT_CONFIG_EXECUTABLE )
-
-
-    # ==============================================
-    # ===          ROOT_VERSION                  ===
-    # ==============================================
-
-    INCLUDE( MacroCheckPackageVersion )
-    
-    EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --version
-        OUTPUT_VARIABLE _version
-        RESULT_VARIABLE _exit_code
-        OUTPUT_STRIP_TRAILING_WHITESPACE
-    )
-    IF( _exit_code EQUAL 0 )
-
-        # set required variables for MacroCheckPackageVersion
-        STRING(REGEX REPLACE "^([0-9]+).*" "\\1" ROOT_VERSION_MAJOR "${_version}")
-        STRING(REGEX REPLACE "^[0-9]+.([0-9]+).*" "\\1" ROOT_VERSION_MINOR "${_version}")
-        STRING(REGEX REPLACE "^[0-9]+.[0-9]+.([0-9]+).*" "\\1" ROOT_VERSION_PATCH "${_version}")
-
-        SET( ROOT_VERSION "${ROOT_VERSION_MAJOR}.${ROOT_VERSION_MINOR}.${ROOT_VERSION_PATCH}" )
-    ENDIF()
-
-    CHECK_PACKAGE_VERSION( ROOT ${ROOT_VERSION} )
-
-
-
-    # ==============================================
-    # ===          ROOT_PREFIX                   ===
-    # ==============================================
-
-    # get root prefix from root-config output
-    EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --prefix
-        OUTPUT_VARIABLE ROOT_PREFIX
-        RESULT_VARIABLE _exit_code
-        OUTPUT_STRIP_TRAILING_WHITESPACE
-    )
-    IF( NOT _exit_code EQUAL 0 )
-        # clear variable if root-config exits with error
-        # it might contain garbage
-        SET( ROOT_PREFIX )
-    ENDIF()
-
-    # PKG_ROOT variables are a cmake standard
-    # since this package is also called ROOT the variable name
-    # becomes ROOT_ROOT ...
-    SET( ROOT_ROOT ${ROOT_PREFIX} )
-
-
-
-    # ==============================================
-    # ===          ROOT_BIN_DIR                  ===
-    # ==============================================
-
-    # get bindir from root-config output
-    EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --bindir
-        OUTPUT_VARIABLE ROOT_BIN_DIR
-        RESULT_VARIABLE _exit_code
-        OUTPUT_STRIP_TRAILING_WHITESPACE
-    )
-    IF( NOT _exit_code EQUAL 0 )
-        # clear variable if root-config exits with error
-        # it might contain garbage
-        SET( ROOT_BIN_DIR )
-    ENDIF()
-
-
-
-    # ==============================================
-    # ===          ROOT_EXECUTABLE               ===
-    # ==============================================
-
-
-    SET( ROOT_EXECUTABLE ROOT_EXECUTABLE-NOTFOUND )
-    MARK_AS_ADVANCED( ROOT_EXECUTABLE )
-    FIND_PROGRAM( ROOT_EXECUTABLE root PATHS ${ROOT_BIN_DIR} NO_DEFAULT_PATH )
-
-    IF( NOT ROOT_FIND_QUIETLY )
-        MESSAGE( STATUS "Check for ROOT_EXECUTABLE: ${ROOT_EXECUTABLE}" )
-    ENDIF()
-
-
-
-
-    # ==============================================
-    # ===          ROOT_CINT_EXECUTABLE          ===
-    # ==============================================
-
-
-    # find rootcint
-    SET( ROOT_CINT_EXECUTABLE ROOT_CINT_EXECUTABLE-NOTFOUND )
-    MARK_AS_ADVANCED( ROOT_CINT_EXECUTABLE )
-    FIND_PROGRAM( ROOT_CINT_EXECUTABLE rootcint PATHS ${ROOT_BIN_DIR} NO_DEFAULT_PATH )
-
-    IF( NOT ROOT_FIND_QUIETLY )
-        MESSAGE( STATUS "Check for ROOT_CINT_EXECUTABLE: ${ROOT_CINT_EXECUTABLE}" )
-    ENDIF()
-
-
-
-    # ==============================================
-    # ===          ROOT_INCLUDE_DIR              ===
-    # ==============================================
-
-    # get include dir from root-config output
-    EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --incdir
-        OUTPUT_VARIABLE _inc_dir
-        RESULT_VARIABLE _exit_code
-        OUTPUT_STRIP_TRAILING_WHITESPACE
-    )
-    IF( NOT _exit_code EQUAL 0 )
-        # clear variable if root-config exits with error
-        # it might contain garbage
-        SET( _inc_dir )
-    ENDIF()
-
-
-    SET( ROOT_INCLUDE_DIRS ROOT_INCLUDE_DIRS-NOTFOUND )
-    MARK_AS_ADVANCED( ROOT_INCLUDE_DIRS )
-
-    FIND_PATH( ROOT_INCLUDE_DIRS
-        NAMES TH1.h
-        PATHS ${ROOT_DIR}/include ${_inc_dir}
-        NO_DEFAULT_PATH
-    )
-
-
-
-    # ==============================================
-    # ===            ROOT_LIBRARIES              ===
-    # ==============================================
-
-    # get library dir from root-config output
-    EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --libdir
-        OUTPUT_VARIABLE ROOT_LIBRARY_DIR
-        RESULT_VARIABLE _exit_code
-        OUTPUT_STRIP_TRAILING_WHITESPACE
-    )
-    IF( NOT _exit_code EQUAL 0 )
-        # clear variable if root-config exits with error
-        # it might contain garbage
-        SET( ROOT_LIBRARY_DIR )
-    ENDIF()
-
-
-
-    # ========== standard root libraries =================
-
-    # standard root libraries (without components)
-    SET( _root_libnames )
-
-    # get standard root libraries from 'root-config --libs' output
-    EXECUTE_PROCESS( COMMAND "${ROOT_CONFIG_EXECUTABLE}" --noauxlibs --libs
-        OUTPUT_VARIABLE _aux
-        RESULT_VARIABLE _exit_code
-        OUTPUT_STRIP_TRAILING_WHITESPACE
-    )
-    IF( _exit_code EQUAL 0 )
-        
-        # create a list out of the output
-        SEPARATE_ARGUMENTS( _aux )
-
-        # remove first item -L compiler flag
-        LIST( REMOVE_AT _aux 0 )
-
-        FOREACH( _lib ${_aux} )
-
-            # extract libnames from -l compiler flags
-            STRING( REGEX REPLACE "^-.(.*)$" "\\1" _libname "${_lib}")
-
-            # fix for some root-config versions which export -lz even if using --noauxlibs
-            IF( NOT _libname STREQUAL "z" )
-
-                # append all library names into a list
-                LIST( APPEND _root_libnames ${_libname} )
-
-            ENDIF()
-
-        ENDFOREACH()
-
-    ENDIF()
-
-
-
-    # ========== additional root components =================
-
-    #LIST( APPEND ROOT_FIND_COMPONENTS Minuit2 ) # DEPRECATED !!!
-
-
-    # ---------- libraries --------------------------------------------------------
-    INCLUDE( MacroCheckPackageLibs )
-
-    SET( ROOT_LIB_SEARCH_PATH ${ROOT_LIBRARY_DIR} )
-
-    # only standard libraries should be passed as arguments to CHECK_PACKAGE_LIBS
-    # additional components are set by cmake in variable PKG_FIND_COMPONENTS
-    # first argument should be the package name
-    CHECK_PACKAGE_LIBS( ROOT ${_root_libnames} )
-
-
-
-
-    # ====== DL LIBRARY ==================================================
-    # workaround for cmake bug in 64 bit:
-    # see: http://public.kitware.com/mantis/view.php?id=10813
-    IF( CMAKE_SIZEOF_VOID_P EQUAL 8 )
-        FIND_LIBRARY( DL_LIB NAMES ${CMAKE_DL_LIBS} dl PATHS /usr/lib64 /lib64 NO_DEFAULT_PATH )
-    ENDIF( CMAKE_SIZEOF_VOID_P EQUAL 8 )
-
-    FIND_LIBRARY( DL_LIB NAMES ${CMAKE_DL_LIBS} dl )
-    MARK_AS_ADVANCED( DL_LIB )
-
-    IF( NOT ROOT_FIND_QUIETLY )
-        MESSAGE( STATUS "Check for libdl.so: ${DL_LIB}" )
-    ENDIF()
-
-ENDIF( ROOT_CONFIG_EXECUTABLE )
-
-# Threads library
-#FIND_PACKAGE( Threads REQUIRED)
-
-
-# ---------- final checking ---------------------------------------------------
-INCLUDE( FindPackageHandleStandardArgs )
-# set ROOT_FOUND to TRUE if all listed variables are TRUE and not empty
-# ROOT_COMPONENT_VARIABLES will be set if FIND_PACKAGE is called with REQUIRED argument
-FIND_PACKAGE_HANDLE_STANDARD_ARGS( ROOT DEFAULT_MSG ROOT_INCLUDE_DIRS ROOT_LIBRARIES ${ROOT_COMPONENT_VARIABLES} PACKAGE_VERSION_COMPATIBLE DL_LIB )
-
-IF( ROOT_FOUND )
-    LIST( APPEND ROOT_LIBRARIES ${DL_LIB} )
-    # FIXME DEPRECATED
-    SET( ROOT_DEFINITIONS "-DUSEROOT -DUSE_ROOT -DMARLIN_USE_ROOT" )
-    MARK_AS_ADVANCED( ROOT_DEFINITIONS )
-
-    # file including MACROS for generating root dictionary sources
-    GET_FILENAME_COMPONENT( _aux ${CMAKE_CURRENT_LIST_FILE} PATH )
-    SET( ROOT_DICT_MACROS_FILE ${_aux}/MacroRootDict.cmake )
-
-ENDIF( ROOT_FOUND )
-
-# ---------- cmake bug --------------------------------------------------------
-# ROOT_FIND_REQUIRED is not reset between FIND_PACKAGE calls, i.e. the following
-# code fails when geartgeo component not available: (fixed in cmake 2.8)
-# FIND_PACKAGE( ROOT REQUIRED )
-# FIND_PACKAGE( ROOT COMPONENTS geartgeo QUIET )
-SET( ROOT_FIND_REQUIRED )
-
-- 
GitLab