00001 #ifndef AutoMagneticFieldESProducer_h 00002 #define AutoMagneticFieldESProducer_h 00003 00014 #include "FWCore/Framework/interface/ESProducer.h" 00015 00016 #include "MagneticField/Engine/interface/MagneticField.h" 00017 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00018 #include <vector> 00019 #include <string> 00020 00021 class IdealMagneticFieldRecord; 00022 00023 namespace magneticfield { 00024 class AutoMagneticFieldESProducer : public edm::ESProducer 00025 { 00026 public: 00027 AutoMagneticFieldESProducer(const edm::ParameterSet&); 00028 ~AutoMagneticFieldESProducer(); 00029 00030 std::auto_ptr<MagneticField> produce(const IdealMagneticFieldRecord&); 00031 edm::ParameterSet pset; 00032 private: 00033 std::string closerModel(float current); 00034 std::vector<int> nominalCurrents; 00035 std::vector<std::string> maps; 00036 }; 00037 } 00038 00039 #endif