diff --git a/algo/CMakeLists.txt b/algo/CMakeLists.txt index b177933cbbbdad3e43a2797ff775734d13785ee0..bd7ba62570377200808723c5e79193cc0fe4bda4 100644 --- a/algo/CMakeLists.txt +++ b/algo/CMakeLists.txt @@ -243,6 +243,76 @@ if (CBM_ONLINE_STANDALONE) add_subdirectory(../reco/app/cbmreco cbmreco) endif() +##### Offline version without the NO_ROOT in order to get standard logger! ############################################# +if (NOT CBM_ONLINE_STANDALONE) + add_library(AlgoOffline SHARED ${SRCS}) + + target_include_directories(AlgoOffline + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/data + ${CMAKE_CURRENT_SOURCE_DIR}/base + ${CMAKE_CURRENT_SOURCE_DIR}/evbuild + ${CMAKE_CURRENT_SOURCE_DIR}/global + ${CMAKE_CURRENT_SOURCE_DIR}/trigger + ${CMAKE_CURRENT_SOURCE_DIR}/evselector + ${CMAKE_CURRENT_SOURCE_DIR}/unpack + ${CMAKE_CURRENT_SOURCE_DIR}/detectors + ${CMAKE_CURRENT_SOURCE_DIR}/qa + ${CMAKE_CURRENT_SOURCE_DIR}/qa/unpack + ${CMAKE_CURRENT_SOURCE_DIR}/kf + ${CMAKE_CURRENT_SOURCE_DIR}/kf/core + ${CMAKE_CURRENT_SOURCE_DIR}/kf/core/utils + ${CMAKE_CURRENT_SOURCE_DIR}/ca + ${CMAKE_CURRENT_SOURCE_DIR}/ca/qa + ${CMAKE_CURRENT_SOURCE_DIR}/ca/core/data + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/core/data/global + ) + + target_link_libraries(AlgoOffline + PUBLIC CbmData + KfCoreOffline + CaCoreOffline + ROOT::GenVector + GSL + fmt::fmt + Boost::program_options + Boost::filesystem + Boost::iostreams + Boost::headers + FairLogger::FairLogger + xpu + external::yaml-cpp + external::fles_logging + external::fles_ipc + external::fles_monitoring + cppzmq + poolstl + ) + xpu_attach(AlgoOffline ${DEVICE_SRCS}) + + # Link against OpenMP if available + if (OpenMP_CXX_FOUND) + target_link_libraries(AlgoOffline PUBLIC OpenMP::OpenMP_CXX) + endif() + + # Try to enable parallel execution in c++17 if TBB is available + if (CMAKE_SYSTEM_NAME STREQUAL "Linux") + list(APPEND CMAKE_PREFIX_PATH "/opt/intel/oneapi/tbb/latest/") + find_package(TBB) + + if (TBB_FOUND) + message(STATUS "AlgoOffline: Found TBB") + target_compile_definitions(AlgoOffline PUBLIC -DHAVE_TBB) + target_link_libraries(AlgoOffline PUBLIC TBB::tbb) + else() + message(STATUS "Algo Offline: TBB not found") + endif() + + endif() + install(TARGETS AlgoOffline DESTINATION lib) +endif() +######################################################################################################################## + install(TARGETS Algo DESTINATION lib) install(DIRECTORY base/compat TYPE INCLUDE FILES_MATCHING PATTERN "*.h") install(DIRECTORY base/yaml TYPE INCLUDE FILES_MATCHING PATTERN "*.h") diff --git a/algo/ca/core/CMakeLists.txt b/algo/ca/core/CMakeLists.txt index d17ca0aa87630e4f1b4e3b3915b09a692d1c1e50..3d512ff818c2289679e734179d31e9358f0b9108 100644 --- a/algo/ca/core/CMakeLists.txt +++ b/algo/ca/core/CMakeLists.txt @@ -66,6 +66,28 @@ target_link_libraries(CaCore external::yaml-cpp ) +##### Offline version without the NO_ROOT in order to get standard logger! ############################################# +if (NOT CBM_ONLINE_STANDALONE) + add_library(CaCoreOffline SHARED ${SRCS}) + + target_include_directories(CaCoreOffline + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/data + ${CMAKE_CURRENT_SOURCE_DIR}/utils + ${CMAKE_CURRENT_SOURCE_DIR}/pars + ${CMAKE_CURRENT_SOURCE_DIR}/qa + ${CMAKE_CURRENT_SOURCE_DIR}/tracking + ${CMAKE_CURRENT_SOURCE_DIR} + ) + + target_link_libraries(CaCoreOffline + PUBLIC KfCoreOffline + Boost::serialization + external::yaml-cpp + ) + install(TARGETS CaCoreOffline DESTINATION lib) +endif() +######################################################################################################################## + install(TARGETS CaCore DESTINATION lib) install(DIRECTORY utils TYPE INCLUDE FILES_MATCHING PATTERN "*.h") install(DIRECTORY data TYPE INCLUDE FILES_MATCHING PATTERN "*.h") @@ -115,7 +137,7 @@ install( tracking/CaTrackFinder.h tracking/CaTrackFinderWindow.h tracking/CaTrackFitter.h - tracking/CaTripletConstructor.h + tracking/CaTripletConstructor.h DESTINATION include/ diff --git a/algo/kf/core/CMakeLists.txt b/algo/kf/core/CMakeLists.txt index ad1a50b2638ebc263638762f1e2b3a54af034160..d818b5fb715375f2680b65774c543fb2cc08b760 100644 --- a/algo/kf/core/CMakeLists.txt +++ b/algo/kf/core/CMakeLists.txt @@ -7,7 +7,7 @@ set(INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/utils ) -set(SRCS +set(SRCS ${CMAKE_CURRENT_SOURCE_DIR}/KfFramework.cxx ${CMAKE_CURRENT_SOURCE_DIR}/KfTrackKalmanFilter.cxx ${CMAKE_CURRENT_SOURCE_DIR}/data/KfTrackParam.cxx @@ -53,12 +53,37 @@ target_link_libraries(KfCore PUBLIC Vc::Vc OnlineDataLog # needed for the logger external::fles_logging # needed for the logger - external::fles_ipc # needed for the logger + external::fles_ipc # needed for the logger PRIVATE Boost::serialization fmt::fmt external::yaml-cpp ) +##### Offline version without the NO_ROOT in order to get standard logger! ############################################# +if (NOT CBM_ONLINE_STANDALONE) + add_library(KfCoreOffline SHARED ${SRCS}) + + target_include_directories(KfCoreOffline + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/algo + ${CMAKE_CURRENT_SOURCE_DIR}/data + ${CMAKE_CURRENT_SOURCE_DIR}/geo + ${CMAKE_CURRENT_SOURCE_DIR}/pars + ${CMAKE_CURRENT_SOURCE_DIR}/utils + ${CMAKE_CURRENT_SOURCE_DIR} + ) + + target_link_libraries(KfCoreOffline + PUBLIC Vc::Vc + OnlineDataLog # needed for the logger? + FairLogger::FairLogger + PRIVATE Boost::serialization + fmt::fmt + external::yaml-cpp + ) + install(TARGETS KfCoreOffline DESTINATION lib) +endif() +######################################################################################################################## + install(TARGETS KfCore DESTINATION lib) install(DIRECTORY kf TYPE INCLUDE FILES_MATCHING PATTERN "*.h") install(DIRECTORY kf/utils TYPE INCLUDE FILES_MATCHING PATTERN "*.h") diff --git a/algo/kf/core/KfFramework.cxx b/algo/kf/core/KfFramework.cxx index 5eb5bbbcae94ae89feedbc92dc86a83db05a99b0..ec16251f9ce7b4a51d0674be0e5383d3c1bc43ce 100644 --- a/algo/kf/core/KfFramework.cxx +++ b/algo/kf/core/KfFramework.cxx @@ -9,6 +9,8 @@ #include "KfFramework.h" +#include "AlgoFairloggerCompat.h" + using cbm::algo::kf::Framework; diff --git a/algo/log/AlgoFairloggerCompat.h b/algo/log/AlgoFairloggerCompat.h index 29098c49177aa2a979de4a2033f58898eb40d93f..4dfdddd3d6ff2dac438f2e7aa1a5a5abc72ff563 100644 --- a/algo/log/AlgoFairloggerCompat.h +++ b/algo/log/AlgoFairloggerCompat.h @@ -13,12 +13,30 @@ #endif #ifdef CBM_ONLINE_USE_FAIRLOGGER - +// #warning "Using fair version of Logger" // Keeping in source but commented out until the main problem is resolved #include <fairlogger/Logger.h> +#define L_(level) LOG(level) #else #ifndef LOG +/* + * // Keeping in source but commented out until the main problem is resolved +#warning "Using algo/???? version of Logger" + +#if defined(NO_ROOT) +#warning "Reason: NO_ROOT defined" +#endif +#if defined(__NVCC__) +#warning "Reason: __NVCC__ defined" +#endif +#if defined(__HIPCC__) +#warning "Reason: __HIPCC__ defined" +#endif +#if defined(SYCL_LANGUAGE_VERSION) +#warning "Reason: SYCL_LANGUAGE_VERSION defined" +#endif +*/ #include <log.hpp> static constexpr severity_level warn = severity_level::warning; diff --git a/analysis/common/analysis_tree_converter/steer/CMakeLists.txt b/analysis/common/analysis_tree_converter/steer/CMakeLists.txt index d417be3123a27a2470683b47324d899cb0cb6bd7..185eafc14d3ce794f4cd564b9300e3df32a39257 100644 --- a/analysis/common/analysis_tree_converter/steer/CMakeLists.txt +++ b/analysis/common/analysis_tree_converter/steer/CMakeLists.txt @@ -30,7 +30,7 @@ set(PRIVATE_DEPENDENCIES CbmSimSteer L1 KF - Algo + AlgoOffline ) generate_cbm_library() diff --git a/core/qa/CMakeLists.txt b/core/qa/CMakeLists.txt index db91d744b8152e83bf0e31ec72b80a91c83923ec..f115de3c754e01846f7da67301a72ca007a73a0f 100644 --- a/core/qa/CMakeLists.txt +++ b/core/qa/CMakeLists.txt @@ -23,29 +23,29 @@ set(SRCS checker/CbmQaCheckerObjectHandler.cxx checker/CbmQaCheckerProfile1DHandler.cxx checker/CbmQaCheckerObjectDB.cxx - report/CbmQaReportBuilder.cxx + report/CbmQaReportBuilder.cxx report/CbmQaReportBeamerEngine.cxx report/CbmQaReportLatexEngine.cxx report/CbmQaReportLatexFormat.cxx report/CbmQaReportHtmlEngine.cxx - report/CbmQaReportSection.cxx + report/CbmQaReportSection.cxx report/CbmQaReportTable.cxx ) set(HEADERS CbmQaConstants.h - report/CbmQaReportDefines.h - report/CbmQaReportElement.h - report/CbmQaReportEngine.h - report/CbmQaReportFigure.h - report/CbmQaReportHeader.h + report/CbmQaReportDefines.h + report/CbmQaReportElement.h + report/CbmQaReportEngine.h + report/CbmQaReportFigure.h + report/CbmQaReportHeader.h report/CbmQaReportTail.h ) set(LIBRARY_NAME CbmQaBase) set(LINKDEF ${LIBRARY_NAME}LinkDef.h) set(PUBLIC_DEPENDENCIES - Algo + AlgoOffline FairRoot::Base FairLogger::FairLogger external::yaml-cpp @@ -67,7 +67,7 @@ set(INTERFACE_DEPENDENCIES generate_cbm_library() -Install(FILES +Install(FILES CbmQaOnlineInterface.h CbmQaCompare.h CbmQaManager.h @@ -81,18 +81,18 @@ Install(FILES CbmQaConstants.h CbmQaCmpDrawer.h checker/CbmQaCheckerTypedefs.h - - report/CbmQaReportDefines.h + + report/CbmQaReportDefines.h report/CbmQaReportBuilder.h report/CbmQaReportLatexEngine.h report/CbmQaReportBeamerEngine.h report/CbmQaReportHtmlEngine.h report/CbmQaReportSection.h report/CbmQaReportTable.h - report/CbmQaReportElement.h - report/CbmQaReportEngine.h - report/CbmQaReportFigure.h - report/CbmQaReportHeader.h + report/CbmQaReportElement.h + report/CbmQaReportEngine.h + report/CbmQaReportFigure.h + report/CbmQaReportHeader.h report/CbmQaReportTail.h DESTINATION include ) diff --git a/core/qa/CbmQaOnlineInterface.h b/core/qa/CbmQaOnlineInterface.h index 64a48f8440a4ca48e09f5fa09c67de417952e047..3b6bed4b086ad538783dd2f650e9a394b5f28d85 100644 --- a/core/qa/CbmQaOnlineInterface.h +++ b/core/qa/CbmQaOnlineInterface.h @@ -18,7 +18,7 @@ #include "TProfile.h" #include "TProfile2D.h" -#include <log.hpp> +//#include <log.hpp> #include <type_traits> namespace diff --git a/reco/KF/KF.cmake b/reco/KF/KF.cmake index f07853a0323eca333c7aeeb6140d04d8c6367da4..1143c637c3e6d2ddbf0fcc62a3dfb2bc9796619f 100644 --- a/reco/KF/KF.cmake +++ b/reco/KF/KF.cmake @@ -9,24 +9,24 @@ set(INCLUDE_DIRECTORIES ) set(SRCS - CbmKF.cxx - CbmKFFieldMath.cxx - CbmKFHit.cxx - CbmKFMaterial.cxx - CbmKFMath.cxx - CbmKFPixelMeasurement.cxx - CbmKFPrimaryVertexFinder.cxx - CbmKFTrackInterface.cxx - CbmKFVertexInterface.cxx + CbmKF.cxx + CbmKFFieldMath.cxx + CbmKFHit.cxx + CbmKFMaterial.cxx + CbmKFMath.cxx + CbmKFPixelMeasurement.cxx + CbmKFPrimaryVertexFinder.cxx + CbmKFTrackInterface.cxx + CbmKFVertexInterface.cxx CbmKfTrackFitter.cxx CbmKfFitTracksTask.cxx - Interface/CbmKFStsHit.cxx - Interface/CbmKFTrack.cxx - Interface/CbmKFVertex.cxx - Interface/CbmPVFinderKF.cxx - Interface/CbmPVFinderKFGlobal.cxx - Interface/CbmStsKFTrackFitter.cxx + Interface/CbmKFStsHit.cxx + Interface/CbmKFTrack.cxx + Interface/CbmKFVertex.cxx + Interface/CbmPVFinderKF.cxx + Interface/CbmPVFinderKFGlobal.cxx + Interface/CbmStsKFTrackFitter.cxx ParticleFitter/CbmL1PFFitter.cxx ) @@ -57,11 +57,11 @@ EndIf() IF (SSE_FOUND) Message(STATUS "KF 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 "KF 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) @@ -69,7 +69,7 @@ ENDIF (SSE_FOUND) set(LIBRARY_NAME KF) set(LINKDEF ${LIBRARY_NAME}LinkDef.h) set(PUBLIC_DEPENDENCIES - CaCore + CaCoreOffline CbmBase CbmData CbmRecoBase diff --git a/reco/L1/CMakeLists.txt b/reco/L1/CMakeLists.txt index 1eb1b6f2e0731e2139a1968f83930cc6430cb3fa..8201ea78ec448e95585d7edb171267f7586fd47c 100644 --- a/reco/L1/CMakeLists.txt +++ b/reco/L1/CMakeLists.txt @@ -144,7 +144,7 @@ set(PUBLIC_DEPENDENCIES CbmStsBase CbmTofBase CbmTrdBase - CaCore + CaCoreOffline CbmBase CbmData CbmQaBase @@ -159,7 +159,7 @@ set(PUBLIC_DEPENDENCIES ) set(PRIVATE_DEPENDENCIES - CbmRecoSts + CbmRecoSts # <==== !!!! was bringing dependency on the "online" version of the Algo library which brought the NO_ROOT flag !!!!! CbmSimSteer CbmRecoBase KfCbm diff --git a/reco/detectors/rich/CMakeLists.txt b/reco/detectors/rich/CMakeLists.txt index 5c1eed784454e8a59ecd1036ec234b62a08fedad..b38217bac8c2bb088e46ddd26e77a288c7ad8956 100644 --- a/reco/detectors/rich/CMakeLists.txt +++ b/reco/detectors/rich/CMakeLists.txt @@ -51,7 +51,7 @@ set(NO_DICT_SRCS finder/CbmRichRingFinderHoughImpl.cxx finder/CbmRichRingFinderHough.cxx finder/CbmL1RichENNRingFinder.cxx - finder/CbmL1RichENNRingFinderParallel.cxx + finder/CbmL1RichENNRingFinderParallel.cxx fitter/CbmRichRingFitterCircle.cxx fitter/CbmRichRingFitterCOP.cxx @@ -92,7 +92,7 @@ set(PUBLIC_DEPENDENCIES CbmBase CbmData CbmRichBase - CaCore + CaCoreOffline L1 Littrack FairRoot::Base diff --git a/reco/detectors/sts/CMakeLists.txt b/reco/detectors/sts/CMakeLists.txt index 7944e331201078365e7636381fbbc691ca4fac6a..b7fd122cf56be44c71ded2d37cfab960098e5f31 100644 --- a/reco/detectors/sts/CMakeLists.txt +++ b/reco/detectors/sts/CMakeLists.txt @@ -35,7 +35,7 @@ set(SRCS set(LIBRARY_NAME CbmRecoSts) set(LINKDEF ${LIBRARY_NAME}LinkDef.h) set(PUBLIC_DEPENDENCIES - Algo + AlgoOffline CbmData CbmStsBase FairRoot::Base diff --git a/reco/offline/steer/CMakeLists.txt b/reco/offline/steer/CMakeLists.txt index 32fd4169f1e95ea9d92ffa3684ca1dbfd09387fe..a8b907183a1b72e25fb58222ae72c4e80f681ebb 100644 --- a/reco/offline/steer/CMakeLists.txt +++ b/reco/offline/steer/CMakeLists.txt @@ -7,9 +7,9 @@ set(SRCS Run.cxx TaskFactory.cxx ) - + set(INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}) - + if(OpenMP_CXX_FOUND) list(APPEND DEPENDENCIES OpenMP::OpenMP_CXX) endif() @@ -48,7 +48,7 @@ set(PRIVATE_DEPENDENCIES CbmSimSteer L1 KF - Algo + AlgoOffline ) # Check if the compiler supports std::execution in the respective STL diff --git a/reco/tasks/CMakeLists.txt b/reco/tasks/CMakeLists.txt index e16f986287de76cc2da9a0681360e50c28b01171..991210bd39038bfbeb58711f861e2ffef1f1952d 100644 --- a/reco/tasks/CMakeLists.txt +++ b/reco/tasks/CMakeLists.txt @@ -40,7 +40,7 @@ set(PUBLIC_DEPENDENCIES CbmTofBase CbmRecoSts FairRoot::Base - Algo + AlgoOffline ROOT::Core ) diff --git a/sim/response/steer/CMakeLists.txt b/sim/response/steer/CMakeLists.txt index 314b990001aabc1664c4c6d21f5b6b22a198f0df..250a00737552303b8b4753377d38b2182a0fdff3 100644 --- a/sim/response/steer/CMakeLists.txt +++ b/sim/response/steer/CMakeLists.txt @@ -25,7 +25,7 @@ set(PRIVATE_DEPENDENCIES ROOT::RHTTP CbmSimSteer CbmSimResponse - Algo + AlgoOffline ) generate_cbm_library()