CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
SeedGeneratorFromRegionHits Class Reference

#include <SeedGeneratorFromRegionHits.h>

Public Member Functions

void run (TrajectorySeedCollection &seedCollection, const TrackingRegion &region, const edm::Event &ev, const edm::EventSetup &es)
 
 SeedGeneratorFromRegionHits (OrderedHitsGenerator *aGenerator, SeedComparitor *aComparitor=0, SeedCreator *aSeedCreator=0)
 

Private Attributes

std::unique_ptr< SeedComparitortheComparitor
 
std::unique_ptr
< OrderedHitsGenerator
theHitsGenerator
 
std::unique_ptr< SeedCreatortheSeedCreator
 

Detailed Description

Definition at line 17 of file SeedGeneratorFromRegionHits.h.

Constructor & Destructor Documentation

SeedGeneratorFromRegionHits::SeedGeneratorFromRegionHits ( OrderedHitsGenerator aGenerator,
SeedComparitor aComparitor = 0,
SeedCreator aSeedCreator = 0 
)

Definition at line 10 of file SeedGeneratorFromRegionHits.cc.

13 { }
std::unique_ptr< SeedComparitor > theComparitor
std::unique_ptr< SeedCreator > theSeedCreator
std::unique_ptr< OrderedHitsGenerator > theHitsGenerator

Member Function Documentation

void SeedGeneratorFromRegionHits::run ( TrajectorySeedCollection seedCollection,
const TrackingRegion region,
const edm::Event ev,
const edm::EventSetup es 
)

Definition at line 16 of file SeedGeneratorFromRegionHits.cc.

References OrderedSeedingHits::size(), theComparitor, theHitsGenerator, and theSeedCreator.

Referenced by TSGSmart::run(), and TSGFromOrderedHits::run().

18 {
19  if (theComparitor) theComparitor->init(es);
20  theSeedCreator->init(region, es, theComparitor.get());
21  const OrderedSeedingHits & hitss = theHitsGenerator->run(region, ev, es);
22 
23  unsigned int nHitss = hitss.size();
24  if (seedCollection.empty()) seedCollection.reserve(nHitss); // don't do multiple reserves in the case of multiple regions: it would make things even worse
25  // as it will cause N re-allocations instead of the normal log(N)/log(2)
26  for (unsigned int iHits = 0; iHits < nHitss; ++iHits) {
27  const SeedingHitSet & hits = hitss[iHits];
28  if (!theComparitor || theComparitor->compatible(hits, region) ) {
29  theSeedCreator->makeSeed(seedCollection, hits);
30  }
31  }
32  theHitsGenerator->clear();
33 }
virtual unsigned int size() const =0
std::unique_ptr< SeedComparitor > theComparitor
std::unique_ptr< SeedCreator > theSeedCreator
std::unique_ptr< OrderedHitsGenerator > theHitsGenerator

Member Data Documentation

std::unique_ptr<SeedComparitor> SeedGeneratorFromRegionHits::theComparitor
private

Definition at line 33 of file SeedGeneratorFromRegionHits.h.

Referenced by run().

std::unique_ptr<OrderedHitsGenerator> SeedGeneratorFromRegionHits::theHitsGenerator
private

Definition at line 32 of file SeedGeneratorFromRegionHits.h.

Referenced by run().

std::unique_ptr<SeedCreator> SeedGeneratorFromRegionHits::theSeedCreator
private

Definition at line 34 of file SeedGeneratorFromRegionHits.h.

Referenced by run().