{ "cells": [ { "cell_type": "code", "execution_count": 2, "id": "48415575", "metadata": {}, "outputs": [], "source": [ "import nds2utils as nu\n", "import numpy as np\n", "import gwpy, matplotlib.pyplot as pplt" ] }, { "cell_type": "code", "execution_count": 3, "id": "cb888cc2", "metadata": {}, "outputs": [], "source": [ "# integrating sphere, see alog https://alog.ligo-wa.caltech.edu/aLOG/index.php?callRep=61411\n", "IS_CT2VOLT=1./16534.7647; #V/counts\n", "# from the alog: \"Responsivity of the power sensor used (TSA): 8.8152 V/W\"\n", "IS_V2W=1./8.8152; #W/V\n", "IS_CT2W=IS_CT2VOLT*IS_V2W ; # ~6.86e-6 W/CT" ] }, { "cell_type": "code", "execution_count": 4, "id": "c7f47de8", "metadata": {}, "outputs": [], "source": [ "# Craig's collected some parameters in a convenient place to back-propagate the power from HAM6 to PRM just outside of PRC\n", "# https://git.ligo.org/aligo_commissioning/power_budget/-/blob/master/code/im4_trans_calibration_via_ham6_power_measurement.py\n", "trans_prm = 3.1e-2\n", "trans_pr2 = 229e-6\n", "trans_pr3 = 3.17e-6\n", "trans_bs = 50e-2\n", "trans_itmx = 1.5e-2\n", "trans_sr3 = 3.5e-6\n", "trans_sr2 = 7.5e-6\n", "trans_srm = 32.34e-2\n", "trans_ofi = 0.99\n", "ham6_to_prm = 1./ (\n", " trans_ofi\n", " * trans_srm\n", " * (1 - trans_sr2)\n", " * (1 - trans_sr3)\n", " * trans_bs\n", " * (1 - trans_itmx)\n", " * (1 - trans_bs)\n", " * (1 - trans_pr3)\n", " * (1 - trans_pr2)\n", " * trans_prm\n", ")" ] }, { "cell_type": "code", "execution_count": 5, "id": "97b5c31d", "metadata": {}, "outputs": [], "source": [ "reflectivity_om1=1-8e-4; # D1000342, E1100056, T=800ppm +-150ppm nominal\n", "reflectivity_om2=1-8e-4; # Same coating as om1\n", "reflectivity_om3=0.99; # D1000342, E1000457, 99+-0.2% nominal\n", "reflectivity_m9=1; #This is a 1\" 45deg mirror that receives OMC REFL. D1000342, E1000595, R>99.995% nominal.\n", "\n", "# See https://dcc.ligo.org/DocDB/0075/E1101095/004/E1101095_CoatingSpecification.pdf\n", "refl_omc45deg= 1-7500e-6; # this is a 45deg mirror on the OMC breadboard in front of the OMC. T=7500 ±2500 ppm \n", "refl_omcflat= 1-8300e-6; # this is input/output coupler. 8300 ±800 ppm\n", "trans_omcflat = 1-refl_omcflat\n", "refl_omccurved= 1-50e-6; # curved mirror, 50 ± 10 ppm\n", "\n", "refl_omc_amplitude= np.sqrt(refl_omcflat)+trans_omcflat*np.sqrt(refl_omcflat*refl_omccurved*refl_omccurved)/(1+np.sqrt(refl_omcflat*refl_omcflat*refl_omccurved*refl_omccurved)) ; #amplitude reflectivity of the omc itself, no loss except for transmission of optics\n", "refl_omcbreadbrd = refl_omc_amplitude**2 * refl_omc45deg**2 ; # power reflectivity of the OMC, and double reflections on 45deg mirror. " ] }, { "cell_type": "code", "execution_count": 6, "id": "1ff6bc64", "metadata": {}, "outputs": [], "source": [ "def combine_trend(means, rmss):\n", " # not sure if I use this, but this could be used to calculate\n", " # the mean and the true RMS of a long trend from the .mean and .rms trend data.\n", " combinedmean=np.mean(means)\n", " msqs=np.array(rmss)**2; # mean squares\n", " sqms=np.array(means)**2; # square of means\n", " m=len(means)\n", " combinedmsq = (msqs.sum()+sqms.sum())/m - combinedmean**2\n", " combinedrms=np.sqrt(combinedmsq)\n", " return combinedmean, combinedrms" ] }, { "cell_type": "code", "execution_count": 7, "id": "815c60b9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Fetching data from nds.ligo-wa.caltech.edu:31200 with GPS times 1327168841 to 1327168845\n", "from ['H1:IMC-IM4_TRANS_SUM_OUT_DQ']\n", "\n" ] } ], "source": [ "# Dark level of IM4_TRAHS_SUM\n", "#channels = ['H1:IMC-IM4_TRANS_SUM_OUT_DQ.mean,s-trend', 'H1:IMC-IM4_TRANS_SUM_OUT_DQ.rms,s-trend', 'H1:IMC-IM4_TRANS_SUM_OUT_DQ.n,s-trend']\n", "channels = ['H1:IMC-IM4_TRANS_SUM_OUT_DQ']\n", "gps_start = 1327168818+23\n", "#gps_start = 1327168818 + 24; #This only changes the dark offset by 1% or so.\n", "gps_stop = 1327168818 + 27\n", "dataDict = nu.acquire_data(channels, gps_start, gps_stop)\n", "im4dark_data = dataDict['H1:IMC-IM4_TRANS_SUM_OUT_DQ']['data'] # this is where the data is stored\n", "# Plot raw time series data\n", "#nu.plot_raw_data(dataDict,seconds=240)\n", "im4dark=im4dark_data.mean(); # this is ~3.244e-3\n", "im4dark_std=im4dark_data.std(); # ~8e-6" ] }, { "cell_type": "code", "execution_count": 8, "id": "9b945715", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Fetching data from nds.ligo-wa.caltech.edu:31200 with GPS times 1327172796 to 1327172864\n", "from ['H1:PEM-CS_ADC_5_26_2K_OUT_DQ', 'H1:IMC-IM4_TRANS_SUM_OUT_DQ']\n", "\n", "\n", "Fetching data from nds.ligo-wa.caltech.edu:31200 with GPS times 1327172874 to 1327172894\n", "from ['H1:PEM-CS_ADC_5_26_2K_OUT_DQ']\n", "\n", "im4_to_prm = 4.55000729921478 +- 0.008522719411956196 W/CT\n" ] } ], "source": [ "# Power coming into HAM6. \n", "# Integrating Sphere receives all light.\n", "gps_start=gwpy.time.to_gps('Jan 25 2022 19:06:18 UTC').gpsSeconds;\n", "gps_stop=gwpy.time.to_gps('Jan 25 2022 19:07:26 UTC').gpsSeconds;\n", "channels=['H1:PEM-CS_ADC_5_26_2K_OUT_DQ', 'H1:IMC-IM4_TRANS_SUM_OUT_DQ']; #don't look at NSUM as it has its own calibration.\n", "dataDict=nu.acquire_data(channels, gps_start, gps_stop)\n", "ham6bright1 = dataDict['H1:PEM-CS_ADC_5_26_2K_OUT_DQ']['data']\n", "im4bright1 = dataDict['H1:IMC-IM4_TRANS_SUM_OUT_DQ']['data']\n", "# Plot raw time series data\n", "# nu.plot_raw_data(dataDict, seconds=gps_stop-gps_start)\n", "#from this, we can see that IM4 is about 1.4 and IS is ~2300\n", "\n", "#dark level of IS at this position\n", "gps_start=gwpy.time.to_gps('Jan 25 2022 19:07:36 UTC').gpsSeconds;\n", "gps_stop=gwpy.time.to_gps('Jan 25 2022 19:07:56 UTC').gpsSeconds;\n", "channels=['H1:PEM-CS_ADC_5_26_2K_OUT_DQ']\n", "dataDict=nu.acquire_data(channels, gps_start, gps_stop)\n", "ham6dark1 = dataDict['H1:PEM-CS_ADC_5_26_2K_OUT_DQ']['data'] # this is where the data is stored\n", "# Plot raw time series data\n", "# nu.plot_raw_data(dataDict, seconds=gps_stop-gps_start)\n", "# dark level was ~-21+-2 or so.\n", "\n", "# HAM6 mean and std error in W\n", "ham6=np.abs(ham6bright1.mean()-ham6dark1.mean())*IS_CT2W\n", "ham6_std=np.sqrt(ham6bright1.std()**2 + ham6dark1.std()**2)*IS_CT2W\n", "# IM4TRANS mean and std in CTs\n", "im4=im4bright1.mean()-im4dark\n", "im4_std=np.sqrt(im4bright1.std()**2 + im4dark_std**2)\n", "\n", "# IM4TRANS CTs to HAM6 W\n", "im4_to_ham6 = ham6/im4 ; # W/CTs\n", "im4_to_ham6_std = im4_to_ham6 * np.sqrt((ham6_std/ham6)**2 + (im4_std/im4)**2) \n", "\n", "#IM4TRANS CTs to the power impinging PRM\n", "im4_to_prm = im4_to_ham6 * ham6_to_prm\n", "im4_to_prm_std= im4_to_ham6_std * ham6_to_prm\n", "print('im4_to_prm = ', im4_to_prm, '+-', im4_to_prm_std , ' W/CT')" ] }, { "cell_type": "code", "execution_count": 11, "id": "ce790ec0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Fetching data from nds.ligo-wa.caltech.edu:31200 with GPS times 1327173033 to 1327173042\n", "from ['H1:PEM-CS_ADC_5_26_2K_OUT_DQ', 'H1:IMC-IM4_TRANS_SUM_OUT_DQ', 'H1:ASC-AS_C_SUM_OUT16']\n", "\n", "\n", "Fetching data from nds.ligo-wa.caltech.edu:31200 with GPS times 1327173056 to 1327173072\n", "from ['H1:PEM-CS_ADC_5_26_2K_OUT_DQ', 'H1:IMC-IM4_TRANS_SUM_OUT_DQ', 'H1:ASC-AS_C_SUM_OUT16']\n", "\n", "ASC-AS_C_SUM to HAM6 power = 0.13274840666901552 +- 0.00018832359251115028 W/CT\n", "ASC-AS_C_SUM to HAM6 power (scaled to 18dB) = 2.9718666412119146 +- 0.0042160400744584246 W/CT\n", "OM1 reflectivity (calibrated using IM4)= 0.9988082560177471 +- 0.0022911944964783934\n" ] } ], "source": [ "# ASC-AS_C calibration using measurement of OM1 REFL.\n", "gps_start=gwpy.time.to_gps('Jan 25 2022 19:10:15 UTC').gpsSeconds;\n", "gps_stop=gwpy.time.to_gps('Jan 25 2022 19:10:24 UTC').gpsSeconds;\n", "channels=['H1:PEM-CS_ADC_5_26_2K_OUT_DQ', 'H1:IMC-IM4_TRANS_SUM_OUT_DQ', 'H1:ASC-AS_C_SUM_OUT16' ]\n", "# For AS_C, there's no SUM_OUT-DQ channel, but NSUM has its own calibration so I'm using SUM_OUT16.\n", "\n", "dataDict=nu.acquire_data(channels, gps_start, gps_stop)\n", "om1reflbright2 = dataDict['H1:PEM-CS_ADC_5_26_2K_OUT_DQ']['data']\n", "im4bright2 = dataDict['H1:IMC-IM4_TRANS_SUM_OUT_DQ']['data']\n", "ascbright2 = dataDict['H1:ASC-AS_C_SUM_OUT16']['data']\n", "# Plot raw time series data\n", "#nu.plot_raw_data(dataDict, seconds=gps_stop-gps_start)\n", "# ASC-AS_C_SUM_OUT16 was ~0.115 when bright\n", "\n", "#dark level of IS at this position\n", "gps_start=gwpy.time.to_gps('Jan 25 2022 19:10:38 UTC').gpsSeconds;\n", "gps_stop=gwpy.time.to_gps('Jan 25 2022 19:10:54 UTC').gpsSeconds;\n", "dataDict=nu.acquire_data(channels, gps_start, gps_stop)\n", "om1refldark2 = dataDict['H1:PEM-CS_ADC_5_26_2K_OUT_DQ']['data']\n", "ascdark2 = dataDict['H1:ASC-AS_C_SUM_OUT16']['data']\n", "# IM4 was bright in this data.\n", "\n", "# Plot raw time series data\n", "#nu.plot_raw_data(dataDict, seconds=gps_stop-gps_start)\n", "#ASC-AS_C_SUM_OUT16 was ~-6e-3 when dark.\n", "\n", "\n", "# AS_C mean and std error in CTS\n", "asc=ascbright2.mean()-ascdark2.mean()\n", "asc_std= np.sqrt(ascbright2.std()**2+ascdark2.std()**2)\n", "\n", "#OM1 REFL in W. \n", "om1refl = abs(om1reflbright2.mean()-om1refldark2.mean())*IS_CT2W\n", "om1refl_std = np.sqrt(om1reflbright2.std()**2 + om1refldark2.std()**2)*IS_CT2W\n", "#propagate that to ham6\n", "ham62=om1refl/reflectivity_om1\n", "ham62_std=om1refl_std/reflectivity_om1\n", "\n", "#ASC_C CTS to HAM6 W\n", "asc_to_ham6= ham62/asc\n", "asc_to_ham6_std=asc_to_ham6*np.sqrt((ham62_std/ham62)**2 + (asc_std/asc)**2)\n", "print('ASC-AS_C_SUM to HAM6 power = ', asc_to_ham6, ' +-', asc_to_ham6_std, ' W/CT')\n", "\n", "# ASC_AS_C was measured with the whitening gain of 45dB, but it's been 18dB before that for a long time.\n", "# Scale if you set it to 18dB.\n", "whitening_scale=10**(27./20)\n", "print('ASC-AS_C_SUM to HAM6 power (scaled to 18dB) = ', asc_to_ham6*whitening_scale, ' +-', asc_to_ham6_std*whitening_scale, ' W/CT')\n", "\n", "#IM4 mean and std error in CTS. \n", "im42=im4bright2.mean()-im4dark\n", "im42_std=np.sqrt(im4bright2.std()**2 + im4dark_std**2)\n", "#propagate that to HAM6 input \n", "ham622=im42*im4_to_ham6; # in W\n", "ham622_std = ham62*np.sqrt((im42_std/im42)**2 + (im4_to_ham6_std/im4_to_ham6)**2)\n", "#We can compare this with om1refl to calibrate OM1 reflectivity if we believe IM4 calibration.\n", "#reflectivity_om1_cal= (om1refl/ham622)\n", "reflectivity_om1_cal= (om1refl/ham622)\n", "reflectivity_om1_cal_std=reflectivity_om1_cal*np.sqrt(\n", " (om1refl_std/om1refl)**2\n", " + (ham622_std/ham622)**2\n", ")\n", "print('OM1 reflectivity (calibrated using IM4)= ', reflectivity_om1_cal, ' +-', reflectivity_om1_cal_std)" ] }, { "cell_type": "code", "execution_count": 16, "id": "681e5e3a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Fetching data from nds.ligo-wa.caltech.edu:31200 with GPS times 1327173219 to 1327173234\n", "from ['H1:PEM-CS_ADC_5_26_2K_OUT_DQ', 'H1:ASC-AS_C_SUM_OUT16', 'H1:ASC-OMC_A_SUM_OUT16', 'H1:ASC-OMC_B_SUM_OUT16']\n", "\n", "\n", "Fetching data from nds.ligo-wa.caltech.edu:31200 with GPS times 1327173242 to 1327173247\n", "from ['H1:PEM-CS_ADC_5_26_2K_OUT_DQ', 'H1:ASC-AS_C_SUM_OUT16', 'H1:ASC-OMC_A_SUM_OUT16', 'H1:ASC-OMC_B_SUM_OUT16']\n", "\n", "OMC REFL power measured by IS = 0.015502849507422449 +- 3.4686121795708243e-05\n", "OMC REFL guesstimated from ASC-AS_C = 0.01560207314807844 +- 2.582965544972772e-05\n", "OMC REFL guess/measured = 1.006400348568725 +- 0.0028011110762187993\n", "ASC-OMC_A_SUM to HAM6 input power [W/Ct] = 0.007973387520095946 +- 1.408633438003031e-05\n", "ASC-OMC_A_SUM to power impinging OMC input coupler [W/Ct] = 0.007821921134618976 +- 1.381874345361595e-05\n", "ASC-OMC_B_SUM to HAM6 input power [W/Ct] = 0.007446804382577044 +- 1.3265660180491725e-05\n", "ASC-OMC_B_SUM to power impinging OMC input coupler [W/Ct] = 0.0073053412290127445 +- 1.3013659184247576e-05\n", "ASC-OMC_A_SUM to HAM6 input power [W/Ct] scaled to 12dB whitening = 0.35615813790881157 +- 0.0006292134441111547\n", "ASC-OMC_A_SUM to power impinging OMC input coupler [W/Ct] = 0.3493923829933141 +- 0.0006172605964873777\n", "ASC-OMC_B_SUM to HAM6 input power [W/Ct] = 0.33263653316550484 +- 0.0005925552741676036\n", "ASC-OMC_B_SUM to power impinging OMC input coupler [W/Ct] = 0.3263176062063944 +- 0.0005812988031448078\n" ] } ], "source": [ "# ASC-OMC_A_SUM and AS_OMC_B_SUM calibration\n", "# Note that there was a digital gain of 1000 in OMC_A for some reason I cannot remember.\n", "#bright\n", "gps_start=gwpy.time.to_gps('Jan 25 2022 19:13:21 UTC').gpsSeconds;\n", "gps_stop=gwpy.time.to_gps('Jan 25 2022 19:13:36 UTC').gpsSeconds;\n", "channels=['H1:PEM-CS_ADC_5_26_2K_OUT_DQ', 'H1:ASC-AS_C_SUM_OUT16' , 'H1:ASC-OMC_A_SUM_OUT16' , 'H1:ASC-OMC_B_SUM_OUT16' ]\n", "\n", "dataDict=nu.acquire_data(channels, gps_start, gps_stop)\n", "omcreflbright3 = dataDict['H1:PEM-CS_ADC_5_26_2K_OUT_DQ']['data']\n", "omcabright3 = dataDict['H1:ASC-OMC_A_SUM_OUT16']['data']\n", "omcbbright3 = dataDict['H1:ASC-OMC_B_SUM_OUT16']['data']\n", "ascbright3 = dataDict['H1:ASC-AS_C_SUM_OUT16']['data']\n", "# Plot raw time series data\n", "#nu.plot_raw_data(dataDict, seconds=gps_stop-gps_start)\n", "# ASC-AS_C_SUM_OUT16 was ~0.115 when bright\n", "\n", "#dark level\n", "gps_start=gwpy.time.to_gps('Jan 25 2022 19:13:44 UTC').gpsSeconds;\n", "gps_stop=gwpy.time.to_gps('Jan 25 2022 19:13:49 UTC').gpsSeconds;\n", "dataDict=nu.acquire_data(channels, gps_start, gps_stop)\n", "omcrefldark3 = dataDict['H1:PEM-CS_ADC_5_26_2K_OUT_DQ']['data']\n", "omcadark3 = dataDict['H1:ASC-OMC_A_SUM_OUT16']['data']\n", "omcbdark3 = dataDict['H1:ASC-OMC_B_SUM_OUT16']['data']\n", "ascdark3 = dataDict['H1:ASC-AS_C_SUM_OUT16']['data']\n", "\n", "# Plot raw time series data\n", "#nu.plot_raw_data(dataDict, seconds=gps_stop-gps_start)\n", "#ASC-AS_C_SuM_OUT16 was ~-6e-3 when dark.\n", "\n", "\n", "# AS_C mean and std error in CTS\n", "asc=ascbright3.mean()-ascdark3.mean()\n", "asc_std= np.sqrt(ascbright3.std()**2 + ascdark3.std()**2)\n", "#propagate that to ham6\n", "ham63=asc*asc_to_ham6\n", "ham63_std=ham63*np.sqrt((asc_std/asc)**2 + (asc_to_ham6_std/asc_to_ham6)**2)\n", "\n", "#OMC REFL in W. \n", "omcrefl = abs(omcreflbright3.mean()-omcrefldark3.mean())*IS_CT2W\n", "omcrefl_std = np.sqrt(omcreflbright3.std()**2 + omcrefldark3.std()**2)*IS_CT2W\n", "print('OMC REFL power measured by IS = ', omcrefl, ' +- ', omcrefl_std)\n", "\n", "# Does the OMC REFL agree with the HAM6 power and reflectivity of things?\n", "# I assume the OMC reflectivity to be 1 when not resonant, ignoring steering mirrors.\n", "omcrefl_guess=ham63*reflectivity_om1*reflectivity_om2*reflectivity_om3*(reflectivity_m9**2)*refl_omcbreadbrd\n", "omcrefl_guess_std=ham63_std*reflectivity_om1*reflectivity_om2*reflectivity_om3*(reflectivity_m9**2)*refl_omcbreadbrd\n", "print('OMC REFL guesstimated from ASC-AS_C = ', omcrefl_guess, ' +- ', omcrefl_guess_std)\n", "\n", "guessmeasratio= omcrefl_guess/omcrefl\n", "guessmeasratio_std= guessmeasratio * np.sqrt((omcrefl_std/omcrefl)**2 + (omcrefl_guess_std/omcrefl_guess)**2)\n", "print('OMC REFL guess/measured = ', guessmeasratio, ' +- ', guessmeasratio_std)\n", "\n", "#ASC-OMC_A and ASC-OMC_B\n", "omca=(omcabright3.mean()-omcadark3.mean())/1000. ;# note the digital gain of 1000\n", "omca_std=np.sqrt(omcabright3.std()**2 + omcadark3.std()**2)/1000.\n", "omcb=(omcbbright3.mean()-omcbdark3.mean()) ;# no digital gain of 1000\n", "omcb_std=np.sqrt(omcbbright3.std()**2 + omcbdark3.std()**2)\n", "\n", "omca_to_ham6 = ham63/omca\n", "omca_to_ham6_std=omca_to_ham6*np.sqrt((omca_std/omca)**2 + (ham63_std/ham63)**2)\n", "omcb_to_ham6 = ham63/omcb\n", "omcb_to_ham6_std=omcb_to_ham6*np.sqrt((omcb_std/omcb)**2 + (ham63_std/ham63)**2)\n", "omca_to_omcincpl = omca_to_ham6*reflectivity_om1*reflectivity_om2*reflectivity_om3*(reflectivity_m9**2)*refl_omc45deg\n", "omca_to_omcincpl_std = omca_to_ham6_std*reflectivity_om1*reflectivity_om2*reflectivity_om3*(reflectivity_m9**2)*refl_omc45deg\n", "omcb_to_omcincpl = omcb_to_ham6*reflectivity_om1*reflectivity_om2*reflectivity_om3*(reflectivity_m9**2)*refl_omc45deg\n", "omcb_to_omcincpl_std = omcb_to_ham6_std*reflectivity_om1*reflectivity_om2*reflectivity_om3*(reflectivity_m9**2)*refl_omc45deg\n", "print('ASC-OMC_A_SUM to HAM6 input power [W/Ct] = ', omca_to_ham6, ' +- ', omca_to_ham6_std)\n", "print('ASC-OMC_A_SUM to power impinging OMC input coupler [W/Ct] = ', omca_to_omcincpl, ' +- ', omca_to_omcincpl_std)\n", "print('ASC-OMC_B_SUM to HAM6 input power [W/Ct] = ', omcb_to_ham6, ' +- ', omcb_to_ham6_std)\n", "print('ASC-OMC_B_SUM to power impinging OMC input coupler [W/Ct] = ', omcb_to_omcincpl, ' +- ', omcb_to_omcincpl_std)\n", "\n", "# ASC_OMC_A and B were measured with the whitening gain of 45dB, but it was 12dB in O3.\n", "# Scale if you set it to 12dB.\n", "whitening_scale=10**(33./20)\n", "print('ASC-OMC_A_SUM to HAM6 input power [W/Ct] scaled to 12dB whitening = ', omca_to_ham6*whitening_scale, ' +- ', omca_to_ham6_std*whitening_scale)\n", "print('ASC-OMC_A_SUM to power impinging OMC input coupler [W/Ct] = ', omca_to_omcincpl*whitening_scale, ' +- ', omca_to_omcincpl_std*whitening_scale)\n", "print('ASC-OMC_B_SUM to HAM6 input power [W/Ct] = ', omcb_to_ham6*whitening_scale, ' +- ', omcb_to_ham6_std*whitening_scale)\n", "print('ASC-OMC_B_SUM to power impinging OMC input coupler [W/Ct] = ', omcb_to_omcincpl*whitening_scale, ' +- ', omcb_to_omcincpl_std*whitening_scale)\n" ] }, { "cell_type": "code", "execution_count": 13, "id": "ab98606e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "704.8952544867991" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "0.13274840666901552 / 0.00018832359251115028" ] }, { "cell_type": "code", "execution_count": 14, "id": "f55a7cf7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "704.8952544965673" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2.9718666412119146 / 0.0042160400744" ] }, { "cell_type": "code", "execution_count": null, "id": "83ba7b99", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.10" } }, "nbformat": 4, "nbformat_minor": 5 }