1 #ifndef RecoTracker_TkHitPairs_IntermediateHitDoublets_h 2 #define RecoTracker_TkHitPairs_IntermediateHitDoublets_h 56 template <
typename TMP>
58 region_(region),
cache_(cache), layerSetsBegin_(begin), layerSetsEnd_(end) {}
83 template<
typename ValueType,
typename HitSetType>
94 &(iter_->layerHitMapCache()),
96 hitSets_->layerSetsBegin() + iter_->layerSetBeginIndex(),
97 hitSets_->layerSetsBegin() + iter_->layerSetEndIndex());
129 using LayerPair = std::tuple<SeedingLayerSetsHits::LayerIndex, SeedingLayerSetsHits::LayerIndex>;
144 layerPair_(layerSet[0].
index(), layerSet[1].
index()),
179 bool valid()
const {
return obj_ !=
nullptr; }
185 obj_->regions_.back().setLayerSetsEnd(obj_->layerPairs_.size());
203 void reserve(
size_t nregions,
size_t nlayersets) {
204 regions_.reserve(nregions);
205 layerPairs_.reserve(nregions*nlayersets);
209 regions_.shrink_to_fit();
210 layerPairs_.shrink_to_fit();
214 regions_.emplace_back(region, layerPairs_.size());
219 bool empty()
const {
return regions_.empty(); }
229 std::vector<RegionIndex>::const_iterator
regionsBegin()
const {
return regions_.begin(); }
230 std::vector<RegionIndex>::const_iterator
regionsEnd()
const {
return regions_.end(); }
231 std::vector<LayerPairHitDoublets>::const_iterator
layerSetsBegin()
const {
return layerPairs_.begin(); }
232 std::vector<LayerPairHitDoublets>::const_iterator
layerSetsEnd()
const {
return layerPairs_.end(); }
const_iterator & operator++()
RegionLayerSets(const TrackingRegion *region, const LayerHitMapCache *cache, const TMP *, const_iterator begin, const_iterator end)
LayerHitMapCache & layerHitMapCache()
const_iterator begin() const
unsigned int layerSetEndIndex_
index of the beginning of layer sets of this region
internal_iterator_type iter_
const_iterator operator++(int)
const LayerHitMapCache * cache_
typename std::vector< T >::const_iterator const_iterator
RegionIndex & operator=(RegionIndex &&)=default
const_iterator end() const
const const_iterator layerSetsEnd_
const_iterator cbegin() const
internal_iterator_type::difference_type difference_type
unsigned int layerSetBeginIndex() const
const TrackingRegion & region() const
Container::value_type value_type
bool operator==(const QGLikelihoodParameters &lhs, const QGLikelihoodCategory &rhs)
Test if parameters are compatible with category.
const HitSetType * hitSets_
const TrackingRegion * region_
bool operator==(const const_iterator &other) const
ValueType
Type of the value held by a Value object.
unsigned int layerSetEndIndex() const
const TrackingRegion & region() const
RegionIndex(const TrackingRegion *reg, unsigned int ind)
const LayerHitMapCache & layerHitMapCache() const
value_type operator*() const
const LayerHitMapCache & layerHitMapCache() const
unsigned short LayerIndex
const_iterator(const HitSetType *hst, internal_iterator_type iter)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
LayerHitMapCache cache_
pointer to TrackingRegion (owned elsewhere)
unsigned int layerSetBeginIndex_
const_iterator cend() const
typename std::vector< RegionIndex >::const_iterator internal_iterator_type
bool operator!=(const const_iterator &other) const
void setLayerSetsEnd(unsigned int end)
const TrackingRegion * region_
const const_iterator layerSetsBegin_