ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
EFTracking
FPGATrackSim
FPGATrackSimMaps
FPGATrackSimMaps
FPGATrackSimRegionMap.h
Go to the documentation of this file.
1
// Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
39
40
#ifndef FPGATrackSimREGIONMAP_H
41
#define FPGATrackSimREGIONMAP_H
42
43
#include "
FPGATrackSimMaps/FPGATrackSimPlaneMap.h
"
44
45
#include <vector>
46
#include <map>
47
#include <fstream>
48
49
class
FPGATrackSimHit
;
50
51
52
struct
FPGATrackSimRegionBoundaries
53
{
54
int
phi_min
{};
// minimum phi ID
55
int
phi_max
{};
// maximum phi ID
56
int
eta_min
{};
// minimum eta ID
57
int
eta_max
{};
// minimum eta ID
58
};
59
60
61
class
FPGATrackSimRegionMap
62
{
63
public
:
64
66
// Constructors/Initialization
67
// See doc on m_layerOverrides for info on argument layerOverrides
68
69
FPGATrackSimRegionMap
(
const
std::vector<std::unique_ptr<FPGATrackSimPlaneMap>> & pmaps, std::string
const
& filepath,
bool
m_inclusive
);
70
71
void
loadModuleIDLUT
(std::string
const
& filepath);
72
73
void
loadRadiiFile
(std::string
const
& radii_file,
unsigned
layer_offset,
unsigned
layer_max);
74
76
// Simple Getters/Setters
77
78
const
FPGATrackSimPlaneMap
*
getPlaneMap
(
int
iRegion)
const
{
return
m_pmaps
.at(iRegion).get(); }
79
80
int
getNRegions
()
const
{
return
m_nregions
; }
81
82
bool
isModuleIDLUTloaded
()
const
{
return
!
m_global_local_map
.empty(); }
83
85
// Main Interface Functions
86
87
const
FPGATrackSimRegionBoundaries
&
getRegionBoundaries
(
int
region,
int
layer,
int
section
)
const
88
{
return
m_map
.at(region).at(layer).at(
section
); }
89
90
bool
isInRegion
(uint32_t region,
const
FPGATrackSimHit
&
hit
)
const
;
91
bool
isInRegion
(uint32_t region, uint32_t plane, uint32_t
section
,
int
eta
,
int
phi
)
const
;
92
93
// Returns a list of regions that hit belongs to
94
std::vector<uint32_t>
getRegions
(
const
FPGATrackSimHit
&
hit
)
const
;
95
96
uint32_t
getUnmappedID
(uint32_t region,
const
FPGATrackSimHit
&
hit
)
const
;
97
98
// These require the module LUT file to be loaded
99
uint32_t
getLocalID
(uint32_t region, uint32_t layer, uint32_t globalModuleID)
const
;
100
uint32_t
getGlobalID
(uint32_t region, uint32_t layer, uint32_t localModuleID)
const
;
101
102
// These require the radii file to be loaded.
103
double
getAvgRadius
(
unsigned
region,
unsigned
layer)
const
;
104
const
std::vector<double>&
getAvgRadii
(
unsigned
region)
const
{
return
m_radii_map
.at(region); };
105
106
private
:
107
std::string
m_filepath
;
108
std::vector<std::unique_ptr<FPGATrackSimPlaneMap>>
const
&
m_pmaps
;
109
int
m_nregions
= 0;
110
111
std::vector<std::vector<std::vector<FPGATrackSimRegionBoundaries>>>
m_map
;
112
// Index by region, logical layer, section
113
114
std::vector<std::vector<std::map<uint32_t, uint32_t>>>
m_global_local_map
;
115
// Index by region, logical layer, globalID. Returns a local id.
116
117
std::vector<std::vector<double>>
m_radii_map
;
118
// Index by region, logical layer. Assume we DON'T have separate radii per section.
119
120
// If set, this means that we don't actually try to read the region map.
121
bool
m_inclusive
=
false
;
122
124
// Helper Functions
125
void
allocateMap
(std::ifstream & fin);
126
void
readRegion
(std::ifstream & fin,
int
expected_region);
127
};
128
129
#endif
// FPGATrackSimREGIONMAP_H
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
phi
Scalar phi() const
phi method
Definition
AmgMatrixBasePlugin.h:67
FPGATrackSimPlaneMap.h
Maps physical layers to logical layers.
hit
bool hit(const Container &ids, int pdgId)
Definition
JetIRCSafeLabelTool.cxx:64
section
void section(const std::string &sec)
Definition
TestTriggerMenuAccess.cxx:22
FPGATrackSimHit
Definition
FPGATrackSimHit.h:42
FPGATrackSimPlaneMap
Definition
FPGATrackSimPlaneMap.h:62
FPGATrackSimRegionMap::getPlaneMap
const FPGATrackSimPlaneMap * getPlaneMap(int iRegion) const
Definition
FPGATrackSimRegionMap.h:78
FPGATrackSimRegionMap::getAvgRadius
double getAvgRadius(unsigned region, unsigned layer) const
Definition
FPGATrackSimRegionMap.cxx:396
FPGATrackSimRegionMap::m_map
std::vector< std::vector< std::vector< FPGATrackSimRegionBoundaries > > > m_map
Definition
FPGATrackSimRegionMap.h:111
FPGATrackSimRegionMap::isModuleIDLUTloaded
bool isModuleIDLUTloaded() const
Definition
FPGATrackSimRegionMap.h:82
FPGATrackSimRegionMap::m_filepath
std::string m_filepath
Definition
FPGATrackSimRegionMap.h:107
FPGATrackSimRegionMap::m_pmaps
std::vector< std::unique_ptr< FPGATrackSimPlaneMap > > const & m_pmaps
Definition
FPGATrackSimRegionMap.h:108
FPGATrackSimRegionMap::m_radii_map
std::vector< std::vector< double > > m_radii_map
Definition
FPGATrackSimRegionMap.h:117
FPGATrackSimRegionMap::getLocalID
uint32_t getLocalID(uint32_t region, uint32_t layer, uint32_t globalModuleID) const
Definition
FPGATrackSimRegionMap.cxx:372
FPGATrackSimRegionMap::getNRegions
int getNRegions() const
Definition
FPGATrackSimRegionMap.h:80
FPGATrackSimRegionMap::getAvgRadii
const std::vector< double > & getAvgRadii(unsigned region) const
Definition
FPGATrackSimRegionMap.h:104
FPGATrackSimRegionMap::getUnmappedID
uint32_t getUnmappedID(uint32_t region, const FPGATrackSimHit &hit) const
Definition
FPGATrackSimRegionMap.cxx:315
FPGATrackSimRegionMap::loadRadiiFile
void loadRadiiFile(std::string const &radii_file, unsigned layer_offset, unsigned layer_max)
Definition
FPGATrackSimRegionMap.cxx:175
FPGATrackSimRegionMap::m_nregions
int m_nregions
Definition
FPGATrackSimRegionMap.h:109
FPGATrackSimRegionMap::allocateMap
void allocateMap(std::ifstream &fin)
Definition
FPGATrackSimRegionMap.cxx:68
FPGATrackSimRegionMap::getGlobalID
uint32_t getGlobalID(uint32_t region, uint32_t layer, uint32_t localModuleID) const
Definition
FPGATrackSimRegionMap.cxx:381
FPGATrackSimRegionMap::m_inclusive
bool m_inclusive
Definition
FPGATrackSimRegionMap.h:121
FPGATrackSimRegionMap::getRegionBoundaries
const FPGATrackSimRegionBoundaries & getRegionBoundaries(int region, int layer, int section) const
Definition
FPGATrackSimRegionMap.h:87
FPGATrackSimRegionMap::FPGATrackSimRegionMap
FPGATrackSimRegionMap(const std::vector< std::unique_ptr< FPGATrackSimPlaneMap > > &pmaps, std::string const &filepath, bool m_inclusive)
Definition
FPGATrackSimRegionMap.cxx:29
FPGATrackSimRegionMap::getRegions
std::vector< uint32_t > getRegions(const FPGATrackSimHit &hit) const
Definition
FPGATrackSimRegionMap.cxx:305
FPGATrackSimRegionMap::readRegion
void readRegion(std::ifstream &fin, int expected_region)
Definition
FPGATrackSimRegionMap.cxx:100
FPGATrackSimRegionMap::isInRegion
bool isInRegion(uint32_t region, const FPGATrackSimHit &hit) const
Definition
FPGATrackSimRegionMap.cxx:245
FPGATrackSimRegionMap::loadModuleIDLUT
void loadModuleIDLUT(std::string const &filepath)
Definition
FPGATrackSimRegionMap.cxx:146
FPGATrackSimRegionMap::m_global_local_map
std::vector< std::vector< std::map< uint32_t, uint32_t > > > m_global_local_map
Definition
FPGATrackSimRegionMap.h:114
FPGATrackSimRegionBoundaries
Definition
FPGATrackSimRegionMap.h:53
FPGATrackSimRegionBoundaries::eta_min
int eta_min
Definition
FPGATrackSimRegionMap.h:56
FPGATrackSimRegionBoundaries::eta_max
int eta_max
Definition
FPGATrackSimRegionMap.h:57
FPGATrackSimRegionBoundaries::phi_min
int phi_min
Definition
FPGATrackSimRegionMap.h:54
FPGATrackSimRegionBoundaries::phi_max
int phi_max
Definition
FPGATrackSimRegionMap.h:55
Generated on
for ATLAS Offline Software by
1.17.0