Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-06 07:48:50

0001 // This file is part of the ACTS project.
0002 //
0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
0008 
0009 #pragma once
0010 
0011 #include <array>
0012 #include <limits>
0013 
0014 namespace Acts {
0015 
0016 /// Seed built from N external space points.
0017 /// @deprecated This EDM will be removed in one of the next major
0018 /// releases and is replaced by the new SeedContainer and proxies.
0019 /// See @ref SeedContainer2 and @ref SeedProxy2 for details.
0020 template <typename external_space_point_t, std::size_t N = 3ul>
0021 class [[deprecated(
0022     "Will be dropped soon and is replaced by the new SeedContainer and "
0023     "proxies")]] Seed {
0024   static_assert(N >= 3ul);
0025 
0026  public:
0027   /// Type of the external space point
0028   using value_type = external_space_point_t;
0029   /// Number of space points in the seed
0030   static constexpr std::size_t DIM = N;
0031 
0032   /// Constructor from N space points
0033   /// @param points The space points to build the seed from
0034   template <typename... args_t>
0035     requires(sizeof...(args_t) == N) &&
0036             (std::same_as<external_space_point_t, args_t> && ...)
0037   explicit Seed(const args_t&... points);
0038 
0039   /// Set the z-coordinate of the vertex
0040   /// @param vertex The vertex z-coordinate
0041   void setVertexZ(float vertex);
0042   /// Set the quality of the seed
0043   /// @param seedQuality The seed quality value
0044   void setQuality(float seedQuality);
0045 
0046   /// Get the space points in the seed
0047   /// @return Array of pointers to the space points
0048   const std::array<const external_space_point_t*, N>& sp() const;
0049   /// Get the z-coordinate of the vertex
0050   /// @return The vertex z-coordinate
0051   float z() const;
0052   /// Get the quality of the seed
0053   /// @return The seed quality value
0054   float seedQuality() const;
0055 
0056  private:
0057   std::array<const external_space_point_t*, N> m_spacePoints{};
0058   float m_vertexZ{0.f};
0059   float m_seedQuality{-std::numeric_limits<float>::infinity()};
0060 };
0061 
0062 }  // namespace Acts
0063 
0064 #include "Acts/EventData/Seed.ipp"