From 799b017a904426432b5806406c09419f1bda7204 Mon Sep 17 00:00:00 2001
From: Omveer <osingh@amu.ac.in>
Date: Wed, 19 Oct 2022 15:16:27 +0200
Subject: [PATCH] Move to Modern CMake(Reco Dir)

Files moved to NO_DICT_SRC:
L1Algo/L1Event.cxx
L1Algo/L1EventMatch.cxx

Files are commented for time being in L1 target:
OffLineInterface/CbmL1RichENNRingFinder.cxx
OffLineInterface/CbmL1RichENNRingFinderParallel.cxx

xpu git tag version modified
Vc package finding moved to top level CMakeLists.txt
---
 CMakeLists.txt                                |   9 +
 MQ/base/CMakeLists.txt                        |  46 +--
 algo/CMakeLists.txt                           |  27 +-
 cmake/modules/CbmMacros.cmake                 |  25 ++
 external/CMakeLists.txt                       |   6 +-
 reco/KF/KF.cmake                              | 202 ++++-------
 reco/KF/KFParticleInterface.cmake             | 123 +++----
 reco/KF/KFQA.cmake                            | 104 ++----
 reco/L1/CMakeLists.txt                        | 332 +++++++-----------
 reco/L1/L1LinkDef.h                           |   4 +-
 reco/app/cbmreco_fairrun/CMakeLists.txt       |  40 +--
 reco/base/CMakeLists.txt                      |  82 ++---
 reco/calibration/CMakeLists.txt               |  74 +---
 reco/detectors/much/CMakeLists.txt            | 106 +++---
 reco/detectors/psd/CMakeLists.txt             |  67 ++--
 reco/detectors/rich/CMakeLists.txt            | 223 ++++++------
 reco/detectors/rich/CbmRichReconstruction.cxx |  20 +-
 .../rich/alignment/CbmRichReconstruction.cxx  |  16 +-
 reco/detectors/sts/CMakeLists.txt             | 166 ++++-----
 reco/detectors/tof/CMakeLists.txt             |  82 +++--
 reco/detectors/trd/CMakeLists.txt             | 176 +++++-----
 reco/eventbuilder/CMakeLists.txt              |  98 +++---
 reco/global/CMakeLists.txt                    |  88 ++---
 reco/littrack/CMakeLists.txt                  | 252 ++++++-------
 reco/littrack/cbm/base/CbmLitFieldFitter.h    |   2 +-
 .../cbm/base/CbmLitFieldGridCreator.h         |   2 +-
 reco/littrack/clustering/CMakeLists.txt       |  92 ++---
 reco/littrack/parallel/CMakeLists.txt         |  34 +-
 .../electron/LitTrackFinderNNVecElectron.h    |   4 +-
 reco/littrack/parallel/muon/LitAbsorber.h     |   2 +-
 reco/littrack/parallel/muon/LitHitDataMuon.h  |   4 +-
 .../parallel/muon/LitStationGroupMuon.h       |   4 +-
 reco/littrack/parallel/muon/LitStationMuon.h  |   2 +-
 .../parallel/muon/LitSubstationMuon.h         |   2 +-
 .../parallel/muon/LitTrackFitterMuon.h        |  10 +-
 reco/mq/CMakeLists.txt                        | 147 +++-----
 reco/steer/CMakeLists.txt                     | 132 ++-----
 reco/tasks/CMakeLists.txt                     | 104 ++----
 reco/tracking/global/CMakeLists.txt           |  81 ++---
 reco/tracking/lx/CMakeLists.txt               |  95 ++---
 40 files changed, 1220 insertions(+), 1865 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 198634c6c1..b7e3e2344e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -132,6 +132,11 @@ if(Geant4_FOUND)
   Message("Geant4 was found")
 endif()
 
+#Searching for Vc Package
+find_package(Vc 1.4.1 CONFIG REQUIRED)
+if(Vc_FOUND)
+  Message("Vc was found")
+endif()
 
 #Searching for VGM Package
 find_package(VGM CONFIG REQUIRED)
@@ -162,7 +167,11 @@ endif()
 find_package(FairMQ CONFIG REQUIRED)
 if(FairMQ_FOUND)
   Message("FairMQ was found")
+
   set(FAIRMQ_INCLUDE_DIR ${FairMQ_INCDIR}/fairmq)
+
+  get_target_property(_inDirMQ FairMQ::FairMQ INTERFACE_INCLUDE_DIRECTORIES)
+  set_property(TARGET FairMQ::FairMQ APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${_inDirMQ}/fairmq/options") 
 endif()
 
 # Check if the compiler supports the needed C++ standard
diff --git a/MQ/base/CMakeLists.txt b/MQ/base/CMakeLists.txt
index c9d6704d45..3090b145f0 100644
--- a/MQ/base/CMakeLists.txt
+++ b/MQ/base/CMakeLists.txt
@@ -1,40 +1,18 @@
 set(INCLUDE_DIRECTORIES
-    ${CMAKE_CURRENT_SOURCE_DIR}
-    ${CMAKE_SOURCE_DIR}/MQ/base
-)
-
-Set(SYSTEM_INCLUDE_DIRECTORIES
-    ${SYSTEM_INCLUDE_DIRECTORIES}
-    ${FAIRMQ_INCLUDE_DIR}
-)
-
-include_directories(${INCLUDE_DIRECTORIES})
-include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-  ${FAIRMQ_LIBRARY_DIR}
-)
-
-link_directories(${LINK_DIRECTORIES})
-
-set(FAIR_LIBS
-  FairMQ
-)
-
-If(FAIRLOGGER_FOUND)
-  set(FAIR_LIBS
-      ${FAIR_LIBS}
-      FairLogger
-     )
-EndIf()
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  )
 
 set(SRCS
   CbmMQChannels.cxx
-)
+  )
+
+set(LIBRARY_NAME CbmMQBase)
+set(PUBLIC_DEPENDENCIES
+  FairMQ::FairMQ
+  )
 
-Set(LIBRARY_NAME CbmMQBase)
-Set(DEPENDENCIES
-    ${FAIR_LIBS}
-)
+set(INTERFACE_DEPENDENCIES
+  ROOT::Net
+  )
 
-GENERATE_LIBRARY()
+generate_cbm_library()
diff --git a/algo/CMakeLists.txt b/algo/CMakeLists.txt
index 5281075fb2..3ad6df5dee 100644
--- a/algo/CMakeLists.txt
+++ b/algo/CMakeLists.txt
@@ -14,25 +14,14 @@ set(SRCS
 add_library(Algo SHARED ${SRCS})
 
 target_include_directories(Algo
-  PUBLIC ${CMAKE_SOURCE_DIR}/core/data
-  PUBLIC ${CMAKE_SOURCE_DIR}/core/data/base
-  PUBLIC ${CMAKE_SOURCE_DIR}/core/data/global
-  PUBLIC ${CMAKE_SOURCE_DIR}/core/data/sts
-  PUBLIC ${CMAKE_SOURCE_DIR}/core/data/rich
-  PUBLIC ${CMAKE_SOURCE_DIR}/core/data/much
-  PUBLIC ${CMAKE_SOURCE_DIR}/core/data/trd
-  PUBLIC ${CMAKE_SOURCE_DIR}/core/data/tof
-  PUBLIC ${CMAKE_SOURCE_DIR}/core/data/psd
-  PUBLIC ${CMAKE_SOURCE_DIR}/core/data/raw
-  PUBLIC ${FLES_IPC_INCLUDE_DIRECTORY}
-)
-
-target_include_directories(Algo SYSTEM
-  PUBLIC ${Boost_INCLUDE_DIR}
-)
-
-target_link_libraries(Algo OnlineData)
-
+  PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
+         ${CMAKE_CURRENT_SOURCE_DIR}/evbuild
+         ${CMAKE_CURRENT_SOURCE_DIR}/trigger
+         ${CMAKE_CURRENT_SOURCE_DIR}/detectors/sts
+         ${CMAKE_CURRENT_SOURCE_DIR}/detectors/much
+ )
+
+target_link_libraries(Algo PUBLIC OnlineData INTERFACE FairLogger::FairLogger external::fles_ipc)
 target_compile_definitions(Algo PUBLIC NO_ROOT)
 
 install(TARGETS Algo DESTINATION lib)
diff --git a/cmake/modules/CbmMacros.cmake b/cmake/modules/CbmMacros.cmake
index b825390238..575c3d8f1d 100644
--- a/cmake/modules/CbmMacros.cmake
+++ b/cmake/modules/CbmMacros.cmake
@@ -244,5 +244,30 @@ macro(generate_cbm_library)
   set(PUBLIC_DEPENDENCIES)
   set(PRIVATE_DEPENDENCIES)
   set(INTERFACE_DEPENDENCIES)
+  set(ROOT_HEADERS)
 
 endmacro(generate_cbm_library)
+
+
+macro(generate_cbm_executable)
+#macro for making executable in Cbm
+  Add_Executable(${EXE_NAME} ${SRCS})
+  target_link_libraries(${EXE_NAME} PUBLIC ${DEPENDENCIES} ${PUBLIC_DEPENDENCIES} PRIVATE ${PRIVATE_DEPENDENCIES} INTERFACE ${INTERFACE_DEPENDENCIES})
+
+  if(DEFINED BIN_DESTINATION)
+    install(TARGETS ${EXE_NAME} DESTINATION ${BIN_DESTINATION})
+    else(DEFINED BIN_DESTINATION)
+      install(TARGETS ${EXE_NAME} DESTINATION bin)
+  endif(DEFINED BIN_DESTINATION)
+
+  set(EXE_NAME)
+  set(SRCS)
+  set(HEADERS)
+  set(BIN_DESTINATION)
+  set(DEPENDENCIES)
+  set(DEPENDENCIES)
+  set(PUBLIC_DEPENDENCIES)
+  set(PRIVATE_DEPENDENCIES)
+  set(INTERFACE_DEPENDENCIES)
+
+endmacro(generate_cbm_executable)
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
index f3dd351399..fae1c93eae 100644
--- a/external/CMakeLists.txt
+++ b/external/CMakeLists.txt
@@ -34,7 +34,7 @@ if(DOWNLOAD_EXTERNALS)
   set(GSL_INCLUDE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/GSL/include PARENT_SCOPE)
   install(DIRECTORY GSL/include/gsl TYPE INCLUDE)
 
-  find_package(Vc 1.4.1)
+  #find_package(Vc 1.4.1)
   if(NOT Vc_FOUND)
     Message("Vc not found in FairSoft installation, Build included version.")
     Include(InstallVC.cmake)
@@ -47,8 +47,8 @@ if(DOWNLOAD_EXTERNALS)
   endif()
 
   download_project_if_needed(PROJECT           xpu
-                             GIT_REPOSITORY    "https://github.com/fweig/xpu"
-                             GIT_TAG           "7944bf1ea3537c6d49a0ee52326740d7145b546f" #v0.7.3
+                             GIT_REPOSITORY    "https://git.cbm.gsi.de/computing/xpu.git"
+                             GIT_TAG           "790b237dd3f0b820d0244c09c5a5545fe0466551" #v0.7.33
                              SOURCE_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/xpu
                              CONFIGURE_COMMAND ""
                              BUILD_COMMAND     ""
diff --git a/reco/KF/KF.cmake b/reco/KF/KF.cmake
index ec8a44b35d..a5fe0231cb 100644
--- a/reco/KF/KF.cmake
+++ b/reco/KF/KF.cmake
@@ -2,135 +2,49 @@
 # the array .
 # The extension is already found.  Any number of sources could be listed here.
 
-Set(INCLUDE_DIRECTORIES
-${CBMBASE_DIR} 
-
-${CBMROOT_SOURCE_DIR}/reco/base
-
-${CBMDATA_DIR}
-${CBMDATA_DIR}/base
-${CBMDATA_DIR}/sts
-${CBMDATA_DIR}/mvd
-${CBMDATA_DIR}/much
-${CBMDATA_DIR}/trd
-${CBMDATA_DIR}/rich
-${CBMDATA_DIR}/tof
-${CBMDATA_DIR}/global
-
-${CBMROOT_SOURCE_DIR}/reco/KF
-${CBMROOT_SOURCE_DIR}/reco/KF/Interface
-${CBMROOT_SOURCE_DIR}/reco/KF/KFQA
-
-${CBMDETECTORBASE_DIR}/sts
-
-${CBMROOT_SOURCE_DIR}/mvd 
-
-${CBMDETECTORBASE_DIR}/much # TMP for tracker interface
-${CBMDETECTORBASE_DIR}/trd  # TMP for tracker interface
-${CBMDETECTORBASE_DIR}/tof  # TMP for tracker interface
-${CBMROOT_SOURCE_DIR}/sim/transport/steer # TMP for tracker interface
-${CBMROOT_SOURCE_DIR}/sim/transport/geosetup # TMP for tracker interface
-)
-
-Include_Directories( ${INCLUDE_DIRECTORIES})
-
-Set(SYSTEM_INCLUDE_DIRECTORIES
-  ${BASE_INCLUDE_DIRECTORIES} 
-)
-
-Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-${FAIRROOT_LIBRARY_DIR}
-${ROOT_LIBRARY_DIR}
-${Boost_LIBRARY_DIRS}
-)
- 
-link_directories(BEFORE ${LINK_DIRECTORIES})
+set(INCLUDE_DIRECTORIES
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${CMAKE_CURRENT_SOURCE_DIR}/Interface
+  )
 
 set(SRCS
-CbmKF.cxx 
-CbmKFFieldMath.cxx 
-CbmKFHit.cxx 
-CbmKFMaterial.cxx 
-CbmKFMath.cxx 
-CbmKFPixelMeasurement.cxx 
-CbmKFPrimaryVertexFinder.cxx 
-CbmKFSecondaryVertexFinder.cxx 
-CbmKFTrackInterface.cxx 
-CbmKFUMeasurement.cxx 
-CbmKFVertexInterface.cxx 
+  CbmKF.cxx 
+  CbmKFFieldMath.cxx 
+  CbmKFHit.cxx 
+  CbmKFMaterial.cxx 
+  CbmKFMath.cxx 
+  CbmKFPixelMeasurement.cxx 
+  CbmKFPrimaryVertexFinder.cxx 
+  CbmKFSecondaryVertexFinder.cxx 
+  CbmKFTrackInterface.cxx 
+  CbmKFUMeasurement.cxx 
+  CbmKFVertexInterface.cxx 
 
 #### Tracker interfaces (will be moved to core/detector/*) ################
-CbmTrackingDetectorInterfaceInit.cxx
+  CbmTrackingDetectorInterfaceInit.cxx
 ###########################################################################
 
-#Interface/CbmEcalTrackExtrapolationKF.cxx
-Interface/CbmKFStsHit.cxx 
-Interface/CbmKFTrack.cxx 
-Interface/CbmKFTrdHit.cxx 
-Interface/CbmKFTofHit.cxx 
-Interface/CbmPVFinderKF.cxx 
-Interface/CbmStsFitPerformanceTask.cxx 
-Interface/CbmStsKFTrackFitter.cxx 
-Interface/CbmStsKFSecondaryVertexFinder.cxx 
-Interface/CbmTrdTrackFitterKF.cxx 
-Interface/CbmTofTrackFitterKF.cxx 
-Interface/CbmGlobalTrackFitterKF.cxx
-# CbmKFParticle.cxx
-# CbmKFParticle_simd.cxx
-# CbmKFParticleInterface.cxx
-#KFQA/CbmKFTrErrMCPoints.cxx
-#KFQA/CbmKFTrackFitQa.cxx
-#KFQA/CbmKFTrackQa.cxx
-#KFQA/KFParticleMatch.cxx
-#CbmKFParticleFinder.cxx
-#CbmKFParticleFinderPID.cxx
-#CbmKFParticleFinderQa.cxx
-#CbmKFParticleInterface.cxx
-)
-
-
-set(HEADERS
-CbmKF.h 
-CbmKFFieldMath.h
-CbmKFHit.h
-CbmKFMaterial.h
-CbmKFMath.h
-CbmKFPixelMeasurement.h
-CbmKFPrimaryVertexFinder.h
-CbmKFSecondaryVertexFinder.h
-CbmKFTrackInterface.h
-CbmKFUMeasurement.h 
-CbmKFVertexInterface.h
-
-#### Tracker interfaces (will be moved to core/detector/*) ################
-CbmTrackingDetectorInterfaceInit.h
-###########################################################################
+  #Interface/CbmEcalTrackExtrapolationKF.cxx
+  Interface/CbmKFStsHit.cxx 
+  Interface/CbmKFTrack.cxx 
+  Interface/CbmKFTrdHit.cxx 
+  Interface/CbmKFTofHit.cxx 
+  Interface/CbmPVFinderKF.cxx 
+  Interface/CbmStsFitPerformanceTask.cxx 
+  Interface/CbmStsKFTrackFitter.cxx 
+  Interface/CbmStsKFSecondaryVertexFinder.cxx 
+  Interface/CbmTrdTrackFitterKF.cxx 
+  Interface/CbmTofTrackFitterKF.cxx 
+  Interface/CbmGlobalTrackFitterKF.cxx
+  # CbmKFParticle.cxx
+  # CbmKFParticle_simd.cxx
+  # CbmKFParticleInterface.cxx
+  #CbmKFParticleFinder.cxx
+  #CbmKFParticleFinderPID.cxx
+  #CbmKFParticleFinderQa.cxx
+  #CbmKFParticleInterface.cxx
+  )
 
-#Interface/CbmEcalTrackExtrapolationKF.h
-Interface/CbmKFStsHit.h
-Interface/CbmKFTrack.h 
-Interface/CbmKFTrdHit.h 
-Interface/CbmKFTofHit.h 
-Interface/CbmPVFinderKF.h
-Interface/CbmStsFitPerformanceTask.h
-Interface/CbmStsKFTrackFitter.h
-Interface/CbmStsKFSecondaryVertexFinder.h
-Interface/CbmTrdTrackFitterKF.h
-Interface/CbmTofTrackFitterKF.h
-Interface/CbmGlobalTrackFitterKF.h
-# CbmKFParticle.h
-#KFQA/CbmKFTrErrMCPoints.h
-#KFQA/CbmKFTrackFitQa.h
-#KFQA/CbmKFTrackQa.h
-#KFQA/CbmKFPartEfficiencies.h
-#KFQA/KFParticleMatch.h
-#CbmKFParticleFinder.h
-#CbmKFParticleFinderPID.h
-#CbmKFParticleFinderQa.h
-#CbmKFParticleInterface.h
-)
 
 If(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
   ADD_DEFINITIONS(-Wall -Wsign-promo -Wctor-dtor-privacy -Wreorder -Wno-deprecated -Wno-parentheses -DDO_TPCCATRACKER_EFF_PERFORMANCE -DNonhomogeneousField -DCBM -DUSE_TIMERS) # -Weffc++ -Wnon-virtual-dtor -Woverloaded-virtual -Wold-style-cast   : wait for other parts of cbmroot\root.
@@ -166,14 +80,42 @@ ELSE (SSE_FOUND)
   "-O3")
 ENDIF (SSE_FOUND)
 
-set(LINKDEF KFLinkDef.h)
-Set(LIBRARY_NAME KF)
-Set(DEPENDENCIES
-  CbmRecoBase CbmSimSteer CbmStsBase CbmMvd CbmMuchBase CbmTrdBase CbmTofBase CbmBase CbmData Base Minuit2
-)
+
+set(LIBRARY_NAME KF)
+set(LINKDEF ${LIBRARY_NAME}LinkDef.h)
+set(PUBLIC_DEPENDENCIES
+  CbmBase
+  CbmData
+  CbmMvd
+  CbmRecoBase
+  FairRoot::Base
+  ROOT::Core
+  ROOT::Geom
+  ROOT::Hist
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmMuchBase
+  CbmSimSteer
+  CbmStsBase
+  CbmTofBase
+  CbmTrdBase
+  FairLogger::FairLogger
+  FairRoot::GeoBase
+  FairRoot::ParBase
+  ROOT::EG
+  ROOT::Gpad
+  ROOT::MathCore
+  ROOT::Matrix
+  ROOT::Physics
+  ROOT::RIO
+  ROOT::Tree
+  )
+
 Set(DEFINITIONS -DDO_TPCCATRACKER_EFF_PERFORMANCE -DNonhomogeneousField -DCBM -DUSE_TIMERS)
 
-GENERATE_LIBRARY()
+generate_cbm_library()
 
-Install(FILES Interface/CbmKFVertex.h
-        DESTINATION include)
+install(FILES Interface/CbmKFVertex.h
+        DESTINATION include
+       )
diff --git a/reco/KF/KFParticleInterface.cmake b/reco/KF/KFParticleInterface.cmake
index 1fd7a5dea2..bb74cf37c5 100644
--- a/reco/KF/KFParticleInterface.cmake
+++ b/reco/KF/KFParticleInterface.cmake
@@ -2,115 +2,82 @@
 # the array .
 # The extension is already found.  Any number of sources could be listed here.
 
-Set(INCLUDE_DIRECTORIES
-  ${CBMBASE_DIR}
-
-  ${CBMROOT_SOURCE_DIR}/reco/base
-
-  ${CBMDATA_DIR}
-  ${CBMDATA_DIR}/base
-  ${CBMDATA_DIR}/sts
-  ${CBMDATA_DIR}/mvd
-  ${CBMDATA_DIR}/much
-  ${CBMDATA_DIR}/trd
-  ${CBMDATA_DIR}/rich
-  ${CBMDATA_DIR}/tof
-  ${CBMDATA_DIR}/global
-
-  ${CBMROOT_SOURCE_DIR}/reco/KF
-  ${CBMROOT_SOURCE_DIR}/reco/KF/Interface
-  ${CBMROOT_SOURCE_DIR}/reco/KF/KFQA
-
-  ${CBMDETECTORBASE_DIR}/sts
-
-  ${CBMROOT_SOURCE_DIR}/reco/L1
-  ${CBMROOT_SOURCE_DIR}/reco/L1/L1Algo
-
-  # ${CBMROOT_SOURCE_DIR}/reco/L1/ParticleFinder
-  ${CBMROOT_SOURCE_DIR}/mvd
-)
-
-Include_Directories(${INCLUDE_DIRECTORIES})
-
-Set(SYSTEM_INCLUDE_DIRECTORIES
-  # ${KFParticle_INCLUDE_DIR}
-  ${BASE_INCLUDE_DIRECTORIES}
-)
-
-Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-  # ${KFParticle_LIB_DIR}
-  ${FAIRROOT_LIBRARY_DIR}
-  ${ROOT_LIBRARY_DIR}
-  ${Boost_LIBRARY_DIRS}
-)
-
-link_directories(BEFORE ${LINK_DIRECTORIES})
+set(INCLUDE_DIRECTORIES
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${CMAKE_CURRENT_SOURCE_DIR}/Interface
+  ${CMAKE_CURRENT_SOURCE_DIR}/KFQA
+  )
 
 set(SRCS
-  CbmKFParticleFinder.cxx
-  CbmKFParticleFinderPID.cxx
-  CbmKFParticleFinderQa.cxx
-  CbmKFParticleInterface.cxx
-)
-
-set(HEADERS
-  CbmKFParticleFinder.h
-  CbmKFParticleFinderPID.h
-  CbmKFParticleFinderQa.h
-  CbmKFParticleInterface.h
+CbmKFParticleFinder.cxx
+CbmKFParticleFinderPID.cxx
+CbmKFParticleFinderQa.cxx
+CbmKFParticleInterface.cxx
 )
 
 If(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
   ADD_DEFINITIONS(-Wall -Wsign-promo -Wctor-dtor-privacy -Wreorder -Wno-deprecated -Wno-parentheses -DDO_TPCCATRACKER_EFF_PERFORMANCE -DNonhomogeneousField -DCBM -DUSE_TIMERS) # -Weffc++ -Wnon-virtual-dtor -Woverloaded-virtual -Wold-style-cast   : wait for other parts of cbmroot\root.
-
-  # ---Check for compiler flags
+  #---Check for compiler flags
   CHECK_CXX_COMPILER_FLAG("-Werror -Wno-pmf-conversions" HAS_PMF)
-
   If(HAS_PMF)
     ADD_DEFINITIONS(-Wno-pmf-conversions)
   EndIf()
-
   CHECK_CXX_COMPILER_FLAG("-Werror -Wstrict-null-sentinel" HAS_SENTINEL)
-
   If(HAS_SENTINEL)
     ADD_DEFINITIONS(-Wstrict-null-sentinel)
   EndIf()
-
   CHECK_CXX_COMPILER_FLAG("-Werror -Wno-non-template-friend" HAS_TEMPLATE_FRIEND)
-
   If(HAS_TEMPLATE_FRIEND)
     ADD_DEFINITIONS(-Wno-non-template-friend)
   EndIf()
-
   CHECK_CXX_COMPILER_FLAG("-Werror -Wno-pragmas" HAS_PRAGMA)
-
   If(HAS_PRAGMA)
     ADD_DEFINITIONS(-Wno-pragmas)
   EndIf()
 Else()
-  ADD_DEFINITIONS(-Wall -Wsign-promo -Wno-pmf-conversions -Wctor-dtor-privacy -Wreorder -Wno-deprecated -Wstrict-null-sentinel -Wno-non-template-friend -Wno-pragmas -Wno-parentheses -DDO_TPCCATRACKER_EFF_PERFORMANCE -DNonhomogeneousField -DCBM -DUSE_TIMERS) # -Weffc++ -Wnon-virtual-dtor -Woverloaded-virtual -Wold-style-cast   : wait for other parts of cbmroot\root.
+  ADD_DEFINITIONS(-Wall -Wsign-promo  -Wno-pmf-conversions -Wctor-dtor-privacy -Wreorder -Wno-deprecated -Wstrict-null-sentinel -Wno-non-template-friend -Wno-pragmas -Wno-parentheses -DDO_TPCCATRACKER_EFF_PERFORMANCE -DNonhomogeneousField -DCBM -DUSE_TIMERS) # -Weffc++ -Wnon-virtual-dtor -Woverloaded-virtual -Wold-style-cast   : wait for other parts of cbmroot\root.
 EndIf()
 
-IF(SSE_FOUND)
+IF (SSE_FOUND)
   Message(STATUS "KFParticleInterface will be compiled with SSE support")
   ADD_DEFINITIONS(-DHAVE_SSE)
-  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS
-    "-msse -O3")
-ELSE(SSE_FOUND)
+  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS 
+  "-msse -O3")
+ELSE (SSE_FOUND)
   MESSAGE(STATUS "KFParticleInterface will be compiled without SSE support")
-  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS
-    "-O3")
-ENDIF(SSE_FOUND)
+  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS 
+  "-O3")
+ENDIF (SSE_FOUND)
+
 
-set(LINKDEF KFParticleInterfaceLinkDef.h)
 Set(LIBRARY_NAME KFParticleInterface)
-Set(DEPENDENCIES
-  KF KFQA KFParticle L1
-)
+set(LINKDEF ${LIBRARY_NAME}LinkDef.h)
+set(PUBLIC_DEPENDENCIES
+  CbmData
+  KF
+  FairRoot::Base  
+  ROOT::Core
+  ROOT::Hist
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmStsBase
+  KFQA
+  KFParticle
+  L1
+  FairLogger::FairLogger
+  ROOT::EG
+  ROOT::MathCore
+  ROOT::Matrix
+  ROOT::Physics
+  )
+
+set(INTERFACE_DEPENDENCIES
+  CbmRecoBase
+  )
+
 Set(DEFINITIONS -DDO_TPCCATRACKER_EFF_PERFORMANCE -DNonhomogeneousField -DCBM -DUSE_TIMERS)
 
-GENERATE_LIBRARY()
+generate_cbm_library()
 
 Add_Dependencies(KFParticleInterface KFPARTICLE)
diff --git a/reco/KF/KFQA.cmake b/reco/KF/KFQA.cmake
index a291599ef1..458f22cf84 100644
--- a/reco/KF/KFQA.cmake
+++ b/reco/KF/KFQA.cmake
@@ -2,67 +2,23 @@
 # the array .
 # The extension is already found.  Any number of sources could be listed here.
 
-Set(INCLUDE_DIRECTORIES
-${CBMBASE_DIR} 
-
-${CBMROOT_SOURCE_DIR}/reco/base
-
-${CBMDATA_DIR}
-${CBMDATA_DIR}/base
-${CBMDATA_DIR}/sts
-${CBMDATA_DIR}/mvd
-${CBMDATA_DIR}/much
-${CBMDATA_DIR}/trd
-${CBMDATA_DIR}/rich
-${CBMDATA_DIR}/tof
-${CBMDATA_DIR}/global
-
-${CBMROOT_SOURCE_DIR}/reco/KF
-${CBMROOT_SOURCE_DIR}/reco/KF/Interface
-${CBMROOT_SOURCE_DIR}/reco/KF/KFQA
-
-${CBMDETECTORBASE_DIR}/sts
-
-${CBMROOT_SOURCE_DIR}/reco/L1
-${CBMROOT_SOURCE_DIR}/reco/L1/L1Algo
-${CBMROOT_SOURCE_DIR}/reco/L1/ParticleFinder
-
-${CBMROOT_SOURCE_DIR}/mvd 
-)
-
-Include_Directories( ${INCLUDE_DIRECTORIES})
-
-Set(SYSTEM_INCLUDE_DIRECTORIES
-  ${KFParticle_INCLUDE_DIR}
-  ${BASE_INCLUDE_DIRECTORIES} 
-)
-
-Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-${KFParticle_LIB_DIR}
-${FAIRROOT_LIBRARY_DIR}
-${ROOT_LIBRARY_DIR}
-${Boost_LIBRARY_DIRS}
-)
- 
-link_directories(BEFORE ${LINK_DIRECTORIES})
+set(INCLUDE_DIRECTORIES
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${CMAKE_CURRENT_SOURCE_DIR}/KFQA
+  ${CMAKE_CURRENT_SOURCE_DIR}/Interface
+  )
 
 set(SRCS
-KFQA/CbmKFTrErrMCPoints.cxx
-KFQA/CbmKFTrackFitQa.cxx
-KFQA/CbmKFTrackQa.cxx
-KFQA/KFParticleMatch.cxx
-)
+  KFQA/CbmKFTrErrMCPoints.cxx
+  KFQA/CbmKFTrackFitQa.cxx
+  KFQA/CbmKFTrackQa.cxx
+  KFQA/KFParticleMatch.cxx
+  )
 
 
 set(HEADERS
-KFQA/CbmKFTrErrMCPoints.h
-KFQA/CbmKFTrackFitQa.h
-KFQA/CbmKFTrackQa.h
-KFQA/CbmKFPartEfficiencies.h
-KFQA/KFParticleMatch.h
-)
+  KFQA/CbmKFPartEfficiencies.h
+  )
 
 If(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
   ADD_DEFINITIONS(-Wall -Wsign-promo -Wctor-dtor-privacy -Wreorder -Wno-deprecated -Wno-parentheses -DDO_TPCCATRACKER_EFF_PERFORMANCE -DNonhomogeneousField -DCBM -DUSE_TIMERS) # -Weffc++ -Wnon-virtual-dtor -Woverloaded-virtual -Wold-style-cast   : wait for other parts of cbmroot\root.
@@ -98,17 +54,35 @@ ELSE (SSE_FOUND)
   "-O3")
 ENDIF (SSE_FOUND)
 
-set(LINKDEF KFQALinkDef.h)
-Set(LIBRARY_NAME KFQA)
-Set(DEPENDENCIES
-    KF L1 KFParticle
-)
+
+set(LIBRARY_NAME KFQA)
+set(LINKDEF ${LIBRARY_NAME}LinkDef.h)
+set(PUBLIC_DEPENDENCIES
+  CbmData
+  KF
+  L1
+  FairRoot::Base
+  ROOT::Core
+  ROOT::Hist
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmBase
+  CbmStsBase
+  KFParticle
+  ROOT::EG
+  ROOT::MathCore
+  ROOT::RIO
+  ROOT::Tree
+  )
+
+
 
 Set(DEFINITIONS -DDO_TPCCATRACKER_EFF_PERFORMANCE -DNonhomogeneousField -DCBM -DUSE_TIMERS)
 
-GENERATE_LIBRARY()
+generate_cbm_library()
 
-Add_Dependencies(KFQA KFPARTICLE)
-Install(FILES KFQA/CbmKFTrErrMCPoints.h
+install(FILES KFQA/CbmKFTrErrMCPoints.h
               KFQA/CbmKFPartEfficiencies.h
-        DESTINATION include/KF/KFQA)
+        DESTINATION include/KF/KFQA
+       )
diff --git a/reco/L1/CMakeLists.txt b/reco/L1/CMakeLists.txt
index 9cbe13782f..f7012dd7b6 100644
--- a/reco/L1/CMakeLists.txt
+++ b/reco/L1/CMakeLists.txt
@@ -1,139 +1,81 @@
-# Create a library called "libL1" which includes the source files given in
-# the array.
-# The extension is already found.Any number of sources could be listed here.
+#Create a library called "libL1" which includes the source files given in
+#the array.
+#The extension is already found.Any number of sources could be listed here.
 
 # extra warnings to examine the code
-# ADD_DEFINITIONS(-Wall -Wextra -Wshadow -Weffc++)
+#ADD_DEFINITIONS(-Wall -Wextra -Wshadow -Weffc++)
 
 # L1 defines
 ADD_DEFINITIONS(-DDO_TPCCATRACKER_EFF_PERFORMANCE -DNonhomogeneousField -DCBM -DUSE_TIMERS)
 
-Set(INCLUDE_DIRECTORIES
-
-  ${CBMROOT_SOURCE_DIR}/algo/ca
-  ${CBMROOT_SOURCE_DIR}/algo/ca/simd
-  ${CBMROOT_SOURCE_DIR}/reco/base
-  ${CBMROOT_SOURCE_DIR}/reco/detectors/sts
-  ${CBMROOT_SOURCE_DIR}/reco/detectors/rich
-  ${CBMROOT_SOURCE_DIR}/reco/detectors/rich/fitter
-  ${CBMBASE_DIR}
-
-  ${CBMDATA_DIR}
-  ${CBMDATA_DIR}/raw
-  ${CBMDATA_DIR}/sts
-  ${CBMDATA_DIR}/much
-  ${CBMDATA_DIR}/mvd
-  ${CBMDATA_DIR}/trd
-  ${CBMDATA_DIR}/tof
-  ${CBMDATA_DIR}/rich
-  ${CBMDATA_DIR}/global
-
-  ${CBMROOT_SOURCE_DIR}/core/qa
-
-  ${CBMROOT_SOURCE_DIR}/rich/reco/fitter
-
-  ${CBMROOT_SOURCE_DIR}/reco/L1
-  ${CBMROOT_SOURCE_DIR}/reco/L1/L1Algo
-  ${CBMROOT_SOURCE_DIR}/reco/L1/catools
-  ${CBMROOT_SOURCE_DIR}/reco/L1/OffLineInterface
-  ${CBMROOT_SOURCE_DIR}/reco/L1/ParticleFinder
-  ${CBMROOT_SOURCE_DIR}/reco/L1/qa
-
-  ${CBMROOT_SOURCE_DIR}/reco/KF
-  ${CBMROOT_SOURCE_DIR}/reco/KF/KFQA
-  ${CBMROOT_SOURCE_DIR}/reco/KF/Interface
-  ${CBMROOT_SOURCE_DIR}/run
-  ${CBMROOT_SOURCE_DIR}/sim/transport/steer
-  ${CBMROOT_SOURCE_DIR}/sim/transport/geosetup
-
-  ${CBMDATA_DIR}
-  ${CBMDATA_DIR}/base
-
-  ${CBMDETECTORBASE_DIR}/sts
-
-  ${CBMROOT_SOURCE_DIR}/mvd
-  ${CBMDETECTORBASE_DIR}/trd
-  ${CBMDETECTORBASE_DIR}/much
-  ${CBMDETECTORBASE_DIR}/tof
-)
-
-Include_Directories(${INCLUDE_DIRECTORIES})
-
-Set(SYSTEM_INCLUDE_DIRECTORIES
-  ${BASE_INCLUDE_DIRECTORIES}
-  ${KFParticle_INCLUDE_DIR}
-)
+set(INCLUDE_DIRECTORIES
+  ${CMAKE_SOURCE_DIR}/algo/ca
+  ${CMAKE_SOURCE_DIR}/algo/ca/simd
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${CMAKE_CURRENT_SOURCE_DIR}/L1Algo
+  ${CMAKE_CURRENT_SOURCE_DIR}/OffLineInterface
+  ${CMAKE_CURRENT_SOURCE_DIR}/ParticleFinder
+  ${CMAKE_CURRENT_SOURCE_DIR}/qa
+  ${CMAKE_CURRENT_SOURCE_DIR}/L1Algo/utils
+  ${CMAKE_CURRENT_SOURCE_DIR}/catools
+  )
 
-if(OPENMP_FOUND)
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+if (OPENMP_FOUND)
+  set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
+  set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
   set(SYSTEM_INCLUDE_DIRECTORIES
     ${SYSTEM_INCLUDE_DIRECTORIES}
     ${OpenMP_CXX_INCLUDE_DIRS}
   )
 endif()
 
-Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-  ${KFParticle_LIB_DIR}
-  ${FAIRROOT_LIBRARY_DIR}
-  ${ROOT_LIBRARY_DIR}
-  ${Boost_LIBRARY_DIRS}
-)
 
-if(OPENMP_FOUND AND APPLE)
+if (OPENMP_FOUND AND APPLE)
   get_filename_component(OpenMP_CXX_LIBRARY_DIR ${OpenMP_CXX_LIBRARIES} DIRECTORY)
   Set(LINK_DIRECTORIES
     ${LINK_DIRECTORIES}
     ${OpenMP_CXX_LIBRARY_DIR}
   )
 endif()
+ 
 
-link_directories(${LINK_DIRECTORIES})
-
-# ----- Compilation sources --------------------------------------------
 set(SRCS
-
-  # L1Algo / L1CATrackFinder.cxx
-  # CbmL1Performance.cxx
-  # CbmL1ReadEvent.cxx
-  # CbmL1CATrdTrackFinderSA.cxx
-  CbmL1TrdTracklet.cxx
-  CbmL1TrdTracklet4.cxx
+  #L1Algo / L1CATrackFinder.cxx
+  #CbmL1Performance.cxx
+  #CbmL1ReadEvent.cxx
+  #CbmL1CATrdTrackFinderSA.cxx 
+  CbmL1TrdTracklet.cxx 
+  CbmL1TrdTracklet4.cxx 
   CbmL1.cxx
-
-  # CbmL1TrdTrackFinderSts.cxx
-  CbmL1TrackMerger.cxx
+  #CbmL1TrdTrackFinderSts.cxx 
+  CbmL1TrackMerger.cxx 
   CbmL1TofMerger.cxx
-  OffLineInterface/CbmL1RichENNRingFinder.cxx
-  OffLineInterface/CbmL1RichENNRingFinderParallel.cxx
-  OffLineInterface/CbmL1StsTrackFinder.cxx
-  OffLineInterface/CbmL1GlobalTrackFinder.cxx
+ # L1AlgoInputData.cxx
+  #OffLineInterface/CbmL1RichENNRingFinder.cxx
+  #OffLineInterface/CbmL1RichENNRingFinderParallel.cxx 
+  OffLineInterface/CbmL1StsTrackFinder.cxx 
+  OffLineInterface/CbmL1GlobalTrackFinder.cxx 
   OffLineInterface/CbmL1GlobalFindTracksEvents.cxx
+  #OffLineInterface / CbmL1MuchFinder.cxx
+  #OffLineInterface / CbmL1MuchHit.cxx
+  #OffLineInterface / CbmL1MuchTrack.cxx
+  #OffLineInterface / CbmL1MuchFinderQa.cxx
+  #OffLineInterface/CbmL1RichRingQa.cxx
+  #OffLineInterface / CbmL1SttHit.cxx
+  #OffLineInterface / CbmL1SttTrackFinder.cxx
+  #OffLineInterface / CbmL1SttTrack.cxx 
 
-  # OffLineInterface / CbmL1MuchFinder.cxx
-  # OffLineInterface / CbmL1MuchHit.cxx
-  # OffLineInterface / CbmL1MuchTrack.cxx
-  # OffLineInterface / CbmL1MuchFinderQa.cxx
-  OffLineInterface/CbmL1RichRingQa.cxx
-
-  # OffLineInterface / CbmL1SttHit.cxx
-  # OffLineInterface / CbmL1SttTrackFinder.cxx
-  # OffLineInterface / CbmL1SttTrack.cxx
   L1Algo/L1Algo.cxx
   L1Algo/L1CATrackFinder.cxx
   L1Algo/L1BranchExtender.cxx
   L1Algo/L1TrackFitter.cxx
   L1Algo/L1HitsSortHelper.cxx
   L1Algo/L1Grid.cxx
-  CbmL1Performance.cxx
+  CbmL1Performance.cxx 
   CbmL1ReadEvent.cxx
   CbmCaPerformance.cxx
   L1Algo/L1Station.cxx
   L1Algo/L1TrackParFit.cxx
-  L1Algo/L1Event.cxx
-  L1Algo/L1EventMatch.cxx
   L1Algo/L1MCEvent.cxx
   L1Algo/L1Fit.cxx
   L1Algo/L1FitMaterial.cxx
@@ -165,158 +107,130 @@ set(SRCS
   qa/CbmTrackingInputQaSts.cxx
 )
 
-# ----------------------------------------------------------------------
+set(NO_DICT_SRCS
+  L1Algo/L1Event.cxx
+  L1Algo/L1EventMatch.cxx
+)
 
-# ----- Headers --------------------------------------------------------
 set(HEADERS
   CbmL1CATrdTrackFinderSA.h
-  CbmL1.h
-  CbmL1MCTrack.h
   CbmL1MCPoint.h
   CbmL1Hit.h
-  CbmL1TofMerger.h
   CbmL1Track.h
-  CbmL1TrackMerger.h
   CbmL1TrackPar.h
   CbmL1TrdHit.h
-
-  # CbmL1TrdTrackFinderSts.h
-  CbmL1TrdTracklet4.h
-  CbmL1TrdTracklet.h
   CbmL1Vtx.h
-
-  # OffLineInterface / CbmL1MuchFinder.h
-  # OffLineInterface / CbmL1MuchFinderQa.h
-  # OffLineInterface / CbmL1MuchHit.h
-  # OffLineInterface / CbmL1MuchTrack.h
-  OffLineInterface/CbmL1RichENNRingFinder.h
-  OffLineInterface/CbmL1RichRingQa.h
-  OffLineInterface/CbmL1StsTrackFinder.h
-  OffLineInterface/CbmL1GlobalTrackFinder.h
-  OffLineInterface/CbmL1GlobalFindTracksEvents.h
-
-  # OffLineInterface / CbmL1SttHit.h
-  # OffLineInterface / CbmL1SttTrackFinder.h
-  # OffLineInterface / CbmL1SttTrack.h
   L1Algo/L1Def.h
   L1Algo/L1Vector.h
-  CbmCaPerformance.h
-  catools/CaToolsMcData.h
-  catools/CaToolsMcDataManager.h
-  catools/CaToolsPerformance.h
-  qa/CbmTrackerInputQaTrd.h
-  qa/CbmTrackerInputQaTof.h
-  qa/CbmTrackingInputQaSts.h
 )
 
-# ----------------------------------------------------------------------
-If(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
-  ADD_DEFINITIONS(-Wall -Wsign-promo -Wctor-dtor-privacy -Wreorder -Wno-deprecated -Wno-parentheses) # -Weffc++ -Wnon-virtual-dtor -Woverloaded-virtual -Wold-style-cast : wait for other parts of cbmroot\root.
 
-  # -- - Check for compiler flags
-  CHECK_CXX_COMPILER_FLAG("-Werror -Wno-pmf-conversions" HAS_PMF)
 
+
+If(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+  ADD_DEFINITIONS(-Wall -Wsign-promo -Wctor-dtor-privacy -Wreorder -Wno-deprecated -Wno-parentheses) #   -Weffc++ -Wnon-virtual-dtor -Woverloaded-virtual -Wold-style-cast : wait for other parts of cbmroot\root.
+#-- - Check for compiler flags
+  CHECK_CXX_COMPILER_FLAG("-Werror -Wno-pmf-conversions" HAS_PMF)
   If(HAS_PMF)
     ADD_DEFINITIONS(-Wno-pmf-conversions)
   EndIf()
-
   CHECK_CXX_COMPILER_FLAG("-Werror -Wstrict-null-sentinel" HAS_SENTINEL)
-
   If(HAS_SENTINEL)
     ADD_DEFINITIONS(-Wstrict-null-sentinel)
   EndIf()
-
   CHECK_CXX_COMPILER_FLAG("-Werror -Wno-non-template-friend" HAS_TEMPLATE_FRIEND)
-
   If(HAS_TEMPLATE_FRIEND)
     ADD_DEFINITIONS(-Wno-non-template-friend)
   EndIf()
 Else()
-  ADD_DEFINITIONS(-Wall -Wsign-promo -Wno-pmf-conversions -Wctor-dtor-privacy -Wreorder -Wno-deprecated -Wstrict-null-sentinel -Wno-non-template-friend -Wno-parentheses) # -Weffc++ -Wnon-virtual-dtor -Woverloaded-virtual -Wold-style-cast : wait for other parts of cbmroot\root.
+  ADD_DEFINITIONS(-Wall -Wsign-promo  -Wno-pmf-conversions -Wctor-dtor-privacy -Wreorder -Wno-deprecated -Wstrict-null-sentinel -Wno-non-template-friend -Wno-parentheses) #   -Weffc++ -Wnon-virtual-dtor -Woverloaded-virtual -Wold-style-cast : wait for other parts of cbmroot\root. 
 EndIf()
 
-IF(SSE_FOUND)
+
+IF (SSE_FOUND)
   ADD_DEFINITIONS(-DHAVE_SSE)
-  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS
-    "-msse -O3")
+  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS 
+  "-msse -O3")
   Message(STATUS "L1 will be compiled with SSE support")
-ELSE(SSE_FOUND)
+ELSE (SSE_FOUND)
   Message(STATUS "L1 will be compiled without SSE support")
-  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS
-    "-O3")
-ENDIF(SSE_FOUND)
+  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS 
+  "-O3")
+ENDIF (SSE_FOUND)
 
-Set(LINKDEF L1LinkDef.h)
 
-Set(LIBRARY_NAME L1)
 
-Set(DEPENDENCIES
-  Algo
-  KF
-  KFParticle
-  Base
+set(LIBRARY_NAME L1)
+set(LINKDEF ${LIBRARY_NAME}LinkDef.h)
+set(PUBLIC_DEPENDENCIES
   CbmBase
   CbmData
-  CbmSimSteer
+  CbmQaBase
+  KF
+  FairLogger::FairLogger
+  FairRoot::Base
+  ROOT::Core
+  ROOT::Gpad
+  ROOT::Graf
+  ROOT::Hist
+  ROOT::Physics
+  )
 
-  # CbmGeoSetup
+set(PRIVATE_DEPENDENCIES
   CbmMuchBase
-  CbmTrdBase
-  CbmTofBase
+  CbmMvd
+  CbmRecoSts
+  CbmSimSteer
   CbmStsBase
+  CbmTofBase
+  CbmTrdBase
   CbmRecoBase
-  CbmRecoSts
-  CbmQaBase
-  boost_regex
+  KFParticle
   external::yaml-cpp
-)
+  FairRoot::GeoBase
+  FairRoot::ParBase
+  ROOT::EG
+  ROOT::Geom
+  ROOT::Graf3d
+  ROOT::MathCore
+  ROOT::Matrix
+  ROOT::Minuit
+  ROOT::RIO
+  )
+
 
-if(OPENMP_FOUND AND APPLE)
-  Set(DEPENDENCIES ${DEPENDENCIES} ${OpenMP_CXX_LIBRARIES}
+if (OPENMP_FOUND AND APPLE)
+  Set(DEPENDENCIES ${PUBLIC_DEPENDENCIES} ${PRIVATE_DEPENDENCIES} ${OpenMP_CXX_LIBRARIES}
   )
 endif()
 
-GENERATE_LIBRARY()
-Install(FILES CbmL1Counters.h
-  L1Algo/L1Assert.h
-  L1Algo/L1EventEfficiencies.h
-  L1Algo/L1Grid.h
-  L1Algo/L1Branch.h
-  L1Algo/L1Field.h
-  L1Algo/L1Grid.h
-  L1Algo/L1Hit.h
-  L1Algo/L1HitPoint.h
-  L1Algo/L1HitsSortHelper.h
-  L1Algo/L1Portion.h
-  L1Algo/L1Station.h
-  L1Algo/L1Track.h
-  L1Algo/L1TrackPar.h
-  L1Algo/L1TrackParFit.h
-  L1Algo/L1Triplet.h
-  L1Algo/L1Vector.h
-  L1Algo/L1ObjectInitController.h
-  L1Algo/L1MaterialInfo.h
-  L1Algo/L1UMeasurementInfo.h
-  L1Algo/L1XYMeasurementInfo.h
-  L1Algo/L1BaseStationInfo.h
-  L1Algo/L1InitManager.h
-  L1Algo/L1CAIteration.h
-  L1Algo/L1Parameters.h
-  L1Algo/L1InputData.h
-  L1Algo/L1IODataManager.h
-  L1Algo/L1CloneMerger.h
-  L1Algo/L1ConfigRW.h
-  L1Algo/L1Constants.h
-  L1Algo/L1Utils.h
-  L1Algo/L1NaN.h
-  L1Algo/L1SimdSerializer.h
-  DESTINATION include
-)
-
-Install(FILES L1Algo/L1Algo.h
-  L1Algo/L1Branch.h
-  L1Algo/L1Field.h
-  L1Algo/L1Hit.h
-  L1Algo/L1Vector.h
-  DESTINATION include/L1Algo
-)
+generate_cbm_library()
+
+
+install(FILES CbmL1Counters.h
+              L1Algo/L1Assert.h
+              L1Algo/L1EventEfficiencies.h
+              L1Algo/L1Branch.h
+              L1Algo/L1HitPoint.h
+              L1Algo/L1Hit.h
+              L1Algo/L1Portion.h
+              L1Algo/L1Triplet.h
+              L1Algo/L1Event.h
+              L1Algo/L1EventMatch.h
+              L1Algo/L1ObjectInitController.h
+              L1Algo/L1Constants.h
+              L1Algo/L1Utils.h
+              L1Algo/L1NaN.h
+              L1Algo/L1SimdSerializer.h
+              L1Algo/L1TrackPar.h
+              L1Algo/L1Track.h
+        DESTINATION include
+       )
+
+install(FILES L1Algo/L1Algo.h
+              L1Algo/L1Branch.h
+              L1Algo/L1Field.h
+              L1Algo/L1Hit.h
+              L1Algo/L1Vector.h
+        DESTINATION include/L1Algo
+       )
diff --git a/reco/L1/L1LinkDef.h b/reco/L1/L1LinkDef.h
index 2ac5e1fdf2..686ad40584 100644
--- a/reco/L1/L1LinkDef.h
+++ b/reco/L1/L1LinkDef.h
@@ -11,7 +11,7 @@
 #pragma link off all functions;
 
 #pragma link C++ class CbmL1 + ;
-#pragma link C++ class CbmL1RichENNRingFinder + ;
+//#pragma link C++ class CbmL1RichENNRingFinder + ;
 #pragma link C++ class CbmL1StsTrackFinder + ;
 //#pragma link C++ class  CbmL1TrdTrackFinderSts+;
 #pragma link C++ class CbmL1TrackMerger + ;
@@ -20,7 +20,7 @@
 //#pragma link C++ class  CbmL1MuchHit+;
 //#pragma link C++ class  CbmL1MuchTrack+;
 //#pragma link C++ class  CbmL1MuchFinderQa+;
-#pragma link C++ class CbmL1RichRingQa + ;
+//#pragma link C++ class CbmL1RichRingQa + ;
 #pragma link C++ class CbmL1TrdTracklet + ;
 #pragma link C++ class CbmL1TrdTracklet4 + ;
 #pragma link C++ class CbmL1GlobalTrackFinder + ;
diff --git a/reco/app/cbmreco_fairrun/CMakeLists.txt b/reco/app/cbmreco_fairrun/CMakeLists.txt
index 64b53a0539..001fc2951c 100644
--- a/reco/app/cbmreco_fairrun/CMakeLists.txt
+++ b/reco/app/cbmreco_fairrun/CMakeLists.txt
@@ -2,29 +2,25 @@
 # SPDX-License-Identifier: GPL-3.0-only
 # Authors: Jan de Cuveland [committer]
 
-file(GLOB APP_SOURCES *.cxx)
-file(GLOB APP_HEADERS *.h)
+set(SRCS
+  Application.cxx
+  ProgramOptions.cxx
+  main.cxx
+  )
 
-add_executable(cbmreco_fairrun ${APP_SOURCES} ${APP_HEADERS})
+set(HEADERS
+  Application.h
+  ProgramOptions.h
+  ) 
 
-target_include_directories(cbmreco_fairrun SYSTEM PUBLIC ${Boost_INCLUDE_DIRS})
-
-# This will no longer be necessary when the CbmRecoTasks library is set up to include this property
-target_include_directories(cbmreco_fairrun
-  PUBLIC ${CMAKE_SOURCE_DIR}/reco/tasks
-)
-
-# This will no longer be necessary when the Fairroot libraries are set up to include this property
-target_link_directories(cbmreco_fairrun
-  PUBLIC ${FAIRROOT_LIBRARY_DIR}
-)
-
-target_link_libraries(cbmreco_fairrun
-  external::fles_logging
-  external::fles_monitoring
-  CbmRecoTasks
-  Core
-  ${Boost_LIBRARIES}
-)
+add_executable(cbmreco_fairrun ${SRCS} ${HEADERS})
+target_link_libraries(cbmreco_fairrun 
+  PUBLIC 
+    CbmRecoTasks 
+  PRIVATE 
+    Boost::program_options
+    external::fles_monitoring
+    external::fles_logging 
+  )
 
 install(TARGETS cbmreco_fairrun DESTINATION bin)
diff --git a/reco/base/CMakeLists.txt b/reco/base/CMakeLists.txt
index 75e9c1cd58..5f95dac24a 100644
--- a/reco/base/CMakeLists.txt
+++ b/reco/base/CMakeLists.txt
@@ -2,12 +2,10 @@
 # V. Friese,      1 August   2019
 # P.-A. Loizeau, 13 February 2020
 
+set(INCLUDE_DIRECTORIES
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  )
 
-# -----   Library name   ----------------------------------
-Set(LIBRARY_NAME CbmRecoBase)
-# ---------------------------------------------------------
-
-# -----  Compilation sources   ----------------------------
 set(SRCS
 CbmUnpackTaskBase.cxx
 
@@ -30,66 +28,30 @@ CbmTofMerger.cxx
 CbmTrackMerger.cxx
 CbmRichMerger.cxx
 )
-# ---------------------------------------------------------
-
-
-
-# ----  Include directories -------------------------------
-set(INCLUDE_DIRECTORIES
-#${CBMDATA_DIR}
-#${CBMROOT_SOURCE_DIR}/reco
-${CBMROOT_SOURCE_DIR}/reco/base
-${CBMROOT_SOURCE_DIR}/core/base
-${CBMROOT_SOURCE_DIR}/core/data
-${CBMROOT_SOURCE_DIR}/core/data/base
-${CBMROOT_SOURCE_DIR}/core/data/sts
-)
-
-set(SYSTEM_INCLUDE_DIRECTORIES
-${BASE_INCLUDE_DIRECTORIES}
-${FLES_IPC_INCLUDE_DIRECTORY}
-)
-# ---------------------------------------------------------
 
+set(HEADERS
+  CbmRecoUnpackConfig.tmpl
+  CbmRecoUnpackAlgo.tmpl
+  )
 
 
-# ----  Link directories ----------------------------------
-set(LINK_DIRECTORIES
-${FAIRROOT_LIBRARY_DIR}
-${ROOT_LIBRARY_DIR}
-${Boost_LIBRARY_DIRS}
-)
-# ---------------------------------------------------------
-
-
-
-# -----   Library dependences   ---------------------------
-Set(DEPENDENCIES
-external::fles_ipc
-Base
-CbmBase
-#CbmData
-)
-# ---------------------------------------------------------
-
-
-# -----  LinkDef file   -----------------------------------
+set(LIBRARY_NAME CbmRecoBase)
 set(LINKDEF ${LIBRARY_NAME}LinkDef.h)
-# ---------------------------------------------------------
+set(PUBLIC_DEPENDENCIES
+  CbmData
+  FairRoot::Base
+  ROOT::Core
+  )
 
+set(PRIVATE_DEPENDENCIES
+  CbmBase
+  )
 
-# -----  Install files without source file   --------------
-Install(FILES 
-    CbmRecoUnpackConfig.tmpl
-    CbmRecoUnpackAlgo.tmpl
-    DESTINATION include
-)
-# ---------------------------------------------------------
+set(INTERFACE_DEPENDENCIES
+  CbmFlibMcbm2018
+  external::fles_ipc
+  ROOT::Hist
+  )
 
 
-# -----  Let cmake do the job   ---------------------------
-include_directories( ${INCLUDE_DIRECTORIES})
-include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-link_directories( ${LINK_DIRECTORIES})
-GENERATE_LIBRARY()
-# ---------------------------------------------------------
+generate_cbm_library()
diff --git a/reco/calibration/CMakeLists.txt b/reco/calibration/CMakeLists.txt
index 0224ba9a41..29fb9cf1a1 100644
--- a/reco/calibration/CMakeLists.txt
+++ b/reco/calibration/CMakeLists.txt
@@ -2,70 +2,24 @@
 # V. Friese,      1 August   2019
 # P.-A. Loizeau, 13 February 2020
 
-
-# -----   Library name   ----------------------------------
-Set(LIBRARY_NAME CbmRecoCal)
-# ---------------------------------------------------------
-
-# -----  Compilation sources   ----------------------------
-set(SRCS
-CbmOffsetDigiTimeTester.cxx
-)
-# ---------------------------------------------------------
-
-
-
-# ----  Include directories -------------------------------
 set(INCLUDE_DIRECTORIES
-${CBMROOT_SOURCE_DIR}/core/data
-//  ${CBMROOT_SOURCE_DIR}/core/data/beamtime
-  ${CBMROOT_SOURCE_DIR}/core/data/sts
-  ${CBMROOT_SOURCE_DIR}/core/data/much
-  ${CBMROOT_SOURCE_DIR}/core/data/tof
-  ${CBMROOT_SOURCE_DIR}/core/data/trd
-  ${CBMROOT_SOURCE_DIR}/core/data/rich
-  ${CBMROOT_SOURCE_DIR}/core/data/psd
-  ${CBMROOT_SOURCE_DIR}/core/data/global
-
-${CBMROOT_SOURCE_DIR}/reco
-${CBMROOT_SOURCE_DIR}/reco/base
-${CBMROOT_SOURCE_DIR}/reco/calibration
-)
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  )
 
