[Jeff K, Alex U, Aaron V] I restarted the primary and redundant GDS calibration pipelines at GPS second 1167764080. This restart implements a new filters file with the latest calibration model: see https://alog.ligo-wa.caltech.edu/aLOG/index.php?callRep=33021 At about the same time, Jeff pushed the updated EPICS records associated with this model (see https://alog.ligo-wa.caltech.edu/aLOG/index.php?callRep=33025 ), which has restored the kappas to their correct values.
J. Kissel, A. Viets I've taken the opportunity during the IFO downtime to update the CAL-CS front-end calibration and associated EPICs records using the model described / verified last night (see LHO aLOG 33004). Since the changes to the DELTAL_RESIDUAL and DELTAL_CTRL paths with minor (having already taken care of compensating the change in the L2/L3 crossover on Teusday; see LHO aLOG 32933), instead of using the automated script to populate the front end, I installed the changes by hand. The changes the DELTAL_CTRL (actuator) path are Filter Bank Module Name Former Current Value Value H1:CAL-CS_DARM_ANALOG_ETMY_L1 FM3 "N_per_cnt" 8.164e-8 8.091e-8 H1:CAL-CS_DARM_ANALOG_ETMY_L2 FM3 "N_per_cnt" 6.841e-10 6.768e-10 H1:CAL-CS_DARM_ANALOG_ETMY_L3 FM3 "N_per_cnt" 4.389e-12 4.357e-12 where there, I've *replaced* the old values with the new and both are copied from the MCMC fit results in LHO aLOG 32989. The changes in the DELTAL_RESIDUAL (sensing) path are in the H1:CAL-CS_DARM_ERR filter bank, in which I've switched to using FM7 & FM8, from FM2 & FM3: Module Name Design String Formerly FM2 O2SRCD2N zpk([346.7;7.2231;-7.5587],[0.1;0.1;7000],1,"n")gain(5458.55) used FM3 O2Gain gain(8.673e-7) Currently FM7 O2B_D2N zpk([360.0;6.7496;-7.0660],[0.1;0.1;7000],1,"n")gain(4768.4) used FM8 O2BGain gain(9.191e-07) the new design comes from the nlinfit results reported in LHO aLOG 33004 For the updates to the EPICs records, the changes are too plentiful to quote directly, but I attach the log file of the function used to automatically push the changes, which is Runs/O2/H1/Scripts/CAL_EPICS/writeH1_CAL_EPICS.m (r4095, lc: r4094) Note that though the records were generated today, we've changed the name of the files before committing to the repository to match the date of the model, which is 20170103. All EPICS records changes have been accepted in SDF, and both filter files and snapshot files have been committed to the userapps repo.
I have produced new DCS filters that incorporate the recent changes in the front-end calibration model, including the updated L2/L3 crossover. The filters can be found in the calibration SVN at this location: /ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/GDSFilters/H1DCS_1167436818.npz For information on the changes in the calibration model, see these aLOGs: https://alog.ligo-wa.caltech.edu/aLOG/index.php?callRep=33004 https://alog.ligo-wa.caltech.edu/aLOG/index.php?callRep=32933 https://alog.ligo-wa.caltech.edu/aLOG/index.php?callRep=32907 The filters were produced using this Matlab script in SVN revision 4095: /ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/H1/Scripts/TDfilters/H1_run_td_filters_1167436818.m The parameters files used (all in revision 4095) were: /ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/Common/params/IFOindepParams.conf /ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/H1/params/H1params.conf /ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/H1/params/2017-01-03/H1params_2017-01-03.conf /ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/H1/params/H1_TDparams_1167436818.conf /ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/H1/Scripts/CAL_EPICS/D20170103_H1_CAL_EPICS_VALUES.m Several plots are attached. The first four (png files) are spectrum comparisons between DCS, CLACS, and GDS at GPS time 1167559872 (Jan 04, 2017, 10:10 UTC). Kappas were applied in making the DCS and DCS spectrum, both using the EPICS from the filters file. The filters used to produce the GDS spectrum were produced from the same parameters files (see https://alog.ligo-wa.caltech.edu/aLOG/index.php?callRep=33021 ). The reason the GDS and DCS spectra do not agree may be due to the fact that the new calibration model had not been pushed to the front-end calibration at the time the comparison was made. This comparison will be redone once the new model is pushed. The last pdf contains a time series of the kappas computed by DCS and CALCS. Note that they do not agree. This is expected, as the EPICS were not updated in the front end.
Here are updated plots from the first lock stretch after the new calibration model was pushed (Jan 6, 2017, 19 UTC). Note that DCS and GDS now agree as expected.
I have produced new GDS filters that incorporate the recent changes in the front-end calibration model, including the updated L2/L3 crossover. The filters can be found in the calibration SVN at this location: /ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/GDSFilters/H1GDS_1167602808.npz For information on the changes in the calibration model, see these aLOGs: https://alog.ligo-wa.caltech.edu/aLOG/index.php?callRep=33004 https://alog.ligo-wa.caltech.edu/aLOG/index.php?callRep=32933 https://alog.ligo-wa.caltech.edu/aLOG/index.php?callRep=32907 The filters were produced using this Matlab script in SVN revision 4095: /ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/H1/Scripts/TDfilters/H1_run_td_filters_1167602808.m The parameters files used (all in revision 4095) were: /ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/Common/params/IFOindepParams.conf /ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/H1/params/H1params.conf /ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/H1/params/2017-01-03/H1params_2017-01-03.conf /ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/H1/params/H1_TDparams_1167602808.conf /ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/H1/Scripts/CAL_EPICS/D20170103_H1_CAL_EPICS_VALUES.m Several plots are attached. The first two (png files) are spectrum comparisons between GDS and CALCS at GPS time 1167559872 (Jan 04, 2017, 10:10 UTC). Kappas were applied in making the GDS spectrum, using the EPICS from the filters file (the EPICS in the frames at this time are incorrect). The last plot contains a time series of the kappas computed by GDS and CALCS. Note that they do not agree. This is expected, as the EPICS were not updated in the front end.
WP 6416 The lalapps_Makefakedata_v4 binary was rebuilt to correct a leap second issue. Rebuild procedure followed what was done at Livingston documented in FRS ticket 7014. Monit was used to stop psinject, the new binary moved into place, and Monit was used to restart psinject. Examination of running processes on h1hwinj showed the processes being stopped, and new processes being started after the restart. Perhaps someone from the injection group could take a look to see that all is working as it should?
TITLE: 01/06 Day Shift: 16:00-00:00 UTC (08:00-16:00 PST), all times posted in UTC
STATE of H1: Earthquake
OUTGOING OPERATOR: None
CURRENT ENVIRONMENT:
Wind: 3mph Gusts, 2mph 5min avg
Primary useism: 0.04 μm/s
Secondary useism: 0.36 μm/s
QUICK SUMMARY:
I looked a little bit at this lockloss, and it seems that the way in which the earthquake broke the lock was by saturating PR3 M3 with a yaw drive due to low frequency motion (20 second period).
We should impove our offloading of PR3 drives to the top mass, which should be easy to do just by increasing the gain in the top mass filter banks.
WP 6418 While the IFO was unlocked due to an earthquake, I moved raw minute trend files on h1tw1 and reconfigured and restarted the NDS servers on h1nds0 and h1nds1 to read the renamed trend files. This is the start of the process to move the raw minute trend files to /frames/trend/minute_raw. This is routine maintenance that occurs every 6 months or so to avoid filling the file system where the raw minute trends are stored.
TITLE: 01/06 Owl Shift: 08:00-16:00 UTC (00:00-08:00 PST), all times posted in UTC
A very small earthquake showed up on the BLRMS at the same time as the lockloss, but nothing that should have knocked us out. Perhaps it was already a bit misaligned. Temp at EY is back to 68.0F,
Generic lockloss attached
Back to Observing at 13:54. I had to do an initial alignment because even though I could lock DRMI, it was very weak and I could not increase it no matter what I adjusted. IA showed a big BS adjustment, but after it ran through and we are sitting at 74Mpc right now.
The range has been slowly decreasing since the start of the lock, but I could not figure out why. There is no obvious reasons for the range drop or lockloss that I can see. EY temp is back up to 67.6F from 67.0 at the beginning of my shift.
Generic Lockloss template attatched, It shows the ASC picking up about 20sec before the lockloss, but not sure what is causing it.
Back to Observing 11:57
I had to move TMSY a bit to bring green arm power up, but other than that it was pretty straight forward.
TITLE: 01/06 Owl Shift: 08:00-16:00 UTC (00:00-08:00 PST), all times posted in UTC
STATE of H1: Lock Acquisition
OUTGOING OPERATOR: Ed
CURRENT ENVIRONMENT: Wind: 7mph Gusts, 5mph 5min avg Primary useism: 0.01 μm/s Secondary useism: 0.23 μm/s
QUICK SUMMARY: Ed brought it right back up for me after a lockloss that he couldn't explain. I checked and then ran a2l once we were all the way up. EY temp is still low ~67F. Everything else seems good, cruising at 70Mpc.
07:22UTC Lockloss
I set the Observation Mode to Environment "Seismis" because I think the tiny rise in the EQ band is what did it, at this point. Y arm is kinda messed so I'm going to do an Initial Alignment but I'm leaving the mode set as mentioned.
07:44 Begin Initial alignment
@ 04:47UTC
Diag Reset
J. Kissel
I've completed creating a new parameter set for the matlab DARM loop model that contains the updates from the fit of the new set of reference measurements taken on 2017-01-03. I've then compared those measurements directly to the new model with an update to the function
/ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O2/H1/Scripts/compareDARMOLGTFs.m
Results are attached. The agreement is quite good, but I expected better. Further discussion below, but I must continue with the facts first.
I also re-attach sensing function fit results, with spruced up information and residuals for the MCMC results, and tabulated below:
Reference Value MAP (95% C.I.) MAP (95% C.I.)
2016-11-12 2017-01-03 (nlinfit) 2017-01-03 (MCMC)
Optical Gain K_C [ct/m] 1.15e6 1.088e6 (0.0002e6) 1.086e6 (0.0002e6)
Couple Cav. Pole Freq. f_c [Hz] 346.7 360.0 (7.6) 360.4 (3.4)
Residual Sensing Delay tau_C [us] 2.3 0.67 (6.7) 0.65 (2.6)
SRC Detuning Spring Freq. f_s [Hz] 7.4 6.91 (0.1) 6.9 (0.06)
Inv. Spring Qual. Factor 1/Q_s [ ] 0.05 0.046 (0.016) 0.03 (0.0081)
UIM/L1 Actuation Strength K_UIM [N/ct] 8.164e-8 n/a 8.091e-8 (0.2%)
PUM/L2 Actuation Strength K_PUM [N/ct] 6.841e-10 n/a 6.768e-10 (0.02%)
UIM/L3 Actuation Strength K_TST [N/ct] 4.389e-12 n/a 4.357e-12 (0.02%)
Upsettingly, with this comparison and revisit of the fitting codes, I've discovered that neither the nlinfit fitting function or the mcmc fitting function pre-filters the measurement data for coherence. I suspect that the highest two data points in the DARM OLG TF measurement, which "only" have coherence on 0.97 and 0.99, and hence large uncertainty, are skewing both fitting functions. This is why the coupled cavity pole frequency is fit to be rather high at 360.4 (-3.03,+3.39) [Hz] (MCMC) and 360.0 (+/- 7.9) [Hz] (nlinfit).
If I manually manipulate the model to have a cavity pole frequency of 350 [Hz], the agreement with measurement is better. However, this stone method of determining physical parameters from eye-balling model residuals is flawed in that it has no inherent quantitative uncertainty.
I spent too much time trying to decide what to do about this, so I have not yet pushed this model (or associated EPICs records) to the front end. And yes, the means the h(t) OK light will not turn green for another night. Updating the calibration is something I'd like to do after a good night's sleep, given I'm the only one working on this and I don't want to mess it up (I've been known to do it before). Perhaps others in the calibration group will have epiphanies over night that may help in the morning as well.
For the time being, I've committed the model parameters and functions. Hopefully all relevant information to begin generating DCS filters is present. Every folder listed below should be updated before proceeding to make anything.
(r = svn revision, lc = last changed revision)
Model Functions:
/ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/
O2/DARMmodel/src/
DARMmodel.m (r3857, lc: r3511)
computeSensing.m (r4040, lc: r4025)
computeActuation.m (r4040, lc: r4003)
Param Files:
/ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/
O2/H1/params/
H1params.conf (r4087, lc: r4087)
O2/H1/params/2017-01-03/
H1params_2017-01-03.conf (r4054, lc: r4044)
measurements_2017-01-03_sensing.conf (r4089, lc: r4089)
measurements_2017-01-03_ETMY_L3_actuator.conf (r4054, lc: r4044)
measurements_2017-01-03_ETMY_L2_actuator.conf (r4054, lc: r4044)
measurements_2017-01-03_ETMY_L1_actuator.conf (r4054, lc: r4044)
Relevant Exports for GDS / DCS filter generation:
/ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/
O2/H1/Measurements/Foton/
2017-01-03_H1CALCS_InverseSensingFunction_Foton_SRCD-2N_and_Gain_Filters_tf.txt (r4083, lc: rev 4083)
Let the record show that I used the most probable values from the nlinfit function values listed above when filling out the sensing function in H1params.conf.
I've done so because
(a) the nlinfit and mcmc results are consistently within the nlinfit's uncertainty.
(b) the nlinfit code produces a foton design string that can be copied directly into a new filter bank
(b) is an essential feature, because the GDS and DCS pipelines need to compensate for the high-frequency warping of the inverse sensing function response. Indeed that's the "relevant export" which was generated in such fashion, with the following design strings:
SRCD2N: zpk([360.0;6.7496;-7.0660],[0.1;0.1;7000],1,"n")gain(4768.4)
Gain: gain(9.191e-07)
(see LHO aLOG 31693 for why the design of the detuning spring frequency doesn't exactly look right.)
I still owe a long aLOG that details all the functions and processes I've gone through to get this far, I know.
Where does this put us on the road map from LHO aLOG 32989?
The steps forward from here:
DONE - Convert the actuation strength in [N/ct] to [N/A] or [N/V^2] so we can create an updated reference parameter set for the DARM loop model
DONE - Compare the new open loop gain model against measurements
READY, BUT NOT PUSHED - Use the loop model tp push new reference values to the front end CAL-CS model (changing the optical plant compensation, and the gain of the actuator compensation, L2/L3 change has already been pushed)
READY, BUT NOT PUSHED - Use the loop model to push new EPICs records that document model values at calibration line frequencies (the biggest change will be from the L2/L3 cross-over upgrade)
<< this is the major problem that's causing bad h(t) calibration flag
CAN BEGIN - Use the new loop model to push a new set of GDS FIR correction filters (small changes due to better AA/AI model)
- Confirm that time-dependent correction factors are within an expected range
<< if/when in range, this should green light the h(t) calibration flag
CAN BEGIN - Use the new loop model to generate DCS FIR filters to recalibrate the all data from the post-winter break from raw DARM_ERR and DARM_CTRL.
- Push hard for uncertainty estimations for both the first part of O2 and data post-winter break.
J. Kissel Documentation of how the above 2017-01-03 parameters were fit from measurement is in LHO aLOG 33090. What is not included in LHO aLOG 33090 is how to convert the [N/ct] listed in the above table into [N/A] or [N/V^2] which is how each actuator stage is entered into the configuration file for the DARM loop model. Since this is more relevant to updating the configuration files and DARM loop model described in this above aLOG 33004 (as opposed to processing measurements to obtain the fit values), I describe the process here for the 2017-01-03 parameter filer set: - Copy over 2016-11-12 configuration file, ${CalSVN}/aligocalibration/trunk/Runs/ER10/H1/params/ H1params.conf (r4042, lc: 3957) to the new reference model location in the O2 directory, ${CalSVN}/aligocalibration/trunk/Runs/O2/H1/params/ H1params.conf (I committed the first version r4044 after I copied over the file and changed the DRIVEALIGN filters to account for the new L2/L3 crossover filter configuration) - Copy the script that converts the new [N/ct] to new [N/A] or [N/V^2] using the model as it stands with the former values in place (the purpose is to grab the DAC gain, the AI gain, and the coil driver transconductance or the ESD driver gain which remain fixed in time), ${CalSVN}/aligocalibration/trunk/Runs/ER10/H1/Scripts/FullIFOActuatorTFs/ getActValuesForParamsFile.m (r3827, lc: r3827) over to the new reference model location in the O2 directory, renamed for the new reference time, ${CalSVN}/aligocalibration/trunk/Runs/O2/H1/Scripts/FullIFOActuatorTFs/ getActValuesForParamsFile_20170103.m In this script, you have to manually enter in the new [N/ct] values from the MCMC fitting code (which is why you need to make a copy of the function, instead of it being generic to runs and reference times). The script uses the model as it stands with the former values in place, computes the former [N/ct] value, takes the ratio with the new [N/ct] value, and then multiplies the former [N/A] or [N/V^2] value by that ratio to obtain new [N/A] or [N/V^2] values. - Copy the output of the conversion script into the configuration file, and commit (which is the current rev) ${CalSVN}/aligocalibration/trunk/Runs/O2/H1/params/ H1params.conf (r4087, lc: r4087) I agree with you that this process is clunky. We will work to streamline the update of the parameter file in the future. The fit parameters for the sensing function are just directly copied into the configuration file from the nlinfit results as listed above. Well, OK, you have to invert 1/Q, and enter in the Q, but that's straight-forward. Again to streamline the process, we may consider changing the DARM loop model to accept 1/Q instead of Q such that we reduce the number of steps in creating a new model. ------------------------ Also of note when creating a new reference model: the configuration file that is more meant to compensate non-reference measurements for time-dependence, ${CalSVN}/aligocalibration/trunk/Runs/O2/H1/params/2017-01-03/ H1params_2017-01-03.conf (r4054, lc: r4044) must be updated to have all kappa values to be unity, and the darm coupled cavity pole must match the reference time, because DARMmodel.m uses these values to overwrite the default params values from ${CalSVN}/aligocalibration/trunk/Runs/O2/H1/params/ H1params.conf (r4087, lc: r4087) ------------------------