|
|
|||
File indexing completed on 2026-07-26 08:18:25
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 <cstdint> 0012 #include <iosfwd> 0013 #include <map> 0014 #include <memory> 0015 #include <vector> 0016 0017 namespace Acts::Experimental { 0018 0019 /// Connection between two GBTS layers with binning information. 0020 struct GbtsLayerConnection { 0021 /// @param src_ Source layer index 0022 /// @param dst_ Destination layer index 0023 GbtsLayerConnection(std::uint32_t src_, std::uint32_t dst_) 0024 : src(src_), dst(dst_) {}; 0025 0026 /// Source and destination layer indices 0027 std::uint32_t src{}; 0028 /// Destination layer index 0029 std::uint32_t dst{}; 0030 0031 /// Binning table for the connection 0032 std::vector<std::int32_t> binTable; 0033 }; 0034 0035 /// Loader and container for GBTS layer connection data. 0036 struct GbtsLayerConnectionMap { 0037 public: 0038 /// Create a GbtsLayerConnectionMap from an input stream 0039 /// @param inStream Input stream containing the connection data 0040 /// @param lrtMode Enable LRT (Large Radius Tracking) mode 0041 /// @return A GbtsLayerConnectionMap instance populated with the data from the stream 0042 static GbtsLayerConnectionMap fromStream(std::istream& inStream, 0043 bool lrtMode); 0044 /// Create a GbtsLayerConnectionMap from a file 0045 /// @param inFile Input configuration file path 0046 /// @param lrtMode Enable LRT (Large Radius Tracking) mode 0047 /// @return A GbtsLayerConnectionMap instance populated with the data from the file 0048 static GbtsLayerConnectionMap fromFile(std::string& inFile, bool lrtMode); 0049 0050 /// Group of connections targeting a destination layer. 0051 struct LayerGroup { 0052 /// @param dst_ Destination layer key 0053 /// @param sources_ Vector of source connections 0054 LayerGroup(std::uint32_t dst_, 0055 const std::vector<const GbtsLayerConnection*>& sources_) 0056 : dst(dst_), sources(sources_) {}; 0057 0058 /// The target layer of the group 0059 std::uint32_t dst{}; 0060 0061 /// The source layers of the group 0062 std::vector<const GbtsLayerConnection*> sources; 0063 }; 0064 0065 /// Eta bin width 0066 float etaBinWidth{}; 0067 0068 /// Map of layer groups indexed by layer 0069 std::map<std::int32_t, std::vector<LayerGroup>> layerGroups; 0070 /// Map of connections indexed by layer 0071 std::map<std::int32_t, std::vector<std::unique_ptr<GbtsLayerConnection>>> 0072 connectionMap; 0073 }; 0074 0075 } // 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 |
|