-set(SYSTEM_INCLUDE_DIRECTORIES
-${BASE_INCLUDE_DIRECTORIES}
-)
-# ---------------------------------------------------------
-
-
-
-# ----  Link directories ----------------------------------
-set(LINK_DIRECTORIES
-${ROOT_LIBRARY_DIR}
-${FAIRROOT_LIBRARY_DIR}
-${Boost_LIBRARY_DIRS}
-)
-# ---------------------------------------------------------
-
-
-
-# -----   Library dependences   ---------------------------
-Set(DEPENDENCIES
-CbmBase
-CbmData
-CbmRecoBase
-)
-# ---------------------------------------------------------
+set(SRCS
+  CbmOffsetDigiTimeTester.cxx
+  )
 
 
-# -----  LinkDef file   -----------------------------------
+set(LIBRARY_NAME CbmRecoCal)
 set(LINKDEF ${LIBRARY_NAME}LinkDef.h)
-# ---------------------------------------------------------
+set(PRIVATE_DEPENDENCIES
+  CbmData
+  )
 
+set(INTERFACE_DEPENDENCIES
+  FairRoot::Base
+  ROOT::Core
+  )
 
-# -----  Let cmake do the job   ---------------------------
-include_directories( ${INCLUDE_DIRECTORIES})
-include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-link_directories( ${LINK_DIRECTORIES})
-GENERATE_LIBRARY()
-# ---------------------------------------------------------
+generate_cbm_library()
diff --git a/reco/detectors/much/CMakeLists.txt b/reco/detectors/much/CMakeLists.txt
index fbc1ebb738..fe8a94bc86 100644
--- a/reco/detectors/much/CMakeLists.txt
+++ b/reco/detectors/much/CMakeLists.txt
@@ -1,58 +1,52 @@
-Set(INCLUDE_DIRECTORIES
-${CMAKE_CURRENT_SOURCE_DIR}
-${CMAKE_CURRENT_SOURCE_DIR}/qa
-${CMAKE_CURRENT_SOURCE_DIR}/unpack
-
-${CBMDETECTORBASE_DIR}/much
-
-${CBMROOT_SOURCE_DIR}/reco/base
-${CBMROOT_SOURCE_DIR}/core/qa
-
-${CBMBASE_DIR}
-
-${CBMDATA_DIR}
-${CBMDATA_DIR}/raw
-${CBMDATA_DIR}/much
-${CBMDATA_DIR}/global
-${CBMDATA_DIR}/base
-)
-
-Include_Directories( ${INCLUDE_DIRECTORIES})
-
-Set(SYSTEM_INCLUDE_DIRECTORIES
-  ${BASE_INCLUDE_DIRECTORIES}
-  ${FLES_IPC_INCLUDE_DIRECTORY}
-)
-
-Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-${ROOT_LIBRARY_DIR}
-${FAIRROOT_LIBRARY_DIR}
-${Boost_LIBRARY_DIRS}
-)
-
-link_directories( ${LINK_DIRECTORIES})
+set(INCLUDE_DIRECTORIES
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${CMAKE_CURRENT_SOURCE_DIR}/qa
+  ${CMAKE_CURRENT_SOURCE_DIR}/unpack
+  )
 
 set(SRCS
-CbmMuchFindHitsGem.cxx
-CbmMuchHitProducerIdeal.cxx
-
-CbmMuchFindTracks.cxx
-CbmMuchMatchTracks.cxx
-CbmMuchTrackFinderIdeal.cxx
-
-qa/CbmMuchHitFinderQa.cxx
-
-unpack/CbmMuchUnpackAlgo.cxx
-unpack/CbmMuchUnpackMonitor.cxx
-unpack/CbmMuchUnpackConfig.cxx
-)
-
-set(LINKDEF CbmMuchRecoLinkDef.h)
-Set(LIBRARY_NAME CbmMuchReco)
-Set(DEPENDENCIES
-    CbmMuchBase CbmRecoBase CbmBase CbmQaBase CbmData Base
-)
-
-GENERATE_LIBRARY()
+  CbmMuchFindHitsGem.cxx
+  CbmMuchHitProducerIdeal.cxx
+
+  CbmMuchFindTracks.cxx
+  CbmMuchMatchTracks.cxx
+  CbmMuchTrackFinderIdeal.cxx
+
+  qa/CbmMuchHitFinderQa.cxx
+
+  unpack/CbmMuchUnpackAlgo.cxx
+  unpack/CbmMuchUnpackMonitor.cxx
+  unpack/CbmMuchUnpackConfig.cxx
+  )
+
+
+set(LIBRARY_NAME CbmMuchReco)
+set(LINKDEF ${LIBRARY_NAME}LinkDef.h)
+set(PUBLIC_DEPENDENCIES
+  CbmData
+  CbmMuchBase
+  CbmRecoBase
+  FairRoot::Base
+  ROOT::Core
+  ROOT::Hist
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmBase
+  CbmQaBase
+  FairRoot::ParBase
+  ROOT::Gpad
+  ROOT::Graf
+  ROOT::MathCore
+  ROOT::Physics
+  ROOT::RHTTP
+  ROOT::RIO
+  )
+
+set(INTERFACE_DEPENDENCIES
+  FairLogger::FairLogger
+  external::fles_ipc
+  )
+
+
+generate_cbm_library()
diff --git a/reco/detectors/psd/CMakeLists.txt b/reco/detectors/psd/CMakeLists.txt
index 310acce0b2..3f92afa003 100644
--- a/reco/detectors/psd/CMakeLists.txt
+++ b/reco/detectors/psd/CMakeLists.txt
@@ -1,37 +1,7 @@
 set(INCLUDE_DIRECTORIES
   ${CMAKE_CURRENT_SOURCE_DIR}
   ${CMAKE_CURRENT_SOURCE_DIR}/unpack
-
-  ${CMAKE_SOURCE_DIR}/core/detectors/psd
-
-  ${CBMBASE_DIR}
-
-  ${CBMDATA_DIR}
-  ${CBMDATA_DIR}/base
-  ${CBMDATA_DIR}/global
-  ${CBMDATA_DIR}/psd
-  ${CBMDATA_DIR}/raw
-
-
-  ${CBMROOT_SOURCE_DIR}/reco/base
-)
-
-include_directories(${INCLUDE_DIRECTORIES})
-
-set(SYSTEM_INCLUDE_DIRECTORIES
-  ${BASE_INCLUDE_DIRECTORIES}
-  ${FLES_IPC_INCLUDE_DIRECTORY} # for fles infos for unpacker
-)
-
-include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-  ${ROOT_LIBRARY_DIR}
-  ${FAIRROOT_LIBRARY_DIR}
-  ${Boost_LIBRARY_DIRS}
-)
-
-link_directories(${LINK_DIRECTORIES})
+  )
 
 set(SRCS
   CbmPsdHitProducer.cxx
@@ -41,15 +11,28 @@ set(SRCS
   unpack/CbmPsdUnpackConfig.cxx
 )
 
-set(LINKDEF CbmPsdRecoLinkDef.h)
-set(LIBRARY_NAME CbmPsdReco)
-set(DEPENDENCIES
-    CbmPsdBase
-    CbmData
-    CbmBase
-    Base
-    CbmRecoBase
-)
-
-GENERATE_LIBRARY()
 
+set(LIBRARY_NAME CbmPsdReco)
+set(LINKDEF ${LIBRARY_NAME}LinkDef.h)
+set(PUBLIC_DEPENDENCIES
+  CbmBase
+  CbmData
+  FairRoot::Base
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmPsdBase
+  CbmRecoBase
+  FairRoot::ParBase
+  ROOT::Core
+  ROOT::MathCore
+  ROOT::RIO
+  )
+
+set(INTERFACE_DEPENDENCIES
+  FairLogger::FairLogger
+  external::fles_ipc
+  ROOT::Hist
+  )
+
+generate_cbm_library()
diff --git a/reco/detectors/rich/CMakeLists.txt b/reco/detectors/rich/CMakeLists.txt
index ff2ea0e09e..c0105f9f12 100644
--- a/reco/detectors/rich/CMakeLists.txt
+++ b/reco/detectors/rich/CMakeLists.txt
@@ -1,119 +1,70 @@
 #add_subdirectory(qa/mirrors)
 
-Set(INCLUDE_DIRECTORIES
-${CMAKE_CURRENT_SOURCE_DIR}
-${CMAKE_CURRENT_SOURCE_DIR}/finder
-${CMAKE_CURRENT_SOURCE_DIR}/fitter
-${CMAKE_CURRENT_SOURCE_DIR}/tracks
-${CMAKE_CURRENT_SOURCE_DIR}/selection
-${CMAKE_CURRENT_SOURCE_DIR}/qa
-${CMAKE_CURRENT_SOURCE_DIR}/alignment
-${CMAKE_CURRENT_SOURCE_DIR}/mcbm
-${CMAKE_CURRENT_SOURCE_DIR}/unpack
-
-${CBMBASE_DIR}
-${CBMBASE_DIR}/report
-${CBMBASE_DIR}/draw
-${CBMBASE_DIR}/utils
-
-${CBMDATA_DIR}
-${CBMDATA_DIR}/base
-${CBMDATA_DIR}/rich
-${CBMDATA_DIR}/trd
-${CBMDATA_DIR}/tof
-${CBMDATA_DIR}/sts
-${CBMDATA_DIR}/global
-
-${CBMROOT_SOURCE_DIR}/core/detectors/rich
-${CBMROOT_SOURCE_DIR}/core/detectors/rich/utils
-
-${CBMROOT_SOURCE_DIR}/reco/base
-
-${CBMROOT_SOURCE_DIR}/reco/littrack
-${CBMROOT_SOURCE_DIR}/reco/littrack/std
-${CBMROOT_SOURCE_DIR}/reco/littrack/std/base
-${CBMROOT_SOURCE_DIR}/reco/littrack/cbm
-${CBMROOT_SOURCE_DIR}/reco/littrack/cbm/utils
-${CBMROOT_SOURCE_DIR}/reco/littrack/cbm/base
-
-${CBMROOT_SOURCE_DIR}/reco/KF
-${CBMROOT_SOURCE_DIR}/reco/KF/Interface
-
-${CBMROOT_SOURCE_DIR}/reco/L1/OffLineInterface
-)
-
-Include_Directories( ${INCLUDE_DIRECTORIES})
-
-Set(SYSTEM_INCLUDE_DIRECTORIES
-  ${BASE_INCLUDE_DIRECTORIES}
-  ${Boost_INCLUDE_DIR}
-  ${FLES_IPC_INCLUDE_DIRECTORY} # for fles for unpacker
-)
-
-Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-${KFParticle_LIB_DIR}
-${FAIRROOT_LIBRARY_DIR}
-${ROOT_LIBRARY_DIR}
-${Boost_LIBRARY_DIRS}
-)
-
-link_directories( ${LINK_DIRECTORIES})
+set(INCLUDE_DIRECTORIES
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${CMAKE_CURRENT_SOURCE_DIR}/finder
+  ${CMAKE_CURRENT_SOURCE_DIR}/fitter
+  ${CMAKE_CURRENT_SOURCE_DIR}/tracks
+  ${CMAKE_CURRENT_SOURCE_DIR}/selection
+  ${CMAKE_CURRENT_SOURCE_DIR}/qa
+  ${CMAKE_CURRENT_SOURCE_DIR}/alignment
+  ${CMAKE_CURRENT_SOURCE_DIR}/mcbm
+  ${CMAKE_CURRENT_SOURCE_DIR}/unpack
+  )
 
 set(SRCS
-CbmRichTrainAnnSelect.cxx
-CbmRichTrainAnnElectrons.cxx
-CbmRichReconstruction.cxx
-CbmRichHitProducer.cxx
-
-mcbm/CbmRichMCbmQa.cxx
-mcbm/CbmRichMCbmQaReal.cxx
-mcbm/CbmRichMCbmQaRichOnly.cxx
-mcbm/CbmRichMCbmHitProducer.cxx
-mcbm/CbmRichMCbmAerogelAna.cxx
-mcbm/CbmRichMCbmToTShifter.cxx
-mcbm/CbmRichMCbmSEDisplay.cxx
-
-qa/CbmRichRingFitterQa.cxx
-qa/CbmRichGeoOpt.cxx
-qa/CbmRichRecoTbQa.cxx
-qa/CbmRichGeoTest.cxx
-qa/CbmRichUrqmdTest.cxx
-qa/CbmRichGeoTestOpt.cxx
-qa/CbmRichRecoQa.cxx
-
-unpack/CbmRichUnpackAlgo.cxx
-unpack/CbmRichUnpackAlgo2022.cxx
-unpack/CbmRichUnpackAlgoBase.cxx
-unpack/CbmRichUnpackMonitor.cxx
-unpack/CbmRichUnpackConfig.cxx
-)
+  CbmRichTrainAnnSelect.cxx
+  CbmRichTrainAnnElectrons.cxx
+  CbmRichReconstruction.cxx
+  CbmRichHitProducer.cxx
+
+  mcbm/CbmRichMCbmQa.cxx
+  mcbm/CbmRichMCbmQaReal.cxx
+  mcbm/CbmRichMCbmQaRichOnly.cxx
+  mcbm/CbmRichMCbmHitProducer.cxx
+  mcbm/CbmRichMCbmAerogelAna.cxx
+  mcbm/CbmRichMCbmToTShifter.cxx
+  mcbm/CbmRichMCbmSEDisplay.cxx
+
+  qa/CbmRichRingFitterQa.cxx
+  qa/CbmRichGeoOpt.cxx
+  qa/CbmRichRecoTbQa.cxx
+  qa/CbmRichGeoTest.cxx
+  qa/CbmRichUrqmdTest.cxx
+  qa/CbmRichGeoTestOpt.cxx
+  qa/CbmRichRecoQa.cxx
+
+  unpack/CbmRichUnpackAlgo.cxx
+  unpack/CbmRichUnpackAlgo2022.cxx
+  unpack/CbmRichUnpackAlgoBase.cxx
+  unpack/CbmRichUnpackMonitor.cxx
+  unpack/CbmRichUnpackConfig.cxx
+  )
 
 set(NO_DICT_SRCS
-CbmRichConverter.cxx
-finder/CbmRichRingFinderIdeal.cxx
-finder/CbmRichRingFinderHoughImpl.cxx
-finder/CbmRichRingFinderHough.cxx
-
-fitter/CbmRichRingFitterCircle.cxx
-fitter/CbmRichRingFitterCOP.cxx
-fitter/CbmRichRingFitterRobustCOP.cxx
-fitter/CbmRichRingFitterTAU.cxx
-fitter/CbmRichRingFitterEllipseMinuit.cxx
-fitter/CbmRichRingFitterEllipseTau.cxx
-
-tracks/CbmRichProjectionProducerAnalytical.cxx
-tracks/CbmRichProjectionProducerTGeo.cxx
-tracks/CbmRichRingTrackAssignClosestD.cxx
-tracks/CbmRichRingTrackAssignIdeal.cxx
-tracks/CbmRichTrackExtrapolationIdeal.cxx
-tracks/CbmRichTrackExtrapolationKF.cxx
-tracks/CbmRichTrackExtrapolationLittrack.cxx
-tracks/CbmRichTrackExtrapolationMirrorIdeal.cxx
-
-selection/CbmRichRingSelectAnn.cxx
-)
+  CbmRichConverter.cxx
+  finder/CbmRichRingFinderIdeal.cxx
+  finder/CbmRichRingFinderHoughImpl.cxx
+  finder/CbmRichRingFinderHough.cxx
+
+  fitter/CbmRichRingFitterCircle.cxx
+  fitter/CbmRichRingFitterCOP.cxx
+  fitter/CbmRichRingFitterRobustCOP.cxx
+  fitter/CbmRichRingFitterTAU.cxx
+  fitter/CbmRichRingFitterEllipseMinuit.cxx
+  fitter/CbmRichRingFitterEllipseTau.cxx
+
+  tracks/CbmRichProjectionProducerAnalytical.cxx
+  tracks/CbmRichProjectionProducerTGeo.cxx
+  tracks/CbmRichRingTrackAssignClosestD.cxx
+  tracks/CbmRichRingTrackAssignIdeal.cxx
+  tracks/CbmRichTrackExtrapolationIdeal.cxx
+  tracks/CbmRichTrackExtrapolationKF.cxx
+  tracks/CbmRichTrackExtrapolationLittrack.cxx
+  tracks/CbmRichTrackExtrapolationMirrorIdeal.cxx
+
+  selection/CbmRichRingSelectAnn.cxx
+  )
 
 
 IF (SSE_FOUND)
@@ -127,19 +78,53 @@ ENDIF (SSE_FOUND)
 
 # END SSE
 
-set(LINKDEF  CbmRichRecoLinkDef.h)
 
-Set(LIBRARY_NAME CbmRichReco)
-Set(DEPENDENCIES
-    KF KFParticleInterface L1 Littrack CbmRichBase CbmRecoBase CbmBase CbmData Base MLP boost_regex Gdml 
-    )
 
