|
|
|||
Warning, file /acts/Core/include/Acts/Surfaces/SurfacePlacementBase.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
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 namespace Acts { 0015 class Surface; 0016 /// @brief The `SurfacePlacementBase` is an API proxy to model the dynamic 0017 /// movement of the `Acts::Surface` representing e.g. the experiment's 0018 /// sensor planes. 0019 /// 0020 /// If the user wants to let the sensor surface float, he has to 0021 /// implement an experiment-specifc class inheriting from 0022 /// SurfacePlacementBase and to instantiate the surface with such an 0023 /// instance. 0024 /// 0025 /// In every call for the Surface's current position the GeometryContext 0026 /// which is also contextualized by the experiment is piped through the 0027 /// entire call stack until its piped back to the experiment specific 0028 /// implementation via the call of the 0029 /// `SurfacePlacementBase::localToGlobalTransform`. There the user needs 0030 /// to unpack the GeometryContext, look-up the appropriate cached 0031 /// transform and return it back to the Acts library 0032 class SurfacePlacementBase { 0033 public: 0034 /// @brief Virtual default constructor 0035 virtual ~SurfacePlacementBase() = default; 0036 0037 /// @brief Return the transform for the Element proxy mechanism 0038 /// 0039 /// @param gctx The current geometry context object, e.g. alignment 0040 /// @return reference to the transform to switch from the element's 0041 /// coordinates to the experiment's global coordinate system 0042 virtual const Transform3& localToGlobalTransform( 0043 const GeometryContext& gctx) const = 0; 0044 0045 /// @brief Get a reference to the surface that is associated 0046 /// with this placement element. 0047 /// @note It is expected that the surface returned will have it's @ref 0048 /// Acts::Surface::surfacePlacement method return a pointer to 0049 /// this object. 0050 /// @return Reference to a surface that represents this detector element 0051 virtual const Surface& surface() const = 0; 0052 0053 /// @copydoc surface 0054 /// @return Reference to a surface that represents this detector element 0055 virtual Surface& surface() = 0; 0056 0057 /// @brief Returns whether the placement corresponds to a surface on which 0058 /// the measurements from the experiment are represented, i.e. it is 0059 // a detector surface 0060 /// @return True if this is a sensitive surface 0061 virtual bool isSensitive() const = 0; 0062 }; 0063 } // 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 |
|