Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:02:24

0001 #ifndef MagFieldConfig_h
0002 #define MagFieldConfig_h
0003 
0004 /** \class MagFieldConfig
0005  *
0006  *  No description available.
0007  *
0008  *  \author N. Amapane - Torino
0009  */
0010 
0011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0012 #include "CondFormats/Serialization/interface/Serializable.h"
0013 
0014 #include <string>
0015 #include <vector>
0016 #include <map>
0017 
0018 namespace edm {
0019   class ParameterSet;
0020 }
0021 
0022 namespace magneticfield {
0023   typedef std::map<int, std::pair<std::string, int> > TableFileMap;
0024 }
0025 
0026 class MagFieldConfig {
0027 public:
0028   MagFieldConfig() {}
0029 
0030   /// Constructor
0031   MagFieldConfig(const edm::ParameterSet& pset, bool debug = false);
0032 
0033   // Operations
0034 public:
0035   std::vector<unsigned> expandList(const std::string& list);
0036 
0037   /// Version of the geometry to be used
0038   int geometryVersion;
0039 
0040   /// Version of the data tables to be used
0041   std::string version;
0042 
0043   /// Specification of which data table is to be used for each volume
0044   magneticfield::TableFileMap gridFiles;
0045 
0046   /// Scaling factors for the field in specific volumes
0047   std::vector<int> keys;
0048   std::vector<double> values;
0049 
0050   /// Label or type of the tracker parametrization
0051   std::string slaveFieldVersion;
0052 
0053   /// Parameters for the tracker parametrization
0054   /// (not used in legacy producers where slaveFieldVersion is the label of the
0055   /// parametrization in the EventSetup)
0056   std::vector<double> slaveFieldParameters;
0057 
0058   COND_SERIALIZABLE;
0059 };
0060 #endif