-GENERATE_LIBRARY()
-
-Install(FILES
+set(LIBRARY_NAME CbmRichReco)
+set(LINKDEF  ${LIBRARY_NAME}LinkDef.h)
+set(PUBLIC_DEPENDENCIES
+  CbmBase
+  CbmData
+  CbmRichBase
+  L1
+  Littrack
+  FairRoot::Base
+  ROOT::Core
+  ROOT::Geom
+  ROOT::Gpad
+  ROOT::Hist
+  ROOT::MathCore
+  ROOT::Matrix
+  ROOT::Physics
+  ROOT::RIO
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmSimSteer
+  KF
+  CbmRecoBase
+  FairRoot::GeoBase
+  FairRoot::ParBase
+  ROOT::Graf
+  ROOT::MLP
+  ROOT::RHTTP
+  ROOT::Tree
+  ROOT::Minuit2
+  )
+
+set(INTERFACE_DEPENDENCIES
+  FairLogger::FairLogger
+  external::fles_ipc
+  )
+
+
+generate_cbm_library()
+
+
+
+install(FILES
         fitter/CbmRichRingFitterCOP.h fitter/CbmRichRingFitterBase.h
         fitter/CbmRichRingFitterEllipseBase.h selection/CbmRichRingSelectImpl.h
         finder/CbmRichRingFinderHoughImpl.h finder/CbmRichRingFinderData.h
         DESTINATION include
        )
-
diff --git a/reco/detectors/rich/CbmRichReconstruction.cxx b/reco/detectors/rich/CbmRichReconstruction.cxx
index 3924fa3a55..0093410499 100644
--- a/reco/detectors/rich/CbmRichReconstruction.cxx
+++ b/reco/detectors/rich/CbmRichReconstruction.cxx
@@ -16,7 +16,7 @@
 #include "CbmRichRing.h"
 //#include "prototype/CbmRichProtProjectionProducer.h"
 
-#include "CbmL1RichENNRingFinder.h"
+//#include "CbmL1RichENNRingFinder.h"
 #include "CbmRichRingFinderHough.h"
 #include "CbmRichRingFinderIdeal.h"
 #include "CbmRichTrackExtrapolationBase.h"
@@ -44,6 +44,7 @@
 #include <Logger.h>
 
 #include "TClonesArray.h"
+#include "TStopwatch.h"
 
 #include <iomanip>
 #include <iostream>
@@ -196,14 +197,15 @@ void CbmRichReconstruction::InitFinder()
   else if (fFinderName == "ideal") {
     fRingFinder = new CbmRichRingFinderIdeal();
   }
-  else if (fFinderName == "enn") {
-    fRingFinder = new CbmL1RichENNRingFinder(0);
-  }
-  else if ((fFinderName == "enn_parallel")) {
-    // fRingFinder = new CbmL1RichENNRingFinderParallel(0);
-    //    } else if (fFinderName == "hough_prototype") {
-    //        fRingFinder = new CbmRichProtRingFinderHough();
-  }
+  /* else if (fFinderName == "enn") {
+     fRingFinder = new CbmL1RichENNRingFinder(0);
+     }
+     else if ((fFinderName == "enn_parallel")) {
+     
+     fRingFinder = new CbmL1RichENNRingFinderParallel(0);
+     } else if (fFinderName == "hough_prototype") {
+     fRingFinder = new CbmRichProtRingFinderHough();
+     }*/
   else {
     LOG(fatal) << fFinderName << " is not correct name for ring finder algorithm.";
   }
diff --git a/reco/detectors/rich/alignment/CbmRichReconstruction.cxx b/reco/detectors/rich/alignment/CbmRichReconstruction.cxx
index d2bd89dd49..dd7e41f541 100644
--- a/reco/detectors/rich/alignment/CbmRichReconstruction.cxx
+++ b/reco/detectors/rich/alignment/CbmRichReconstruction.cxx
@@ -16,7 +16,7 @@
 #include "CbmRichRing.h"
 //#include "prototype/CbmRichProtProjectionProducer.h"
 
-#include "CbmL1RichENNRingFinder.h"
+//#include "CbmL1RichENNRingFinder.h"
 #include "CbmRichRingFinderHough.h"
 #include "CbmRichRingFinderIdeal.h"
 #include "CbmRichTrackExtrapolationBase.h"
@@ -172,14 +172,14 @@ void CbmRichReconstruction::InitFinder()
   else if (fFinderName == "ideal") {
     fRingFinder = new CbmRichRingFinderIdeal();
   }
-  else if (fFinderName == "enn") {
+  /*else if (fFinderName == "enn") {
     fRingFinder = new CbmL1RichENNRingFinder(0);
-  }
-  else if ((fFinderName == "enn_parallel")) {
-    // fRingFinder = new CbmL1RichENNRingFinderParallel(0);
-    //    } else if (fFinderName == "hough_prototype") {
-    //        fRingFinder = new CbmRichProtRingFinderHough();
-  }
+    }
+    else if ((fFinderName == "enn_parallel")) {
+    fRingFinder = new CbmL1RichENNRingFinderParallel(0);
+    } else if (fFinderName == "hough_prototype") {
+    fRingFinder = new CbmRichProtRingFinderHough();
+    }*/
   else {
     LOG(fatal) << fFinderName << " is not correct name for ring finder algorithm.";
   }
diff --git a/reco/detectors/sts/CMakeLists.txt b/reco/detectors/sts/CMakeLists.txt
index 376f5f640c..e9cca0d626 100644
--- a/reco/detectors/sts/CMakeLists.txt
+++ b/reco/detectors/sts/CMakeLists.txt
@@ -2,129 +2,91 @@
 # Last update: V. Friese, 25.03.2020
 
 
-# -----   Specify library name   --------------------------
-Set(LIBRARY_NAME CbmRecoSts)
-# ---------------------------------------------------------
+set(INCLUDE_DIRECTORIES
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${CMAKE_CURRENT_SOURCE_DIR}/sts
+  ${CMAKE_CURRENT_SOURCE_DIR}/unpack
+  ${CMAKE_CURRENT_SOURCE_DIR}/qa
+  ${CMAKE_CURRENT_SOURCE_DIR}/experimental
+  )
 
 
-# -----  Specify sources for compilation   ----------------
 set(SRCS
-CbmRecoSts.cxx
-CbmStsAlgoAnaCluster.cxx
-CbmStsAlgoFindClusters.cxx
-CbmStsAlgoFindHits.cxx
-CbmStsAlgoFindHitsOrtho.cxx
-CbmStsFindTracks.cxx
-CbmStsFindTracksEvents.cxx
-CbmStsRecoModule.cxx
-CbmRecoStsPixel.cxx
-CbmStsTrackFinderIdeal.cxx
-
-unpack/CbmStsUnpackAlgo.cxx
-unpack/CbmStsUnpackAlgoBase.cxx
-unpack/CbmStsUnpackAlgoLegacy.cxx
-unpack/CbmStsUnpackConfig.cxx
-unpack/CbmStsUnpackMonitor.cxx
-
-qa/CbmStsFindTracksQa.cxx
-)
+  CbmRecoSts.cxx
+  CbmStsAlgoAnaCluster.cxx
+  CbmStsAlgoFindClusters.cxx
+  CbmStsAlgoFindHits.cxx
+  CbmStsAlgoFindHitsOrtho.cxx
+  CbmStsFindTracks.cxx
+  CbmStsFindTracksEvents.cxx
+  CbmStsRecoModule.cxx
+  CbmRecoStsPixel.cxx
+  CbmStsTrackFinderIdeal.cxx
+
+  unpack/CbmStsUnpackAlgo.cxx
+  unpack/CbmStsUnpackAlgoBase.cxx
+  unpack/CbmStsUnpackAlgoLegacy.cxx
+  unpack/CbmStsUnpackConfig.cxx
+  unpack/CbmStsUnpackMonitor.cxx
+
+  qa/CbmStsFindTracksQa.cxx
+  )
+
 
 set(DEVICE_SRCS
-experimental/CbmStsGpuRecoDevice.cxx
-experimental/CbmStsGpuHitFinder.cxx
-)
+  experimental/CbmStsGpuRecoDevice.cxx
+  experimental/CbmStsGpuHitFinder.cxx
+  )
 
 set(NO_DICT_SRCS
-${DEVICE_SRCS}
-experimental/CbmGpuRecoSts.cxx
-)
-# -----  End of sources   ---------------------------------
-
-
-
-# ----  Specify include directories -----------------------
-set(INCLUDE_DIRECTORIES
-
-# This directory
-${CBMROOT_SOURCE_DIR}/reco/detectors/sts
-${CBMROOT_SOURCE_DIR}/reco/detectors/sts/unpack
-${CBMROOT_SOURCE_DIR}/reco/detectors/sts/qa
-${CBMROOT_SOURCE_DIR}/reco/detectors/sts/experimental
-
-# external
-${CBMROOT_SOURCE_DIR}/external/xpu/src
-
-# Reco
-${CBMROOT_SOURCE_DIR}/reco/base
-
-#QA
-${CBMROOT_SOURCE_DIR}/core/qa
-
-# Base
-${CBMBASE_DIR}
-
-# Data
-${CBMDATA_DIR}
-${CBMDATA_DIR}/base
-${CBMDATA_DIR}/global
-${CBMDATA_DIR}/sts
-${CBMDATA_DIR}/raw
-${CBMDATA_DIR}/mvd
+  ${DEVICE_SRCS}
+  experimental/CbmGpuRecoSts.cxx
+  )
 
-# MVD
-${CBMROOT_SOURCE_DIR}/mvd
-
-# STS
-${CBMDETECTORBASE_DIR}/sts
-)
-
-set(SYSTEM_INCLUDE_DIRECTORIES
-${BASE_INCLUDE_DIRECTORIES}
-${FLES_IPC_INCLUDE_DIRECTORY} # for fles infos for unpacker
-)
-# ----  End of include directories ------------------------
-
-
-# ----  Specify link directories --------------------------
-set(LINK_DIRECTORIES
-${ROOT_LIBRARY_DIR}
-${FAIRROOT_LIBRARY_DIR}
-${Boost_LIBRARY_DIRS}
-)
-# -----  End of link directories   ------------------------
-
-
-# -----   Specify library dependences   -------------------
-Set(DEPENDENCIES
-    CbmBase CbmData CbmQaBase CbmMvd CbmRecoBase CbmStsBase xpu
-)
-# ---------------------------------------------------------
-
-
-# -----  Specify LinkDef file   ---------------------------
+set(LIBRARY_NAME CbmRecoSts)
 set(LINKDEF ${LIBRARY_NAME}LinkDef.h)
-# ---------------------------------------------------------
+set(PUBLIC_DEPENDENCIES
+  CbmData
+  CbmStsBase
+  FairRoot::Base
+  ROOT::Core
+  ROOT::Hist
+  xpu
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmBase
+  CbmRecoBase
+  CbmFlibFlesTools
+  CbmMvd
+  FairRoot::ParBase
+  ROOT::Geom
+  ROOT::Gpad
+  ROOT::MathCore
+  ROOT::RHTTP
+  ROOT::RIO
+  )
+
+set(INTERFACE_DEPENDENCIES
+  FairLogger::FairLogger
+  external::fles_ipc
+  ROOT::Physics
+  )
 
 
 # ---- Enable OpenMP  -------------------------------------
 # Comented since the OpenMP code is also commented in the moment
-# if (OPENMP_FOUND)
-#  message(STATUS "OPENMP_FOUND = TRUE")
+#if (OPENMP_FOUND)
 #  set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
 #  set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
-# endif()
+#endif()
 # ---------------------------------------------------------
 
+generate_cbm_library()
 
-# -----  Let cmake do the job   ---------------------------
-include_directories( ${INCLUDE_DIRECTORIES})
-include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-link_directories( ${LINK_DIRECTORIES})
-GENERATE_LIBRARY()
 xpu_attach(CbmRecoSts ${DEVICE_SRCS})
 
 # FIXME: Why is this needed to install headers in subfolder?
 install(DIRECTORY experimental/ TYPE INCLUDE
     FILES_MATCHING PATTERN "*.h"
 )
-# ---------------------------------------------------------
diff --git a/reco/detectors/tof/CMakeLists.txt b/reco/detectors/tof/CMakeLists.txt
index 05bdfb4894..8a8a19dae7 100644
--- a/reco/detectors/tof/CMakeLists.txt
+++ b/reco/detectors/tof/CMakeLists.txt
@@ -1,42 +1,9 @@
 set(INCLUDE_DIRECTORIES
-
+  ${CBMROOT_SOURCE_DIR}/fles/flestools
   ${CMAKE_CURRENT_SOURCE_DIR}
   ${CMAKE_CURRENT_SOURCE_DIR}/unpack
+  )
 
-  ${CBMDETECTORBASE_DIR}/tof
-
-  ${CBMDATA_DIR}
-  ${CBMDATA_DIR}/base
-  ${CBMDATA_DIR}/tof
-  ${CBMDATA_DIR}/raw
-  ${CBMDATA_DIR}/global
-
-  ${CBMBASE_DIR}
-
-  ${CBMROOT_SOURCE_DIR}/reco/base
-
-  ${CBMROOT_SOURCE_DIR}/core/eventdisplay
-  ${CBMROOT_SOURCE_DIR}/core/qa
-
-  ${CBMROOT_SOURCE_DIR}/fles/flestools # for Timeslice/Microslice printout formatting tools
-)
-
-include_directories(${INCLUDE_DIRECTORIES})
-
-set(SYSTEM_INCLUDE_DIRECTORIES
-  ${BASE_INCLUDE_DIRECTORIES}
-  ${FLES_IPC_INCLUDE_DIRECTORY} # for fles infos for unpacker
-)
-
-include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-  ${ROOT_LIBRARY_DIR}
-  ${FAIRROOT_LIBRARY_DIR}
-  ${Boost_LIBRARY_DIRS}
-)
-
-link_directories(${LINK_DIRECTORIES})
 
 set(SRCS
   CbmTofBuildDigiEvents.cxx
@@ -58,11 +25,42 @@ set(SRCS
   unpack/CbmTofUnpackMonitor.cxx
 )
 
-set(LINKDEF CbmTofRecoLinkDef.h)
-Set(LIBRARY_NAME CbmTofReco)
-Set(DEFINITIONS ${DEFINITIONS} BUILD_TOF_BEAMTIME)
-Set(DEPENDENCIES
-    CbmTofBase CbmRecoBase CbmBase CbmData CbmFlibFlesTools CbmDisplay Base Minuit
-)
 
-GENERATE_LIBRARY()
+set(LIBRARY_NAME CbmTofReco)
+set(LINKDEF ${LIBRARY_NAME}LinkDef.h)
+set(PUBLIC_DEPENDENCIES
+  CbmBase
+  CbmData
+  CbmRecoBase
+  CbmTofBase
+  FairLogger::FairLogger
+  FairRoot::Base
+  ROOT::Core
+  ROOT::Graf3d
+  ROOT::Hist
+  ROOT::MathCore
+  ROOT::Minuit
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmDisplay
+  CbmFlibFlesTools
+  FairRoot::EventDisplay
+  FairRoot::ParBase
+  ROOT::Eve
+  ROOT::Geom
+  ROOT::Gpad
+  ROOT::Graf
+  ROOT::Matrix
+  ROOT::Physics
+  ROOT::RHTTP
+  ROOT::RIO
+  ROOT::Spectrum
+  )
+
+set(INTERFACE_DEPENDENCIES
+  external::fles_ipc
+  )
+
+
+generate_cbm_library()
diff --git a/reco/detectors/trd/CMakeLists.txt b/reco/detectors/trd/CMakeLists.txt
index 67d9216f7f..338d16fc0b 100644
--- a/reco/detectors/trd/CMakeLists.txt
+++ b/reco/detectors/trd/CMakeLists.txt
@@ -2,115 +2,109 @@
 # the array .
 # The extension is already found.  Any number of sources could be listed here.
 
-Set(INCLUDE_DIRECTORIES
+set(INCLUDE_DIRECTORIES
   ${CMAKE_CURRENT_SOURCE_DIR}
   ${CMAKE_CURRENT_SOURCE_DIR}/qa
   ${CMAKE_CURRENT_SOURCE_DIR}/qa/data
   ${CMAKE_CURRENT_SOURCE_DIR}/pid
   ${CMAKE_CURRENT_SOURCE_DIR}/rawToDigiMethods
   ${CMAKE_CURRENT_SOURCE_DIR}/unpack
+  )
 
-  ${CBMDETECTORBASE_DIR}/trd
-
-  ${CBMBASE_DIR}
-  ${CBMBASE_DIR}/draw
-
-  ${CBMROOT_SOURCE_DIR}/reco/base
-  ${CBMROOT_SOURCE_DIR}/core/qa
-
-  ${CBMDATA_DIR}
-  ${CBMDATA_DIR}/base
-  ${CBMDATA_DIR}/trd
-  ${CBMDATA_DIR}/global
-)
-
-Include_Directories(${INCLUDE_DIRECTORIES})
-
-Set(SYSTEM_INCLUDE_DIRECTORIES
-  ${VC_INCLUDE_DIRS}
-  ${BASE_INCLUDE_DIRECTORIES}
-  ${Boost_INCLUDE_DIR}
-  ${FLES_IPC_INCLUDE_DIRECTORY} # for fles infos for unpacker
-)
-
-Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-  ${Vc_LIB_DIR}
-  ${ROOT_LIBRARY_DIR}
-  ${FAIRROOT_LIBRARY_DIR}
-  ${Boost_LIBRARY_DIRS}
-)
-
-link_directories(${LINK_DIRECTORIES})
 
 set(SRCS
 
-  CbmTrdTrackFinderIdeal.cxx
-  CbmTrdTrackFitterIdeal.cxx
-  CbmTrdClusterFinder.cxx
-  CbmTrdHitProducer.cxx
-  CbmTrdModuleRec.cxx
-  CbmTrdModuleRecR.cxx
-  CbmTrdModuleRec2D.cxx
-  CbmTrdDigiRec.cxx
-
-  unpack/CbmTrdUnpackConfig.cxx
-  unpack/CbmTrdUnpackAlgoBaseR.cxx
-  unpack/CbmTrdUnpackAlgoR.cxx
-  unpack/CbmTrdUnpackAlgoLegacy2020R.cxx
-  unpack/CbmTrdUnpackMonitor.cxx
-
-  unpack/CbmTrdUnpackFaspAlgo.cxx
-  unpack/CbmTrdUnpackFaspConfig.cxx
-  unpack/CbmTrdUnpackFaspMonitor.cxx
-
-  qa/CbmTrdClusterizerFastQa.cxx
-  qa/CbmTrdHitDensityQa.cxx
-  qa/CbmTrdHitProducerClusterQa.cxx
-  qa/CbmTrdHitProducerQa.cxx
-  qa/CbmTrdOccupancyQa.cxx
-  qa/CbmTrdQa.cxx
-  qa/CbmTrdRecoQa.cxx
-  qa/CbmTrdTracksPidQa.cxx
-
-  qa/CbmTrdCalibTracker.cxx
-  qa/data/CbmTrdHitMC.cxx
-
-  pid/CbmTrdElectronsTrainAnn.cxx
-  pid/CbmTrdSetTracksPidWkn.cxx
-  pid/CbmTrdSetTracksPidModWkn.cxx
-  pid/CbmTrdSetTracksPidLike.cxx
-  pid/CbmTrdSetTracksPidANN.cxx
-
-  rawToDigiMethods/CbmTrdRawToDigiBaseR.cxx
-  rawToDigiMethods/CbmTrdRawToDigiMaxAdcR.cxx
-  rawToDigiMethods/CbmTrdRawToDigiFitR.cxx
-  rawToDigiMethods/CbmTrdRawToDigiLookUpCorrR.cxx
+CbmTrdTrackFinderIdeal.cxx 
+CbmTrdTrackFitterIdeal.cxx 
+CbmTrdClusterFinder.cxx 
+CbmTrdHitProducer.cxx 
+CbmTrdModuleRec.cxx 
+CbmTrdModuleRecR.cxx 
+CbmTrdModuleRec2D.cxx 
+CbmTrdDigiRec.cxx 
+
+unpack/CbmTrdUnpackConfig.cxx
+unpack/CbmTrdUnpackAlgoBaseR.cxx
+unpack/CbmTrdUnpackAlgoR.cxx
+unpack/CbmTrdUnpackAlgoLegacy2020R.cxx
+unpack/CbmTrdUnpackMonitor.cxx
+
+unpack/CbmTrdUnpackFaspAlgo.cxx
+unpack/CbmTrdUnpackFaspConfig.cxx
+unpack/CbmTrdUnpackFaspMonitor.cxx
+
+qa/CbmTrdClusterizerFastQa.cxx
+qa/CbmTrdHitDensityQa.cxx
+qa/CbmTrdHitProducerClusterQa.cxx
+qa/CbmTrdHitProducerQa.cxx
+qa/CbmTrdOccupancyQa.cxx
+qa/CbmTrdQa.cxx
+qa/CbmTrdRecoQa.cxx
+qa/CbmTrdTracksPidQa.cxx
+
+qa/CbmTrdCalibTracker.cxx
+qa/data/CbmTrdHitMC.cxx
+
+pid/CbmTrdElectronsTrainAnn.cxx
+pid/CbmTrdSetTracksPidWkn.cxx   
+pid/CbmTrdSetTracksPidModWkn.cxx  
+pid/CbmTrdSetTracksPidLike.cxx     
+pid/CbmTrdSetTracksPidANN.cxx
+
+rawToDigiMethods/CbmTrdRawToDigiBaseR.cxx
+rawToDigiMethods/CbmTrdRawToDigiMaxAdcR.cxx
+rawToDigiMethods/CbmTrdRawToDigiFitR.cxx
+rawToDigiMethods/CbmTrdRawToDigiLookUpCorrR.cxx
 )
 
