00001 #ifndef DTGeometryBuilder_DTGeometryESModule_h 00002 #define DTGeometryBuilder_DTGeometryESModule_h 00003 00013 #include <FWCore/Framework/interface/ESProducer.h> 00014 #include "FWCore/Framework/interface/EventSetupRecordIntervalFinder.h" 00015 #include <FWCore/ParameterSet/interface/ParameterSet.h> 00016 #include <Geometry/Records/interface/MuonGeometryRecord.h> 00017 #include <Geometry/DTGeometry/interface/DTGeometry.h> 00018 00019 #include <string> 00020 00021 class DTGeometryESModule : public edm::ESProducer { 00022 public: 00024 DTGeometryESModule(const edm::ParameterSet & p); 00025 00027 virtual ~DTGeometryESModule(); 00028 00030 boost::shared_ptr<DTGeometry> produce(const MuonGeometryRecord& record); 00031 00032 private: 00033 void geometryCallback_( const MuonNumberingRecord& record ) ; 00034 void dbGeometryCallback_( const DTRecoGeometryRcd& record ) ; 00035 boost::shared_ptr<DTGeometry> _dtGeometry; 00036 00037 bool applyAlignment_; // Switch to apply alignment corrections 00038 const std::string alignmentsLabel_; 00039 const std::string myLabel_; 00040 bool fromDDD_; 00041 }; 00042 #endif 00043 00044 00045 00046 00047 00048