File indexing completed on 2024-04-06 12:22:33
0001 #ifndef ParametrizedMagneticFieldFactory_h
0002 #define ParametrizedMagneticFieldFactory_h
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include <MagneticField/Engine/interface/MagneticField.h>
0012 #include <vector>
0013 #include <string>
0014 #include <memory>
0015
0016 namespace edm {
0017 class ParameterSet;
0018 }
0019
0020 namespace magneticfield {
0021 class ParametrizedMagneticFieldProducer;
0022 class AutoParametrizedMagneticFieldProducer;
0023 class VolumeBasedMagneticFieldESProducerFromDB;
0024 class DD4hep_VolumeBasedMagneticFieldESProducerFromDB;
0025 }
0026
0027 class ParametrizedMagneticFieldFactory {
0028 public:
0029
0030 ParametrizedMagneticFieldFactory();
0031
0032 private:
0033 friend class magneticfield::ParametrizedMagneticFieldProducer;
0034 friend class magneticfield::AutoParametrizedMagneticFieldProducer;
0035 friend class magneticfield::VolumeBasedMagneticFieldESProducerFromDB;
0036 friend class magneticfield::DD4hep_VolumeBasedMagneticFieldESProducerFromDB;
0037
0038
0039 std::unique_ptr<MagneticField> static get(std::string version, const edm::ParameterSet& parameters);
0040
0041
0042 std::unique_ptr<MagneticField> static get(std::string version, std::vector<double> parameters);
0043 };
0044 #endif