CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SeedGeneratorFromRegionHits.cc
Go to the documentation of this file.
2 
6 
11 
12 
14 
15 #include <vector>
16 
19 
20 namespace {
21  template <class T> T sqr( T t) {return t*t;}
22 }
23 
26  : theHitsGenerator(ohg), theComparitor(asc), theSeedCreator(asp)
27 { }
28 
29 
31 {
32  delete theHitsGenerator;
33  delete theComparitor;
34  delete theSeedCreator;
35 }
36 
38  const TrackingRegion & region, const edm::Event& ev, const edm::EventSetup& es)
39 {
41  const OrderedSeedingHits & hitss = theHitsGenerator->run(region, ev, es);
42 
43  unsigned int nHitss = hitss.size();
44  if (seedCollection.empty()) seedCollection.reserve(nHitss); // don't do multiple reserves in the case of multiple regions: it would make things even worse
45  // as it will cause N re-allocations instead of the normal log(N)/log(2)
46  for (unsigned int iHits = 0; iHits < nHitss; ++iHits) {
47  const SeedingHitSet & hits = hitss[iHits];
48  if (!theComparitor || theComparitor->compatible(hits, region) ) {
49  theSeedCreator->trajectorySeed(seedCollection, hits, region, es, theComparitor);
50  }
51  }
53 }
virtual unsigned int size() const =0
SeedGeneratorFromRegionHits(OrderedHitsGenerator *aGenerator, SeedComparitor *aComparitor=0, SeedCreator *aSeedCreator=0)
virtual bool compatible(const SeedingHitSet &hits, const TrackingRegion &region) const =0
virtual void init(const edm::EventSetup &es)=0
virtual const TrajectorySeed * trajectorySeed(TrajectorySeedCollection &seedCollection, const SeedingHitSet &hits, const TrackingRegion &region, const edm::EventSetup &es, const SeedComparitor *filter)=0
virtual const OrderedSeedingHits & run(const TrackingRegion &reg, const edm::Event &ev, const edm::EventSetup &es)=0
std::vector< TrajectorySeed > TrajectorySeedCollection
void run(TrajectorySeedCollection &seedCollection, const TrackingRegion &region, const edm::Event &ev, const edm::EventSetup &es)
Square< F >::type sqr(const F &f)
Definition: Square.h:13
long double T