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 typedef PixelRecoRange<float> Range; 00030 typedef TransientTrackingRecHit::ConstRecHitPointer Hit; 00031 typedef std::vector<Hit> Hits; 00032 00034 virtual GlobalVector direction() const = 0; 00035 00040 virtual GlobalPoint origin() const = 0; 00041 00043 virtual float originRBound() const = 0; 00044 00046 virtual float originZBound() const = 0; 00047 00049 virtual float ptMin() const = 0; 00050 00052 virtual Hits hits( 00053 const edm::Event& ev, 00054 const edm::EventSetup& es, 00055 const ctfseeding::SeedingLayer* layer) const = 0; 00056 00059 virtual HitRZCompatibility * checkRZ(const DetLayer* layer, 00060 const Hit & outerHit, 00061 const edm::EventSetup& iSetup) const = 0; 00062 00064 virtual TrackingRegion* restrictedRegion( const GlobalPoint & originPos, 00065 const float & originRBound, const float & originZBound) const = 0; 00066 00068 virtual TrackingRegion* clone() const = 0; 00069 00070 virtual std::string name() const { return "TrackingRegion"; } 00071 virtual std::string print() const = 0; 00072 }; 00073 00074 #endif