15 FieldstrengthEz_m(nullptr),
16 FieldstrengthEr_m(nullptr),
17 FieldstrengthBt_m(nullptr) {
19 std::string tmpString;
27 bool parsing_passed =
true;
29 parsing_passed = interpretLine<std::string, std::string>(file, tmpString, tmpString);
31 parsing_passed = interpretLine<std::string, std::string, std::string>(file, tmpString, tmpString, tmpString);
34 if (tmpString !=
"TRUE" &&
37 "The third string on the first line of 2D field "
38 "maps has to be either TRUE or FALSE");
43 if(tmpString ==
"ZX") {
45 parsing_passed = parsing_passed &&
47 parsing_passed = parsing_passed &&
49 parsing_passed = parsing_passed &&
51 }
else if(tmpString ==
"XZ") {
53 parsing_passed = parsing_passed &&
55 parsing_passed = parsing_passed &&
57 parsing_passed = parsing_passed &&
60 std::cerr <<
"unknown orientation of 2D dynamic fieldmap" << std::endl;
61 parsing_passed =
false;
67 parsing_passed = parsing_passed && interpretLine<double, double, double, double>(file, tmpDouble, tmpDouble, tmpDouble, tmpDouble);
70 parsing_passed = parsing_passed &&
80 "An error occured when reading the fieldmap '" +
Filename_m +
"'");
193 const double RR = std::sqrt(R(0) * R(0) + R(1) * R(1));
195 const int indexr = (int)std::floor(RR /
hr_m);
196 const double leverr = RR /
hr_m - indexr;
198 const int indexz = (int)std::floor((R(2) -
zbegin_m) /
hz_m);
199 const double leverz = (R(2) -
zbegin_m) /
hz_m - indexz;
225 E(0) += EfieldR * R(0) / RR;
226 E(1) += EfieldR * R(1) / RR;
227 B(0) -= BfieldT * R(1) / RR;
228 B(1) += BfieldT * R(0) / RR;