ATLAS Offline Software
Loading...
Searching...
No Matches
TrigITkAccelEDM.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRIGACCELEVENT_TRIGINDETACCELEDM_ITK_H
6#define TRIGACCELEVENT_TRIGINDETACCELEDM_ITK_H
7
8#include<cstdint>
9#include<memory>
10
11namespace TrigAccel {
12
13namespace ITk {
14
15 //A. GPU-accelerated track seeding
16
17 static constexpr unsigned int MAX_SILICON_LAYERS = 216;
18 static constexpr unsigned int MAX_NUMBER_PIX_MODULES = 6300;
19 static constexpr unsigned int MAX_NUMBER_SCT_MODULES = 24600;
20 static constexpr unsigned int MAX_NUMBER_SPACEPOINTS = 300000;
21 static constexpr unsigned int MAX_PHI_SLICES = 100;
22 static constexpr unsigned int MAX_NUMBER_OUTPUT_SEEDS = 250000;
23
24 typedef struct SiliconLayer {
25 public:
26 int m_subdet;//1 : Pixel, 2 : Strips
27 int m_type;//0: barrel, +/-n : endcap
33
35
46
52
71
88
94
107
108 //B: Graph-based track seeding algorithm implementation on GPU
109
110 static constexpr unsigned int GBTS_MAX_NUMBER_SPACEPOINTS = 350000;
111 static constexpr unsigned int GBTS_MAX_SILICON_LAYERS = 216;
112 static constexpr unsigned int GBTS_MAX_PHI_BIN = 120;
113 static constexpr unsigned int GBTS_MAX_ETA_BIN = 1000;
114 static constexpr unsigned int GBTS_MAX_ETA_BIN_PAIR = 8000;
115 static constexpr unsigned int GBTS_NODE_BUFFER_LENGTH = 250;
116 static constexpr unsigned int GBTS_MAX_NUM_NEIGHBOURS = 10;
117 static constexpr unsigned int GBTS_MAX_CCA_ITERATIONS = 20;
118 static constexpr unsigned int GBTS_MAX_SHARED_STATES = 544; //544 for 96kb of shared
119
120 //offsets for d_output_graph array
121 static constexpr unsigned char node1 = 0;
122 static constexpr unsigned char node2 = 1;
123 static constexpr unsigned char nNei = 2;
124 static constexpr unsigned char nei_idx_start = 3;
125
126 typedef struct GraphMakingInputData {
127 public:
128
130
131 float m_params[4*GBTS_MAX_NUMBER_SPACEPOINTS];//x,y,z,cluster width
132
134
135 //the views for the above storage space assuming float4 packing (x,y,z,w)
136
137 int m_layerInfo[4*GBTS_MAX_SILICON_LAYERS];//view begin, view end, num eta bins, first eta bin
138
139 //eta binning geometry of the layers
140
141 float m_layerGeo[2*GBTS_MAX_SILICON_LAYERS];//min eta, eta bin width
142
143 //eta bin pairings
144
146
147 float m_algo_params[32];//reserved space for GBTS algoritm parameters
148
150
152
154
155 typedef struct CompressedGraph {
156 public:
158 unsigned int m_nEdges;
159 unsigned int m_nMaxNeighbours;
160 unsigned int m_nLinks;
161 std::unique_ptr<int[]> m_graphArray;
162
164
165 struct Tracklet {
168 float m_Q;
169 };
170
171 typedef struct OutputSeeds {
172 public:
173 OutputSeeds() : m_nSeeds(0), m_seedsArray(nullptr) {};
174 unsigned int m_nSeeds;
175 std::unique_ptr<Tracklet[]> m_seedsArray;
176
178
184
185}
186}
187#endif
static constexpr unsigned int MAX_NUMBER_PIX_MODULES
static constexpr unsigned int GBTS_MAX_ETA_BIN_PAIR
struct TrigAccel::ITk::GraphMakingInputData GRAPH_MAKING_INPUT_DATA
static constexpr unsigned int GBTS_MAX_CCA_ITERATIONS
struct TrigAccel::ITk::SiliconLayer SILICON_LAYER
static constexpr unsigned int GBTS_MAX_NUMBER_SPACEPOINTS
static constexpr unsigned char nNei
struct TrigAccel::ITk::SeedFinderSettings SEED_FINDER_SETTINGS
static constexpr unsigned char node1
static constexpr unsigned int MAX_NUMBER_SCT_MODULES
struct TrigAccel::ITk::SpacePointStorage SPACEPOINT_STORAGE
static constexpr unsigned int MAX_NUMBER_SPACEPOINTS
static constexpr unsigned char node2
static constexpr unsigned int MAX_PHI_SLICES
struct TrigAccel::ITk::SpacePointLayerRange SPACEPOINT_LAYER_RANGE
struct TrigAccel::ITk::OutputSeeds OUTPUT_SEEDS
static constexpr unsigned int MAX_NUMBER_OUTPUT_SEEDS
static constexpr unsigned int GBTS_MAX_SHARED_STATES
static constexpr unsigned int GBTS_MAX_ETA_BIN
static constexpr unsigned int GBTS_NODE_BUFFER_LENGTH
struct TrigAccel::ITk::GraphAndSeedsOutput GRAPH_AND_SEEDS_OUTPUT
static constexpr unsigned int GBTS_MAX_NUM_NEIGHBOURS
static constexpr unsigned char nei_idx_start
static constexpr unsigned int GBTS_MAX_SILICON_LAYERS
static constexpr unsigned int MAX_SILICON_LAYERS
struct TrigAccel::ITk::CompressedGraph COMPRESSED_GRAPH
static constexpr unsigned int GBTS_MAX_PHI_BIN
struct TrigAccel::SiliconLayer SILICON_LAYER
struct TrigAccel::SeedFinderSettings SEED_FINDER_SETTINGS
struct TrigAccel::SeedMakingJob SEED_MAKING_JOB
struct TrigAccel::SpacePointLayerRange SPACEPOINT_LAYER_RANGE
struct TrigAccel::OutputSeedStorage OUTPUT_SEED_STORAGE
struct TrigAccel::SpacePointStorage SPACEPOINT_STORAGE
struct TrigAccel::DetectorModel DETECTOR_MODEL
std::unique_ptr< int[]> m_graphArray
int m_hashArray[MAX_NUMBER_PIX_MODULES+MAX_NUMBER_SCT_MODULES]
int m_middleSpacePointLayers[MAX_SILICON_LAYERS]
float m_minRZ[MAX_NUMBER_PIX_MODULES+MAX_NUMBER_SCT_MODULES]
SILICON_LAYER m_layers[MAX_SILICON_LAYERS]
float m_maxRZ[MAX_NUMBER_PIX_MODULES+MAX_NUMBER_SCT_MODULES]
int m_bin_pairs[2 *GBTS_MAX_ETA_BIN_PAIR]
int m_layerInfo[4 *GBTS_MAX_SILICON_LAYERS]
float m_layerGeo[2 *GBTS_MAX_SILICON_LAYERS]
int m_layerIdx[GBTS_MAX_SILICON_LAYERS]
float m_params[4 *GBTS_MAX_NUMBER_SPACEPOINTS]
int m_middleIndex[MAX_NUMBER_OUTPUT_SEEDS]
int m_innerIndex[MAX_NUMBER_OUTPUT_SEEDS]
float m_pT[MAX_NUMBER_OUTPUT_SEEDS]
int m_outerIndex[MAX_NUMBER_OUTPUT_SEEDS]
float m_Q[MAX_NUMBER_OUTPUT_SEEDS]
std::unique_ptr< Tracklet[]> m_seedsArray
SEED_FINDER_SETTINGS m_settings
int m_layerBegin[MAX_SILICON_LAYERS]
int m_type[MAX_NUMBER_SPACEPOINTS]
float m_clusterWidth[MAX_NUMBER_SPACEPOINTS]
float m_z[MAX_NUMBER_SPACEPOINTS]
SPACEPOINT_LAYER_RANGE m_phiSlices[MAX_PHI_SLICES]
int m_index[MAX_NUMBER_SPACEPOINTS]
float m_phi[MAX_NUMBER_SPACEPOINTS]
float m_x[MAX_NUMBER_SPACEPOINTS]
float m_covZ[MAX_NUMBER_SPACEPOINTS]
float m_covR[MAX_NUMBER_SPACEPOINTS]
float m_y[MAX_NUMBER_SPACEPOINTS]
float m_r[MAX_NUMBER_SPACEPOINTS]
int m_nodes[GBTS_MAX_CCA_ITERATIONS+1]