Commit 50ae040c authored by Nicolas Nunez Barreto's avatar Nicolas Nunez Barreto

cosas de la compu de nico

parent e4750900
...@@ -181,7 +181,7 @@ Esto deberia hacerse asi para ver la oscilacion a la RF (micromocion) ...@@ -181,7 +181,7 @@ Esto deberia hacerse asi para ver la oscilacion a la RF (micromocion)
BINW = 1e-2 BINW = 1e-2
T0 = -0.4e-6 T0 = -0.4e-6
files = [19607] #el 19613 es el que muestra el pico en 48.5 Hz files = [19614] #el 19613 es el que muestra el pico en 48.5 Hz
SP_Heigths = [] SP_Heigths = []
SP_Bins = [] SP_Bins = []
...@@ -219,7 +219,7 @@ taurf = 1/freqrf ...@@ -219,7 +219,7 @@ taurf = 1/freqrf
tiemposarreglados = bin_time_arrivals(counts, taurf) tiemposarreglados = bin_time_arrivals(counts, taurf)
b = taurf/50 # Ancho de bineo b = taurf/100 # Ancho de bineo
bins = np.arange(0, taurf, b) bins = np.arange(0, taurf, b)
hist, bin_edges = np.histogram(tiemposarreglados, bins=bins) hist, bin_edges = np.histogram(tiemposarreglados, bins=bins)
......
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="288pt" height="216pt" viewBox="0 0 288 216" xmlns="http://www.w3.org/2000/svg" version="1.1">
<metadata>
<rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<cc:Work>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:date>2022-11-25T15:55:21.144086</dc:date>
<dc:format>image/svg+xml</dc:format>
<dc:creator>
<cc:Agent>
<dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<defs>
<style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>
</defs>
<g id="figure_1">
<g id="patch_1">
<path d="M 0 216
L 288 216
L 288 0
L 0 0
z
" style="fill: #ffffff"/>
</g>
<g id="axes_1">
<g id="patch_2">
<path d="M 36 189
L 259.2 189
L 259.2 25.92
L 36 25.92
z
" style="fill: #ffffff"/>
</g>
<g id="matplotlib.axis_1">
<g id="xtick_1">
<g id="line2d_1">
<defs>
<path id="m688ec78698" d="M 0 0
L 0 3.5
" style="stroke: #000000; stroke-width: 0.8"/>
</defs>
<g>
<use xlink:href="#m688ec78698" x="68.805027" y="189" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_1">
<!-- $\mathdefault{10^{-4}}$ -->
<g transform="translate(60.255027 202.146719)scale(0.09 -0.09)">
<defs>
<path id="STIXGeneral-Regular-31" d="M 2522 0
L 755 0
L 755 96
Q 1107 115 1235 227
Q 1363 339 1363 608
L 1363 3482
Q 1363 3795 1171 3795
Q 1082 3795 883 3718
L 710 3654
L 710 3744
L 1856 4326
L 1914 4307
L 1914 486
Q 1914 275 2042 185
Q 2170 96 2522 96
L 2522 0
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-30" d="M 3046 2112
Q 3046 1683 2963 1302
Q 2880 922 2717 602
Q 2554 282 2266 96
Q 1978 -90 1600 -90
Q 1210 -90 915 108
Q 621 307 461 640
Q 301 973 227 1350
Q 154 1728 154 2150
Q 154 2746 301 3222
Q 448 3699 790 4012
Q 1133 4326 1626 4326
Q 2253 4326 2649 3712
Q 3046 3098 3046 2112
z
M 2432 2080
Q 2432 3091 2217 3625
Q 2003 4160 1587 4160
Q 1190 4160 979 3622
Q 768 3085 768 2106
Q 768 1120 979 598
Q 1190 77 1600 77
Q 2003 77 2217 598
Q 2432 1120 2432 2080
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-2212" d="M 3974 1408
L 410 1408
L 410 1830
L 3974 1830
L 3974 1408
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-34" d="M 3027 1069
L 2368 1069
L 2368 0
L 1869 0
L 1869 1069
L 77 1069
L 77 1478
L 2086 4326
L 2368 4326
L 2368 1478
L 3027 1478
L 3027 1069
z
M 1869 1478
L 1869 3674
L 333 1478
L 1869 1478
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#STIXGeneral-Regular-31" transform="translate(0 0.684375)"/>
<use xlink:href="#STIXGeneral-Regular-30" transform="translate(49.999985 0.684375)"/>
<use xlink:href="#STIXGeneral-Regular-2212" transform="translate(101.574969 36.684375)scale(0.7)"/>
<use xlink:href="#STIXGeneral-Regular-34" transform="translate(149.524959 36.684375)scale(0.7)"/>
</g>
</g>
</g>
<g id="xtick_2">
<g id="line2d_2">
<g>
<use xlink:href="#m688ec78698" x="168.850203" y="189" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_2">
<!-- $\mathdefault{10^{-3}}$ -->
<g transform="translate(160.300203 202.146719)scale(0.09 -0.09)">
<defs>
<path id="STIXGeneral-Regular-33" d="M 390 3264
L 288 3290
Q 435 3770 748 4048
Q 1062 4326 1542 4326
Q 1990 4326 2265 4083
Q 2541 3840 2541 3450
Q 2541 2925 1946 2566
Q 2298 2413 2477 2227
Q 2758 1914 2758 1402
Q 2758 890 2464 506
Q 2246 211 1840 60
Q 1434 -90 979 -90
Q 262 -90 262 275
Q 262 378 339 442
Q 416 506 525 506
Q 685 506 915 339
Q 1197 141 1466 141
Q 1818 141 2058 425
Q 2298 710 2298 1120
Q 2298 1856 1632 2048
Q 1434 2112 979 2112
L 979 2202
Q 1338 2323 1517 2432
Q 2035 2726 2035 3290
Q 2035 3610 1852 3776
Q 1670 3942 1344 3942
Q 768 3942 390 3264
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#STIXGeneral-Regular-31" transform="translate(0 0.684375)"/>
<use xlink:href="#STIXGeneral-Regular-30" transform="translate(49.999985 0.684375)"/>
<use xlink:href="#STIXGeneral-Regular-2212" transform="translate(101.574969 36.684375)scale(0.7)"/>
<use xlink:href="#STIXGeneral-Regular-33" transform="translate(149.524959 36.684375)scale(0.7)"/>
</g>
</g>
</g>
<g id="xtick_3">
<g id="line2d_3">
<path d="M 38.688429 189
L 38.688429 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_4">
<defs>
<path id="mf1e68dd404" d="M 0 0
L 0 2
" style="stroke: #000000; stroke-width: 0.6"/>
</defs>
<g>
<use xlink:href="#mf1e68dd404" x="38.688429" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_4">
<g id="line2d_5">
<path d="M 46.61013 189
L 46.61013 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_6">
<g>
<use xlink:href="#mf1e68dd404" x="46.61013" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_5">
<g id="line2d_7">
<path d="M 53.307834 189
L 53.307834 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_8">
<g>
<use xlink:href="#mf1e68dd404" x="53.307834" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_6">
<g id="line2d_9">
<path d="M 59.109648 189
L 59.109648 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_10">
<g>
<use xlink:href="#mf1e68dd404" x="59.109648" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_7">
<g id="line2d_11">
<path d="M 64.227211 189
L 64.227211 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_12">
<g>
<use xlink:href="#mf1e68dd404" x="64.227211" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_8">
<g id="line2d_13">
<path d="M 98.921626 189
L 98.921626 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_14">
<g>
<use xlink:href="#mf1e68dd404" x="98.921626" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_9">
<g id="line2d_15">
<path d="M 116.538707 189
L 116.538707 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_16">
<g>
<use xlink:href="#mf1e68dd404" x="116.538707" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_10">
<g id="line2d_17">
<path d="M 129.038225 189
L 129.038225 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_18">
<g>
<use xlink:href="#mf1e68dd404" x="129.038225" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_11">
<g id="line2d_19">
<path d="M 138.733605 189
L 138.733605 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_20">
<g>
<use xlink:href="#mf1e68dd404" x="138.733605" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_12">
<g id="line2d_21">
<path d="M 146.655306 189
L 146.655306 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_22">
<g>
<use xlink:href="#mf1e68dd404" x="146.655306" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_13">
<g id="line2d_23">
<path d="M 153.35301 189
L 153.35301 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_24">
<g>
<use xlink:href="#mf1e68dd404" x="153.35301" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_14">
<g id="line2d_25">
<path d="M 159.154824 189
L 159.154824 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_26">
<g>
<use xlink:href="#mf1e68dd404" x="159.154824" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_15">
<g id="line2d_27">
<path d="M 164.272387 189
L 164.272387 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_28">
<g>
<use xlink:href="#mf1e68dd404" x="164.272387" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_16">
<g id="line2d_29">
<path d="M 198.966802 189
L 198.966802 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_30">
<g>
<use xlink:href="#mf1e68dd404" x="198.966802" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_17">
<g id="line2d_31">
<path d="M 216.583883 189
L 216.583883 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_32">
<g>
<use xlink:href="#mf1e68dd404" x="216.583883" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_18">
<g id="line2d_33">
<path d="M 229.083401 189
L 229.083401 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_34">
<g>
<use xlink:href="#mf1e68dd404" x="229.083401" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_19">
<g id="line2d_35">
<path d="M 238.77878 189
L 238.77878 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_36">
<g>
<use xlink:href="#mf1e68dd404" x="238.77878" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_20">
<g id="line2d_37">
<path d="M 246.700482 189
L 246.700482 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_38">
<g>
<use xlink:href="#mf1e68dd404" x="246.700482" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_21">
<g id="line2d_39">
<path d="M 253.398185 189
L 253.398185 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_40">
<g>
<use xlink:href="#mf1e68dd404" x="253.398185" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="xtick_22">
<g id="line2d_41">
<path d="M 259.2 189
L 259.2 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_42">
<g>
<use xlink:href="#mf1e68dd404" x="259.2" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="text_3">
<!-- UV intensity ($\mu$W/$\mu$m$^2$) -->
<g transform="translate(98.55 217.2)scale(0.1 -0.1)">
<defs>
<path id="STIXGeneral-Regular-55" d="M 4512 4237
L 4512 4115
Q 4122 4077 4016 3926
Q 3910 3776 3910 3302
L 3910 1670
Q 3910 1178 3840 896
Q 3770 614 3565 378
Q 3155 -90 2272 -90
Q 1574 -90 1184 205
Q 666 589 666 1594
L 666 3578
Q 666 3898 566 3994
Q 467 4090 90 4115
L 90 4237
L 1901 4237
L 1901 4115
Q 1517 4083 1417 3977
Q 1318 3872 1318 3514
L 1318 1517
Q 1318 1101 1369 877
Q 1421 653 1600 480
Q 1901 192 2419 192
Q 3066 192 3392 570
Q 3539 749 3584 963
Q 3629 1178 3629 1600
L 3629 3283
Q 3629 3782 3520 3936
Q 3411 4090 3027 4115
L 3027 4237
L 4512 4237
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-56" d="M 4461 4237
L 4461 4115
Q 4262 4109 4134 3990
Q 4006 3872 3872 3533
L 2451 -70
L 2355 -70
L 794 3411
Q 589 3866 467 3987
Q 346 4109 102 4115
L 102 4237
L 1798 4237
L 1798 4115
L 1619 4102
Q 1331 4083 1331 3904
Q 1331 3776 1581 3219
L 2554 1030
L 3494 3392
Q 3616 3699 3616 3853
Q 3616 3898 3606 3933
Q 3597 3968 3584 3993
Q 3571 4019 3536 4038
Q 3501 4058 3481 4067
Q 3462 4077 3411 4086
Q 3360 4096 3337 4099
Q 3315 4102 3248 4108
Q 3181 4115 3155 4115
L 3155 4237
L 4461 4237
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-20" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-69" d="M 1152 4045
Q 1152 3904 1056 3811
Q 960 3718 819 3718
Q 685 3718 592 3811
Q 499 3904 499 4045
Q 499 4179 595 4275
Q 691 4371 826 4371
Q 966 4371 1059 4275
Q 1152 4179 1152 4045
z
M 1619 0
L 102 0
L 102 96
Q 435 115 521 211
Q 608 307 608 666
L 608 2118
Q 608 2342 563 2432
Q 518 2522 397 2522
Q 243 2522 128 2490
L 128 2592
L 1120 2944
L 1146 2918
L 1146 672
Q 1146 314 1226 218
Q 1306 122 1619 96
L 1619 0
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-6e" d="M 3104 0
L 1773 0
L 1779 96
Q 2016 115 2096 233
Q 2176 352 2176 672
L 2176 1946
Q 2176 2592 1709 2592
Q 1549 2592 1408 2515
Q 1267 2438 1050 2227
L 1050 461
Q 1050 269 1136 192
Q 1222 115 1466 96
L 1466 0
L 115 0
L 115 96
Q 358 115 435 214
Q 512 314 512 602
L 512 2157
Q 512 2394 467 2483
Q 422 2573 288 2573
Q 160 2573 102 2547
L 102 2656
Q 550 2784 979 2944
L 1030 2925
L 1030 2426
L 1037 2426
Q 1491 2944 1958 2944
Q 2323 2944 2518 2688
Q 2714 2432 2714 1958
L 2714 544
Q 2714 288 2790 205
Q 2867 122 3104 96
L 3104 0
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-74" d="M 1702 493
L 1786 422
Q 1478 -64 1011 -64
Q 448 -64 448 749
L 448 2675
L 109 2675
Q 83 2694 83 2720
Q 83 2771 192 2842
Q 435 2982 813 3526
Q 826 3546 874 3606
Q 922 3667 941 3706
Q 986 3706 986 3622
L 986 2880
L 1632 2880
L 1632 2675
L 986 2675
L 986 845
Q 986 538 1062 403
Q 1139 269 1318 269
Q 1510 269 1702 493
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-65" d="M 2611 1050
L 2714 1005
Q 2330 -64 1376 -64
Q 813 -64 486 329
Q 160 723 160 1389
Q 160 2074 525 2509
Q 890 2944 1485 2944
Q 2061 2944 2374 2502
Q 2560 2246 2592 1773
L 621 1773
Q 646 1370 700 1158
Q 755 947 915 730
Q 1184 378 1626 378
Q 1939 378 2153 531
Q 2368 685 2611 1050
z
M 634 1978
L 1939 1978
Q 1882 2381 1750 2547
Q 1619 2714 1312 2714
Q 1043 2714 864 2525
Q 685 2336 634 1978
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-73" d="M 998 1926
L 1664 1523
Q 1984 1331 2105 1164
Q 2227 998 2227 736
Q 2227 416 1961 176
Q 1696 -64 1331 -64
Q 1030 -64 864 -6
Q 691 51 570 51
Q 461 51 416 -26
L 333 -26
L 333 979
L 435 979
Q 538 512 730 294
Q 922 77 1248 77
Q 1485 77 1632 211
Q 1779 346 1779 550
Q 1779 845 1440 1030
L 1094 1222
Q 326 1651 326 2150
Q 326 2522 566 2730
Q 806 2938 1210 2938
Q 1491 2938 1638 2867
Q 1754 2816 1818 2816
Q 1862 2816 1920 2880
L 1990 2880
L 2022 2010
L 1926 2010
Q 1818 2445 1654 2621
Q 1491 2797 1203 2797
Q 986 2797 854 2688
Q 723 2579 723 2362
Q 723 2253 796 2128
Q 870 2003 998 1926
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-79" d="M 3040 2880
L 3040 2784
Q 2925 2771 2854 2700
Q 2784 2630 2720 2458
L 1760 -160
Q 1510 -838 1257 -1116
Q 1005 -1395 640 -1395
Q 435 -1395 313 -1289
Q 192 -1184 192 -1024
Q 192 -902 272 -816
Q 352 -730 467 -730
Q 653 -730 800 -813
Q 883 -858 966 -858
Q 1101 -858 1286 -576
Q 1376 -448 1459 -211
Q 1542 26 1542 115
Q 1542 198 1274 762
L 429 2566
Q 346 2752 90 2790
L 90 2880
L 1402 2880
L 1402 2784
Q 1197 2778 1117 2739
Q 1037 2701 1037 2611
Q 1037 2541 1120 2349
L 1837 749
L 2458 2515
Q 2483 2573 2483 2630
Q 2483 2784 2189 2784
L 2189 2880
L 3040 2880
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-28" d="M 1946 -1030
L 1869 -1133
Q 1126 -710 716 32
Q 307 774 307 1613
Q 307 3386 1888 4326
L 1946 4224
Q 1293 3667 1075 3126
Q 858 2586 858 1632
Q 858 685 1082 96
Q 1306 -493 1946 -1030
z
" transform="scale(0.015625)"/>
<path id="DejaVuSans-Oblique-3bc" d="M -84 -1331
L 856 3500
L 1434 3500
L 1009 1322
Q 997 1256 987 1175
Q 978 1094 978 1013
Q 978 722 1161 565
Q 1344 409 1684 409
Q 2147 409 2431 671
Q 2716 934 2816 1459
L 3213 3500
L 3788 3500
L 3266 809
Q 3253 750 3248 706
Q 3244 663 3244 628
Q 3244 531 3283 486
Q 3322 441 3406 441
Q 3438 441 3492 456
Q 3547 472 3647 513
L 3559 50
Q 3422 -19 3297 -55
Q 3172 -91 3053 -91
Q 2847 -91 2730 40
Q 2613 172 2613 403
Q 2438 153 2195 31
Q 1953 -91 1625 -91
Q 1334 -91 1117 43
Q 900 178 831 397
L 494 -1331
L -84 -1331
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-57" d="M 5965 4237
L 5965 4115
Q 5709 4064 5616 3990
Q 5523 3917 5434 3667
Q 4704 1709 4128 -70
L 4032 -70
Q 3642 1011 3008 2637
L 2022 -70
L 1926 -70
Q 1709 576 1277 1753
Q 845 2931 698 3347
Q 538 3808 406 3958
Q 275 4109 32 4115
L 32 4237
L 1594 4237
L 1594 4115
Q 1357 4109 1270 4064
Q 1184 4019 1184 3917
Q 1184 3808 1254 3616
L 2176 1210
L 2842 3021
L 2662 3501
Q 2509 3917 2400 4013
Q 2291 4109 2010 4115
L 2010 4237
L 3706 4237
L 3706 4115
Q 3213 4102 3213 3891
Q 3213 3808 3322 3520
L 4237 1190
L 5043 3360
Q 5152 3667 5152 3853
Q 5152 4109 4704 4115
L 4704 4237
L 5965 4237
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-2f" d="M 1837 4326
L 378 -90
L -58 -90
L 1408 4326
L 1837 4326
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-6d" d="M 4960 0
L 3565 0
L 3565 96
Q 3834 122 3907 208
Q 3981 294 3981 576
L 3981 1894
Q 3981 2278 3869 2444
Q 3757 2611 3488 2611
Q 3264 2611 3107 2521
Q 2950 2432 2803 2221
L 2803 608
Q 2803 301 2896 201
Q 2989 102 3264 96
L 3264 0
L 1830 0
L 1830 96
Q 2112 115 2189 188
Q 2266 262 2266 550
L 2266 1901
Q 2266 2611 1850 2611
Q 1670 2611 1468 2531
Q 1267 2451 1171 2336
Q 1088 2240 1088 2227
L 1088 448
Q 1088 243 1177 176
Q 1267 109 1523 96
L 1523 0
L 102 0
L 102 96
Q 371 102 460 195
Q 550 288 550 563
L 550 2150
Q 550 2387 499 2480
Q 448 2573 326 2573
Q 230 2573 122 2547
L 122 2656
Q 557 2778 1011 2944
L 1062 2925
L 1062 2451
L 1075 2451
Q 1363 2752 1584 2848
Q 1805 2944 2054 2944
Q 2560 2944 2733 2406
Q 3232 2944 3776 2944
Q 4518 2944 4518 1792
L 4518 493
Q 4518 282 4582 202
Q 4646 122 4794 109
L 4960 96
L 4960 0
z
" transform="scale(0.015625)"/>
<path id="DejaVuSans-32" d="M 1228 531
L 3431 531
L 3431 0
L 469 0
L 469 531
Q 828 903 1448 1529
Q 2069 2156 2228 2338
Q 2531 2678 2651 2914
Q 2772 3150 2772 3378
Q 2772 3750 2511 3984
Q 2250 4219 1831 4219
Q 1534 4219 1204 4116
Q 875 4013 500 3803
L 500 4441
Q 881 4594 1212 4672
Q 1544 4750 1819 4750
Q 2544 4750 2975 4387
Q 3406 4025 3406 3419
Q 3406 3131 3298 2873
Q 3191 2616 2906 2266
Q 2828 2175 2409 1742
Q 1991 1309 1228 531
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-29" d="M 186 4224
L 262 4326
Q 992 3891 1408 3148
Q 1824 2406 1824 1581
Q 1824 -166 243 -1133
L 186 -1030
Q 845 -486 1059 54
Q 1274 595 1274 1562
Q 1274 2534 1059 3120
Q 845 3706 186 4224
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#STIXGeneral-Regular-55" transform="translate(0 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-56" transform="translate(72.199982 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-20" transform="translate(144.399963 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-69" transform="translate(169.399948 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-6e" transform="translate(197.199936 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-74" transform="translate(247.199921 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-65" transform="translate(274.999908 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-6e" transform="translate(319.399902 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-73" transform="translate(369.399887 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-69" transform="translate(408.299881 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-74" transform="translate(436.099869 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-79" transform="translate(463.899857 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-20" transform="translate(513.899841 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-28" transform="translate(538.899826 0.765625)"/>
<use xlink:href="#DejaVuSans-Oblique-3bc" transform="translate(572.199814 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-57" transform="translate(635.822861 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-2f" transform="translate(730.222855 0.765625)"/>
<use xlink:href="#DejaVuSans-Oblique-3bc" transform="translate(758.022842 0.765625)"/>
<use xlink:href="#STIXGeneral-Regular-6d" transform="translate(821.645889 0.765625)"/>
<use xlink:href="#DejaVuSans-32" transform="translate(900.402908 39.046875)scale(0.7)"/>
<use xlink:href="#STIXGeneral-Regular-29" transform="translate(947.673416 0.765625)"/>
</g>
</g>
</g>
<g id="matplotlib.axis_2">
<g id="ytick_1">
<g id="line2d_43">
<defs>
<path id="m6e1640a794" d="M 0 0
L -3.5 0
" style="stroke: #000000; stroke-width: 0.8"/>
</defs>
<g>
<use xlink:href="#m6e1640a794" x="36" y="139.462172" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_4">
<!-- $\mathdefault{10^{0}}$ -->
<g transform="translate(16.22 142.535531)scale(0.09 -0.09)">
<use xlink:href="#STIXGeneral-Regular-31" transform="translate(0 0.684375)"/>
<use xlink:href="#STIXGeneral-Regular-30" transform="translate(49.999985 0.684375)"/>
<use xlink:href="#STIXGeneral-Regular-30" transform="translate(101.574969 36.684375)scale(0.7)"/>
</g>
</g>
</g>
<g id="ytick_2">
<g id="line2d_44">
<g>
<use xlink:href="#m6e1640a794" x="36" y="68.589563" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_5">
<!-- $\mathdefault{10^{1}}$ -->
<g transform="translate(16.22 71.662922)scale(0.09 -0.09)">
<use xlink:href="#STIXGeneral-Regular-31" transform="translate(0 0.684375)"/>
<use xlink:href="#STIXGeneral-Regular-30" transform="translate(49.999985 0.684375)"/>
<use xlink:href="#STIXGeneral-Regular-31" transform="translate(101.574969 36.684375)scale(0.7)"/>
</g>
</g>
</g>
<g id="ytick_3">
<g id="line2d_45">
<path d="M 36 189
L 259.2 189
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_46">
<defs>
<path id="m57ee3df64b" d="M 0 0
L -2 0
" style="stroke: #000000; stroke-width: 0.6"/>
</defs>
<g>
<use xlink:href="#m57ee3df64b" x="36" y="189" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_4">
<g id="line2d_47">
<path d="M 36 176.519953
L 259.2 176.519953
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_48">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="176.519953" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_5">
<g id="line2d_49">
<path d="M 36 167.665219
L 259.2 167.665219
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_50">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="167.665219" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_6">
<g id="line2d_51">
<path d="M 36 160.796953
L 259.2 160.796953
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_52">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="160.796953" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_7">
<g id="line2d_53">
<path d="M 36 155.185172
L 259.2 155.185172
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_54">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="155.185172" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_8">
<g id="line2d_55">
<path d="M 36 150.440478
L 259.2 150.440478
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_56">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="150.440478" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_9">
<g id="line2d_57">
<path d="M 36 146.330437
L 259.2 146.330437
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_58">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="146.330437" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_10">
<g id="line2d_59">
<path d="M 36 142.705125
L 259.2 142.705125
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_60">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="142.705125" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_11">
<g id="line2d_61">
<path d="M 36 118.127391
L 259.2 118.127391
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_62">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="118.127391" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_12">
<g id="line2d_63">
<path d="M 36 105.647344
L 259.2 105.647344
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_64">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="105.647344" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_13">
<g id="line2d_65">
<path d="M 36 96.792609
L 259.2 96.792609
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_66">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="96.792609" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_14">
<g id="line2d_67">
<path d="M 36 89.924344
L 259.2 89.924344
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_68">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="89.924344" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_15">
<g id="line2d_69">
<path d="M 36 84.312562
L 259.2 84.312562
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_70">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="84.312562" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_16">
<g id="line2d_71">
<path d="M 36 79.567869
L 259.2 79.567869
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_72">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="79.567869" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_17">
<g id="line2d_73">
<path d="M 36 75.457828
L 259.2 75.457828
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_74">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="75.457828" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_18">
<g id="line2d_75">
<path d="M 36 71.832515
L 259.2 71.832515
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_76">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="71.832515" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_19">
<g id="line2d_77">
<path d="M 36 47.254781
L 259.2 47.254781
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_78">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="47.254781" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_20">
<g id="line2d_79">
<path d="M 36 34.774734
L 259.2 34.774734
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_80">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="34.774734" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="ytick_21">
<g id="line2d_81">
<path d="M 36 25.92
L 259.2 25.92
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #b0b0b0; stroke-opacity: 0.2; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_82">
<g>
<use xlink:href="#m57ee3df64b" x="36" y="25.92" style="stroke: #000000; stroke-width: 0.6"/>
</g>
</g>
</g>
<g id="text_6">
<!-- Characteristic time ($\mu$s) -->
<g transform="translate(10.049687 155.11)rotate(-90)scale(0.1 -0.1)">
<defs>
<path id="STIXGeneral-Regular-43" d="M 3930 838
L 4051 723
Q 3482 -90 2304 -90
Q 1376 -90 794 480
Q 179 1082 179 2080
Q 179 3014 755 3661
Q 1357 4326 2310 4326
Q 2720 4326 3072 4230
Q 3475 4115 3514 4115
Q 3725 4115 3782 4326
L 3910 4326
L 3968 2874
L 3821 2874
Q 3718 3334 3488 3584
Q 3034 4070 2458 4070
Q 1747 4070 1334 3548
Q 922 3027 922 2182
Q 922 1152 1382 653
Q 1811 192 2522 192
Q 2944 192 3251 339
Q 3558 486 3930 838
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-68" d="M 3117 0
L 1760 0
L 1760 96
Q 2042 128 2118 224
Q 2195 320 2195 653
L 2195 1920
Q 2195 2598 1722 2598
Q 1530 2598 1370 2508
Q 1210 2419 1005 2195
L 1005 653
Q 1005 320 1081 224
Q 1158 128 1440 96
L 1440 0
L 58 0
L 58 96
Q 333 134 400 224
Q 467 314 467 653
L 467 3667
Q 467 3872 406 3933
Q 346 3994 141 3994
Q 83 3994 64 3987
L 64 4090
L 237 4141
Q 730 4288 973 4371
L 1005 4352
L 1005 2406
Q 1229 2694 1446 2819
Q 1664 2944 1946 2944
Q 2733 2944 2733 1926
L 2733 653
Q 2733 320 2793 233
Q 2854 147 3117 96
L 3117 0
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-61" d="M 2829 422
L 2829 243
Q 2586 -64 2253 -64
Q 1888 -64 1843 403
L 1837 403
Q 1427 -64 909 -64
Q 608 -64 422 112
Q 237 288 237 602
Q 237 1050 685 1350
Q 992 1555 1837 1869
L 1837 2214
Q 1837 2502 1699 2646
Q 1562 2790 1338 2790
Q 1146 2790 1018 2697
Q 890 2605 890 2477
Q 890 2419 909 2348
Q 928 2278 928 2208
Q 928 2112 841 2029
Q 755 1946 634 1946
Q 525 1946 441 2029
Q 358 2112 358 2240
Q 358 2547 685 2752
Q 986 2944 1421 2944
Q 1939 2944 2176 2656
Q 2291 2522 2323 2384
Q 2355 2246 2355 1946
L 2355 723
Q 2355 301 2554 301
Q 2682 301 2829 422
z
M 1837 813
L 1837 1715
Q 1248 1510 1018 1293
Q 800 1094 800 800
Q 800 557 921 432
Q 1043 307 1242 307
Q 1453 307 1613 410
Q 1747 506 1792 589
Q 1837 672 1837 813
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-72" d="M 1024 2931
L 1024 2342
Q 1267 2688 1430 2816
Q 1594 2944 1792 2944
Q 1958 2944 2051 2854
Q 2144 2765 2144 2605
Q 2144 2470 2077 2393
Q 2010 2317 1894 2317
Q 1773 2317 1638 2445
Q 1536 2541 1472 2541
Q 1338 2541 1181 2355
Q 1024 2170 1024 2016
L 1024 576
Q 1024 301 1133 205
Q 1242 109 1568 96
L 1568 0
L 32 0
L 32 96
Q 339 154 412 224
Q 486 294 486 538
L 486 2138
Q 486 2349 438 2435
Q 390 2522 269 2522
Q 166 2522 45 2496
L 45 2598
Q 448 2726 992 2944
L 1024 2931
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-63" d="M 2547 998
L 2637 941
Q 2362 403 2112 205
Q 1786 -64 1376 -64
Q 845 -64 502 336
Q 160 736 160 1357
Q 160 2170 698 2618
Q 1094 2944 1562 2944
Q 1965 2944 2256 2749
Q 2547 2554 2547 2285
Q 2547 2176 2457 2096
Q 2368 2016 2246 2016
Q 2022 2016 1939 2310
L 1901 2451
Q 1850 2630 1773 2694
Q 1696 2758 1523 2758
Q 1133 2758 893 2451
Q 653 2144 653 1645
Q 653 1094 928 745
Q 1203 397 1645 397
Q 1920 397 2118 528
Q 2317 659 2547 998
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#STIXGeneral-Regular-43" transform="translate(0 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-68" transform="translate(66.699997 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-61" transform="translate(116.699982 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-72" transform="translate(161.099976 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-61" transform="translate(194.399963 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-63" transform="translate(238.799957 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-74" transform="translate(283.199951 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-65" transform="translate(310.999939 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-72" transform="translate(355.399933 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-69" transform="translate(388.699921 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-73" transform="translate(416.499908 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-74" transform="translate(455.399902 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-69" transform="translate(483.19989 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-63" transform="translate(510.999878 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-20" transform="translate(555.399872 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-74" transform="translate(580.399857 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-69" transform="translate(608.199844 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-6d" transform="translate(635.999832 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-65" transform="translate(713.79982 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-20" transform="translate(758.199814 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-28" transform="translate(783.199799 0.703125)"/>
<use xlink:href="#DejaVuSans-Oblique-3bc" transform="translate(816.499786 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-73" transform="translate(880.122833 0.703125)"/>
<use xlink:href="#STIXGeneral-Regular-29" transform="translate(919.022827 0.703125)"/>
</g>
</g>
</g>
<g id="line2d_83">
<path d="M 32.437395 102.4831
L 47.0568 112.00739
L 62.553994 121.775394
L 73.953477 128.683486
L 85.609297 135.446127
L 94.79048 140.521344
L 104.070076 145.39348
L 113.091812 149.854737
L 121.687157 153.830229
L 129.794142 157.318117
L 132.482571 158.416643
L 140.404273 161.481331
L 147.101976 163.86963
L 158.021354 167.364983
L 166.740308 169.808939
L 173.998653 171.618209
L 183.020389 173.598038
L 192.715769 175.418651
L 202.411148 176.95299
L 211.757537 178.192873
L 221.732332 179.291384
L 232.527747 180.257942
L 244.590587 181.112088
L 258.546635 181.863492
L 274.376773 182.481899
L 279.970797 182.653897
L 279.970797 182.653897
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #000000; stroke-width: 0.5; stroke-linecap: square"/>
</g>
<g id="line2d_84">
<path d="M 32.437395 92.480012
L 52.858615 106.01781
L 66.695132 114.91793
L 80.171075 123.301404
L 92.670593 130.761202
L 102.365972 136.294624
L 111.712361 141.38628
L 120.558546 145.959276
L 128.859718 150.011424
L 132.482571 151.702679
L 140.404273 155.229178
L 147.101976 158.020566
L 158.021354 162.185206
L 166.740308 165.161918
L 173.998653 167.405074
L 183.020389 169.902958
L 190.487123 171.736537
L 198.788295 173.540499
L 207.335174 175.157891
L 215.771072 176.536155
L 224.952255 177.815173
L 235.059477 178.989099
L 245.887671 180.013687
L 257.58106 180.894673
L 270.926623 181.669599
L 279.970797 182.082473
L 279.970797 182.082473
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #000000; stroke-width: 0.5; stroke-linecap: square"/>
</g>
<g id="line2d_85">
<path d="M 32.437395 79.932333
L 52.858615 93.770011
L 70.475696 105.431418
L 85.609297 115.158989
L 98.743119 123.312661
L 110.287674 130.201617
L 120.558546 136.068102
L 129.794142 141.099339
L 132.482571 142.516288
L 140.404273 146.557047
L 147.101976 149.807721
L 158.021354 154.758038
L 166.740308 158.382391
L 173.998653 161.168737
L 183.020389 164.335057
L 190.487123 166.707159
L 198.788295 169.085173
L 207.335174 171.258461
L 215.771072 173.144231
L 223.905239 174.735098
L 232.527747 176.19765
L 241.874136 177.548407
L 251.848931 178.752619
L 262.644346 179.818444
L 274.376773 180.742614
L 279.970797 181.110563
L 279.970797 181.110563
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #000000; stroke-width: 0.5; stroke-linecap: square"/>
</g>
<g id="line2d_86">
<path d="M 32.437395 67.951891
L 57.976178 85.471633
L 77.173399 98.371003
L 92.670593 108.53026
L 107.289998 117.828308
L 119.399835 125.259172
L 130.708893 131.924621
L 140.404273 137.389986
L 152.903791 144.042243
L 162.59917 148.857443
L 170.520872 152.546355
L 180.216251 156.740841
L 188.137953 159.894871
L 196.856907 163.075205
L 204.115252 165.488766
L 211.757537 167.802602
L 219.445011 169.900592
L 227.949931 171.964378
L 235.871632 173.657064
L 244.590587 175.28269
L 253.488713 176.707663
L 263.076678 178.006706
L 273.029407 179.128088
L 279.970797 179.79073
L 279.970797 179.79073
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #000000; stroke-width: 0.5; stroke-linecap: square"/>
</g>
<g id="line2d_87">
<path d="M 32.437395 57.241921
L 62.553994 78.069567
L 82.975214 91.938722
L 100.592295 103.640478
L 115.725896 113.416044
L 128.859718 121.624009
L 140.404273 128.572169
L 152.903791 135.752748
L 162.59917 141.03514
L 170.520872 145.140331
L 180.216251 149.880884
L 188.137953 153.50477
L 196.856907 157.218573
L 204.115252 160.082417
L 211.757537 162.869383
L 219.445011 165.435381
L 226.973506 167.719775
L 235.059477 169.92773
L 243.253587 171.916221
L 251.28829 173.636248
L 259.955917 175.254903
L 268.716872 176.662873
L 278.184967 177.953695
L 279.970797 178.17265
L 279.970797 178.17265
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #000000; stroke-width: 0.5; stroke-linecap: square"/>
</g>
<g id="line2d_88">
<path d="M 32.437395 47.78551
L 66.695132 71.605028
L 90.441947 87.839305
L 108.814683 100.135547
L 123.860063 109.953182
L 132.482571 115.446178
L 147.101976 124.479243
L 158.021354 130.947295
L 166.740308 135.907989
L 177.218575 141.594665
L 185.654473 145.929247
L 194.835656 150.374987
L 202.411148 153.814519
L 210.33285 157.178118
L 218.254551 160.294994
L 225.974633 163.090468
L 233.388153 165.549124
L 241.167631 167.893871
L 248.970457 170.009817
L 257.090105 171.971181
L 265.176076 173.694241
L 273.708313 175.281142
L 279.970797 176.306562
L 279.970797 176.306562
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #000000; stroke-width: 0.5; stroke-linecap: square"/>
</g>
<g id="line2d_89">
<path d="M 32.437395 39.408864
L 70.475696 65.955708
L 96.811731 84.050502
L 116.985377 97.626865
L 132.482571 107.801275
L 147.101976 117.118622
L 158.021354 123.849883
L 170.520872 131.259094
L 180.216251 136.748462
L 190.487123 142.279261
L 198.788295 146.510477
L 207.335174 150.622773
L 215.771072 154.421715
L 223.905239 157.827385
L 231.649958 160.827187
L 239.719195 163.696499
L 247.147152 166.106503
L 255.068854 168.435967
L 263.076678 170.545674
L 270.926623 172.38528
L 279.087056 174.072007
L 279.970797 174.241555
L 279.970797 174.241555
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #000000; stroke-width: 0.5; stroke-linecap: square"/>
</g>
<g id="line2d_90">
<path d="M 32.437395 31.931449
L 73.953477 60.982867
L 100.592295 79.367582
L 121.687157 93.660712
L 132.482571 100.840069
L 147.101976 110.363787
L 162.59917 120.135147
L 173.998653 127.050684
L 185.654473 133.82811
L 194.835656 138.92221
L 204.115252 143.821912
L 213.136988 148.319891
L 221.732332 152.340806
L 229.839318 155.881624
L 237.451773 158.974347
L 245.243969 161.901165
L 252.948967 164.555099
L 260.870668 167.035955
L 268.716872 169.250606
L 276.638574 171.250336
L 279.970797 172.023339
L 279.970797 172.023339
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #000000; stroke-width: 0.5; stroke-linecap: square"/>
</g>
<g id="line2d_91">
<path d="M 32.437395 25.199749
L 77.173399 56.566259
L 105.709858 76.31879
L 127.904755 91.412653
L 140.404273 99.753144
L 158.021354 111.230719
L 170.520872 119.11573
L 183.020389 126.724787
L 194.835656 133.607466
L 204.115252 138.764343
L 213.136988 143.539098
L 221.732332 147.84612
L 229.839318 151.673887
L 238.220803 155.376432
L 245.887671 158.526029
L 253.488713 161.418329
L 261.320922 164.155707
L 269.093057 166.629
L 276.952287 168.888132
L 279.970797 169.692723
L 279.970797 169.692723
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #000000; stroke-width: 0.5; stroke-linecap: square"/>
</g>
<g id="LineCollection_1">
<path d="M 57.849098 110.120762
L 57.849098 108.882171
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 75.466179 125.020243
L 75.466179 123.034869
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 105.582778 138.669649
L 105.582778 135.629529
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 120.716379 147.750448
L 120.716379 143.732634
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 139.177158 156.24676
L 139.177158 151.05425
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 153.316458 162.611057
L 153.316458 156.340122
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 165.815976 166.49562
L 165.815976 159.470833
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 186.350197 172.570627
L 186.350197 164.205022
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 202.630278 177.661639
L 202.630278 168.005903
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 215.612032 180.83293
L 215.612032 170.290623
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 225.594205 182.116714
L 225.594205 171.196547
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 233.133093 183.925322
L 233.133093 172.453749
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 238.378636 184.308032
L 238.378636 172.716876
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 242.286803 185.079655
L 242.286803 173.244275
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
</g>
<g id="line2d_92">
<defs>
<path id="m2b92d975f8" d="M 2 0
L -2 -0
" style="stroke: #3949ab"/>
</defs>
<g clip-path="url(#p3e7f1466a0)">
<use xlink:href="#m2b92d975f8" x="57.849098" y="110.120762" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="75.466179" y="125.020243" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="105.582778" y="138.669649" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="120.716379" y="147.750448" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="139.177158" y="156.24676" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="153.316458" y="162.611057" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="165.815976" y="166.49562" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="186.350197" y="172.570627" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="202.630278" y="177.661639" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="215.612032" y="180.83293" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="225.594205" y="182.116714" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="233.133093" y="183.925322" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="238.378636" y="184.308032" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="242.286803" y="185.079655" style="fill: #3949ab; stroke: #3949ab"/>
</g>
</g>
<g id="line2d_93">
<g clip-path="url(#p3e7f1466a0)">
<use xlink:href="#m2b92d975f8" x="57.849098" y="108.882171" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="75.466179" y="123.034869" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="105.582778" y="135.629529" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="120.716379" y="143.732634" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="139.177158" y="151.05425" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="153.316458" y="156.340122" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="165.815976" y="159.470833" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="186.350197" y="164.205022" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="202.630278" y="168.005903" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="215.612032" y="170.290623" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="225.594205" y="171.196547" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="233.133093" y="172.453749" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="238.378636" y="172.716876" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="242.286803" y="173.244275" style="fill: #3949ab; stroke: #3949ab"/>
</g>
</g>
<g id="LineCollection_2">
<path d="M 139.177158 124.759345
L 139.177158 122.790204
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 153.316458 135.91478
L 153.316458 133.123501
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 165.815976 140.729254
L 165.815976 137.48945
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 186.350197 154.102987
L 186.350197 149.233636
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 202.630278 161.654364
L 202.630278 155.557548
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 215.612032 166.40967
L 215.612032 159.402403
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 225.594205 170.500573
L 225.594205 162.615138
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 233.133093 172.523003
L 233.133093 164.168725
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 238.378636 173.429587
L 238.378636 164.857378
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
<path d="M 242.286803 174.342634
L 242.286803 165.545973
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke: #3949ab; stroke-width: 0.5"/>
</g>
<g id="line2d_94">
<g clip-path="url(#p3e7f1466a0)">
<use xlink:href="#m2b92d975f8" x="139.177158" y="124.759345" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="153.316458" y="135.91478" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="165.815976" y="140.729254" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="186.350197" y="154.102987" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="202.630278" y="161.654364" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="215.612032" y="166.40967" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="225.594205" y="170.500573" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="233.133093" y="172.523003" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="238.378636" y="173.429587" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="242.286803" y="174.342634" style="fill: #3949ab; stroke: #3949ab"/>
</g>
</g>
<g id="line2d_95">
<g clip-path="url(#p3e7f1466a0)">
<use xlink:href="#m2b92d975f8" x="139.177158" y="122.790204" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="153.316458" y="133.123501" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="165.815976" y="137.48945" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="186.350197" y="149.233636" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="202.630278" y="155.557548" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="215.612032" y="159.402403" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="225.594205" y="162.615138" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="233.133093" y="164.168725" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="238.378636" y="164.857378" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#m2b92d975f8" x="242.286803" y="165.545973" style="fill: #3949ab; stroke: #3949ab"/>
</g>
</g>
<g id="line2d_96">
<path d="M 57.849098 109.495237
L 75.466179 124.011551
L 105.582778 137.11207
L 120.716379 145.676029
L 139.177158 153.541138
L 153.316458 159.316162
L 165.815976 162.783252
L 186.350197 168.104483
L 202.630278 172.456681
L 215.612032 175.112611
L 225.594205 176.174859
L 233.133093 177.658168
L 238.378636 177.970015
L 242.286803 178.596567
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #3949ab; stroke-width: 0.5"/>
<defs>
<path id="mc2d30390df" d="M 0 1.5
C 0.397805 1.5 0.77937 1.341951 1.06066 1.06066
C 1.341951 0.77937 1.5 0.397805 1.5 0
C 1.5 -0.397805 1.341951 -0.77937 1.06066 -1.06066
C 0.77937 -1.341951 0.397805 -1.5 0 -1.5
C -0.397805 -1.5 -0.77937 -1.341951 -1.06066 -1.06066
C -1.341951 -0.77937 -1.5 -0.397805 -1.5 0
C -1.5 0.397805 -1.341951 0.77937 -1.06066 1.06066
C -0.77937 1.341951 -0.397805 1.5 0 1.5
z
" style="stroke: #3949ab"/>
</defs>
<g clip-path="url(#p3e7f1466a0)">
<use xlink:href="#mc2d30390df" x="57.849098" y="109.495237" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="75.466179" y="124.011551" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="105.582778" y="137.11207" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="120.716379" y="145.676029" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="139.177158" y="153.541138" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="153.316458" y="159.316162" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="165.815976" y="162.783252" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="186.350197" y="168.104483" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="202.630278" y="172.456681" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="215.612032" y="175.112611" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="225.594205" y="176.174859" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="233.133093" y="177.658168" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="238.378636" y="177.970015" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="242.286803" y="178.596567" style="fill: #3949ab; stroke: #3949ab"/>
</g>
</g>
<g id="line2d_97">
<path d="M 139.177158 123.75903
L 153.316458 134.48751
L 165.815976 139.066745
L 186.350197 151.57212
L 202.630278 158.455245
L 215.612032 162.707057
L 225.594205 166.306022
L 233.133093 168.063287
L 238.378636 168.846019
L 242.286803 169.631111
" clip-path="url(#p3e7f1466a0)" style="fill: none; stroke-dasharray: 1.85,0.8; stroke-dashoffset: 0; stroke: #3949ab; stroke-width: 0.5"/>
<g clip-path="url(#p3e7f1466a0)">
<use xlink:href="#mc2d30390df" x="139.177158" y="123.75903" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="153.316458" y="134.48751" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="165.815976" y="139.066745" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="186.350197" y="151.57212" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="202.630278" y="158.455245" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="215.612032" y="162.707057" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="225.594205" y="166.306022" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="233.133093" y="168.063287" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="238.378636" y="168.846019" style="fill: #3949ab; stroke: #3949ab"/>
<use xlink:href="#mc2d30390df" x="242.286803" y="169.631111" style="fill: #3949ab; stroke: #3949ab"/>
</g>
</g>
<g id="patch_3">
<path d="M 36 189
L 36 25.92
" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>
</g>
<g id="patch_4">
<path d="M 259.2 189
L 259.2 25.92
" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>
</g>
<g id="patch_5">
<path d="M 36 189
L 259.2 189
" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>
</g>
<g id="patch_6">
<path d="M 36 25.92
L 259.2 25.92
" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>
</g>
</g>
</g>
<defs>
<clipPath id="p3e7f1466a0">
<rect x="36" y="25.92" width="223.2" height="163.08"/>
</clipPath>
</defs>
</svg>
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from OBE3levels_functions import *
from scipy.optimize import curve_fit
from scipy.stats import poisson, norm
import os
import sys
plt.ion()
"""
Este código simula la dinámica temporal de un ion de calcio sometido a un láser UV y dos láseres IR.
"""
def expo(T, tau, N0, C):
#global T0
return N0*np.exp(-(T-0e-6)/tau) + C
ADD_NOISE = True
NOISE_VAR = 30 # Varianza del ruido
NOISE_ADJ = 78 # Escaleo del ruido versus el maximo
NOISE_MEAN = 0 # Media del ruido
NRO_REPS = 100 # Veces a promediar
species = 'Calcium'
#Parámetros de saturacion de los láseres rebombeo (IR), que son proporcionales a la intensidad de los mismos
#Para reproducir SP, hay que poner 0 a los dos
SatParRep1, SatParRep2 = 0, 0
sat_intensity = 43.3e-5 # uW um-2
g21 = 135591138.92893547
#El número de los láseres IR aplicados en el experimento. Para el experimento de la transicion SP, es 0.
Number_IR_lasers = 0
#Detunings de los láseres en MHz. Si es 0, están en resonancia. En principio
#podría ser un parámetro libre a ajustar porque influye mucho
DetDoppler = -int(sys.argv[1])
DetRep2 = 0
DetRep1 = 0
#Anchos de línea de los láseres, en MHz. No son tan cruciales, están entre 0.1 y 0.5 MHz
DopplerLaserLinewidth, RepumpLaserLinewidth = 1e3, 1
# Para trabajar con las curvas teóricas:
# range_inicio = np.arange(sat_intensity/10, sat_intensity, sat_intensity/50)
# range_fin = np.arange(sat_intensity, 30*sat_intensity, sat_intensity/5)
# laser_intensities = np.append(range_inicio, range_fin)
# Para trabajar con nuestros datos, saco las intensidades, a un radio de 100um:
laser_intensities = np.array([0.00662085, 0.00582507, 0.0049338, 0.00397887, 0.00305577, 0.00226, 0.00155972, 0.00101859, 0.00060479, 0.00031831])
OmegaRabi2 = (g21**2) * (laser_intensities / sat_intensity)
SatParDopplerVec = OmegaRabi2 / ((DetDoppler*2*np.pi*1e6)**2 + g21**2)
#Parámetros de la simulación, en us
tfinOBE = 1
pasoOBE = 1e-5
#Estado electrónico inicial de la simulacion. Posibilidades: |S> = 1, |P> = 2, |D> = 3
initial_state = 1
#Corre y simula la dinámica. Devuelve elementos de matriz densidad
# fig1, ax1 = plt.subplots()
alltaus = list()
allN0 = list()
allmeans = list()
allstds = list()
temporal_taus = list()
temporal_N0 = list()
for i, SatParDoppler in enumerate(SatParDopplerVec):
t, RealRho11, RealRho22, RealRho33, AbsRho12, AbsRho13, AbsRho23 = Solve3LevelBloch(EquationSystemModel, species, SatParDoppler, SatParRep1, SatParRep2, DetDoppler, DetRep1, DetRep2, DopplerLaserLinewidth, RepumpLaserLinewidth, no_IR_lasers=Number_IR_lasers, initcond=initial_state, tfin=tfinOBE, paso=pasoOBE, printprogress=False)
k = int(0.1*len(t)) #parametro para que fitee solo la parte final
k = np.argmin(np.abs(t - 0.2e-6))
temporal_taus = list()
incert_estad = 0
for nro_rep in range(NRO_REPS):
poblacion_fit = RealRho22[k:].copy()
if ADD_NOISE:
# Genero ruido similar al medido
ruido_poisson = poisson.rvs(NOISE_VAR, size=len(poblacion_fit))
# Reescaleo el ruido para que sea compatible con las simulaciones
ruido_poisson *= np.max(poblacion_fit)/NOISE_ADJ
poblacion_fit += ruido_poisson
# poblacion_fit += norm.rvs(0, NOISE_VAR, size=len(poblacion_fit))*np.max(poblacion_fit)/NOISE_ADJ
poblacion_fit[np.where(poblacion_fit < 0 )] = 0 # Limpio posibles valores negativos
t_fit = t[k+1:]
popt, pcov = curve_fit(expo, t_fit, poblacion_fit, p0=(1e-6, 1e-2, 1e-2))
temporal_taus.append(popt[0])
incert_estad += np.sqrt(pcov[0,0])
# temporal_N0.append(popt[1])
if not ADD_NOISE: # si no quiere que agregue ruido, entonces solo hace el for una vez
break
print(f" {nro_rep} ", end='\r')
if ADD_NOISE:
allmeans.append(np.mean(temporal_taus))
allstds.append(np.std(temporal_taus) + incert_estad/NRO_REPS)
else:
allmeans.append(np.mean(temporal_taus))
#ploteo en funcion de 100*Rho22 para que me devuelva en porcentaje la población del excitado que es proporcional a la fluorescencia detectada
# lbl='Detuning Rep1:' + str(DetRep1) + ' MHz'
# ax1.plot(t[:-1]*1e6, RealRho22, '.', label=lbl, markersize=1)
# ax1.plot(t[:-1]*1e6, 100*RealRho22, '.', label=lbl, markersize=1)
# ax1.plot(t_fit*1e6, 100*expo(t_fit, *popt))
print(f'({i:02d}/{len(SatParDopplerVec)}) Done {SatParDoppler}'.ljust(50, ' '))
# ax1.legend(SatParDopplerVec)
# ax1.set_xlabel('Time (us)')
# ax1.set_ylabel('100*Rho22')
#%% #####################################################################################
### Guardo valores al CSV para analizar luego
# nDet=f"Det{np.abs(DetDoppler)}"
# CSV_FNAME = f"error_teorico_tau_{nDet}.csv"
# try:
# import pandas as pd
# data = pd.read_csv(CSV_FNAME)
# data["meanval"] = allmeans
# data["stdval"] = allstds
# data.to_csv(CSV_FNAME, index=False)
# print(f"SAVED {nDet}".ljust(50, ' '))
# except FileNotFoundError:
# data = pd.DataFrame({'I': laser_intensities, "meanval": allmeans, "stdval": allstds})
# data.to_csv(CSV_FNAME, index=False)
# print(f"CREATED CSV FILE".ljust(50, ' '))
# print(f"SAVED DETUNING {-DetDoppler}".ljust(50, ' '))
#%% ####################################################################################
### Plots de los valores de intensidades medidas para distintos parametros
### Cada axes arma un eje horizontal distinto, es para comparar las posibilidades
# fig4, ax4 = plt.subplots()
# allmeans = [t*1e6 for t in allmeans]
# ax4b = ax4.twinx()
# ax4.plot(SatParDopplerVec, allmeans, '-o', lw=0.4)
# ax4b.plot(SatParDopplerVec, allN0, 'k-^', lw=0.4)
# ax4.set_xlabel("Parametro de saturación")
# ax4.set_ylabel("Tau (circulo)")
# ax4b.set_ylabel("Alturas (triang)")
# ax4.set_title(f"SP; IR_Lasers=0; DetuningDoppler={DetDoppler}; LineWidth={DopplerLaserLinewidth}")
# ax4by = ax4.twiny()
# ax4by.plot(laser_intensities, allmeans, '-', lw=0)
# ax4by.xaxis.set_label_position('bottom')
# ax4by.xaxis.tick_bottom()
# ax4by.spines['bottom'].set_position(("axes", -0.27))
# ax4by.set_xlabel(r"Intensidad [ $\mu$W/$\mu$m$^2$ ]")
# ax4cy = ax4.twiny()
# ax4cy.plot(laser_intensities*np.pi*(35**2), allmeans, '-', lw=0)
# ax4cy.xaxis.set_label_position('bottom')
# ax4cy.xaxis.tick_bottom()
# ax4cy.spines['bottom'].set_position(("axes", -0.58))
# ax4cy.set_xlabel(r"Potencia (r=35$\mu$m) [ $\mu$W ]")
# ax4dy = ax4.twiny()
# ax4dy.plot(laser_intensities*np.pi*(50**2), allmeans, '-', lw=0)
# ax4dy.xaxis.set_label_position('bottom')
# ax4dy.xaxis.tick_bottom()
# ax4dy.spines['bottom'].set_position(("axes", -0.9))
# ax4dy.set_xlabel(r"Potencia (r=50$\mu$m) [ $\mu$W ]")
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri May 15 18:11:00 2020
@author: oem
"""
import numpy as np
import matplotlib.pyplot as plt
from odeintw import odeintw
import time
#matplotlib.use('Qt5Agg')
"""
odeintw es un wrapper de la funcion odeint de scipy.integrate que sirve para integrar
sistemas de ecuaciones con parámetros complejos.
En este script se resuelven las ecuaciones
de Bloch de un sistema de 3 niveles en configuración lambda (1 y 3 son ground, 2 es excitado)
para ion de Bario o de Calcio.
Este script considera que hay dos láseres repump prendidos con sus respectivas frecuencias de
rabi y detuning.
Además, se usan dos distintos sistemas de referencia rotantes, condensados en las funciones
RepumpReferenceSystemModel 1 y 2. La 2 es más útil para prender de a poco el láser repump2, y
cuando su frec. de rabi es cero, no aparece en las ecuaciones.
https://github.com/WarrenWeckesser/odeintw
"""
#CHEQUEADOS LOS DAMPINGS
def EquationSystemModel(z, t, rabi12, rabi23, g21, g23, glg, glr, detr, detg, no_IR_lasers):
"""
Se plantean acá las ecuaciones dinámicas de la matriz densidad (OBE: Optical Bloch Equations)
para la interacción entre un átomo y un campo electromagnético.
-rabi12, rabi23: frecuencias de rabi, proporcionales a la intensidad de los láseres
-g21, g23: anchos de línea naturales de las transiciones
-glg, glr: anchos de línea de los láseres doppler (UV) y repump (IR) respectivamente
-detg, detr: detunings de transición doppler (UV) y repump (IR) respectivamente
-no_IR_lasers: número de láseres IR aplicados
"""
rho33, rho22, rho11, rho12, rho13, rho23 = z
rho21 = np.conjugate(rho12)
rho31 = np.conjugate(rho13)
rho32 = np.conjugate(rho23)
drho11dt = (1j)*0.5*rabi12*(rho12 - rho21) + rho22*g21
drho22dt = (-1j)*0.5*rabi12*(rho12 - rho21) - 1j*0.5*(np.conjugate(rabi23)*rho32 - rabi23*rho23) - rho22*(g21 + g23)
drho33dt = (-1j)*0.5*(rabi23*rho23 - np.conjugate(rabi23)*rho32) + g23*rho22
drho12dt = (-1j)*0.5*rabi12*(rho22 - rho11) - (1j)*(detg*rho12 - 0.5*rabi23*rho13) - rho12*(0.5*g21 + 0.5*g23 + glg)
drho13dt = (-1j)*(detg*rho13 + 0.5*rabi12*rho23 - 0.5*np.conjugate(rabi23)*rho12 - detr*rho13) - rho13*(glg + no_IR_lasers*glr)
drho23dt = (-1j)*0.5*rabi12*rho13 - (1j)*0.5*np.conjugate(rabi23)*(rho33-rho22) + (1j)*detr*rho23 - rho23*(0.5*g21 + 0.5*g23 + no_IR_lasers*glr)
dzdt = [drho33dt, drho22dt, drho11dt, drho12dt, drho13dt, drho23dt]
return dzdt
def RepumpReferenceSystemModel(rabi23repump1, rabi23repump2, Detuningrepump1, Detuningrepump2, t):
"""
Cuando hay más de un láser en una transición se producen batidos entre los mismos, haciendo que
la frecuencia de rabi sea un parámetro que varía en el tiempo. Para resolver eso numéricamente se
implementa de esta manera, calculando la frecuencia de rabi efectiva antes de resolver las OBE.
Al resolver el sistema, se pasa a un marco de referencia rotante respecto a los láseres. Como los dos láseres
IR excitan la misma transición, hay que elegir una de ambas frecuencias para rotar. Esto elige al repump1
como tal referencia, pero es posible elegir a repump2, o incluso a un promedio entre ambas frecuencias (por eso se llama detuningmedio).
Es decir, esto considera a la matriz de rotación como:
U = exp(-i.wg.t)|1><1| + |2><2| + exp(-i.wr1.t)|3><3|
"""
rabi23 = [rabi23repump1 + rabi23repump2*np.exp(-1*(Detuningrepump1-Detuningrepump2)*1j*tiemp) for tiemp in t]
DetuningMedioRepump = Detuningrepump1
return rabi23, DetuningMedioRepump
def GetTransitionLinewidths(species):
"""
Devuelve los anchos de línea naturales según la especie iónica
"""
if species == 'Calcium':
g21, g23, = 2*np.pi*21.58e6, 2*np.pi*1.35e6 #anchos de linea de las transiciones
elif species == 'Barium':
g21, g23, = 2*np.pi*15.1e6, 2*np.pi*5.3e6 #anchos de linea de las transiciones
else:
print('Species not implemented')
raise
return g21, g23
def Solve3LevelBloch(EquationSystemModel, species, SatParDoppler, SatParRep1, SatParRep2, DetDoppler, DetRep1, DetRep2,
glg, glr, no_IR_lasers, initcond=1, tfin=10, paso=1e-3, printprogress=False):
"""
Resuelve las ecuaciones de bloch del modelo dado. Los inputs son:
glg, glr: anchos de línea de doppler y repump en MHz
SatPar: parámetro de saturación de cada láser
Det: detunings en MHz
rabi12, rabi23 = sr*g21, sp*g23 #frecuencias de rabi
"""
t = np.arange(0, tfin*1e-6, paso*1e-6)
g21, g23 = GetTransitionLinewidths(species)
#convierto todo a MHz
DopplerLaserLinewidth = glg*2*np.pi*1e6
RepumpLaserLinewidth = glr*2*np.pi*1e6
DetuningDoppler = DetDoppler*2*np.pi*1e6
Detuningrepump1 = DetRep1*2*np.pi*1e6
Detuningrepump2 = DetRep2*2*np.pi*1e6
rabi12 = np.sqrt(SatParDoppler*(4*(DetuningDoppler**2) + g21**2)/2)
rabi23repump1 = np.sqrt(SatParRep1*(4*(Detuningrepump1**2) + g23**2)/2)
rabi23repump2 = np.sqrt(SatParRep2*(4*(Detuningrepump2**2) + g23**2)/2)
rabi23vst, _ = RepumpReferenceSystemModel(rabi23repump1, rabi23repump2, Detuningrepump1, Detuningrepump2, t)
rho33sol = []
rho22sol = []
rho11sol = []
rho12sol = []
rho13sol = []
rho23sol = []
#condicion inicial: poblacion en el nivel 1
if initcond==1:
z0 = [0+0j, 0+0j, 1+0j, 0+0j, 0+0j, 0+0j] #formato: [rho33, rho22, rho11, rho12, rho13, rho23]
elif initcond==2:
z0 = [0+0j, 1+0j, 0+0j, 0+0j, 0+0j, 0+0j]
elif initcond==3:
z0 = [1+0j, 0+0j, 0+0j, 0+0j, 0+0j, 0+0j]
else:
print('Mala condicion inicial')
raise
#z0 = [0.5+0j, 0+0j, 0.5+0j, -0.5+0j, 0+0j, 0+0j] DARK STATE
for i in range(1,len(t)):
# span for next time step
tspan = [t[i-1],t[i]]
# solve for next step
#z = odeintw(EquationSystemModel, z0, tspan, args=(rabi12, rabi23vst[i], g21, g23, DopplerLaserLinewidth, RepumpLaserLinewidth, DetuningMedioRepump, DetuningDoppler), full_output=True)
z = odeintw(EquationSystemModel, z0, tspan, args=(rabi12, rabi23repump1, g21, g23, DopplerLaserLinewidth, RepumpLaserLinewidth, Detuningrepump1, DetuningDoppler, no_IR_lasers), full_output=True)
# store solution for plotting
rho22sol.append(z[0][1][1])
rho33sol.append(z[0][1][0])
rho11sol.append(z[0][1][2])
rho12sol.append(z[0][1][3])
rho13sol.append(z[0][1][4])
rho23sol.append(z[0][1][5])
# next initial condition
z0 = z[0][1]
if printprogress:
print(i, '/', len(t), end="\r", flush=True)
#Tomo la parte real de los diagonales y el módulo de las coherencias
RealRho22 = [r.real for r in rho22sol]
RealRho11 = [r.real for r in rho11sol]
RealRho33 = [r.real for r in rho33sol]
AbsRho12 = [np.abs(r) for r in rho12sol]
AbsRho13 = [np.abs(r) for r in rho13sol]
AbsRho23 = [np.abs(r) for r in rho23sol]
return t, RealRho11, RealRho22, RealRho33, AbsRho12, AbsRho13, AbsRho23
def RepumpSpectrum(EquationSystemModel, species, SatParDoppler, SatParRep1, SatParRep2, DetDoppler, DetRep2,
glg, glr, tfinOBE=10, pasoOBE=1e-3, frecini=-100, frecfin=100, pasofrec=1, plotSpectrum=True, sweepingrepump=True):
"""
Hace un barrido en la frecuencia del repump.
Considerando que puede haber oscilaciones de la población por haber dos repumps,
"""
g21, g23 = GetTransitionLinewidths(species)
FluorescenceVector = []
t = np.arange(0, tfinOBE*1e-6, pasoOBE*1e-6)
DopplerLaserLinewidth = glg*2*np.pi*1e6
RepumpLaserLinewidth = glr*2*np.pi*1e6
DetuningDoppler = DetDoppler*2*np.pi*1e6
Detuningrepump2 = DetRep2*2*np.pi*1e6
rabi12 = np.sqrt(SatParDoppler*(4*(DetuningDoppler**2) + g21**2)/2)
rabi23repump1 = np.sqrt(SatParRep1*(4*(Detuningrepump1**2) + g23**2)/2)
rabi23repump2 = np.sqrt(SatParRep2*(4*(Detuningrepump2**2) + g23**2)/2)
Repump1DetuningVector = np.arange(frecini*2*np.pi*1e6, frecfin*2*np.pi*1e6, pasofrec*2*np.pi*1e6)
counter = 1
FluorescenceVector = []
for DetRep1 in Repump1DetuningVector:
tini = time.time()
rho33sol = []
rho22sol = []
rho11sol = []
rho12sol = []
rho13sol = []
rho23sol = []
rabi23vst, DetuningMedioRepump = RepumpReferenceSystemModel(rabi23repump1, rabi23repump2, DetRep1, Detuningrepump2, t)
z0 = [0+0j, 0+0j, 1+0j, 0+0j, 0+0j, 0+0j] #formato: [rho33, rho22, rho11, rho12, rho13, rho23]
for i in range(1,len(t)):
# span for next time step
tspan = [t[i-1],t[i]]
# solve for next step
z = odeintw(EquationSystemModel,z0,tspan, args=(rabi12, rabi23vst[i], g21, g23, DopplerLaserLinewidth, RepumpLaserLinewidth, DetuningMedioRepump, DetuningDoppler), full_output=True)
# store solution for plotting
rho22sol.append(z[0][1][1])
rho33sol.append(z[0][1][0])
rho11sol.append(z[0][1][2])
rho12sol.append(z[0][1][3])
rho13sol.append(z[0][1][4])
rho23sol.append(z[0][1][5])
# next initial condition
z0 = z[0][1]
# print(i, '/', len(t))
print
FluorescenceVector.append(np.real(rho12sol[-1]))
tfin = time.time()
print(counter, '/', len(Repump1DetuningVector), ', elapsed time: ', round(tfin-tini, 2), ' s')
counter = counter + 1
if plotSpectrum:
plt.plot([1e-6*d/(2*np.pi) for d in Repump1DetuningVector], [100*f for f in FluorescenceVector], 'o')
plt.xlabel('Repump detuning (MHz')
plt.ylabel('Fluorescence (A.U.)')
plt.title('Doppler detuning: ' + str(DetDoppler) + ' MHz, Repump 2 detuning: ' + str(DetRep2) + ' MHz')
return Repump1DetuningVector, FluorescenceVector
#Funciones auxiliares para el análisis
def FindFluoAtTime(fluo, time, timetarget, pasoti):
"""
Encuentra la fluorescencia para determinado tiempo (en us).
El pasoti es la tolerancia temporal para el cual busca esa fluorescencia
"""
ti = timetarget*1e-6
pasoti = pasoti*1e-6
i = 0
fluoattivec = []
while i < len(fluo):
if abs(time[i]-ti) < 2*pasoti:
fluoattivec.append(fluo[i])
i = i + 1
return np.mean(fluoattivec)
def FindTimeForFluo(fluo, time, fluotarget, tolerancefluo=1e-3):
i = 0
timesforfluo = []
while i < len(time)-1:
if np.abs(fluo[i]-fluotarget) < 2*tolerancefluo:
timesforfluo.append(time[i])
i = i + 1
if len(timesforfluo) == 0:
print('La fluorescencia no toma ese valor')
return 0
elif len(timesforfluo) == 1:
return timesforfluo[0]
else:
# return np.mean(timesforfluo[1:])
return timesforfluo[-1]
def FindCharacteristicDecayTime(fluo, time):
pass
def IntegrateWindow(fluo, time, ti, window):
ti = ti*1e-6
window = window*1e-6
i = 0
fluowindow = []
while i<len(fluo):
if time[i]>ti and time[i]<=ti+window:
fluowindow.append(fluo[i])
i = i + 1
if time[i]>ti+window:
return np.mean(fluowindow)
def Lorentz(x, x0, gamma, ymax):
scale = ymax*np.pi*gamma*0.5
return (scale/np.pi)*(0.5*gamma)/((x-x0)**2 + (0.5*gamma)**2)
def rho23model(rabip, gamma, gammas, detuningp, rho0, t):
rho23 = ((1j)*rho0*rabip/(2*gamma))*(np.exp(-gamma*t) - np.exp(-(gammas+(rabip**2)/(4*gamma))*t -(1j)*detuningp*t))
return [np.real(rho23), np.abs(np.imag(rho23))]
def dopplerBroadening(T, wldopp=0.397e-6, wlrep=0.866e-6, alpha=0, mcalcio = 6.655e-23*1e-3):
"""
Calcula el broadening extra semiclásico por temperatura considerando que el ion atrapado se mueve.
wlr es la longitud de onda doppler, wlp la longitud de onda repump, T la temperatura del ion en kelvin, y alpha (en rads) el ángulo
que forman ambos láseres.
"""
kboltzmann = 1.38e-23 #J/K
gammaD = (2*np.pi)*np.sqrt((1/(wldopp*wldopp)) + (1/(wlrep*wlrep)) - 2*(1/(wldopp*wlrep))*np.cos(alpha))*np.sqrt(kboltzmann*T/(2*mcalcio))
return gammaD
I,meanval,stdval
0.00662085,2.63563456542463e-07,3.62795752e-08
0.00582507,2.674966392578803e-07,3.99478821e-08
0.0049338,2.7426723419290064e-07,3.66249293e-08
0.00397887,2.8263714050526124e-07,3.83554920e-08
0.00305577,2.9770905441813384e-07,3.90291265e-08
0.00226,3.1786383950851434e-07,4.27893803e-08
0.00155972,3.562791436115684e-07,4.67339215e-08
0.00101859,4.198979464288562e-07,5.28900825e-08
0.00060479,5.457916989936301e-07,6.95843326e-08
0.00031831,8.275611779916097e-07,1.30369576e-07
Pow,Tau,N0
208.0,4.107136373675053e-07,242.3949275128121
183.0,3.994370315889412e-07,255.700355179914
155.0,4.4882562779198994e-07,226.84461233128172
125.0,4.727871415748306e-07,217.84774878119222
96.0,5.254285404397582e-07,222.57732196795308
71.0,6.079817946589069e-07,189.5426628192835
49.0,7.274218641328625e-07,168.69185328968453
32.0,8.823248220314772e-07,140.40570782757854
19.0,1.280491601444429e-06,90.5188484395718
10.0,1.96934320559994e-06,60.092743064494314
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#plt.ion()
#dataREAL = pd.read_csv("medidos_powers_taus.csv")
dataSIM = pd.read_csv("sim_intensidad_taus_full.csv")
errsSIM = pd.read_csv("error_teorico_tau_det20.csv")
I_sat = 43.3*1e-5 #uW/um2
#%% #####################################################################################
### Plot de lineas teoricas tau-intensidad variando detuning + datos medidos
UVpotVec=[4,6,12,17,26,36, 48, 77, 112, 151, 190, 226, 255, 279]
Taus = [2.6474524026975392, 1.651982852985559, 1.0793431020294597, 0.8171909874107741, 0.6329192159654833, 0.5246427838474966, 0.468752585310023, 0.3943320198588099, 0.34233658233849174, 0.314035400291993, 0.30338246040910105,0.2891087574893047, 0.2861944000648665,0.2804274973493638]
Taus_v2 = [1.6655917442406167, 1.1754160164890701, 1.0129299348502132, 0.6747311668331314, 0.5395244011650271, 0.4699144306437099, 0.41805942894076137, 0.3948601586682529, 0.3849453824721735, 0.3752507710597908]
fig2, ax2 = plt.subplots(figsize=(4,3))
detuning_lines = ['Det10', 'Det20', 'Det30', 'Det40', 'Det50', 'Det60', 'Det70', 'Det80', 'Det90']
# Curvas de las simulaciones con tau en unidades de microseg
for det in detuning_lines:
ax2.plot(dataSIM.I**1, [d for d in dataSIM[det]*1e6], 'k-', ms=1, lw=0.5)
# Curvas de las mediciones cambiando el radio posible con tau en microseg
for cambio in [0]: # esto es para shiftear la potencia medida
potencias = dataREAL.Pow - cambio
for rad in [128]: # esto evalua con distintos radios
ax2.errorbar([(p/(np.pi*(rad**2)))**1 for p in UVpotVec], [t for t in Taus], yerr=np.mean(1e6*errsSIM.stdval.values),
fmt='.--', ms=6, lw=.5, \
color="#3949ab",
capsize=2)
ax2.errorbar([(p/(np.pi*(rad**2)))**1 for p in UVpotVec][4:], [t for t in Taus_v2], yerr=np.mean(1e6*errsSIM.stdval.values),
fmt='.--', ms=6, lw=.5, \
color="#3949ab",
capsize=2)
fs = 9
ax2.set_xlim([0.47e-4, 0.8e-2])
#ax2.set_xlim([0., 0.000005])
#ax2.set_ylim([2e-1, 4e1])
ax2.set_ylabel(r"Characteristic time ($\mu$s)", fontname='STIXGeneral')
#ax2.set_xlabel(r"$I = P / (\pi\,r^2)$ [$\mu$W/$\mu$m$^2$]")
ax2.set_xlabel(r'UV intensity ($\mu$W/$\mu$m$^2$)', fontname='STIXGeneral')
# ax2.set_title(r"datos(punteadas) $r \in [30; 190]\ \mu m$ | simulacion(llenas) $\Delta \in -[10; 90]$ MHz")
#ax2.legend(markerscale=2)
#ax2.set_xticks([1e-4, 1e-3])
ax2.set_xticklabels([1e-4, 1e-3], fontsize=fs, fontname='STIXGeneral')
#ax2.set_yticks([1e0, 1e1])
ax2.set_yticklabels([1e0, 1e1], fontsize=fs, fontname='STIXGeneral')
ax2.grid(which='minor', alpha=0.2)
ax2.set_xscale("log")
ax2.set_yscale("log")
plt.savefig('Fig03_varyingUVpower.pdf')
plt.savefig('Fig03_varyingUVpower.svg')
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
#os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20221006_transitoriosv2')
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20250313_fluorescencecorrelationtests/Data')
def expo(T, tau, N0, C):
global T0
return N0*np.exp(-(T-T0)/tau) + C
def pow_from_amp(amp):
"""Paso de amplitud urukul a potencia medida por Nico"""
# Forma altamente ineficiente de hacer esto, pero me salio asi
amplitudes_UV = np.flip(np.array([0.08, 0.10, 0.12, 0.14, 0.16, 0.18, 0.20, 0.22, 0.24, 0.26, 0.28, 0.30]))
assert amp in amplitudes_UV
potencias_UV = np.flip(np.array([4, 10, 19, 32, 49, 71, 96, 125, 155, 183, 208, 229]))
return potencias_UV[np.where(amplitudes_UV == amp)][0]
def SP_Bkgr_builder(amp_in, amp_fin, derivadainicio, derivadafin, longbins):
CalibCurve = []
j=0
while j<longbins:
if j<=derivadainicio:
CalibCurve.append(amp_in)
elif j>=derivadainicio and j<=derivadafin:
pendiente=(amp_fin-amp_in)/(derivadafin-derivadainicio)
CalibCurve.append(amp_in+pendiente*(j-derivadainicio))
else:
CalibCurve.append(amp_fin)
j=j+1
return CalibCurve
"""
plt.plot(amplitudes_UV, potencias_UV, 'ko-', lw=0.2)
plt.xlabel("Amplitud Urukul")
plt.ylabel("Potencia /uW")
plt.grid()
"""
#%%
import scipy.fftpack
BINW = 1e-2
T0 = -0.4e-6
files = [20322]
SP_Heigths = []
SP_Bins = []
for i, fname in enumerate(files):
#print(i)
#print(fname)
#data = h5py.File('0000'+str(fname)+'-MicromotionCompensation.h5', 'r')
data = h5py.File('0000'+str(fname)+'-CRB.h5', 'r')
# counts = np.array(data['datasets']['countsrf'])
counts = np.array(data['datasets']['counts'])
bines = np.arange(counts.min(), counts.max()+BINW, BINW)
heigs, binsf = np.histogram(counts, bines[bines>T0])
SP_Heigths.append(heigs)
SP_Bins.append(binsf)
#freq: 7.262 mhZ
for k in range(len(counts)):
print(counts[k]-counts[k-1])
#print(1e-6/(counts[k]-counts[k-1]))
#%%
from scipy.optimize import curve_fit
refe = len(SP_Bins[0])
prop = 1
RefBins = [t for t in SP_Bins[0][:int(prop*refe)]]
# plt.figure()
# plt.plot(RefBins[:-1], SP_Heigths[0][:int(prop*refe)],'-o')
x = RefBins[:-1]
y = SP_Heigths[0][:int(prop*refe)]
cc = np.ones(len(counts))
fluo = np.cumsum(cc) - np.polyval(np.polyfit(counts,np.cumsum(cc),1),counts)
plt.figure()
plt.plot(counts,fluo)
plt.xlabel('Tiempo (s)')
plt.ylabel('Cumsum photons')
y = np.array([f for f in fluo])
dt = np.mean(np.diff(np.array(counts)))
print(dt)
plt.figure()
# plt.plot(x, y, label='Señal original')
plt.magnitude_spectrum(y*np.hanning(len(y)),Fs=1/dt)
plt.xlabel('Frecuencia (Hz)')
plt.ylabel('Amplitud')
# plt.xlim(-10,200)
plt.grid(True)
# plt.legend()
#%%
"""
Esto binea fotones asumienod que la cantidad de fotones que llegan en un intervalo tau
esta modulada por una funcion periodica. Entonces a los tiempos de llegada entre
0 y tau no les hace nada, a los tiempos entre tau y 2tau les resta tau,
a los tiempos entre 2tau y 3tau les resta tau, y asi. Y despues
binea y ajusta con una sinusoidal y devuelve la frecuencia del ajuste.
Asi anda barbaro para ver la oscilacion a casi 50 Hz
"""
def bin_time_arrivals(arrival_times, tau):
"""
Binea los tiempos de llegada de los fotones según el periodo tau.
Parameters:
arrival_times (numpy array): Vector con los tiempos de llegada de los fotones.
tau (float): Periodo de bineado.
Returns:
numpy array: Vector con los tiempos bienados.
"""
return arrival_times - tau * (arrival_times // tau)
#taurf = 1/(22.135e6)
taurf = 1/(22.135e6)
tiemposarreglados = bin_time_arrivals(counts, taurf)
b = taurf/100 # Ancho de bineo
bins = np.arange(0, taurf, b)
hist, bin_edges = np.histogram(tiemposarreglados, bins=bins)
colors = ['b', 'g', 'r'] # Colores para cada repetición
x_extended = np.concatenate([bin_edges[:-1] + i * taurf for i in range(3)])
y_extended = np.tile(hist, 3)
def sinusoidal(x, A, B, C, D):
return A * np.sin(B * x + C) + D
x_extended_dense = np.arange(np.min(x_extended),np.max(x_extended),0.1*(x_extended[1]-x_extended[0]))
params, _ = curve_fit(sinusoidal, x_extended, y_extended, p0=[max(y_extended), 2*np.pi/taurf, 0, np.mean(y_extended)])
# Graficar los datos y el ajuste
plt.figure(figsize=(8, 4))
plt.plot(x_extended, y_extended, marker='o', linestyle='-', label="Datos", color='gray')
plt.plot(x_extended_dense, sinusoidal(x_extended_dense, *params), linestyle='--', label="Ajuste sinusoidal", color='red')
for i in range(3):
plt.plot(bin_edges[:-1] + i * taurf, hist, marker='o', linestyle='-', color=colors[i])
plt.xlabel("Tiempo bineado (repetido 3 veces)")
plt.ylabel("Frecuencia")
plt.title("Distribución de tiempos bineados con ajuste sinusoidal")
plt.legend()
plt.show()
print(f'Frecuencia del ajuste: {round(params[1]/(2*np.pi),2)} Hz')
#%%
"""
Esto deberia hacerse asi para ver la oscilacion a la RF (micromocion)
"""
BINW = 1e-2
T0 = -0.4e-6
files = [20476] #el 19613 es el que muestra el pico en 48.5 Hz
SP_Heigths = []
SP_Bins = []
for i, fname in enumerate(files):
#print(i)
#print(fname)
data = h5py.File('0000'+str(fname)+'-CRB.h5', 'r')
counts = np.array(data['datasets']['counts'])
bines = np.arange(counts.min(), counts.max()+BINW, BINW)
heigs, binsf = np.histogram(counts, bines[bines>T0])
SP_Heigths.append(heigs)
SP_Bins.append(binsf)
def bin_time_arrivals(arrival_times, tau):
"""
Binea los tiempos de llegada de los fotones según el periodo tau.
Parameters:
arrival_times (numpy array): Vector con los tiempos de llegada de los fotones.
tau (float): Periodo de bineado.
Returns:
numpy array: Vector con los tiempos bienados.
"""
return arrival_times - tau * (arrival_times // tau)
"""
Amplitud en funcion de la frecuencia de bineo de la rf
"""
freqrf = 7.2618e6
freqrfvec = np.arange(7262561,7262972,0.1)
amps = []
plt.figure()
for freqrf in freqrfvec:
taurf = 1/freqrf
tiemposarreglados = bin_time_arrivals(counts, taurf)
b = taurf/50 # Ancho de bineo
bins = np.arange(0, taurf, b)
hist, bin_edges = np.histogram(tiemposarreglados, bins=bins)
colors = ['b', 'g', 'r'] # Colores para cada repetición
x_extended = np.concatenate([bin_edges[:-1] + i * taurf for i in range(3)])
y_extended = np.tile(hist, 3)
def sinusoidal(x, A, C, D):
return A * np.sin(2*np.pi*freqrf * x + C) + D
x_extended_dense = np.arange(np.min(x_extended),np.max(x_extended),0.1*(x_extended[1]-x_extended[0]))
params, _ = curve_fit(sinusoidal, x_extended, y_extended, p0=[max(y_extended), 0, np.mean(y_extended)])
amps.append(np.abs(params[0]))
plt.plot(freqrfvec,amps,'o')
#%%
"""
Grafico temporal replicado 3 veces a la frecuencia dada
"""
freqrf = 7262766
taurf = 1/freqrf
tiemposarreglados = bin_time_arrivals(counts, taurf)
b = taurf/50 # Ancho de bineo
bins = np.arange(0, taurf, b)
hist, bin_edges = np.histogram(tiemposarreglados, bins=bins)
colors = ['b', 'g', 'r'] # Colores para cada repetición
x_extended = np.concatenate([bin_edges[:-1] + i * taurf for i in range(3)])
y_extended = np.tile(hist, 3)
def sinusoidal(x, A, C, D):
return A * np.sin(2*np.pi*freqrf * x + C) + D
x_extended_dense = np.arange(np.min(x_extended),np.max(x_extended),0.1*(x_extended[1]-x_extended[0]))
params, _ = curve_fit(sinusoidal, x_extended, y_extended, p0=[max(y_extended), 0, np.mean(y_extended)])
amps.append(np.abs(params[0]))
# Graficar los datos y el ajuste
plt.figure(figsize=(8, 4))
# plt.plot(x_extended, y_extended, marker='o', linestyle='-', label="Datos", color='gray')
plt.plot(x_extended_dense, sinusoidal(x_extended_dense, *params), linestyle='--', label="Ajuste sinusoidal", color='black',linewidth=3,zorder=2)
for i in range(3):
plt.plot(bin_edges[:-1] + i * taurf, hist, marker='o', linestyle='-', color=colors[i],markersize=3,zorder=1)
plt.xlabel("Tiempo bineado (repetido 3 veces)")
plt.ylabel("Frecuencia")
plt.title("Distribución de tiempos bineados con ajuste sinusoidal")
plt.ylim(0,np.max(hist)*1.2)
plt.legend()
plt.show()
print(f'Amplitud normalizada: {np.abs(round(100*params[0]/params[2],3))}%')
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