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)
 
 SeedGeneratorFromRegionHits (OrderedHitsGenerator *aGenerator, const edm::ParameterSet &cfg, SeedComparitor *aComparitor=0)
 
 ~SeedGeneratorFromRegionHits ()
 

Private Attributes

SeedComparitortheComparitor
 
OrderedHitsGeneratortheHitsGenerator
 
SeedCreatortheSeedCreator
 

Detailed Description

Definition at line 15 of file SeedGeneratorFromRegionHits.h.

Constructor & Destructor Documentation

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

Definition at line 24 of file SeedGeneratorFromRegionHits.cc.

SeedGeneratorFromRegionHits::SeedGeneratorFromRegionHits ( OrderedHitsGenerator aGenerator,
const edm::ParameterSet cfg,
SeedComparitor aComparitor = 0 
)
SeedGeneratorFromRegionHits::~SeedGeneratorFromRegionHits ( )

Definition at line 39 of file SeedGeneratorFromRegionHits.cc.

References theComparitor, theHitsGenerator, and theSeedCreator.

40 {
41  delete theHitsGenerator;
42  delete theComparitor;
43  delete theSeedCreator;
44 }

Member Function Documentation

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

Definition at line 46 of file SeedGeneratorFromRegionHits.cc.

References OrderedHitsGenerator::clear(), SeedComparitor::compatible(), OrderedHitsGenerator::run(), OrderedSeedingHits::size(), theComparitor, theHitsGenerator, theSeedCreator, and SeedCreator::trajectorySeed().

Referenced by SeedGeneratorFromRegionHitsEDProducer::produce(), EgammaHLTRegionalPixelSeedGeneratorProducers::produce(), TSGSmart::run(), and TSGFromOrderedHits::run().

48 {
49  const OrderedSeedingHits & hitss = theHitsGenerator->run(region, ev, es);
50 
51  unsigned int nHitss = hitss.size();
52  if (seedCollection.empty()) seedCollection.reserve(nHitss); // don't do multiple reserves in the case of multiple regions: it would make things even worse
53  // as it will cause N re-allocations instead of the normal log(N)/log(2)
54  for (unsigned int iHits = 0; iHits < nHitss; ++iHits) {
55  const SeedingHitSet & hits = hitss[iHits];
56  if (!theComparitor || theComparitor->compatible( hits, es) ) {
57  theSeedCreator->trajectorySeed(seedCollection, hits, region, es);
58  }
59  }
61 }
virtual const TrajectorySeed * trajectorySeed(TrajectorySeedCollection &seedCollection, const SeedingHitSet &hits, const TrackingRegion &region, const edm::EventSetup &es)=0
virtual unsigned int size() const =0
virtual const OrderedSeedingHits & run(const TrackingRegion &reg, const edm::Event &ev, const edm::EventSetup &es)=0
virtual bool compatible(const SeedingHitSet &hits, const edm::EventSetup &es)=0

Member Data Documentation

SeedComparitor* SeedGeneratorFromRegionHits::theComparitor
private

Definition at line 40 of file SeedGeneratorFromRegionHits.h.

Referenced by run(), and ~SeedGeneratorFromRegionHits().

OrderedHitsGenerator* SeedGeneratorFromRegionHits::theHitsGenerator
private

Definition at line 39 of file SeedGeneratorFromRegionHits.h.

Referenced by run(), and ~SeedGeneratorFromRegionHits().

SeedCreator* SeedGeneratorFromRegionHits::theSeedCreator
private