CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/RecoMuon/GlobalTrackingTools/interface/MuonTrackingRegionBuilder.h

Go to the documentation of this file.
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