CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/RecoTracker/TkTrackingRegions/interface/TrackingRegion.h

Go to the documentation of this file.
00001 #ifndef TrackingRegion_H
00002 #define TrackingRegion_H
00003 
00008 #include <vector>
00009 #include <string>
00010 
00011 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00012 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00013 
00014 #include "RecoTracker/TkMSParametrization/interface/PixelRecoRange.h"
00015 #include "TrackingTools/DetLayers/interface/DetLayer.h"
00016 #include "RecoTracker/TkTrackingRegions/interface/HitRZCompatibility.h"
00017 #include "FWCore/Framework/interface/EventSetup.h"
00018 #include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h"
00019 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h"
00020 #include <vector>
00021 
00022 class DetLayer;
00023 class HitRZCompatibility;
00024 namespace edm { class Event; class EventSetup; }
00025 
00026 class TrackingRegion{
00027 public:
00028 
00029   virtual ~TrackingRegion(){}
00030   typedef PixelRecoRange<float> Range;
00031   typedef TransientTrackingRecHit::ConstRecHitPointer Hit;
00032   typedef std::vector<Hit> Hits;
00033 
00035   virtual GlobalVector direction() const = 0;
00036 
00041   virtual GlobalPoint  origin() const = 0;
00042 
00044   virtual float originRBound() const = 0;
00045 
00047   virtual float originZBound() const = 0;
00048 
00050   virtual float ptMin()  const = 0;
00051 
00053    virtual Hits hits(
00054        const edm::Event& ev, 
00055        const edm::EventSetup& es, 
00056        const ctfseeding::SeedingLayer* layer) const = 0; 
00057 
00060   virtual HitRZCompatibility * checkRZ(const DetLayer* layer,  
00061                                        const Hit & outerHit,
00062                                        const edm::EventSetup& iSetup) const = 0;
00063 
00065   virtual TrackingRegion* restrictedRegion( const GlobalPoint &  originPos, 
00066       const float & originRBound, const float & originZBound) const = 0;
00067 
00069       virtual TrackingRegion* clone() const = 0;
00070   
00071   virtual std::string name() const { return "TrackingRegion"; }
00072   virtual std::string print() const = 0;
00073 };
00074 
00075 #endif