ATLAS Offline Software
Loading...
Searching...
No Matches
GNN_Geometry.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 TRIGINDETPATTRECOTOOLS_GNN_GEOMETRY_H
6#define TRIGINDETPATTRECOTOOLS_GNN_GEOMETRY_H
7
8#include<vector>
9#include<map>
10#include<algorithm>
11#include <memory>
14
15
17public:
18 TrigFTF_GNN_Layer(const TrigInDetSiLayer&, float, int);
20
21 int getEtaBin(float, float) const;
22
23 float getMinBinRadius(int) const;
24 float getMaxBinRadius(int) const;
25
26 int num_bins() const {return m_bins.size();}
27
28 bool verifyBin(const TrigFTF_GNN_Layer*, int, int, float, float) const;
29
31 std::vector<int> m_bins;//eta-bin indices
32 std::vector<float> m_minRadius;
33 std::vector<float> m_maxRadius;
34 std::vector<float> m_minBinCoord;
35 std::vector<float> m_maxBinCoord;
36
38
39protected:
40
42
43 float m_r1, m_z1, m_r2, m_z2;
44 int m_nBins;
45
46};
47
49public:
50 TrigFTF_GNN_Geometry(const std::vector<TrigInDetSiLayer>&, const std::unique_ptr<GNN_FasTrackConnector>&);
52
53 const TrigFTF_GNN_Layer* getTrigFTF_GNN_LayerByKey(unsigned int) const;
55 inline unsigned int getTrigFTF_GNN_LayerKeyByIndex(int idx) const {
56 return m_layerKeys[idx];
57 }
58 int num_bins() const {return m_nEtaBins;}
59 unsigned int num_layers() const {return m_layArray.size();}
60 const std::vector<std::pair<int, std::vector<int> > >& bin_groups() const {return m_binGroups;}
61
62protected:
63
65
67
68 std::map<unsigned int, TrigFTF_GNN_Layer*> m_layMap;
69 std::vector<TrigFTF_GNN_Layer*> m_layArray;
70 std::vector<unsigned int> m_layerKeys;
72
73 std::vector<std::pair<int, std::vector<int> > > m_binGroups;
74
75};
76
77
78#endif
std::vector< unsigned int > m_layerKeys
const TrigFTF_GNN_Layer * getTrigFTF_GNN_LayerByIndex(int) const
const TrigFTF_GNN_Layer * addNewLayer(const TrigInDetSiLayer &, int)
std::map< unsigned int, TrigFTF_GNN_Layer * > m_layMap
const std::vector< std::pair< int, std::vector< int > > > & bin_groups() const
TrigFTF_GNN_Geometry(const std::vector< TrigInDetSiLayer > &, const std::unique_ptr< GNN_FasTrackConnector > &)
const TrigFTF_GNN_Layer * getTrigFTF_GNN_LayerByKey(unsigned int) const
std::vector< std::pair< int, std::vector< int > > > m_binGroups
unsigned int num_layers() const
std::vector< TrigFTF_GNN_Layer * > m_layArray
unsigned int getTrigFTF_GNN_LayerKeyByIndex(int idx) const
std::vector< float > m_minBinCoord
const TrigInDetSiLayer & m_layer
std::vector< float > m_maxRadius
int getEtaBin(float, float) const
std::vector< int > m_bins
int num_bins() const
std::vector< float > m_minRadius
TrigFTF_GNN_Layer(const TrigInDetSiLayer &, float, int)
float getMinBinRadius(int) const
std::vector< float > m_maxBinCoord
float getMaxBinRadius(int) const
bool verifyBin(const TrigFTF_GNN_Layer *, int, int, float, float) const