00001 #ifndef RecoMuon_TrackingTools_MuonTrackingRegionBuilder_H 00002 #define RecoMuon_TrackingTools_MuonTrackingRegionBuilder_H 00003 00016 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00017 #include "DataFormats/GeometryVector/interface/GlobalPoint.h" 00018 #include "DataFormats/BeamSpot/interface/BeamSpot.h" 00019 #include "FWCore/ParameterSet/interface/InputTag.h" 00020 00021 class MuonServiceProxy; 00022 class RectangularEtaPhiTrackingRegion; 00023 00024 namespace edm {class ParameterSet; class Event;} 00025 00026 // --------------------- 00027 // -- Class Interface -- 00028 // --------------------- 00029 00030 class MuonTrackingRegionBuilder { 00031 00032 public: 00033 00035 MuonTrackingRegionBuilder(const edm::ParameterSet&, 00036 const MuonServiceProxy*); 00037 00039 virtual ~MuonTrackingRegionBuilder() {} 00040 00042 RectangularEtaPhiTrackingRegion* region(const reco::TrackRef&) const; 00043 00045 RectangularEtaPhiTrackingRegion* region(const reco::Track&) const; 00046 00048 virtual void setEvent(const edm::Event&); 00049 00050 private: 00051 00052 edm::InputTag theBeamSpotTag; // beam spot 00053 edm::InputTag theVertexCollTag; // vertex collection 00054 00055 const edm::Event* theEvent; 00056 const MuonServiceProxy* theService; 00057 00058 bool useFixedRegion; 00059 bool useVertex; 00060 00061 double theTkEscapePt; 00062 double theNsigmaEta,theNsigmaDz,theNsigmaPhi; 00063 00064 double theEtaRegionPar1; 00065 double theEtaRegionPar2; 00066 double thePhiRegionPar1; 00067 double thePhiRegionPar2; 00068 00069 double thePhiMin; 00070 double theEtaMin; 00071 double theDeltaR,theHalfZ; 00072 double thePhiFixed,theEtaFixed; 00073 00074 GlobalPoint theVertexPos; 00075 00076 double theOnDemand; 00077 }; 00078 #endif