Commit 96b7fd18 authored by Nicolas Nunez Barreto's avatar Nicolas Nunez Barreto

god

parent 57c540f1
...@@ -299,7 +299,7 @@ paleta = sns.color_palette("tab10") ...@@ -299,7 +299,7 @@ paleta = sns.color_palette("tab10")
compdespmedvec = [0,2,3,4,5,6] compdespmedvec = [0,2,3,4,5,6]
CompsDCA = [-100, -100, -150, -200, -250, -300, -350] CompsDCA = [-100, -150, -200, -250, -300, -350]
plt.figure() plt.figure()
...@@ -371,7 +371,7 @@ plt.ylabel('DR1 counts - mean') ...@@ -371,7 +371,7 @@ plt.ylabel('DR1 counts - mean')
plt.figure() plt.figure()
plt.errorbar(CompsDCAcol[:],MinimosFluos_Col_DR2[:],yerr=[2*i for i in list(ErrorMinimosFluos_Col_DR1)[:]],fmt='o', capsize=2, markersize=12, label='Colineal') plt.errorbar(CompsDCAcol[:],MinimosFluos_Col_DR2[:],yerr=[2*i for i in list(ErrorMinimosFluos_Col_DR1)[:]],fmt='o', capsize=2, markersize=12, label='Colineal')
plt.errorbar(CompsDCAdesp[:],MinimosFluos_Desp_DR2[:],yerr=[2*i for i in list(ErrorMinimosFluos_Desp_DR1)[:]],fmt='o', capsize=2, markersize=12, label='Desplazada') plt.errorbar(CompsDCAdesp[:],MinimosFluos_Desp_DR2[:],yerr=[2*i for i in list(ErrorMinimosFluos_Desp_DR1)[:]],fmt='o', capsize=2, markersize=12, label='Desplazada')
plt.legend() plt.legend()
plt.title('DR2') plt.title('DR2')
plt.grid() plt.grid()
plt.xlabel('Endcap voltage (mV)') plt.xlabel('Endcap voltage (mV)')
......
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Sep 1 17:58:39 2020
@author: oem
"""
import os
import numpy as np
#os.chdir('/home/oem/Nextcloud/G_liaf/liaf-TrampaAnular/Código General/EIT-CPT/Buenos Aires/Experiment Simulations/CPT scripts/Eight Level 2 repumps')
from threeLevel_2repumps_AnalysisFunctions import CalculoTeoricoDarkResonances_8levels, GetMinimaInfo, GetPlotsofFluovsAngle_8levels, PerformExperiment_8levels, FindDRFrequencies, FindRelativeFluorescencesOfDR, GenerateNoisyCPT, SmoothNoisyCPT, GetFinalMaps, GenerateNoisyCPT_fixedRabi, GenerateNoisyCPT_fit
import matplotlib.pyplot as plt
import time
from threeLevel_2repumps_AnalysisFunctions import MeasureRelativeFluorescenceFromCPT, IdentifyPolarizationCoincidences, RetrieveAbsoluteCoincidencesBetweenMaps, GetClosestIndex
#C:\Users\Usuario\Nextcloud\G_liaf\liaf-TrampaAnular\Código General\EIT-CPT\Buenos Aires\Experiment Simulations\CPT scripts\Eight Level 2 repumps
ub = 9.27e-24
h = 6.63e-34
c = (ub/h)*1e-4 #en unidades de MHz/G
#u = 1e6
u = 33.5e6
B = (u/(2*np.pi))/c
#sg, sp = 0.6, 5 #parámetros de control, saturación del doppler y repump
#rabG, rabP = sg*gPS, sp*gPD #frecuencias de rabi
gPS, gPD, = 2*np.pi*21.58e6, 2*np.pi*1.35e6 #anchos de linea de las transiciones
lw = 0.1
DopplerLaserLinewidth, RepumpLaserLinewidth, ProbeLaserLinewidth = lw, lw, lw #ancho de linea de los laseres
DetDoppler = -36 #42
DetRepumpVec = [DetDoppler+29.6]
Tvec = [0.7] #temperatura en mK
alpha = 0*(np.pi/180) #angulo entre los láseres
phidoppler, titadoppler = 0, 90
phirepump, titarepump = 0, 0
phiprobe = 0
titaprobe = 90
#Calculo las resonancias oscuras teóricas
#ResonanciasTeoricas, DRPositivas = CalculoTeoricoDarkResonances_8levels(u/(2*np.pi*1e6), titadoppler, DetDoppler, DetRepump)
#Parametros de la simulacion cpt
center = -45
span = 80
freqMin = center-span*0.5
freqMax = center+span*0.5
""" parametros para tener espectros coherentes
freqMin = -56
freqMax = 14
"""
freqStep = 1e-1
noiseamplitude = 0
RelMinMedido0Vector = []
RelMinMedido1Vector = []
RelMinMedido2Vector = []
RelMinMedido3Vector = []
RelMinMedido4Vector = []
#Sr = np.arange(0, 10, 0.2)
#Sg = np.arange(0.01, 1, 0.05)
#Sp = np.arange(0.1, 6.1, 1)
#Sg = [0.6**2]
#Sp = [2.3**2]
Sg = [1.4]
Sp = [6]
Sr = [11]
i = 0
save = False
showFigures = True
if not showFigures:
plt.ioff()
else:
plt.ion()
fig1, ax1 = plt.subplots()
offsetx = 464
ax1.plot([f-offsetx for f in FreqsDR], CountsDR, 'o')
run = True
Scale = 730
Offset = 600 #600 para 20k cuentas aprox
MaxCoherenceValue = []
for sg in Sg:
for sp in Sp:
rabG, rabP = sg*gPS, sp*gPD
for Ti in Tvec:
T = Ti*1e-3
for DetRepump in DetRepumpVec:
print(T)
for sr in Sr:
rabR = sr*gPD
#MeasuredFreq, MeasuredFluo = GenerateNoisyCPT(rabG, rabR, rabP, gPS, gPD, DetDoppler, DetRepump, u, DopplerLaserLinewidth, RepumpLaserLinewidth, ProbeLaserLinewidth, T, alpha, phidoppler, titadoppler, phiprobe, [titaprobe], phirepump, titarepump, freqMin, freqMax, freqStep, plot=False, solvemode=1, detpvec=None, noiseamplitude=noiseamplitude)
if run:
MeasuredFreq4, MeasuredFluo4 = GenerateNoisyCPT_fixedRabi(sg, sr, sp, gPS, gPD, DetDoppler, DetRepump, u, DopplerLaserLinewidth, RepumpLaserLinewidth, ProbeLaserLinewidth, T, alpha, phidoppler, titadoppler, phiprobe, [titaprobe], phirepump, titarepump, freqMin, freqMax, freqStep, plot=False, solvemode=1, detpvec=None, noiseamplitude=noiseamplitude)
#SmoothFluo = SmoothNoisyCPT(MeasuredFluo, window=9, poly=2)
SmoothFluo4 = MeasuredFluo4
#Scale = max(BestC)/max([100*s for s in SmoothFluo4])
ax1.plot(MeasuredFreq4, [Scale*100*f + Offset for f in SmoothFluo4], label=f'Sr = {sr}')
ax1.axvline(DetDoppler, linestyle='--', linewidth=1)
#if sr != 0:
#ax1.axvline(DetRepump, linestyle='--', linewidth=1)
MaxCoherenceValue.append(np.max(SmoothFluo4))
#print(titaprobe)
ax1.set_xlabel('Detuning Rebombeo (MHz)')
ax1.set_ylabel('Fluorescencia (AU)')
ax1.set_title(f'B: {round(B, 2)} G, Sdop: {round(sg, 2)}, Sp: {round(sp, 2)}, Sr: {round(sr, 2)}, lw: {lw} MHz, T: {Ti} mK')
#ax1.set_ylim(0, 8)
#ax1.axvline(DetDoppler, linestyle='dashed', color='red', linewidth=1)
#ax1.axvline(DetRepump, linestyle='dashed', color='black', linewidth=1)
#ax1.set_title('Pol Doppler y Repump: Sigma+ Sigma-, Pol Probe: PI')
#ax1.legend()
ax1.grid()
print (f'{i+1}/{len(Sg)*len(Sp)}')
i = i + 1
if save:
plt.savefig(f'Mapa_plots_100k_1mk/CPT_SMSM_sdop{round(sg, 2)}_sp{round(sp, 2)}_sr{round(sr, 2)}.jpg')
ax1.legend()
"""
plt.figure()
plt.plot(Sr, MaxCoherenceValue, 'o')
plt.xlabel('Sr')
plt.ylabel('Coherence')
"""
"""
plt.figure()
plt.plot(MeasuredFreq, [100*f for f in SmoothFluo], color='darkred')
plt.xlabel('Desintonía 866 (MHz)')
plt.ylabel('Fluorescencia (A.U.)')
plt.axvline(-30, color='darkblue', linewidth=1.2, linestyle='--')
plt.yticks(np.arange(0.4, 1.8, 0.2))
plt.ylim(0.5, 1.6)
plt.grid()
plt.figure()
plt.plot(MeasuredFreq4, [100*f for f in SmoothFluo4], color='darkred')
plt.xlabel('Desintonía 866 (MHz)')
plt.ylabel('Fluorescencia (A.U.)')
plt.axvline(-30, color='darkblue', linewidth=1.2, linestyle='--')
plt.yticks(np.arange(0.8, 2.4, 0.4))
plt.grid()
"""
#%%
from scipy.optimize import curve_fit
T = 0.5e-3
sg = 0.7
sp = 6
sr = 0
DetDoppler = -14
DetRepump = 0
FitsSp = []
FitsOffset = []
Sg = [0.87]
def FitEIT(freqs, SP, offset):
MeasuredFreq, MeasuredFluo = GenerateNoisyCPT_fit(0.87, sr, SP, gPS, gPD, DetDoppler, DetRepump, u, DopplerLaserLinewidth, RepumpLaserLinewidth, ProbeLaserLinewidth, T, alpha, phidoppler, titadoppler, phiprobe, [titaprobe], phirepump, titarepump, freqs, plot=False, solvemode=1, detpvec=None, noiseamplitude=noiseamplitude)
FinalFluo = [f*43000 + 2685 for f in MeasuredFluo]
return FinalFluo
freqs = [f-offsetx+32 for f in FreqsDR]
freqslong = np.arange(min(freqs), max(freqs)+freqs[1]-freqs[0], 0.1*(freqs[1]-freqs[0]))
popt, pcov = curve_fit(FitEIT, freqs, CountsDR, p0=[5, 700], bounds=(0, [10, 1e6]))
FitsSp.append(popt[0])
FitsOffset.append(popt[1])
print(popt)
FittedEIT = FitEIT(freqslong, *popt)
plt.figure()
plt.errorbar(freqs, CountsDR, yerr=2*np.sqrt(CountsDR), fmt='o', capsize=2, markersize=2)
plt.plot(freqslong, FitEIT(freqslong, *popt))
plt.title(f'Sdop: {round(popt[0], 2)}, Spr: {round(popt[1], 2)}, T: {T*1e3} mK, detDop: {DetDoppler} MHz')
np.savetxt('CPT_measured.txt', np.transpose([freqs, CountsDR]))
np.savetxt('CPT_fitted.txt', np.transpose([freqslong, FittedEIT]))
This source diff could not be displayed because it is too large. You can view the blob instead.
import h5py
import matplotlib.pyplot as plt
import numpy as np
import sys
import re
import ast
from scipy.optimize import curve_fit
import os
from scipy import interpolate
#Mediciones barriendo angulo del TISA y viendo kicking de resonancias oscuras
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230815_RotationalDopplerShift_v3/Data')
"""
en este codigo ploteo espectros CPT de resonancias D-D para configuracion +2/+2 y +2/-2 (usando pentaprisma)
"""
def find_nearest(array, value):
array = np.asarray(array)
idx = (np.abs(array - value)).argmin()
return idx
LOC_FILES = """VaryingBeamlocation/000014398-IR_Scan_withcal_optimized
VaryingBeamlocation/000014399-IR_Scan_withcal_optimized
VaryingBeamlocation/000014400-IR_Scan_withcal_optimized
VaryingBeamlocation/000014401-IR_Scan_withcal_optimized
VaryingBeamlocation/000014402-IR_Scan_withcal_optimized
"""
COMPMERG_FILES = """VaryingCompMerged/000014441-IR_Scan_withcal_optimized
VaryingCompMerged/000014442-IR_Scan_withcal_optimized
"""
def Split(array,n):
length=len(array)/n
splitlist = []
jj = 0
while jj<length:
partial = []
ii = 0
while ii < n:
partial.append(array[jj*n+ii])
ii = ii + 1
splitlist.append(partial)
jj = jj + 1
return splitlist
def SeeKeys(files):
for i, fname in enumerate(files.split()):
data = h5py.File(fname+'.h5', 'r') # Leo el h5: Recordar que nuestros datos estan en 'datasets'
print(fname)
print(list(data['datasets'].keys()))
print(SeeKeys(COMPMERG_FILES))
#carpeta pc nico labo escritorio:
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211101_CPT_DosLaseres_v03\Data
LocCounts = []
LocFrequencies = []
for i, fname in enumerate(LOC_FILES.split()):
print(str(i) + ' - ' + fname)
data = h5py.File(fname+'.h5', 'r')
#Amplitudes.append(np.array(data['datasets']['amplitudes']))
LocCounts.append(np.array(data['datasets']['counts_spectrum']))
LocFrequencies.append(np.array(data['datasets']['IR1_Frequencies']))
CompVoltages = []
CompCountsMerged = []
CompFrequencies = []
for i, fname in enumerate(COMPMERG_FILES.split()):
print(str(i) + ' - ' + fname)
data = h5py.File(fname+'.h5', 'r')
CompVoltages.append(np.array(data['datasets']['scanning_voltages']))
CompCountsMerged.append(np.array(data['datasets']['data_array']))
CompFrequencies.append(np.array(data['datasets']['IR1_Frequencies']))
CompCounts = []
for k in range(len(CompFrequencies)):
CompCounts.append(Split(CompCountsMerged[k],len(CompFrequencies[k])))
#%%
import seaborn as sns
"""
Resonancias DD configuracion +2/-2
"""
palette = sns.color_palette("tab10")
#powermedvec = [0,1,2,3]
powermedvec = [3]
AmpsVecs = ['Arriba', 'Abajo', 'Izquierda', 'Derecha']
plt.figure()
ftrap = 22.1
DR1 = 435.8
DR2 = 444.2
jj=0
for med in powermedvec:
plt.plot([2*f*1e-6 for f in LocFrequencies[med][1:]], [c for c in LocCounts[med][1:]], '-o', color=palette[med],markersize=2, label=f'{AmpsVecs[jj]}')
jj=jj+1
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('Counts')
plt.ylim(800,2200)
plt.grid()
#plt.legend()
plt.title('Espectros para distintas geometrías')
#%%
import seaborn as sns
"""
Resonancias DD configuracion +2/-2
"""
palette = sns.color_palette("tab10")
#powermedvec = [0,1,2,3]
powermedvec = [3,4]
plt.figure()
ftrap = 22.1
DR1 = 435.8
DR2 = 444.2
jj=0
for med in powermedvec:
plt.plot([2*f*1e-6 for f in LocFrequencies[med][1:]], [c for c in LocCounts[med][1:]], '-o', color=palette[med],markersize=2, label=f'{AmpsVecs[jj]}')
jj=jj+1
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('Counts')
plt.ylim(800,2200)
plt.grid()
#plt.legend()
plt.title('Espectros para distintas geometrías')
#%%
"""
Pongo para barrer voltajes y que me lo guarde todo mergeado.
La med 0 es barriendo dcA. Hay 8 meds entre -0.33 y 0.02 V. Las dos ultimas no sirven porque se perdio el ion.
La med 1 es barriendo compOven. El ion se perdio asi que no sirven pero igual ya tenia esas meds
"""
med=0
Voltages = CompVoltages[med]
voltvec=[0,1,2,3,4,5]
plt.figure()
for volt in voltvec:
plt.plot([2*f*1e-6 for f in CompFrequencies[med][1:]], CompCounts[med][volt][1:], label=Voltages[volt])
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('Counts')
plt.grid()
plt.legend()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment