pyerrors/examples/02_correlators.ipynb

1057 lines
168 KiB
Text
Raw Normal View History

2021-10-11 18:31:02 +01:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "7c1065dd",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import pyerrors as pe"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "20f67709",
"metadata": {},
"outputs": [],
"source": [
"plt.style.use('./base_style.mplstyle')\n",
"plt.rc('text', usetex=True)"
]
},
{
"cell_type": "markdown",
"id": "e5764fd0",
"metadata": {},
"source": [
2022-01-06 17:38:12 +01:00
"We can load data from a preprocessed file which contains a list of `pyerror` `Obs`:"
2021-10-11 18:31:02 +01:00
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "fbfa65f5",
2021-10-11 18:31:02 +01:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data has been written using pyerrors 2.0.0.\n",
"Format version 0.1\n",
"Written by fjosw on 2022-01-06 11:11:19 +0100 on host XPS139305, Linux-5.11.0-44-generic-x86_64-with-glibc2.29\n",
"\n",
"Description: Test data for the correlator example\n"
]
}
],
2021-10-11 18:31:02 +01:00
"source": [
"correlator_data = pe.input.json.load_json(\"./data/correlator_test\")"
2021-10-11 18:31:02 +01:00
]
},
{
"cell_type": "markdown",
"id": "ae93c7c2",
"metadata": {},
"source": [
"With this list a `Corr` object can be initialised"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "33a8fdec",
"metadata": {},
"outputs": [],
"source": [
2022-01-06 17:38:12 +01:00
"my_correlator = pe.Corr(correlator_data)"
2021-10-11 18:31:02 +01:00
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "5f954607",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Corr T=96 N=1\n",
2021-10-11 18:31:02 +01:00
"x0/a\tCorr(x0/a)\n",
"------------------\n",
"8\t 548(13)\n",
"9\t 433(11)\n",
"10\t 343.1(8.6)\n",
"11\t 273.2(6.6)\n",
"12\t 217.5(5.6)\n",
"13\t 172.9(4.9)\n",
"14\t 137.6(4.6)\n",
2021-10-11 18:31:02 +01:00
"\n"
]
}
],
"source": [
"my_correlator.print([8, 14])"
]
},
{
"cell_type": "markdown",
"id": "b00d670b",
"metadata": {},
"source": [
"The `show` method can display the correlator"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "b71529d0",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
2021-10-11 18:31:02 +01:00
"text/plain": [
"<Figure size 640x395.55 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"my_correlator.show()"
]
},
{
"cell_type": "markdown",
"id": "c659557e",
"metadata": {},
"source": [
"## Manipulating correlators"
]
},
{
"cell_type": "markdown",
"id": "416cf39a",
"metadata": {},
"source": [
"`Corr` objects can be shifted"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "e8d65dd5",
"metadata": {},
"outputs": [],
"source": [
"shifted_correlator = my_correlator.roll(20)\n",
"shifted_correlator.tag = r'Correlator shifted by $x_0/a=20$'"
]
},
{
"cell_type": "markdown",
"id": "634dd613",
"metadata": {},
"source": [
2022-01-06 17:38:12 +01:00
"or symmetrised"
2021-10-11 18:31:02 +01:00
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "127a661d",
"metadata": {},
"outputs": [],
"source": [
"symmetrised_correlator = my_correlator.symmetric()\n",
"symmetrised_correlator.tag = 'Symmetrised correlator'"
]
},
{
"cell_type": "markdown",
"id": "3d733872",
"metadata": {},
"source": [
2022-01-06 17:38:12 +01:00
"We can compare different `Corr` objects by passing `comp` to the `show` method"
2021-10-11 18:31:02 +01:00
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "8e264aed",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
2021-10-11 18:31:02 +01:00
"text/plain": [
"<Figure size 640x395.55 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"shifted_correlator.show(comp=symmetrised_correlator, logscale=True)"
]
},
{
"cell_type": "markdown",
"id": "232e88af",
"metadata": {},
"source": [
"## Effective mass"
]
},
{
"cell_type": "markdown",
"id": "83dc751c",
"metadata": {},
"source": [
"The effective mass of the correlator can be obtained by calling the `m_eff` method"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "c686f7e0",
"metadata": {},
"outputs": [],
"source": [
"m_eff = symmetrised_correlator.m_eff()\n",
"m_eff.tag = 'Effective mass'"
]
},
{
"cell_type": "markdown",
"id": "4a9d13b2",
"metadata": {},
"source": [
"We can also use the priodicity of the lattice in order to obtain the cosh effective mass"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "5acde8cf",
"metadata": {},
"outputs": [],
"source": [
"periodic_m_eff = symmetrised_correlator.m_eff('periodic')\n",
"periodic_m_eff.tag = 'Cosh effective mass'"
]
},
{
"cell_type": "markdown",
"id": "c658b000",
"metadata": {},
"source": [
"We can compare the two and see how the standard effective mass deviates form the plateau at the center of the lattice"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "1d6ea22a",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
2021-10-11 18:31:02 +01:00
"text/plain": [
"<Figure size 640x395.55 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"periodic_m_eff.show([4,47], comp=m_eff, ylabel=r'$am_\\mathrm{eff}$')"
]
},
{
"cell_type": "markdown",
"id": "e3762e68",
"metadata": {},
"source": [
"Arithmetic operations and mathematical functions are also overloaded for the `Corr` class. We can compute the difference between the two variants of the effective mass as follows."
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "e56d164c",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
2021-10-11 18:31:02 +01:00
"text/plain": [
"<Figure size 640x395.55 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"difference_m_eff = np.abs(periodic_m_eff - m_eff)\n",
"difference_m_eff.show([0, 47], logscale=True)"
]
},
{
"cell_type": "markdown",
"id": "472ab97b",
"metadata": {},
"source": [
"## Derivatives"
]
},
{
"cell_type": "markdown",
"id": "d99414fe",
"metadata": {},
"source": [
"We can obtain derivatives of correlators in the following way"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "03007f8a",
"metadata": {},
"outputs": [],
"source": [
"first_derivative = symmetrised_correlator.deriv()\n",
"first_derivative.tag = 'First derivative'"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "c0311739",
"metadata": {},
"outputs": [],
"source": [
"second_derivative = symmetrised_correlator.second_deriv()\n",
"second_derivative.tag = 'Second derivative'"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "165550d9",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
2021-10-11 18:31:02 +01:00
"text/plain": [
"<Figure size 640x395.55 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"symmetrised_correlator.show([5, 20], comp=[first_derivative, second_derivative], y_range=[-500, 1300])"
]
},
{
"cell_type": "markdown",
"id": "18c75d20",
"metadata": {},
"source": [
"## Missing Values \n",
"\n",
"Apart from the build-in functions, there is another reason, why one should use a **Corr** instead of a list of **Obs**. \n",
"Missing values are handled for you. \n",
"We will create a second correlator with missing values. "
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "1db86a4c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Corr T=96 N=1\n",
"x0/a\tCorr(x0/a)\n",
"------------------\n",
"0\t 62865(41)\n",
"1\t 23756(32)\n",
"2\t 6434(25)\n",
"3\t 2886(20)\n",
"4\t 1735(21)\n",
"5\t 1213(21)\n",
"6\n",
"7\t 699(17)\n",
"8\n",
"9\n",
"10\t 343.1(8.6)\n",
"11\t 273.2(6.6)\n",
"12\n",
"13\t 172.9(4.9)\n",
"14\n",
"15\n",
"16\t 88.0(3.9)\n",
"17\t 70.6(3.2)\n",
"18\t 56.6(2.6)\n",
"19\t 45.3(2.1)\n",
"20\n",
"21\t 29.2(1.4)\n",
"22\t 23.4(1.2)\n",
"23\t 18.90(99)\n",
"24\t 15.26(74)\n",
"25\t 12.26(54)\n",
"26\t 9.82(40)\n",
"27\t 7.84(32)\n",
"28\t 6.21(24)\n",
"29\t 4.93(18)\n",
"30\t 3.93(13)\n",
"31\t 3.142(92)\n",
"32\t 2.519(66)\n",
"33\t 2.013(49)\n",
"34\t 1.609(41)\n",
"35\t 1.287(35)\n",
"36\t 1.024(28)\n",
"37\t 0.820(23)\n",
"38\t 0.661(20)\n",
"39\t 0.532(16)\n",
"40\t 0.429(14)\n",
"41\t 0.348(11)\n",
"42\t 0.2858(85)\n",
"43\t 0.2357(80)\n",
"44\t 0.1985(87)\n",
"45\t 0.1722(90)\n",
"46\t 0.1558(90)\n",
"47\t 0.1473(94)\n",
"48\t 0.1453(98)\n",
"49\t 0.150(10)\n",
"50\t 0.161(10)\n",
"51\t 0.179(11)\n",
"52\t 0.205(13)\n",
"53\t 0.240(17)\n",
"54\t 0.288(21)\n",
"55\t 0.349(27)\n",
"56\t 0.427(35)\n",
"57\t 0.524(42)\n",
"58\t 0.648(50)\n",
"59\t 0.804(63)\n",
"60\t 0.997(77)\n",
"61\t 1.239(91)\n",
"62\t 1.55(11)\n",
"63\t 1.96(14)\n",
"64\t 2.46(16)\n",
"65\t 3.08(19)\n",
"66\t 3.83(22)\n",
"67\t 4.76(26)\n",
"68\t 5.96(31)\n",
"69\t 7.47(37)\n",
"70\t 9.36(49)\n",
"71\t 11.75(62)\n",
"72\t 14.75(75)\n",
"73\t 18.53(87)\n",
"74\t 23.2(1.0)\n",
"75\t 29.1(1.2)\n",
"76\t 36.4(1.5)\n",
"77\t 45.5(1.9)\n",
"78\t 57.0(2.5)\n",
"79\t 70.9(3.3)\n",
"80\t 88.4(4.4)\n",
"81\t 110.7(5.9)\n",
"82\t 138.2(7.3)\n",
"83\t 171.4(8.4)\n",
"84\t 213(10)\n",
"85\t 266(13)\n",
"86\t 336(15)\n",
"87\t 425(17)\n",
"88\t 540(19)\n",
"89\t 688(20)\n",
"90\t 892(22)\n",
"91\t 1196(28)\n",
"92\t 1716(33)\n",
"93\t 2859(32)\n",
"94\t 6411(36)\n",
"95\t 23726(44)"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"new_content=[(my_correlator.content[i] if i not in [6,8,9,12,14,15,20] else None ) for i in range(my_correlator.T) ] # We reuse the old example and replace a few values with None\n",
"correlator_incomplete=pe.Corr(new_content)\n",
"\n",
"correlator_incomplete\n"
]
},
{
"cell_type": "markdown",
"id": "602d81fa",
"metadata": {},
"source": [
"We see that this is still a valid correlator. It is just missing some values. \n",
"When we perform operations, which generate new correlators, the missing values are handled automatically.\n",
"\n",
"Here is an example:"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "034d1fdf",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Corr T=96 N=1\n",
"x0/a\tCorr(x0/a)\n",
"------------------\n",
"0\t-0(115)\n",
"1\t-1(58)\n",
"2\t 1.0(2.7)\n",
"3\t 1(33)\n",
"4\t-0(57)\n",
"5\t 0(56)\n",
"6\n",
"7\t-1(27)\n",
"8\n",
"9\n",
"10\t-1(11)\n",
"11\t 0(19)\n",
"12\n",
"13\t-0(13)\n",
"14\n",
"15\n",
"16\t 0(12)\n",
"17\t-0.9(3.7)\n",
"18\t 0.1(7.8)\n",
"19\t-0.8(4.1)\n",
"20\n",
"21\t-0.4(3.9)\n",
"22\t 0.9(1.8)\n",
"23\t 0.2(2.9)\n",
"24\t 0.97(50)\n",
"25\t-0.80(97)\n",
"26\t-0.93(45)\n",
"27\t-0.999(52)\n",
"28\t-0.22(71)\n",
"29\t 0.80(32)\n",
"30\t-0.70(27)\n",
"31\t-0.00(28)\n",
"32\t 0.957(58)\n",
"33\t-0.24(14)\n",
"34\t-0.993(14)\n",
"35\t-0.658(79)\n",
"36\t 0.070(84)\n",
"37\t 0.630(54)\n",
"38\t 0.917(23)\n",
"39\t 0.9997(12)\n",
"40\t 0.960(11)\n",
"41\t 0.865(17)\n",
"42\t 0.756(17)\n",
"43\t 0.650(18)\n",
"44\t 0.561(22)\n",
"45\t 0.494(23)\n",
"46\t 0.451(24)\n",
"47\t 0.428(25)\n",
"48\t 0.422(27)\n",
"49\t 0.435(27)\n",
"50\t 0.464(27)\n",
"51\t 0.511(28)\n",
"52\t 0.577(32)\n",
"53\t 0.660(38)\n",
"54\t 0.760(41)\n",
"55\t 0.867(41)\n",
"56\t 0.958(30)\n",
"57\t 1.00000(28)\n",
"58\t 0.931(55)\n",
"59\t 0.67(14)\n",
"60\t 0.15(23)\n",
"61\t-0.54(23)\n",
"62\t-0.999(17)\n",
"63\t-0.40(37)\n",
"64\t 0.88(23)\n",
"65\t 0.19(57)\n",
"66\t-0.89(31)\n",
"67\t 0.99(10)\n",
"68\t-0.83(52)\n",
"69\t-0.4(1.0)\n",
"70\t 0.2(1.4)\n",
"71\t-0.6(1.4)\n",
"72\t 0.3(2.2)\n",
"73\t-0.8(1.5)\n",
"74\t 0.4(2.8)\n",
"75\t-0.7(2.6)\n",
"76\t 0.7(3.1)\n",
"77\t-1.00(55)\n",
"78\t 0.99(84)\n",
"79\t-0.7(6.9)\n",
"80\t 1.0(4.0)\n",
"81\t-0.8(9.3)\n",
"82\t 0(22)\n",
"83\t-1(13)\n",
"84\t-0(31)\n",
"85\t 1(24)\n",
"86\t 1.0(5.0)\n",
"87\t-1(43)\n",
"88\t-1(14)\n",
"89\t-1(22)\n",
"90\t-1(35)\n",
"91\t-1(43)\n",
"92\t 1(43)\n",
"93\t 1(18)\n",
"94\t-0(105)\n",
"95\t 1(17)"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"some_new_corr=np.sin(my_correlator+2*correlator_incomplete)\n",
"\n",
"some_new_corr"
]
},
{
"cell_type": "markdown",
"id": "6479a999",
"metadata": {},
"source": [
"Some functions might also return correlators with missing values. We already looked at the forward derivative. \n",
"The forward derivative is not defined for the last value. \n",
"\n",
"The important thing is that, whatever you do, correlators keep their length **T**. So there will never be confusion about how you count timeslices. \n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "f3c4609c",
"metadata": {},
"outputs": [],
"source": [
"assert first_derivative.T==my_correlator.T==len(first_derivative.content)==len(my_correlator.content)\n",
"assert first_derivative.content[-1]==None\n"
]
},
{
"cell_type": "markdown",
"id": "fcf947ea",
"metadata": {},
"source": [
"You can also take a plateau or perform a fit, even though some values might be missing. "
]
},
2022-01-06 17:38:12 +01:00
{
"cell_type": "markdown",
"id": "7fcbcac4",
2022-01-06 17:38:12 +01:00
"metadata": {},
"source": [
"There is a range of addtional methods of the `Corr` class which can be found in the documentation."
]
},
{
"cell_type": "markdown",
"id": "2fbe1263",
"metadata": {},
"source": [
"## Matrix Correlators\n",
"\n",
"A correlator can not only contain a list of Obs, but also a list of matrices of obs. \n",
"This is useful, if there are multiple sources and sinks used. In our example, the sources have a different Gaussian smearing applied. \n",
"\n",
"We will load such a correlator."
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "b529a36c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data has been written using pyerrors 2.0.0+dev.\n",
"Format version 0.1\n",
"Written by jan on 2022-01-27 10:49:51 +0100 on host endwings, Linux-5.13.0-27-generic-x86_64-with-glibc2.10\n",
"[[Obs[0.95214(67)] Obs[0.01240(11)] Obs[0.005965(72)] Obs[0.002719(40)]]\n",
" [Obs[0.01241(12)] Obs[0.004389(60)] Obs[0.002672(41)] Obs[0.001432(25)]]\n",
" [Obs[0.005975(74)] Obs[0.002672(41)] Obs[0.001741(29)] Obs[0.000990(18)]]\n",
" [Obs[0.002729(41)] Obs[0.001433(25)] Obs[0.000990(18)] Obs[0.000596(12)]]]\n"
]
}
],
"source": [
"matrix_V1V1= pe.input.json.load_json(\"./data/matrix_correlator_V1V1\")\n",
"\n",
"print(matrix_V1V1.content[0]) "
]
},
{
"cell_type": "markdown",
"id": "617f478b",
"metadata": {},
"source": [
"We printed out the content at timeslice 0. As we can see, it is a matrix of Obs. \n",
"\n",
"Let us try to get the effective mass. \n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "1e66c026",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Something is wrong\n"
]
}
],
"source": [
"try:\n",
" matrix_V1V1.m_eff() #This does not work! \n",
"except:\n",
" print(\"Something is wrong\")"
]
},
{
"cell_type": "markdown",
"id": "11e4e0ee",
"metadata": {},
"source": [
"Many methods we could use for regular correlators do not work with matrix-correlators. \n",
"In order to get the effective mass, we need to convert to a regular correlator first. \n",
"\n",
"One way to do it, is to pick a smearing out of the matrix:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "e50b3569",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Corr T=64 N=1\n",
"x0/a\tCorr(x0/a)\n",
"------------------\n",
"0\t 0.95214(67)\n",
"1\t 0.05672(10)\n",
"2\t 0.008450(29)\n",
"3\t 0.0016713(95)\n",
"4\t 0.0004133(34)\n",
"5\t 0.0001174(12)\n",
"6\t 0.00003618(40)\n",
"7\t 0.00001171(15)\n",
"8\t 0.000003917(58)\n",
"9\t 0.000001333(22)\n",
"10\t 0.0000004611(96)\n",
"11\t 0.0000001613(34)\n",
"12\t 0.0000000571(13)\n",
"13\t 0.00000002021(49)\n",
"14\t 0.00000000719(18)\n",
"15\t 0.000000002575(69)\n",
"16\t 0.000000000927(27)\n",
"17\t 0.000000000334(11)\n",
"18\t 0.0000000001197(44)\n",
"19\t 0.0000000000430(17)\n",
"20\t 0.00000000001544(66)\n",
"21\t 0.00000000000553(25)\n",
"22\t 0.000000000001987(93)\n",
"23\t 0.000000000000715(34)\n",
"24\t 0.000000000000258(12)\n",
"25\t 0.0000000000000933(47)\n",
"26\t 0.0000000000000338(18)\n",
"27\t 0.00000000000001230(71)\n",
"28\t 0.00000000000000445(27)\n",
"29\t 0.00000000000000163(10)\n",
"30\t 0.000000000000000606(38)\n",
"31\t 0.000000000000000244(15)\n",
"32\t 0.0000000000000001549(82)\n",
"33\t 0.000000000000000236(17)\n",
"34\t 0.000000000000000575(46)\n",
"35\t 0.00000000000000155(12)\n",
"36\t 0.00000000000000424(32)\n",
"37\t 0.0000000000000117(11)\n",
"38\t 0.0000000000000324(30)\n",
"39\t 0.0000000000000903(96)\n",
"40\t 0.000000000000252(26)\n",
"41\t 0.000000000000701(71)\n",
"42\t 0.00000000000195(18)\n",
"43\t 0.00000000000545(44)\n",
"44\t 0.00000000001520(62)\n",
"45\t 0.0000000000424(16)\n",
"46\t 0.0000000001186(42)\n",
"47\t 0.000000000330(11)\n",
"48\t 0.000000000920(52)\n",
"49\t 0.00000000257(13)\n",
"50\t 0.00000000721(34)\n",
"51\t 0.00000002017(87)\n",
"52\t 0.0000000567(22)\n",
"53\t 0.0000001603(58)\n",
"54\t 0.000000460(16)\n",
"55\t 0.000001336(41)\n",
"56\t 0.00000393(11)\n",
"57\t 0.00001174(27)\n",
"58\t 0.00003632(71)\n",
"59\t 0.0001175(19)\n",
"60\t 0.0004128(47)\n",
"61\t 0.0016748(97)\n",
"62\t 0.008456(38)\n",
"63\t 0.05671(13)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"single_smearing=matrix_V1V1.smearing(0,0)\n",
"single_smearing"
]
},
{
"cell_type": "markdown",
"id": "48b62bb4",
"metadata": {},
"source": [
"**.smearing(i,j)** picks the element [i,j] from every matrix and returns a correlator containing one Obs per timeslice. \n",
"But there is a more usefull way to retrieve a single value per timeslice. \n",
"We might want a linear combination of different sources and sinks. \n",
"We can formalize this as\n",
"\n",
"$$C_{\\textrm{projected}}(t)=v_1^T \\underline{C}(t) v_2$$\n",
"\n",
"If we choose the vectors to be $v_1=v_2=(0,1,0,0)$, we should get the same correlator as in the cell above. \n",
"\n",
"Thinking about it this way is usefull in the Context of the generalized eigenvalue problem (GEVP), used to find the source-sink combination, which best describes a certain energy eigenstate.\n",
"A good introduction is found in https://arxiv.org/abs/0902.1265."
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "bd96f8bd",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ -0.71920537, 162.3903938 , -492.21321233, 714.06804297])"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vec=matrix_V1V1.GEVP(t0=3,ts=6,state=0)\n",
"assert len(vec)==matrix_V1V1.N\n",
"vec"
]
},
{
"cell_type": "markdown",
"id": "c80b1f41",
"metadata": {},
"source": [
"As we see, the eigenvector is of length **matrix_V1V1.N** and contains regular floats. \n",
"We can use it to project the correlator. "
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "a8d1a547",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x395.55 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"matrix_V1V1.projected(vec).m_eff().show(comp=single_smearing.m_eff())"
]
},
{
"cell_type": "markdown",
"id": "5a88dd33",
"metadata": {},
"source": [
"There is a lot going on in this line of code. \n",
"We start with our matrix correlator and we project it, using the vector we got from the GEVP routine. \n",
"\n",
"This gives us a new correlator with one Obs per timeslice. We then calculate its effective mass and plot it. \n",
"We tell the **.plot()** function to show another correlator as a comparison. \n",
"\n",
"We can see, that the projected correlator (*blue*) converges to a mass plateau much quicker than the single smearing."
]
},
{
"cell_type": "markdown",
"id": "79826bbd",
"metadata": {},
"source": [
"## Example Analysis\n",
"\n",
"We can use what we learned so far to perform an actually usefull analysis. \n",
"The correlator **matrix_V1V1** we looked at corresponds to vector-charmonium. \n",
"\n",
"We might be interested in the mass of the $J/\\Psi$ state."
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "b68f757f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data has been written using pyerrors 2.0.0+dev.\n",
"Format version 0.1\n",
"Written by jan on 2022-01-27 10:49:51 +0100 on host endwings, Linux-5.13.0-27-generic-x86_64-with-glibc2.10\n",
"Data has been written using pyerrors 2.0.0+dev.\n",
"Format version 0.1\n",
"Written by jan on 2022-01-27 10:49:51 +0100 on host endwings, Linux-5.13.0-27-generic-x86_64-with-glibc2.10\n",
"Fit with 1 parameter\n",
"Method: Levenberg-Marquardt\n",
"`ftol` termination condition is satisfied.\n",
"chisquare/d.o.f.: 0.37168849195965686\n",
"--- The mass was calculated to be 3069.4(9.4) MeV ---\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x395.55 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# We do not just have V1V1, but also the two other spacial directions. We can average over them for better statistics. \n",
"matrix_V2V2= pe.input.json.load_json(\"./data/matrix_correlator_V2V2\")\n",
"matrix_V3V3= pe.input.json.load_json(\"./data/matrix_correlator_V3V3\")\n",
"matrix_VnVn=(matrix_V1V1+matrix_V2V2+matrix_V3V3)/3. \n",
"\n",
"#We then solve the GEVP to get eigenvectors corresponding to the ground state. \n",
"\n",
"vec_ground=matrix_VnVn.GEVP(t0=3,ts=6,state=0)\n",
"\n",
"#Now we project the matrix-correlators to get new correlators belonging to the ground state.\n",
"\n",
"corr_ground=matrix_VnVn.projected(vec_ground)\n",
"\n",
"# We get the effective mass using the periodic cosh method. \n",
"\n",
"m_eff_Jpsi=corr_ground.m_eff(variant=\"cosh\")\n",
"\n",
"m_eff_Jpsi.show([5,25])\n",
"\n",
"#From the plot we can pick a plateau range and get a single value for the mass. \n",
"\n",
"m_Jpsi=m_eff_Jpsi.plateau([8,18])\n",
"\n",
"\n",
"# Since the lattice spacing is known, we can multiply with hbar*c/a to see it in physical units \n",
"\n",
"m_Jpsi=m_Jpsi*197/0.0653\n",
"\n",
"#As a last step we call the gamma method to get the error \n",
"\n",
"m_Jpsi.gamma_method()\n",
"\n",
"print(\"--- The mass was calculated to be\" , m_Jpsi, \"MeV ---\")\n"
]
},
2021-10-11 18:31:02 +01:00
{
"cell_type": "code",
"execution_count": null,
"id": "fca69475",
2021-10-11 18:31:02 +01:00
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
2021-10-11 18:31:02 +01:00
"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.8"
2021-10-11 18:31:02 +01:00
}
},
"nbformat": 4,
"nbformat_minor": 5
}