00001 #ifndef GeometryReaders_XMLIdealGeometryESSource_XMLIdealGeometryESSource_H 00002 #define GeometryReaders_XMLIdealGeometryESSource_XMLIdealGeometryESSource_H 00003 00004 #include "FWCore/Framework/interface/ESProducer.h" 00005 #include "FWCore/Framework/interface/EventSetupRecordIntervalFinder.h" 00006 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00007 00008 #include "DetectorDescription/Core/interface/DDCompactView.h" 00009 #include "Geometry/Records/interface/IdealGeometryRecord.h" 00010 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" 00011 00012 #include <memory> 00013 #include <string> 00014 00015 class XMLIdealGeometryESSource : public edm::ESProducer, 00016 public edm::EventSetupRecordIntervalFinder 00017 { 00018 public: 00019 XMLIdealGeometryESSource(const edm::ParameterSet & p); 00020 virtual ~XMLIdealGeometryESSource(); 00021 std::auto_ptr<DDCompactView> produceGeom(const IdealGeometryRecord &); 00022 std::auto_ptr<DDCompactView> produceMagField(const IdealMagneticFieldRecord &); 00023 std::auto_ptr<DDCompactView> produce(); 00024 protected: 00025 virtual void setIntervalFor(const edm::eventsetup::EventSetupRecordKey &, 00026 const edm::IOVSyncValue &,edm::ValidityInterval &); 00027 private: 00028 XMLIdealGeometryESSource(const XMLIdealGeometryESSource &); 00029 const XMLIdealGeometryESSource & operator=(const XMLIdealGeometryESSource &); 00030 std::string rootNodeName_; 00031 }; 00032 00033 00034 #endif