|
|
|||
File indexing completed on 2026-09-23 08:39:44
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 #include "Acts/Utilities/BinUtility.hpp" 0014 #include "ActsFatras/Digitization/Segmentizer.hpp" 0015 #include "ActsFatras/Digitization/SurfaceDrift.hpp" 0016 #include "ActsFatras/Digitization/SurfaceMask.hpp" 0017 #include "ActsFatras/EventData/Hit.hpp" 0018 0019 #include <numeric> 0020 0021 namespace Acts { 0022 class Surface; 0023 } 0024 0025 namespace ActsFatras { 0026 0027 /// @brief Class that ties the digitization modules together and produces the channels 0028 /// 0029 /// The drift and masking steps are surface-type agnostic: SurfaceDrift and 0030 /// SurfaceMask each dispatch internally on the surface type (plane / disc / 0031 /// cylinder). The resulting (already-clipped) 2-D segment is fed into the 0032 /// Segmentizer, which steps through the channel grid defined by the supplied 0033 /// BinUtility. 0034 class Channelizer { 0035 SurfaceDrift m_surfaceDrift; 0036 SurfaceMask m_surfaceMask; 0037 Segmentizer m_segmentizer; 0038 0039 public: 0040 /// Do the geometric channelizing 0041 /// 0042 /// @param hit The hit we want to channelize 0043 /// @param surface the surface on which the hit is 0044 /// @param gctx the Geometry context 0045 /// @param driftDir the drift direction 0046 /// @param segmentation the segmentation of the surface 0047 /// @param thickness the thickness of the surface 0048 /// @param minRelPerpDrift minimum relative perpendicular drift (to avoid numerical instability) 0049 /// 0050 /// @return the list of channels 0051 Acts::Result<std::vector<Segmentizer::ChannelSegment>> channelize( 0052 const Hit& hit, const Acts::Surface& surface, 0053 const Acts::GeometryContext& gctx, const Acts::Vector3& driftDir, 0054 const Acts::BinUtility& segmentation, double thickness, 0055 double minRelPerpDrift = 0.001) const; 0056 }; 0057 0058 } // namespace ActsFatras
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|