diff --git a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversion.cxx b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversion.cxx
index 6670b69154e55b23d2f3355d32829c3b9b5bf151..e7b6fcdd397d1a7ad32848c89901f7deb224419d 100644
--- a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversion.cxx
+++ b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversion.cxx
@@ -26,12 +26,11 @@
 #include "CbmStsTrack.h"
 #include "CbmTrackMatchNew.h"
 #include "CbmUtils.h"
-
 #include "FairMCPoint.h"
 #include "FairTrackParam.h"
-#include <Logger.h>
+#include "KFParticle/KFParticleTopoReconstructor.h"
 
-#include "KFParticleTopoReconstructor.h"
+#include <Logger.h>
 
 
 // includes of standard c++ classes or ROOT classes
@@ -2040,7 +2039,7 @@ void CbmAnaConversion::AnalysePi0_Reco()
 					cout << "CbmAnaConversion: AnalysePi0_Reco: " << alt5->first << "/" << zwischen->first << "/" << alt3->first << "/" << alt4->first << endl;
 					cout << "CbmAnaConversion: AnalysePi0_Reco: " << alt5->second << "/" << zwischen->second << "/" << alt3->second << "/" << alt4->second << endl;
 					AnalysePi0_Reco_calc(alt5->second, zwischen->second, alt3->second, alt4->second);
-				
+
 				}
 				*/
         check2 = 1;
diff --git a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionKF.h b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionKF.h
index f59884650eee895abfb20f5f3db8c08a08c1e2d5..b0d08925ac249ec5b84d00e2f7ac617f501687fc 100644
--- a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionKF.h
+++ b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversionKF.h
@@ -25,9 +25,9 @@
 #include "CbmKFParticleFinderQa.h"
 #include "CbmMCTrack.h"
 #include "CbmVertex.h"
-#include "KFPartMatch.h"
-#include "KFParticle.h"
-#include "KFTopoPerformance.h"
+#include "KFParticle/KFPartMatch.h"
+#include "KFParticle/KFParticle.h"
+#include "KFParticle/KFTopoPerformance.h"
 
 #include <vector>
 
diff --git a/analysis/PWGDIL/dielectron/papaframework/CMakeLists.txt b/analysis/PWGDIL/dielectron/papaframework/CMakeLists.txt
index a072fe0253503bda0b05492f9e9af908e9f5c553..2339745733cdfc99a16fc42e15e2d847695b4c94 100644
--- a/analysis/PWGDIL/dielectron/papaframework/CMakeLists.txt
+++ b/analysis/PWGDIL/dielectron/papaframework/CMakeLists.txt
@@ -47,11 +47,11 @@ set(SRCS
 IF (SSE_FOUND)
   Message(STATUS "Papa will be compiled with SSE support")
   ADD_DEFINITIONS(-DHAVE_SSE)
-  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS 
+  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS
   "-msse -O3")
 ELSE (SSE_FOUND)
   MESSAGE(STATUS "Papa will be compiled without SSE support")
-  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS 
+  SET_SOURCE_FILES_PROPERTIES(${SRCS} PROPERTIES COMPILE_FLAGS
   "-O3")
 ENDIF (SSE_FOUND)
 
@@ -98,6 +98,7 @@ set(PUBLIC_DEPENDENCIES
 set(PRIVATE_DEPENDENCIES
   CbmMvdBase
   CbmSimBase
+  KFParticle
   KFParticleInterface
   Littrack
   LittrackQA
diff --git a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairKF.cxx b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairKF.cxx
index 63733318a828c6205f85fca5e08ca6a6a20887db..0579a77557a668208b9f8b039f6c7264788d1c3c 100644
--- a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairKF.cxx
+++ b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairKF.cxx
@@ -17,7 +17,7 @@
 
 #include <TDatabasePDG.h>
 
-#include "KFParticle.h"
+//#include "KFParticle.h"
 #include "PairAnalysisMC.h"
 #include "PairAnalysisTrack.h"
 
@@ -216,7 +216,7 @@ Double_t PairAnalysisPairKF::PsiPair(Double_t /*MagField*/) const
 
   m1[0] = fD1.GetPx();
   m1[1] = fD1.GetPy();
-  m1[2] = fD1.GetPz();  
+  m1[2] = fD1.GetPz();
 
   m2[0] = fD2.GetPx();
   m2[1] = fD2.GetPy();
diff --git a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairKF.h b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairKF.h
index 219d3136d672329857ec248494e0586169ed6c0c..91072770e49c846a4f71690bc8a13a1e61e418f9 100644
--- a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairKF.h
+++ b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisPairKF.h
@@ -14,15 +14,15 @@
 //#                                                           #
 //#############################################################
 
-#include <TLorentzVector.h>
-#include <TMath.h>
-
-#include <KFParticle.h>
-
 #include "PairAnalysisPair.h"
 #include "PairAnalysisTrack.h"
 #include "PairAnalysisTrackRotator.h"
 
+#include <TLorentzVector.h>
+#include <TMath.h>
+
+#include <KFParticle/KFParticle.h>
+
 class CbmVertex;
 class CbmMCTrack;
 
diff --git a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionCorrectedPhotons.cxx b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionCorrectedPhotons.cxx
index d30f8ca8ae57de5240a7d12d417b8591fbcd5d35..a6bcdd7e26eab056a3c5cbeb17c74c0caa85be98 100644
--- a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionCorrectedPhotons.cxx
+++ b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionCorrectedPhotons.cxx
@@ -33,13 +33,11 @@
 #include "CbmStsHit.h"
 #include "CbmStsTrack.h"
 #include "CbmTrackMatchNew.h"
-
 #include "FairRootManager.h"
+#include "KFParticle/KFParticle.h"
 
 #include <iostream>
 
-#include "KFParticle.h"
-
 using namespace std;
 
 CbmKresConversionCorrectedPhotons::CbmKresConversionCorrectedPhotons()
diff --git a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionCorrectedPhotons.h b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionCorrectedPhotons.h
index 6cae2e492f0140db53c27709525860834076b731..24f51c1b55ea0bb40dbb743a297ce9c66db334b3 100644
--- a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionCorrectedPhotons.h
+++ b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionCorrectedPhotons.h
@@ -14,12 +14,11 @@
 #include "CbmRichRingFitterEllipseTau.h"
 #include "CbmStsTrack.h"
 #include "CbmVertex.h"
-
+#include "KFParticle/KFParticle.h"
+#include "LmvmKinePar.h"
 #include "TH2D.h"
-#include <TClonesArray.h>
 
-#include "KFParticle.h"
-#include "LmvmKinePar.h"
+#include <TClonesArray.h>
 
 class CbmRichRingFitterEllipseTau;
 
diff --git a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionKF.cxx b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionKF.cxx
index b0d796531bcdd9ba90429a6d464f3b33060b1c87..7ba42fc0280f64bb0cbdae2fdece891e6cd4e389 100644
--- a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionKF.cxx
+++ b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionKF.cxx
@@ -33,15 +33,14 @@
 #include "CbmRichRingLight.h"
 #include "CbmStsTrack.h"
 #include "CbmTrackMatchNew.h"
+#include "KFParticle/KFParticle.h"
+#include "KFParticle/KFParticleTopoReconstructor.h"
+#include "LmvmKinePar.h"
 
 #include <FairRootManager.h>
 
 #include <TDirectory.h>
 
-#include "KFParticle.h"
-#include "KFParticleTopoReconstructor.h"
-#include "LmvmKinePar.h"
-
 using namespace std;
 
 CbmKresConversionKF::CbmKresConversionKF()
diff --git a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionKF.h b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionKF.h
index 41a2bceb9d755c50a005e0e6939f88bd5b113f69..ca33f9d350141d5694fcf6bcc40880d95bad0bae 100644
--- a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionKF.h
+++ b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionKF.h
@@ -10,14 +10,13 @@
 #include "CbmKresConversionBG.h"
 #include "CbmMCTrack.h"
 #include "CbmRichRing.h"
+#include "KFParticle/KFParticle.h"
+#include "KFParticle/KFTopoPerformance.h"
 
 #include <TClonesArray.h>
 #include <TH1.h>
 #include <TH2D.h>
 
-#include "KFParticle.h"
-#include "KFTopoPerformance.h"
-
 class CbmRichRingFitterEllipseTau;
 
 using namespace std;
diff --git a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManual.cxx b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManual.cxx
index e2c5714394eae932f45e186910d7e2f1848d23d1..c91f2512c92d34e0e8e2a44b1d5c2c035a92df59 100644
--- a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManual.cxx
+++ b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManual.cxx
@@ -34,13 +34,11 @@
 #include "CbmStsHit.h"
 #include "CbmStsTrack.h"
 #include "CbmTrackMatchNew.h"
-
 #include "FairRootManager.h"
+#include "KFParticle/KFParticle.h"
 
 #include <iostream>
 
-#include "KFParticle.h"
-
 using namespace std;
 
 CbmKresConversionManual::CbmKresConversionManual()
diff --git a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias1.cxx b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias1.cxx
index f3905c6a8fbde2696654befc55889eca990ec218..13c33c1e42fe6c6bd61cc1518d7cccb599a8b110 100644
--- a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias1.cxx
+++ b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias1.cxx
@@ -35,15 +35,12 @@
 #include "CbmStsHit.h"
 #include "CbmStsTrack.h"
 #include "CbmTrackMatchNew.h"
-
 #include "FairRootManager.h"
-
+#include "KFParticle/KFParticle.h"
 #include "TDirectory.h"
 
 #include <iostream>
 
-#include "KFParticle.h"
-
 
 using namespace std;
 
diff --git a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias2.cxx b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias2.cxx
index 87bc8a8e475c9c9e0f5ead7527bb45ac063f7d77..5003264087f94791142e3a34325579767ac14060 100644
--- a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias2.cxx
+++ b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias2.cxx
@@ -35,15 +35,12 @@
 #include "CbmStsHit.h"
 #include "CbmStsTrack.h"
 #include "CbmTrackMatchNew.h"
-
 #include "FairRootManager.h"
-
+#include "KFParticle/KFParticle.h"
 #include "TDirectory.h"
 
 #include <iostream>
 
-#include "KFParticle.h"
-
 
 using namespace std;
 
diff --git a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias3.cxx b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias3.cxx
index e563a5ea2c8066a8cd4e69614f0e14c114bf64bc..09cbc874f25fdfc931618d6a8b1f4c52c3849102 100644
--- a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias3.cxx
+++ b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias3.cxx
@@ -35,15 +35,12 @@
 #include "CbmStsHit.h"
 #include "CbmStsTrack.h"
 #include "CbmTrackMatchNew.h"
-
 #include "FairRootManager.h"
-
+#include "KFParticle/KFParticle.h"
 #include "TDirectory.h"
 
 #include <iostream>
 
-#include "KFParticle.h"
-
 
 using namespace std;
 
diff --git a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias4.cxx b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias4.cxx
index 784ec3a309bc6e6be2f8b52ca963abdc0e499cab..3e88f32a8a26052db63f7d197f1eace7cbd6fc65 100644
--- a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias4.cxx
+++ b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionManualmbias4.cxx
@@ -35,15 +35,12 @@
 #include "CbmStsHit.h"
 #include "CbmStsTrack.h"
 #include "CbmTrackMatchNew.h"
-
 #include "FairRootManager.h"
-
+#include "KFParticle/KFParticle.h"
 #include "TDirectory.h"
 
 #include <iostream>
 
-#include "KFParticle.h"
-
 
 using namespace std;
 
diff --git a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionPhotons.cxx b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionPhotons.cxx
index 383142610a76d2b15ba40c3879dbca93eced3b48..6fa275f7e0b13087264d3ed99e2bc652933bae57 100644
--- a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionPhotons.cxx
+++ b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionPhotons.cxx
@@ -32,13 +32,11 @@
 #include "CbmStsHit.h"
 #include "CbmStsTrack.h"
 #include "CbmTrackMatchNew.h"
-
 #include "FairRootManager.h"
+#include "KFParticle/KFParticle.h"
 
 #include <iostream>
 
-#include "KFParticle.h"
-
 using namespace std;
 
 CbmKresConversionPhotons::CbmKresConversionPhotons()
diff --git a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionPhotons.h b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionPhotons.h
index 8b3180e5f6c3055efe16ae47a796d5ccedc9e86d..0659003f1c4b44c6d3e0233d1f7afb46bd36deaa 100644
--- a/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionPhotons.h
+++ b/analysis/PWGDIL/dielectron/pi0eta/CbmKresConversionPhotons.h
@@ -13,12 +13,11 @@
 #include "CbmRichRingFitterEllipseTau.h"
 #include "CbmStsTrack.h"
 #include "CbmVertex.h"
-
+#include "KFParticle/KFParticle.h"
+#include "LmvmKinePar.h"
 #include "TH2D.h"
-#include <TClonesArray.h>
 
-#include "KFParticle.h"
-#include "LmvmKinePar.h"
+#include <TClonesArray.h>
 
 class CbmRichRingFitterEllipseTau;
 
diff --git a/analysis/PWGDIL/dielectron/pi0eta/CbmKresEta.cxx b/analysis/PWGDIL/dielectron/pi0eta/CbmKresEta.cxx
index c0093c38b7ed7333693cb59c95e4d0e02ede6f7d..19d6ef5cc09416f2870736259bca3cd37c100e91 100644
--- a/analysis/PWGDIL/dielectron/pi0eta/CbmKresEta.cxx
+++ b/analysis/PWGDIL/dielectron/pi0eta/CbmKresEta.cxx
@@ -33,15 +33,12 @@
 #include "CbmStsHit.h"
 #include "CbmStsTrack.h"
 #include "CbmTrackMatchNew.h"
-
 #include "FairRootManager.h"
-
+#include "KFParticle/KFParticle.h"
 #include "TDirectory.h"
 
 #include <iostream>
 
-#include "KFParticle.h"
-
 
 using namespace std;
 
diff --git a/analysis/common/at_kfpf_interface/ATKFParticleFinder.cxx b/analysis/common/at_kfpf_interface/ATKFParticleFinder.cxx
index 94b4db1a0e0f6349cd6cba055a3d114f30274281..b9bde2c271bf64a0d5f02d19ad3ae1a36645542f 100644
--- a/analysis/common/at_kfpf_interface/ATKFParticleFinder.cxx
+++ b/analysis/common/at_kfpf_interface/ATKFParticleFinder.cxx
@@ -5,7 +5,7 @@
 #include "ATKFParticleFinder.h"
 
 #include "AnalysisTree/Matching.hpp"
-#include "KFParticleTopoReconstructor.h"
+#include "KFParticle/KFParticleTopoReconstructor.h"
 
 void ATKFParticleFinder::InitInput(const std::string& file_name, const std::string& tree_name)
 {
diff --git a/external/InstallKFParticle.cmake b/external/InstallKFParticle.cmake
index 0e9724197ac86896e3caccb008332bda08d47f39..60b0bc3390312bff7586fe6a2183f1a60e732327 100644
--- a/external/InstallKFParticle.cmake
+++ b/external/InstallKFParticle.cmake
@@ -4,6 +4,9 @@ set(KFPARTICLE_SRC_URL "https://github.com/cbmsw/KFParticle.git")
 set(KFPARTICLE_DESTDIR "${CMAKE_BINARY_DIR}/external/KFPARTICLE-prefix")
 set(KFPARTICLE_TAG     "9b11e3e9da4e0896af80701210d19f7ca69c39d4")
 
+set(KF_MACOS_ARM_PATCH  "patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/KFParticle_applem1.patch")
+set(KF_CLANG_TINY_PATCH "patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/KFParticle_clang_tidy.patch")
+set(KF_INCLUDE_PATCH    "patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/KFParticle_header_install.patch")
 # GIT_TAG is a hash for KFParticle tag cbm/v1.1-1
 if (CMAKE_SYSTEM_NAME MATCHES Darwin AND ${CMAKE_SYSTEM_PROCESSOR} MATCHES arm64)
   download_project_if_needed(PROJECT         kfparticle_source
@@ -11,7 +14,7 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin AND ${CMAKE_SYSTEM_PROCESSOR} MATCHES arm64
                              GIT_TAG         ${KFPARTICLE_TAG}
                              SOURCE_DIR      ${CMAKE_CURRENT_SOURCE_DIR}/KFParticle
                              TEST_FILE       CMakeLists.txt
-                             PATCH_COMMAND   "patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/KFParticle_applem1.patch"
+                             PATCH_COMMAND   "${KF_MACOS_ARM_PATCH} && ${KF_INCLUDE_PATCH}"
                             )
 else()
   if(BUILD_FOR_TIDY)
@@ -20,7 +23,7 @@ else()
                                GIT_TAG         ${KFPARTICLE_TAG}
                                SOURCE_DIR      ${CMAKE_CURRENT_SOURCE_DIR}/KFParticle
                                TEST_FILE       CMakeLists.txt
-                               PATCH_COMMAND   "patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/KFParticle_clang_tidy.patch"
+                               PATCH_COMMAND   "${KF_CLANG_TINY_PATCH} && ${KF_INCLUDE_PATCH}"
                               )
   else()
     download_project_if_needed(PROJECT         kfparticle_source
@@ -28,6 +31,7 @@ else()
                                GIT_TAG         ${KFPARTICLE_TAG}
                                SOURCE_DIR      ${CMAKE_CURRENT_SOURCE_DIR}/KFParticle
                                TEST_FILE       CMakeLists.txt
+                               PATCH_COMMAND   "${KF_INCLUDE_PATCH}"
                               )
   endif()
 endif()
@@ -37,8 +41,8 @@ If(ProjectUpdated)
   Message("KFParticle source directory was changed so build directory was deleted")
 EndIf()
 
-if(NOT EXISTS ${CMAKE_BINARY_DIR}/include)
-  file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/include)
+if(NOT EXISTS ${CMAKE_BINARY_DIR}/include/KFParticle)
+  file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/include/KFParticle)
 endif()
 
 ExternalProject_Add(KFPARTICLE
@@ -69,7 +73,16 @@ ExternalProject_Add(KFPARTICLE
 add_library(KFParticle SHARED IMPORTED GLOBAL)
 set_target_properties(KFParticle PROPERTIES
   IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}KFParticle${CMAKE_SHARED_LIBRARY_SUFFIX}
-  INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_BINARY_DIR}/include)
+)
+target_include_directories( KFParticle
+  INTERFACE
+    ${CMAKE_BINARY_DIR}/include
+    ${CMAKE_BINARY_DIR}/include/KFParticle
+    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/KFParticle>
+    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/KFParticlePerformance>
+    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/KFParticleTest>
+)
 target_link_libraries(KFParticle INTERFACE Vc::Vc)
 
 
