This class associates to an ordered pairs of normalized local coordinates a compact sector id.
More...
#include <SectorsOnSensor.h>
|
| SectorsOnSensor () |
| Default constructor needed for the vector traits.
|
|
| SectorsOnSensor (const std::vector< double > &normalizedUsup, const std::vector< double > &normalizedVsup, const std::vector< std::vector< FullSecID > > &fullSecIDs) |
| Useful constructor.
|
|
| ~SectorsOnSensor () |
| Destructor of the object.
|
|
FullSecID | operator() (double normalizedU, double normalizedV) const |
| Returns the Full Sector ID of the sector on this sensor that contains the point at normalized coordinates U, V.
|
|
void | get (std::vector< double > *normalizedUsup, std::vector< double > *normalizedVsup, std::vector< std::vector< unsigned int > > *secID) const |
| copy the vector members on the vector pointed from the arguments.
|
|
bool | areCoordinatesValid (double normalizedU, double normalizedV) const |
| check if using operator() would be safe (true if it is safe):
|
|
sectorID & | operator[] (int index) |
| minimal vector semantics to access the compactSecIDs vector using the sector
|
|
const sectorID & | operator[] (int index) const |
| minimal vector semantics to access the compactSecIDs vector
|
|
size_t | size () const |
| minimal vector semantics to get the size of the compactSecIDs vector
|
|
void | resize (size_t n) |
| minimal vector semantics to resize the compactSecIDs vector
|
|
bool | updateSubLayerID (FullSecID sector, int sublayer) |
| update the sublayer id for the sector with the given FullSecID, the sublayer id is ignored when searching for the sector
|
|
const std::vector< sectorID > & | getCompactSecIDs () const |
| JKL: for testing - get all compactSecIDs:
|
|
|
typedef unsigned char | index_t |
| Typedef for the internal numbering of rows and columns of the sectors.
|
|
|
std::map< double, index_t > | m_normalizedUsup |
| Upper limits of the sectors in normalized U coordinates.
|
|
std::map< double, index_t > | m_normalizedVsup |
| Upper limits of the sectors in normalized V coordinates.
|
|
std::vector< std::vector< FullSecID > > | m_fullSecIDs |
| The 2D array of the full sec ID is stored in this member.
|
|
std::vector< sectorID > | m_compactSecIDs |
| The 1D array of the compact ID is stored in this member.
|
|
template<class sectorID>
class Belle2::SectorsOnSensor< sectorID >
This class associates to an ordered pairs of normalized local coordinates a compact sector id.
Definition at line 26 of file SectorsOnSensor.h.
◆ index_t
Typedef for the internal numbering of rows and columns of the sectors.
Definition at line 29 of file SectorsOnSensor.h.
◆ SectorsOnSensor() [1/2]
Default constructor needed for the vector traits.
Definition at line 48 of file SectorsOnSensor.h.
◆ SectorsOnSensor() [2/2]
SectorsOnSensor |
( |
const std::vector< double > & |
normalizedUsup, |
|
|
const std::vector< double > & |
normalizedVsup, |
|
|
const std::vector< std::vector< FullSecID > > & |
fullSecIDs |
|
) |
| |
|
inline |
Useful constructor.
Definition at line 51 of file SectorsOnSensor.h.
55 {
57
58 for (auto Vsup : normalizedVsup)
61
62 index = 0;
63 for (auto Usup : normalizedUsup)
65
67
69
70 }
std::map< double, index_t > m_normalizedVsup
Upper limits of the sectors in normalized V coordinates.
std::vector< std::vector< FullSecID > > m_fullSecIDs
The 2D array of the full sec ID is stored in this member.
unsigned char index_t
Typedef for the internal numbering of rows and columns of the sectors.
std::map< double, index_t > m_normalizedUsup
Upper limits of the sectors in normalized U coordinates.
◆ ~SectorsOnSensor()
◆ areCoordinatesValid()
bool areCoordinatesValid |
( |
double |
normalizedU, |
|
|
double |
normalizedV |
|
) |
| const |
|
inline |
check if using operator() would be safe (true if it is safe):
Definition at line 131 of file SectorsOnSensor.h.
132 {
133
134 if ((normalizedU < 0.) or (normalizedU > 1.)) return false;
135 if ((normalizedV < 0.) or (normalizedV > 1.)) return false;
136
138 return false;
139
141 return false;
142
143 return true;
144 }
◆ get()
void get |
( |
std::vector< double > * |
normalizedUsup, |
|
|
std::vector< double > * |
normalizedVsup, |
|
|
std::vector< std::vector< unsigned int > > * |
secID |
|
) |
| const |
|
inline |
copy the vector members on the vector pointed from the arguments.
- Parameters
-
normalizedUsup | |
normalizedVsup | |
secID | |
Definition at line 107 of file SectorsOnSensor.h.
110 {
111
113 if (uIndexPair.first != FLT_MAX)
114 normalizedUsup->push_back(uIndexPair.first);
115
116
118 if (vIndexPair.first != FLT_MAX)
119 normalizedVsup->push_back(vIndexPair.first);
120
121
123 std::vector< unsigned int > tmp_col;
124 for (auto id : col)
125 tmp_col.push_back(id);
126 secID->push_back(tmp_col);
127 }
128 }
◆ getCompactSecIDs()
const std::vector< sectorID > & getCompactSecIDs |
( |
| ) |
const |
|
inline |
JKL: for testing - get all compactSecIDs:
Definition at line 179 of file SectorsOnSensor.h.
std::vector< sectorID > m_compactSecIDs
The 1D array of the compact ID is stored in this member.
◆ operator()()
FullSecID operator() |
( |
double |
normalizedU, |
|
|
double |
normalizedV |
|
) |
| const |
|
inline |
Returns the Full Sector ID of the sector on this sensor that contains the point at normalized coordinates U, V.
Definition at line 77 of file SectorsOnSensor.h.
78 {
79
80 if (normalizedU < 0. or normalizedU > 1.)
81 return FullSecID(0);
82 if (normalizedV < 0. or normalizedV > 1.)
83 return FullSecID(0);
84
87 return FullSecID(0);
88
91 return FullSecID(0);
92
93
94 auto uIndex = uKeyVal->second;
95 auto vIndex = vKeyVal->second;
96
98 }
◆ operator[]() [1/2]
sectorID & operator[] |
( |
int |
index | ) |
|
|
inline |
minimal vector semantics to access the compactSecIDs vector using the sector
- Parameters
-
Definition at line 149 of file SectorsOnSensor.h.
◆ operator[]() [2/2]
const sectorID & operator[] |
( |
int |
index | ) |
const |
|
inline |
minimal vector semantics to access the compactSecIDs vector
Definition at line 152 of file SectorsOnSensor.h.
◆ resize()
minimal vector semantics to resize the compactSecIDs vector
Definition at line 158 of file SectorsOnSensor.h.
◆ size()
minimal vector semantics to get the size of the compactSecIDs vector
Definition at line 155 of file SectorsOnSensor.h.
◆ updateSubLayerID()
bool updateSubLayerID |
( |
FullSecID |
sector, |
|
|
int |
sublayer |
|
) |
| |
|
inline |
update the sublayer id for the sector with the given FullSecID, the sublayer id is ignored when searching for the sector
- Parameters
-
sector | FullSecID of the sector to be updated |
sublayer | : the new value for the sublayer ID, the new SubLayerID will be 0 if sublayer==0, and will be 1 else |
WARNING: the comparison will ignore the sublayer id
Definition at line 164 of file SectorsOnSensor.h.
165 {
167 for (FullSecID& thisSecID : v) {
169 if (sector.equalIgnoreSubLayerID(thisSecID)) {
170 thisSecID = FullSecID(thisSecID.getVxdID(), (bool)sublayer, thisSecID.getSecID());
171 return true;
172 }
173 }
174 }
175 return false;
176 }
◆ m_compactSecIDs
std::vector< sectorID > m_compactSecIDs |
|
private |
The 1D array of the compact ID is stored in this member.
It is indexed by the sector component on the FullSecID
Definition at line 43 of file SectorsOnSensor.h.
◆ m_fullSecIDs
std::vector< std::vector < FullSecID > > m_fullSecIDs |
|
private |
The 2D array of the full sec ID is stored in this member.
It is indexed by discretized normalized U V pairs
Definition at line 39 of file SectorsOnSensor.h.
◆ m_normalizedUsup
std::map<double, index_t> m_normalizedUsup |
|
private |
Upper limits of the sectors in normalized U coordinates.
Definition at line 32 of file SectorsOnSensor.h.
◆ m_normalizedVsup
std::map<double, index_t> m_normalizedVsup |
|
private |
Upper limits of the sectors in normalized V coordinates.
Definition at line 35 of file SectorsOnSensor.h.
The documentation for this class was generated from the following file: