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/Utilities/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 MuonTrackingRegionBuilder(const edm::ParameterSet&par, 00037 const MuonServiceProxy*service){ build(par);init(service);} 00038 void init(const MuonServiceProxy*); 00039 00041 virtual ~MuonTrackingRegionBuilder() {} 00042 00044 RectangularEtaPhiTrackingRegion* region(const reco::TrackRef&) const; 00045 00047 RectangularEtaPhiTrackingRegion* region(const reco::Track&) const; 00048 00050 virtual void setEvent(const edm::Event&); 00051 00052 private: 00053 void build(const edm::ParameterSet&); 00054 00055 edm::InputTag theBeamSpotTag; // beam spot 00056 edm::InputTag theVertexCollTag; // vertex collection 00057 00058 const edm::Event* theEvent; 00059 const MuonServiceProxy* theService; 00060 00061 bool useFixedRegion; 00062 bool useVertex; 00063 00064 double theTkEscapePt; 00065 double theNsigmaEta,theNsigmaDz,theNsigmaPhi; 00066 00067 double theEtaRegionPar1; 00068 double theEtaRegionPar2; 00069 double thePhiRegionPar1; 00070 double thePhiRegionPar2; 00071 00072 double thePhiMin; 00073 double theEtaMin; 00074 double theDeltaR,theHalfZ; 00075 double thePhiFixed,theEtaFixed; 00076 00077 GlobalPoint theVertexPos; 00078 00079 double theOnDemand; 00080 std::string theMeasurementTrackerName; 00081 }; 00082 #endif