diff --git a/CMakeLists.txt b/CMakeLists.txt index b34188fed86..b7676067e4b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -101,10 +101,11 @@ endif() if(WITH_ONNX) # New onnxruntime (at least 1.17.1 and above) provide a onnxruntimeConfig.cmake # and use the name onnxruntime - find_package(onnxruntime) - if (NOT onnxruntime_FOUND) + find_package(onnxruntime REQUIRED) + if (NOT TARGET onnxruntime::onnxruntime) message(STATUS "Could not find onnxruntime (> 1.17.1). Looking for an older version") - find_package(ONNXRuntime) + else() + set(onnxruntime_FOUND TRUE) endif() if(onnxruntime_FOUND OR ONNXRuntime_FOUND) diff --git a/addons/FastJet/CMakeLists.txt b/addons/FastJet/CMakeLists.txt index 05de02305c4..819ae56f3c1 100644 --- a/addons/FastJet/CMakeLists.txt +++ b/addons/FastJet/CMakeLists.txt @@ -21,7 +21,6 @@ add_custom_command(TARGET FastJet POST_BUILD install(FILES ${CMAKE_CURRENT_LIST_DIR}/ExternalRecombiner.h ${CMAKE_CURRENT_LIST_DIR}/ValenciaPlugin.h - ${CMAKE_CURRENT_LIST_DIR}/JetClustering.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/FastJet ) diff --git a/addons/ONNXRuntime/ONNXRuntime.h b/addons/ONNXRuntime/ONNXRuntime.h index 28db49fbeb5..ebc5fa3aa77 100644 --- a/addons/ONNXRuntime/ONNXRuntime.h +++ b/addons/ONNXRuntime/ONNXRuntime.h @@ -22,7 +22,7 @@ class ONNXRuntime { const std::vector& inputNames() const { return input_names_; } template - Tensor run(Tensor&, const Tensor& = {}, unsigned long long = 1ull) const; + Tensor run(Tensor&, const Tensor& = {}, unsigned long long = 1ull) const; private: size_t variablePos(const std::string&) const; diff --git a/addons/ONNXRuntime/WeaverInterface.h b/addons/ONNXRuntime/WeaverInterface.h index 6c31ba478a7..e39b15adeae 100644 --- a/addons/ONNXRuntime/WeaverInterface.h +++ b/addons/ONNXRuntime/WeaverInterface.h @@ -63,7 +63,7 @@ class WeaverInterface { std::unique_ptr onnx_; std::vector variables_names_; - ONNXRuntime::Tensor input_shapes_; + ONNXRuntime::Tensor input_shapes_; std::vector input_sizes_; std::unordered_map prep_info_map_; ONNXRuntime::Tensor data_; diff --git a/addons/ONNXRuntime/src/ONNXRuntime.cc b/addons/ONNXRuntime/src/ONNXRuntime.cc index c021a46c8ed..c3dea5d0caf 100644 --- a/addons/ONNXRuntime/src/ONNXRuntime.cc +++ b/addons/ONNXRuntime/src/ONNXRuntime.cc @@ -2,6 +2,7 @@ #include #include +#include ONNXRuntime::ONNXRuntime(const std::string& model_path, const std::vector& input_names) : env_(new Ort::Env(OrtLoggingLevel::ORT_LOGGING_LEVEL_WARNING, "onnx_runtime")), @@ -58,16 +59,16 @@ ONNXRuntime::~ONNXRuntime() {} template ONNXRuntime::Tensor ONNXRuntime::run(Tensor& input, - const Tensor& input_shapes, + const Tensor& input_shapes, unsigned long long batch_size) const { std::vector tensors_in; for (const auto& name : input_node_strings_) { auto input_pos = variablePos(name); auto value = input.begin() + input_pos; - std::vector input_dims; + std::vector< int64_t> input_dims; if (input_shapes.empty()) { - input_dims = input_node_dims_.at(name); - input_dims[0] = batch_size; + input_dims = input_node_dims_.at(name); + input_dims[0] = (int64_t) batch_size; } else { input_dims = input_shapes[input_pos]; // rely on the given input_shapes to set the batch size @@ -117,4 +118,4 @@ size_t ONNXRuntime::variablePos(const std::string& name) const { return iter - input_names_.begin(); } -template ONNXRuntime::Tensor ONNXRuntime::run(Tensor&, const Tensor&, unsigned long long) const; +template ONNXRuntime::Tensor ONNXRuntime::run(Tensor&, const Tensor&, unsigned long long) const; diff --git a/analyzers/dataframe/CMakeLists.txt b/analyzers/dataframe/CMakeLists.txt index 6b633c1d276..af5fcb49552 100644 --- a/analyzers/dataframe/CMakeLists.txt +++ b/analyzers/dataframe/CMakeLists.txt @@ -59,6 +59,7 @@ target_include_directories(FCCAnalyses PUBLIC message(STATUS " ====== DELPHES LIBRARY = " ${DELPHES_LIBRARY} ) message(STATUS " ====== DELPHES_EXTERNALS_TKCOV_INCLUDE_DIR = " ${DELPHES_EXTERNALS_TKCOV_INCLUDE_DIR} ) +message(STATUS " ====== ADDONS_LIBRARIES " ${ADDONS_LIBRARIES}) target_link_libraries(FCCAnalyses PUBLIC ROOT::Physics @@ -73,7 +74,6 @@ target_link_libraries(FCCAnalyses PUBLIC podio::podioDataSource ${ADDONS_LIBRARIES} ${DELPHES_LIBRARY} - gfortran # todo: why necessary? ) if(WITH_DD4HEP) diff --git a/analyzers/dataframe/FCCAnalyses/Algorithms.h b/analyzers/dataframe/FCCAnalyses/Algorithms.h index 9161e5c8564..7e1ef69bfe6 100644 --- a/analyzers/dataframe/FCCAnalyses/Algorithms.h +++ b/analyzers/dataframe/FCCAnalyses/Algorithms.h @@ -6,7 +6,7 @@ #include "edm4hep/ReconstructedParticleData.h" -#include "FastJet/JetClustering.h" +#include "FCCAnalyses/JetClustering.h" //#include "TFitter.h" #include "Math/Minimizer.h" diff --git a/addons/FastJet/JetClustering.h b/analyzers/dataframe/FCCAnalyses/JetClustering.h similarity index 100% rename from addons/FastJet/JetClustering.h rename to analyzers/dataframe/FCCAnalyses/JetClustering.h diff --git a/analyzers/dataframe/FCCAnalyses/JetClusteringUtils.h b/analyzers/dataframe/FCCAnalyses/JetClusteringUtils.h index ac6e4b9aeef..346f8555a82 100644 --- a/analyzers/dataframe/FCCAnalyses/JetClusteringUtils.h +++ b/analyzers/dataframe/FCCAnalyses/JetClusteringUtils.h @@ -5,7 +5,7 @@ #include "Math/Vector4D.h" #include "ROOT/RVec.hxx" -#include "FastJet/JetClustering.h" +#include "FCCAnalyses/JetClustering.h" #include "fastjet/JetDefinition.hh" #include "TRandom3.h" diff --git a/addons/FastJet/src/JetClustering.cc b/analyzers/dataframe/src/JetClustering.cc similarity index 99% rename from addons/FastJet/src/JetClustering.cc rename to analyzers/dataframe/src/JetClustering.cc index e2e5ed87658..c272884dc45 100644 --- a/addons/FastJet/src/JetClustering.cc +++ b/analyzers/dataframe/src/JetClustering.cc @@ -1,4 +1,4 @@ -#include "FastJet/JetClustering.h" +#include "FCCAnalyses/JetClustering.h" #include "FastJet/ExternalRecombiner.h" #include "FCCAnalyses/JetClusteringUtils.h" diff --git a/analyzers/dataframe/src/VertexFitterSimple.cc b/analyzers/dataframe/src/VertexFitterSimple.cc index 6144ee10871..b8dd92b28e5 100644 --- a/analyzers/dataframe/src/VertexFitterSimple.cc +++ b/analyzers/dataframe/src/VertexFitterSimple.cc @@ -16,6 +16,7 @@ namespace FCCAnalyses { namespace VertexFitterSimple { +#ifndef __APPLE__ int supress_stdout() { fflush(stdout); @@ -35,6 +36,15 @@ void resume_stdout(int fd) { std::cout << std::flush; } +#else +int supress_stdout() { + return 0; +} + +void resume_stdout(int fd) { +} +#endif + // ----------------------------------------------------------------------------- VertexingUtils::FCCAnalysesVertex VertexFitter( diff --git a/cmake/FindONNXRuntime.cmake b/cmake/FindONNXRuntime.cmake deleted file mode 100644 index ebbbd41db9d..00000000000 --- a/cmake/FindONNXRuntime.cmake +++ /dev/null @@ -1,25 +0,0 @@ -find_path(ONNXRUNTIME_INCLUDE_DIR - NAMES onnxruntime_cxx_api.h - PATH_SUFFIXES onnxruntime/core/session - HINTS $ENV{ONNXRUNTIME_ROOT_DIR}/include ${ONNXRUNTIME_ROOT_DIR}/include) - -find_library(ONNXRUNTIME_LIBRARY NAMES onnxruntime - HINTS $ENV{ONNXRUNTIME_ROOT_DIR}/lib ${ONNXRUNTIME_ROOT_DIR}/lib) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(ONNXRuntime DEFAULT_MSG ONNXRUNTIME_INCLUDE_DIR ONNXRUNTIME_LIBRARY) - -mark_as_advanced(ONNXRUNTIME_FOUND ONNXRUNTIME_INCLUDE_DIR ONNXRUNTIME_LIBRARY) - -set(ONNXRUNTIME_INCLUDE_DIRS ${ONNXRUNTIME_INCLUDE_DIR}) -set(ONNXRUNTIME_LIBRARIES ${ONNXRUNTIME_LIBRARY}) - -# Rig an onnxruntime::onnxruntime target that works similar (enough) to the one -# that can be directly found via find_package(onnxruntime) for newer versions of -# onnxruntime -add_library(onnxruntime::onnxruntime INTERFACE IMPORTED GLOBAL) -set_target_properties(onnxruntime::onnxruntime - PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${ONNXRUNTIME_INCLUDE_DIRS}" - INTERFACE_LINK_LIBRARIES "${ONNXRUNTIME_LIBRARIES}" -)