@@ -221,7 +221,7 @@ static double problem_function(unsigned n, const double *x, double *grad,
221221 RNorm = Rad / MaxRad ;
222222 EtaT = 90 - Eta ;
223223 double RNorm3 = RNorm * RNorm * RNorm ;
224- double dipole = p7 * RNorm * cos (deg2rad * (EtaT + p8 ));
224+ double dipole = p7 * pow ( RNorm , 4.0 ) * cos (deg2rad * (EtaT + p8 ));
225225 double trefoil = p9 * RNorm3 * cos (deg2rad * (3.0 * EtaT + p10 ));
226226 DistortFunc = (p0 * (pow (RNorm , n0 )) * (cos (deg2rad * (2 * EtaT + p6 )))) +
227227 (p1 * (pow (RNorm , n1 )) * (cos (deg2rad * (4 * EtaT + p3 )))) +
@@ -365,10 +365,12 @@ static inline void CorrectTiltSpatialDistortion(
365365 Eta = CalcEtaAngleLocal (XYZ [1 ], XYZ [2 ]);
366366 RNorm = Rad / MaxRad ;
367367 EtaT = 90 - Eta ;
368+ double dipole = p7 * pow (RNorm , 4.0 ) * cos (deg2rad * (EtaT + p8 ));
369+ double trefoil = p9 * pow (RNorm , 3.0 ) * cos (deg2rad * (3.0 * EtaT + p10 ));
368370 DistortFunc = (p0 * (pow (RNorm , n0 )) * (cos (deg2rad * (2 * EtaT + p6 )))) +
369371 (p1 * (pow (RNorm , n1 )) * (cos (deg2rad * (4 * EtaT + p3 )))) +
370372 (panelP2 * (pow (RNorm , n2 ))) + p4 * pow (RNorm , 6.0 ) +
371- p5 * pow (RNorm , 4.0 ) + 1 ;
373+ p5 * pow (RNorm , 4.0 ) + dipole + trefoil + 1 ;
372374 Rcorr = Rad * DistortFunc ;
373375 Rcorr = Rcorr * (Lsd / panelLsd ); // re-project to global Lsd plane
374376 YCorrected [i ] = - Rcorr * sin (deg2rad * Eta );
0 commit comments