Loading [MathJax]/extensions/tex2jax.js
 |
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; }
84 throw std::runtime_error(
"FPGATrackSimBinArray: index size does not match array dimensions");
89 for (
unsigned int i = 0;
i <
m_step.size();
i++)
93 throw std::runtime_error(
"FPGATrackSimBinArray: index out of range i=" +
std::to_string(
i) +
107 std::vector<unsigned int> idx_unsigned;
109 idx_unsigned.push_back(
d);
110 return (*
this)[idx_unsigned];
140 throw std::runtime_error(
141 "FPGATrackSimBinArray::Interator array size mismatch in "
153 for (
unsigned int i = 0;
i <
m_idx.size() - 1;
i++)
164 const std::vector<unsigned int> &
idx()
const {
return m_idx; }
178 return a.m_idx !=
b.m_idx;
233 Iterator
begin() {
return Iterator(std::vector<unsigned int>(
m_dims.size(), 0), *
this); }
236 std::vector<unsigned int> retv;
238 retv.push_back(
d - 1);
239 return ++Iterator(retv, *
this);
242 auto begin()
const {
return ConstIterator(std::vector<unsigned int>(
m_dims.size(), 0), *
this); }
245 std::vector<unsigned int> retv;
247 retv.push_back(
d - 1);
248 return ++ConstIterator(retv, *
this);
259 #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)
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)
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)
std::string to_string(const DetectorType &type)
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