|
||||
File indexing completed on 2025-01-19 09:23:22
0001 // This file is part of the Acts project. 0002 // 0003 // Copyright (C) 2016-2018 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 http://mozilla.org/MPL/2.0/. 0008 0009 #pragma once 0010 0011 #include "Acts/Geometry/GeometryContext.hpp" 0012 #include "Acts/Utilities/BinnedArray.hpp" 0013 #include "Acts/Utilities/BinningType.hpp" 0014 0015 #include <memory> 0016 #include <vector> 0017 0018 namespace Acts { 0019 0020 class TrackingVolume; 0021 0022 /// A std::shared_ptr to a tracking volume 0023 using TrackingVolumePtr = std::shared_ptr<const TrackingVolume>; 0024 using MutableTrackingVolumePtr = std::shared_ptr<TrackingVolume>; 0025 0026 /// A BinnedArray of a std::shared_tr to a TrackingVolume 0027 using TrackingVolumeArray = BinnedArray<TrackingVolumePtr>; 0028 /// A std::vector of a std::shared_ptr to a TrackingVolume 0029 using TrackingVolumeVector = std::vector<TrackingVolumePtr>; 0030 0031 /// @class ITrackingVolumeArrayCreator 0032 /// 0033 /// Interface class ITrackingVolumeArrayCreators It inherits from IAlgTool. 0034 /// 0035 /// It is designed to centralize the code to create 0036 /// Arrays of Tracking Volumes for both: 0037 /// 0038 /// - confinement in another TrackingVolume 0039 /// - navigation and glueing 0040 /// 0041 /// Arrays for glueing and confinement are often the same, 0042 /// therefore the newly created TrackingVolumeArray is done by a shared_ptr 0043 class ITrackingVolumeArrayCreator { 0044 public: 0045 /// Virtual destructor 0046 virtual ~ITrackingVolumeArrayCreator() = default; 0047 0048 /// TrackingVolumeArrayCreator interface method - creates array depending on 0049 /// the binning type 0050 /// 0051 /// @param [in] gctx the geometry context for this building 0052 /// @param vols are the TrackingVolumes ordered in a tracker 0053 /// @param bVal is the binning value for the volume binning 0054 /// 0055 /// @return shared pointer to a new TrackingVolumeArray 0056 virtual std::shared_ptr<const TrackingVolumeArray> trackingVolumeArray( 0057 const GeometryContext& gctx, const TrackingVolumeVector& vols, 0058 BinningValue bVal) const = 0; 0059 }; 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 |