CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/RecoMuon/TrackingTools/interface/MuonServiceProxy.h

Go to the documentation of this file.
00001 #ifndef RecoMuon_TrackingTools_MuonServiceProxy_H
00002 #define RecoMuon_TrackingTools_MuonServiceProxy_H
00003 
00016 #include "FWCore/Framework/interface/ESHandle.h"
00017 
00018 #include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h"
00019 #include "MagneticField/Engine/interface/MagneticField.h"
00020 #include "RecoMuon/DetLayers/interface/MuonDetLayerGeometry.h"
00021 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
00022 #include "RecoMuon/Navigation/interface/MuonNavigationSchool.h"
00023 
00024 namespace edm {class ParameterSet; class EventSetup;}
00025 
00026 class MuonServiceProxy {
00027 public:
00029   MuonServiceProxy(const edm::ParameterSet& par);
00030 
00032   virtual ~MuonServiceProxy();
00033 
00034   // Operations
00035   
00037   void update(const edm::EventSetup& setup);
00038 
00040   edm::ESHandle<MagneticField> magneticField() const {return theMGField;}
00041 
00043   edm::ESHandle<GlobalTrackingGeometry> trackingGeometry() const {return theTrackingGeometry;}
00044 
00046   edm::ESHandle<MuonDetLayerGeometry> detLayerGeometry() const {return theDetLayerGeometry;}
00047 
00049   edm::ESHandle<Propagator> propagator(std::string propagatorName) const;
00050 
00052   const edm::EventSetup &eventSetup() const {return *theEventSetup;}
00053   
00055   bool isTrackingComponentsRecordChanged() const {return theChangeInTrackingComponentsRecord;}
00056   
00057   const MuonNavigationSchool *muonNavigationSchool() const{
00058     return theSchool;
00059   }
00060 
00061  protected:
00062   
00063  private:
00064   typedef std::map<std::string,  edm::ESHandle<Propagator> > propagators;
00065   
00066   edm::ESHandle<GlobalTrackingGeometry> theTrackingGeometry;
00067   edm::ESHandle<MagneticField> theMGField;
00068   edm::ESHandle<MuonDetLayerGeometry> theDetLayerGeometry;
00069   const edm::EventSetup *theEventSetup;
00070   bool theMuonNavigationFlag;
00071   bool theRPCLayer;
00072   const MuonNavigationSchool* theSchool;
00073 
00074   propagators thePropagators;
00075 
00076   unsigned long long theCacheId_GTG;
00077   unsigned long long theCacheId_MG;
00078   unsigned long long theCacheId_DG;
00079   unsigned long long theCacheId_P;
00080   
00081   bool theChangeInTrackingComponentsRecord;
00082 
00083 };
00084 #endif
00085