00001 #ifndef Alignment_MisalignedMuonESProducer_MisalignedMuonESProducerESProducer_h 00002 #define Alignment_MisalignedMuonESProducer_MisalignedMuonESProducerESProducer_h 00003 00013 #include "FWCore/Framework/interface/ESProducer.h" 00014 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00015 00016 #include "Geometry/Records/interface/MuonGeometryRecord.h" 00017 #include "Geometry/DTGeometryBuilder/src/DTGeometryBuilderFromDDD.h" 00018 #include "Geometry/CSCGeometryBuilder/src/CSCGeometryBuilderFromDDD.h" 00019 00020 #include <boost/shared_ptr.hpp> 00021 00022 00029 class MisalignedMuonESProducer: public edm::ESProducer 00030 { 00031 public: 00032 00034 MisalignedMuonESProducer( const edm::ParameterSet & p ); 00035 00037 virtual ~MisalignedMuonESProducer(); 00038 00040 edm::ESProducts< boost::shared_ptr<DTGeometry>, 00041 boost::shared_ptr<CSCGeometry> > produce( const MuonGeometryRecord& ); 00042 00044 void saveToDB(); 00045 00046 private: 00047 00048 edm::ParameterSet theParameterSet; 00049 00050 std::string theDTAlignRecordName, theDTErrorRecordName; 00051 std::string theCSCAlignRecordName, theCSCErrorRecordName; 00052 00053 boost::shared_ptr<DTGeometry> theDTGeometry; 00054 boost::shared_ptr<CSCGeometry> theCSCGeometry; 00055 00056 Alignments* dt_Alignments; 00057 AlignmentErrors* dt_AlignmentErrors; 00058 Alignments* csc_Alignments; 00059 AlignmentErrors* csc_AlignmentErrors; 00060 00061 }; 00062 00063 00064 #endif 00065 00066 00067 00068