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
예제 #2
0
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
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