Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-14 09:20:35

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/Geometry/GeometryContext.hpp"
0013 
0014 #include <vector>
0015 
0016 namespace Acts {
0017 
0018 class Surface;
0019 
0020 /// @brief An interface for reference point generators
0021 ///
0022 /// This is used to generate reference points on surfaces e.g.
0023 /// for filling into grids.
0024 struct IReferenceGenerator {
0025   virtual ~IReferenceGenerator() = default;
0026 
0027   /// Helper to access reference positions for filling the grid
0028   ///
0029   /// @param gctx the geometry context of this operation
0030   /// @param surface the surface for which the reference points are to be accessed
0031   ///
0032   /// @return a vector of reference points for filling
0033   virtual const std::vector<Vector3> references(
0034       const GeometryContext& gctx, const Surface& surface) const = 0;
0035 };
0036 
0037 }  // namespace Acts