CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/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   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