dZZ_psi1 = zeros((len(w_ch0s), len(w_ch1s))) dXX_psi1 = zeros((len(w_ch0s), len(w_ch1s))) dZZ_psi2 = zeros((len(w_ch0s), len(w_ch1s))) dXX_psi2 = zeros((len(w_ch0s), len(w_ch1s))) ro_correct = True for i, w_ch0 in enumerate(w_ch0s): for j, w_ch1 in enumerate(w_ch1s): ZZ_corr_psi1 = ZZ_corr_00[i, j] + ZZ_corr_11[i, j] XX_corr_psi1 = XX_corr_00[i, j] + XX_corr_11[i, j] XmX_corr_psi1 = XmX_corr_00[i, j] + XmX_corr_11[i, j] F_psi1[i,j],dF_psi1[i,j],_dict = \ fidelities.get_fidelity(ZZ_corr_psi1,XX_corr_psi1,XmX_corr_psi1, ro_correct=ro_correct, psi1=True) dZZ_psi1[i, j] = 1 / 4. * _dict['dZZ']**2 + _dict['dZZS']**2 dXX_psi1[i, j] = _dict['dXXavg']**2 ZZ_corr_psi2 = ZZ_corr_01[i, j] + ZZ_corr_10[i, j] XX_corr_psi2 = XX_corr_01[i, j] + XX_corr_10[i, j] XmX_corr_psi2 = XmX_corr_01[i, j] + XmX_corr_10[i, j] F_psi2[i,j],dF_psi2[i,j],_dict = \ fidelities.get_fidelity(ZZ_corr_psi2,XX_corr_psi2,XmX_corr_psi2, ro_correct=ro_correct, psi1=False) dZZ_psi2[i, j] = 1 / 4. * _dict['dZZ']**2 + _dict['dZZS']**2 dXX_psi2[i, j] = _dict['dXXavg']**2 if ro_correct: F2stdev_psi1 = (F_psi1 - 0.5 * ones((len(w_ch0s), len(w_ch1s)))) / dF_psi1 F2stdev_psi2 = (F_psi2 - 0.5 * ones((len(w_ch0s), len(w_ch1s)))) / dF_psi2
if state=='psi1': psi1=True ZZ_corr = ZZ_an.total_corr_00 + ZZ_an.total_corr_11 XX_corr = XX_an.total_corr_00 + XX_an.total_corr_11 XmX_corr = XmX_an.total_corr_00 + XmX_an.total_corr_11 elif state == 'psi2': psi1=False ZZ_corr= ZZ_an.total_corr_01 + ZZ_an.total_corr_10 XX_corr= XX_an.total_corr_01 + XX_an.total_corr_10 XmX_corr= XmX_an.total_corr_01 + XmX_an.total_corr_10 else: raise(Exception('Unknown state' + state)) F, dF,_dict = \ fidelities.get_fidelity(ZZ_corr,XX_corr,XmX_corr, ro_correct=ro_correct, psi1=psi1) dZZ=1/4.*_dict['dZZ']**2 + _dict['dZZS']**2 dXX=_dict['dXXavg']**2 F2stdev = (F-0.5)/dF print 'F:',F print 'sigma_F:', dF print 'sigma_ZZ_contrib:', dZZ print 'sigma_XX_contrib:', dXX print '(F-0.5)/sigma:', F2stdev
dZZ_psi1=zeros((len(w_ch0s),len(w_ch1s))) dXX_psi1=zeros((len(w_ch0s),len(w_ch1s))) dZZ_psi2=zeros((len(w_ch0s),len(w_ch1s))) dXX_psi2=zeros((len(w_ch0s),len(w_ch1s))) ro_correct=True for i,w_ch0 in enumerate(w_ch0s): for j,w_ch1 in enumerate(w_ch1s): ZZ_corr_psi1=ZZ_corr_00[i,j] + ZZ_corr_11[i,j] XX_corr_psi1=XX_corr_00[i,j] + XX_corr_11[i,j] XmX_corr_psi1=XmX_corr_00[i,j]+XmX_corr_11[i,j] F_psi1[i,j],dF_psi1[i,j],_dict = \ fidelities.get_fidelity(ZZ_corr_psi1,XX_corr_psi1,XmX_corr_psi1, ro_correct=ro_correct, psi1=True) dZZ_psi1[i,j]=1/4.*_dict['dZZ']**2 + _dict['dZZS']**2 dXX_psi1[i,j]=_dict['dXXavg']**2 ZZ_corr_psi2=ZZ_corr_01[i,j]+ ZZ_corr_10[i,j] XX_corr_psi2=XX_corr_01[i,j]+ XX_corr_10[i,j] XmX_corr_psi2=XmX_corr_01[i,j]+XmX_corr_10[i,j] F_psi2[i,j],dF_psi2[i,j],_dict = \ fidelities.get_fidelity(ZZ_corr_psi2,XX_corr_psi2,XmX_corr_psi2, ro_correct=ro_correct, psi1=False) dZZ_psi2[i,j]=1/4.*_dict['dZZ']**2 + _dict['dZZS']**2 dXX_psi2[i,j]=_dict['dXXavg']**2 if ro_correct: F2stdev_psi1=(F_psi1-0.5*ones((len(w_ch0s),len(w_ch1s))))/dF_psi1 F2stdev_psi2=(F_psi2-0.5*ones((len(w_ch0s),len(w_ch1s))))/dF_psi2