![]() |
![]() |
00001 #ifndef TkSeedingLayers_SeedingLayer_H 00002 #define TkSeedingLayers_SeedingLayer_H 00003 00004 #include <string> 00005 #include <vector> 00006 #include <boost/shared_ptr.hpp> 00007 00008 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h" 00009 00010 class DetLayer; 00011 class TransientTrackingRecHitBuilder; 00012 00013 namespace edm { class Event; class EventSetup; } 00014 namespace ctfseeding {class HitExtractor; } 00015 00016 namespace ctfseeding { 00017 00018 class SeedingLayer { 00019 public: 00020 enum Side { Barrel = 0, NegEndcap =1, PosEndcap = 2 }; 00021 public: 00022 typedef std::vector<TransientTrackingRecHit::ConstRecHitPointer> Hits; 00023 00024 SeedingLayer(){} 00025 00026 SeedingLayer( const std::string & name, 00027 const DetLayer* layer, 00028 const TransientTrackingRecHitBuilder * hitBuilder, 00029 const HitExtractor * hitExtractor, 00030 bool usePredefinedErrors = false, float hitErrorRZ = 0., float hitErrorRPhi=0.); 00031 00032 std::string name() const; 00033 00034 Hits hits(const edm::Event& ev, const edm::EventSetup& es) const; 00035 00036 bool operator==(const SeedingLayer &s) const { return name()==s.name(); } 00037 00038 const DetLayer* detLayer() const; 00039 00040 const TransientTrackingRecHitBuilder * hitBuilder() const; 00041 00042 bool hasPredefinedHitErrors() const; 00043 float predefinedHitErrorRZ() const; 00044 float predefinedHitErrorRPhi() const; 00045 00046 private: 00047 class SeedingLayerImpl; 00048 boost::shared_ptr<SeedingLayerImpl> theImpl; 00049 }; 00050 00051 } 00052 #endif