CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Attributes
IntermediateHitTriplets Class Reference

#include <IntermediateHitTriplets.h>

Classes

class  LayerHitTriplets
 
class  PLayerHitTriplets
 
class  RegionFiller
 Helper class enforcing correct way of filling the doublets of a region. More...
 
class  RegionLayerSets
 

Public Types

using const_iterator = ihd::const_iterator< RegionLayerSets, IntermediateHitTriplets >
 Iterator over regions. More...
 
using LayerPair = std::tuple< SeedingLayerSetsHits::LayerIndex, SeedingLayerSetsHits::LayerIndex >
 
using LayerTriplet = std::tuple< SeedingLayerSetsHits::LayerIndex, SeedingLayerSetsHits::LayerIndex, SeedingLayerSetsHits::LayerIndex >
 
using RegionIndex = ihd::RegionIndex
 

Public Member Functions

const_iterator begin () const
 
RegionFiller beginRegion (const TrackingRegion *region)
 
const_iterator cbegin () const
 
const_iterator cend () const
 
bool empty () const
 
const_iterator end () const
 
 IntermediateHitTriplets ()
 
 IntermediateHitTriplets (const IntermediateHitTriplets &rh)
 
 IntermediateHitTriplets (const SeedingLayerSetsHits *seedingLayers)
 
 IntermediateHitTriplets (IntermediateHitTriplets &&)=default
 
std::vector< PLayerHitTriplets >::const_iterator layerSetsBegin () const
 
std::vector< PLayerHitTriplets >::const_iterator layerSetsEnd () const
 
IntermediateHitTripletsoperator= (IntermediateHitTriplets &&)=default
 
std::vector< RegionIndex >::const_iterator regionsBegin () const
 
std::vector< RegionIndex >::const_iterator regionsEnd () const
 
size_t regionSize () const
 
void reserve (size_t nregions, size_t nlayersets, size_t ntriplets)
 
const SeedingLayerSetsHitsseedingLayerHits () const
 
void shrink_to_fit ()
 
std::vector< OrderedHitTriplet >::const_iterator tripletsBegin () const
 
std::vector< OrderedHitTriplet >::const_iterator tripletsEnd () const
 
size_t tripletsSize () const
 
 ~IntermediateHitTriplets ()=default
 

Static Public Member Functions

static RegionFiller dummyFiller ()
 

Private Attributes

std::vector< OrderedHitTriplethitTriplets_
 Container of layer triplets, each element has indices pointing to hitTriplets_. More...
 
std::vector< PLayerHitTripletslayerTriplets_
 Container of regions, each element has indices pointing to layerTriplets_. More...
 
std::vector< RegionIndexregions_
 Pointer to SeedingLayerSetsHits (owned elsewhere) More...
 
const SeedingLayerSetsHitsseedingLayers_
 

Detailed Description

Container of temporary information delivered from hit triplet generator to hit quadruplet generator via edm::Event.

The iterator loops over regions, the value_type of that has an iterator looping over the layer triplets of the region, and the value_type of that has an iterator looping over the hit triplets of the layer triplet.

Pointers to SeedingLayerSetsHits and TrackingRegion are stored, so the lifetime of those objects should be at least as long as the lifetime of this object.

Definition at line 22 of file IntermediateHitTriplets.h.

Member Typedef Documentation

◆ const_iterator

Iterator over regions.

Definition at line 186 of file IntermediateHitTriplets.h.

◆ LayerPair

Definition at line 24 of file IntermediateHitTriplets.h.

◆ LayerTriplet

Definition at line 26 of file IntermediateHitTriplets.h.

◆ RegionIndex

Definition at line 27 of file IntermediateHitTriplets.h.

Constructor & Destructor Documentation

◆ IntermediateHitTriplets() [1/4]

IntermediateHitTriplets::IntermediateHitTriplets ( )
inline

Definition at line 245 of file IntermediateHitTriplets.h.

245 : seedingLayers_(nullptr) {}

◆ IntermediateHitTriplets() [2/4]

IntermediateHitTriplets::IntermediateHitTriplets ( const SeedingLayerSetsHits seedingLayers)
inlineexplicit

Definition at line 246 of file IntermediateHitTriplets.h.

◆ IntermediateHitTriplets() [3/4]

IntermediateHitTriplets::IntermediateHitTriplets ( const IntermediateHitTriplets rh)

Definition at line 4 of file IntermediateHitTriplets.cc.

4  {
5  throw cms::Exception("Not Implemented") << "The copy constructor of IntermediateHitTriplets should never be called. "
6  "The function exists only to make ROOT dictionary generation happy.";
7 }

References Exception.

◆ IntermediateHitTriplets() [4/4]

IntermediateHitTriplets::IntermediateHitTriplets ( IntermediateHitTriplets &&  )
default

◆ ~IntermediateHitTriplets()

IntermediateHitTriplets::~IntermediateHitTriplets ( )
default

Member Function Documentation

◆ begin()

const_iterator IntermediateHitTriplets::begin ( void  ) const
inline

Definition at line 274 of file IntermediateHitTriplets.h.

274 { return const_iterator(this, regions_.begin()); }

References regions_.

Referenced by cbegin().

◆ beginRegion()

RegionFiller IntermediateHitTriplets::beginRegion ( const TrackingRegion region)
inline

Definition at line 264 of file IntermediateHitTriplets.h.

264  {
265  regions_.emplace_back(region, layerTriplets_.size());
266  return RegionFiller(this);
267  }

References layerTriplets_, HLT_2018_cff::region, and regions_.

◆ cbegin()

const_iterator IntermediateHitTriplets::cbegin ( ) const
inline

Definition at line 275 of file IntermediateHitTriplets.h.

275 { return begin(); }

References begin().

◆ cend()

const_iterator IntermediateHitTriplets::cend ( ) const
inline

Definition at line 277 of file IntermediateHitTriplets.h.

277 { return end(); }

References end().

◆ dummyFiller()

static RegionFiller IntermediateHitTriplets::dummyFiller ( )
inlinestatic

Definition at line 241 of file IntermediateHitTriplets.h.

241 { return RegionFiller(); }

◆ empty()

bool IntermediateHitTriplets::empty ( void  ) const
inline

Definition at line 270 of file IntermediateHitTriplets.h.

270 { return regions_.empty(); }

References regions_.

◆ end()

const_iterator IntermediateHitTriplets::end ( void  ) const
inline

Definition at line 276 of file IntermediateHitTriplets.h.

276 { return const_iterator(this, regions_.end()); }

References regions_.

Referenced by cend(), and IntermediateHitTriplets::PLayerHitTriplets::setTripletsEnd().

◆ layerSetsBegin()

std::vector<PLayerHitTriplets>::const_iterator IntermediateHitTriplets::layerSetsBegin ( ) const
inline

Definition at line 282 of file IntermediateHitTriplets.h.

282 { return layerTriplets_.begin(); }

References layerTriplets_.

◆ layerSetsEnd()

std::vector<PLayerHitTriplets>::const_iterator IntermediateHitTriplets::layerSetsEnd ( ) const
inline

Definition at line 283 of file IntermediateHitTriplets.h.

283 { return layerTriplets_.end(); }

References layerTriplets_.

◆ operator=()

IntermediateHitTriplets& IntermediateHitTriplets::operator= ( IntermediateHitTriplets &&  )
default

◆ regionsBegin()

std::vector<RegionIndex>::const_iterator IntermediateHitTriplets::regionsBegin ( ) const
inline

Definition at line 280 of file IntermediateHitTriplets.h.

280 { return regions_.begin(); }

References regions_.

◆ regionsEnd()

std::vector<RegionIndex>::const_iterator IntermediateHitTriplets::regionsEnd ( ) const
inline

Definition at line 281 of file IntermediateHitTriplets.h.

281 { return regions_.end(); }

References regions_.

◆ regionSize()

size_t IntermediateHitTriplets::regionSize ( ) const
inline

Definition at line 271 of file IntermediateHitTriplets.h.

271 { return regions_.size(); }

References regions_.

◆ reserve()

void IntermediateHitTriplets::reserve ( size_t  nregions,
size_t  nlayersets,
size_t  ntriplets 
)
inline

Definition at line 252 of file IntermediateHitTriplets.h.

