28 #ifndef _CLASSIC_FIELDS_SECTORMAGNETICFIELDMAP_HH_
29 #define _CLASSIC_FIELDS_SECTORMAGNETICFIELDMAP_HH_
178 void print(std::ostream& out);
214 void Rotate(
double* value,
double angle);
225 static std::map<std::string, SectorMagneticFieldMap*>
_fields;
256 std::vector<double> units,
259 int smoothing_order);
266 static std::vector< std::vector<double> >
readLines
267 (std::string file_name, std::vector<double> units);
271 const std::vector< std::vector<double> > field_points,
276 const std::vector< std::vector<double> > field_points,
281 const std::vector< std::vector<double> > field_points,
285 int smoothing_order);
293 (std::vector<double> field_item1, std::vector<double> field_item2);
handles field map grids with sector geometry
bool getFieldstrength(const Vector_t &R_c, Vector_t &E_c, Vector_t &B_c) const
bool applySymmetry(double *R_temp) const
const std::string filename_m
void setFrequency(double)
interpolation::VectorMap * interpolator_m
static void clearFieldCache()
std::vector< double > units_m
void setInterpolator(interpolation::VectorMap *interpolator)
static std::string SymmetryToString(symmetry sym)
double getPhiOffset() const
double getDeltaPhi() const
SectorMagneticFieldMap(std::string file_name, std::string symmetry, double length_units, double field_units, int polynomial_order, int smoothing_order)
bool getFieldDerivative(const Vector_t &R, Vector_t &E, Vector_t &B, const DiffDirection &dir) const
static symmetry StringToSymmetry(std::string name)
void setPhiOffset(double dphi)
void setSymmetry(std::string name)
interpolation::VectorMap * getInterpolator()
double getFrequency() const
static const double fractionalBBPhiTolerance_m
SectorMagneticFieldMap & operator=(const SectorMagneticFieldMap &field)
void Rotate(double *value, double angle)
~SectorMagneticFieldMap()
void getInfo(Inform *msg)
friend class SectorMagneticFieldMapIO
std::string getFieldMapFileName() const
std::string getSymmetry() const
void print(std::ostream &out)
static std::map< std::string, SectorMagneticFieldMap * > _fields
handles reading sector field maps
static const std::string errMsg1
static interpolation::ThreeDGrid * generateGrid(const std::vector< std::vector< double > > field_points, SectorMagneticFieldMap::symmetry sym)
static std::vector< std::vector< double > > readLines(std::string file_name, std::vector< double > units)
static bool comparator(std::vector< double > field_item1, std::vector< double > field_item2)
static const double floatTolerance_m
static interpolation::VectorMap * getInterpolatorPolyPatch(const std::vector< std::vector< double > > field_points, interpolation::ThreeDGrid *grid, SectorMagneticFieldMap::symmetry sym, int poly_order, int smoothing_order)
static interpolation::VectorMap * getInterpolator(const std::vector< std::vector< double > > field_points, interpolation::ThreeDGrid *grid, SectorMagneticFieldMap::symmetry sym)
static const int sortOrder_m[3]
static bool floatGreaterEqual(double in1, double in2)
static interpolation::VectorMap * readMap(std::string file_name, std::vector< double > units, SectorMagneticFieldMap::symmetry sym, int poly_order, int smoothing_order)