00001 #ifndef DTGeometryBuilder_DTGeometryESModule_h 00002 #define DTGeometryBuilder_DTGeometryESModule_h 00003 00013 #include <FWCore/Framework/interface/ESProducer.h> 00014 #include <FWCore/ParameterSet/interface/ParameterSet.h> 00015 #include <Geometry/Records/interface/MuonGeometryRecord.h> 00016 #include <Geometry/DTGeometry/interface/DTGeometry.h> 00017 #include <boost/shared_ptr.hpp> 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: 00034 void geometryCallback_( const MuonNumberingRecord& ); 00035 boost::shared_ptr<DTGeometry> _dtGeometry; 00036 bool applyAlignment_; // Switch to apply alignment corrections 00037 00038 const std::string alignmentsLabel_; 00039 const std::string myLabel_; 00040 }; 00041 #endif 00042 00043 00044 00045 00046 00047