Displaying report 1-1 of 1.
Reports until 09:47, Thursday 05 January 2017
H1 CAL (ISC)
jeffrey.kissel@LIGO.ORG - posted 09:47, Thursday 05 January 2017 - last comment - 14:02, Sunday 08 January 2017(32989)
Calibration Reference Measurement Analysis; Old (2016-11-12) vs. New (2017-01-04) with Updated AA/AI Filter Gain
J. Kissel

I've analyzed the reference data taken from 2017-01-03, and re-analyzed the data from 2016-11-12 with updated matlab analysis code that includes the LHO-only bug-fix regarding the gain of the AA/AI filter model (see LHO aLOG 32907). The results are tabulated below. 
                                                                           MAP     (68% C.I.)  MAP       (68% C.I.)

 Date                                                  2016-11-12          2016-11-12          2017-01-03
                                                   (former analysis)       (new analysis)       (new analysis)
 Optical Gain                K_C         [ct/m]        1.15e6              1.164e6 (0.09%)     1.086e6   (0.07%)
 Couple Cav. Pole Freq.      f_c         [Hz]          346.7               346.7   (0.4%)      360.4     (0.4%)
 Residual Sensing Delay      tau_C       [us]          2.3                 2.3     (50%)       0.65      (200%)
 SRC Detuning Spring Freq.   f_s         [Hz]          7.4                 7.4     (1.1%)      6.9       (0.5%)
 Inv. Spring Qual. Factor    1/Q_s       [ ]           0.05                0.05    (8.7%)      0.03      (12%)

 UIM/L1 Actuation Strength   K_UIM       [N/ct]        8.164e-8            8.104e-8  (0.2%)    8.091e-8  (0.2%)
 PUM/L2 Actuation Strength   K_PUM       [N/ct]        6.841e-10           6.773e-10 (0.03%)   6.768e-10 (0.02%)
 UIM/L3 Actuation Strength   K_TST       [N/ct]        4.389e-12           4.389e-12 (0.04%)   4.357e-12 (0.02%)


As expected, with the 2016-11-12 reference measurements re-analyzed, the estimated sensing function gain has increased by ~1%, and the actuation function have decreased by a few %.

Further, we see that -- also as expected -- the 2017-01-04 reference measurements show some evolution of the optical sensing parameters, no evolution of the UIM and PUM stage actuation strengths, and a few % change in TST actuation strength change due to charge evolution.

The steps forward from here:
- 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
- Compare the new open loop gain model against measurements
- 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)
- 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
- 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
- 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.

There's a ton of librarian information that I need to post that documents where all this data came from and what scripts were used, but I'll post as a comment later today.
Non-image files attached to this report
Comments related to this report
jeffrey.kissel@LIGO.ORG - 14:02, Sunday 08 January 2017 (33090)
J. Kissel

I repost the table, without typos in the (new analysis) columns in actuation:
                                                                           MAP     (68% C.I.)  MAP       (68% C.I.)

 Date                                                  2016-11-12          2016-11-12          2017-01-03
                                                   (former analysis)       (new analysis)       (new analysis)
 Optical Gain                K_C         [ct/m]        1.15e6              1.164e6 (0.09%)     1.086e6   (0.07%)
 Couple Cav. Pole Freq.      f_c         [Hz]          346.7               346.7   (0.4%)      360.4     (0.4%)
 Residual Sensing Delay      tau_C       [us]          2.3                 2.3     (50%)       0.65      (200%)
 SRC Detuning Spring Freq.   f_s         [Hz]          7.4                 7.4     (1.1%)      6.9       (0.5%)
 Inv. Spring Qual. Factor    1/Q_s       [ ]           0.05                0.05    (8.7%)      0.03      (12%)

 UIM/L1 Actuation Strength   K_UIM       [N/ct]        8.164e-8            8.104e-8  (0.2%)    8.091e-8  (0.2%)
 PUM/L2 Actuation Strength   K_PUM       [N/ct]        6.841e-10           6.773e-10 (0.03%)   6.768e-10 (0.02%)
 UIM/L3 Actuation Strength   K_TST       [N/ct]        4.389e-12           4.347e-12 (0.04%)   4.357e-12 (0.02%)
Note that (new analysis) sensing function parameter fits are MCMC results, not nlinfit results, which are what is used for updating the DARM loop model. However, MCMC results are consistent with the uncertainty of the nlinfit results, so we consider the results interchangeable. Rather, we use the MCMC results for response function uncertainty, where we use nlinfit results to update the DARM loop model -- we should and will use MCMC results for updating the DARM loop model in the future such that we have a self-consistent pipeline from reference measurement analysis to response function uncertainty estimation. 

I attach an update to the sensing function plot for each reference data set which improves the MCMC fit results vs. measurement plot to show residuals and parameter values with uncertainties, such that it can now be directly compared to the same plot produced by the nlinfit code.

As promised, a complete description of how these results were generated:

            :::: How I generated 2016-11-12 (new analysis) ::::
---------
- Updated measurement base-level processing scripts and DARM model, which fixes the AA/AI filter gain analysis bug identified in LHO aLOG 32907),
${CalSVN}/aligocalibration/trunk/Runs/O2/DARMmodel/src/
    DARMmodel.m        (r4093, lc: r3511)
    computeActuation.m (r4093, lc: r4003)
    computeSensing.m   (r4093, lc: r4025)

---------
- Generated a new fit for actuation parameters using MCMC analysis:
pre-process actuation measurements using
    ${CalSVN}/aligocalibration/trunk/Runs/ER10/H1/Scripts/FullIFOActuatorTFs/
        actuatorCoefficients_Npct.m (r4065, lc: r4065)
which spits out text files of the actuation function for each stage with portions known to negligible uncertainty removed (e.g. frequency dependence of SUS dynamics, AI filter shape, etc.),
    ${CalSVN}/aligocalibration/trunk/Runs/ER10/H1/Measurements/FullIFOActuatorTFs/2016-11-12/
        2016-11-12_H1SUSETMY_L1_actuationStrength_Npct.txt (r4111, lc: r4111)
        2016-11-12_H1SUSETMY_L2_actuationStrength_Npct.txt (r4111, lc: r4111)
        2016-11-12_H1SUSETMY_L3_actuationStrength_Npct.txt (r4111, lc: r4111)
which are then loaded into
    ${CalSVN}/aligocalibration/trunk/Runs/ER10/H1/Scripts/FullIFOActuatorTFs/
        fitActCoefs_Npct.m (r3977, lc: r3977)
where each stage is fit independently, so you have to switch the variable "stage" between 'L1', 'L2', or 'L3'.
Running on ONLY the 2016-11-12 reference measurement time (instead of two days of measurements, as Darkhan originally did)
   dateListRef = {'2016-11-12'};
   gpsListRef = [1162969230];

yields the above results. 

There's a typo in the above table: the new analysis of L3/TST actuator coefficient is 4.347e-12 [N/ct], as shown in the above attachement https://alog.ligo-wa.caltech.edu/aLOG/uploads/32989_20170105090730_2016-11-12_H1_SUSETMY_ACT_COEF_REF_fitCorner.pdf

---------
- Generated a new fit for the sensing function parameters using nlinfit and MCMC analysis:
pre-process sensing function measurements with
    ${CalSVN}/aligocalibration/trunk/Runs/ER10/H1/Scripts/PCAL/
        fitDataToC_20161116.m (r4040, lc: r4028)
which produces an nlinfit list of parameters on the IFO optical plant (i.e. with stuff known to negligible uncertainty removed, like frequency dependence of OMC DCPD high frequency electronics), and also spits out a text file of that IFO optical plant for MCMC fitting,
    ${CalSVN}/aligocalibration/trunk/Runs/ER10/H1/Results/Sensing
        2016-11-12_H1_meas_sensingTF_withoutDCPDTFs_ctpm.txt (r4079, lc: 4072)
This is loaded into 
    ${CalSVN}/aligocalibration/trunk/Runs/ER10/H1/Scripts/PCAL/
        fitCTF_mcmc.m (r4112, lc: r4112)
to produce the MCMC maximum a posteriori (MAP).

Even though all MCMC results are repeated using python code, the sensing function parameter's posterior distribution from the above matlab MCMC code are exported to text:
/ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/ER10/H1/Results/Sensing/
2016-11-12_H1_sensing_burn80p_nWalk100_output.txt      (r4079, lc: r4077)
2016-11-12_H1_sensing_burn80p_nWalk100_posteriors.txt  (r4079, lc: r4079)
Actuator parameter posterior distributions are not yet exported from the matlab code.

            :::: How I generated 2017-01-03 (new analysis) ::::
--------
- Used the updated versions of same the base-level processing scripts described above for 2016-11-12 (new analysis)

--------
- Generated a fit for actuation parameters using MCMC analysis:
Above mentioned actuation function pre-processing script copied from ER10 directory to O2 directory (prior to making aesthetic changes to the script in rev 4065),
    ${CalSVN}/aligocalibration/trunk/Runs/ER10/H1/Scripts/FullIFOActuatorTFs/
        actuatorCoefficients_Npct.m (r3811, lc: r3811)
became
    ${CalSVN}/aligocalibration/trunk/Runs/O2/H1/Scripts/FullIFOActuatorTFs/
        fitDataToA_20170103.m (r4095, ls: r4061)                                (Note the intentional name change to match sensing function scripts)
which produces text files of actuation functions with frequency dependence known to negligible uncertainty removed,
    ${CalSVN}/aligocalibration/trunk/Runs/O2/H1/Results/FullIFOActuatorTFs/    (Note change in location because the text files are a result,
        2017-01-03_H1SUSETMY_L1_actuationStrength_Npct.txt (r4095, lc: r4056)    not a part of the measurements)
        2017-01-03_H1SUSETMY_L2_actuationStrength_Npct.txt (r4095, lc: r4056)
        2017-01-03_H1SUSETMY_L3_actuationStrength_Npct.txt (r4095, lc: r4056)
which are analysized by the MCMC code copied over from ER10 to O2,
    ${CalSVN}/aligocalibration/trunk/Runs/ER10/H1/Scripts/FullIFOActuatorTFs/
        fitActCoefs_Npct.m (r3977, lc: r3977)
became
    ${CalSVN}/aligocalibration/trunk/Runs/O2/H1/Scripts/FullActuatorTFs/
        fitATF_mcmc_20170103.m                                                  (Note the intentional name change to match sensing function scripts)
and again, run individually for each stage on 2017-01-03 reference measurement.

--------
- Generated a fit for sensing function parameters using nlinfit and MCMC analysis,
pre-process sensing function measurements with a new copy of
    ${CalSVN}/aligocalibration/trunk/Runs/ER10/H1/Scripts/PCAL/
        fitDataToC_20161116.m (r4040, lc: r4028)
now named
    ${CalSVN}/aligocalibration/trunk/Runs/O2/H1/Scripts/SensingFunctionTFs/     (Note folder change to match actuator scripts and the rest
        fitDataToC_20170103.m (r4095, ls: r4090)                              of O2 directory structure)
which produces an nlinfit list of parameters on the IFO optical plant (i.e. with stuff known to negligible uncertainty removed, like frequency dependence of OMC DCPD high frequency electronics), and also spits out a text file of that IFO optical plant for MCMC fitting,
    ${CalSVN}/aligocalibration/trunk/Runs/O2/H1/Results/Sensing
        2017-01-03_H1_meas_sensingTF_withoutDCPDTFs_ctpm.txt (r4095, lc: 4056)
This is loaded into a copy of
    ${CalSVN}/aligocalibration/trunk/Runs/ER10/H1/Scripts/PCAL/
        fitCTF_mcmc.m (r4041, lc: r4041)
    (copied prior to aesthetic changes to fit vs. measurement plot which now shows residuals in r4112 as described above)
which is now
    ${CalSVN}/aligocalibration/trunk/Runs/O2/H1/Scripts/PCAL/
        fitCTF_mcmc_20170103.m (r4095, lc: r4091)
to produce the MCMC maximum a posteriori (MAP) (and also has the same aesthetic changes as the ER10 version, r4112).

Even though all MCMC results are repeated using python code, the sensing function parameter's posterior distribution from the above matlab MCMC code are exported to text:
${CalSVN}/aligocalibration/trunk/Runs/O2/H1/Results/SensingFunctionTFs/
2017-01-03_H1_sensing_burn80p_nWalk100_output.txt       (r4095, lc: 4058)
2017-01-03_H1_sensing_burn80p_nWalk100_posteriors.txt   (r4095, lc: 4058)
Actuator parameter posterior distributions are not yet exported from the matlab code.
     
----------
A super-duper thanks to Darkhan, Kiwamu, and Evan for writing the brunt of these functions. It took a while to find everything, how the analysis flow was to go, and how to correctly into file names, but it otherwise works like a charm with very reproducible results. I look forward to making the functions even more streamlined, and potentially merging functionality so there's not so many functions of which to keep track. 
----------
Non-image files attached to this comment
Displaying report 1-1 of 1.