@@ -81,19 +94,53 @@ Install(FILES ${CMAKE_BINARY_DIR}/lib/${KFPARTICLE_LIBNAME}
         DESTINATION lib
        )
 
-Install(FILES ${CMAKE_BINARY_DIR}/include/KFParticleBase.h
-              ${CMAKE_BINARY_DIR}/include/KFParticle.h
-              ${CMAKE_BINARY_DIR}/include/KFVertex.h
+Install(FILES ${CMAKE_BINARY_DIR}/include/KFParticle/KFParticleBase.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFParticle.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFVertex.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFParticleTopoReconstructor.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFTopoPerformance.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFPTrackVector.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFMCTrack.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFParticleSIMD.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFParticlePerformanceBase.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFPVEfficiencies.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFMCVertex.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFPartMatch.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFParticlePVReconstructor.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFParticleFinder.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFParticleBaseSIMD.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFParticleDef.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFPSimdAllocator.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFPTrack.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFPEmcCluster.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFParticleField.h
+              # Next are copies of those in other folders, needed to load CBM libraries
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFMCParticle.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFPartEfficiencies.h
         DESTINATION include/KFParticle
        )
-Install(FILES ${CMAKE_BINARY_DIR}/include/KFMCParticle.h
-              ${CMAKE_BINARY_DIR}/include/KFPartEfficiencies.h
+# Next are copies of those in other folders, needed exactly at this path to load the KFParticle library
+# => Not completely sure why but it seems that while no path is provided in the KF own includes, the G__KFParticle.cxx
+#    file is generated with these "internal paths", for example at line 37-43
+# ===========================================================
+#    [...]
+#    // Header files passed as explicit arguments
+#    #include "KFParticle/KFParticleBase.h"
+#    #include "KFParticle/KFParticle.h"
+#    #include "KFParticle/KFVertex.h"
+#    #include "KFParticlePerformance/KFPartEfficiencies.h"
+#    #include "KFParticlePerformance/KFMCParticle.h"
+#    #include "KFParticleTest/KFParticleTest.h"
+#    [...]
+# ===========================================================
+Install(FILES ${CMAKE_BINARY_DIR}/include/KFParticle/KFMCParticle.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFPartEfficiencies.h
         DESTINATION include/KFParticlePerformance
        )
-Install(FILES ${CMAKE_BINARY_DIR}/include/KFParticleTest.h
+Install(FILES ${CMAKE_BINARY_DIR}/include/KFParticle/KFParticleTest.h
         DESTINATION include/KFParticleTest
        )
-Install(FILES ${CMAKE_BINARY_DIR}/include/KFPVertex.h
-              ${CMAKE_BINARY_DIR}/include/KFMCCounter.h
+Install(FILES ${CMAKE_BINARY_DIR}/include/KFParticle/KFPVertex.h
+              ${CMAKE_BINARY_DIR}/include/KFParticle/KFMCCounter.h
         DESTINATION include
        )
diff --git a/external/KFParticle_header_install.patch b/external/KFParticle_header_install.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5c8ec406e8b4d3df00dfc8ec8fa7e3be9500b13b
--- /dev/null
+++ b/external/KFParticle_header_install.patch
@@ -0,0 +1,42 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index dffa254..ec48865 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -35,6 +35,7 @@ EndIf()
+ Set(INCLUDE_DIRECTORIES
+   ${PROJECT_SOURCE_DIR}/KFParticle
+   ${PROJECT_SOURCE_DIR}/KFParticlePerformance
++  ${PROJECT_SOURCE_DIR}/KFParticleTest
+ )
+ 
+ include(${ROOT_USE_FILE})
+@@ -45,7 +46,7 @@ set(CMAKE_INCLUDE_DIRECTORIES_BEFORE OFF)
+ set(LINK_DIRECTORIES
+   ${ROOT_LIBRARY_DIR}
+ )
+- 
++
+ link_directories( ${LINK_DIRECTORIES})
+ 
+ set (SOURCES
+@@ -137,7 +138,7 @@ Set(NODICT_HEADERS
+   KFParticlePerformance/KFPartMatch.h
+ )
+ 
+-install(FILES ${HEADERS} ${NODICT_HEADERS} DESTINATION include)
++install(FILES ${HEADERS} ${NODICT_HEADERS} DESTINATION include/KFParticle)
+ install(FILES ${CMAKE_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}KFParticle_rdict.pcm DESTINATION lib OPTIONAL)
+ install(FILES ${CMAKE_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}KFParticle.rootmap DESTINATION lib)
+ install(TARGETS KFParticle DESTINATION lib)
+diff --git a/KFLinkDef.h b/KFLinkDef.h
+index d51285b..35afa80 100644
+--- a/KFLinkDef.h
++++ b/KFLinkDef.h
+@@ -10,7 +10,6 @@
+ #pragma link C++ class KFVertex + ;
+ #pragma link C++ class KFPartEfficiencies + ;
+ #pragma link C++ class KFMCParticle + ;
+-#pragma link C++ class KFParticle + ;
+ #pragma link C++ class KFParticleTest + ;
+ 
+ #endif
diff --git a/reco/KF/CbmKFParticleFinder.cxx b/reco/KF/CbmKFParticleFinder.cxx
index 7ffc2dd17b3d360597bb4e435c1ca09c6baa91ca..6e8f840385b6f442625cdcf8b4561bf0128d3f7e 100644
--- a/reco/KF/CbmKFParticleFinder.cxx
+++ b/reco/KF/CbmKFParticleFinder.cxx
@@ -21,8 +21,8 @@
 #include "FairRunAna.h"
 
 //KF Particle headers
-#include "KFPTrackVector.h"
-#include "KFParticleTopoReconstructor.h"
+#include "KFParticle/KFPTrackVector.h"
+#include "KFParticle/KFParticleTopoReconstructor.h"
 
 #include <Logger.h>
 
diff --git a/reco/KF/CbmKFParticleFinderQa.cxx b/reco/KF/CbmKFParticleFinderQa.cxx
index 0755843f8afc1384bfe6e2ebb1819c734388a2dc..d3d50e64ca13c7b459a9a50f73df3554a2986a02 100644
--- a/reco/KF/CbmKFParticleFinderQa.cxx
+++ b/reco/KF/CbmKFParticleFinderQa.cxx
@@ -15,12 +15,12 @@
 #include "CbmTrack.h"
 #include "CbmTrackMatchNew.h"
 #include "FairRunAna.h"
+#include "KFParticleMatch.h"
 
 //KF Particle headers
-#include "KFMCTrack.h"
-#include "KFParticleMatch.h"
-#include "KFParticleTopoReconstructor.h"
-#include "KFTopoPerformance.h"
+#include "KFParticle/KFMCTrack.h"
+#include "KFParticle/KFParticleTopoReconstructor.h"
+#include "KFParticle/KFTopoPerformance.h"
 
 //ROOT headers
 #include "TCanvas.h"
diff --git a/reco/KF/CbmKFParticleInterface.cxx b/reco/KF/CbmKFParticleInterface.cxx
index 51de3abbec8ee94096dd6daf0d17b5802a9b94da..d2a583106fbc042a0394dc477a73591af3d08e69 100644
--- a/reco/KF/CbmKFParticleInterface.cxx
+++ b/reco/KF/CbmKFParticleInterface.cxx
@@ -13,9 +13,9 @@
 #include "CbmStsTrack.h"
 
 //KF Particle headers
-#include "KFPTrackVector.h"
-#include "KFParticle.h"
-#include "KFParticleSIMD.h"
+#include "KFParticle/KFPTrackVector.h"
+#include "KFParticle/KFParticle.h"
+#include "KFParticle/KFParticleSIMD.h"
 
 //ROOT headers
 #include "TClonesArray.h"  //to get arrays from the FairRootManager
diff --git a/reco/KF/CbmKFV0FinderTask.h b/reco/KF/CbmKFV0FinderTask.h
index 274eb4e4df7fc86c293ee186b79b83c756c58a8b..4a7a3fa694809e3b9e34a87bdb9695b42d00ba30 100644
--- a/reco/KF/CbmKFV0FinderTask.h
+++ b/reco/KF/CbmKFV0FinderTask.h
@@ -17,7 +17,7 @@
 #include "CbmKFVertex.h"
 #include "CbmVertex.h"
 #include "FairTask.h"
-#include "KFParticleTopoReconstructor.h"
+#include "KFParticle/KFParticleTopoReconstructor.h"
 
 #include <memory>