Warning, /acts/Traccc/core/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # TRACCC library, part of the ACTS project (R&D line)
0002 #
0003 # (c) 2021-2026 CERN for the benefit of the ACTS project
0004 #
0005 # Mozilla Public License Version 2.0
0006
0007 # Project include(s).
0008 include(traccc-compiler-options-cpp)
0009
0010 # Set up the "build" of the traccc::core library.
0011 traccc_add_library( traccc_core core TYPE SHARED
0012 # Common definitions.
0013 "include/traccc/definitions/track_parametrization.hpp"
0014 "include/traccc/definitions/math.hpp"
0015 "include/traccc/definitions/primitives.hpp"
0016 "include/traccc/definitions/common.hpp"
0017 "include/traccc/definitions/qualifiers.hpp"
0018 # Event data model.
0019 "include/traccc/edm/details/container_base.hpp"
0020 "include/traccc/edm/details/container_element.hpp"
0021 "include/traccc/edm/details/device_container.hpp"
0022 "include/traccc/edm/details/host_container.hpp"
0023 "include/traccc/edm/measurement_collection.hpp"
0024 "include/traccc/edm/impl/measurement_collection.ipp"
0025 "include/traccc/edm/measurement_helpers.hpp"
0026 "include/traccc/edm/impl/measurement_helpers.ipp"
0027 "include/traccc/edm/particle.hpp"
0028 "include/traccc/edm/track_parameters.hpp"
0029 "include/traccc/edm/container.hpp"
0030 "include/traccc/edm/silicon_cell_collection.hpp"
0031 "include/traccc/edm/impl/silicon_cell_collection.ipp"
0032 "include/traccc/edm/silicon_cluster_collection.hpp"
0033 "include/traccc/edm/spacepoint_collection.hpp"
0034 "include/traccc/edm/impl/spacepoint_collection.ipp"
0035 "include/traccc/edm/spacepoint_helpers.hpp"
0036 "include/traccc/edm/impl/spacepoint_helpers.ipp"
0037 "include/traccc/edm/seed_collection.hpp"
0038 "include/traccc/edm/impl/seed_collection.ipp"
0039 "include/traccc/edm/track_state_collection.hpp"
0040 "include/traccc/edm/impl/track_state_collection.ipp"
0041 "include/traccc/edm/track_state_helpers.hpp"
0042 "include/traccc/edm/impl/track_state_helpers.ipp"
0043 "include/traccc/edm/track_fit_outcome.hpp"
0044 "include/traccc/edm/track_constituent_link.hpp"
0045 "include/traccc/edm/track_collection.hpp"
0046 "include/traccc/edm/impl/track_collection.ipp"
0047 "include/traccc/edm/track_container.hpp"
0048 # Magnetic field description.
0049 "include/traccc/bfield/magnetic_field_types.hpp"
0050 "include/traccc/bfield/magnetic_field.hpp"
0051 "include/traccc/bfield/impl/magnetic_field.ipp"
0052 "include/traccc/bfield/construct_const_bfield.hpp"
0053 "include/traccc/bfield/impl/construct_const_bfield.ipp"
0054 "src/bfield/construct_const_bfield.cpp"
0055 # Geometry description.
0056 "include/traccc/geometry/detector.hpp"
0057 "include/traccc/geometry/module_map.hpp"
0058 "include/traccc/geometry/geometry.hpp"
0059 "include/traccc/geometry/pixel_data.hpp"
0060 "include/traccc/geometry/detector_design_description.hpp"
0061 "include/traccc/geometry/detector_conditions_description.hpp"
0062 # Utilities.
0063 "include/traccc/utils/algorithm.hpp"
0064 "include/traccc/utils/detray_conversion.hpp"
0065 "include/traccc/utils/impl/detray_conversion.ipp"
0066 "include/traccc/utils/type_traits.hpp"
0067 "include/traccc/utils/memory_resource.hpp"
0068 "include/traccc/utils/seed_generator.hpp"
0069 "include/traccc/utils/subspace.hpp"
0070 "include/traccc/utils/logging.hpp"
0071 "include/traccc/utils/prob.hpp"
0072 "src/utils/logging.cpp"
0073 # Clusterization algorithmic code.
0074 "include/traccc/clusterization/details/sparse_ccl.hpp"
0075 "include/traccc/clusterization/impl/sparse_ccl.ipp"
0076 "include/traccc/clusterization/sparse_ccl_algorithm.hpp"
0077 "src/clusterization/sparse_ccl_algorithm.cpp"
0078 "include/traccc/clusterization/details/measurement_creation.hpp"
0079 "include/traccc/clusterization/impl/measurement_creation.ipp"
0080 "include/traccc/clusterization/measurement_creation_algorithm.hpp"
0081 "src/clusterization/measurement_creation_algorithm.cpp"
0082 "include/traccc/clusterization/measurement_sorting_algorithm.hpp"
0083 "src/clusterization/measurement_sorting_algorithm.cpp"
0084 "include/traccc/clusterization/clusterization_algorithm.hpp"
0085 "src/clusterization/clusterization_algorithm.cpp"
0086 # Finding algorithmic code
0087 "include/traccc/finding/actors/ckf_aborter.hpp"
0088 "include/traccc/finding/actors/measurement_kalman_updater.hpp"
0089 "include/traccc/finding/details/combinatorial_kalman_filter_types.hpp"
0090 "include/traccc/finding/details/combinatorial_kalman_filter.hpp"
0091 "include/traccc/finding/details/progressive_kalman_filter_types.hpp"
0092 "include/traccc/finding/details/progressive_kalman_filter.hpp"
0093 "include/traccc/finding/details/run_progressive_kalman_filter.hpp"
0094 "include/traccc/finding/candidate_link.hpp"
0095 "include/traccc/finding/combinatorial_kalman_filter_algorithm.hpp"
0096 "include/traccc/finding/finding_config.hpp"
0097 "include/traccc/finding/measurement_selector.hpp"
0098 "src/finding/combinatorial_kalman_filter_algorithm.cpp"
0099 # Fitting algorithmic code
0100 "include/traccc/fitting/kalman_filter/gain_matrix_updater.hpp"
0101 "include/traccc/fitting/kalman_filter/kalman_actor.hpp"
0102 "include/traccc/fitting/kalman_filter/kalman_fitter.hpp"
0103 "include/traccc/fitting/kalman_filter/kalman_step_aborter.hpp"
0104 "include/traccc/fitting/kalman_filter/statistics_updater.hpp"
0105 "include/traccc/fitting/kalman_filter/two_filters_smoother.hpp"
0106 "include/traccc/fitting/details/kalman_fitting_types.hpp"
0107 "include/traccc/fitting/details/kalman_fitting.hpp"
0108 "include/traccc/fitting/kalman_smoother.hpp"
0109 "include/traccc/fitting/kalman_fitting_algorithm.hpp"
0110 "include/traccc/fitting/triplet_fit/triplet_fitter.hpp"
0111 "include/traccc/fitting/triplet_fitting_algorithm.hpp"
0112 "src/fitting/kalman_fitting_algorithm.cpp"
0113 "src/fitting/triplet_fitting_algorithm.cpp"
0114 # Seed finding algorithmic code.
0115 "include/traccc/seeding/detail/lin_circle.hpp"
0116 "include/traccc/seeding/detail/doublet.hpp"
0117 "include/traccc/seeding/detail/triplet.hpp"
0118 "include/traccc/seeding/detail/singlet.hpp"
0119 "include/traccc/seeding/detail/seeding_config.hpp"
0120 "include/traccc/seeding/detail/spacepoint_grid.hpp"
0121 "include/traccc/seeding/seed_selecting_helper.hpp"
0122 "src/seeding/seed_filtering.hpp"
0123 "src/seeding/seed_filtering.cpp"
0124 "include/traccc/seeding/seeding_algorithm.hpp"
0125 "src/seeding/seeding_algorithm.cpp"
0126 "include/traccc/seeding/track_params_estimation_helper.hpp"
0127 "include/traccc/seeding/doublet_finding_helper.hpp"
0128 "include/traccc/seeding/spacepoint_binning_helper.hpp"
0129 "include/traccc/seeding/track_params_estimation.hpp"
0130 "src/seeding/track_params_estimation.cpp"
0131 "include/traccc/seeding/triplet_finding_helper.hpp"
0132 "src/seeding/doublet_finding.hpp"
0133 "src/seeding/triplet_finding.hpp"
0134 "include/traccc/seeding/detail/seed_finding.hpp"
0135 "src/seeding/seed_finding.cpp"
0136 "include/traccc/seeding/detail/spacepoint_binning.hpp"
0137 "src/seeding/spacepoint_binning.cpp"
0138 "include/traccc/seeding/detail/spacepoint_formation.hpp"
0139 "include/traccc/seeding/impl/spacepoint_formation.ipp"
0140 "src/seeding/silicon_pixel_spacepoint_formation.hpp"
0141 "include/traccc/seeding/silicon_pixel_spacepoint_formation_algorithm.hpp"
0142 "src/seeding/silicon_pixel_spacepoint_formation_algorithm.cpp"
0143 #gbts seed finding config
0144 "include/traccc/gbts_seeding/gbts_seeding_config.hpp"
0145 "src/gbts_seeding/gbts_seeding_config.cpp"
0146 # Ambiguity resolution
0147 "include/traccc/ambiguity_resolution/ambiguity_resolution_config.hpp"
0148 "include/traccc/ambiguity_resolution/greedy_ambiguity_resolution_algorithm.hpp"
0149 "src/ambiguity_resolution/greedy_ambiguity_resolution_algorithm.cpp"
0150 "include/traccc/ambiguity_resolution/legacy/greedy_ambiguity_resolution_algorithm.hpp"
0151 "src/ambiguity_resolution/legacy/greedy_ambiguity_resolution_algorithm.cpp"
0152 )
0153 target_link_libraries(
0154 traccc_core
0155 PUBLIC
0156 vecmem::core
0157 covfie::core
0158 detray::core_array
0159 detray::detectors
0160 Acts::Core
0161 )
0162
0163 string(REPLACE ";" ", " TRACCC_DETECTOR_TYPES "${TRACCC_SUPPORTED_DETECTORS}")
0164 message(STATUS "Building with detector types: ${TRACCC_DETECTOR_TYPES}")
0165 configure_file(
0166 "${CMAKE_CURRENT_SOURCE_DIR}/include/traccc/geometry/detector_type_list.hpp.in"
0167 "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/include/traccc/geometry/detector_type_list.hpp"
0168 @ONLY
0169 )
0170
0171 target_include_directories(
0172 traccc_core
0173 PUBLIC
0174 $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/include>
0175 )
0176
0177 install(
0178 DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/include/"
0179 DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
0180 )
0181
0182 # Any client that wants to use traccc::core with nvcc, needs to use the
0183 # "--expt-relaxed-constexpr" flag. Otherwise nvcc has a tendency to generate
0184 # invalid code.
0185 target_compile_options(
0186 traccc_core
0187 INTERFACE
0188 $<$<AND:$<CUDA_COMPILER_ID:NVIDIA>,$<COMPILE_LANGUAGE:CUDA>>:--expt-relaxed-constexpr>
0189 )