7#ifndef CALOTOWERSTORE_H
8#define CALOTOWERSTORE_H
183 Entry (
unsigned int the_hash = 0,
184 unsigned int the_windex = 0,
185 unsigned int the_ncells = 1,
186 unsigned int the_stride = 0);
211 Tower (
unsigned int the_nentries,
unsigned int the_ncells);
212 Tower (
unsigned int the_nentries,
unsigned int the_ncells,
214 unsigned int the_offs1,
unsigned int the_offs2);
233 std::vector<double>::const_iterator
weights)
277 {
return this->
m_it != other.m_it;}
282 std::vector<Entry>::const_iterator
m_it{};
295 const std::vector<Entry>::const_iterator entry,
308 if (!
m_it->backref_next)
324 std::vector<Tower>::const_iterator
m_it;
359 const std::vector<CaloCell_ID::SUBCALO>& theCalos);
364 void pushTower (
unsigned int nentries,
unsigned int ncells);
Cached value with atomic update.
This class provides the client interface for accessing the detector description information common to...
Iterator over a rectangular window of towers.
A rectangular window within the segmentation.
Data object stores CaloTower segmentation.
bool operator!=(const cell_iterator &other)
std::vector< double >::const_iterator m_weights
cell_iterator & operator++()
cell_iterator(std::vector< Entry >::const_iterator it)
std::vector< Entry >::const_iterator m_it
cell_iterator(std::vector< Entry >::const_iterator it, unsigned int n1, unsigned int offs1, unsigned int offs2, std::vector< double >::const_iterator weights)
tower_iterator(std::vector< Tower >::const_iterator it, const std::vector< Entry >::const_iterator entry, const CaloTowerStore &store)
cell_iterator lastCell() const
tower_iterator & operator++()
std::vector< Tower >::const_iterator m_it
cell_iterator firstCell() const
const CaloTowerStore & m_store
tower_iterator & operator+=(size_t offs)
std::vector< Entry >::const_iterator m_entry
~CaloTowerStore()
destructor
std::vector< Tower > m_towers
std::vector< double > m_weights
CxxUtils::CachedValue< std::vector< unsigned short > > m_entry_index
One of these for each entry in m_towers, giving the index of the corresponding entry in m_entries.
friend class tower_iterator
bool buildLookUp(const CaloDetDescrManager &theManager, const CaloTowerSeg &theTowerSeg, const std::vector< CaloCell_ID::SUBCALO > &theCalos)
setup trigger
void pushTower(unsigned int nentries, unsigned int ncells)
CaloTowerStore()
constructor
void checkEntryIndex() const
Check m_entry_index and fill it in if we haven't done so yet.
tower_iterator towers() const
CaloTowerSeg::SubSegIterator< tower_iterator > tower_subseg_iterator
std::vector< Entry > m_entries
Cached value with atomic update.
static const unsigned int windex_max
static const unsigned int stride_max
static const unsigned int hash_max
static const unsigned int stride_width
static const unsigned int ncells_max
Entry(unsigned int the_hash=0, unsigned int the_windex=0, unsigned int the_ncells=1, unsigned int the_stride=0)
static const unsigned int ncells_width
static const unsigned int hash_width
static const unsigned int windex_width
static const unsigned int nentries_width
static const unsigned int offs2_width
Tower(unsigned int the_nentries, unsigned int the_ncells)
static const unsigned int backref_next_width
static const unsigned int nentries_max
static const unsigned int offs1_width
static const unsigned int ncells_max
static const unsigned int n1_max
static const unsigned int backref_next_max
static const unsigned int ncells_width
static const unsigned int offs1_max
static const unsigned int offs2_max
static const unsigned int n1_width