 |
ATLAS Offline Software
|
Go to the documentation of this file.
2 #ifndef FPGATrackSimBinArray_H
3 #define FPGATrackSimBinArray_H
51 void setsize(
const std::vector<unsigned int> &
dims,
const T &initval)
78 const std::vector<unsigned int> &
dims()
const {
return m_dims; }
81 bool isValid(
const std::vector<unsigned int> &
idx)
const {
82 if (
idx.size() !=
m_dims.size())
return false;
83 for (
unsigned int i = 0;
i <
m_dims.size();
i++)
94 throw std::runtime_error(
"FPGATrackSimBinArray: index size does not match array dimensions");
99 for (
unsigned int i = 0;
i <
m_step.size();
i++)
103 throw std::runtime_error(
"FPGATrackSimBinArray: index out of range i=" +
std::to_string(
i) +
117 std::vector<unsigned int> idx_unsigned;
119 idx_unsigned.push_back(
d);
120 return (*
this)[idx_unsigned];
150 throw std::runtime_error(
151 "FPGATrackSimBinArray::Interator array size mismatch in "
163 for (
unsigned int i = 0;
i <
m_idx.size() - 1;
i++)
174 const std::vector<unsigned int> &
idx()
const {
return m_idx; }
188 return a.m_idx !=
b.m_idx;
243 Iterator
begin() {
return Iterator(std::vector<unsigned int>(
m_dims.size(), 0), *
this); }
246 std::vector<unsigned int> retv;
248 retv.push_back(
d - 1);
249 return ++Iterator(retv, *
this);
252 auto begin()
const {
return ConstIterator(std::vector<unsigned int>(
m_dims.size(), 0), *
this); }
255 std::vector<unsigned int> retv;
257 retv.push_back(
d - 1);
258 return ++ConstIterator(retv, *
this);
269 #endif // FPGATrackSimBinArray_H
const FPGATrackSimBinArray< T > & m_itrdata
const T & operator[](const std::vector< int > &idx) const
std::vector< unsigned int > m_dims
T & operator[](const std::vector< int > &idx)
std::string to_string(const SectorProjector proj)
ConstIterator & operator++()
ConstIterator operator++(int)
unsigned int size() const
void setsize(const std::vector< unsigned int > &dims, const T &initval)
ConstIterator(const std::vector< unsigned int > &idx, const FPGATrackSimBinArray< T > &itrdata)
friend bool operator!=(const Iterator &a, const Iterator &b)
T & operator[](const std::vector< unsigned > &idx)
Iterator(const std::vector< unsigned int > &idx, FPGATrackSimBinArray< T > &itrdata)
const std::vector< unsigned int > & idx() const
friend bool operator==(const ConstIterator &a, const ConstIterator &b)
bool isValid(const std::vector< unsigned int > &idx) const
std::vector< unsigned int > m_idx
ConstIterator & operator*()
const std::vector< T > & flatdata() const
ConstIterator * operator->()
friend bool operator!=(const ConstIterator &a, const ConstIterator &b)
const std::vector< unsigned int > & dims() const
friend bool operator==(const Iterator &a, const Iterator &b)
std::vector< unsigned int > m_step
std::forward_iterator_tag iterator_category
#define ATLAS_THREAD_SAFE
Define macros for attributes used to control the static checker.
FPGATrackSimBinArray(const std::vector< unsigned int > &dims, const T &initval)
const T & operator[](const std::vector< unsigned int > &idx) const
FPGATrackSimBinArray()=default