CMS 3D CMS Logo

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