![]() |
![]() |
00001 #ifndef CombinedHitPairGenerator_H 00002 #define CombinedHitPairGenerator_H 00003 00004 #include <vector> 00005 #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h" 00006 #include "RecoTracker/TkHitPairs/interface/LayerHitMapCache.h" 00007 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00008 00009 class TrackingRegion; 00010 class OrderedHitPairs; 00011 class HitPairGeneratorFromLayerPair; 00012 namespace ctfseeding { class SeedingLayer;} 00013 namespace edm { class Event; class EventSetup; } 00014 00015 #include "RecoTracker/TkSeedingLayers/interface/SeedingLayerSets.h" 00016 00021 class CombinedHitPairGenerator : public HitPairGenerator { 00022 public: 00023 typedef LayerHitMapCache LayerCacheType; 00024 00025 public: 00026 CombinedHitPairGenerator(const edm::ParameterSet & cfg); 00027 00028 CombinedHitPairGenerator(const ctfseeding::SeedingLayerSets & layerSets); 00029 00030 00031 virtual ~CombinedHitPairGenerator(); 00032 00033 void add(const ctfseeding::SeedingLayer & inner, 00034 const ctfseeding::SeedingLayer & outer); 00035 00037 virtual void hitPairs( const TrackingRegion& reg, 00038 OrderedHitPairs & result, const edm::Event& ev, const edm::EventSetup& es); 00039 00041 virtual CombinedHitPairGenerator * clone() const 00042 { return new CombinedHitPairGenerator(*this); } 00043 00044 private: 00045 void init(const ctfseeding::SeedingLayerSets & layerSets); 00046 void init(const edm::ParameterSet & cfg, const edm::EventSetup& es); 00047 00048 mutable bool initialised; 00049 edm::ParameterSet theConfig; 00050 00051 LayerCacheType theLayerCache; 00052 00053 typedef std::vector<HitPairGeneratorFromLayerPair *> Container; 00054 Container theGenerators; 00055 00056 }; 00057 #endif