Go to the documentation of this file.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 void hits(const edm::Event& ev, const edm::EventSetup& es, Hits &) const;
00035 Hits hits(const edm::Event& ev, const edm::EventSetup& es) const;
00036
00037 bool operator==(const SeedingLayer &s) const { return name()==s.name(); }
00038
00039 const DetLayer* detLayer() const;
00040
00041 const TransientTrackingRecHitBuilder * hitBuilder() const;
00042
00043 bool hasPredefinedHitErrors() const;
00044 float predefinedHitErrorRZ() const;
00045 float predefinedHitErrorRPhi() const;
00046
00047 private:
00048 class SeedingLayerImpl;
00049 boost::shared_ptr<SeedingLayerImpl> theImpl;
00050 };
00051
00052 }
00053 #endif