Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-26 08:22:00

0001 /** TRACCC library, part of the ACTS project (R&D line)
0002  *
0003  * (c) 2021-2025 CERN for the benefit of the ACTS project
0004  *
0005  * Mozilla Public License Version 2.0
0006  */
0007 
0008 #pragma once
0009 
0010 // Project include(s).
0011 #include "traccc/edm/seed_collection.hpp"
0012 #include "traccc/edm/spacepoint_collection.hpp"
0013 #include "traccc/seeding/detail/seeding_config.hpp"
0014 #include "traccc/seeding/detail/spacepoint_grid.hpp"
0015 #include "traccc/utils/messaging.hpp"
0016 
0017 // VecMem include(s).
0018 #include <vecmem/memory/memory_resource.hpp>
0019 
0020 // System include(s).
0021 #include <memory>
0022 
0023 namespace traccc::host::details {
0024 
0025 /// Tool for performing seed finding from binned spacepoints
0026 class seed_finding : public messaging {
0027  public:
0028   /// Constructor for the seed finding
0029   ///
0030   /// @param find_config is seed finder configuration parameters
0031   /// @param filter_config is the seed filter configuration
0032   /// @param mr The memory resource to use
0033   ///
0034   seed_finding(const seedfinder_config& find_config,
0035                const seedfilter_config& filter_config,
0036                vecmem::memory_resource& mr,
0037                std::unique_ptr<const Logger> logger = getDummyLogger().clone());
0038   /// Move constructor
0039   seed_finding(seed_finding&&) noexcept;
0040   /// Destructor
0041   ~seed_finding();
0042 
0043   /// Move assignment operator
0044   seed_finding& operator=(seed_finding&&) noexcept;
0045 
0046   /// Callable operator for the seed finding
0047   ///
0048   /// @param spacepoints All spacepoints in the event
0049   /// @param sp_grid The same spacepoints arranged in a 2D Phi-Z grid
0050   /// @return The spacepoint triplets that form the track seeds
0051   ///
0052   edm::seed_collection::host operator()(
0053       const edm::spacepoint_collection::const_view& spacepoints,
0054       const traccc::details::spacepoint_grid_types::host& sp_grid) const;
0055 
0056  private:
0057   /// Internal implementation struct
0058   struct impl;
0059   /// Pointer to the internal implementation
0060   std::unique_ptr<impl> m_impl;
0061 
0062 };  // class seed_finding
0063 
0064 }  // namespace traccc::host::details