252  {
253  regions_.reserve(nregions);
254  layerTriplets_.reserve(nregions * nlayersets);
255  hitTriplets_.reserve(ntriplets);
256  }

References hitTriplets_, layerTriplets_, and regions_.

◆ seedingLayerHits()

const SeedingLayerSetsHits& IntermediateHitTriplets::seedingLayerHits ( ) const
inline

Definition at line 269 of file IntermediateHitTriplets.h.

269 { return *seedingLayers_; }

References seedingLayers_.

◆ shrink_to_fit()

void IntermediateHitTriplets::shrink_to_fit ( )
inline

Definition at line 258 of file IntermediateHitTriplets.h.

258  {
259  regions_.shrink_to_fit();
260  layerTriplets_.shrink_to_fit();
261  hitTriplets_.shrink_to_fit();
262  }

References hitTriplets_, layerTriplets_, and regions_.

◆ tripletsBegin()

std::vector<OrderedHitTriplet>::const_iterator IntermediateHitTriplets::tripletsBegin ( ) const
inline

◆ tripletsEnd()

std::vector<OrderedHitTriplet>::const_iterator IntermediateHitTriplets::tripletsEnd ( ) const
inline

Definition at line 285 of file IntermediateHitTriplets.h.

285 { return hitTriplets_.end(); }

References hitTriplets_.

◆ tripletsSize()

size_t IntermediateHitTriplets::tripletsSize ( ) const
inline

Definition at line 272 of file IntermediateHitTriplets.h.

272 { return hitTriplets_.size(); }

References hitTriplets_.

Member Data Documentation

◆ hitTriplets_

std::vector<OrderedHitTriplet> IntermediateHitTriplets::hitTriplets_
private

Container of layer triplets, each element has indices pointing to hitTriplets_.

Definition at line 293 of file IntermediateHitTriplets.h.

Referenced by IntermediateHitTriplets::RegionFiller::addTriplets(), reserve(), shrink_to_fit(), tripletsBegin(), tripletsEnd(), and tripletsSize().

◆ layerTriplets_

std::vector<PLayerHitTriplets> IntermediateHitTriplets::layerTriplets_
private

Container of regions, each element has indices pointing to layerTriplets_.

Definition at line 292 of file IntermediateHitTriplets.h.

Referenced by IntermediateHitTriplets::RegionFiller::addTriplets(), beginRegion(), layerSetsBegin(), layerSetsEnd(), reserve(), and shrink_to_fit().

◆ regions_

std::vector<RegionIndex> IntermediateHitTriplets::regions_
private

◆ seedingLayers_

const SeedingLayerSetsHits* IntermediateHitTriplets::seedingLayers_
private

Definition at line 288 of file IntermediateHitTriplets.h.

Referenced by seedingLayerHits().

IntermediateHitTriplets::layerTriplets_
std::vector< PLayerHitTriplets > layerTriplets_
Container of regions, each element has indices pointing to layerTriplets_.
Definition: IntermediateHitTriplets.h:292
IntermediateHitTriplets::hitTriplets_
std::vector< OrderedHitTriplet > hitTriplets_
Container of layer triplets, each element has indices pointing to hitTriplets_.
Definition: IntermediateHitTriplets.h:293
IntermediateHitTriplets::end
const_iterator end() const
Definition: IntermediateHitTriplets.h:276
IntermediateHitTriplets::regions_
std::vector< RegionIndex > regions_
Pointer to SeedingLayerSetsHits (owned elsewhere)
Definition: IntermediateHitTriplets.h:290
IntermediateHitTriplets::seedingLayers_
const SeedingLayerSetsHits * seedingLayers_
Definition: IntermediateHitTriplets.h:288
IntermediateHitTriplets::begin
const_iterator begin() const
Definition: IntermediateHitTriplets.h:274
HLT_2018_cff.seedingLayers
seedingLayers
Definition: HLT_2018_cff.py:8534
Exception
Definition: hltDiff.cc:246
HLT_2018_cff.region
region
Definition: HLT_2018_cff.py:81479
IntermediateHitTriplets::const_iterator
ihd::const_iterator< RegionLayerSets, IntermediateHitTriplets > const_iterator
Iterator over regions.
Definition: IntermediateHitTriplets.h:186