Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 13:31:25

0001 #ifndef ParametrizedMagneticFieldFactory_h
0002 #define ParametrizedMagneticFieldFactory_h
0003 
0004 /** \class ParametrizedMagneticFieldFactory
0005  *
0006  *  Create a parametrized field map with the specified configuration.
0007  *
0008  *  \author N. Amapane - Torino
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 }  // namespace magneticfield
0026 
0027 class ParametrizedMagneticFieldFactory {
0028 public:
0029   /// Constructor
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   // Get map configured from pset (deprecated)
0039   std::unique_ptr<MagneticField> static get(std::string version, const edm::ParameterSet& parameters);
0040 
0041   // Get map configured from type name and numerical parameters
0042   std::unique_ptr<MagneticField> static get(std::string version, std::vector<double> parameters);
0043 };
0044 #endif