Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:27:47

0001 #ifndef HitPairGenerator_H
0002 #define HitPairGenerator_H
0003 
0004 #include <vector>
0005 
0006 /** abstract interface for generators of ordered RecHit pairs
0007  *  compatible with a TrackingRegion. 
0008  *  This is used by the HitPairSeedGenerator to produce TrajectorySeeds
0009  */
0010 
0011 #include "RecoTracker/TkTrackingRegions/interface/OrderedHitsGenerator.h"
0012 #include "RecoTracker/TkHitPairs/interface/OrderedHitPairs.h"
0013 #include "RecoTracker/TkHitPairs/interface/RecHitsSortedInPhi.h"
0014 #include "TrackingTools/TransientTrackingRecHit/interface/SeedingLayerSetsHits.h"
0015 #include "FWCore/Utilities/interface/RunningAverage.h"
0016 
0017 class TrackingRegion;
0018 namespace edm {
0019   class Event;
0020   class EventSetup;
0021 }  // namespace edm
0022 
0023 class HitPairGenerator : public OrderedHitsGenerator {
0024 public:
0025   explicit HitPairGenerator(unsigned int size = 4000);
0026   HitPairGenerator(HitPairGenerator const& other) : localRA(other.localRA.mean()) {}
0027 
0028   ~HitPairGenerator() override {}
0029 
0030   const OrderedHitPairs& run(const TrackingRegion& region, const edm::Event& ev, const edm::EventSetup& es) override;
0031 
0032   virtual void hitPairs(const TrackingRegion& reg,
0033                         OrderedHitPairs& prs,
0034                         const edm::Event& ev,
0035                         const edm::EventSetup& es) = 0;
0036 
0037   void clear() final;
0038 
0039 private:
0040   OrderedHitPairs thePairs;
0041   edm::RunningAverage localRA;
0042 };
0043 
0044 #endif