Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-07-12 07:51:25

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   SpacePointMutableData(SpacePointMutableData&& other) noexcept = default;
0033   SpacePointMutableData& operator=(SpacePointMutableData&& other) noexcept =
0034       default;
0035 
0036   /// @brief Destructor
0037   ~SpacePointMutableData() = default;
0038 
0039   /// @brief Getters
0040   float quality(const std::size_t idx) const;
0041   float deltaR(const std::size_t idx) const;
0042 
0043   /// @brief Setters
0044   void setQuality(const std::size_t idx, const float value);
0045   void setDeltaR(const std::size_t idx, const float value);
0046 
0047   /// @brief Resize vectors
0048   void resize(const std::size_t n);
0049 
0050   /// @brief clear vectors
0051   void clear();
0052 
0053  private:
0054   /// Variables
0055   std::vector<float> m_quality{};
0056   std::vector<float> m_deltaR{};
0057 };
0058 
0059 }  // namespace Acts
0060 
0061 #include "Acts/EventData/SpacePointMutableData.ipp"