CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/RecoTracker/TkSeedingLayers/interface/SeedingLayer.h

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