|  | 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