Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-10-26 07:54:33

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 <vector>
0012 
0013 namespace Acts {
0014 
0015 /// @class SpacePointMutableData
0016 /// This class contains mutable data associated to the
0017 /// external space points provided by the customers
0018 /// These variables are used mainly internally by the seeding algorithm, that
0019 /// reads and updates them for seed selection purposes.
0020 /// The quality is also accessed after the seeding for an additional selection
0021 /// round on the candidates
0022 class SpacePointMutableData {
0023  public:
0024   /// @brief Default constructor
0025   SpacePointMutableData() = default;
0026 
0027   /// No copies
0028   SpacePointMutableData(const SpacePointMutableData& other) = delete;
0029   SpacePointMutableData& operator=(const SpacePointMutableData& other) = delete;
0030 
0031   /// @brief Move operations
0032   /// @param other Source object to move from
0033   SpacePointMutableData(SpacePointMutableData&& other) noexcept = default;
0034   /// Move assignment operator
0035   /// @param other Source object to move from
0036   /// @return Reference to this object after move assignment
0037   SpacePointMutableData& operator=(SpacePointMutableData&& other) noexcept =
0038       default;
0039 
0040   /// @brief Destructor
0041   ~SpacePointMutableData() = default;
0042 
0043   /// @brief Getters
0044   /// @param idx Index of the space point
0045   /// @return Quality value at the given index
0046   float quality(const std::size_t idx) const;
0047   /// Get deltaR value for space point
0048   /// @param idx Index of the space point
0049   /// @return DeltaR value at the given index
0050   float deltaR(const std::size_t idx) const;
0051 
0052   /// @brief Setters
0053   /// @param idx Index of the space point
0054   /// @param value Quality value to set
0055   void setQuality(const std::size_t idx, const float value);
0056   /// Set the delta R value for a specific space point.
0057   /// @param idx Index of the space point
0058   /// @param value Delta R value to set
0059   void setDeltaR(const std::size_t idx, const float value);
0060 
0061   /// @brief Resize vectors
0062   /// @param n New size for the vectors
0063   void resize(const std::size_t n);
0064 
0065   /// @brief clear vectors
0066   void clear();
0067 
0068  private:
0069   /// Variables
0070   std::vector<float> m_quality{};
0071   std::vector<float> m_deltaR{};
0072 };
0073 
0074 }  // namespace Acts
0075 
0076 #include "Acts/EventData/SpacePointMutableData.ipp"