Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:10:49

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 "Acts/Definitions/Algebra.hpp"
0012 #include "Acts/Utilities/HashedString.hpp"
0013 
0014 #include <any>
0015 #include <limits>
0016 #include <vector>
0017 
0018 namespace Acts {
0019 
0020 /// @class SpacePointMutableData
0021 /// This class contains mutable data associated to the
0022 /// external space points provided by the customers
0023 /// These variables are used mainly internally by the seeding algorithm, that
0024 /// reads and updates them for seed selection purposes.
0025 /// The quality is also accessed after the seeding for an additional selection
0026 /// round on the candidates
0027 class SpacePointMutableData {
0028  public:
0029   /// @brief Default constructor
0030   SpacePointMutableData() = default;
0031 
0032   /// No copies
0033   SpacePointMutableData(const SpacePointMutableData& other) = delete;
0034   SpacePointMutableData& operator=(const SpacePointMutableData& other) = delete;
0035 
0036   /// @brief Move operations
0037   SpacePointMutableData(SpacePointMutableData&& other) noexcept = default;
0038   SpacePointMutableData& operator=(SpacePointMutableData&& other) noexcept =
0039       default;
0040 
0041   /// @brief Destructor
0042   ~SpacePointMutableData() = default;
0043 
0044   /// @brief Getters
0045   float quality(const std::size_t idx) const;
0046   float deltaR(const std::size_t idx) const;
0047 
0048   /// @brief Setters
0049   void setQuality(const std::size_t idx, const float value);
0050   void setDeltaR(const std::size_t idx, const float value);
0051 
0052   /// @brief Resize vectors
0053   void resize(const std::size_t n);
0054 
0055   /// @brief clear vectors
0056   void clear();
0057 
0058  private:
0059   /// Variables
0060   std::vector<float> m_quality{};
0061   std::vector<float> m_deltaR{};
0062 };
0063 
0064 }  // namespace Acts
0065 
0066 #include "Acts/EventData/SpacePointMutableData.ipp"