{ "cells": [ { "cell_type": "markdown", "id": "638a9aba-6a71-4fe8-b5e9-2817e13c308d", "metadata": {}, "source": [ "# Experiment" ] }, { "cell_type": "markdown", "id": "45e7026e-b298-465f-827b-51b7ddc49183", "metadata": {}, "source": [ "## from library" ] }, { "cell_type": "code", "execution_count": 1, "id": "7dd6c326", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.9999999999999998\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import nexus as nx\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# Lorentzian lineshpae, e.g. a Moessbauer instrument\n", "# loaded from library\n", "# linewidth here is one Gamma\n", "# this definition is enough to be used with the FitMeasurment classes\n", "moessbauer_instrument = nx.lib.instrument.Lorentz(\n", " fwhm = 1.0, # can also be a Var object\n", " relative_truncation_threshold = 0.0, # default is 1e-3, with 0 no truncation is used\n", " norm_factor = 1.0) # default is 1.0\n", "\n", "# code to get the actual kernel shape\n", "# grid for the calculation\n", "detuning = np.linspace(-15, 15, 1001) # detuing in Gamma\n", "\n", "# the InstrumentFunction() calls the actual kernel implementation on the provided grid\n", "kernel = moessbauer_instrument.InstrumentFunction(detuning)\n", "\n", "# the kernel sum is normalized to the norm_factor\n", "# with 1.0 it keeps the correct intensity of the theoretical curve.\n", "print(np.sum(kernel))\n", "\n", "#plotting the kernel\n", "plt.title(moessbauer_instrument.id)\n", "plt.plot(detuning, kernel)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "ebb4ebf3-a3e9-46f1-b8f8-2daeca62883d", "metadata": {}, "source": [ "## user-defined instrument" ] }, { "cell_type": "code", "execution_count": 2, "id": "637c0132-da78-4529-bde8-39d7e915a489", "metadata": {}, "outputs": [], "source": [ "# definition of the witch of Agnesi function with one fit parameter center_shift and one fixed parameter a\n", "class InstrumentDefinedInPython(nx.Instrument):\n", " def __init__(self, id, center_shift, a):\n", " super().__init__(id)\n", " \n", " # register fit variables\n", " self.fit_variables = [center_shift]\n", " \n", " # make parameters available in functions calls\n", " self.center_shift = center_shift\n", " self.a = a\n", " \n", " # implementation of the actual instrumental function\n", " # Witch of Agnesi function here\n", " def InstrumentFunction(self, grid):\n", " # IMPORTANT - Do not remove this steps to get proper center to avoid shifts during convolution\n", " grid = np.array(grid)\n", " center = grid[grid.size // 2]\n", "\n", " # implementation of Witch of Agnesi function\n", " # the center value is important to garantee the correct center point during convolution\n", " # the center_shift.value is the additional user provided shift from the fit varibale\n", " kernel = 8 * self.a**3/(np.square(grid - center - self.center_shift.value) + 4 * self.a**2)\n", "\n", " # OPTIONAL - Truncation for faster convolution.\n", " # DO NOT DO THIS for asymmetric or shifted functions due to possible shifts during convolution.\n", " # The relative truncation value is important for the kernel type.\n", " # For Lorentzian it is around 30 gamma ~ 1.1e-3\n", " # as the curve is possibly shifted by center_shift.value no truncation \n", " # kernel = self.TruncateKernel(kernel, relative_truncation_threshold = 1e-3)\n", "\n", " # IMPORTANT - normalize kernel\n", " # keeps the correct intensity of the theoretical curve\n", " kernel = self.NormalizeKernel(kernel, 1.0)\n", "\n", " return kernel" ] }, { "cell_type": "code", "execution_count": 3, "id": "8ab70048-5dfa-47a6-8415-2074e4048bc4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.9999999999999999\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# one fixed and one fit parameter for our user-defined function\n", "shift = nx.Var(value=1, min=0, max=10, fit=True, id=\"my fit parameter\")\n", "a = 0.3\n", "\n", "# intilazation of witch of Agnesi function\n", "woa = InstrumentDefinedInPython(\"Witch of Agnesi\", shift, a)\n", "\n", "kernel = woa.InstrumentFunction(detuning)\n", "\n", "# the kernel is nomralized in sum to norm_factor\n", "print(np.sum(kernel))\n", "\n", "#plotting the kernel\n", "plt.title(woa.id)\n", "plt.plot(detuning, kernel)\n", "plt.show()" ] } ], "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.11.9" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }