|
|
|||
File indexing completed on 2025-11-05 08:53: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 <any> 0012 0013 namespace Acts { 0014 0015 class Surface; 0016 0017 namespace Experimental { 0018 0019 class Portal; 0020 class DetectorVolume; 0021 0022 /// @brief This is the interface for generating geometry ids and assign them 0023 /// to detector volumes, portals and surfaces 0024 /// 0025 class IGeometryIdGenerator { 0026 public: 0027 /// Type alias for geometry ID cache storage 0028 using GeoIdCache = std::any; 0029 0030 virtual ~IGeometryIdGenerator() = default; 0031 0032 /// @brief Virtual interface method to generate a geometry id cache 0033 /// @return a geometry id cache wrapped in a std::any object 0034 virtual GeoIdCache generateCache() const = 0; 0035 0036 /// The virtual interface definition for assigning a geometry id to 0037 /// a detector volume 0038 /// 0039 /// @param cache is the cache object for e.g. object counting 0040 /// @param dVolume the detector volume to assign the geometry id to 0041 virtual void assignGeometryId(GeoIdCache& cache, 0042 DetectorVolume& dVolume) const = 0; 0043 0044 /// The virtual interface definition for assigning a geometry id to 0045 /// a portal 0046 /// 0047 /// @param cache is the cache object for e.g. object counting 0048 /// @param portal the portal to assign the geometry id to 0049 virtual void assignGeometryId(GeoIdCache& cache, Portal& portal) const = 0; 0050 0051 /// @brief The virtual interface definition for assigning a geometry id to 0052 /// a surface 0053 /// 0054 /// @param cache is the cache object for e.g. object counting 0055 /// @param surface the surface to assign the geometry id to 0056 virtual void assignGeometryId(GeoIdCache& cache, Surface& surface) const = 0; 0057 }; 0058 0059 } // namespace Experimental 0060 } // namespace Acts
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|