|
||||
File indexing completed on 2025-01-18 09:11:02
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/EventData/SpacePointMutableData.hpp" 0012 #include "Acts/Seeding/SeedFinderConfig.hpp" 0013 0014 namespace Acts { 0015 /// @brief A partial description of a circle in u-v space. 0016 struct LinCircle { 0017 LinCircle() = default; 0018 LinCircle(float ct, float idr, float er, float u, float v, float X, float Y) 0019 : cotTheta(ct), iDeltaR(idr), Er(er), U(u), V(v), x(X), y(Y) {} 0020 0021 float cotTheta{0.}; 0022 float iDeltaR{0.}; 0023 float Er{0.}; 0024 float U{0.}; 0025 float V{0.}; 0026 float x{0.}; 0027 float y{0.}; 0028 }; 0029 0030 template <typename external_spacepoint_t, typename callable_t> 0031 LinCircle transformCoordinates(Acts::SpacePointMutableData& mutableData, 0032 const external_spacepoint_t& sp, 0033 const external_spacepoint_t& spM, bool bottom, 0034 callable_t&& extractFunction); 0035 0036 /// @brief Transform a vector of spacepoints to u-v space circles with respect 0037 /// to a given middle spacepoint. 0038 /// 0039 /// @tparam external_spacepoint_t The external spacepoint type. 0040 /// 0041 /// @param mutableData Container for mutable variables used in the seeding 0042 /// @param[in] vec The list of bottom or top spacepoints 0043 /// @param[in] spM The middle spacepoint. 0044 /// @param[in] bottom Should be true if vec are bottom spacepoints. 0045 /// @param[out] linCircleVec The output vector to write to. 0046 template <typename external_spacepoint_t> 0047 void transformCoordinates(Acts::SpacePointMutableData& mutableData, 0048 const std::vector<const external_spacepoint_t*>& vec, 0049 const external_spacepoint_t& spM, bool bottom, 0050 std::vector<LinCircle>& linCircleVec); 0051 0052 /// @brief Check the compatibility of spacepoint coordinates in xyz assuming the Bottom-Middle direction with the strip meassument details 0053 /// 0054 /// @tparam external_spacepoint_t The external spacepoint type. 0055 /// 0056 /// @param[in] config SeedFinder config containing the delegates to the strip measurement details. 0057 /// @param[in] sp Input space point used in the check. 0058 /// @param[in] spacepointPosition Spacepoint coordinates in xyz plane. 0059 /// @param[out] outputCoordinates The output vector to write to. 0060 /// @returns Boolean that says if spacepoint is compatible with being inside the detector element. 0061 template <typename external_spacepoint_t> 0062 bool xyzCoordinateCheck( 0063 const Acts::SeedFinderConfig<external_spacepoint_t>& config, 0064 const external_spacepoint_t& sp, const double* spacepointPosition, 0065 double* outputCoordinates); 0066 0067 } // namespace Acts 0068 0069 #include "Acts/Seeding/SeedFinderUtils.ipp"
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |