|
|
|||
File indexing completed on 2026-07-06 07:48:01
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 // This file is part of the Acts project. 0010 // 0011 // Copyright (C) 2016 CERN for the benefit of the ACTS project 0012 // 0013 // This Source Code Form is subject to the terms of the Mozilla Public 0014 // License, v. 2.0. If a copy of the MPL was not distributed with this 0015 // file, You can obtain one at https://mozilla.org/MPL/2.0/. 0016 0017 #pragma once 0018 0019 #include "Acts/Geometry/GeometryContext.hpp" 0020 #include "Acts/Geometry/PortalShell.hpp" 0021 #include "Acts/Geometry/StaticBlueprintNode.hpp" 0022 #include "Acts/Geometry/TrackingVolume.hpp" 0023 0024 namespace Acts::Experimental { 0025 0026 /// Wraps a single child blueprint node and pads it into a larger volume whose 0027 /// dimensions are evaluated at construction time using the child's extent plus 0028 /// a configurable envelope. 0029 /// @note This node can only have a single child. This is not an error during 0030 /// tree building, but during geometry construction. 0031 /// It defers most of the functionality to @ref Acts::Experimental::StaticBlueprintNode, 0032 /// and only implements the build phase to perform the padding. 0033 class PadBlueprintNode final : public StaticBlueprintNode { 0034 public: 0035 /// Main constructor for the padding node. 0036 /// @param name The name of the padded volume. 0037 /// @param envelope The envelope to apply to the child node's extent to create the padded volume. 0038 explicit PadBlueprintNode(const std::string& name, 0039 const ExtentEnvelope& envelope); 0040 0041 ~PadBlueprintNode() override = default; 0042 0043 /// @copydoc BlueprintNode::build 0044 /// Build-phase of the blueprint construction. Returns the padded volume. 0045 Volume& build(const BlueprintOptions& options, const GeometryContext& gctx, 0046 const Logger& logger = Acts::getDummyLogger()) override; 0047 0048 /// Get the tracking volume for this node. 0049 /// @return Pointer to the tracking volume (may be nullptr) 0050 TrackingVolume* trackingVolume() const; 0051 0052 private: 0053 ExtentEnvelope m_envelope; 0054 std::string m_name; 0055 }; 0056 0057 } // namespace Acts::Experimental
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|