From 80773550c2de9ad1d480ac748aff9e1d1f74f8d7 Mon Sep 17 00:00:00 2001 From: P-A Loizeau <p.-a.loizeau@gsi.de> Date: Fri, 28 Mar 2025 15:00:56 +0100 Subject: [PATCH] Fix install + usage of KFParticle headers, both KFP lib and CBM libs load fully - Patch the KFParticle CMake (KFP side) so that the headers are temporarily installed in a subfolder in the build fodler - Fix the KFParticle external CMake file (CBM side): - apply KFParticle install patch to all 3 patch cases (in combination with original patch for MACOS ARM and Clang Tiny) - headers are installed in a subfolder - missing headers added to install (probably most of them installed now) - some headers installed under two subfolders to match dictionaries of both CBM libs and KFP lib - add all (new + previously used) install subfolders to interface of the installed KFP library - Analysis: Partial path for KF includes to be compatible with all 3 usage variants - Reco: Partial path for KF includes to be compatible with all 3 usage variants --- .../conversion/CbmAnaConversion.cxx | 7 +- .../conversion/CbmAnaConversionKF.h | 6 +- .../dielectron/papaframework/CMakeLists.txt | 5 +- .../papaframework/PairAnalysisPairKF.cxx | 4 +- .../papaframework/PairAnalysisPairKF.h | 10 +-- .../CbmKresConversionCorrectedPhotons.cxx | 4 +- .../CbmKresConversionCorrectedPhotons.h | 7 +- .../dielectron/pi0eta/CbmKresConversionKF.cxx | 7 +- .../dielectron/pi0eta/CbmKresConversionKF.h | 5 +- .../pi0eta/CbmKresConversionManual.cxx | 4 +- .../pi0eta/CbmKresConversionManualmbias1.cxx | 5 +- .../pi0eta/CbmKresConversionManualmbias2.cxx | 5 +- .../pi0eta/CbmKresConversionManualmbias3.cxx | 5 +- .../pi0eta/CbmKresConversionManualmbias4.cxx | 5 +- .../pi0eta/CbmKresConversionPhotons.cxx | 4 +- .../pi0eta/CbmKresConversionPhotons.h | 7 +- .../PWGDIL/dielectron/pi0eta/CbmKresEta.cxx | 5 +- .../at_kfpf_interface/ATKFParticleFinder.cxx | 2 +- external/InstallKFParticle.cmake | 73 +++++++++++++++---- external/KFParticle_header_install.patch | 42 +++++++++++ reco/KF/CbmKFParticleFinder.cxx | 4 +- reco/KF/CbmKFParticleFinderQa.cxx | 8 +- reco/KF/CbmKFParticleInterface.cxx | 6 +- reco/KF/CbmKFV0FinderTask.h | 2 +- 24 files changed, 148 insertions(+), 84 deletions(-) create mode 100644 external/KFParticle_header_install.patch diff --git a/analysis/PWGDIL/dielectron/conversion/CbmAnaConversion.cxx b/analysis/PWGDIL/dielectron/conversion/CbmAnaConversion.cxx index 6670b69154..e7b6fcdd39 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 f59884650e..b0d08925ac 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 a072fe0253..2339745733 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 63733318a8..0579a77557 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 219d3136d6..91072770e4 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 d30f8ca8ae..a6bcdd7e26 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 6cae2e492f..24f51c1b55 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 b0d796531b..7ba42fc028 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 41a2bceb9d..ca33f9d350 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 e2c5714394..c91f2512c9 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 f3905c6a8f..13c33c1e42 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 87bc8a8e47..5003264087 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 e563a5ea2c..09cbc874f2 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 784ec3a309..3e88f32a8a 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 383142610a..6fa275f7e0 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 8b3180e5f6..0659003f1c 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 c0093c38b7..19d6ef5cc0 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 94b4db1a0e..b9bde2c271 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 0e9724197a..60b0bc3390 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 0000000000..5c8ec406e8 --- /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 7ffc2dd17b..6e8f840385 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 0755843f8a..d3d50e64ca 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 51de3abbec..d2a583106f 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 274eb4e4df..4a7a3fa694 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> -- GitLab