{ "cells": [ { "cell_type": "markdown", "id": "8faef39e", "metadata": {}, "source": [ "# Analysing non-spinflip polarised NR data\n", "\n", "Currently (5/Aug/2021) `refnx` does not have the ability to fully analyse polarised neutron reflectometry data. However, it can be used to analyse the non-spinflip channels of a polarised neutron reflectometry measurement. Here we demonstrate how to do this using auxiliary `Parameter`. The datasets of interest have the structure:\n", "\n", "`Si | SiO2 | Permalloy | Au | 2-mercaptoethanol | D2O`" ] }, { "cell_type": "code", "execution_count": 1, "id": "c7d349ad", "metadata": {}, "outputs": [], "source": [ "# some necessary imports\n", "import os.path\n", "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "import refnx\n", "from refnx.analysis import Parameter, Objective, CurveFitter, GlobalObjective\n", "from refnx.reflect import SLD, Slab, Structure, ReflectModel\n", "from refnx.dataset import Data1D\n", "from refnx._lib import flatten" ] }, { "cell_type": "code", "execution_count": 2, "id": "f06c6737", "metadata": {}, "outputs": [], "source": [ "# create datasets from the NSF PNR data\n", "pth = os.path.dirname(refnx.__file__)\n", "dd = 'c_PLP0007882.dat'\n", "uu = 'c_PLP0007885.dat'\n", "\n", "file_path_uu = os.path.join(pth, 'reflect', 'test', uu)\n", "file_path_dd = os.path.join(pth, 'reflect', 'test', dd)\n", "\n", "data_uu = Data1D(file_path_uu)\n", "data_dd = Data1D(file_path_dd)" ] }, { "cell_type": "code", "execution_count": 3, "id": "131aed72", "metadata": {}, "outputs": [], "source": [ "# create SLD (Scattering Length Density) objects for each of the materials\n", "si = SLD(2.07, name=\"Si\")\n", "sio2 = SLD(3.47, name=\"SiO2\")\n", "au = SLD(4.66, name=\"Au\")\n", "mercapto = SLD(3.49, name=\"2-mercaptoethanol\")\n", "d2o = SLD(6.35, name=\"d2o\")\n", "\n", "# to describe the Permalloy layer we're going to create parameters to describe the nuclear\n", "# and magnetic parts of the SLD. Instead of using the magnetic moment and angle we\n", "# could just use a magnetic SLD\n", "\n", "nuclear_py = Parameter(9.0, name=\"Py nuclear part\")\n", "mag_moment_py = Parameter(600, name=\"Py emu/cc\")\n", "angle = Parameter(0, name=\"angle\", bounds=(0, 90.))\n", "\n", "# Now create two SLD objects for the Permalloy layer, one for the UU channel, one for the DD channel.\n", "# don't worry that the SLD is set to zero to start with\n", "\n", "py_dd = SLD(0.0, name=\"Py DD SLD\")\n", "py_uu = SLD(0.0, name=\"Py UU SLD\")\n", "\n", "# Now we make constraints for the SLD objects. Each SLD object has two parameters,\n", "# SLD.real and SLD.imag. The conversion factor of 2.85e-3 converts the magnetic moment\n", "# from emu/cc to 10**-6 Å**-2\n", "py_dd.real.constraint = nuclear_py - mag_moment_py * 2.85e-3 * np.cos(angle*np.pi/180)\n", "py_uu.real.constraint = nuclear_py + mag_moment_py * 2.85e-3 * np.cos(angle*np.pi/180)" ] }, { "cell_type": "code", "execution_count": 4, "id": "5a4b88bb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "((7.29+0j), (10.71+0j))" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# let's check on the SLDs. Observe that the SLDs obey the constraints\n", "\n", "complex(py_dd), complex(py_uu)" ] }, { "cell_type": "code", "execution_count": 5, "id": "93678e27", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "((7.005+0j), (10.995000000000001+0j))" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# let's try altering the magnetic part and see if the values are updated in the SLDs.\n", "# `magnetic_Fe` is a Parameter, and Parameter values are modified like this:\n", "\n", "mag_moment_py.value = 700\n", "\n", "# note how both the SLD objects are updated.\n", "\n", "complex(py_dd), complex(py_uu)" ] }, { "cell_type": "code", "execution_count": 6, "id": "d28c798d", "metadata": {}, "outputs": [], "source": [ "# Now make Slabs that describe each layer. These can either be made from SLD objects,\n", "# or by using the `Slab` constructor directly.\n", "\n", "# sio2 slab has a thickness of 20 and roughness of 4 with the Si fronting medium\n", "sio2_l = sio2(20, 4)\n", "\n", "au_l = au(215, 4)\n", "mercapto_l = mercapto(8, 4)\n", "d2o_l = d2o(0, 4)\n", "\n", "# now make the Fe layers for each of the spin channels. Note that we create\n", "# Parameter for the thickness and roughness which will be shared over both spin channels.\n", "\n", "py_thickness = Parameter(50, name=\"Py thickness\")\n", "py_roughness = Parameter(5, name=\"Py roughness\")\n", "\n", "py_dd_l = Slab(py_thickness, py_dd, py_roughness, name=\"Py dd slab\")\n", "py_uu_l = Slab(py_thickness, py_uu, py_roughness, name=\"Py uu slab\")" ] }, { "cell_type": "code", "execution_count": 7, "id": "f18b1435", "metadata": {}, "outputs": [], "source": [ "# now we make structures for each of the spin channels\n", "# note that we use the same `sio2_l` for each of the structures. This\n", "# will share the same sio2 thickness and roughness in the structures\n", "# and will reduce parameter numbers in a fit\n", "\n", "s_dd = si | sio2_l | py_dd_l | au_l | mercapto_l | d2o_l\n", "s_uu = si | sio2_l | py_uu_l | au_l | mercapto_l | d2o_l" ] }, { "cell_type": "code", "execution_count": 8, "id": "b0454b46", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "30 30\n", "36\n" ] } ], "source": [ "# The total number of parameters is reduced by sharing Parameter/SLD/Slab objects\n", "# over the two structures.\n", "\n", "# what are the number of parameters in each of the structures?\n", "print(len(list(flatten(s_dd.parameters))), len(list(flatten(s_uu.parameters))))\n", "\n", "# now what are the number of unique parameters in both parameter sets?\n", "combined_set = set(flatten(s_dd.parameters)).union(set(flatten(s_uu.parameters)))\n", "print(len(combined_set))\n", "\n", "# this shows that the unique number of parameters over both datasets is 36, reduced from 60.\n", "# i.e. there are parameters that are joint over both datasets" ] }, { "cell_type": "code", "execution_count": 9, "id": "9fe3999a", "metadata": {}, "outputs": [], "source": [ "# now place the Structures into a ReflectModel. ReflectModel applies resolution smearing, etc.\n", "\n", "model_dd = ReflectModel(s_dd)\n", "model_uu = ReflectModel(s_uu)" ] }, { "cell_type": "code", "execution_count": 10, "id": "aaec7067", "metadata": {}, "outputs": [], "source": [ "objective_dd = Objective(model_dd, data_dd, \n", " auxiliary_params=(nuclear_py, mag_moment_py, angle))\n", "objective_uu = Objective(model_uu, data_uu, \n", " auxiliary_params=(nuclear_py, mag_moment_py, angle))\n", "\n", "global_objective = GlobalObjective([objective_dd, objective_uu])" ] }, { "cell_type": "code", "execution_count": 11, "id": "9eb96e15", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAELCAYAAADHksFtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABEsElEQVR4nO3dd3xUVfr48c+TSaOXQGgBAiQ06YQuiNKlWhHcVYGvvZfdxUUU2+rPlbV3KYoCdqQpig2lB6QEkE4gtBBCh5Ay5/fHnSSTkDJJZjKTyfN+vfLKzJl7zz03A/PM6WKMQSmllMpPgLcLoJRSyrdpoFBKKVUgDRRKKaUKpIFCKaVUgTRQKKWUKlCgtwvgCbVq1TKRkZHeLoZSSpUp69atSzLG1M6d7peBIjIyktjYWG8XQymlyhQRic8r3a+ankRkuIi8f+rUKW8XRSml/IZfBQpjzAJjzB3VqlXzdlGUUspv+FWgUEop5X5+2UehlFKelJaWRkJCAikpKd4uSrGEhoYSERFBUFCQS8droFBKqSJKSEigSpUqREZGIiLeLk6RGGM4fvw4CQkJNGnSxKVztOlJKaWKKCUlhbCwsDIXJABEhLCwsCLVhny+RiEilYC3gVTgV2PMp14uklJKlckgkamoZfdKjUJEpotIoojE5UofLCLbRWSXiEx0JF8LfGmMuR0Y4clyDXzlN/568jLMlGrwdndPXkoppcoMb9UoZgJvAh9nJoiIDXgLGAAkAGtFZD4QAWx2HJbhyULdevwV7AEBbLM3giPn4Mm2ANgRKpvzHAnvTff7Z3iyCEopVWRTpkyhcuXKPPbYY1lp+/btY9iwYcTFxRVwpmu8UqMwxiwDknMldwV2GWP2GGNSgbnASKygEeE4Jt/yisgdIhIrIrHHjh0rVrkaShIGyfUDbQLi2UITYpLmFStfpZQqy3ypj6IBcMDpeQLQDXgdeFNEhgIL8jvZGPO+iBwGhgcHB3cuTgH6dO+Gfe2HSK5N/3bYG9BCEoitNQptkFJK+YLnn3+ejz76iPDwcBo2bEjnzp1Zt24d48ePB2DgwIFuu5YvBYo8GWPOAeNcPHYBsCAmJub2Yl1s6FQChk69JPnYe/fT/dAsou6bXqxslVLKndatW8fcuXPZsGED6enpdOrUic6dOzNu3DjefPNN+vTpwz/+8Q+3Xc+XhsceBBo6PY9wpLnMU2s97TlpsIlh8jcb3JqvUqr8mDwvjmaPL2byvJL3Gfz+++9cc801VKxYkapVqzJihDXO5+TJk/Tp0weAv//97yW+TiZfChRrgWgRaSIiwcBNwPyiZOCptZ72n7YDMG/Nbrfmq5QqP2av3k+GMcxevd/bRSkybw2PnQOsBFqISIKITDDGpAP3AUuAbcDnxpgtRczXIzWKThWOAPBq+CK35quUKj/GdmuETYSx3RqVOK8+ffowb948Lly4wJkzZ1iwwOq+rV69On/88QcAn37qvilnXumjMMaMySd9MbC4BPmWrI8iH3VT90MARJ9a7s5slVLlyLOj2vDsqDZuyatTp06MHj2a9u3bEx4eTpcuXQCYMWMG48ePR0TKV2d2UYjIcGB4VFSUW/O11WkJx3aSEjXYrfkqpVRxTZo0iUmTJl2SvnHjxqzHL730kluu5Ut9FCXmqT6K4FZWgEhpPdqt+SqlVFngV4HCU30UQcGhAKSmXHBrvkopVRb4VaDwVI0ipEJFAFIvnndrvkopVRb4VaDwlOCQCgCkaY1CKVUO+VWg8FTTU2iFSgCkppbN3ayUUqok/CpQeKrpKdBRozBpGiiUUuWPXwUKT7E5OrMl46KXS6KUUqVPA4ULgoKtGgXpWqNQSpU/fhUoPNVHERBkBYqAdK1RKKV8w759+2jTJnum98svv8yUKVPo27cvsbGxACQlJREZGVnia/lVoPBUHwWBIdZvuwYKpVT541eBwmMCrT4KrVEopYpt0aPwdE3rdxmjgcIVtkDSTQBb9ie6ZS15pVQ5FDsDTIb12w0CAwOx2+1Zz1NSUi5Jz0wrKQ0ULkoliBBSy+Ra8kopHxAzDsRm/XaDOnXqkJiYyPHjx7l48SILFy4EIDIyknXr1gHw5ZdfuuVafhUoPNWZDZBGIMGku2UteaVUOTR0KjyVbP12g6CgIJ588km6du3KgAEDaNmyJQCPPfYY77zzDh07diQpKckt1xJjjFsy8iUxMTEms9ffXY5PacyO6r3p8dAnbs1XKVX2bNu2jVatWnm7GCWS1z2IyDpjTEzuY/2qRuFJaRKE2NO8XQyllCp1GihclCGB2Oyp3i6GUkqVOg0ULkpHaxRKqWxludm+qGXXQOGidLvBdvZwmRwDrZRyr9DQUI4fP14mg4UxhuPHjxMaGuryOT6/Z7aINAUmAdWMMdd7qxwZdoMNxxjooVPh4DpIT4WG3SBA461S5UlERAQJCQkcO3bM20UpltDQUCIiIlw+3qOBQkSmA8OARGNMG6f0wcBrgA340BjzYn55GGP2ABNExD0Dgosp3RaCLSPdGgP9/eOw6m3rhQad4abZUKWuN4unlCpFQUFBNGnSxNvFKDWe/io8ExjsnCAiNuAtYAjQGhgjIq1FpK2ILMz1E+7h8rnMHlwFW0glaDfaChK1mgMChzfCR8Mh5bS3i6iUUh7h0UBhjFkGJOdK7grsMsbsMcakAnOBkcaYzcaYYbl+El29lojcISKxIhLriepgugRjM2kw/34rIWkHYMCebj1e8KDbr6mUUr7AG43rDYADTs8THGl5EpEwEXkX6Cgij+d3nDHmfeBpYH1wcLC7yprFHhBEkD0Vjv2V9wFbvoa/Frv9ukop5W0+3wtrjDlujLnLGNPMGPNCIcd6ZplxwC5B1LcfyplYoXrO59/caXVwK6WUH/FGoDgINHR6HuFIKzFPrvWUERBEME7zKMQG/4qHLv+XnXbxNHw8wu3XVkopb/JGoFgLRItIExEJBm4C5nuhHEViApybswKyV4AcOjVnsNi/EnTfCqWUH/FooBCROcBKoIWIJIjIBGNMOnAfsATYBnxujNnijut5tOkpICj7Scy4nCtA5g4Ws65x+/WVUspbPD3qaYwxpp4xJsgYE2GMmeZIX2yMae7od3jeXdfzZNOTsTkFinUzLz1g6FSy/pzxy8FpQxGllCrLfL4zuyg8W6NwanrKb+ORLuOzH8+5ye1lUEopb/CrQOFJJrPpqe0N+W884lyr2LmkVMqllFKe5leBwpNNT9gcNYpQq7byzy82EjlxEZETF+XcR7vLeECsxyf2ub8cSilVyvwqUHiy6UkyF/4LqcIjn23g83UJWa/NWhWfHSyGTrWW+QD4/Fa3l0MppUqbXwUKTwo9vhUAs/d3vvnz0mkfOYLF5i+s34c3QEZ6KZVQKaU8w68ChSebnkLOWquOnE+II3MFegGa1a6Udcynq+KtB86d3XO1U1spVbb5VaDwZNNTxUpVAPg2oydg/eH2vjiUnx7tS5/oWgDYwapV5OjU/tHtZVFKqdLkV4HCkw5TG4BlpiMAzcKzaxIfje+a9TirVpHZqS0CZ8vm5iZKKQV+Fig82fT08IkbeDN9JD9kWIFiz7Hzztelb3MrkOSoVbS5FoyBz8a6vTxKKVVa/CpQeLLpqUOrKF5OH42dAAQY261Rjten39Yl63FWx/aWeVbCgTVWwFBKqTLIrwKFJ913VXTW44lDWvLsqDY5Xg8IEDo2rJ71fPbq/Y5ObcecigNrSqGUSinlfhooXFQlNHt78ZV7jud5zPu3xCCQXeMYOhU63WK9+O09ni+kUkp5gAYKF1UJyQ4Uy7bn3Tldu0oI9aqFYgCT2dT05yfW7+O7tFNbKVUmaaBwUZXQ7NVjb+zSMN/jDp9KARxNT+BofnL8mdfN8FTxlFLKY/wqUHhy1FNoUPaf6sXr2uV73A0xEQC0ql/VShg6NXtV2d+nwsUzbi+bUkp5kl8FCo+u9STi0nEvXd+ey6NqcSEtIzsx1lGTSE+BVe+6vWxKKeVJfhUofEVqup09x87xwJw/rYSYcdYe29UbwfLXdFVZpVSZooGiCL66uwc/P3pFocfF7ksGYMHGQ1bC0KlWsDiZABkp8OUESLvgyaIqpZTbaKAogs6Na9K0duVCj7u5e2MA6lULzU6MnQHYISMDDsbCtAGw93dIPQ/2DEhLsX4rpZSPCSz8EO8TkVHAUKAqMM0Y84N3S1SwZ0e1Ye2+ZP46cobHv97EC9e2s2oUaz8EDEQPtCbgfTQs54kSAJXrQJM+0PZGiOpnrRWllFJeJMbDS0uIyHRgGJBojGnjlD4YeA2wAR8aY150Ia8awMvGmAkFHRcTE2NiY2NLVvASajpxEXasKtueF4daiU/XBOOoNXS6FaL6W/MrMtIgwGZ1dsd9Dcm7rWOqRcBti6BGpBfuQClV3ojIOmNMTO700mh6mgkMzlUYG/AWMARoDYwRkdYi0lZEFub6CXc69QnHeT4vc65F68xhspBzn4o/P4HWI6D3I9D3X3DmMPz+P0jek33MqQT4oB8c3lhKpVZKqUt5vOnJGLNMRCJzJXcFdhlj9gCIyFxgpDHmBazaRw5ijU19EfjOGLPew0V2ixeva8eOo2fYn3yeZo8vZmy3Rjw7aqr1YuwMqN0cpmQO481sXnKu3QnUbGIFjg/7wbjvIeKSQK+UUh7nrc7sBsABp+cJjrT83A/0B64XkbvyOkBE7hCRWBGJPXbMN5bK6NEsjKSzqWQYkz1Te+hUeCoZju1wOtJYP2KDLv8HU07BlJNwwrG3RUaaFSy+yfPWlVLKo8rEqCdjzOvGmM7GmLuMMXnOWDPGvA88DawPDg4u3QLmo0dTa+e7AC5dljxHMxRiBYinkh274zkdI7bs5xvnQPpFj5VXKaXy4q1RTwcB5wWTIhxpfqVT4+oEBgh3XtGUfwxqmfPFoVNzBoW8ZB6z6FHHiClg2kC48zfPFFgppfLgrRrFWiBaRJqISDBwEzC/pJl6cgmP4qgYHMhlDaqxdu+JkmU0dGp2zeLwBu3cVkqVKo8HChGZA6wEWohIgohMMMakA/cBS4BtwOfGmC1uuJbHFgUsri6Na7Ah4SQX00s4mS5zFdqgCjDvXqvfQimlSoHH51F4gy/Mo8i0ZMsR7py1jgCsGdu5d8Yrsk+ug11LoWF3mLDELWVUSinw7jyKUuOTNYrImgDYcdqjoiR2/Wz9PrAKziWVPD+llCqEXwUKX+ujAKhZKZiqjm1ULxn5VBxdxmO9bQI/P1fy/JRSqhB+FSh81ZA29ahWIYinR1xW8syGToUpJ6BOa2vHvC9uK3meSilVAL8KFL7Y9AQQE1mDUxfSiPr3YibPi3NPpke3Wb+3fAN+2M+klPIdfhUofLHpCTzQTwGOJijH0h/bF7snT6WUyoNfBQpfrVE0DqtIhSAbgpv6KcBqgpqcBKHVYe5YWPCQe/JVSqlc/CpQ+GqNQkQYeFkdwiqH8MzI/PspJs+Lo9njixn4ym80e9yFZipbIKScth6vm+m+AiullBO/ChS+rGezMJLOXmRn4tk8X588L45Zq+LJMIYdR8+SYQyzVsUTOXERTSYuyj9oODdBHfrTM4VXSpVrGihKSc9m1gKBg15ZlueH/ier4rMehwblfFsMBfRtDJ0K/9oLVerCvHsgPdVtZVZKKfCzQOGrfRQADWtWBC790J88L44mExdl7URxfecI/np2CNueGUzretmbHo3p6ryGYi4VasDw1yBxKzxXGxY87IE7UEqVV34VKHy1jyJT5gf/NR2zt974dFV8VpDY9fwQXr6hPQAVgm0seuBy7r8qCoCdiWcL7rdoPoisJqh103U5cqWU2/hVoPB1r4/pCMBX6xOYPC+ORz/fgN3x2uiYhgTacr4dIsIjA5rTKyqM1XuTc26AlJcuE8gKFs+Fw4cD4MxRnWehlCoRXRSwlEVOXHRJWgCw58Wh+Z6z//h5rpz6Kxl2w99dWVhwSg3ICkFASFWwBcH5ZKsv48xRqxO8sP0wlFLlSrlYFLAs6Ncy/JK0m7s3LvCcRmEV+cegFgCM6ljQjrEOXcZb+1fUbAIIVIuA88cBA2cOA3ZYO80KGEopVQi/qlGIyHBgeFRU1O07d+70dnHytTfpHHfOimXX0bMuLz1+PjWdXi/+TKWQQA6fTGFst0aFn/d0TTAZVtCIGQdrp0PNSEjea7VQiQ3sGVaTldYulCr38qtR+FWgyOTLTU8l8drSnbyydAcANhF2v3B1wScsehRiZ1hBIncgOL4b3uiU/TwzmGjAUKrc0qYnP3Brz8YEBojrS4EMnQpPJef94R/WDDrflv3cZFhBRSmlctFAUYZUrxjMLT0isQUID/WPLnmGw1+DSUegqqPfI3qgVQt5uqb1Wyml0EBR5ozu0pB0u+HOWetcWw+qMEEV4L5YCIuGo3FWP4bWLpRSTjRQlDEt6lahXUQ1YuNPFD6vwlXBFeGad+H0QagVld1foZRSlIFAISKtRORdEflSRO72dnl8wfWdIwDrzXPbsuURMdDrQUjaAWPmaqe2UiqLRwOFiEwXkUQRicuVPlhEtovILhGZWFAexphtxpi7gBuBXp4sb1kxon19gm0B3Nor0qWhtS7r+ziEt4YFD8DFvFe5VUqVP56uUcwEBjsniIgNeAsYArQGxohIaxFpKyILc/2EO84ZASwCdCs3rE7t/q3Dmb/hEOkZ9sJPcFVgiNXBfeYwrHrHffkqpco0jwYKY8wyIDlXcldglzFmjzEmFZgLjDTGbDbGDMv1k+jIZ74xZghwc37XEpE7RCRWRGKPHTvmqVvyGSPa1+f4uVRW78395y2hhl2h5TBY8TrMu1dHQCmlvNJH0QA44PQ8wZGWJxHpKyKvi8h7FFCjMMa8b4yJMcbE1K5d232l9VF9W4RTMdjGlPlb3DP6ydlVkyH1LGz4VEdAKaV8vzPbGPOrMeYBY8ydxpi3CjrWl/ejcLfQIBv9WtVhZ+JZ941+yhTeEtqPBQkAAnQElFLlnDcCxUHAeReeCEeaKqKhbesBbh79lKnvRAgIhA5jdQSUUuWcNwLFWiBaRJqISDBwEzDfHRn7+sZF7ta3RW0qBdsY3dWFBQKLqnpDa7HAjXMgaZd781ZKlSmeHh47B1gJtBCRBBGZYIxJB+4DlgDbgM+NMVvcdL1y0/QE2c1P38cdJjW9aKOfJs+LK7xv4/KHrZFQv71YwpIqpcoyT496GmOMqWeMCTLGRBhjpjnSFxtjmhtjmhljnnfj9cpVjQLg2k4NOHE+jZ+2uba3RGaA+GRVfOF9G5XDoesdsPlLSNzmphIrpcoan+/MLoryVqMA6B1dm7pVQ3lu0bZ8awjOtYfZq/eTYQwGa6nyQvs2ej0IwZVhzhgdKqtUOVWsQCEiASKS75wGbymPNQpbgHB95wgOnryQbw0hMzh8siqesMrBCNC3eW22PDOo8L6NijWhxz1wYq8OlVWqnCpw4yIRqQrcizXPYT7wI1b/wqPARmPMyNIopKvKyg537rYv6Rx9X/4VAf7m2FZ19ur9NAuvxO7Ec9SqEszR0xcBiAqvTNLZi5w8n0ZYpWDm3NGdWSvjmb16f/675l04CS9HQ0YqxEwAkfw3RFJKlVnF2uFORL4FTmB1SPcDwrE20XzQGLPBM0UtOX/d4a4go99byZHTKSx95ApaPvE9Gbne1x5Nw3hkYHNiGtcg3W5YviuJf3y5iZDAAA6duICdQnbNi50OCx+GAc/A0qezt1h9ys0zw5VSXlPcHe6aGmNuM8a8B4zBWptpkC8HifJq/OVNiD9+noc+28BNXRsSAFSrEARAZFhFPp7QlS6RNRERgmwB9G0Rzoe3xJB09iI1KwcXPhej8zhoNQJ+egZaDs1eijz3Rke68ZFSfqewQJGW+cAYkwEkGGNSPFuk4iuPndmZBl1Wl0lXt2LRpsMknLhArSohnLqQxoTLm/Dzo30Jsl36VrdvWJ1XR3cg6Wwq13WOKLi/QgRGvAFV6sPhDfDPPVazU+yMnH0Xzs81aCjlFwoLFO1F5LTj5wzQLvOxiJwujQIWRXnszHZ2e5+mPDKgOb/tOEa96hX4+p6eTB7WmoAAyfecwW3qcWefpny5PoFdiWcKnl9RoTpcPx1OHYTPb4FDG6xahfNGR87PcwcRpVSZVGAfRVlVHvsoMhlj2Jt0jsiwSgUGCGfJ51Lp9eLPDGlbl2//PESGMYX3VyyZBGnnIaIrdL4N6raBGpEQ6hSkFz2as9M793OllE8pVmd2WVWeA0VxPbNgKx+t3MeIdvWZv/FQ/iOgMl04aS3vseYDSN6dnR5aHVqPhKuesCbsOXu6pnaCK+XD8gsUgd4ojKc4DY/1dlHKnDv6NGXWqn1UDg3MvybhrEJ16H43dL0TjsZZ8yxOxFszuDd8CnFfwxX/hG53QWCwdU5mc5SuRqtUmaI1CpXl8a838dX6g/zxrysJrxKaNZO70NpFbkk7raapnUsgLBrGLb60dqGU8jnFHR6rypE7+zQjPcPOzOX7gOwZ3UXe66JWNNz8OYz9HE7uh2/vBT/8QqJUeaGBQmWJrFWJK5rXZv7GQxhjGNutkWvrQeWn+SAY+Bzs/AHWvO/ewiqlSo1f9VGokhvSph6/fLWJLYdO8+yoNiXf56Lr7bBrKfwwGSIvhzqXuaegSqlS41c1ivI84c5d+reuQ4DAki1H3JOhCIx8yxo2++UESLvgnnyVUqXGrwJFeZ9w5w41KwXTrUkY38W5KVAAVK4N17wDx7bB0inZ6TpzW6kywa8ChXKPIW3rsivxLLsSz7gv06j+0OlWa7LeuSQrTWduK1UmaKBQlxjYui4A37uzVgHQ/R5rqfI/P7Ge517+QynlkzRQqEvUrRZKx0bV+d5d/RSZwltC48utWoXdbi3j8VSyLuehlI/TQKHyNKRNXeIOnuZA8nn3ZtxlPJyMh90/uTdfpZTHlIlAISKVRCRWRIZ5uyzlxeDL6gFFH/3kvPpsnivRthwOlcJh7TR3Flcp5UEeDRQiMl1EEkUkLlf6YBHZLiK7RGSiC1n9C/jcM6VUeWkUVpHmdSrz6/ZjAAUvP+7EeTZ3njO7A4Oh09+t5T1OHvDkLSil3MTTNYqZwGDnBBGxAW8BQ7B2zBsjIq1FpK2ILMz1Ey4iA4CtQKKHy6py6RNdmzX7krmQmuHych7Os7nzndnd+TZrSY91Mz1WdqWU+3h8UUARiQQWGmPaOJ73AKYYYwY5nj8OYIx5IZ/znwcqYQWVC8A1xhh7HsfdAdwB0KhRo87x8fHuv5ly5rcdx7h1+ho+Gt+VpVuP5rlAYFEWDsxx7Pln4eB6eHhL9uqySimv8qVFARsAzm0OCY60PBljJhljHgJmAx/kFSQcx70PPA2sDw7WDx536BpZk+DAAH7fcYxnR7Vh9wtXXxIMirJwYI5jYybAuUT4a4Gniq+UcpMy0ZkNYIyZaYxZWMgxOjPbjSoE2+gaWZPfdyblSHfuryjKwoE5jo3qB9Uawca52QfoTG2lfJI3AsVBoKHT8whHWonpWk/u1zu6FtuPnuHo6ZSsNOeaQX41jbzkODbABi2GwN7fIc2Rt87UVsoneSNQrAWiRaSJiAQDNwHz3ZGx1ijcr3d0bYActYr8ahHnU9P575K/WLz5MHa7C31f0QMg/QLE/2E915naSvkkj3Zmi8gcoC9QCzgKPGWMmSYiVwOvAjZgujHmeTddL3Mr1Nt37tzpjizLPbvd0PU/P9ErKozXbuqY73EHT17g9o9i2Xr4NAAt6lThgX7RDGlTl4AAyfuktAvw/yKh8zgY8qIHSq+UKgqvdGYbY8YYY+oZY4KMMRHGmGmO9MXGmObGmGbuChKOfLVG4WYBAULv6Fr8sTMp31rCuvhkRr75BweSzzPt1hheu6kD6XY7985ez6i3l5OSlpF35kEVrD0qdv1Y/AJqv4ZSHldmOrNdoX0UntE7uhbHz6Vm1Rac/bI9kTHvr6ZSSCDf3NuTfq3qMLJDA354+Ar+c01bNiWc4pNVBQxVjhoAx3dB8t7iFU77NZTyOL8KFFqj8IzLo2sBsHTb0RzpyedS+ccXG2lauxLf3tuLqPAqWa/ZAqw+jF5RYbzz627OXUzPO/PoAdbvXUsvfS13bSGv2oP2ayjlcX4VKLRG4RnhVUK5skVt3v5lN2v3JWelT54Xx6kLabx6UweqV8x77spjA1tw/FwqM5bnU2MIawY1msDOPJqfctcW8qo96Aq0SnmcXwUKrVF4ziujO9CgRgXunLWO/cfPs2DjIRZtPsxD/ZvTsm7VfM/r2KgG/VvV4b1lezh1Pi3vg6IHwN5l2cNkM+WuLWjtQSmv8PgSHt4QExNjYmNjvV0Mv7Pn2FmueXsFtauEkHT2Io3DKvHVXT0ItBX8fWPb4dNc/frv3H1FM/45uOWlB+z4AWbfAH/72pqIp5TyCl9awsNjtOnJs5rWrsw7N3diX9I5LqRmMPWG9oUGCYBW9aoyrF19Zizfx7EzF7PSM2d4PxNXE2whefdTFIeOhFLKrfwqUGjTk+f1jKrF9Nu68MEtMUSFV3b5vIf7R5OaYeedX3dnpWXO8P5obaI1TDavfori0JFQSrmVXwUKVTr6NK9Nn+a1i3RO09qVGdCqDt/FHSazuTPHDO/oAXB8J5zYV/ICal+GUm4V6O0CqPKjd/NafL/lCHuSztGsdmWeHdUme42opFBgolWr6Hp7yS40dKqOglLKjfyqRqF9FL7t8ihrPsbyXUmXvhjWDGo2hW267LhSvsavAoX2Ufi2RjUrElGjAn/szCNQiED7sbD3N0jeU/qFU0rly68ChfJtIsLlUbVYuec4GXmtG9XxZqtvYd1HpV84pVS+NFCoUtUrqhZnUtLZfDCP5sGq9aH5YNjwKaSnupSf8yZKSinP0EChSlXPZmFAPv0UYI1UOncMti92Kb+ibMWqlCoevwoU2pnt+8Iqh9CqXtW8+ykAml0F1RrCOtfmQBRlK9ZSY7eDPZ+l1ZUqg/xqeKwxZgGwICYmpoTjK5UnXR4Vxkcr4rmQmkGFYFvOFwNs0OkW+OV5q1O7ZtMC88oxxNYXpKXAh/0haTtUb2QteFgjEmo2sR5HdIHKRZuDopS3+VWNQpUNvaJqkZphJzY+Oe8DOv7N6tRe/3GO5DLRH/Hrf+DoZugwFupcBmePwqbPYMm/Ye4YeLsbJO1yz7USt1nDie129+SnVD78qkahyoauTWoSZBP+2JWUtSd3Dpmd2n9+An3/DYHBkJ7KibWf85htD7+s6QQjL7OG1PqSA2tgxRvQ6VYY/lp2ujFwPhkSt8AX4+CTa2HCj1ClTvGuY8+AlW/Cz89BRirUaQP9noTogb73N1F+QVePVV4x+r2VnEtNZ+H9vfM+IHNF2QHPwNlE2DgHzh/Pfr1GE2g/BtrfBDUal06hC5J6Ht69HDLS4J4VEFIl7+MS1sFHw6BWNNy2KP/j8nMiHubdDfHLodVwaHE1/PYSnNgLjXpAv6egcY+S348ql8rF6rGq7OgVVYsth05z4lw+w2Cj+lmd2j8+Cavfhca94OavYOJ+GPUOVIuwmnleawfL/lvwxUpjNdmfnoHk3TDyzYI//CM6ww0fwZE4+PwWl4cBYwxsmAPv9ILDm6y/wY2zrCau+9bC0P9ZfTozBsOnN1r5K+UmPh8oRKSviPwuIu+KSF9vl0e5R6+oWhgDK/dk1xJy9EEE2GDU2zDoBXhkG4yeBdH9IbSa9eF420J4aDO0HAa//r8c7f6X9GV4ejXZfX/A6negy+3Q9IrCj28+EEa8Drt/hvn3W0GgIOeOW0Fl3l1Qty3cvdz6G2Q2M9mCoMsEeGCDVaM4sMqq3Xx9J6SeK/HtKeXRQCEi00UkUUTicqUPFpHtIrJLRCYWko0BzgKhQIKnyqpKV/uIalQOCWTl7uxAkXtOxOSNNWk2P5LJSxPzzqR6Ixj2CgRVgCWP55uPR1eTvXgW5t1jNYUNeNr18zr+Da58AjbNhaVTLn09PRUOrIXlr8E7PWD7d9D/aStA5tfUFlwRej8CD26EXg/C5s9h7thLdw5Uqog83Zk9E3gTyBq+IiI24C1gANYH/1oRmQ/YgBdynT8e+N0Y85uI1AH+B9zs4TKrUhBoC6B1vapsO3w6K21st0bMXr0/a06E8wd+vkNgK4dD34nWqKIdS6D5oEvy8ehqsj8+CSf3w7jFEFypaOf2eQzOHILlr0LFMKjTGvavgviVcDAW0h0f8PU7wt++smoTrqhQwwpatVtY/Rlf3Go1UwXmva+5UoXxeGe2iEQCC40xbRzPewBTjDGDHM8fBzDG5A4SufMJBmYbY67P5/U7gDsAGjVq1Dk+Pt5t96A848lv4/h6/UE2TxmI5DFaZ/K8uKwP/ALnSmSkWW339jS4ZxUEhhS7TC5fE2D3LzBrFHS/Fwb/p3gXtGdYzUp/LbSeiw3qtbM6pht1h4bdiz86CmDtNFj0CLQeBddNA5ubvhsuetRqyosZp0u6+xFf6sxuABxwep7gSMuTiFwrIu8Bs7BqJ3kyxrwPPA2sDw7Wb05lQcu6VTl7MZ2EExfyfP3ZUW3Y/cLVhX9g24Jg8AtWZ+6qd0pUJpeXBLFnwOLHICwK+k12LfO8OtUDbHDdh1bn9N/nWZ31d/xq3U/rkcUPEpnXStwKA5+HrfPg23tdn3NR2AAA3UWwXPH5zmxjzNfGmDuNMaONMb8WcqwuM16GtKxnjQ7668iZkmcW1Q9aDLVGQJ0+XPjxx3bAN3dbzTxOXF4SZNt8OL4LrnrC6iNxRX4frkEVrM7pZldCiOvbyxb4Ye58rZ73ZfeHLHqk8M5zgLXTCw4EuotgueKNQHEQaOj0PMKRVmK61lPZ0qKOI1A49VOUyKDnrWaovDqHne35Dab1h42zreGk39xtzdXAxVqMMfD7/6zaRKsRrpevoA/X4gzhLehbfe5r9XkMLn/EWkNryb8vDRZ2uzVhcOkUeLMr4Kh5VIuA9bPgzNGcxw+dCk8la7NTOeGNmdlrgWgRaYIVIG4CxnqhHMrLKoUE0jisontqFGCtp9TzPvh9KlRrAD0fgArVcx6zfhYsfAjComH8D9a37BVvwl+LrCakmPFWc1BBdv8ERzbBiDcKP9bJ5LRxzE7px9i0Rjyb+0XnD31XP3xjxmX3E+SWuwNfxJq9nXYBVr0N8Sus+RjR/aByXdjxvbVqr9ggspdVwzmxzxogMP8+K496HawZ880HQr2OEODzDRLKTTzamS0ic4C+QC3gKPCUMWaaiFwNvIo10mm6MeZ5d15XZ2aXHXfOimXn0bP8/FjfQo+12w0HTpyncVgBo4tSz8H8ByDuS2vORa8HodtdEFgBfn4G/njFWqH2hpnW62A1Qy1+FPYug3rt4doPrBFD+Zkx1OoPeXBjkUYSNXt8MRnGYBNh9wtX53yxtDqHjbEC5bqZ2WkhVSGqvzXLO7q/NWrK+fijcVbA2LEEEtYCBiqFw8BnrZnxedHO7jIpv85sv1rCQ0SGA8OjoqJu37lzp7eLo1zwyo87eP3nnWx9evClK8nmMmX+Fmau2Mffuzdm0tBWhAYVcPzhTdYKtDu+h0q1IbyVFQg6j4Or/8vkBdtzjm4yBrZ8DYv/ac2svnMZhFYFco2E6nwepg2wJgL2uKdI91qkEVWezM9uh/f7WrWi5oOKNnT23HHYtRTWvA9HNlt/p/CWlx73dE2rhiQ2q4lKlQnlIlBk0hpF2fF93GHu+mQ9397bi/YNq+d73PJdSdz84WpaOeZeNK9TmdfHdKRl3aoFX+DAGmt5jX1/WN+Ae9wHIjSduAg7VifdnheHZh+/fxXMuBpaj4DrZ4BIzppA24/hwGp4OK7o8ybcrMAaiqedTYS3u0PVBvB/P10aaLRGUSb50vBYpbK0qmd90P91JP8O7VMX0njsi400rV2Jr+/uyUfju5J8Lo0Rby7noxX7KPDLTsOucOsCmBiP6XEfa/ad4JHPNmTN22gbkWuEXKPuVl/Flm8gdhqQPRLq4XZpsOM7qymrgCBx0/sraTJxEf/+erOLf4Xi8eqmTZXDYfjrVq3k1zymQGlnt1/xq0Cho57KnoY1KlIx2Ma2w/l3aD+9YAuJZy7yvxs7UCHYxhXNa/P9Q73p1SyMp+Zv4eHPNpCekf/8gJR0Ox+uPU7///3Gje+t5MetRxnTrSGDLqvD5oOnWLsvV9NIzwchagB8/284vDFrJNR9wQsguDJ0zX9frBW7kli1JxkDLFyzjVmr4rmY7pnd7goaoVUqe3e0GmYtRbL81UuGGSv/4leBQudRlD0BAUKLulXyrVF8H3eEr9cf5N6+zejg1DRVq3II02/rwmMDmzNvwyEe/GwDaXkEi0MnL3DDuyt5btE2qlUI4qXr27F6Uj+eG9WWl29oT8OaFXlo7gZOnU9zLhRc8661rMYXt0HKaUjeC3FfQefboGLNPMt67mI6//xqE5FymGlB/yVKDjJ5XhxX/vdXPvFgwMiLp/cSzwxEz6bfYq3y+82dcLGIo9dcGRJcGiv/qkL5VaBQZVPLulX568iZS5qQks5eZNI3m2nToCr3XRV9yXkiwn1XRTPp6lYs2nSY+2f/SWp6drCI3ZfMiDf/YG/SOT64JYav7+nFjTENqRhsjQqvEhrE6zd15OjpFCZ+vSnn9SvVguunWfs/LHgQVrwOAYFWH0c+XvzuLw6evMB/2x6iX+AmvuqVwKwJXalbLZQnHAHj+zgXJgO6gaebpTID0czY43DNe3DqAHz/eOEnOnNldrfOAPcJfhUotOmpbGpVrwonz6dx9PTFHOlPzd/CmYvp/O/GDgQH5v9P9fY+TXlyWGu+33KEe2ev52J6BnPW7GfMB6uoHBLIlS1qc9esdXk2w7RvWJ3HBrXgu7gjzF17IOeLjXvCVZOs0VCxM6yNkqrWy7MMK3YnMWtVPON6NqHL2CfhqWRk2FR6R9fmq7t78vH4rlStEMQjn2/kdEpannnkqYBv1Ha7ybMWBYVPHCxp01SOQNS4B/R6CP6cZc1HcZUrs7t1BrhP0FFPyuvW7E3mxvdWMmNcF65sEQ7AxgMnGfnWch7sF83DA5q7lM/HK/fx5LdbaBxWkfjj5+kdXYs3x3Si07M/Fjg6yG433DJ9DbHxySxst4KorW9lj9ax2+HT62HPr9YGQWHNLjn/3MV0Br+2DJsI3z3YJ99hvpsSTjLizeU8Nbw143o1ce2Pk88wU2MMD8zdwLIdx3igXzR/7964wGCam9tHTKWnwodXWcun3LPS6uxWZY6OelI+q0XdzKU8stu4X/5hOzUrBXN7n6Yu53NLj0j+c01bEk5c4PbeTZg5rivVKgYV2gwTECD878b2VAwO5L719UmxB2Q3dQQEwE2z4d7VeQYJgJe+/4uEExd46fr2Bc4FaRdRnY6NqjNrZTx2u4tf0PL5Rr1g02EWbDxEzUrBPLtwK4NfXcbSrUcLHgHmxO1NU4HB1kTFi2esCY9++AW0XDPG+M0PMBx4PyoqyqiypecLP5n7Z683xhizYleSafyvheaDZbuLldeF1PTCD1r4iDFTali/HX7edtQ0/tdC88akW3OkFySzrFPmx7l0/DfrE0zjfy00v21PzEp74pvNpunEReaJbza7lEfi6RTT4eklZsSbf5i09Azz07Yj5sqXfzGN/7XQjP1gpdl66JRL+XjEireMeaqq+ebD54t0T8o3ALEmj89Wv6pRGB31VGa1dIx8Msbw8g/bqVs1lL91z2cnt0IUOGM7Ux6dpFe2DKdnszC+rHYr5uqXs4/Np5/gfGo6//xqI43DKvLPQXnMTs7DkLZ1qVU5mI9W7MtKK8oIJWMMT8zbzLnUDKbe0I5AWwBXtazDkof6MGV4a7YcOs3Q13/n8a83cezMxULzy0+x+zC63QVN+jBg/6s04IjHRl0Vm46iKha/ChSq7GpZrwq7j53j+7gjrIs/wQP9ol37wC+ufJp0RnVowL7j59mY4DQgIp+RN/9dsp2EExf4byFNTs5CAm2M7dqIn7cnsv/4eaBozUDzNx5iyZajPDKgOVHhVbLSg2wB3NarCb89diW39WzCF7EJ9P/fbxw8mfdeH4Up9vDagAAY9Q4BtiDeDnqNF5v/BacPFasMReJqAPDnUVQeDIIaKJRPaFm3Khl2w6R5cTQOq8gNMRGevWA+M4cHtalLsC2AeX86rXyfR1BJOnuRT1ftZ3RMQ7o2yXteRX7GdmtMgAifrLZ2YXR14lzimRSemr+FDg2rc3vvvPtuqlUM4snhrVn0QG8upGXw8pLtRSpbdhlL0IdRLYIKN7xLmwonuCH+afhfK3itA8y7FzbMtlaldXcfhqsBwJ9HUXkwCHpjmXGlLtHKsYlR8rlUnhremiCbd77DVKsQxFUtw1m46TBPDG1FoC0gzz23Z6/eT2qGnf/bNAZCBxdpqYq61UIZfFldPlt7gIf7Ny+wNpL5zf7TVfEcPZ3C+dQMXr6hPbaAS7eOddaibhUmXN6Ed37dzfheTS5dqqQQz45qU7KFC1sNt1ajPbIZ4pfDvuWwfRFs+MR6vWqEtZx5y2HWsXlshVskBS257szF/dPdvYBjqXD1b1AMWqNQPiEyrBIhgQG0rFuF4e3qe7UsozrWJ+nsRVbsPp7n6xfTM5i1Kp6+ARuJkoRifYO7pUdjTl1I49sNBe/ZlfnNvmdULX7YepTHBjYnKty1XfDu7tuMmpWCeW7RVpdHQ7nCGMO5i+mF5xlgg/odoMe9MGY2/GMP3L0ChvwXImJg98/w+d/hk+usWkZJuHltKU/PbPcID66v5Vc1Cqdlxr1dFFVEgbYAXh/TkSa1KhFQyLdlT+vbIpwqoYHM23CQPs1rX/L6ok2HOXbmIuPaGNhdvGaMrk1q0rJuFT5aGc/oLg2zFinM7dlRbbj/qigGvLKMTo2qM+Fy14cLVw0N4uH+0Uz+dgtLtyUyoLVr+29n2A3T/tjDrsSznL6QzumUNOsn8/GFNOwG/t69cdG+bQcEQJ3LrJ9ud1j7jq+dBj89DW/3gCv/Dd3uBlv2x5K3vtmP7dYo67pKJ9wplad/fbmJhZsOEfvEgBxNQ8YYhr/5Bylpdn58uE++H/CumLNmP49/vZnP7+yRbz+HMYbbP17H7zuPsfjB3jSrXYQ9tYG0DDuDXl0GBpY83MelJr2nF2xhxvJ91KkaQrUKQVQNDaJqhSCqhgY6fgex/egZlm47ytd396RjoxqF5lmgUwmw6DFrZd567a1Vaet3ALy8lHo5pBPulCqCkR3qcy41g5/+yrlXdGz8CeIOnmZcr8gSBYnMa1QNDeSjlfvyfP18ajqv/LiDpduO8tjAFkUOEmCNhvr3kFbsSTrHnDWFN6PMXL6XGcv3Mb5XE1b/uz8/PHwFX97dk+m3deHVmzryzMg2PDaoBa+M7kB4lRCemBdHhquTB/NTLQLGzIEbPoIzR+CDq+CHJyD1vMud6qWyWq4PXru0aKBQKg/dmoZRp2oI8/7MObRz+h97qVYhiGs7RpT4A6JicCCjuzRkSdwRjpxKyUq/kJrBB8v20OelX3j9511c3bYu4y93ccmPPPRrFU73pjV5denOAteZWrr1KM8s3MqA1nWYNLRVgXlWDglk8jBr3sYnq+KLXbYsInDZKGsGfMe/wYo34O3uPNvmaIFrVmXyZp9Cka5dRudxaKBQKg+2AGFE+/r8tiORk+dTAUg4cZ4lW44wpmsjKgTb3PLh9Lfuja081uwnJS2DD3/fQ++XfuH5xdtoVa8qX93dg7dv7lzoKKeCiAhPDG1N8rlU3v5ld57HxB08xf1z/qRNg2q8dlMHl643tG09ekfX4uUl20k8k1Lo8S6pUANGvA63LQJbEHxyLXx7X6HDab25iVORrl1G53H4fKAQkQAReV5E3hCRW71dHlV+jOzQgLQMw6LN1tLgH6+MR0S4pYc1Y9wdH06NwypxZYtwPlqxj94v/cJzi7bRom5lvrirB7MmdKNz46LN0chPmwbVuLZjA6Yv30vCifM5Xjt08gLjZ66lZqVgPrw1JmsZ9sKICE+PuIyL6XZeWPyXW8qZJfJyuGs5dL/HpVVpC1st15OKdO0yOo/Do4FCRKaLSKKIxOVKHywi20Vkl4hMLCSbkUAEkAYkeKqsSuV2Wf2qNKtdiW//PMS5i+nMWbOfwW3qUr96BcB9H04TLm/CqQtpRNWuzGd3dOfT/+tOl0j3BAhnjw1qgWDNKM90JiWN8TPXciE1gxnjuhBeJbRIeTatXZk7r2jKN38eZGU+w4mLLSgUBjwLNZvBL/+xVvIt68roFrGerlHMBAY7J4iIDXgLGAK0BsaISGsRaSsiC3P9hAMtgBXGmEeAuz1cXqWyiAijOjRgzb5k3vh5F2dS0hnv6vLgRdArqhYbnhzAnDu6061pmNvzz1S/egX+r3cTvt1wiI0HTpKWYefe2X+yK/Es7/ytM83rVCk8kzzce2UUDWtWYPK3cTk2jnILWyD0fRwSt8DWb9ybt6/zof4MjwYKY8wyINeGxHQFdhlj9hhjUoG5wEhjzGZjzLBcP4lYtYgTjnNLby9JpbCanwDe/W037RtWp1Oj6h65TvWKwR7JN7e7rmhGrcrBPL9oG09+u4VlO47x/DVtuDy6VrHzDA2yMWX4ZexKPMv05XvdWFqHNtdC7VbwywuQke7+/EtRkQZA+FB/hjf6KBoAzluJJTjS8vM1MEhE3gCW5XeQiNwhIrEiEnvs2DH3lFSVe43CKmYFh/FuGBLrbVVCg3iof3PW7Etmzpr93NO3GaO7lLwDuF+rOgxsXYfXlu4s9kKE+QqwWZPxju+EzV+UKCtvD2Ut0gAIH+rP8PnObGPMeWPMBGPM/caYtwo47n3gaWB9cHDpfDtT5cMdfZrSO7oWQ9rkvQ1qWXNTl4Z0iazB6JiGPDawhdvyfXJ4awyGZxZsKfRYYwzr4k/w6/ZEUtJcaChoNRzqtoPfXoSMImwlm4u3l+YocABEWoq1NtbmL+GnZ9m6YwfrM5ry6/40OBLn1c2gPD4zW0QigYXGmDaO5z2AKcaYQY7njwMYY15w1zV1ZrZSBTPGeKR29Pavu3jp++3MuK0LV7a8dDvUA8nn+Xr9Qb7+M4F4xzLrlUMC6dcqnCFt6nFF89r5L5K4YwnMvhGGvwadbytW+VxeEmTRo9kL7Lm74zktxaodJf4Fx7bBse2QuA1O7AXj6OMRG7sy6nCKSnSQXdjEQFg0XHaNNd8kvHXJF1LMQ34zs70RKAKBHUA/4CCwFhhrjCn8a0jh18pc6+n2nTt3ljQ7pVQRpabbGfLaMtIyDD883IfQIBunU9L4bvNhvlp/kDV7rS7LHk3DuLZTA2pVCWFJ3BGWbDnCifNpVAiycVXLcIa0rcuVLcKpFOI0VNcY+LC/NXv7gfUQGOK5G8lnr/JiMcYKBFu/hb8WQuLWHAGBsGZQu6X1E97S6o8Ja8bkhTuZvXo/t3eqwsTIHbB1Huz7wzq3VnNoPcoKHOGt3BY0vBIoRGQO0BeoBRwFnjLGTBORq4FXARsw3RjzvJuup4FCKS9bsTuJsR+s5rpOEaRl2Fmy5QgX0+00rVWJ6zpHMLJDfSJqVMxxTnqGndV7k1m8+TBLthwl6exFQgID6NuiNtd3bpi9oOHuX2DWKGsF2m53eO4mSlqjMAaObLKCw9Zv4fguQKBRD2uOiFNAKFLAO5sI2+bDlnnW8u2ZQeOya3jjSBte3RRYogUUvVaj8AZtelLKux6c+yffbjhEtQpBjGhfn2s7NaBDw+ouNXdl2A2x+5L5Lu4I38Ud5ujpi7xwbVvGdG1kfQDPHGp98D6wAYIrFppfqTEGDq7LDg4n460aQ+Tl0HoEtBwOVVxbwdclZ45aQWPrt1ZNA8NOewMmpt/JV/95sFhZlotAoTUKpXzDuYvp/Ln/JF2a1CAksPhb2qZl2Lnj41h+23GMt2/uxOA29axNkGZeDQOfg573u7HURS1cCpw5BCfiYecPsHU+nE6AgCBoegW0HgkthkIlz82NyXLmKAs+e4/a+xfze5v/8I8brypWNuUiUGTSGoVSvs/VjuULqRn8bdpqNiecYub4LvRsVgtmXQOHN8KDGyGkeBMFC5R+0aq1nD4Mpw/CmcPW3t+nDzkeH4QLJ7KPt4VAVD9oNQJaDLbWrCqDNFAopXxKUfaaOHk+lRvfW8mhkynMvaM7bcwu+PAquOoJ6PMP9xYseQ98cj0k51pAsVI4VK0HVepD1frW46oNrMcNOnsmYJWy/AKF7nCnlPKKouwiV71iMB+P78Z176zgthlr+OKunjRpPsRajrzL7VChunsKlbDOGoJrMmDk21Znc9X6ULkuBJbf+Vlao1BKlRm7j53lhndXUjHYxrfXVSXsk37Q559w1aSSZ779e/hyHFSqDX/7CmpFlzzPMqZc7HAnIsNF5P1Tp055uyhKKQ9oVrsyM8d14cS5VG5eeJ60FiNg1TtwroQr18ZOh7ljrKGm/7e0aEHChxbv8xS/ChTGmAXGmDuqVavm7aIopTykXUR13vt7DLuPneWfSVdjUs/CiteKl5kx8NOzsPBhiOpvbZhU+dIZ5QXyocX7PMWv+iiUUuXD5dG1eGV0B+6f8yeja15Ft9XvI93vLdo8hfRUWPAAbJwDnW6Boa9Yy5oXVcy47Ml5xWSM4fCpFHYcPcOOo2fYfuQsOxPPcOzMRXpH12J4+/r0aBpGoM073+21j0IpVWbNWhXPtG9/5KeQfxJQoRrS4mpoORTTtC8msAIG60PYAHbHZ12ACLbUMwR8cSvs+QWunGSNnCriMhh2uyHDGOzGIAgiVt4BQoETC5POXmTHkTNsP3qGHUfPWsHhyBnOXMxeQj28SgjN61ShaoVAlu1I4uzFdMIqBTO4TV2GtatP1yY1S7Q9bn7KxfBYnXCnVPnz6tIdrP55HqNtv3JVwJ9UlfOcNyH8Zm/HDxkx/GzvyCkqZx0fzglmBr9EtCQwKeN25pm+BASATYSAAMEWINgcH/QZxpBhN9lBwZ6dVhgREDKDh+MJ5NjcqXrFIJrXqUKLOlVoXrcKzcMr07xOFWpUyh5hlZKWwa/bE1mw6TA/b0vkQloG4VVCuLptPYa3r0fHhjUIcFPQKBeBIpPWKJQqP4wxfLnOWo3WZtJoeHo9Ucm/EZX8G5VTj2HHxsHqndlbqy/HKzWj319PEZp+mgXNX2BP9e5k2K3aRobdERQcj7NrCI7gEZD52CmoOH6DVcPIrLkYY5XLbsBg/bYbAwbqVA2leZ0qNK9bmdqVQ4q0iu/51HR+2pbIwk2H+GX7MVLT7dSvFsrQdvUY1q4+7SKqlWhVYA0USqnyxW6HQ39aK7b+tRCSdljplevAzV9AvfbeLV8JnUlJY+m2oyzceJhlO4+RlmFoVLMib4zpSPuG1YuVpwYKpVT5dmwH7F9hjW6qFuHt0rjVqfNpLNlyhEWbD/Pq6A45mq6KQgOFUkqpAumEO6WUUsXiV4FCJ9wppZT7+VWgUEop5X4aKJRSShVIA4VSSqkCaaBQSilVIA0USimlCqSBQimlVIH8csKdiBwD4vN5uRaQVIrF8RR/uA9/uAfQ+/A1eh/F19gYUzt3ol8GioKISGxeMw/LGn+4D3+4B9D78DV6H+6nTU9KKaUKpIFCKaVUgcpjoHjf2wVwE3+4D3+4B9D78DV6H25W7voolFJKFU15rFEopZQqAg0USimlCuRXgUJEBovIdhHZJSIT83g9REQ+c7y+WkQinV573JG+XUQGlWrBc5axWPcgIpEickFENjh+3i31wucsZ2H30UdE1otIuohcn+u1W0Vkp+Pn1tIr9aVKeB8ZTu/H/NIr9aVcuI9HRGSriGwSkZ9EpLHTaz7xfpTwHsrSe3GXiGx2lPUPEWnt9Jp3PqeMMX7xA9iA3UBTIBjYCLTOdcw9wLuOxzcBnzket3YcHwI0ceRjK2P3EAnEeft9KMJ9RALtgI+B653SawJ7HL9rOB7XKGv34XjtrLffiyLcx5VARcfju53+XfnE+1GSeyiD70VVp8cjgO8dj732OeVPNYquwC5jzB5jTCowFxiZ65iRwEeOx18C/UREHOlzjTEXjTF7gV2O/EpbSe7BlxR6H8aYfcaYTYA917mDgB+NMcnGmBPAj8Dg0ih0HkpyH77Elfv4xRhz3vF0FZC5qbSvvB8luQdf4sp9nHZ6WgnIHHHktc8pfwoUDYADTs8THGl5HmOMSQdOAWEunlsaSnIPAE1E5E8R+U1Eenu6sAUoyd/TV94Ld5QlVERiRWSViIxya8mKpqj3MQH4rpjnekpJ7gHK2HshIveKyG7gJeCBopzrCYGlcRFVKg4DjYwxx0WkMzBPRC7L9e1Ela7GxpiDItIU+FlENhtjdnu7UAURkb8BMcAV3i5LceVzD2XqvTDGvAW8JSJjgScAr/bV+VON4iDQ0Ol5hCMtz2NEJBCoBhx38dzSUOx7cFRHjwMYY9ZhtV8293iJ81aSv6evvBclLosx5qDj9x7gV6CjOwtXBC7dh4j0ByYBI4wxF4tybikoyT2UuffCyVxgVDHPdR9vd+646werdrQHq5Mns5PoslzH3EvOjuDPHY8vI2cn0R6805ldknuonVlmrI6yg0BNX30vnI6dyaWd2XuxOk5rOB6XxfuoAYQ4HtcCdpKr09KX7gPrg3M3EJ0r3SfejxLeQ1l7L6KdHg8HYh2PvfY5Vep/KA+/CVcDOxz/WCY50p7B+nYBEAp8gdUJtAZo6nTuJMd524EhZe0egOuALcAGYD0w3Mffiy5YbaznsGp1W5zOHe+4v13AuLJ4H0BPYLPjP/ZmYIKP38dS4Kjj388GYL6vvR/FvYcy+F685vR/+RecAom3Pqd0CQ+llFIF8qc+CqWUUh6ggUIppVSBNFAopZQqkAYKpZRSBdJAoZRSqkAaKJRSShVIA4VSSqkCaaBQyktE5A3HXhZdXDi2qYhME5EvS6NsSjnTQKGUF4hIJSAcuBMYVtjxxlqWeoLHC6ZUHnT1WKWKQEQigLewNpGxAYuBR43TAnS5jn8XmGWMWe6cbow5JyL1sBaoa+R0fFvghVzZjDfGJLrtJpQqIq1RKOUixwZRXwPzjDHRQDRQAWvPgPx0x9pEJ3deYUBF4AyQnplujNlsjBmW60eDhPIqDRRKue4qIMUYMwPAGJMBPAzcIiKVcx8sIq2AHY7jcnsCeBlr8bfLCruwiIQ5aicdReTxEtyDUkWmTU9Kue4yYJ1zgjHmtIjsA6KwVvt0NgT4PncmIhKJtaLpI8DljnxXFHRhY+01clfxiq1UyWiNQinPGUQegQJ4DnjGWEs3b8OFGoVS3qQ1CqVctxW43jlBRKoCdbH2B3BOrwhUN8YcypXeAbgWuFxE3sLaX2SzB8usVIlpjUIp1/0EVBSRWwBExAZMBd40xlzIdeyVWJvO5Pb/sDaoiTTGRALt0RqF8nEaKJRykaOp6BrgehHZibWjnd0Y83weh1/SPyEiVwEVjTFLnfI8ClQWkZqeK7lSJaM73ClVTCLSE5gDXGOMWZ/rtfVAN2NMmlcKp5QbaaBQSilVIG16UkopVSANFEoppQqkgUIppVSBNFAopZQqkAYKpZRSBdJAoZRSqkAaKJRSShXo/wMZQRsGbmgFbAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "plt.scatter(data_dd.x, data_dd.y, label=\"dd\", s=4)\n", "plt.plot(data_dd.x, objective_dd.generative())\n", "\n", "plt.scatter(data_uu.x, data_uu.y, label=\"uu\", s=4)\n", "plt.plot(data_uu.x, objective_uu.generative())\n", "\n", "plt.ylabel(\"R\")\n", "plt.xlabel(\"Q / $\\AA^{-1}$\")\n", "plt.yscale('log')\n", "plt.legend();" ] }, { "cell_type": "code", "execution_count": 12, "id": "40bc9afe", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(*s_dd.sld_profile(), label='dd')\n", "plt.plot(*s_uu.sld_profile(), label=\"uu\")\n", "plt.ylabel(\"SLD\")\n", "plt.xlabel(\"z / $\\AA$\")\n", "plt.legend();" ] }, { "cell_type": "code", "execution_count": 13, "id": "2142473a", "metadata": {}, "outputs": [], "source": [ "# select the parameters to be fitted and their bounds\n", "model_uu.scale.setp(vary=True, bounds=(0.9, 1.1))\n", "model_uu.bkg.setp(vary=True, bounds=(1e-7, 5e-6))\n", "model_dd.scale.setp(vary=True, bounds=(0.9, 1.1))\n", "model_dd.bkg.setp(vary=True, bounds=(1e-7, 5e-6))\n", "\n", "sio2_l.thick.setp(vary=True, bounds=(10, 25))\n", "sio2_l.rough.setp(vary=True, bounds=(1, 8))\n", "\n", "py_thickness.setp(vary=True, bounds=(38, 55))\n", "py_roughness.setp(vary=True, bounds=(1, 8))\n", "nuclear_py.setp(vary=True, bounds=(8.5, 9.5))\n", "mag_moment_py.setp(vary=True, bounds=(500, 800))\n", "\n", "au_l.thick.setp(vary=True, bounds=(200, 240))\n", "au_l.rough.setp(vary=True, bounds=(1, 8))\n", "au.real.setp(vary=True, bounds=(4.5, 4.66))\n", "\n", "mercapto_l.thick.setp(vary=True, bounds=(5, 15))\n", "mercapto_l.rough.setp(vary=True, bounds=(1, 8))\n", "mercapto.real.setp(vary=True, bounds=(3, 4))\n", "\n", "d2o_l.rough.setp(vary=True, bounds=(1, 8))\n", "d2o.real.setp(vary=True, bounds=(6.2, 6.36))" ] }, { "cell_type": "code", "execution_count": 14, "id": "49da0113", "metadata": {}, "outputs": [], "source": [ "fitter = CurveFitter(global_objective)" ] }, { "cell_type": "code", "execution_count": 15, "id": "b7676bec", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "77it [00:51, 1.51it/s]\n" ] } ], "source": [ "fitter.fit('differential_evolution', seed=1);" ] }, { "cell_type": "code", "execution_count": 16, "id": "22e8f804", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "plt.scatter(data_dd.x, data_dd.y, label=\"dd\", s=4)\n", "plt.plot(data_dd.x, objective_dd.generative())\n", "\n", "plt.scatter(data_uu.x, data_uu.y, label=\"uu\", s=4)\n", "plt.plot(data_uu.x, objective_uu.generative())\n", "\n", "plt.ylabel(\"R\")\n", "plt.xlabel(\"Q / $\\AA^{-1}$\")\n", "plt.yscale('log')\n", "plt.legend();" ] }, { "cell_type": "code", "execution_count": 17, "id": "2858d05d", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(*s_dd.sld_profile(), label='dd')\n", "plt.plot(*s_uu.sld_profile(), label=\"uu\")\n", "plt.ylabel(\"SLD\")\n", "plt.xlabel(\"z / $\\AA$\")\n", "plt.legend();" ] }, { "cell_type": "markdown", "id": "b4730494", "metadata": {}, "source": [ "By printing out the objectives we can see what the parameters are. Here we see that the Permalloy magnetic moment is 615 emu/cc, with a nuclear SLD of $9.15\\times10^{-6}Å^{-2}$" ] }, { "cell_type": "code", "execution_count": 18, "id": "c206bbbb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "________________________________________________________________________________\n", "Objective - 140698445453824\n", "Dataset = c_PLP0007882\n", "datapoints = 94\n", "chi2 = 301.3613165434196\n", "Weighted = True\n", "Transform = None\n", "________________________________________________________________________________\n", "Parameters: None \n", "\n", "\n", "\n", "________________________________________________________________________________\n", "Parameters: '' \n", "________________________________________________________________________________\n", "Parameters: 'instrument parameters'\n", "\n", "\n", "\n", "\n", "________________________________________________________________________________\n", "Parameters: 'Structure - ' \n", "________________________________________________________________________________\n", "Parameters: 'Si' \n", "\n", "\n", "\n", "\n", "\n", "________________________________________________________________________________\n", "Parameters: 'SiO2' \n", "\n", "\n", "\n", "\n", "\n", "________________________________________________________________________________\n", "Parameters: 'Py dd slab' \n", "\n", ">\n", "\n", "\n", "\n", "________________________________________________________________________________\n", "Parameters: 'Au' \n", "\n", "\n", "\n", "\n", "\n", "________________________________________________________________________________\n", "Parameters: '2-mercaptoethanol'\n", "\n", "\n", "\n", "\n", "\n", "________________________________________________________________________________\n", "Parameters: 'd2o' \n", "\n", "\n", "\n", "\n", "\n" ] } ], "source": [ "print(objective_dd)" ] }, { "cell_type": "code", "execution_count": null, "id": "67844b6d", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }