1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# -*- coding: utf-8 -*-
"""
Created on Wed Oct 6 16:40:32 2021
@author: Nico
"""
import numpy as np
import matplotlib.pyplot as plt
def GetTemp(Gamma, Det, kb=1.38e-23, hbar=1.03e-34):
T = (1/4)*(hbar/kb)*Gamma*((Gamma/(-2*Det)) + (-2*Det/Gamma))
return np.abs(T*1e3)
GammaUV = 2*np.pi*22.4e6
Det = 2*np.pi*np.arange(1e6, 50e6, 0.1e6)
plt.figure()
plt.plot(Det/GammaUV, GetTemp(GammaUV, Det))
plt.axvline(0.5, linestyle='--', linewidth=1)
plt.xlabel('Detuning/Gamma')
plt.ylabel('Final Temp (mK)')
MinTemp = np.min(GetTemp(GammaUV, Det))
print(f'Min temp: {MinTemp} mK')
#%%
from scipy.special import jv
from scipy.optimize import curve_fit
def Lorentzian(f, A, gamma, x0):
return (A/np.pi)*0.5*gamma/(((f-x0)**2)+((0.5*gamma)**2))
def MicromotionSpectra(det, ftrap, gamma, beta, n):
P = (jv(0, beta)**2)/((det**2)+(0.5*gamma)**2)
i = 1
#print(P)
while i <= n:
P = P + ((jv(n, beta))**2)/(((det+n*ftrap)**2)+(0.5*gamma)**2) + ((jv(-n, beta))**2)/(((det-n*ftrap)**2)+(0.5*gamma)**2)
i = i + 1
#print(P)
return P
Det = np.arange(-50, 50, 0.1)
ftrap = 21
gamma = 22
beta = np.arange(0, 2, 0.05)
n = 1
anchos = []
for b in beta:
Micromotion = MicromotionSpectra(Det, ftrap, gamma, b, n)
popt, pcov = curve_fit(Lorentzian, Det, Micromotion)
anchos.append(popt[1])
plt.figure()
plt.plot(beta, anchos, 'o')
plt.xlabel('Micromotion index beta')
plt.ylabel('Apparent linewidth(MHz)')
plt.axhline(22, linewidth=1, linestyle='--')
plt.grid()
#%%
#chosenbeta = 1.25
plt.figure()
for chosenbeta in [0, 1, 1.25, 2]:
plt.plot(Det, MicromotionSpectra(Det, ftrap, gamma, chosenbeta, n), label=f'beta={chosenbeta}')
#plt.ylim(0, 0.005)
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('Fluorescencia')
plt.grid()
plt.legend()