ATLAS Offline Software
TrigTrackFollowing.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef TRIGACCELEVENT_TRIGTRACKFOLLOWING_H
5 #define TRIGACCELEVENT_TRIGTRACKFOLLOWING_h
6 //GPU-accelerated track following
7 
8  static constexpr unsigned int MAX_NUMBER_PIX_HITS = 100000;
9  static constexpr unsigned int MAX_NUMBER_SCT_HITS = 100000;
10  static constexpr unsigned int MAX_NUMBER_INPUT_SEEDS = 50000;
11  static constexpr unsigned int MAX_ROAD_LENGTH = 64;
12 
13  typedef struct TrackFinderSettings {
14  public:
16  float m_magFieldZ;
22  unsigned int m_maxTripletBufferLength;
25 
26  typedef struct SiliconPlane{
27  public:
28  double m_Ax[3];
29  double m_Ay[3];
30  double m_Az[3];
31  double m_D[3];
32  double m_B[3];//magnetic field in the center
33  float m_minWidth;
34  float m_maxWidth;
35  float m_length;
36  int m_shape;
38 
39  typedef struct SctGeometryStorage {
40  public:
42  int m_dead[MAX_NUMBER_SCT_MODULES];
43  int m_type[MAX_NUMBER_SCT_MODULES];
44  SILICON_PLANE m_geoInfo[MAX_NUMBER_SCT_MODULES];
46 
47  typedef struct PixelGeometryStorage {
48  public:
50  int m_dead[MAX_NUMBER_PIX_MODULES];
51  int m_type[MAX_NUMBER_PIX_MODULES];
52  SILICON_PLANE m_geoInfo[MAX_NUMBER_PIX_MODULES];
54 
55  typedef struct PixelClusterStorage {
56  public:
58  int m_start[MAX_NUMBER_PIX_MODULES];
59  int m_end[MAX_NUMBER_PIX_MODULES];
60  float m_localX[MAX_NUMBER_PIX_HITS];
61  float m_localY[MAX_NUMBER_PIX_HITS];
62  float m_covXX[MAX_NUMBER_PIX_HITS];
63  float m_covXY[MAX_NUMBER_PIX_HITS];
64  float m_covYY[MAX_NUMBER_PIX_HITS];
66 
67  typedef struct SctClusterStorage {
68  public:
70  int m_start[MAX_NUMBER_SCT_MODULES];
71  int m_end[MAX_NUMBER_SCT_MODULES];
72  float m_localX[MAX_NUMBER_SCT_HITS];
73  float m_covXX[MAX_NUMBER_SCT_HITS];
75 
76  typedef struct ProtoTrack {
79  float m_initialParams[5];
80  int m_planeType[MAX_ROAD_LENGTH];
81  int m_planeIndex[MAX_ROAD_LENGTH];
82  int m_hitIndex[MAX_ROAD_LENGTH];
83  int m_seedPlanes[6];//max = 3 SP x 2 clusters
85 
86  typedef struct ProtoTrackStorage {
87  public:
88  int m_nSeeds;
89  PROTO_TRACK m_tracks[MAX_NUMBER_INPUT_SEEDS];
91 
92 
93  typedef struct TrackSeedStorage {
94  public:
95  int m_nSeeds;
96  int m_planeType[MAX_NUMBER_INPUT_SEEDS];
97  int m_planeIdx[MAX_NUMBER_INPUT_SEEDS];
98  int m_sp1stPlaneIndices[MAX_NUMBER_INPUT_SEEDS][3];
99  int m_sp2ndPlaneIndices[MAX_NUMBER_INPUT_SEEDS][3];
100  int m_spClusterIndices[MAX_NUMBER_INPUT_SEEDS][6];
101  float m_sp1x[MAX_NUMBER_INPUT_SEEDS];
102  float m_sp1y[MAX_NUMBER_INPUT_SEEDS];
103  float m_sp1z[MAX_NUMBER_INPUT_SEEDS];
104  float m_sp2x[MAX_NUMBER_INPUT_SEEDS];
105  float m_sp2y[MAX_NUMBER_INPUT_SEEDS];
106  float m_sp2z[MAX_NUMBER_INPUT_SEEDS];
107  float m_sp3x[MAX_NUMBER_INPUT_SEEDS];
108  float m_sp3y[MAX_NUMBER_INPUT_SEEDS];
109  float m_sp3z[MAX_NUMBER_INPUT_SEEDS];
110 
112 
113  typedef struct ExtendedTrackStateStruct2 {
114  float m_par[10];
115  float m_cov[55];
117 
118  typedef struct LocalEstimate {
119  public:
120  float m_P[5];
121  float m_J[5][5];//jacobian to get to the next plane estimate
122  float m_path;
124 
125  typedef struct TrackData {
126  public:
127  int m_status;
128  float m_chi2;
129  int m_ndof;
132  char m_stat[MAX_ROAD_LENGTH];
133  char m_validatedPlanes[MAX_ROAD_LENGTH];
134 
135  LOCAL_ESTIMATE m_E[MAX_ROAD_LENGTH];
136 
140 
141  typedef struct SeededOutput {
142  public:
143  TRACK_DATA m_data[MAX_NUMBER_INPUT_SEEDS];
145 
146  #endif
SiliconPlane
Definition: TrigTrackFollowing.h:26
TrackSeedStorage::m_sp1x
float m_sp1x[MAX_NUMBER_INPUT_SEEDS]
Definition: TrigTrackFollowing.h:101
PixelGeometryStorage
Definition: TrigTrackFollowing.h:47
TrackSeedStorage::m_planeType
int m_planeType[MAX_NUMBER_INPUT_SEEDS]
Definition: TrigTrackFollowing.h:96
TrackData::m_validatedPlanes
char m_validatedPlanes[MAX_ROAD_LENGTH]
Definition: TrigTrackFollowing.h:133
SctClusterStorage::m_localX
float m_localX[MAX_NUMBER_SCT_HITS]
Definition: TrigTrackFollowing.h:72
ProtoTrack::m_hitIndex
int m_hitIndex[MAX_ROAD_LENGTH]
Definition: TrigTrackFollowing.h:82
SiliconPlane::m_maxWidth
float m_maxWidth
Definition: TrigTrackFollowing.h:34
TrackSeedStorage::m_sp2y
float m_sp2y[MAX_NUMBER_INPUT_SEEDS]
Definition: TrigTrackFollowing.h:105
TrackData::m_firstElement
int m_firstElement
Definition: TrigTrackFollowing.h:130
TrackFinderSettings::m_tripletDoPSS
int m_tripletDoPSS
Definition: TrigTrackFollowing.h:20
TrackData::m_nValidated
int m_nValidated
Definition: TrigTrackFollowing.h:138
TrackFinderSettings::m_tripletD0Max
float m_tripletD0Max
Definition: TrigTrackFollowing.h:17
SeededOutput::m_data
TRACK_DATA m_data[MAX_NUMBER_INPUT_SEEDS]
Definition: TrigTrackFollowing.h:143
ProtoTrack::m_nElements
int m_nElements
Definition: TrigTrackFollowing.h:77
PixelClusterStorage::m_end
int m_end[MAX_NUMBER_PIX_MODULES]
Definition: TrigTrackFollowing.h:59
TrackFinderSettings::m_tripletD0_PPS_Max
float m_tripletD0_PPS_Max
Definition: TrigTrackFollowing.h:18
SctClusterStorage::m_covXX
float m_covXX[MAX_NUMBER_SCT_HITS]
Definition: TrigTrackFollowing.h:73
SctClusterStorage::m_nModules
int m_nModules
Definition: TrigTrackFollowing.h:69
SctGeometryStorage::m_geoInfo
SILICON_PLANE m_geoInfo[MAX_NUMBER_SCT_MODULES]
Definition: TrigTrackFollowing.h:44
TrackSeedStorage::m_sp3y
float m_sp3y[MAX_NUMBER_INPUT_SEEDS]
Definition: TrigTrackFollowing.h:108
TrackFinderSettings::m_magFieldZ
float m_magFieldZ
Definition: TrigTrackFollowing.h:16
TrackData::m_E
LOCAL_ESTIMATE m_E[MAX_ROAD_LENGTH]
Definition: TrigTrackFollowing.h:135
PixelClusterStorage::m_covXY
float m_covXY[MAX_NUMBER_PIX_HITS]
Definition: TrigTrackFollowing.h:63
SiliconPlane::m_B
double m_B[3]
Definition: TrigTrackFollowing.h:32
TrackFinderSettings::m_tripletPtMin
float m_tripletPtMin
Definition: TrigTrackFollowing.h:19
TrackSeedStorage::m_sp2ndPlaneIndices
int m_sp2ndPlaneIndices[MAX_NUMBER_INPUT_SEEDS][3]
Definition: TrigTrackFollowing.h:99
TrackFinderSettings::m_minEndcapPix
unsigned int m_minEndcapPix
Definition: TrigTrackFollowing.h:15
TrackData::m_status
int m_status
Definition: TrigTrackFollowing.h:127
SiliconPlane::m_D
double m_D[3]
Definition: TrigTrackFollowing.h:31
TrackSeedStorage::m_sp1z
float m_sp1z[MAX_NUMBER_INPUT_SEEDS]
Definition: TrigTrackFollowing.h:103
PixelGeometryStorage::m_dead
int m_dead[MAX_NUMBER_PIX_MODULES]
Definition: TrigTrackFollowing.h:50
TrackSeedStorage::m_spClusterIndices
int m_spClusterIndices[MAX_NUMBER_INPUT_SEEDS][6]
Definition: TrigTrackFollowing.h:100
SctGeometryStorage
Definition: TrigTrackFollowing.h:39
EXTENDED_TRACK_STATE_TYPE_2
struct ExtendedTrackStateStruct2 EXTENDED_TRACK_STATE_TYPE_2
TrackSeedStorage::m_nSeeds
int m_nSeeds
Definition: TrigTrackFollowing.h:95
SILICON_PLANE
struct SiliconPlane SILICON_PLANE
ExtendedTrackStateStruct2
Definition: TrigTrackFollowing.h:113
PixelClusterStorage
Definition: TrigTrackFollowing.h:55
SctGeometryStorage::m_type
int m_type[MAX_NUMBER_SCT_MODULES]
Definition: TrigTrackFollowing.h:43
SCT_CLUSTER_STORAGE
struct SctClusterStorage SCT_CLUSTER_STORAGE
PixelClusterStorage::m_localY
float m_localY[MAX_NUMBER_PIX_HITS]
Definition: TrigTrackFollowing.h:61
TrackSeedStorage
Definition: TrigTrackFollowing.h:93
TRACK_SEED_STORAGE
struct TrackSeedStorage TRACK_SEED_STORAGE
LocalEstimate::m_J
float m_J[5][5]
Definition: TrigTrackFollowing.h:121
ProtoTrack::m_planeType
int m_planeType[MAX_ROAD_LENGTH]
Definition: TrigTrackFollowing.h:80
ExtendedTrackStateStruct2::m_cov
float m_cov[55]
Definition: TrigTrackFollowing.h:115
SiliconPlane::m_shape
int m_shape
Definition: TrigTrackFollowing.h:36
ProtoTrackStorage
Definition: TrigTrackFollowing.h:86
SEEDED_OUTPUT
struct SeededOutput SEEDED_OUTPUT
LocalEstimate::m_P
float m_P[5]
Definition: TrigTrackFollowing.h:120
TrackFinderSettings
Definition: TrigTrackFollowing.h:13
TrackData::m_stat
char m_stat[MAX_ROAD_LENGTH]
Definition: TrigTrackFollowing.h:132
TrackFinderSettings::m_nMaxPhiSlice
int m_nMaxPhiSlice
Definition: TrigTrackFollowing.h:21
ProtoTrack::m_seedPlanes
int m_seedPlanes[6]
Definition: TrigTrackFollowing.h:83
TrackData::m_ets
EXTENDED_TRACK_STATE_TYPE_2 m_ets
Definition: TrigTrackFollowing.h:137
SeededOutput
Definition: TrigTrackFollowing.h:141
ExtendedTrackStateStruct2::m_par
float m_par[10]
Definition: TrigTrackFollowing.h:114
TrackSeedStorage::m_sp1stPlaneIndices
int m_sp1stPlaneIndices[MAX_NUMBER_INPUT_SEEDS][3]
Definition: TrigTrackFollowing.h:98
TrackSeedStorage::m_sp3z
float m_sp3z[MAX_NUMBER_INPUT_SEEDS]
Definition: TrigTrackFollowing.h:109
TrackFinderSettings::m_doubletFilterRZ
int m_doubletFilterRZ
Definition: TrigTrackFollowing.h:20
SiliconPlane::m_Ay
double m_Ay[3]
Definition: TrigTrackFollowing.h:29
TrackSeedStorage::m_sp2x
float m_sp2x[MAX_NUMBER_INPUT_SEEDS]
Definition: TrigTrackFollowing.h:104
TrackSeedStorage::m_sp3x
float m_sp3x[MAX_NUMBER_INPUT_SEEDS]
Definition: TrigTrackFollowing.h:107
TrackSeedStorage::m_sp2z
float m_sp2z[MAX_NUMBER_INPUT_SEEDS]
Definition: TrigTrackFollowing.h:106
PixelGeometryStorage::m_nModules
int m_nModules
Definition: TrigTrackFollowing.h:49
TRACK_FINDER_SETTINGS
struct TrackFinderSettings TRACK_FINDER_SETTINGS
PixelClusterStorage::m_start
int m_start[MAX_NUMBER_PIX_MODULES]
Definition: TrigTrackFollowing.h:58
SiliconPlane::m_length
float m_length
Definition: TrigTrackFollowing.h:35
SCT_GEO_STORAGE
struct SctGeometryStorage SCT_GEO_STORAGE
SctClusterStorage::m_start
int m_start[MAX_NUMBER_SCT_MODULES]
Definition: TrigTrackFollowing.h:70
ProtoTrack::m_nSeedElements
int m_nSeedElements
Definition: TrigTrackFollowing.h:78
TrackSeedStorage::m_planeIdx
int m_planeIdx[MAX_NUMBER_INPUT_SEEDS]
Definition: TrigTrackFollowing.h:97
PixelGeometryStorage::m_geoInfo
SILICON_PLANE m_geoInfo[MAX_NUMBER_PIX_MODULES]
Definition: TrigTrackFollowing.h:52
SctClusterStorage::m_end
int m_end[MAX_NUMBER_SCT_MODULES]
Definition: TrigTrackFollowing.h:71
PixelGeometryStorage::m_type
int m_type[MAX_NUMBER_PIX_MODULES]
Definition: TrigTrackFollowing.h:51
TrackData::m_chi2
float m_chi2
Definition: TrigTrackFollowing.h:128
PROTO_TRACK_STORAGE
struct ProtoTrackStorage PROTO_TRACK_STORAGE
ProtoTrack::m_planeIndex
int m_planeIndex[MAX_ROAD_LENGTH]
Definition: TrigTrackFollowing.h:81
TRACK_DATA
struct TrackData TRACK_DATA
PixelClusterStorage::m_covXX
float m_covXX[MAX_NUMBER_PIX_HITS]
Definition: TrigTrackFollowing.h:62
PixelClusterStorage::m_covYY
float m_covYY[MAX_NUMBER_PIX_HITS]
Definition: TrigTrackFollowing.h:64
SiliconPlane::m_Az
double m_Az[3]
Definition: TrigTrackFollowing.h:30
SctGeometryStorage::m_dead
int m_dead[MAX_NUMBER_SCT_MODULES]
Definition: TrigTrackFollowing.h:42
ProtoTrackStorage::m_tracks
PROTO_TRACK m_tracks[MAX_NUMBER_INPUT_SEEDS]
Definition: TrigTrackFollowing.h:89
TrackFinderSettings::m_maxEndcapPix
unsigned int m_maxEndcapPix
Definition: TrigTrackFollowing.h:15
PIXEL_CLUSTER_STORAGE
struct PixelClusterStorage PIXEL_CLUSTER_STORAGE
PIXEL_GEO_STORAGE
struct PixelGeometryStorage PIXEL_GEO_STORAGE
TrackSeedStorage::m_sp1y
float m_sp1y[MAX_NUMBER_INPUT_SEEDS]
Definition: TrigTrackFollowing.h:102
ProtoTrack
Definition: TrigTrackFollowing.h:76
SctGeometryStorage::m_nModules
int m_nModules
Definition: TrigTrackFollowing.h:41
TrackFinderSettings::m_maxTripletBufferLength
unsigned int m_maxTripletBufferLength
Definition: TrigTrackFollowing.h:22
TrackData::m_ndof
int m_ndof
Definition: TrigTrackFollowing.h:129
TrackData
Definition: TrigTrackFollowing.h:125
LocalEstimate::m_path
float m_path
Definition: TrigTrackFollowing.h:122
PixelClusterStorage::m_nModules
int m_nModules
Definition: TrigTrackFollowing.h:57
ProtoTrackStorage::m_nSeeds
int m_nSeeds
Definition: TrigTrackFollowing.h:88
PixelClusterStorage::m_localX
float m_localX[MAX_NUMBER_PIX_HITS]
Definition: TrigTrackFollowing.h:60
TrackFinderSettings::m_maxSiliconLayer
unsigned int m_maxSiliconLayer
Definition: TrigTrackFollowing.h:15
SiliconPlane::m_Ax
double m_Ax[3]
Definition: TrigTrackFollowing.h:28
LOCAL_ESTIMATE
struct LocalEstimate LOCAL_ESTIMATE
PROTO_TRACK
struct ProtoTrack PROTO_TRACK
SctClusterStorage
Definition: TrigTrackFollowing.h:67
SiliconPlane::m_minWidth
float m_minWidth
Definition: TrigTrackFollowing.h:33
TrackData::m_lastElement
int m_lastElement
Definition: TrigTrackFollowing.h:131
TrackFinderSettings::m_maxBarrelPix
unsigned int m_maxBarrelPix
Definition: TrigTrackFollowing.h:15
TrackFinderSettings::m_isFullScan
int m_isFullScan
Definition: TrigTrackFollowing.h:23
LocalEstimate
Definition: TrigTrackFollowing.h:118
ProtoTrack::m_initialParams
float m_initialParams[5]
Definition: TrigTrackFollowing.h:79