-IF(SSE_FOUND)
+IF (SSE_FOUND)
   ADD_DEFINITIONS(-DHAVE_SSE)
-  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS
-    "-msse -O3")
+  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS 
+  "-msse -O3")
   Message(STATUS "TRD REC will be compiled with SSE support")
-ELSE(SSE_FOUND)
+ELSE (SSE_FOUND)
   Message(STATUS "TRD REC will be compiled without SSE support")
-  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS
-    "-O3")
-ENDIF(SSE_FOUND)
+  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS 
+  "-O3")
+ENDIF (SSE_FOUND)
 
+
+set(LIBRARY_NAME CbmTrdReco)
 set(LINKDEF CbmTrdRecoLinkDef.h)
-Set(LIBRARY_NAME CbmTrdReco)
-Set(DEPENDENCIES
-  CbmRecoBase
-  CbmBase
-  CbmQaBase
+set(PUBLIC_DEPENDENCIES
   CbmData
-  Base
+  CbmQaBase
   CbmTrdBase
+  FairLogger::FairLogger
+  FairRoot::Base
+  ROOT::Core
+  ROOT::Graf
+  ROOT::Hist
+  ROOT::MLP
+  ROOT::Physics
+  ROOT::RIO
+  Vc::Vc
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmBase
+  CbmSimSteer
+  CbmTrdSim
+  CbmRecoBase
+  FairRoot::ParBase
+  L1
+  ROOT::EG
+  ROOT::Geom
+  ROOT::Gpad
+  ROOT::MathCore
+  ROOT::Tree
   TMVA
-  Vc.a
-)
+  )
+
+set(INTERFACE_DEPENDENCIES
+  external::fles_ipc
+  ROOT::RHTTP
+  )
+
 
-GENERATE_LIBRARY()
+generate_cbm_library()
diff --git a/reco/eventbuilder/CMakeLists.txt b/reco/eventbuilder/CMakeLists.txt
index 4af6d25b7b..9ae5bdd122 100644
--- a/reco/eventbuilder/CMakeLists.txt
+++ b/reco/eventbuilder/CMakeLists.txt
@@ -1,62 +1,15 @@
-# # Create a library called "libRun" which includes the source files given in
+## Create a library called "libRun" which includes the source files given in
 # the array .
 # The extension is already found.  Any number of sources could be listed here.
 
-Set(INCLUDE_DIRECTORIES
+set(INCLUDE_DIRECTORIES
   ${CMAKE_CURRENT_SOURCE_DIR}
   ${CMAKE_CURRENT_SOURCE_DIR}/digis
   ${CMAKE_CURRENT_SOURCE_DIR}/tracks
+  )
 
-  ${CBMBASE_DIR}
-  ${CBMROOT_SOURCE_DIR}/run
-
-  ${CBMDATA_DIR}
-  ${CBMDATA_DIR}/base
-  ${CBMDATA_DIR}/mvd
-  ${CBMDATA_DIR}/sts
-  ${CBMDATA_DIR}/sts
-  ${CBMDATA_DIR}/rich
-  ${CBMDATA_DIR}/much
-  ${CBMDATA_DIR}/trd
-  ${CBMDATA_DIR}/tof
-  ${CBMDATA_DIR}/psd
-  ${CBMDATA_DIR}/global
-
-  # ${CBMROOT_SOURCE_DIR}/algo
-  ${CBMROOT_SOURCE_DIR}/reco/L1
-  ${CBMROOT_SOURCE_DIR}/reco/L1/L1Algo
-
-  ${CBMROOT_SOURCE_DIR}/mvd
-  ${CBMDETECTORBASE_DIR}/sts
-
-  ${CBMROOT_SOURCE_DIR}/rich
-  ${CBMROOT_SOURCE_DIR}/tof/TofMC
-  ${CBMROOT_SOURCE_DIR}/psd
-  ${CBMROOT_SOURCE_DIR}/field
-  ${CBMROOT_SOURCE_DIR}/core/data/raw
-  ${CBMROOT_SOURCE_DIR}/core/qa
-)
-
-Include_Directories(${INCLUDE_DIRECTORIES})
-
-set(SYSTEM_INCLUDE_DIRECTORIES
-  ${KFParticle_INCLUDE_DIR}
-  ${BASE_INCLUDE_DIRECTORIES}
-)
-
-Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-  ${KFParticle_LIB_DIR}
-  ${FAIRROOT_LIBRARY_DIR}
-  ${ROOT_LIBRARY_DIR}
-  ${Boost_LIBRARY_DIRS}
-)
-
-link_directories(${LINK_DIRECTORIES})
 
 set(SRCS
-
   digis/CbmEvbuildRawAlgo.cxx
   digis/CbmEvbuildRawTask.cxx
   digis/CbmAlgoBuildRawEvents.cxx
@@ -67,17 +20,48 @@ set(SRCS
   digis/CbmBuildEventsSimple.cxx
   digis/CbmSeedFinderSlidingWindow.cxx
   digis/CbmSeedFinderQa.cxx
+  #digis/CbmEvBuildSource.cxx
 
-  # digis/CbmEvBuildSource.cxx
   tracks/CbmBuildEventsFromTracksIdeal.cxx
   tracks/CbmBuildEventsFromTracksReal.cxx
   tracks/CbmEventBuilderQa.cxx
 )
 
-set(LINKDEF CbmEventBuilderLinkDef.h)
-Set(LIBRARY_NAME CbmEventBuilder)
-Set(DEPENDENCIES
-  CbmData CbmBase CbmField CbmStsBase CbmMvd Base CbmQaBase
-)
 
-GENERATE_LIBRARY()
+IF (SSE_FOUND)
+  ADD_DEFINITIONS(-DHAVE_SSE)
+  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS 
+  "-msse -O3")
+  Message(STATUS "eventbuilder will be compiled with SSE support")
+ELSE (SSE_FOUND)
+  Message(STATUS "eventbuilder will be compiled without SSE support")
+  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS 
+  "-O3")
+ENDIF (SSE_FOUND)
+
+
+set(LIBRARY_NAME CbmEventBuilder)
+set(LINKDEF ${LIBRARY_NAME}LinkDef.h)
+set(PUBLIC_DEPENDENCIES
+  CbmBase
+  CbmData
+  FairRoot::Base
+  ROOT::Core
+  ROOT::Hist
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmQaBase
+  CbmStsBase
+  FairLogger::FairLogger
+  L1
+  ROOT::EG
+  ROOT::Gpad
+  ROOT::MathCore
+  ROOT::RHTTP
+  ROOT::RIO
+  ROOT::Tree
+  )
+
+
+generate_cbm_library()
diff --git a/reco/global/CMakeLists.txt b/reco/global/CMakeLists.txt
index f4a1470d6b..9c39ec8611 100644
--- a/reco/global/CMakeLists.txt
+++ b/reco/global/CMakeLists.txt
@@ -2,58 +2,42 @@
 # the array .
 # The extension is already found.  Any number of sources could be listed here.
 
-Set(INCLUDE_DIRECTORIES
-${CMAKE_CURRENT_SOURCE_DIR}
+set(INCLUDE_DIRECTORIES
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  )
 
-${CBMROOT_SOURCE_DIR}/reco/base
-
-${CBMDATA_DIR}
-${CBMDATA_DIR}/sts
-${CBMDATA_DIR}/trd
-${CBMDATA_DIR}/tof
-${CBMDATA_DIR}/global
-
-${CBMROOT_SOURCE_DIR}/KF
-${CBMROOT_SOURCE_DIR}/KF/Interface
-)
-
-Include_Directories( ${INCLUDE_DIRECTORIES})
-
-Set(SYSTEM_INCLUDE_DIRECTORIES
-  ${BASE_INCLUDE_DIRECTORIES} 
-)
-
-Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-${KFParticle_LIB_DIR}
-${FAIRROOT_LIBRARY_DIR}
-${ROOT_LIBRARY_DIR}
-${Boost_LIBRARY_DIRS}
-)
- 
-link_directories( ${LINK_DIRECTORIES})
 
 set(SRCS
-#CbmEcalTrackingMuch.cxx
-CbmFindGlobalTracks.cxx    
-#CbmFindGlobalTracksQa.cxx  
-CbmFindPrimaryVertex.cxx   
-CbmFindPrimaryVertexEvents.cxx   
-CbmFitGlobalTracks.cxx 
-CbmFitGlobalTracksQa.cxx 
-CbmGlobalTrackFitterIdeal.cxx 
-CbmPVFinderIdeal.cxx       
-CbmTrackMergerIdeal.cxx    
-#CbmTofMergerIdeal.cxx 
-)
-
-
-set(LINKDEF CbmGlobalLinkDef.h)
-Set(LIBRARY_NAME CbmGlobal)
-Set(DEPENDENCIES
-    KF CbmRecoBase CbmData Base 
-)
-
-GENERATE_LIBRARY()
-
+  #CbmEcalTrackingMuch.cxx
+  CbmFindGlobalTracks.cxx    
+  #CbmFindGlobalTracksQa.cxx  
+  CbmFindPrimaryVertex.cxx   
+  CbmFindPrimaryVertexEvents.cxx   
+  CbmFitGlobalTracks.cxx 
+  CbmFitGlobalTracksQa.cxx 
+  CbmGlobalTrackFitterIdeal.cxx 
+  CbmPVFinderIdeal.cxx       
+  CbmTrackMergerIdeal.cxx    
+  #CbmTofMergerIdeal.cxx 
+  )
+
+
+set(LIBRARY_NAME CbmGlobal)
+set(LINKDEF ${LIBRARY_NAME}LinkDef.h)
+set(PUBLIC_DEPENDENCIES
+  CbmData
+  CbmRecoBase
+  FairRoot::Base
+  ROOT::Core
+  )
+
+set(PRIVATE_DEPENDENCIES
+  KF
+  ROOT::Hist
+  ROOT::MathCore
+  ROOT::Matrix
+  ROOT::Physics
+  )
+
+
+generate_cbm_library()
diff --git a/reco/littrack/CMakeLists.txt b/reco/littrack/CMakeLists.txt
index b34398f060..440f22b87b 100644
--- a/reco/littrack/CMakeLists.txt
+++ b/reco/littrack/CMakeLists.txt
@@ -3,75 +3,36 @@
 add_subdirectory(clustering)
 add_subdirectory(parallel)
 
-INCLUDE(std/CMakeLists.txt)
+include(std/CMakeLists.txt)
 
 set(INCLUDE_DIRECTORIES
-${CMAKE_CURRENT_SOURCE_DIR}
-${CMAKE_CURRENT_SOURCE_DIR}/std
-${CMAKE_CURRENT_SOURCE_DIR}/cbm
-${CMAKE_CURRENT_SOURCE_DIR}/cbm/elid
-${CMAKE_CURRENT_SOURCE_DIR}/cbm/reco
-${CMAKE_CURRENT_SOURCE_DIR}/cbm/generators
-${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa
-${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/material
-${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/tracking
-${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/clustering
-${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/fit
-${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/field
-${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/fieldapr
-${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/radlength
-${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/tof
-
-${CBMROOT_SOURCE_DIR}/algo/ca/simd
-${CBMROOT_SOURCE_DIR}/reco/base
-
-# needed only for the LitrackQA library
-${CBMROOT_SOURCE_DIR}/reco/detectors/rich
-${CBMROOT_SOURCE_DIR}/reco/detectors/rich/fitter
-
-${CBMBASE_DIR}
-${CBMBASE_DIR}/report
-${CBMBASE_DIR}/draw
-${CBMBASE_DIR}/utils
-
-${CBMDATA_DIR}
-${CBMDATA_DIR}/base
-${CBMDATA_DIR}/much
-${CBMDATA_DIR}/trd
-${CBMDATA_DIR}/sts
-${CBMDATA_DIR}/tof
-${CBMDATA_DIR}/global
-${CBMDATA_DIR}/mvd
-${CBMDATA_DIR}/rich
-
-${CBMDETECTORBASE_DIR}/much
-${CBMDETECTORBASE_DIR}/sts
-${CBMDETECTORBASE_DIR}/rich
-${CBMDETECTORBASE_DIR}/rich/utils
-
-${CBMROOT_SOURCE_DIR}/reco/KF
-${CBMROOT_SOURCE_DIR}/reco/KF/Interface
-
-${CBMROOT_SOURCE_DIR}/run
-)
-
-Include_Directories( ${INCLUDE_DIRECTORIES})
-
-Set(SYSTEM_INCLUDE_DIRECTORIES
-  ${BASE_INCLUDE_DIRECTORIES}
-  ${Boost_INCLUDE_DIR}
-)
-
-Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-${KFParticle_LIB_DIR}
-${FAIRROOT_LIBRARY_DIR}
-${ROOT_LIBRARY_DIR}
-${Boost_LIBRARY_DIRS}
-)
-
-link_directories( ${LINK_DIRECTORIES})
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${CMAKE_CURRENT_SOURCE_DIR}/std
+  ${CMAKE_CURRENT_SOURCE_DIR}/std/finder
+  ${CMAKE_CURRENT_SOURCE_DIR}/std/fitter
+  ${CMAKE_CURRENT_SOURCE_DIR}/std/propagation
+  ${CMAKE_CURRENT_SOURCE_DIR}/std/selection
+  ${CMAKE_CURRENT_SOURCE_DIR}/std/data
+  ${CMAKE_CURRENT_SOURCE_DIR}/std/base
+  ${CMAKE_CURRENT_SOURCE_DIR}/std/utils
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/base
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/utils
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/elid
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/reco
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/generators
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/mc
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/base
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/material
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/tracking
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/clustering
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/fit
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/field
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/fieldapr
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/radlength
+  ${CMAKE_CURRENT_SOURCE_DIR}/cbm/qa/tof
+  )
 
 set(SRCS
 
@@ -125,43 +86,6 @@ set(QA_SRCS
    cbm/qa/tof/CbmLitTofQaReport.cxx
 )
 
-set(HEADERS
-   cbm/elid/CbmLitGlobalElectronId.h
-   cbm/reco/CbmLitFindGlobalTracks.h
-   cbm/reco/CbmLitFindMvdTracks.h
-   cbm/reco/CbmLitFindGlobalTracksIdeal.h
-   cbm/reco/CbmLitFitTracksParallel.h
-   cbm/reco/CbmLitFitTracks.h
-   cbm/reco/CbmLitFindGlobalTracksParallel.h
-   cbm/generators/CbmLitPolarizedGenerator.h
-)
-
-Set(QA_HEADERS
-   cbm/qa/material/CbmLitCheckEnergyLossMuons.h
-   cbm/qa/material/CbmLitCheckBrem.h
-   cbm/qa/CbmLitCreateStandaloneData.h
-   cbm/qa/CbmLitTestMatrixMath.h
-   cbm/qa/tracking/CbmLitTrackingQa.h
-   cbm/qa/tracking/CbmLitTrackingQaStudyReport.h
-   cbm/qa/tracking/CbmLitTrackingQaReport.h
-   cbm/qa/clustering/CbmLitClusteringQa.h
-   cbm/qa/clustering/CbmLitClusteringQaReport.h
-   cbm/qa/clustering/CbmLitClusteringQaStudyReport.h
-   cbm/qa/fit/CbmLitFitQa.h
-   cbm/qa/fit/CbmLitFitQaReport.h
-   cbm/qa/fit/CbmLitFitQaStudyReport.h
-   cbm/qa/field/CbmLitFieldQa.h
-   cbm/qa/field/CbmLitFieldQaReport.h
-   cbm/qa/fieldapr/CbmLitFieldApproximationQa.h
-   cbm/qa/fieldapr/CbmLitFieldApproximationQaReport.h
-   cbm/qa/radlength/CbmLitRadLengthQa.h
-   cbm/qa/radlength/CbmLitRadLengthQaReport.h
-   cbm/qa/radlength/CbmLitRadLengthGenerator.h
-   cbm/qa/tof/CbmLitTofQa.h
-   cbm/qa/tof/CbmLitTofQaReport.h
-)
-
-
 
 IF (CMAKE_BUILD_TYPE MATCHES Debug)
 ELSE (CMAKE_BUILD_TYPE MATCHES Debug)
@@ -179,43 +103,95 @@ If (Boost_FOUND)
   set(DEFINITIONS BOOST_FOUND)
 EndIf (Boost_FOUND)
 
-set(LINKDEF  LittrackLinkDef.h)
-Set(LIBRARY_NAME Littrack)
-Set(DEPENDENCIES
-    Littrackparallel KF KFParticleInterface CbmMuchBase CbmStsBase CbmRichBase CbmRecoBase CbmBase CbmData
-    CbmTofBase Base
-)
-GENERATE_LIBRARY()
+
+set(LIBRARY_NAME Littrack)
+set(LINKDEF  ${LIBRARY_NAME}LinkDef.h)
+set(PUBLIC_DEPENDENCIES
+  CbmData
+  Littrackparallel
+  FairRoot::Base
+  ROOT::Hist
+  ROOT::Physics
+  ROOT::Core
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmBase
+  CbmMuchBase
+  CbmSimSteer
+  KFParticleInterface
+  CbmRichBase
+  FairRoot::ParBase
+  ROOT::EG
+  ROOT::MathCore
+  ROOT::Geom
+  ROOT::Matrix
+  ROOT::Minuit2
+  ROOT::RIO
+  )
+
+
+generate_cbm_library()
 
 
 set(SRCS ${QA_SRCS})
-set(HEADERS ${QA_HEADERS})
-set(LINKDEF  LittrackQALinkDef.h)
-Set(LIBRARY_NAME LittrackQA)
-Set(DEPENDENCIES
-    Littrack CbmRichReco KFParticleInterface
-)
 
-GENERATE_LIBRARY()
 
-Install(FILES std/base/CbmLitTypes.h
+set(LIBRARY_NAME LittrackQA)
+set(LINKDEF  LittrackQALinkDef.h)
+set(PUBLIC_DEPENDENCIES
+  CbmBase
+  CbmData
+  CbmMuchBase
+  KF
+  FairRoot::Base
+  ROOT::Core
+  ROOT::EG
+  ROOT::MathCore
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmRichBase
+  CbmRichReco
+  CbmStsBase
+  KFParticleInterface
+  FairRoot::GeoBase
+  FairRoot::ParBase
+  ROOT::Geom
+  ROOT::Gpad
+  ROOT::Graf
+  ROOT::Hist
+  ROOT::Matrix
+  ROOT::Physics
+  ROOT::RIO
+  )
+
+
+generate_cbm_library()
+
+install(FILES std/base/CbmLitTypes.h
               std/base/CbmLitFloat.h
               std/base/CbmLitPtrTypes.h
               std/base/CbmLitEnums.h
+              std/base/CbmLitHitData.h
         DESTINATION include/littrack/base
        )
-Install(FILES cbm/base/CbmLitDetectorSetup.h
+
+install(FILES cbm/base/CbmLitDetectorSetup.h
         DESTINATION include/littrack/base
        )
-Install(FILES cbm/base/CbmLitDetectorSetup.h
+
+install(FILES cbm/base/CbmLitDetectorSetup.h
         DESTINATION include/littrack/cbm/base
        )
-Install(FILES std/data/CbmLitFitNode.h
+
+install(FILES std/data/CbmLitFitNode.h
               std/data/CbmLitTrackParam.h
               std/data/CbmLitHit.h
         DESTINATION include/littrack/data
        )
-Install(FILES std/interface/CbmLitTrackExtrapolator.h
+
+install(FILES std/interface/CbmLitTrackExtrapolator.h
               std/interface/CbmLitTrackPropagator.h
               std/interface/CbmLitTrackFitter.h
               std/interface/CbmLitTrackSelection.h
@@ -226,6 +202,34 @@ Install(FILES std/interface/CbmLitTrackExtrapolator.h
               std/interface/CbmLitHitToTrackMerger.h
         DESTINATION include/littrack/interface
        )
-Install(FILES std/propagation/CbmLitMaterialInfo.h
+
+install(FILES std/propagation/CbmLitMaterialInfo.h
         DESTINATION include/littrack/propagation
        )
+
+install(FILES std/selection/CbmLitQualitySort.h
+        DESTINATION include/littrack/selection
+       )
+
+install(FILES parallel/LitFieldGrid.h
+              parallel/LitFieldValue.h
+              parallel/LitTypes.h
+              parallel/LitUtils.h
+              parallel/LitFieldSlice.h
+              parallel/LitStation.h
+              parallel/LitVirtualStation.h
+              parallel/LitMaterialGrid.h
+              parallel/LitScalStripHit.h
+              parallel/LitTrackParam.h
+        DESTINATION include
+       )
+
+install(FILES
+          parallel/LitDetectorLayout.h
+          parallel/LitMaterialGrid.h
+          parallel/LitScalPixelHit.h
+          parallel/LitScalStripHit.h
+          parallel/LitScalTrack.h
+          parallel/LitTrackParam.h
+        DESTINATION include/parallel
+       )
diff --git a/reco/littrack/cbm/base/CbmLitFieldFitter.h b/reco/littrack/cbm/base/CbmLitFieldFitter.h
index d0d5195b5f..37f5e3ded5 100644
--- a/reco/littrack/cbm/base/CbmLitFieldFitter.h
+++ b/reco/littrack/cbm/base/CbmLitFieldFitter.h
@@ -12,7 +12,7 @@
 #ifndef CBMLITFIELDFITTER_H_
 #define CBMLITFIELDFITTER_H_
 
-#include "../../parallel/LitFieldSlice.h"
+#include "LitFieldSlice.h"
 
 #include <vector>
 class FairField;
diff --git a/reco/littrack/cbm/base/CbmLitFieldGridCreator.h b/reco/littrack/cbm/base/CbmLitFieldGridCreator.h
index 5c1a17befd..18bec08f99 100644
--- a/reco/littrack/cbm/base/CbmLitFieldGridCreator.h
+++ b/reco/littrack/cbm/base/CbmLitFieldGridCreator.h
@@ -16,7 +16,7 @@
 
 #include <vector>
 
-#include "../../parallel/LitFieldGrid.h"
+#include "LitFieldGrid.h"
 class FairField;
 
 class CbmLitFieldGridCreator {
diff --git a/reco/littrack/clustering/CMakeLists.txt b/reco/littrack/clustering/CMakeLists.txt
index 125b27ddec..6a6a2c6c4d 100644
--- a/reco/littrack/clustering/CMakeLists.txt
+++ b/reco/littrack/clustering/CMakeLists.txt
@@ -1,61 +1,21 @@
 # Create a library called "libClustering".
 
-Set(INCLUDE_DIRECTORIES
-${CBMROOT_SOURCE_DIR}/reco/littrack/clustering
-
-${CBMBASE_DIR}
-${CBMBASE_DIR}/draw
-
-${CBMDATA_DIR}
-${CBMDATA_DIR}/base
-${CBMDATA_DIR}/sts
-${CBMDATA_DIR}/much
-#${CBMDATA_DIR}/mvd
-
-  ${CBMDETECTORBASE_DIR}/much
-
-#${CBMROOT_SOURCE_DIR}/mvd
-)
-
-Include_Directories( ${INCLUDE_DIRECTORIES})
-
-Set(SYSTEM_INCLUDE_DIRECTORIES
-  ${BASE_INCLUDE_DIRECTORIES}
-)
-
-Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-${ROOT_LIBRARY_DIR}
-${FAIRROOT_LIBRARY_DIR}
-${GEANT4_LIBRARY_DIR}
-)
-
-link_directories( ${LINK_DIRECTORIES})
+set(INCLUDE_DIRECTORIES
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  )
 
 set(SRCS
-CbmClusteringGeometry.cxx
-CbmMuchClustering.cxx
-CbmClusteringA1.cxx
-CbmClusteringSL.cxx
-CbmClusteringWard.cxx
-CbmMuchTest.cxx
-#CbmMvdGeoCl.cxx
-#CbmMvdClustering.cxx
-#CbmMvdClusteringNoCharges.cxx
-)
+  CbmClusteringGeometry.cxx
+  CbmMuchClustering.cxx
+  CbmClusteringA1.cxx
+  CbmClusteringSL.cxx
+  CbmClusteringWard.cxx
+  CbmMuchTest.cxx
+  #CbmMvdGeoCl.cxx
+  #CbmMvdClustering.cxx
+  #CbmMvdClusteringNoCharges.cxx
+  )
 
-set(HEADERS
-#CbmClusteringGeometry.h
-CbmMuchClustering.h
-#CbmClusteringA1.h
-#CbmClusteringSL.h
-#CbmClusteringWard.h
-CbmMuchTest.h
-#CbmMvdGeoCl.h
-#CbmMvdClustering.h
-#CbmMvdClusteringNoCharges.h
-)
 
 IF (SSE_FOUND)
   ADD_DEFINITIONS(-DHAVE_SSE)
@@ -72,12 +32,22 @@ If (Boost_FOUND)
   set(DEFINITIONS BOOST_FOUND)
 EndIf (Boost_FOUND)
 
-set(LINKDEF CbmClusteringLinkDef.h)
-Set(LIBRARY_NAME CbmClustering)
-Set(DEPENDENCIES
-    CbmMuchBase CbmBase CbmData Base 
-)
-
-GENERATE_LIBRARY()
-
 
+set(LIBRARY_NAME CbmClustering)
+set(LINKDEF ${LIBRARY_NAME}LinkDef.h)
+set(PUBLIC_DEPENDENCIES
+  CbmMuchBase
+  FairRoot::Base
+  ROOT::Hist
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmBase
+  CbmData
+  ROOT::Core
+  ROOT::Gpad
+  ROOT::MathCore
+  ROOT::RIO
+  )
+
+generate_cbm_library()
diff --git a/reco/littrack/parallel/CMakeLists.txt b/reco/littrack/parallel/CMakeLists.txt
index c32d341193..9be3b2d207 100644
--- a/reco/littrack/parallel/CMakeLists.txt
+++ b/reco/littrack/parallel/CMakeLists.txt
@@ -1,40 +1,34 @@
 # Create a library called "libLittrackparallel".
 
 set(INCLUDE_DIRECTORIES
+  ${CMAKE_CURRENT_SOURCE_DIR}
   ${CBMROOT_SOURCE_DIR}/algo/ca/simd
-)
+  )
 
-include_directories(${INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-)
-
-link_directories(${LINK_DIRECTORIES})
 
 set(LITTRACKPARALLEL_SRCS
-  LitTrackFinderNN.cxx
-)
-
-set(LITTRACKPARALLEL_HEADERS
-)
+    LitTrackFinderNN.cxx
+  )
 
 if(RULE_CHECKER_FOUND)
   CHECK_RULES("${LITTRACKPARALLEL_SRCS}" "${INCLUDE_DIRECTORIES}" LITTRACKPARALLEL_RULES)
 endif(RULE_CHECKER_FOUND)
 
-IF(SSE_FOUND)
+IF (SSE_FOUND)
   ADD_DEFINITIONS(-DHAVE_SSE)
   SET_SOURCE_FILES_PROPERTIES(${LITTRACKPARALLEL_SRCS} PROPERTIES COMPILE_FLAGS "-msse -O3 ")
   Message(STATUS "Littrackparallel will be compiled with SSE support")
-ELSE(SSE_FOUND)
+ELSE (SSE_FOUND)
   Message(STATUS "Littrackparallel will be compiled without SSE support")
   SET_SOURCE_FILES_PROPERTIES(${LITTRACKPARALLEL_SRCS} PROPERTIES COMPILE_FLAGS "-O3 ")
-ENDIF(SSE_FOUND)
+ENDIF (SSE_FOUND)
 
-add_library(Littrackparallel SHARED ${LITTRACKPARALLEL_SRCS})
-set_target_properties(Littrackparallel PROPERTIES ${FAIRROOT_LIBRARY_PROPERTIES})
 
-target_link_libraries(Littrackparallel Vc.a)
+set(SRCS ${LITTRACKPARALLEL_SRCS})
+# Since there was a problem with defining Vc::Vc as a dependecy a dependency
+# to KFParticle was set which includes the Vc dependency
+# This has to be fixed and done properly
+set(PUBLIC_DEPENDENCIES Vc::Vc)
+set(LIBRARY_NAME Littrackparallel)
 
-# install(TARGETS Littrackparallel DESTINATION ${CMAKE_BINARY_DIR}/lib)
-install(TARGETS Littrackparallel DESTINATION lib)
+generate_cbm_library()
diff --git a/reco/littrack/parallel/electron/LitTrackFinderNNVecElectron.h b/reco/littrack/parallel/electron/LitTrackFinderNNVecElectron.h
index bd74a73f89..13fca61336 100644
--- a/reco/littrack/parallel/electron/LitTrackFinderNNVecElectron.h
+++ b/reco/littrack/parallel/electron/LitTrackFinderNNVecElectron.h
@@ -15,10 +15,10 @@
 #ifndef LITTRACKFINDERNNVECELECTRON_H_
 #define LITTRACKFINDERNNVECELECTRON_H_
 
-#include "../LitHit.h"
-#include "../LitTrack.h"
 #include "LitDetectorGeometryElectron.h"
+#include "LitHit.h"
 #include "LitHitDataElectron.h"
+#include "LitTrack.h"
 
 namespace lit
 {
diff --git a/reco/littrack/parallel/muon/LitAbsorber.h b/reco/littrack/parallel/muon/LitAbsorber.h
index edb4a676ff..9402bcb74e 100644
--- a/reco/littrack/parallel/muon/LitAbsorber.h
+++ b/reco/littrack/parallel/muon/LitAbsorber.h
@@ -12,7 +12,7 @@
 #ifndef LITABSORBER_H_
 #define LITABSORBER_H_
 
-#include "../LitFieldGrid.h"
+#include "LitFieldGrid.h"
 
 namespace lit
 {
diff --git a/reco/littrack/parallel/muon/LitHitDataMuon.h b/reco/littrack/parallel/muon/LitHitDataMuon.h
index a62342d8aa..7b6b12a568 100644
--- a/reco/littrack/parallel/muon/LitHitDataMuon.h
+++ b/reco/littrack/parallel/muon/LitHitDataMuon.h
@@ -15,9 +15,9 @@
 #include <algorithm>
 #include <vector>
 
-#include "../LitComparators.h"
-#include "../LitHit.h"
+#include "LitComparators.h"
 #include "LitDetectorLayoutMuon.h"
+#include "LitHit.h"
 
 namespace lit
 {
diff --git a/reco/littrack/parallel/muon/LitStationGroupMuon.h b/reco/littrack/parallel/muon/LitStationGroupMuon.h
index 9645c9b706..fffe9a23b6 100644
--- a/reco/littrack/parallel/muon/LitStationGroupMuon.h
+++ b/reco/littrack/parallel/muon/LitStationGroupMuon.h
@@ -12,9 +12,9 @@
 #ifndef LITSTATIONGROUP_H_
 #define LITSTATIONGROUP_H_
 
-#include "../LitFieldGrid.h"
-#include "../LitFieldRegion.h"
 #include "LitAbsorber.h"
+#include "LitFieldGrid.h"
+#include "LitFieldRegion.h"
 #include "LitStationMuon.h"
 
 namespace lit
diff --git a/reco/littrack/parallel/muon/LitStationMuon.h b/reco/littrack/parallel/muon/LitStationMuon.h
index 2764e053ff..aee5bb322e 100644
--- a/reco/littrack/parallel/muon/LitStationMuon.h
+++ b/reco/littrack/parallel/muon/LitStationMuon.h
@@ -14,7 +14,7 @@
 
 #include <vector>
 
-#include "../LitEnums.h"
+#include "LitEnums.h"
 #include "LitSubstationMuon.h"
 
 namespace lit
diff --git a/reco/littrack/parallel/muon/LitSubstationMuon.h b/reco/littrack/parallel/muon/LitSubstationMuon.h
index 8e6f331ffe..d2c752f3ee 100644
--- a/reco/littrack/parallel/muon/LitSubstationMuon.h
+++ b/reco/littrack/parallel/muon/LitSubstationMuon.h
@@ -12,7 +12,7 @@
 #ifndef LITSUBSTATIONMUON_H_
 #define LITSUBSTATIONMUON_H_
 
-#include "../LitMaterialInfo.h"
+#include "LitMaterialInfo.h"
 
 namespace lit
 {
diff --git a/reco/littrack/parallel/muon/LitTrackFitterMuon.h b/reco/littrack/parallel/muon/LitTrackFitterMuon.h
index b997746706..476bb7cf3a 100644
--- a/reco/littrack/parallel/muon/LitTrackFitterMuon.h
+++ b/reco/littrack/parallel/muon/LitTrackFitterMuon.h
@@ -13,12 +13,12 @@
 #ifndef LITTRACKFITTERMUON_H_
 #define LITTRACKFITTERMUON_H_
 
-#include "../LitAddMaterial.h"
-#include "../LitExtrapolation.h"
-#include "../LitFiltration.h"
-#include "../LitTrackParam.h"
-#include "../LitTypes.h"
+#include "LitAddMaterial.h"
 #include "LitDetectorGeometryMuon.h"
+#include "LitExtrapolation.h"
+#include "LitFiltration.h"
+#include "LitTrackParam.h"
+#include "LitTypes.h"
 
 namespace lit
 {
diff --git a/reco/mq/CMakeLists.txt b/reco/mq/CMakeLists.txt
index 1671e330ee..8587f5045d 100644
--- a/reco/mq/CMakeLists.txt
+++ b/reco/mq/CMakeLists.txt
@@ -2,137 +2,80 @@ If(FairSoft_VERSION VERSION_LESS 18.6.0)
   Add_Definitions(-DHAVE_FAIRMQSTATEMACHINE)
 EndIf()
 
-Set(FAIRMQ_LIBS FairMQStateMachine FairMQ)
-
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/startUnpack.sh.in ${CMAKE_BINARY_DIR}/bin/MQ/topologies/startUnpack.sh)
 
 set(INCLUDE_DIRECTORIES
     ${CMAKE_CURRENT_SOURCE_DIR}
-    ${CMAKE_SOURCE_DIR}/MQ/base
-    ${CBMROOT_SOURCE_DIR}/algo
-    ${CBMROOT_SOURCE_DIR}/algo/evbuild
-    ${CBMROOT_SOURCE_DIR}/algo/trigger
-    ${CBMROOT_SOURCE_DIR}/algo/detectors/sts
-    ${CBMROOT_SOURCE_DIR}/fles/flestools
-    ${CBMROOT_SOURCE_DIR}/reco/mq/
-    ${CBMDATA_DIR}
-    ${CBMDATA_DIR}/raw
-    ${CBMDATA_DIR}/sts
-    ${CBMDATA_DIR}/much
-    ${CBMDATA_DIR}/rich
-    ${CBMDATA_DIR}/tof
-    ${CBMDATA_DIR}/psd
-    ${CBMDATA_DIR}/trd
-    ${CBMDATA_DIR}/mvd # Feint to avoid crash of DigiManager due to missing source pointer
-    ${CBMDATA_DIR}/base
-    ${CBMDATA_DIR}/global
-)
-
-Set(SYSTEM_INCLUDE_DIRECTORIES
-    ${BASE_INCLUDE_DIRECTORIES}
-    ${ZeroMQ_INCLUDE_DIR}
-    ${Boost_INCLUDE_DIR}
-    ${FAIRROOT_INCLUDE_DIR}
-    ${FAIRMQ_INCLUDE_DIR}
-    ${FAIRMQ_INCLUDE_DIR}/options
-    ${IPC_INCLUDE_DIRECTORY}
-    ${CBMROOT_SOURCE_DIR}/external/cppzmq
-)
-
-include_directories(${INCLUDE_DIRECTORIES})
-include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-set(LINK_DIRECTORIES
-  ${FAIRMQ_LIBRARY_DIR}
-  ${FAIRROOT_LIBRARY_DIR}
-  ${ROOT_LIBRARY_DIR}
-  ${Boost_LIBRARY_DIRS}
-)
-
-link_directories(${LINK_DIRECTORIES})
+  )
 
 #Set the install path within the build directory
 set(EXECUTABLE_OUTPUT_PATH "${EXECUTABLE_OUTPUT_PATH}/mq")
 #Set the install path within the installation directory
-set(BIN_DESTINATION bin/mq)
-
-Set(BOOST_LIBS
-  ${Boost_SYSTEM_LIBRARY}
-  ${Boost_SERIALIZATION_LIBRARY}
-  ${Boost_PROGRAM_OPTIONS_LIBRARY}
-  ${Boost_LOG_LIBRARY}
-)
+set(BIN_DESTINATION bin/reco/mq)
+
+
+
 If(UNIX AND NOT APPLE)
   List(APPEND BOOST_LIBS pthread)
 EndIf()
 
-set(FAIR_LIBS
-  ${FAIRMQ_LIBS}
-)
 
-If(FAIRLOGGER_FOUND)
-  set(FAIR_LIBS
-      ${FAIR_LIBS}
-      FairLogger
-     )
-EndIf()
+set(PUBLIC_DEPS
+  CbmData
+  CbmMQBase
+  FairRoot::ParBase
+  FairMQ::Tools
+  ROOT::Core
+  )
+
+set(PRIVATE_DEPS
+  FairRoot::Base
+  Algo
+  )
+
+set(INTERFACE_DEPENDENCIES
+  external::fles_ipc
+  )
+
 
 set(EXE_NAME MqDevUnpack)
 set(SRCS CbmDevUnpack.cxx runUnpack.cxx)
 
-set(DEPENDENCIES
-  ${FAIR_LIBS}
-  ${BOOST_LIBS}
-  external::fles_ipc
-  Algo
-  CbmData
-  Core
-  RIO
-  Net
-)
-GENERATE_EXECUTABLE()
+set(PUBLIC_DEPENDENCIES ${PUBLIC_DEPS}) 
+set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPS}) 
+set(INTERFACE_DEPENDENCIES ${INTERFACE_DEPS})
+
+generate_cbm_executable()
+
 
 set(EXE_NAME MqDevTrigger)
 set(SRCS CbmDevTrigger.cxx runTrigger.cxx)
 
-set(DEPENDENCIES
-  ${FAIR_LIBS}
-  ${BOOST_LIBS}
-  Algo
-  CbmData
-  Core
-  RIO
-  Net
-)
-GENERATE_EXECUTABLE()
+set(PUBLIC_DEPENDENCIES ${PUBLIC_DEPS}) 
+set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPS}) 
+set(INTERFACE_DEPENDENCIES ${INTERFACE_DEPS})
+
+generate_cbm_executable()
+
 
 set(EXE_NAME MqDevBuildEvents)
 set(SRCS CbmDevBuildEvents.cxx runBuildEvents.cxx)
 
-set(DEPENDENCIES
-  ${FAIR_LIBS}
-  ${BOOST_LIBS}
-  Algo
-  CbmData
-  Core
-  RIO
-  Net
-)
-GENERATE_EXECUTABLE()
+set(PUBLIC_DEPENDENCIES ${PUBLIC_DEPS}) 
+set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPS}) 
+set(INTERFACE_DEPENDENCIES ${INTERFACE_DEPS})
+
+generate_cbm_executable()
+
 
 set(EXE_NAME MqDevEventSink)
 set(SRCS CbmDevEventSink.cxx runEventSink.cxx)
 
-set(DEPENDENCIES
-  ${FAIR_LIBS}
-  ${BOOST_LIBS}
-  CbmFlibFlesTools
-  CbmData
-  Core
-  RIO
-  Net
-)
-GENERATE_EXECUTABLE()
+set(PUBLIC_DEPENDENCIES ${PUBLIC_DEPS}) 
+set(PRIVATE_DEPENDENCIES ${PRIVATE_DEPS}) 
+set(INTERFACE_DEPENDENCIES ${INTERFACE_DEPS})
+
+generate_cbm_executable()
 
 #Set the correct variables for the installation
 set(VMCWORKDIR ${CMAKE_INSTALL_PREFIX}/share/cbmroot)
diff --git a/reco/steer/CMakeLists.txt b/reco/steer/CMakeLists.txt
index 3f19544f9f..92492b83d5 100644
--- a/reco/steer/CMakeLists.txt
+++ b/reco/steer/CMakeLists.txt
@@ -1,109 +1,41 @@
 # CMakeList file for library CbmRecoSteer
 # V. Friese,     2 June 2021
 
-
-
-# -----   Library name   ----------------------------------
-Set(LIBRARY_NAME CbmRecoSteer)
-# ---------------------------------------------------------
-
-# -----  Compilation sources   ----------------------------
-set(SRCS
-CbmRecoUnpack.cxx
-CbmSourceTsArchive.cxx
-)
-# ---------------------------------------------------------
-
-
-
-# ----  Include directories -------------------------------
 set(INCLUDE_DIRECTORIES
-${CBMROOT_SOURCE_DIR}/reco/steer
-${CBMROOT_SOURCE_DIR}/reco/base
-
-${CBMROOT_SOURCE_DIR}/reco/detectors/much/unpack
-${CBMROOT_SOURCE_DIR}/reco/detectors/psd
-${CBMROOT_SOURCE_DIR}/reco/detectors/psd/unpack
-${CBMROOT_SOURCE_DIR}/reco/detectors/rich/unpack
-${CBMROOT_SOURCE_DIR}/reco/detectors/sts/
-${CBMROOT_SOURCE_DIR}/reco/detectors/sts/unpack
-${CBMROOT_SOURCE_DIR}/reco/detectors/tof/unpack
-${CBMROOT_SOURCE_DIR}/reco/detectors/trd
-${CBMROOT_SOURCE_DIR}/reco/detectors/trd/rawToDigiMethods
-${CBMROOT_SOURCE_DIR}/reco/detectors/trd/unpack
-
-${CBMROOT_SOURCE_DIR}/core/base
-${CBMROOT_SOURCE_DIR}/core/data
-${CBMROOT_SOURCE_DIR}/core/qa
-${CBMROOT_SOURCE_DIR}/core/data/raw
-${CBMROOT_SOURCE_DIR}/core/data/base
-${CBMROOT_SOURCE_DIR}/core/data/much
-${CBMROOT_SOURCE_DIR}/core/data/psd
-${CBMROOT_SOURCE_DIR}/core/data/rich
-${CBMROOT_SOURCE_DIR}/core/data/sts
-${CBMROOT_SOURCE_DIR}/core/data/tof
-${CBMROOT_SOURCE_DIR}/core/data/trd
-${CBMROOT_SOURCE_DIR}/core/data/global
-
-${CBMROOT_SOURCE_DIR}/core/detectors/much
-${CBMROOT_SOURCE_DIR}/core/detectors/psd
-${CBMROOT_SOURCE_DIR}/core/detectors/rich
-${CBMROOT_SOURCE_DIR}/core/detectors/sts
-${CBMROOT_SOURCE_DIR}/core/detectors/tof
-${CBMROOT_SOURCE_DIR}/core/detectors/trd
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  )
 
-${CBMROOT_SOURCE_DIR}/algo/detectors/sts
-${CBMROOT_SOURCE_DIR}/algo/trigger
-${CBMROOT_SOURCE_DIR}/algo/evbuild
 
-)
-
-set(SYSTEM_INCLUDE_DIRECTORIES
-${BASE_INCLUDE_DIRECTORIES}
-${FLES_IPC_INCLUDE_DIRECTORY}
-)
-# ---------------------------------------------------------
-
-
-
-# ----  Link directories ----------------------------------
-set(LINK_DIRECTORIES
-${KFParticle_LIB_DIR} # for rich reco
-${FAIRROOT_LIBRARY_DIR}
-${ROOT_LIBRARY_DIR}
-${Boost_LIBRARY_DIRS}
-)
-# ---------------------------------------------------------
-
-
-
-# -----   Library dependences   ---------------------------
-Set(DEPENDENCIES
-external::fles_ipc
-Base
-CbmBase
-CbmPsdBase
-CbmPsdReco
-CbmRichReco
-CbmRecoSts
-CbmTofBase
-CbmTofReco
-CbmTrdReco
-CbmData
-KF
-KFParticleInterface
-)
-# ---------------------------------------------------------
+set(SRCS
+  CbmRecoUnpack.cxx
+  CbmSourceTsArchive.cxx
+  )
 
 
-# -----  LinkDef file   -----------------------------------
+set(LIBRARY_NAME CbmRecoSteer)
 set(LINKDEF ${LIBRARY_NAME}LinkDef.h)
-# ---------------------------------------------------------
-
-
-# -----  Let cmake do the job   ---------------------------
-include_directories( ${INCLUDE_DIRECTORIES})
-include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-link_directories( ${LINK_DIRECTORIES})
-GENERATE_LIBRARY()
-# ---------------------------------------------------------
+set(PUBLIC_DEPENDENCIES
+  CbmData
+  FairRoot::Base
+  ROOT::Core
+  ROOT::Hist
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmTofReco
+  CbmMuchReco
+  CbmPsdReco
+  CbmPsdBase
+  CbmRichReco
+  CbmRecoSts
+  CbmTrdReco
+  )
+
+set(INTERFACE_DEPENDENCIES
+  CbmRecoBase
+  FairRoot::ParBase
+  external::fles_ipc
+  )
+
+
+generate_cbm_library()
diff --git a/reco/tasks/CMakeLists.txt b/reco/tasks/CMakeLists.txt
index 97edf5cb38..97fe8cf946 100644
--- a/reco/tasks/CMakeLists.txt
+++ b/reco/tasks/CMakeLists.txt
@@ -1,84 +1,47 @@
 # CMakeList file for library libCbmRecoTasks
 # V. Friese,     2 June 2021
 
-
-# -----   Library name   ----------------------------------
-Set(LIBRARY_NAME CbmRecoTasks)
-# ---------------------------------------------------------
-
-
-# -----  Compilation sources   ----------------------------
-set(SRCS
-CbmReco.cxx
-CbmSourceTs.cxx
-CbmTaskBuildEvents.cxx
-CbmTaskDigiEventQa.cxx
-CbmTaskMakeRecoEvents.cxx
-CbmTaskTriggerDigi.cxx
-CbmTaskUnpack.cxx
-)
-# ---------------------------------------------------------
-
-
-# ----  Include directories -------------------------------
 set(INCLUDE_DIRECTORIES
-${CMAKE_CURRENT_SOURCE_DIR}
-
-${CBMROOT_SOURCE_DIR}/core/base
-${CBMROOT_SOURCE_DIR}/core/data
-${CBMROOT_SOURCE_DIR}/core/data/base
-${CBMROOT_SOURCE_DIR}/core/data/global
-${CBMROOT_SOURCE_DIR}/core/data/sts
-${CBMROOT_SOURCE_DIR}/core/data/rich
-${CBMROOT_SOURCE_DIR}/core/data/much
-${CBMROOT_SOURCE_DIR}/core/data/trd
-${CBMROOT_SOURCE_DIR}/core/data/tof
-${CBMROOT_SOURCE_DIR}/core/data/psd
-${CBMROOT_SOURCE_DIR}/core/data/raw
-
-${CBMROOT_SOURCE_DIR}/algo/evbuild
-${CBMROOT_SOURCE_DIR}/algo/trigger
-${CBMROOT_SOURCE_DIR}/algo/detectors/sts
-${CBMROOT_SOURCE_DIR}/algo/detectors/much
-)
-
-set(SYSTEM_INCLUDE_DIRECTORIES
-${BASE_INCLUDE_DIRECTORIES}
-${FLES_IPC_INCLUDE_DIRECTORY}
-)
-# ---------------------------------------------------------
-
-
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${CMAKE_SOURCE_DIR}/algo/evbuild
+  )
 
-# ----  Link directories ----------------------------------
-set(LINK_DIRECTORIES
-${FAIRROOT_LIBRARY_DIR}
-${ROOT_LIBRARY_DIR}
-${Boost_LIBRARY_DIRS}
+set(SRCS
+  CbmReco.cxx
+  CbmSourceTs.cxx
+  CbmTaskBuildEvents.cxx
+  CbmTaskDigiEventQa.cxx
+  CbmTaskMakeRecoEvents.cxx
+  CbmTaskTriggerDigi.cxx
+  CbmTaskUnpack.cxx
 )
-# ---------------------------------------------------------
-
 
 
-# -----   Library dependences   ---------------------------
-Set(DEPENDENCIES
-external::fles_ipc
-Base
-CbmBase
-CbmData
-Algo
-external::yaml-cpp
-)
 if(OpenMP_CXX_FOUND)
   list(APPEND DEPENDENCIES OpenMP::OpenMP_CXX)
 endif()
 
-# ---------------------------------------------------------
-
 
-# -----  LinkDef file   -----------------------------------
+set(LIBRARY_NAME CbmRecoTasks)
 set(LINKDEF ${LIBRARY_NAME}LinkDef.h)
-# ---------------------------------------------------------
+set(PUBLIC_DEPENDENCIES
+  CbmData
+  FairRoot::Base
+  Algo
+  ROOT::Core
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmBase
+  FairLogger::FairLogger
+  external::yaml-cpp
+  ROOT::Hist
+  ROOT::RHTTP
+  )
+
+set(INTERFACE_DEPENDENCIES
+  external::fles_ipc
+  )
 
 # Check if the compiler supports std::execution in the respective STL
 # library
@@ -100,9 +63,4 @@ if (HAS_STD_EXECUTION)
   add_definitions(-DWITH_EXECUTION)
 endif()
 
-# -----  Let cmake do the job   ---------------------------
-include_directories( ${INCLUDE_DIRECTORIES})
-include_directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-link_directories( ${LINK_DIRECTORIES})
-GENERATE_LIBRARY()
-# ---------------------------------------------------------
+generate_cbm_library()
diff --git a/reco/tracking/global/CMakeLists.txt b/reco/tracking/global/CMakeLists.txt
index dd78249e04..01db524b62 100755
--- a/reco/tracking/global/CMakeLists.txt
+++ b/reco/tracking/global/CMakeLists.txt
@@ -3,62 +3,43 @@
 # The extension is already found.  Any number of sources could be listed
 # here.
 
-Set(INCLUDE_DIRECTORIES
+set(INCLUDE_DIRECTORIES
   ${CMAKE_CURRENT_SOURCE_DIR}
+  )
 
-  ${CBMBASE_DIR} 
 
-  ${CBMDATA_DIR} 
-  ${CBMDATA_DIR}/base
-  ${CBMDATA_DIR}/sts
-  ${CBMDATA_DIR}/mvd
-  ${CBMDATA_DIR}/tof
-  ${CBMDATA_DIR}/much
-  ${CBMDATA_DIR}/trd
-  ${CBMDATA_DIR}/global
-
-  ${CBMDETECTORBASE_DIR}/much
-
-  ${CBMROOT_SOURCE_DIR}/run
-
-  ${CBMROOT_SOURCE_DIR}/reco/littrack/std
-  ${CBMROOT_SOURCE_DIR}/reco/littrack/cbm
-
-  ${CBMROOT_SOURCE_DIR}/reco/KF
-  ${CBMROOT_SOURCE_DIR}/reco/KF/Interface
-)
-
-Include_Directories( ${INCLUDE_DIRECTORIES})
-
-Set(SYSTEM_INCLUDE_DIRECTORIES
-  ${BASE_INCLUDE_DIRECTORIES}
-)
-
-Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-Set(LINK_DIRECTORIES
-  ${KFParticle_LIB_DIR}
-  ${FAIRROOT_LIBRARY_DIR}
-  ${ROOT_LIBRARY_DIR}
-  ${Boost_LIBRARY_DIRS}
-)
- 
-Link_Directories( ${LINK_DIRECTORIES})
-
-Set(SRCS
+set(SRCS
   CbmGlobalTrackingTask.cxx
   CbmGlobalTrackingQa.cxx
-)
+  )
 
-Set(NO_DICT_SRCS
+set(NO_DICT_SRCS
   CbmGlobalTrackingTof.cxx
-)
+  )
 
-set(LINKDEF GlobalLinkDef.h)
-Set(LIBRARY_NAME CbmGlobalTracking)
-Set(DEPENDENCIES
-    CbmBase CbmData Base CbmMuchBase KF Littrack KFParticleInterface
-#   CbmLitTrack CbmKF CbmRun ????
-)
 
-GENERATE_LIBRARY()
+set(LIBRARY_NAME CbmGlobalTracking)
+set(LINKDEF GlobalLinkDef.h)
+set(PUBLIC_DEPENDENCIES
+  CbmBase
+  CbmData
+  KF
+  )
+
+set(PRIVATE_DEPENDENCIES
+  CbmMuchSim
+  Littrack
+  CbmMuchBase
+  ROOT::Geom
+  ROOT::Hist
+  ROOT::MathCore
+  KFParticleInterface 
+  )
+
+set(INTERFACE_DEPENDENCIES
+  FairRoot::Base 
+  ROOT::Core
+  )
+
+
+generate_cbm_library()
diff --git a/reco/tracking/lx/CMakeLists.txt b/reco/tracking/lx/CMakeLists.txt
index 1462cbf322..c427d71c88 100755
--- a/reco/tracking/lx/CMakeLists.txt
+++ b/reco/tracking/lx/CMakeLists.txt
@@ -3,74 +3,51 @@
 # The extension is already found.  Any number of sources could be listed
 # here.
 
-Set(INCLUDE_DIRECTORIES
-  ${BASE_INCLUDE_DIRECTORIES}
-
-  ${CBMROOT_SOURCE_DIR}/reco/tracking/lx
-  ${CBMROOT_SOURCE_DIR}/reco/tracking/lx/TBBinned
-  ${CBMROOT_SOURCE_DIR}/reco/tracking/lx/GenNoiseElectrons
-  ${CBMROOT_SOURCE_DIR}/reco/tracking/lx/CalcStats
-
-  ${CBMBASE_DIR} 
-
-  ${CBMDATA_DIR} 
-  ${CBMDATA_DIR}/much
-  ${CBMDATA_DIR}/sts
-  ${CBMDATA_DIR}/mvd
-  ${CBMDATA_DIR}/trd
-  ${CBMDATA_DIR}/tof
-  ${CBMDATA_DIR}/global
-
-  ${CBMDETECTORBASE_DIR}/much
-
-  ${CBMROOT_SOURCE_DIR}/sim/detectors/much
-
-  ${CBMROOT_SOURCE_DIR}/KF
-  ${CBMROOT_SOURCE_DIR}/KF/Interface
-
-  ${CBMROOT_SOURCE_DIR}/sts
-
-  ${CBMROOT_SOURCE_DIR}/reco/littrack/std
-  ${CBMROOT_SOURCE_DIR}/reco/littrack/cbm
-)
-
-Include_Directories( ${INCLUDE_DIRECTORIES})
-
-Set(SYSTEM_INCLUDE_DIRECTORIES
-  ${BASE_INCLUDE_DIRECTORIES}
-)
-
-Include_Directories(SYSTEM ${SYSTEM_INCLUDE_DIRECTORIES})
-
-Set(LINK_DIRECTORIES
-  ${KFParticle_LIB_DIR}
-  ${ROOT_LIBRARY_DIR}
-  ${FAIRROOT_LIBRARY_DIR}
-  ${Boost_LIBRARY_DIRS}
-)
- 
-Link_Directories( ${LINK_DIRECTORIES})
-
-Set(SRCS
+set(INCLUDE_DIRECTORIES
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${CMAKE_CURRENT_SOURCE_DIR}/TBBinned
+  ${CMAKE_CURRENT_SOURCE_DIR}/GenNoiseElectrons
+  ${CMAKE_CURRENT_SOURCE_DIR}/CalcStats
+  )
+set(SRCS
   TBBinned/LxTBTask.cxx
 #  TBBinned/LxTBMLTask.cxx
   TBBinned/LxTBTieTracks.cxx
   TBBinned/LxTBTrdTask.cxx
   GenNoiseElectrons/GenNoiseElectrons.cxx
   CalcStats/CalcStats.cxx
-)
+  )
 
-Set(NO_DICT_SRCS
+set(NO_DICT_SRCS
 #  LxTBMatEffs.cxx
 #  LxTBNaive.cxx
 )
 
-set(LINKDEF LxLinkDef.h)
-Set(LIBRARY_NAME LxTrack)
-Set(DEPENDENCIES
-    CbmBase CbmData Base CbmMuchBase Littrack
-# CbmMuchSim CbmKF CbmLitTrack CbmSrt ????
-)
-
-GENERATE_LIBRARY()
 
+set(LIBRARY_NAME LxTrack)
+set(LINKDEF LxLinkDef.h)
+set(PUBLIC_DEPENDENCIES
+  CbmBase
+  CbmData
+  KF
+  ROOT::Core
+  ROOT::Geom
+  ROOT::Hist
+  )
+
+set(PRIVATE_DEPENDENCIES
+  ROOT::Gpad
+  CbmMuchSim
+  Littrack
+  )
+
+set(INTERFACE_DEPENDENCIES
+  CbmMuchBase  
+  ROOT::EG
+  ROOT::Graf
+  ROOT::MathCore
+  ROOT::RIO
+  )
+
+
+generate_cbm_library()
-- 
GitLab