mirror of
https://github.com/fjosw/pyerrors.git
synced 2025-03-16 15:20:24 +01:00
336 lines
46 KiB
Text
336 lines
46 KiB
Text
|
{
|
||
|
"cells": [
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 1,
|
||
|
"id": "adc5eb9b",
|
||
|
"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": "a921a326",
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"plt.style.use('./base_style.mplstyle')\n",
|
||
|
"plt.rc('text', usetex=True)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"id": "dd0fac2c",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"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": 3,
|
||
|
"id": "c49f7c4a",
|
||
|
"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"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"matrix_V1V1 = pe.input.json.load_json(\"./data/matrix_correlator_V1V1\")"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"id": "a56dca5f",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"We can print the content at timeslice 0. As we can see, it is a matrix of Obs. "
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 4,
|
||
|
"id": "dd28fe5b",
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"[[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": [
|
||
|
"print(matrix_V1V1.content[0])"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"id": "b965e080",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"Let us try to get the effective mass. "
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 5,
|
||
|
"id": "bd58d1f5",
|
||
|
"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": "044503dc",
|
||
|
"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": 6,
|
||
|
"id": "90e54c2f",
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"single_smearing = matrix_V1V1.smearing(0,0)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"id": "5c25a23c",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"**Corr.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": 7,
|
||
|
"id": "1d0e8a06",
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"[ -0.71920537 162.3903938 -492.21321233 714.06804297]\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"vec = matrix_V1V1.GEVP(t0=3,ts=6,state=0)\n",
|
||
|
"assert len(vec) == matrix_V1V1.N\n",
|
||
|
"print(vec)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"id": "0d7aeb89",
|
||
|
"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": 8,
|
||
|
"id": "fb0b7b57",
|
||
|
"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": "f26cdaf2",
|
||
|
"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 **Corr.show** method 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": "06c366ed",
|
||
|
"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": 9,
|
||
|
"id": "def98bc0",
|
||
|
"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.692947327942094\n",
|
||
|
"--- The mass was calculated to be 3079.8(7.9) 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",
|
||
|
"m_eff_Jpsi = corr_ground.m_eff(variant=\"cosh\")\n",
|
||
|
"\n",
|
||
|
"# We can now pick a plateau range and get a single value for the mass. \n",
|
||
|
"\n",
|
||
|
"m_Jpsi = m_eff_Jpsi.plateau([5, 24])\n",
|
||
|
"\n",
|
||
|
"# We can now visually compare our plateau value to the data\n",
|
||
|
"\n",
|
||
|
"m_eff_Jpsi.show([10, 25], plateau=m_Jpsi)\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 ---\")"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": null,
|
||
|
"id": "c55c6066",
|
||
|
"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
|
||
|
}
|