Пример #1
0
def monte_carlo_rexy_imxy(mm1, mm2, i22, i33, samples):
    result = 0
    m1, m2 = mm1, mm2
    i2, i3 = i22, i33
    xbsg_list = []
    ybsg_list = []
    xnedm_list = []
    ynedm_list = []
    for _ in range(samples):
        x = random.uniform(-40, 40)
        y = random.uniform(-40, 40)
        if float(bsg.BR_B_Xs_gamma(mb,mw,m1,m2,\
                        i2, complex(x,y) ,\
                        i3, complex(0.1,- y) ) / (1e-4)) >= 2.99 and float(bsg.BR_B_Xs_gamma(mb,mw,m1,m2,\
                        i2, complex(x,y) ,\
                        i3, complex(0.1,- y) ) / (1e-4)) <= 3.55 :
            xbsg_list.append(x)
            ybsg_list.append(y)
        if float(abs(dn(m1,m2, complex(i,j),\
           complex(i,-j) ) / (5.06e13) / 1e-26  )) >=0 and float(abs(dn(m1,m2, complex(i,j),\
                               complex(i,-j) ) / (5.06e13) / 1e-26  )) <=1.1:
            xnedm_list.append(x)
            ynedm_list.append(y)
            result += 1
    fig, ax = plt.subplots()
    ax.set_aspect('equal')
    ax.scatter(xbsg_list, ybsg_list, s=20, c='b')
    ax.scatter(xnedm_list, ynedm_list, s=20, c='r')
    plt.show()
    plt.close()
    return
Пример #2
0
def nedm3hdm_plot():  #NEDM figure 4 3hdm
    masss = 100  # first charged Higgs
    masss2 = 200  # first charged Higgs
    for i in np.arange(20, 100, 20):
        resultxy2imag = []
        resultxy3imag = []
        for n in np.arange(0, len(ABarray4())):
            resultxy2imag.append((exe.complnedm2(*ABarray4()[n])))
            resultxy3imag.append((exe.complnedm3(*ABarray4()[n])))
        nedm = abs(
            dn(masss, i + masss, resultxy2imag, resultxy3imag) /
            (5.06e13)) / 1e-26  # dn [GeV^{-1}] > # cm
        nedm2 = abs(
            dn(masss2, i + masss2, resultxy2imag, resultxy3imag) /
            (5.06e13)) / 1e-26  # dn [GeV^{-1}] > # cm
        #    print('empty',len(nedm),np.array(nedm).flatten())
        result = plt.contourf(exe.A, exe.B, \
                         np.resize(np.array(nedm).flatten(),len(np.array(nedm).flatten())).\
                                  reshape(len(exe.B),len(exe.A)), \
                                 levels = np.array([0.0,1.8])
                                  )
        plt.colorbar(result)
        plt.xlabel(exe.readlist[int(exe.read1)])
        plt.ylabel(exe.readlist[int(exe.read2)])
        plt.title('NEDM in 3HDM,' + str(masss) + ',' + str(i + masss))
        plt.grid(axis='y', linestyle='-',
                 color='0.75')  # show y-axis grid line
        plt.grid(axis='x', linestyle='-',
                 color='0.75')  # show x-axis grid line
        plt.show()
        plt.close
        result2 = plt.contourf(exe.A, exe.B, \
                         np.resize(np.array(nedm2).flatten(),len(np.array(nedm2).flatten())).\
                                  reshape(len(exe.B),len(exe.A)), \
                                 levels = np.array([0.0,1.8])
                                  )
        plt.colorbar(result2)
        plt.xlabel(exe.readlist[int(exe.read1)])
        plt.ylabel(exe.readlist[int(exe.read2)])
        plt.title('NEDM in 3HDM,' + str(masss2) + ',' + str(i + masss2))
        plt.grid(axis='y', linestyle='-',
                 color='0.75')  # show y-axis grid line
        plt.grid(axis='x', linestyle='-',
                 color='0.75')  # show x-axis grid line
        #    plt.axis([80,500, 0.0, 0.5])
        plt.show()
        plt.close
    return
Пример #3
0
def mp1_imxy_mp2_edm():  #3D scan for [MHp1,imxy,MHp2]against NEDM
    mp1 = np.arange(0, 550, 50)
    mp2 = np.arange(0, 550, 50)
    imxy = np.arange(0, 42, 2)
    nedmresult = []
    lista = []
    listb = []
    listc = []
    for i in mp1:
        for j in mp2:
            for m in imxy:
                lista.append(i)
                listb.append(j)
                listc.append(m)
                nedmresult.append(abs(dn(i,j,complex(0,m),\
                                complex(0,- m)) / (5.06e13)  / 1e-26 ) )
    dlist = pd.DataFrame({
        '$M_{H^{\pm}_1}}$': [*lista],
        '$M_{H^{\pm}_2}}$': [*listb],
        'delta': [*listc],
        'nedm': [*nedmresult]
    })
    dlist.to_csv \
(r'/Users/muyuansong0419/Desktop/Allen/PHDmeeting/3HDM codes/mp1mp2imxynedm.csv',\
                   index = None, header=True)
    return
Пример #4
0
def plt_A_B_bsgnedm(i, j):  # Bsgamma-result and N-EDM in {A,B} plane
    mass_axis1, mass_axis2 = i, j
    print(ABarray4()[0], mass_axis1, len(ABarray4()))
    print(ABarray4()[1], mass_axis2, len(ABarray4()))
    resultb = []
    resultn = []
    resulte = []
    #B>Xs+gamma SECTION
    for n in np.arange(0, len(ABarray4())):
        y3hdm= bsg.BR_B_Xs_gamma(mb,mw,mass_axis1,mass_axis2,\
                        exe.Y2(*ABarray4()[n] ), exe.complexyfunction(*ABarray4()[n] ),\
                        exe.Y3(*ABarray4()[n] ), exe.complexyfunction3(*ABarray4()[n] ))
        resultb.append(y3hdm / (1e-4))
        #Nedm SECTION
        nedm3hdm = abs(dn(mass_axis1,mass_axis2, exe.complexyfunction(*ABarray4()[n]),\
                    exe.complexyfunction3(*ABarray4()[n]) ) / (5.06e13)  )\
                        / 1e-26
        resultn.append(nedm3hdm)
        #eedm SECTION
        eedm3hdm = abs(de(mass_axis1,mass_axis2,exe.yconjz2(*ABarray4()[n]),\
                    exe.yconjz3(*ABarray4()[n]) ) /1e-29  )
        resulte.append(eedm3hdm)


#########
    ned = plt.contourf(exe.A, exe.B, \
           np.resize(np.array(resultn).flatten()  ,len(np.array(resultn).flatten() ) ).\
          reshape(len(exe.B),len(exe.A)) ,\
          levels = np.array([0.0,1.8]),colors = ['red']  )
    #########
    bsgamm = plt.contourf(exe.A, exe.B, \
           np.resize(np.array(resultb).flatten()  ,len(np.array(resultb).flatten() ) ).\
          reshape(len(exe.B),len(exe.A)) ,\
          levels = np.array([2.99,3.55]),colors = ['green'] )
    #########
    #    eed = plt.contourf(exe.A, exe.B, \
    #           np.resize(np.array(resulte).flatten()  ,len(np.array(resulte).flatten() ) ).\
    #          reshape(len(exe.B),len(exe.A)) ,\
    #          levels = np.array([0.0,1.1]),colors = ['blue']  )

    plt.title('BR($\\bar{B} \\to X_{s} \gamma$) and NEDM in '\
                    + str("%02d" % mass_axis1) +', ' + str("%02d"% mass_axis2) )
    plt.xlabel(exe.readlist[int(exe.read1)])
    plt.ylabel(exe.readlist[int(exe.read2)])
    #    plt.axis([0,60,-1.6,0]) #{tanbeta/tangamma,theta} plane
    #    plt.axis([0,2 * PI ,-1.6,0]) #{theta,delta} plane
    plt.axis([0, 60, 0, 60])  # {tanbeta,tangamma} plane
    plt.savefig(
        str("%02d" % mass_axis1) + str("%02d" % mass_axis2) + 'bsg.png')
    plt.show()
    plt.close()
Пример #5
0
def NEUTRONEDMtext():  #save Neutron edm result in txt file

    f = open('Neutron_EDM.txt', 'w')
    f.write('%s %s %s %s %s %s\n' % ("   N","   MH+1", "    MH+2",\
                                 "  X_1Y_1*", "   X_2Y_2*","  Result") )
    for n in range(len(ABarray4())):
        #    print('dn',n, dn(80,170,exe.complexyfunction(*ABarray4()[n]).imag, \
        #                       exe.complexyfunction3(*ABarray4()[n]).imag) )
        f.write( "%5.0f %5.1f %5.1f %10.10e %10.10e %10.15e\n" % (n,80,170,\
            - exe.complexyfunction(*ABarray4()[n]),\
            - exe.complexyfunction3(*ABarray4()[n]), \
            dn(80,170,- exe.complexyfunction(*ABarray4()[n]), \
            - exe.complexyfunction3(*ABarray4()[n])) ) )
    f.close()
    return
Пример #6
0
def rexy_imxy_bsg_nedm(mm1, mm2, i22, i33):
    #imn2min,max 0.0 42.9827952239115
    #imn2min,max 0.0 42.9827952239115
    #ren2min,max 0.0008955247801336608 43.58968705776075
    #ren3min,max 0.0013616841467565938 43.32971016574854
    m1, m2 = mm1, mm2
    i2, i3 = i22, i33
    re2 = np.arange(-43.6, 43.3)
    re3 = np.arange(-43.3, 43.6)
    im2 = np.arange(-43, 44)
    im3 = np.arange(-43, 44)
    j2 = re2 + 1j * im2
    j3 = re3 + 1j * im3
    #    print(j2.real,j3)
    resultb = []
    resultn = []
    for j in j2.imag:
        for i in j2.real:
            #B>Xs+gamma SECTION
            y3hdm= bsg.BR_B_Xs_gamma(mb,mw,m1,m2,\
                        i2, complex(i,j) ,\
                        i3, complex(10,-j) )
            resultb.append(y3hdm / (1e-4))
            #Nedm SECTION
            nedm3hdm = abs(dn(m1,m2, complex(i,j),\
                               complex(i,-j) ) / (5.06e13) / 1e-26  )
            resultn.append(nedm3hdm)
#    print(resultn)
#########
    ned = plt.contourf(j2.real, j2.imag, \
           np.resize(np.array(resultn).flatten()  ,len(np.array(resultn).flatten() ) ).\
          reshape(len(j2.imag),len(j2.real)) ,\
          levels = np.array([0.0,1.8]),colors = ['red']  )
    #########
    bsgamm = plt.contourf(j2.real, j2.imag, \
           np.resize(np.array(resultb).flatten()  ,len(np.array(resultb).flatten() ) ).\
          reshape(len(j2.imag),len(j2.real)) ,\
          levels = np.array([2.99,3.55]),colors = ['green'] )
    plt.title('BR($\\bar{B} \\to X_{s} \gamma$) and NEDM in '\
                    + str("%02d" % m1) +', ' + str("%02d"% m2) )
    plt.xlabel('Re$(X_2Y_2^*)$')
    plt.ylabel('Im$(X_2Y_2^*)$')
    #    plt.axis([-40,-15, -10,15])
    #    plt.savefig('rexy2imxy2'+ str("%02d" % m1) + str("%02d"% m2) +'.png')
    plt.show()
    plt.close()
    return
Пример #7
0
def plt_A_B_nedm(i, j):  #[A,B] plane with MHP1 = i, MHp2 = j Nedm
    resultn = []
    #nedm result
    for n in np.arange(0, len(ABarray4())):
        nedm3hdm = abs(dn(i,j, exe.complexyfunction(*ABarray4()[n]),\
                               exe.complexyfunction3(*ABarray4()[n]) ) / (5.06e13)  )
        resultn.append(nedm3hdm)
#########
    ned = plt.contourf(exe.A, exe.B, \
           np.resize(np.array(resultn).flatten()  ,len(np.array(resultn).flatten() ) ).\
          reshape(len(exe.B),len(exe.A)) ,\
          levels = np.array([0.0,1.8e-26])  )
    #           levels = np.arange(3.0,4.2,0.2),\
    #          colors = ['black','royalblue','purple','darkgreen',\
    #                    'brown','red','gray','orange','pink'])
    plt.colorbar(ned)
    plt.title('Neutron EDM with '\
                    + str("%02d" % i) +', ' + str("%02d"% j) )
    plt.xlabel(exe.readlist[int(exe.read1)])
    plt.ylabel(exe.readlist[int(exe.read2)])
    return
Пример #8
0
def nedm_mhp1_mhp2():  #[mhch1,mhch2] in 3hdm nedm result
    mhp1 = np.arange(0, 1050, 50)
    mhp2 = np.arange(0, 1050, 50)
    x2y2 = 42.4  # np.sqrt(2)
    x3y3 = -42.4  #- np.sqrt(2)
    list_1 = []
    for j in mhp2:
        for i in mhp1:
            nedm_1 = abs(dn(i,j,[complex(0,x2y2)],\
                                    [complex(0,x3y3)]) / (5.06e13)/ 1e-26 )# dn [GeV^{-1}] > # cm
            list_1.append(nedm_1)
    list_2plot = plt.contourf(mhp1,mhp2, \
               np.resize(list_1,len(list_1 )).\
               reshape(len(mhp2),len(mhp1)), \
               levels = np.array([0.0,1.8]))
    plt.colorbar(list_2plot)
    plt.axis([0, 1000, 0, 1000])
    plt.title('NEDM with IM($X_2Y_2^*$) =  42.4'+ \
              ', IM($X_3Y_3^*$) = - 42.4')
    plt.xlabel('$M_{H^{\pm}_{1}}$')
    plt.ylabel('$M_{H^{\pm}_{2}}$')
    plt.show()
    plt.close()
    return
Пример #9
0
def nedm_mhp1_massdiff():  #[mhch1,mass_differ] in 3hdm nedm result
    mass_diff = np.arange(0, 400, 50)
    mhp1 = np.arange(0, 520, 20)
    x2y2 = 42.4  #np.sqrt(2)#
    x3y3 = -42.4  #- np.sqrt(2)
    list_1 = []
    for j in mass_diff:
        for i in mhp1:
            nedm_0 = abs(dn(i,i + j,[complex(0, x2y2)],\
                                    [complex(0, x3y3)]) / (5.06e13)/ 1e-26 )# dn [GeV^{-1}] > # cm
            list_1.append(nedm_0)
    list_1plot = plt.contourf(mhp1,mass_diff, \
               np.resize(list_1,len(list_1 )).\
               reshape(len(mass_diff),len(mhp1)), \
               levels = np.array([0.0,1.8]))
    plt.colorbar(list_1plot)
    plt.axis([0, 500, 0, 20])
    plt.title('NEDM with IM($X_2Y_2^*$) =  42.4'+ \
              ', IM($X_3Y_3^*$) =  - 42.4')
    plt.xlabel('$M_{H^{\pm}_{1}}$')
    plt.ylabel('Mass difference')
    plt.show()
    plt.close()
    return
Пример #10
0
def nedm_3dparameter(
):  #3D scan for 3 mixing parameters against Neutron EDM limit
    masss = 100  # first charged Higgs
    masss2 = 200  # first charged Higgs
    masssdif = [20, 40, 60, 80]  #mass differ
    list_a = []
    list_b = []
    list_c = []
    n2 = []
    n3 = []
    result = ([], [], [], [])
    result2 = ([], [], [], [])
    print('result', result[0], type(result[0]), type(n2))
    for i in exe.the:
        for j in exe.tbe:
            #            for k in exe.tga:
            for l in exe.delta:
                my_tuple = (i, j, exe.k, l)
                two = exe.complnedm2(*my_tuple)
                three = exe.complnedm3(*my_tuple)
                list_a.append(i)
                list_b.append(j)
                list_c.append(l)

                n2.append(two)
                n3.append(three)

                result[0].append(abs(dn(masss,masss +  masssdif [0],two,\
                         three) / (5.06e13) ) / 1e-26)
                result[1].append(abs(dn(masss,masss +  masssdif [1],two,\
                         three) / (5.06e13) ) / 1e-26)
                result[2].append(abs(dn(masss,masss +  masssdif [2],two,\
                         three) / (5.06e13) ) / 1e-26)
                result[3].append(abs(dn(masss,masss +  masssdif [3],two,\
                         three) / (5.06e13) ) / 1e-26)
                result2[0].append(abs(dn(masss2,masss2 +  masssdif [0],two,\
                         three) / (5.06e13) ) / 1e-26)
                result2[1].append(abs(dn(masss2,masss2 +  masssdif [1],two,\
                         three) / (5.06e13) ) / 1e-26)
                result2[2].append(abs(dn(masss2,masss2 +  masssdif [2],two,\
                         three) / (5.06e13) ) / 1e-26)
                result2[3].append(abs(dn(masss2,masss2 +  masssdif [3],two,\
                         three) / (5.06e13) ) / 1e-26)


#    print(*np.array(result[0]) )
    print('imn2min,max', min(abs(np.array(n2).imag)),
          max(abs(np.array(n2).imag)))
    print('imn2min,max', min(abs(np.array(n3).imag)),
          max(abs(np.array(n3).imag)))
    print('ren2min,max', min(np.array(n2).real), max(np.array(n2).real))
    index = [
        i for i, j in enumerate(np.array(n2).real)
        if j == max(np.array(n2).real)
    ]  #position of max
    print('ren3min,max', min(np.array(n3).real), max(np.array(n3).real))
    #    print(len(exe.the),len(exe.tbe),len(exe.delta),len(result[0]),type(list_a),type(result[0]))
    d1 = pd.DataFrame({
        'theta': [*list_a],
        'tanbeta': [*list_b],
        'delta': [*list_c],
        'n2': [*n2]
    })
    d2 = pd.DataFrame({
        'theta': [*list_a],
        'tanbeta': [*list_b],
        'delta': [*list_c],
        'n3': [*n3]
    })
    d10 = pd.DataFrame({
        'theta': [*list_a],
        'tanbeta': [*list_b],
        'delta': [*list_c],
        'nedm': [*result[0]]
    })
    d11 = pd.DataFrame({
        'theta': [*list_a],
        'tanbeta': [*list_b],
        'delta': [*list_c],
        'nedm': [*result[1]]
    })
    d12 = pd.DataFrame({
        'theta': [*list_a],
        'tanbeta': [*list_b],
        'delta': [*list_c],
        'nedm': [*result[2]]
    })
    d13 = pd.DataFrame({
        'theta': [*list_a],
        'tanbeta': [*list_b],
        'delta': [*list_c],
        'nedm': [*result[3]]
    })
    d20 = pd.DataFrame({
        'theta': [*list_a],
        'tanbeta': [*list_b],
        'delta': [*list_c],
        'nedm': [*result2[0]]
    })
    d21 = pd.DataFrame({
        'theta': [*list_a],
        'tanbeta': [*list_b],
        'delta': [*list_c],
        'nedm': [*result2[1]]
    })
    d22 = pd.DataFrame({
        'theta': [*list_a],
        'tanbeta': [*list_b],
        'delta': [*list_c],
        'nedm': [*result2[2]]
    })
    d23 = pd.DataFrame({
        'theta': [*list_a],
        'tanbeta': [*list_b],
        'delta': [*list_c],
        'nedm': [*result2[3]]
    })
    d1.to_csv \
(r'/Users/muyuansong0419/Desktop/Allen/PHDmeeting/3HDM codes/nxy2'+str(exe.k) +'.csv',\
                   index = None, header=True)
    d2.to_csv \
(r'/Users/muyuansong0419/Desktop/Allen/PHDmeeting/3HDM codes/nxy3'+str(exe.k) +'.csv',\
                   index = None, header=True)
    d10.to_csv \
(r'/Users/muyuansong0419/Desktop/Allen/PHDmeeting/3HDM codes/n10'+str(exe.k) +'.csv',\
                   index = None, header=True)
    d11.to_csv \
(r'/Users/muyuansong0419/Desktop/Allen/PHDmeeting/3HDM codes/n11'+str(exe.k) +'.csv',\
                   index = None, header=True)
    d12.to_csv \
(r'/Users/muyuansong0419/Desktop/Allen/PHDmeeting/3HDM codes/n12'+str(exe.k) +'.csv',\
                   index = None, header=True)
    d13.to_csv \
(r'/Users/muyuansong0419/Desktop/Allen/PHDmeeting/3HDM codes/n13'+str(exe.k) +'.csv',\
                   index = None, header=True)
    d20.to_csv \
(r'/Users/muyuansong0419/Desktop/Allen/PHDmeeting/3HDM codes/n20'+str(exe.k) +'.csv',\
                   index = None, header=True)
    d21.to_csv \
(r'/Users/muyuansong0419/Desktop/Allen/PHDmeeting/3HDM codes/n21'+str(exe.k) +'.csv',\
                   index = None, header=True)
    d22.to_csv \
(r'/Users/muyuansong0419/Desktop/Allen/PHDmeeting/3HDM codes/n22'+str(exe.k) +'.csv',\
                   index = None, header=True)
    d23.to_csv \
(r'/Users/muyuansong0419/Desktop/Allen/PHDmeeting/3HDM codes/n23'+str(exe.k) +'.csv',\
                   index = None, header=True)
    return
Пример #11
0
def nedm3hdm_xy1_xy2():  # NEDM figure 4 3hdm
    ################### First charged Higgs
    masss = 200  # first charged Higgs
    masssdif = [20, 40, 60, 80]  #mass differ
    xx_ary = np.array([0.1, 0.15])
    yy_ary = np.array([0.48, 0.40, 0.32, 0.24])
    resultxy2imag = []
    resultxy3imag = []
    empty20 = []
    empty40 = []
    empty60 = []
    empty80 = []
    for n in np.arange(0, len(ABarray4())):
        resultxy2imag.append((exe.complnedm2(*ABarray4()[n])))
        resultxy3imag.append((exe.complnedm3(*ABarray4()[n])))


#    print(np.array(resultxy2imag).flatten())
    xy1 = np.array(resultxy2imag).flatten()
    xy2 = np.array(resultxy3imag).flatten()
    for i in xy1:
        for j in xy2:
            nedm20 = abs(dn(masss,masss +  masssdif [0],[i],\
                                [j]) / (5.06e13) ) / 1e-26# dn [GeV^{-1}] > # cm
            nedm40 = abs(dn(masss,masss +  masssdif [1], [i],\
                                [j]) / (5.06e13) ) / 1e-26# dn [GeV^{-1}] > # cm
            nedm60 = abs(dn(masss,masss +  masssdif [2], [i],\
                                [j]) / (5.06e13) ) / 1e-26# dn [GeV^{-1}] > # cm
            nedm80 = abs(dn(masss,masss +  masssdif [3], [i],\
                                [j]) / (5.06e13) ) / 1e-26# dn [GeV^{-1}] > # cm
            empty20.append(nedm20)
            empty40.append(nedm40)
            empty60.append(nedm60)
            empty80.append(nedm80)
    result20 = plt.contour(np.imag(xy1),np.imag(xy2), \
               np.resize(empty20,len(empty20 )).\
               reshape(len(np.imag(xy2)),len(np.imag(xy1))), \
               levels = np.array([0.0,1.8]),
               colors='green',labels='$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ + 20')
    #    plt.colorbar(result20)
    #    plt.text(4, yy_ary[0] - 0.05, r'$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ +' +  str(masssdif [0]) )
    #    plt.text(0.5, yy_ary[1] - 0.05, r'$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ +' +  str(masssdif [1]) )
    #    plt.text(0.5, yy_ary[2] - 0.05, r'$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ +' +  str(masssdif [2]) )
    #    plt.text(0.5, yy_ary[3] - 0.05, r'$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ +' +  str(masssdif [3]) )
    plt.title('NEDM with $M_{H^{\pm}_{1}}$ = ' + str("%3d" % masss))
    #    plt.title('NEDM with $M_{H^{\pm}_{1}}$ = '+ str("%3d" % masss) \
    #              + ', $M_{H^{\pm}_{2}}$ = '+ str("%3d" % (masss +  masssdif [0])) )
    #   plt.grid(axis='y', linestyle='-', color='0.75') # show y-axis grid line
    #    plt.grid(axis='x', linestyle='-', color='0.75') # show x-axis grid line
    #    plt.axis([-0.3,0.3,-0.3, 0.3])
    #    plt.xlabel('IM($X_2Y_2^*$)')
    #    plt.ylabel('IM($X_3Y_3^*$)')
    #    plt.show()
    #    plt.close()
    plt.plot(xx_ary, np.array([yy_ary[0] - 0.05] * len(xx_ary)), color='green')
    plt.plot(xx_ary, np.array([yy_ary[1] - 0.05] * len(xx_ary)), color='black')
    plt.plot(xx_ary, np.array([yy_ary[2] - 0.05] * len(xx_ary)), color='blue')
    plt.plot(xx_ary, np.array([yy_ary[3] - 0.05] * len(xx_ary)), color='red')
    plt.text(xx_ary[1] + 0.05, yy_ary[0] - 0.05,
             r'$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ +' + str(masssdif[0]))
    plt.text(xx_ary[1] + 0.05, yy_ary[1] - 0.05,
             r'$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ +' + str(masssdif[1]))
    plt.text(xx_ary[1] + 0.05, yy_ary[2] - 0.05,
             r'$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ +' + str(masssdif[2]))
    plt.text(xx_ary[1] + 0.05, yy_ary[3] - 0.05,
             r'$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ +' + str(masssdif[3]))
    #####################
    result40 = plt.contour(np.imag(xy1),np.imag(xy2), \
               np.resize(np.array(empty40).flatten(),len(np.array(empty40).flatten() )).\
               reshape(len(np.imag(xy2)),len(np.imag(xy1))), \
               levels = np.array([0.0,1.8]),
               colors='black',labels='$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ + 40')
    #    plt.title('NEDM with $M_{H^{\pm}_{1}}$ = '+ str("%3d" % masss) \
    #              + ', $M_{H^{\pm}_{2}}$ = '+ str("%3d" % (masss +  masssdif [1])) )
    #    plt.xlabel('IM($X_2Y_2^*$)')
    #    plt.ylabel('IM($X_3Y_3^*$)')
    #    plt.show()
    #    plt.close()
    #################
    result60 = plt.contour(np.imag(xy1),np.imag(xy2), \
               np.resize(np.array(empty60).flatten(),len(np.array(empty60).flatten() )).\
               reshape(len(np.imag(xy2)),len(np.imag(xy1))), \
               levels = np.array([0.0,1.8]),
               colors='blue',labels='$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ + 60')
    #    plt.title('NEDM with $M_{H^{\pm}_{1}}$ = '+ str("%3d" % masss) \
    #              + ', $M_{H^{\pm}_{2}}$ = '+ str("%3d" % (masss +  masssdif [2])) )
    #    plt.xlabel('IM($X_2Y_2^*$)')
    #    plt.ylabel('IM($X_3Y_3^*$)')
    #    plt.show()
    #    plt.close()
    result80 = plt.contour(np.imag(xy1),np.imag(xy2), \
               np.resize(np.array(empty80).flatten(),len(np.array(empty80).flatten() )).\
               reshape(len(np.imag(xy2)),len(np.imag(xy1))), \
               levels = np.array([0.0,1.8]),
               colors='red',labels='$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ + 80')
    #    plt.title('NEDM with $M_{H^{\pm}_{1}}$ = '+ str("%3d" % masss) \
    #              + ', $M_{H^{\pm}_{2}}$ = '+ str("%3d" % (masss +  masssdif [3])) )
    #    plt.axis([-2,2,-2, 1])
    plt.xlabel('IM($X_2Y_2^*$)')
    plt.ylabel('IM($X_3Y_3^*$)')
    plt.show()
    plt.close()
    return
Пример #12
0
def NEDMfigure4_plot():  #NEDM figure 4
    ################### First charged Higgs
    masss = 120  # first charged Higgs
    ################### Second charged Higgs
    masss2 = 300
    #################### mass different
    massdiffer = 20
    massdiffer_list = np.array([i for i in np.arange(20, 80, 20)])
    massdiffer_list2 = np.array([i for i in np.arange(0, 355, 50)])
    m_axis = np.array([i for i in np.arange(0, 550, 50)])
    m1_axis = np.array([i for i in np.arange(0, 1021, 1)])
    xy_axis = np.array([i for i in np.arange(0, 1.1, 0.1)])
    xy1_axis = np.array([i for i in np.arange(-5, 5.1, 0.1)])
    longarray = np.array([i for i in np.arange(-1, 1.2, 0.2)])
    arrayxy1xy2 = np.array([42, 12, 20, 40])  # Maximum of Im(XY^*) can get
    empty = []
    emptye = []
    for j in xy1_axis:
        for i in m1_axis:
            # 1GeV =  5.06e13 cm^{-1}
            nedm = abs(
                dn(i, 300, [complex(0, j)], [complex(0, 0)]) /
                (5.06e13))  # dn [GeV^{-1}] > # cm
            eedm = abs(de(i, 300, [complex(0, j)], [complex(0, 0)]))
            empty.append(nedm)
            emptye.append(eedm)
#            print('nedm',i,j,nedm )
    result = plt.contourf(m1_axis, xy1_axis, \
           np.resize(np.array(empty),len(np.array(empty) )).\
           reshape(len(xy1_axis),len(m1_axis)), \
           levels = np.array([0.0,1.8e-26])
           )
    plt.colorbar(result)
    plt.xlabel('$M_{H^{\pm}_{1}}$')
    plt.ylabel('IM($X_2Y_2^*$)')
    plt.title('NEDM in 2HDM')
    plt.grid(axis='y', linestyle='-', color='0.75')  # show y-axis grid line
    plt.grid(axis='x', linestyle='-', color='0.75')  # show x-axis grid line
    plt.axis([100, 500, 0, 1.0])
    plt.show()
    plt.close()
    resultedm = plt.contourf(m1_axis, xy1_axis, \
           np.resize(np.array(emptye),len(np.array(emptye) )).\
           reshape(len(xy1_axis),len(m1_axis)), \
           levels = np.array([0.0,1.1e-29])
           )
    plt.colorbar(resultedm)
    plt.xlabel('$M_{H^{\pm}_{1}}$')
    plt.ylabel('IM($X_2^*Z_2$)')
    plt.title('e-EDM in 2HDM')
    plt.grid(axis='y', linestyle='-', color='0.75')  # show y-axis grid line
    plt.grid(axis='x', linestyle='-', color='0.75')  # show x-axis grid line
    plt.axis([100, 500, 0, 0.005])
    plt.show()
    plt.close()
    #################
    empty3hdm = []
    empty3hdme = []
    for j in xy1_axis:
        for i in m1_axis:
            # 1GeV =  5.06e13 cm^{-1}
            nedm = abs(
                dn(i, masss2, [complex(0, j)], [complex(0, -j)]) /
                (5.06e13))  # dn [GeV^{-1}] > # cm
            eedm2 = abs(de(i, masss2, [complex(0, j)], [complex(0, -j)]))
            empty3hdm.append(nedm)
            empty3hdme.append(eedm2)
    result8 = plt.contourf(m1_axis, xy1_axis, \
                          np.resize(np.array(empty3hdm),len(np.array(empty3hdm) )).\
                          reshape(len(xy1_axis),len(m1_axis)), \
                          levels = np.array([0.0,1.8e-26])
                          )
    plt.colorbar(result8)
    plt.xlabel('$M_{H^{\pm}_{1}}$')
    plt.ylabel('IM($X_2Y_2^*$)')
    plt.title('NEDM in 3HDM with $M_{H^{\pm}_2} = $' + str(masss2))
    plt.grid(axis='y', linestyle='-', color='0.75')  # show y-axis grid line
    plt.grid(axis='x', linestyle='-', color='0.75')  # show x-axis grid line
    plt.axis([0, 500, 0, 1])
    plt.show()
    #        plt.savefig('m1' + str(masss2) + 'imxy2'+ str("%.2f" % m) + '.png' )
    plt.close()
    result8e = plt.contourf(m1_axis, xy1_axis, \
                          np.resize(np.array(empty3hdme),len(np.array(empty3hdme) )).\
                          reshape(len(xy1_axis),len(m1_axis)), \
                          levels = np.array([0.0,1.1e-29])
                          )
    plt.colorbar(result8e)
    plt.xlabel('$M_{H^{\pm}_{1}}$')
    plt.ylabel('IM($X_2^*Z_2$)')
    plt.title('e-EDM in 3HDM with $M_{H^{\pm}_2} = $' + str(masss2))
    plt.grid(axis='y', linestyle='-', color='0.75')  # show y-axis grid line
    plt.grid(axis='x', linestyle='-', color='0.75')  # show x-axis grid line
    plt.axis([0, 500, 0, 0.1])
    plt.show()
    #    plt.savefig('m1' + str(masss2) + 'imxy2'+ str("%.2f" % m) + '.png' )
    plt.close()
    ##################

    for m in arrayxy1xy2:
        threehdm = []
        threehdme = []
        for j in massdiffer_list2:
            for i in m1_axis:
                # 1GeV =  5.06e13 cm^{-1}
                nedm00 = abs(
                    dn(i, i + j, [complex(0, m)], [complex(0, -m)]) /
                    (5.06e13))  # dn [GeV^{-1}] > # cm
                eedm00 = abs(de(i, i + j, [complex(0, m)], [complex(0, -m)]))
                threehdm.append(nedm00)
                threehdme.append(eedm00)
        result9 = plt.contourf(m1_axis, massdiffer_list2, \
                          np.resize(np.array(threehdm),len(np.array(threehdm) )).\
                          reshape(len(massdiffer_list2),len(m1_axis)), \
                          levels = np.array([0.0,1.8e-26])
                          )
        plt.colorbar(result9)
        plt.xlabel('$M_{H^{\pm}_{1}}$')
        plt.ylabel('Mass difference')
        #        plt.title('n-EDM with IM($X_2Y_2^*$) = $\sqrt{2}$, IM($X_3Y_3^*$) = - $\sqrt{2}$' )
        plt.title('n-EDM with IM($X_2Y_2^*$) = '+ str('%.2g'% m) + \
              ', IM($X_3Y_3^*$) = - ' + str('%.2g'% m) )
        plt.axis([0, 500, 0, 20])
        plt.show()
        #        plt.savefig('m1masdifer'+ 'nedm.png' )
        plt.close()
        result9e = plt.contourf(m1_axis, massdiffer_list2, \
                          np.resize(np.array(threehdme),len(np.array(threehdme) )).\
                          reshape(len(massdiffer_list2),len(m1_axis)), \
                          levels = np.array([0.0,1.1e-29])
                          )

        plt.colorbar(result9e)
        plt.xlabel('$M_{H^{\pm}_{1}}$')
        plt.ylabel('Mass difference')
        plt.title('e-EDM with IM($X_2^*Z_2$) = '+ str('%.2g'% m) + \
              ', IM($X_3^*Z_3$) =  ' + str('%.2g'% - m) )
        plt.savefig('m1masdiferimxz2' + str('%.2g' % m) + 'imxz3' +
                    str('%.2g' % m) + 'eedm.png')
        plt.axis([0, 500, 0, 1])
        plt.show()
        plt.close()
#####################################
# for m in m1_axis:
    empty20 = []
    empty40 = []
    empty60 = []
    empty80 = []
    masssdif = [20, 40, 60, 80]
    xx_ary = np.array([0.35, 0.45])
    yy_ary = np.array([0.80, 0.65, 0.50, 0.35])
    for j in longarray:
        for i in longarray:
            # 1GeV =  5.06e13 cm^{-1}
            nedm20 = abs(dn(masss,masss +  masssdif [0],[complex(0,i)],\
                        [complex(0,j)]) / (5.06e13) )# dn [GeV^{-1}] > # cm
            nedm40 = abs(dn(masss,masss + masssdif [1],[complex(0,i)],\
                        [complex(0,j)]) / (5.06e13) )# dn [GeV^{-1}] > # cm
            nedm60 = abs(dn(masss,masss + masssdif [2],[complex(0,i)],\
                        [complex(0,j)]) / (5.06e13) )# dn [GeV^{-1}] > # cm
            nedm80 = abs(dn(masss,masss + masssdif [3],[complex(0,i)],\
                        [complex(0,j)]) / (5.06e13) )# dn [GeV^{-1}] > # cm
            empty20.append(nedm20)
            empty40.append(nedm40)
            empty60.append(nedm60)
            empty80.append(nedm80)
    result20 = plt.contour(longarray, longarray, \
                                   np.resize(np.array(empty20),len(np.array(empty20) )).\
                                   reshape(len(longarray),len(longarray)), \
                                   levels = np.array([0.0,1.8e-26]),
                                   colors='green',labels='$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ + 20')
    result40 = plt.contour(longarray, longarray, \
                                   np.resize(np.array(empty40),len(np.array(empty40) )).\
                                   reshape(len(longarray),len(longarray)), \
                                   levels = np.array([0.0,1.8e-26]),
                                   colors='black',labels='$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ + 40')
    result60 = plt.contour(longarray, longarray, \
                                   np.resize(np.array(empty60),len(np.array(empty60) )).\
                                   reshape(len(longarray),len(longarray)), \
                                   levels = np.array([0.0,1.8e-26]),
                                   colors='blue',labels='$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ + 60')
    result80 = plt.contour(longarray, longarray, \
                                   np.resize(np.array(empty80),len(np.array(empty80) )).\
                                   reshape(len(longarray),len(longarray)), \
                                   levels = np.array([0.0,1.8e-26]),
                                   colors='red',labels='$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ + 80')

    plt.xlabel('IM($X_2Y_2^*$)')
    plt.ylabel('IM($X_3Y_3^*$)')
    plt.plot(xx_ary, np.array([yy_ary[0]] * len(xx_ary)), color='green')
    plt.plot(xx_ary, np.array([yy_ary[1]] * len(xx_ary)), color='black')
    plt.plot(xx_ary, np.array([yy_ary[2]] * len(xx_ary)), color='blue')
    plt.plot(xx_ary, np.array([yy_ary[3]] * len(xx_ary)), color='red')
    plt.text(0.5, yy_ary[0] - 0.05,
             r'$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ +' + str(masssdif[0]))
    plt.text(0.5, yy_ary[1] - 0.05,
             r'$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ +' + str(masssdif[1]))
    plt.text(0.5, yy_ary[2] - 0.05,
             r'$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ +' + str(masssdif[2]))
    plt.text(0.5, yy_ary[3] - 0.05,
             r'$M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ +' + str(masssdif[3]))
    plt.title('NEDM with $M_{H^{\pm}_{1}}$ = ' + str("%3d" % masss))
    #    plt.title('NEDM with $M_{H^{\pm}_{2}}$ = $M_{H^{\pm}_{1}}$ +'+ str("%3d" % mn)+ 'GeV')
    #   plt.grid(axis='y', linestyle='-', color='0.75') # show y-axis grid line
    #    plt.grid(axis='x', linestyle='-', color='0.75') # show x-axis grid line
    plt.axis([-1.0, 1.0, -1.0, 1.0])
    #    plt.savefig(str("%3d" % m) + '_' + str("%3d" % (mn + m) ) \
    #                        + '_imxy2_' + '_imxy3_'+ '.png' )
    plt.show()
    plt.close()

    empty3 = []
    mass90 = 90
    for j in xy_axis:
        for i in xy_axis:
            # 1GeV =  5.06e13 cm^{-1}
            nedm3 = abs(
                dn(mass90, mass90 + massdiffer, [complex(1, i)],
                   [complex(1, j)]) / (5.06e13))  # dn [GeV^{-1}] > # cm

            empty3.append(nedm3)
#            print('nedm',i,j,nedm )
    result3 = plt.contourf(xy_axis, xy_axis, \
           np.resize(np.array(empty3),len(np.array(empty3) )).\
           reshape(len(xy_axis),len(xy_axis)), \
           levels = np.array([0,1.8e-26])
           )
    plt.colorbar(result3)
    plt.xlabel('IM($X_2Y_2^*$)')
    plt.ylabel('IM($X_3Y_3^*$)')
    plt.title('NEDM in 3HDM')
    plt.grid(axis='y', linestyle='-', color='0.75')  # show y-axis grid line
    plt.grid(axis='x', linestyle='-', color='0.75')  # show x-axis grid line
    plt.axis([-1.0, 1.0, -1.0, 1.0])
    #    plt.show()
    plt.close()

    empty4 = []
    for j in m1_axis:
        for i in m1_axis:
            # 1GeV =  5.06e13 cm^{-1}
            nedm4 = abs(
                dn(i, j, [complex(0, 42)], [complex(0, -42)]) /
                (5.06e13))  # dn [GeV^{-1}] > # cm

            empty4.append(nedm4)


#            print('nedm',i,j,nedm )
    result4 = plt.contourf(m1_axis, m1_axis, \
           np.resize(np.array(empty4),len(np.array(empty4) )).\
           reshape(len(m1_axis),len(m1_axis)), \
           levels = np.array([0.0,1.8e-26])
           )
    plt.colorbar(result4)
    plt.xlabel('$M_{H^{\pm}_{1}}$')
    plt.ylabel('$M_{H^{\pm}_{2}}$')
    plt.title('NEDM with IM($X_2Y_2^*$) = 42, IM($X_3Y_3^*$) = - 42')
    plt.grid(axis='y', linestyle='-', color='0.75')  # show y-axis grid line
    plt.grid(axis='x', linestyle='-', color='0.75')  # show x-axis grid line
    plt.axis([0, 1000, 0, 1000])
    plt.show()
    plt.close()
    return