00001 #ifndef RecoTracker_TkSeedingLayers_HitExtractorSTRP_H 00002 #define RecoTracker_TkSeedingLayers_HitExtractorSTRP_H 00003 00004 #include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h" 00005 #include "FWCore/Utilities/interface/InputTag.h" 00006 #include "HitExtractor.h" 00007 00008 #include <vector> 00009 class DetLayer; 00010 00011 00012 namespace ctfseeding { 00013 00014 class HitExtractorSTRP : public HitExtractor { 00015 00016 public: 00017 HitExtractorSTRP( const DetLayer* detLayer, SeedingLayer::Side & side, int idLayer); 00018 virtual ~HitExtractorSTRP(){} 00019 00020 virtual HitExtractor::Hits hits( const SeedingLayer & sl, const edm::Event& , const edm::EventSetup& ) const; 00021 virtual HitExtractorSTRP * clone() const { return new HitExtractorSTRP(*this); } 00022 00023 void useMatchedHits( const edm::InputTag & m) { hasMatchedHits = true; theMatchedHits = m; } 00024 void useRPhiHits( const edm::InputTag & m) { hasRPhiHits = true; theRPhiHits = m; } 00025 void useStereoHits( const edm::InputTag & m) { hasStereoHits = true; theStereoHits = m; } 00026 void useRingSelector(int minRing, int maxRing); 00027 void useSimpleRphiHitsCleaner(bool use) {hasSimpleRphiHitsCleaner = use;} 00028 00029 private: 00030 bool ringRange(int ring) const; 00031 private: 00032 const DetLayer * theLayer; 00033 SeedingLayer::Side theSide; 00034 int theIdLayer; 00035 bool hasMatchedHits; edm::InputTag theMatchedHits; 00036 bool hasRPhiHits; edm::InputTag theRPhiHits; 00037 bool hasStereoHits; edm::InputTag theStereoHits; 00038 bool hasRingSelector; int theMinRing, theMaxRing; 00039 bool hasSimpleRphiHitsCleaner; 00040 }; 00041 00042 } 00043 #endif