J. Kissel, E. Goetz
Now that some front end infrastructure is in-place for monitoring the systematic error of CAL-DELTAL_EXTERNAL against PCAL, we have to include corrections to DELTAL_EXTERNAL and PCAL to account for the impacts of anti-aliasing, delays, and imperfect estimation of the inverse sensing and actuation in the CALCS model. To that end, I have included these corrections as transfer function values stored in EPICS records (note that these are higher precision than what is currently written to the EPICS records; in the next days we will have a better solution to push these EPICS records to the front end)
'CAL-CS_TDEP_PCAL_LINE1_DELTAL_PCAL_CORR_REAL': -0.006073503332940157,
'CAL-CS_TDEP_PCAL_LINE1_DELTAL_PCAL_CORR_IMAG': -0.0013606856967624704,
'CAL-CS_TDEP_PCAL_LINE2_DELTAL_PCAL_CORR_REAL': 5.899769524086836e-06,
'CAL-CS_TDEP_PCAL_LINE2_DELTAL_PCAL_CORR_IMAG': -3.699645821510619e-07,
'CAL-CS_TDEP_PCAL_LINE3_DELTAL_PCAL_CORR_REAL': 8.386397287449958e-07,
'CAL-CS_TDEP_PCAL_LINE3_DELTAL_PCAL_CORR_IMAG': -1.5081314667072642e-07,
'CAL-CS_TDEP_PCAL_X_COMPARE_DELTAL_PCAL_CORR_REAL': -5.9041552773359905e-06,
'CAL-CS_TDEP_PCAL_X_COMPARE_DELTAL_PCAL_CORR_IMAG': 3.7352291714501767e-07,
'CAL-CS_TDEP_PCAL_Y_COMPARE_DELTAL_PCAL_CORR_REAL': 5.899769524086836e-06,
'CAL-CS_TDEP_PCAL_Y_COMPARE_DELTAL_PCAL_CORR_IMAG': -3.699645821510619e-07,
'CAL-CS_TDEP_PCAL_LINE5_CORRECTION_REAL': -0.000891357719598607,
'CAL-CS_TDEP_PCAL_LINE5_CORRECTION_IMAG': -6.855875512501219e-05,
'CAL-CS_TDEP_PCAL_LINE5_DELTAL_PCAL_CORR_REAL': 0.0019506922912537398,
'CAL-CS_TDEP_PCAL_LINE5_DELTAL_PCAL_CORR_IMAG': -0.0012367241766306207,
'CAL-CS_TDEP_PCAL_LINE6_CORRECTION_REAL': -0.0003463121477292491,
'CAL-CS_TDEP_PCAL_LINE6_CORRECTION_IMAG': -2.2361738471929133e-05,
'CAL-CS_TDEP_PCAL_LINE6_DELTAL_PCAL_CORR_REAL': 0.00031722752183511923,
'CAL-CS_TDEP_PCAL_LINE6_DELTAL_PCAL_CORR_IMAG': -0.0011010520099375882,
'CAL-CS_TDEP_PCAL_LINE7_CORRECTION_REAL': -0.00016511918561500546,
'CAL-CS_TDEP_PCAL_LINE7_CORRECTION_IMAG': -1.0773445503552214e-05,
'CAL-CS_TDEP_PCAL_LINE7_DELTAL_PCAL_CORR_REAL': -0.0002494269255759141,
'CAL-CS_TDEP_PCAL_LINE7_DELTAL_PCAL_CORR_IMAG': -0.0005356018866498055,
'CAL-CS_TDEP_PCAL_LINE8_CORRECTION_REAL': -9.56073427066754e-05,
'CAL-CS_TDEP_PCAL_LINE8_CORRECTION_IMAG': -6.836645060102044e-06,
'CAL-CS_TDEP_PCAL_LINE8_DELTAL_PCAL_CORR_REAL': -0.0002616172956290841,
'CAL-CS_TDEP_PCAL_LINE8_DELTAL_PCAL_CORR_IMAG': -0.00018845087631648119,
'CAL-CS_TDEP_PCAL_LINE9_CORRECTION_REAL': -1.2253118668315672e-05,
'CAL-CS_TDEP_PCAL_LINE9_CORRECTION_IMAG': -1.866404318229895e-06,
'CAL-CS_TDEP_PCAL_LINE9_DELTAL_PCAL_CORR_REAL': -9.67618312303927e-06,
'CAL-CS_TDEP_PCAL_LINE9_DELTAL_PCAL_CORR_IMAG': 5.78098087799133e-06,
'CAL-CS_TDEP_PCAL_LINE10_CORRECTION_REAL': -6.138898212894542e-07,
'CAL-CS_TDEP_PCAL_LINE10_CORRECTION_IMAG': -4.1525414776953105e-07,
'CAL-CS_TDEP_PCAL_LINE10_DELTAL_PCAL_CORR_REAL': -7.42023357685704e-07,
'CAL-CS_TDEP_PCAL_LINE10_DELTAL_PCAL_CORR_IMAG': 1.4076461554037913e-07
These were computed by using the method pydarm.calcs.CALCSModel.deltal_ext_pcal_correction() for the CAL-CS_TDEP_PCAL_LINE*_DELTAL_PCAL_CORR_* channels. Note that this calculates DELTAL/PCAL correction and what we need to install (because the front end does a division instead of multiplication) is the inverse of what this method returns. We have also specified include_whitening=False, endstation=False because the DELTAL_EXTERNAL signal is not whitened and the PCAL channels are corner station channels.
Note that CAL-CS_TDEP_PCAL_LINE*_CORRECTION_* channels are computed the usual way using pydarm.pcal.PcalModel.pcal.compute_pcal_correction() using endstation=False inside of pydarm.calcs.CALCSModel.compute_epics_records().
We also had to be a little careful because the LINE1-3 PCAL channels are Y-arm channels while 5-10 are X-arm channels, so we had to make sure to set ref_pcal_2_darm_act_sign=1 for X and ref_pcal_2_darm_act_sign=-1 for Y EPICS records. This should be improved in a future merge request.