diff --git a/.gitignore b/.gitignore index 1972b6080430acde246252603fc82cb71af44502..852060cce927f4a68878d8cfbb5f3baf2bec0cef 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ build install .vscode +.venv diff --git a/README.md b/README.md index 9f9bf92054dea4aff04736209b9f37633d6fbdc3..dd85c54337d116fffbce89df672d069dbf18d463 100644 --- a/README.md +++ b/README.md @@ -14,3 +14,16 @@ make (make install) ./main ``` + +## usage of ipynb + +recommend to use VSCode. + +```shell +cd /this/repository +python -m venv .venv +source .venv/bin/activate +pip install -r requirements.txt +``` + +if you open the notebook using VSCode and select .venv Kernel, you can run the ipynb code. diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..9360c49fd2356ad862666daf0403f23ae5dd813d --- /dev/null +++ b/requirements.txt @@ -0,0 +1,98 @@ +anyio==4.4.0 +argon2-cffi==23.1.0 +argon2-cffi-bindings==21.2.0 +arrow==1.3.0 +asttokens==2.4.1 +async-lru==2.0.4 +attrs==23.2.0 +Babel==2.15.0 +beautifulsoup4==4.12.3 +bleach==6.1.0 +certifi==2024.7.4 +cffi==1.16.0 +charset-normalizer==3.3.2 +comm==0.2.2 +debugpy==1.8.2 +decorator==5.1.1 +defusedxml==0.7.1 +executing==2.0.1 +fastjsonschema==2.20.0 +fqdn==1.5.1 +h11==0.14.0 +httpcore==1.0.5 +httpx==0.27.0 +idna==3.7 +ipykernel==6.29.5 +ipython==8.26.0 +ipywidgets==8.1.3 +isoduration==20.11.0 +jedi==0.19.1 +Jinja2==3.1.4 +json5==0.9.25 +jsonpointer==3.0.0 +jsonschema==4.23.0 +jsonschema-specifications==2023.12.1 +jupyter==1.0.0 +jupyter-console==6.6.3 +jupyter-events==0.10.0 +jupyter-lsp==2.2.5 +jupyter_client==8.6.2 +jupyter_core==5.7.2 +jupyter_server==2.14.2 +jupyter_server_terminals==0.5.3 +jupyterlab==4.2.4 +jupyterlab_pygments==0.3.0 +jupyterlab_server==2.27.3 +jupyterlab_widgets==3.0.11 +MarkupSafe==2.1.5 +matplotlib-inline==0.1.7 +mistune==3.0.2 +nbclient==0.10.0 +nbconvert==7.16.4 +nbformat==5.10.4 +nest-asyncio==1.6.0 +notebook==7.2.1 +notebook_shim==0.2.4 +numpy==2.0.1 +overrides==7.7.0 +packaging==24.1 +pandocfilters==1.5.1 +parso==0.8.4 +pexpect==4.9.0 +platformdirs==4.2.2 +prometheus_client==0.20.0 +prompt_toolkit==3.0.47 +psutil==6.0.0 +ptyprocess==0.7.0 +pure_eval==0.2.3 +pycparser==2.22 +Pygments==2.18.0 +python-dateutil==2.9.0.post0 +python-json-logger==2.0.7 +PyYAML==6.0.1 +pyzmq==26.0.3 +qtconsole==5.5.2 +QtPy==2.4.1 +referencing==0.35.1 +requests==2.32.3 +rfc3339-validator==0.1.4 +rfc3986-validator==0.1.1 +rpds-py==0.19.1 +Send2Trash==1.8.3 +setuptools==71.1.0 +six==1.16.0 +sniffio==1.3.1 +soupsieve==2.5 +stack-data==0.6.3 +terminado==0.18.1 +tinycss2==1.3.0 +tornado==6.4.1 +traitlets==5.14.3 +types-python-dateutil==2.9.0.20240316 +uri-template==1.3.0 +urllib3==2.2.2 +wcwidth==0.2.13 +webcolors==24.6.0 +webencodings==0.5.1 +websocket-client==1.8.0 +widgetsnbextension==4.0.11 diff --git a/slice.ipynb b/slice.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..9f8d13cff7d446a55c927f72d56567d53182f434 --- /dev/null +++ b/slice.ipynb @@ -0,0 +1,204 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import ROOT\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## preparing 2D histogram\n", + "assume the sigma distribition is `0.02 * x^2 + 1.0`" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxwAAAMECAIAAAC64LSpAAAABmJLR0QAAAAAAAD5Q7t/AAAgAElEQVR4nO3dX6wc53nf8Wd5RJb6E/6xIKVyytBOTEmulFitmbZwa+0ephUQow4QBaikCwNBhaItatSQelEUAbqzBYKiF7FgwBctWhUBfGG7QNiiLVxUTbm7UhIELZ3IsQWbkhNJZR3VVCX+sSVRJA+3FxNO1+87O2fO8j3z5/l9P1ej4Zyj+XFmeZ7zvPPOO1gsFgYAAICbs6ftEwAAAPCAogoAACABiioAAIAEKKoAAAASoKgCAABIgKIKAAAgAYoqAACABCiqAAAAEqCoAgAASICiCgAAIAGKKgAAgAQoqgAAABKgqAIAAEjglrZPAICc0Wg0n8/NbLFY3Mz3mc1my9/z5k4KAG4WRRWAnsmybDKZxPvH43GWZY2fDgD8qcFN/qYIADt1M52q4mtX4d80AG2hUwWgN5YrquFwWPSlZrNZ0bsaDPhdEUA7KKoA9EZRUU2n0+WHqEaj0Wg02tzczP8zyzLGAQE0j9l/APqhqJOGw2H8WPpoNJpOp/l26RNXALDb6FQBaF+WZcVUvtFoVNpnKg5Y1YViAiCAdvHwAYCmLT+oXn8q32AwyDcq/tUqjgnGBwGgAXSqALRmuaIaDoe29NTUZDLJn5QqDs4PqImKCkDz6FQBaFrwWoT4qfP8T4fD4fLrPbc1m82KZ9X5lw1A83hQHUCb4nG6opCqfh9VrKioxuNxgjMDgB2iqALQmtJ5fGuYzWbF01S2+kl2ANhVFFUAWrOq+tnR41NZlhU9KmPgD0B7KKoA9FWWZYPBYPlRdyoqAC1i9h+A1qw99rf8THqOdygAaB2dKgA9E4z3jcfjxWJBRQWgdXSqAPRJsKbyjt65AAC7ik4VgN7Ismx5TWUqKgCdQqcKQD/MZrPimXQeSAfQQXSqAPRD8f6F6XTa6okAQDmKKgD9UAz88Uw6gG5i+A9ADyw/PrX88vRVGB8E0Dw6VQAAAAlQVAHoASb6Aei+AU1yAACAm0enCgAAIAGKKgAAgAQoqgAAABKgqAIAAEiAogoAACABiioAAIAEKKoAAAASoKgCAABIgKIKAAAgAYoqAACABCiqAAAAEqCoAgAASICiCgAAIAGKKgAAgAQoqgAAABKgqAIAAEiAogoAACABiioAAIAEKKoAAAASoKgCAABIgKIKAAAgAYoqAACABCiqAAAAEqCoAgAASICiCgAAIAGKKgAAgAQoqgAAABKgqAIAAEiAogoAACCBW9o+gW3MbjCz0Q11jsyyrLGTBAAAGCwWi7bPYaXRaDSfz4Odw+Ewr5y2PXI6na6qwAAAANLq7vBfUSeNx+PpdDqdTsfjsZnN5/OgVMqyLD9yOBwWh5nZ5uZm0ycNAABUdbRTNZvN8pIo6DaV7h8MBmY2Ho+Xh/zynaVtLQAAgOQ62qkqKqGgKTUajYbDoZkV9VO8kSvaWrt4lgAAADd0uqjK66dAUGatOrKosehUAQCABnR09l+WZbPZrPQx86BIyntRPJAOAADa1dGiatWrE2azWV5FBYN9FUXVquIMAAAgoY4O/5UqnlIfDod16qTS0UMAAIDd0NFOVWz5TVQ7ekwqODifFQgAABrQzZcM7JIeFFVZlk0mk3w7eG9CHXFPS+oCAwDQFrVGRteLquJ6VL9xqvTBKd6nAAAAGtPpZ6qKimo6na79ZgTlp9TVfkWQyisV1sjrmlRY08srpbtFVfFK9MViUVEY5U+jxyXXqteHSlEb6JTKKxXWyOuaVFjTyyulo0VV/Vd35kfGI3288xMAADSpo2v/Fcv5reozLe+Pl/krXr4QP9g+GHQ08m6QCmtieaXCGnkdue/hrwZ7Xn7hca9hSzm+uDGpsNbxoqpCaQllZuPxuHhBaOmz7WoXGAA6JS6qzjz/WCtnggao/czt6PDfjoxGo+l0mm9PJpOKigoAAGCXdPSVCjstbEej0WKx4OH0gNqvCFJ5pcIaeV2TCmt6eaV0tKhaD7VUQO1zK5VXKqyR1zWpsKaXV4qH4T8AAIDWUVR5pvaKOam8UmGNvK5JhTW9vFLkRnYZzAaAZsQT/Yy5fmLUfubSqQIAAEiAosoztSazVF6psEZe16TCml5eKa5m/9VUcUM761I6i7MtqbxSYY28rkmFNb28UhSLKm5oAACQHMN/nqk1maXySoU18romFdb08krReizf9GYiAECnsPafFLWfuXSqAAAAEqCo8kytySyVVyqskdc1qbCml1cKRZVnUk1XE8srFdbI65pUWNPLK4WiCgAAIAGKKs/UmsxSeaXCGnldkwprenmlKL6nSodak1kqr1RYI28frD2tr49hb4ZaXil0qgAAABKgqPJMrckslVcqrJHXNamwppdXCkWVZ2pNZqm8UmGNvK5JhTW9vFIoqgAAABKgqPJMrckslVcqrJHXNamwppdXitaiPLbd3az2twEAuyeeD1iKtf8cU1v7T/GVClIXGAAANIPhP8/UmsxSeaXCGnldkwprenmlUFR5ptaTk8orFdbI65pUWNPLK4WiCgAAIAGKKs/UmsxSeaXCGnldkwprenmlUFR5ptZklsorFdbI65pUWNPLK4WiCgAAIAGKKs/UmsxSeaXCGnldkwprenmlUFR5ptZklsorFdbI65pUWNPLK4WiCgAAIAGKKs/UmsxSeaXCGnldkwprenmlKC5To0OtySyVVyqskbcPaq70F+tj2JuhllcKnSoAAIAEKKo8U2syS+WVCmvkdU0qrOnllUJR5Zlak1kqr1RYI69rUmFNL68UxWeqKn5L4F4HAADrUSyqdCqnwWCgE9bE8kqFNfK6JhXW9PJKYfjPM7XPrVReqbBGXtekwppeXimKnSoAwE2KX6Bw5vnHtj0G8I1OlWdqc0yk8kqFNfK6JhXW9PJKoajyTK3JLJVXKqyR1zWpsKaXVwpFFQAAQAIUVZ6pNZml8kqFNfK6JhXW9PJKoajyTK3JLJVXKqyR1zWpsKaXV4rc2zJ4QQgA7EjaSXwX7vpIsOf7v/nxhN8fnaL2M5dOlWdqTWapvFJhjbyuSYU1vbxSKKo8k/r9wMTySoU18romFdb08kqhqAIAAEiAosoztSazVF6psEZe16TCml5eKRRVnqk1maXySoU18romFdb08kpRXPuv4rcE7nUA2FWH3vxutI/Zf3BCsajSqZzU5rJK5ZUKa+R1TSqs6eWVwvCfZ2qfW6m8UmGNvK5JhTW9vFIoqgAAABKgqPJMbY6JVF6psEZe16TCml5eKRRVnqk1maXySoU18romFdb08krpzYPqo9FoNBplWVb6p7PZrOILd+eMAKD30q7rV0e89h/gRj+KqtlsNp/PV/1plmWTyWTVnyr/TqA2x0Qqr1RYI69rUmFNL6+Ufgz/bW5uVvxpRZtqOBymP5v+UPvcSuWVCmvkdU0qrOnlldLpomo2m2VZVvOZvul0uohU1FsAAAAJdXf4r3pQb1nFyKA4tSazVF6psEZe16TCml5eKd0tqpYfMK9+pio+Hjm1z61UXqmwRl7XpMKaXl4pnS6qijopy7JVRdXyAF+WZfl/VswTBAAUzjz/WLAnng8YH1N6WIyJflDT3aJqp5YfvZrP55PJZDwei5dWak1mqbxSYY28rkmFNb28Ujr9oHody52q8Xg8nU7H43E+6W8ymYgXVWqfW6m8UmGNvK5JhTW9vFJ6X1TlhsPhYrHIsiwf+JvNZuPx2MxKH3UfrMuW+mFssMEGG443Xn7h8WCjzjHxxrmTx7fd6EhkNnZjQ00/mpD5TMDhcLijVyTkFzUYBBwo9V2lwppYXqmwRt4GNf9M1bmTx7m4XkmFNTedqlL5IKDyq6qkbmUTyysV1sjrmlRY08srxc+D6rHRaMQrrACgQp2G09rrAx5687vxTqYEwrHed6qyLKteZVn5/VVqo9pSeaXCGnldkwprenml9L5TVTyKHpdWeZtKuahSazJL5ZUKa+R1TSqs6eWV0vtOVTHLL3h2qqillIsqAADQmN4XVUWDanNzc3TDYDDI21TivxCoNZml8kqFNfK6JhXW9PJK6X1RZWaLxSKf6De/wW68uartU2uZ2t+AVF6psEZe16TCml5eKa5eIFGMAFYM+am9MwMAKqw9s29t8ey/7//mxxs+BzRG7Wdu7x9UX8bjUwG1u1kqr1RYI2+D6iyxXKrmuxKuHD4Y7OHiwg0Pw39YRe1zK5VXKqyR1zWpsKaXVwpFFQAAQAIUVZ6pzTGRyisV1sjrmlRY08srhaLKM7Ums1ReqbBGXtekwppeXikUVQAAAAm4mv1XU0Xr1dkvEGpzTKTySoU18qZQOolv7bl+CXFx4YZiUaVzN+skzUnllQpr5HVNKqzp5ZXC8B8AAEACFFWeqc0xkcorFdbI65pUWNPLK4WiyjO1JrNUXqmwRl7XpMKaXl4pFFUAAAAJKD6orkNtjolUXqmwRt5ds/Zcvzor/cXL/JnZ4MBWuIeLCy/oVHmm9rmVyisV1sjrmlRY08srhaIKAAAgAYoqz9TmmEjllQpr5HVNKqzp5ZVCUeWZWpNZKq9UWCOva1JhTS+vFIoqAACABJj955naHBOpvFJhjbytqjPRr1Q80a/8sC6FbYBaXil0qjxT+9xK5ZUKa+R1TSqs6eWVQlEFAACQgGJRNVit7VNLzF+ialJ5pcIaeV2TCmt6eaUoPlOl03rVSZqTyisV1sjrmlRY08srRbFTBQAAkJxip0qH2hwTqbxSYY28O7f2on41la7rFxhYyey/PQdZ+08rrxQ6VZ6pfW6l8kqFNfK6JhXW9PJKoagCAABIgKLKM7U5JlJ5pcIaeV2TCmt6eaVQVHmm1mSWyisV1sjrmlRY08srhaIKAAAgAYoqz9SazFJ5pcIaeV2TCmt6eaXwSgXP1JrMUnmlwhp5l+z2uxJqLp9cZ7Hk+O0JZnb1wNVgDxcXbtCpAgAASICiyjO1JrNUXqmwRl7XpMKaXl4pFFWeqTWZpfJKhTXyuiYV1vTySqGoAgAASICiyjO1JrNUXqmwRl7XpMKaXl4pcss6Vt/Nan8bALqjdFrfmecfS3hYrM5cv9K1k+PZf6Vz/er4v+M/v94XovvUVo9WfKWC1AUGAADNYPjPM7Ums1ReqbCml/flFx5v+xSao3Zx1fJKoajyTK0nJ5VXKqzp5b33k19p+xSao3Zx1fJKoagCAABIgKLKM7Ums1ReqbCml5fhP8fU8kpRfFBdh1qTWSqvVFjTy7vT4b+ECwLGc/1Kl/mrM9cvXuavlNrFVcsrhU4VAABAAhRVnqk1maXySoU1vbwM/zmmllcKRZVnak1mqbxSYU0vL7P/HFPLK4WiCgAAIAGKKs/UmsxSeaXCml5ehv8cU8srRWtRHtNbhwhAryWc1le6zF/pun6BmrP/4rl+ey/tjb8wPuziUx/b9hzQU2o/c+lUAQAAJEBR5Zlak1kqr1RYI69rUmFNL68UxZd/VtzQzrqUzuJsSyqvVFgjr2tSYU0vrxTFooobGgAAJMfwn2dqTWapvFJhjbyuSYU1vbxSFDtVOtR6clJ5pcKacN4zzz8W/FHC+YCl4rl+pcv81VnXr/SYKwevBXtkLy78oVMFAACQAEWVZ2pNZqm8UmGNvK5JhTW9vFIoqjxTazJL5ZUKa+R1TSqs6eWV0puiajQaZVlWccBsNsuybDQabXskAABAcv14UH02m83n84oDRqPR8gHz+XwymUyn09FotOsn12Fq6wNI5ZUKa+R1TSqs6eWV0o9Lm49AD4fD2WwW/2mWZZPJJD8gy7LZbJb/p5V1WbmbAXRT2ml98Up/pcv8bRy5Euy5fnEj2LN15PJ657C451K88+q7twV73vvbH1/v+6P71H7mdnr4Lx/R2/aZvryEGo/Hs9ksH/srLqF4pwoAADSmu0VVlmWbm5tFz6nisGAjNx6Pzax60NA9tTkmUnmlwppe3pdfeLztU2iO2sVVyyulu89ULTeZKp6pygcEh8NhsL8YE8zbV7tzjl0n1XQ1sbxSYU0v772f/Erbp9ActYurlldKp4uqohjKsmxVUZXvly2bAABAR3R3+G9HKoqq0mfbRag1maXySoU1vbwM/zmmlleKk6KqVDwmqEatySyVVyqs6eVl+M8xtbxSPBdVubhTNViXLf2GwQYbbLCxGxtFj2qnGxfu+siFuz5SbJw7eTz/o2LjwrPHBge2Bge2ljfyP3ore6DY2DpyeevI5fPP3F9sXDl47crBa5eefqh6Y3HPpUtPP7S451KxYWY/eOLh/DsXG5efPB5sdORvno3d2FDTjxdI5E+dl76nKr9ype/5zN8IOh6PlycGDpTemSEV1sTySoU1jbzL76l6+YXHd9Ssit9KFbt69I54556DW+FhB64Ge64cvFbnHPbe9m6dw+L3VF1+8rj7i7tM4WYuSIU1N52q0genxN+nYHpNZqm8UmFNLy/Df46p5ZXipKiqwMRAAADQgN4XVfnT6HGnqtijXFSpjWpL5ZUKa3p5mf3nmFpeKb0vqvLnpeKRPuU3KRTUmsxSeaXCml5ehv8cU8srpbsv/6ypaESNRqOikCrWVM4XqwEAN0qfSY8XSx4cCJ9AL10Xec+lveG3Wvex9PgJ9NJH1/dd7P3PHWCV3neqzGw6nZrZfD4fDAZZlo1Go83NTTMbDofBgoBq1JrMUnmlwppeXob/HFPLK8VDUTUajfK6yswmk0k+FFj6/gU1ak1mqbxSYU0vL8N/jqnlleLqBRJ1Hk5Xe2cGgL5Yfk9VhbTDf3uj4b93jrxX5zTWHv4bvHEg2HPxqY/V+T+ij9R+5roa21ae6FdK7W6WyisV1vTy7vTln72mdnHV8krxMPyHVdQ+t1J5pcKaXl6disr0Lq5aXimuOlUA0E01h/bWVnOwLxYP9tUZ1yt11wfeCPa8+fY98WH76nwvoJ/oVHmmNsdEKq9UWNPLy+w/x9TySqGo8kytySyVVyqs6eVl+M8xtbxSFIf/Kn5L4F4HAADrUexULVZr+9QSU2syS+WVCmt6eRn+c0wtrxTFokqHvzKxmlReqbCml5fhP8fU8kpRHP4DgA4qfatnTfFcv5pL+B374LeDPa9dOFrnC+MpgReiY0pf/nnFas0lBPqITpVnak1mqbxSYU0v77mTx9s+heaoXVy1vFIoqjxTazJL5ZUKa3p57370dNun0By1i6uWVwpFFQAAQAIUVZ6pNZml8kqFNb28DP85ppZXCkWVZ2pNZqm8UmFNLy/Df46p5ZXC7D8ASGntZf4OvfndeOe5ez8e7Nk4ciU+7MrB7ZfwK3Xh8qHwNPZfDI8p+8J49l+8p/Qc9l3k5w7colPlmVqTWSqvVFjTy8vLPx1TyyuFosoztSazVF6psKaXl5d/OqaWVwpFFQAAQAIUVZ6pNZml8kqFNb28DP85ppZXCkWVZ2pNZqm8UmFNLy/Df46p5ZWiOAuj4rcE7nUAO7L2XL+aK/0NDmwFe945Ek70s7J5diWT+C4frH1223wrK5sSGM/+G7xxYL3/I9BTip2qxWptn1piak1mqbxSYU0vLy//dEwtrxTFokqHvzKxmlReqbCml5eXfzqmllcKRRUAAEACFFWeqTWZpfJKhTW9vAz/OaaWVwpFlWdqTWapvFJhTS8vw3+OqeWVQlEFAACQgOIrFXQMBgOpX4mk8kqFtQ7nPfP8Y8Ge0pcs1HmBwtWjdxTb55+5//BT3zGzPQfDVyqUKn3rQeBDh16v863iJZZLlbwu4eC1Ol+4cXZ/+K26enF3iVpeKXSqPFP73ErllQprennzikqE2sVVyyuFogoAACABiirP1OaYSOWVCmt6ec8/c3/bp9ActYurllcKRZVnak1mqbxSYU0vL8N/jqnllUJRBQAAkACz/zxTm2MilVcqrHUm79rLJ8euHA6XN75+5J1i+9LTDx34/Itmdu2eS8Fhe8u+28/d/sfBng9vnA/2/LtLH4+/8ND+cGXkuusuRye2r97yyfF8xo5c3Mao5ZVCp8oztc+tVF6psKaXN6+oRKhdXLW8UiiqAAAAElAsqgartX1qiflLVE0qr1RY08t76emH2j6F5qhdXLW8UhSfqdJpveokzUnllQprenkZ/nNMLa8UxU4VAABAcoqdKh1qc0yk8kqFtaR5S2fwxUv4pbW8rl9uea5f7srS2nmXnzy+/9nTZnYsWrDv2Mbb8fd/ZesD257D3zrw9Xhn6ZTAwNV3b4t37rsY/vjYe6l0YuL2uJnhBp0qz9Q+t1J5pcKaXt68ohKhdnHV8kqhqAIAAEiAosoztTkmUnmlwppe3stPHm/7FJqjdnHV8kqhqPJMrckslVcqrOnlZfjPMbW8UiiqAAAAEmD2n2dqc0yk8kqFtaR5Syf6JVzU79y9JfPpNg5eCfbEi/p96s4/KLZPPvK5R5/7Qun3P3HLa/HOeKW/V7cOB3vqTPSzsrl+8US/UtcvbtQ5bHEpPIybGW7QqfJM7XMrlVcqrOnlXVVRuaR2cdXySqGoAgAASICiyjO1OSZSeaXCml7ek498ru1TaI7axVXLK4WiyjO1JrNUXqmwppeX4T/H1PJKoagCAABIQHH2X0Xr1dkvEGpzTKTySoW13c8bTwksnQ944a6PBHuuHD4Y7Nk4Ek70M7Mr9721o/MpZv/Fc/1eXYT/Ryub6xevBnjhcskX1pnrV7qoX525fvFEPzPbd/5isIebGW4oFlU6d7NO0pxUXqmwppeX4T/H1PJKYfgPAAAgAYoqz9TmmEjllQprenmZ/eeYWl4pFFWeqTWZpfJKhTW9vAz/OaaWVwpFFQAAQAIUVZ6pNZml8kqFNb28DP85ppZXipOJnbPZbNUfjUaj5f9kLisgrubayfHbE6zeCxRK357wN5YWS87FSyDXFL89wcz+5zs/te0Xvvn2PfHOmi9QiCV8pcL3f7PWSs/oI7WfuR5eqZBl2WQyWfWnUpcTAAC0xfnw33A4bPsU2qTWZJbKKxXW9PL++s9nbZ9Cc9QurlpeKR6KqnzsbzweLyIVw4IK1Lp0Unmlwppe3n/037O2T6E5ahdXLa8UD0XVfD636NkpAACAJnkoqnIUVTG1JrNUXqmwppeX4T/H1PJK8fCgeiHLsny8b3RDyyfUNrUms1ReqbB2E3lrzvWLxRP9zGxwYCs8LJrr96FDr9f5/h8ehJPgln3x1FNm5Qe8aiWz/w7tvxDsee3C0WBPPNGvVDytr3QSXx3xRD8r+4vlZoYbvS+qiqemlmv/+Xw+mUzG43GWZa2cFQAAUNP74b/lR9HH4/F0Oh2Px/mkv8lkIt6sUmsyS+WVCmt6eT974pm2T6E5ahdXLa+U3hdVhcVikWXZaDTKBwHH47GZzefzeALgYF229GHoxUbeZG79NBrbKHTkfLi4CTcK6335yy88vsbGhWePBRvnn7k/2PjBEw8HG9/8hc+s2ijek15sFMVTsPHFU0+t+qPS7xP/v+ITu/T0Q/U34qTx30adjXMnjwcb8TGFjtxsu72xWCy6cBrNbKjx/KrT/KIGg4ADsbe7AuLWfqbq3L0lr/mOn6m69pfOBXtKn6k6tvF2sOfELa+td2Knrn0o3vnK1geCPfEzVYM3DtT5/htn9wd7dvuZqvP/puTl9fBB7Weun05VLB8EVH5VldrvClJ5pcKaXl6G/xxTyyul9w+qVxiNRvkrrGRJ/X5gYnmlwlrtvAn7UnFTyszee/CHwZ5jUV/q1/Y+H3/hxza+F+z5xtZPBHv+1547iu0vnnoq3/hX7//F4LALlw/F3//C5bD9E/el4hbUzYi7UKXzJet8ITcz3Oh9pyrLslVT/JR7VAAAoGG971QVSynHpRVvWlcbzJbKKxXW9PJ+9sQzRbPKPbWLq5ZXSu87Vfksv8lkEvSlilpK+VVVap9bqbxSYU0vr05FZXoXVy2vlN53qvIXKMzn883NTbvxcHrxKNV0Om3z5AAAgIzed6rMrHgrlZnN5/O8ohoOh4vFQnnsz/TmmEjllQprenmZ/eeYWl4prkZ2ixHAilqKwWzAh7Un+l24q+StSPHMtcufKHnH0rEPfjvY83f/zO8He/7atf9T5zSW5/qt2mNm/+T7v1Tnu9WZ67fnYMl8xq2z++p8/zpK30pVx/d/s+SVYPBB7Wdu74f/lon3pQAAQIs8DP9hFbUms1ReqbCml5fhP8fU8kqhqPJMqulqYnmlwppeXmb/OaaWVwpFFQAAQAIUVZ6pNZml8kqFNb28DP85ppZXitZj+bbd3az2twH0RcK5flePlkyyu/aXzgV7PhQt6mdmj+z7o2DPP9zzP4I9d+67EH/hqfceCPbEc/3Wnuhn9eb6lU70W3vK3toOvfndYM+Z5x9r+BzQGGb/+Sd1gQEAQDMY/vNMrckslVcqrJm9/MLjbZ9Co37wxMNtn0Jz1G5mtbxSKKo8U+vJSeWVCmtm937yK22fQqN+7MvPt30KzVG7mdXySqGoAgAASICiyjO1JrNUXqmwxvCfa2o3s1peKYoPqutQazJL5ZUKazcx/Bcv6nf9yDvxYfFcv1/bWzIA97E939v2/xhP9Cv1Ly6eqPjTYvhv35k763y3rUsb2+4pnegX//3Eh8Xz9UrFEy1rfqHazayWVwqdKgAAgAQoqjxTazJL5ZUKawz/uaZ2M6vllUJR5Zlak1kqr1RYY/afa2o3s1peKRRVAAAACVBUeabWZJbKKxXWGP5zTe1mVssrhaLKM7Ums1ReqbDG8J9rajezWl4pvFIBKFmslxVeG5NwpWQre0HAxpErwZ4TD87jL3xm739d7zRi88FPxDufu/LTwZ43374n2LPvYsk/yNcvhm9GKFVnXeTyFxy8Wefb11LzBQqAY3SqPFNrMkvllQpresN/l55+qO1TaI7azayWVwpFlWdqTWapvFJhTW/478DnX2z7FJqjdjOr5ZWiOPxX8VsC9zoAAFiPYqdqsVrbp5aYWpNZKoPMZzEAACAASURBVK9UWGP4zzW1m1ktrxTFokqHvzKxmlReqbDG8J9rajezWl4pisN/QIC5ft0Xz/WLJ/qZ2fUHwsWSj3z0m8Gef2q/F3/hT3wgXFC51Le+/7PBnt++5c8Ge17dOhx/4WsXjgZ74rl+G2f3x1+4iNZFBtBZdKo8U2syS+WVCmtm504eb/sUGnX+mfvbPoXmqN3ManmlUFR5ptZklsorFdbM7n70dNun0KjDT32n7VNojtrNrJZXCkUVAABAAhRVnqk1maXySoU1hv9cU7uZ1fJKoajyTK3JLJVXKqwx/Oea2s2sllcKs/8AVCldm6/mfMmE6/pdPXpHsOf6kXCin5kdjeb6fWnja8GeB3/8D+ucw/feDufrmdmXNu4L9rx6LZzr99/e+gvxF+47c2ewZ+vsvmDP3hrr9xlL7AEdRqfKM7Ums1ReqbAmNhxmYsOdajezWl4pFFWeqTWZpfJKhTWx4TATG+5Uu5nV8kqhqAIAAEiAosoztSazVF6psMbwn2tqN7NaXikUVZ6pNZml8kqFNYb/XFO7mdXySlGc/VfxWwL3OhBofqKfla3rt3HwSrDnz0UT/czs7/6Z3w/2PHhnrbl+dRb1M7Pnrvx0sKdkUb9oop+ZXb8YLuG3j7l+gDuKnarFam2fWmJqTWapvFJhzeyt7IG2T6FRDP85ppZXimJRpcNfmVhNKq9UWDO7M3up7VNoFMN/jqnllUJRBQAAkABFlWdqTWapvFJhjeE/19RuZrW8UiiqPFNrMkvllQprDP+5pnYzq+WVojj7D3AvnotXcxLf2t+/pniuXzzRz8yuPxCu63fiwXmw58Mb5+Mv/Ht3PrftOdRc1O+598OJfmb2yp98NNhz+9lbgz3xon5WNtevI9P64htj7YsLgE6VZ2pNZqm8UmHN7OQjn2v7FBr18guPt30KzVG7mdXySqGo8kytySyVVyqsmT363BfaPoVG3fvJr7R9Cs1Ru5nV8kqhqAIAAEiAosoztSazVF6psMbwn2tqN7NaXikUVZ6pNZml8kqFNYb/XFO7mdXySmH2H/xIOOWtdAJUne+29hemtdsL9tVUZ67fxpFwUT8zOxKt63filteCPaUT/bbuPxvsuXr6wWDP+asl8w1ftcPBnniin9Wb61e6qF9H5vrF6twDa99OpV/I7EI4RqfKM7UmMyMmjn32xDNtn0KjuJkdU8srhaLKM7UmMyMmjn3x1FNtn0KjuJkdU8srhaIKAAAgAcWiarBa26eWmL9E1RgxcYzhP8fUbma1vFIUH1TXab3qJM0xYuIYw3+Oqd3ManmlKHaqAAAAkhuolcyDgVBkqbCmkbeYjv7yC4/vqJmx25Pbz9378TqHxSslH/xw+BIEM/vHB08Fez574pnXp59a3nPPfX8Yf+GVV38y2HPqvQeCPb969eH4C1//9s8Ee/a8dHt8WOzul79e57Cdqri+NS9l8y/yqCk+1ZdfeNz9J3eZwr9UBamwRqfKN6lb2cTySg0PmVlQUbkndX2lPrmml1cKRRUAAEACfoqq2WyWZdloNBqNRlmWtX06naA2x0Qqr9TsMDM7uvm1tk+hUVLXV+qTa3p5pTiZ/Zdl2WQyKf5zPp9PJpPpdDoajdo7qfapNZml8koNDxnDf65JfXJNL68UD52qoqIaDofT6XQ8Huf7Nzc3Wz0vAAAgxMNj+XkrdTgczmaz6p0mNhNBKqx1I+9uL6hcOvsv/v7Nr5R89egd8WF7Dm4Fe4af+K1gz6/s+Vb8hZ+663eDPbd87KUrf/LnfuSbv1myLvLX3vxEsCee6xdP9LOyuX7trot887P/an7hrqp5HzL7zzGpsOagU1XUTEHxNJ1OzWw+nzd+Rh0idSubWF6p4SEzCyoq96Sur9Qn1/TySnFSVA2Hw2B/8TRVUGwBAADsBidFVcUD6cpFldocE6m8UrPDzGzfB/9326fQKKnrK/XJNb28UnpfVFUM8OXtK+WiSq3JLJVXanjIGP5zTeqTa3p5pfS+qAIAAOiERc/lKabTafxHeadqOBzGx6/9d1X8jfVio4/nnHzj3k9+Jf+lv9hY75jFYhEcc+8nv3Izp7HeRvENly9uku9cbNz96Om7Hz1dvXH4qe8cfuo7yxt3Zi/dmb0UbDz63BfM7NHnvlBsvPjcE2b24nNPFBvXvvGAmV37xgPBxvvvH3j//QPLGz/8nU/88Hc+sbzxxVNPffHUU8sby/+vfOPA51888PkXlzfikz/81HfipGn/Vnd6H+aXOPk91pFPpfhG8fntyPk0syGi93Md88Hp8Xgcv0V9NBrN5/P4VQt9j4z6ar7goOZitGuvWZvwBQe7vS5y/K6EUvELFOK3J1jZCxT+qf1esOfBHy9ZF3nr/nCV5aunHwz2/Mb7fzn+wlPXPhTs+a1vDYM9G2f3x1+49/UfBnt2++0JNV+EkfAe6+wSy3BM7Wcuw38AAAAJ9L6oqngaPX+GXXmlGrU5JlJ5pcKa2R1/NXwdqG/M/nNMLa+U3hdVec1UMQdQuaiSarqaWF6psGaWP0Slg9l/jqnlleKkqIoVj1gpF1UAAKAxHp4gyx9Itx8t/1c9wC710JxUWDMbDAbB7/dpHyTfjSX81laxNlx9dR5LL13Ub+vI5WDP0Y9+Mz7s1/Y+H+yJF/W7flfJEnuxfR/8369PP7W8569d+PvxYRdfPRLsiR9Lj59Jt9qPpa99D+z0QXKpD69UWBPLKxXWHHSqbKkpNRgMsiwbjUbFiHU8JVCK1K1sYiMmUmHNLKio3JP68EqFNb28UjwUVaPRKF8+2cwmk0netcpfT9XqeQEAACEeiiozG41Gi8ViesNisVBenaagNsdEasKUVFgzO7r5tbZPoVFSH16psKaXV8otbZ9ASjyTHlDr1UmNiEmFNYb/XJMKa3p5pTjpVAEAALRL67F8E5uJIBXWyvImXL+lpt1eRqaw09l/pRP9rhw+GOzZOHIl2PPOkffiLzz2wW8Hex7Z90fxYf/8o/9m2xPb82Z4Dmb2re//bLDnoUe+nK/lV4jXnzGzPS/dHuzZdz6cXXgz6880ttKL1IdXKqyJ5ZUKa3SqfJO6lU0sr9rwX1BRuSd1M0uFNb28UiiqAAAAElAsqgartX1qiflLVE0qr9rsv5OPfK7tU2iU1M0sFdb08kpxNfuvJp3Wq07SnFRehv98k7qZpcKaXl4pip0qAACA5CiqPFNrMkvlZfjPN6mbWSqs6eWVojXX0fSmd4pr/pUKHRG/QCF+e4LVe4HCp478TvyFJ255Ldjz6cGZ+LA/+4nfDv+P3wkXPP6Xbz0Sf+G/ev8vBnte+ZOPBnv2/25JorQvUIg19koFwAe1n7l0qgAAABKgqPJMrckslVdt+O/yk8fbPoVGSd3MUmFNL68UiirPpJquJpZXbfbf/mdPt30KjZK6maXCml5eKRRVAAAACVBUeabWZJbKy/Cfb1I3s1RY08srReuxfNObiSBFYa5f6brIsatH7wj27Dm4FR8Wz/WLV0r+0sbX4i88vDecZBdP9DOzq6cfDPZ8952jwZ7PbH0q/sLXv/0zwZ46KyVbvbl+N7PoNbP/gB1R+5lLpwoAACABiirP1JrMUiNi505qDYddePZY26fQKKkPr1RY08srhaLKM6mmq4lNiLv7Ua3ZcIeefKXtU2iU1IdXKqzp5ZVCUQUAAJAARZVnak1mhv8cY/jPMamwppdXitZj+bbd3az2t+GMv9l/Nef6xev61VnUz8rm+v3a3ueDPZ+663fjL7z8w/D/uP+Okrl4X3vzE8Gef/CDXwz2XHw1XA3Q6s31q7moH/P1gBapzf67pe0TaIHUBQYAAM1g+M8ztSYzw3+OqeWV+vBKhTW9vFIoqjxT68kx+88xtbxSH16psKaXVwpFFQAAQAIUVZ6pNZkZ/nNMLa/Uh1cqrOnllaL1WL7pzUSQ0tnZfzUn8cXiaX2lrj/wTrBncc+lYM+HDr0ef2E81+9jG98L9py/WuscSv0z+yvBnt/61jDYE0/0s5uY6xdj9h/QIrWfuXSqAAAAEqCo8kytySw1/Kf2Mkypi2tiH16psKaXVwpFlWdSTVcTm/2nthae1MU1sQ+vVFjTyyuFogoAACABiirP1JrMUiNEDP/5JvXhlQprenmlaD2Wb3ozEaQ0P/tvt6f1DQ5sBXv2HAz3WNm6fnUW9TOzn7z+w23P4SO3l0wb/I33/3Kw59S1D8WHxXP9Ns7uD/bcdfrFbc+hPub6AZ2i9jOXThUAAEACFFWeqTWZpUaI3soeaPsUGiV1cU3swysV1vTySrml7RNoQcUN7axL6SzOtqQmiN2ZvdT2KTRK6uKa2IdXKqzp5ZWiWFRxQwMAgOQY/vNMrcksNULE8J9vUh9eqbCml1eKYqdKh1pPbrdHiOrM9Vt7Wl+prSOXgz3Xbizq92Nffv6KvZVvf+rOPwgOO3HLa8Gen7xWMtHv8N5wib1vbP1EsOdLlx+Jv/DVrcPBnniin5XN9dv7+vbzDUvFN3Nnl3pMQurDKxXW9PJKoVMFAACQAEWVZ2pNZqkRoh888XDbp9AotZtZKq9UWNPLK4WiyjO1JrPUBLEf+3LJyzwdU7uZpfJKhTW9vFIoqgAAABKgqPJMrcnM8J9jajezVF6psKaXVwpFlWdqTWaG/xxTu5ml8kqFNb28UnilAjxbe8HjtOq8QCF+e4KZXTl4Ldhz7FDJ8sYf3jgf7Pn04Ex40N5tT8HM7MSt4Yvaf/VSSUvslT/5aLDn1ujtCVb2AoVDb3631nnUwNrJALqGTpVnak1mqeG/b/7CZ9o+hUap3cxSeaXCml5eKRRVnqk1maWG/37mv3yp7VNolNrNLJVXKqzp5ZVCUQUAAJAARZVnak1mhv8cU7uZpfJKhTW9vFIoqjxTazIz/OeY2s0slVcqrOnllaI4+6/itwTudexIvHxy6US/PQfDnVcPXA32LG6slLwsnut3bOPt+LDh4nvBnvNXwxOL1062suWTf/XSE8GeeKKfmd36rTuCPaUrJdeZ68ckPgBuKHaqFqu1fWqJqTWZpYb/Tj7yubZPoVFqN7NUXqmwppdXimJRpcNfmVhNavjv0ee+0PYpNErtZpbKKxXW9PJKoagCAABIgKLKM7UmM8N/jqndzFJ5pcKaXl4pFFWeqTWZGf5zTO1mlsorFdb08kpxMvtvNput+qPRaNTceaBVa6/0F0/iKxXP7BtYuKd0Cb94QmC8qN9d+0tm58Vz/eJl/szMon+iv7RxX7BnuBXOEDSzX70aruv32oWjwZ54op/t8qJ+ANBTHoqqLMsmk8mqP1X+nWAwGEjFP3fy+N2Pnm77LBry6z+f/aP/nrV9Fs1Ru5ml8kqFNb28UpwP/w2Hw7ZPoU1qn1udisrMpCoq07uZpfJKhTW9vFI8FFX52N94PI7fO1UxLAgAAJCQh6JqPp8bz06VUZtjcu7k8bZPoTm//vNZ26fQKLWbWSqvVFjTyyvFQ1GVo6iKqTWZGf5zTO1mlsorFdb08krx8KB6IcuyfLxvdEPLJ4RmxZP49p0vmVJXc65fLF7CL1Z6RMlcvw+8Eew5tP9CnXOIl/kr9Q/3/I9gz9+8HC7qZ2Xr+t1+9tZgz0a9Rf1Ywg8Aet+pKp6aGgwGk8lkPp/P5/PJZLK5uZllWZtn1gFqTeYLzx5r+xSa84t//V+3fQqNUruZpfJKhTW9vFL8FFVmNh6Pp9PpeDzOJ/1NJhPxZpVak/nQk6+0fQrN+Y+/9XfaPoVGqd3MUnmlwppeXim9L6oKi8Uiy7LRaJQPAo7HYzObz+fxBMDBumzpNww2OrhRdKqKjeLR9XgjPrjOxlvZA9tuXHr6oWDj8pPHg42zv/TpYOObv/CZVRvFijTFRtGmqtg4uvm1YCP+zvGJxXEq/g6LdYGKjY7cCWywwUZHNtR08RVkNd+DsG0XKr+o4/F4eRxwoPTWNamwZjYYDIJmVdpnqjaOXNn2mKsHrpb8H9d9pip+o/qv7PlWvvGLf/1fVzSrPrYRPnq1/jNVf/he/IXNP1MleDPr5JUKa2J5pcJaNx9Uz7Isf0tCtaBaig2Hw9JOlQ6pW9kY/nNN7WaWyisV1vTySuliUZWqDBqNRnWKMzi29qJ+pa5f3Aj2xCv9Le65FH9hvK5f3Jd6ZN8f1TmH/zUoWYnv1UUY8zeuPhjsiZtSVq8vxaJ+AFBT75+pyrJsVb9KuUeVUxvVlpr999kTz7R9Co1Su5ml8kqFNb28UrrYqdqRYinluLTiTetqTWap4b8vnnqq7VNolNrNLJVXKqzp5ZXS+05VPstvMpkEfamiluJtVQAAoAG9L6qyLMvfSrW5uTkYDPIXqQ8Gg7xNNZ1O2z7BNqk1mRn+c0ztZpbKKxXW9PJK6X1RZWbFW6nMLH+jupkNh8PFYqE89md6TWaG/xxTu5ml8kqFNb28Uly9QKIYAayopdTemSHlx3/568Geq0dL5srtjRaz2/rZcBJcqdJ3UAWOfvSb8c4Llw8Fe37u9j8O9ryy9YH4C+Mpgc9d+eltz8HMXrtwNNiz78yd8WFbZ/eFh0Vv9qo5+4+1/wDE1H7m9v5B9WXifamY2t187uTxux893fZZNOSbv/CZn/kvX2r7LJqjdjNL5ZUKa3p5pXgY/sMqap9bnYrKzKQqKtO7maXySoU1vbxSKKoAAAASoKjyTG2OSbHQr4JiUWQRajezVF6psKaXVwpFlWdqTWaG/xxTu5ml8kqFNb28UiiqAAAAEpCbg1Ddd3X2t6E2x2QwGASvqto4cmW9b/XOkXBdYTPbe9u7wZ5D0UrJpeLlk49tvB3s+fDG+TrfqnilwvLsv/iVDe9+46eCPfHbE6xXL1AQvJl18kqFNbG8UmHN2SsVatK5wDpJc1Iv/2T4zzepvFJhTS+vFIb/AAAAEqCo8kxtjonU2n/M/vNNKq9UWNPLK4WiyjO1JjPDf46p3cxSeaXCml5eKRRVAAAACSg+qK5DbdrFhWePHX7qO9sedv3iRrDnvQfDJZZriqf1lYrn+sXLJ5cuqBwrVkr+wRMP/9iXn8+3B28cCA7biDLGE/2sbK5fPK3vvoe/WufEdpvazSyVVyqs6eWVQqfKM7XPbZ2Kyo2iohKhdjNL5ZUKa3p5pVBUAQAAJEBR5ZnaHJPzz9zf9ik05wdPPNz2KTRK7WaWyisV1vTySqGo8kytyczwn2NqN7NUXqmwppdXCkUVAABAAnJzEKSmXUiFNbPBYHBn9tIaX3jlvrfW+z/Ga//93O1/HB9WZ2ZfMa2v+vtffPVIvnHp6YcOfP7FfHvj7P7gsL2vh/MZO7uoX02CN7NOXqmwJpZXKqzRqfJN6lY2s/Uqqp4qKioRajezVF6psKaXVwpFFQAAQAKKRdVgtbZPLTF/iaq9lT3Q9ik059LTD7V9Co1Su5ml8kqFNb28UhTfqK7TetVJmmP4zzG1m1kqr1RY08srRbFTBQAAkJxip0qH2rSLt7IH6jSr3jnyXrDnrmiS3YXLB+Mv/NCh17f95v/znZ+Kd9ZZIvDqu7fFO989c2ewZ++NjeWwG+vO9esRtZtZKq9UWNPLK4VOlWdqn1up4T+psKZ3M0vllQprenmlUFQBAAAkQFHlmdocE6nZf1JhTe9mlsorFdb08kqhqPJMrcksNSImFdb0bmapvFJhTS+vFIoqAACABJj955naHJN49t/VA1fjw/ZdDG/7C7eFc/3iRffM7MLlQ+udWPyFb759T7Dn9rO31vlWW2f3/en3fPbYoSdfybc3LJzP6I/azSyVVyqs6eWVQqfKM7XPrdSIWFFRiVC7maXySoU1vbxSKKoAAAASoKjyTG2OidSEuAvPHmv7FBqldjNL5ZUKa3p5pVBUeabWZGb4zzG1m1kqr1RY08srhaIKAAAgAYoqz9SazAz/OaZ2M0vllQprenmlKL5SoeKGdtaVdRZnWwc+/+JV+5F3KFw5eK3OF8YLKpeqsy5y6WsX4uWZ49c6lCpeoPD/v/D8n57q3Y+ethvbdZZPPvP8Y/HO+x7+ap3T6AK1m1kqr1RY08srRbGo4oYGAADJMfznmVqT+dLTD7V9Cs05d/J426fQKLWbWSqvVFjTyyuFosoztZ7cgc+/2PYpNOfuR0+3fQqNUruZpfJKhTW9vFIoqgAAABKgqPJMrcnM8J9jajezVF6psKaXV4rig+o61JrM+589fcV+ZLrf3tvejQ+7+u5t236reMFjM7MPhDviaX2lBm8cCPZsnN0f7Lle9oXFXL9YkuG/0imB3aR2M0vllQprenml0KkCAABIgKLKM7Um8+UnhUbEGP7zTSqvVFjTyyuFosoztSbz/meFJsQx+883qbxSYU0vrxSKKgAAgAQoqjxTazIz/OeY2s0slVcqrOnllTJQ60MOBnKRddz6b79e57C7PvBGsKfmJL5YPJGwdL7hvjN3BnsqFvWrVmeZP+vVtD4Ajqn9zKVTBQAAkABFlWdqTWap4b+XX3i87VNolNrNLJVXKqzp5ZWi+PLPihvaWZfSWZxtSc3+u/eTX2n7FBqldjNL5ZUKa3p5pSgWVdzQAAAgOYb/PFNrMjP855jazSyVVyqs6eWVovVYvunNRJDyk//hPwd7Spfw23cxbNAu7rlU5/vXWTTw9rO3xjuvX9wI/4+Xwj13v1xr6iLT+gD0iNrPXDpVAAAACVBUeabWZD77S59u+xSao3ZxyeuYVFjTyyulN0XVaDTKsqzigNlslmXZaDTa9kgdUk1XMzvy7/9T26fQHLWLS17HpMKaXl4p/Zj9N5vN5vN5xQGj0Wj5gPl8PplMptPpaDTa9ZMDAADoS6dqc3Oz4k+zLMsrquFwOJ1Ox+Nxna9SoNZkZvjPMfI6JhXW9PJK6fRj+bPZbDabTSaT/D+Hw+FsNosPy2/Q8Xi8POqX74y/RG0mgpR47b94mT+7iZX+Bm8cCPbsvbS3zhfWWemv5qJ+pZgSCKCb1H7mdrdTlWXZ5uZmUVFVHBZs5PJ+VfWgIQAAQCrdfaZq+XGoimeq8kbUcDgM9mdZlhdks9lM9skqtV8RLj95XGelmpdfeFxqpRq1m1kqr1RY08srpdNFVVEMFU9NxfL9smVTNbXPrU5FZaz9551UXqmwppdXSneH/3akoqgqfQwLAAAgLSdFVal4TFCN2hwT1v5zTO1mlsorFdb08krxXFTl4k7VYF229GHoxUbeZG79NBrbMLN9F2/Zd/GWy08ezzfO/tKnL1w+eOHyweWNwRsHBm8c+METDxcbV9+97eq7ty1vxMcM3jhw5eC1S08/dOXgtWLDzN7KHsj/1/nG9Ysbb2UPXL+4sbxx4dlj+85f3Hf+YrFx7uSf1n/FRlEkVW+cef6xM88/9vILjy8Wi3wjn/rXkUuwqxe3C6fR2MZisejCaTSzUejI+XBxE26oae5xuZrDcKUDeflT56WvVMivXOl7PvM3gsavWmA826uDz3wj2FO6UnL8ZoS8PFoWL7pceli8fHK8drKZ7X39h/HOQM1XKvD2BAA9ovYzt7kH1SseNl8W1EA1lU7x430KanfzpacfOvD5F9s+i4aoXVzyOiYV1vTySmmuqGrrgXHliYFqn1udisr0Li55HZMKa3p5pfT+mar8afS4Yiv2KBdVAACgMb0vqvKxwnikjzcpmN6jgpeefqjtU2iO2sUlr2NSYU0vr5TeF1VFIyp4A3v+OvVicWVNak1mhv8cI69jUmFNL6+U7r5Rvb7pdLq5uTmfzweDwXg8Lta0GQ6Hazzzjv4qmcQXTfQrFc/1K10peePs/mDP1qVwrl+8UrLd3GLJAIC+6H2nysxGo9F0Os23J5NJUVExAqjWZJZ6+afaxSWvY1JhTS+vFFcTO+s8nM5cVsdu/bdfD/aUvm6qjtJOVfwOqkXjnSreUwWgR9R+5noY/isw0Q8AALTFw/AfVlFrMjP85xh5HZMKa3p5pVBUeSbVdDWz/c+ebvsUmqN2ccnrmFRY08srxdXwH8QlfIKqdAm/5vEEFQD0CJ0qz9SazLz80zHyOiYV1vTySqGo8kytyczLPx0jr2NSYU0vrxTF4b+K3xK41wEAwHoUO1WL1do+tcTUmswM/zlGXsekwppeXimKRZUOf2ViNYb/HCOvY1JhTS+vFMXhP4hbe65fnfenp13m776HvxrsYT4gAHQWnSrP1JrMDP85Rl7HpMKaXl4pFFWeqTWZGf5zjLyOSYU1vbxSKKoAAAASoKjyTK3JzPCfY+R1TCqs6eWVQlHlmVqTmeE/x8jrmFRY08srhdl/8Cye6Gc3sa7fbs/1izHXDwB6hE6VZ2pNZob/HCOvY1JhTS+vFIoqz9SazAz/OUZex6TCml5eKRRVAAAACVBUeabWZGb4zzHyOiYV1vTySqGo8kytyczwn2PkdUwqrOnllaI4+6/itwTu9V4rnetX6wtf/2HaM9kW0/oAwB/FTtVitbZPLTG1JvNb2QNtn0Jz1C4ueR2TCmt6eaUoFlU6/JWJ1e7MXmr7FJqjdnHJ65hUWNPLK4WiCgAAIAGKKs/UmswM/zlGXsekwppeXikUVZ6pNZkZ/nOMvI5JhTW9vFIUZ//Bq3hRvz0Ht+LDFpfWXPtvt1f6AwD0Gp0qz9SazOefub/tU2iO2sUlr2NSYU0vrxSKKs/UmsyHn/pO26fQHLWLS17HpMKaXl4pFFUAAAAJUFR5ptZkZvjPMfI6JhXW9PJKoajyTK3JzPCfY+R1TCqs6eWVQlEFAACQwECtZB4MhCJLhTWzwWAQNKtK356w7/zF9b7/2q9U2I3lkwUvLnm9kgprYnmlwhqdKt+kbmVj+M818jomFdb08kqhqAIAAEhAsagarNb2qSXmL1E1Zv85Rl7HpMKaXl4pisvU6LRedZLmGP5zjLyOSYU1vbxSFDtVAAAAyWk9lm9iMxGkwlrS2X+dmuhX70EUagAADzpJREFUSvDiktcrqbAmllcqrNGp8k3qVjaG/1wjr2NSYU0vrxSKKgAAgAQoqjxTm2PC7D/HyOuYVFjTyyuFosoztSYzw3+OkdcxqbCml1cKRRUAAEACWo/lm9hMBKmwZjYYDO5+9PQaX9j9uX4xwYtLXq+kwppYXqmwRqfKN6lb2czWq6h6Su3iktcxqbCml1cKRRUAAEACFFWeqc0xOXfyeNun0By1i0tex6TCml5eKRRVnqk1mRn+c4y8jkmFNb28UiiqAAAAElAsqgartX1qiflLVI3hP8fI65hUWNPLK+WWtk+gBTqtV52kOYb/HCOvY1JhTS+vFMVOFQAAQHIUVZ6pNZkZ/nOMvI5JhTW9vFIoqjxTazIz/OcYeR2TCmt6eaVQVAEAACSgtSiPia1DJBXWytb+W3tRv7U1thqg4MUlr1dSYU0sr1RY69Hsv9FoNBqNsiwr/dPZbFbxhbtzRj0gdSsbw3+ukdcxqbCml1dKP4qq2Ww2n89X/WmWZZPJZNWfcvsCAIAG9OOZqs3NzYo/rWhTDYfD9GfTH2pzTJj95xh5HZMKa3p5pXS6qJrNZlmW1bz/ptPpIlJRbylQ69Ix/OcYeR2TCmt6eaV0d/ivelBvWcXIIAAAQDO6W1QtP2Be/UxVfDxyatMuzp08rtOsUru45HVMKqzp5ZXS6aKqqJOyLFtVVC0P8GVZlv9nxTxBKWqf2+YrqsZeoBBTu7jkdUwqrOnlldLdomqnlh+9ms/nk8lkPB5TWgEAgGZ0+kH1OpY7VePxeDqdjsfjfNLfZDIRL6rU5pgw+88x8jomFdb08krpfVGVGw6Hi8Uiy7J84G82m43HYzMrfdR9sC5b+jD0YiNvMrd+Go1tFIrq6uUXHt/tDS5uMxuFjpzPbm8sFosunEYzG4WOnA8XN+GGmuYel6v5doPS583zmYDD4XBHr0jIL2owCDjgCUG/fvyXvx7s2e1lalp8pgoAuk/tZ25zz1RVPGy+LOGDUMPhcD6fK7+qSu1uZvafY+R1TCqs6eWV0lxR1XxxMxqNxF9hpfa53e2KqlN9KbWLS17HpMKaXl4pvX+mKsuy6lWWeX8VAABoQO9fqVA8ih6XVnmbSrmoUmsyM/znGHkdkwprenml9L5TVczyC4YXi1pKuahS+9zqVFSmd3HJ65hUWNPLK6X3napiicDNzc389VS2tBog9y4AAGhG7ztVZrZYLPJyan6D3XhzVdun1jK1N4Xw8k/HyOuYVFjTyyvF1chuMQJYMeTHYLZj9z381V39/p2a/QcA3af2M7f3w3/LlB+fAgAA7fIw/IdV1JrMxdIxCtQuLnkdkwprenmlUFR5JtV0NbN7P/mVtk+hOWoXl7yOSYU1vbxSKKoAAAASoKjyTK3JzPCfY+R1TCqs6eWV4upB9ZoqbmhnXVlncbbF8J9j5HVMKqzp5ZWiWFRxQwMAgOQY/vNMrcnM8J9j5HVMKqzp5ZVCUeWZWk+O4T/HyOuYVFjTyyuFogoAACABiirP1JrMDP85Rl7HpMKaXl4pWovymN46RFLWXvuPRf0AYDeo/cylUwUAAJAARZVnak1mhv8cI69jUmFNL68UiirPpJquxuw/18jrmFRY08srhaIKAAAgAYoqz9SazAz/OUZex6TCml5eKVqP5ZveTAQpa8/+i5XOB4y/P9MGAaCC2s9cOlUAAAAJUFR5ptZkZvjPMfI6JhXW9PJKuaXtE2hBxQ3trEvpLM62mP3nGHkdkwprenmlKBZV3NAAACA5hv88U2syM/znGHkdkwprenmlUFR5ptaTY/jPMfI6JhXW9PJKURz+AwI134zACxQAABXoVHmm1mRm+M8x8jomFdb08kqhqPJMrcnM8J9j5HVMKqzp5ZVCUQUAAJAARZVnak1mhv8cI69jUmFNL68UiirP1JrMDP85Rl7HpMKaXl4pzP6DZzXXRQYA4ObRqfJMrcnM8J9j5HVMKqzp5ZVCUeWZWpOZ4T/HyOuYVFjTyyuFogoAACABiirP1JrMDP85Rl7HpMKaXl4pFFWeqTWZGf5zjLyOSYU1vbxSBmpXt/pXBLW/DQAAds9goFVmKL5SQecCq93NUnmlwhp5XZMKa3p5pchdWu5mAACaofYzl2eqAAAAEqCo8kxtjolUXqmwRl7XpMKaXl4pWn0502tFAgDQFrWfuYoPqsOrmov6lS4ICADATWL4zzO1JjMv/3SMvI5JhTW9vFIoqjyTaroaL/90jbyOSYU1vbxSKKoAAAASoKjyTK3JzPCfY+R1TCqs6eWVQlHlmVqTmeE/x8jrmFRY08srhaLKM7Xfh+hUOUZex6TCml5eKRRVAAAACVBUAQAAJKD48s+K1itD3QAAYD2KRRWVEwAASI7hPwAAgAS0Vjo0scUdpcKaWF6psEZe16TCmlheqbBGpwoAACAJiioAAIAEKKoAAAAS6Prsv9kNZja6ofTI6XQ6n8+LI7MsS3ICOxoP3ung8W4fv1NdO3+pvFJh1zh+p7p2/p3KKxW2g8fvVKfOX+0ZqZ3q9N/OaDSaz+fBzuFwmFdO2x556tSpzc3NYGen7jaO5/hungzH+z6+UyfD8f06vmsVZ9d0d/ivqJPG4/F0Op1Op+Px2Mzm83nQrMqyLD9yOByeOnUqP8zMTpw40fRJAwAAVR0tIWezWd5kmk6nyyVU6f78Denj8Xh5yC/fGbe1el3Cc7zj4zt1Mhzv+/hOnQzH9+t4OlXVOtqpKiqhoCk1Go2Gw6GZFfVTvJEr2lq7eJYAAAA3dLqoyuunQFBmrTqyqLGm02ny0wMAAAh0dPZflmWz2ax0ol8wnJf3olZNCQQAAGhGR4uqVa9OmM1meRUVDPaV9rRy8/k8ngMIAACQVkeH/0oVT6kPh8M6ramKSgsAACCtjnaqYstvoorfU1UhPjifGFjfjo7f1W/O8b6P79TJcLzv4zt1Mhzfr+N3+s2lNFdU1ayE4hZUlmWTySTfDt6bsMY3lJrbCQAAGtNcUVW8orNa6eumbMWL1AulD07xPgUAANCYznWqlhUVVfAK0B3hySoAANCA7j6oXrwSfbFYVFRUec0UV2zF66mY+gcAABrQ0aKqGAHctr+16s3pjP0BAIAmdXRRnmI5v1U9quX98TJ/0+k0X015jQfbAQAA1tDpoqpCaQllZuPxuHhB6PIxsxvsxptFV5VrwZG9rsnymKsiVHQBe/qG+uq85uviFvxdx2UuL9kqvi9lTu1DqvCPsOaP15UWnbTtaefPWhVOnTpVcUDps+rBd6g4cjqd7mrYXZI/VVYac7FY5MOm/borqlXnXfi6uAV/13FZabq+X7JVfF/KnNqHVOEfYc0frxV6c+XqOHXD8s7iQo7H4+l0Op1Oi1s5uPDL+5cP69H9vazi5l6suL+rv6Tjqk/e2cUtVPy73NPrWPB6yVZxfCkLah9S9/8Iy/54reAtT6CYAxiUw6X7i5tj+ch+3eKLxSK4X6s/zw5+S6iZ18fFjeXXMcjlQ+nVcXDJVnF8KdU+pCL/CAv+eK3DeVFV3NnxH+U3dHE5Vx1Z8R06KP5lt/rfr/5+nnM18/q4uKV8XMdY8e9yzf0OeL2Uah9SnX+E1X681tSbtf/Wkz8QV9plXV5MsOLIYpGc2WzW/ScHl8+weGC/5vF9VDOvj4tbodcnX2rVJSuS9v2SreIvlNqHVOcfYbUfrzU5L6qyLFt1tYJpF/kd0PfrujztomJdoOXs+V+R9XMuRs28Pi5uteXrWDH7pi+KLBUH9D3jKs4updqHVOcfYbUfr3W13SprRzzoG/znsvyPevesQ95ZLe08F/FjvYtZqMjr7+LmXF7HXEWKYGTBB8eXcpnah1TtH+Gcwo/XCh19o/qums1m+do1w+GwTu3sb/XA5V8j8lkb4/E4jzmZTHr0q9LN6/XFrb6OKr8XusClrNDrD+kqXv8R5ser8+G/2PJYb8WL12I7OrgXll+Omt/9+Qh3rz/S6+n7xV3c+IVv+TrO5/O+j5H1+uTX4/VS3ry+f0hLOftHmB+v1seiqubffvwPUPFMnK21fE0r/6KtHbZalmWl8Yu/olUH7LZdytv8N1zbjv4Gtr2Off9J3Pfzr8/9pbx5zuJ39h/h9fTxx+su6V9RVfHo37Lguhbr3iz/ZhAr/ZerxbWZ1wt7M4bDYf5rcZLvtlO7mrdrF7dUqr+Bdq8jEpK6lL34kO623l3xnv543SX9K6rWuNWKSz6dTteuiLvcqUoomArbsLb+HenO70mp/gbavY43r+LnitZMov5fylS44t3U3x+vu8T/g+r5Jc/nX1Rcufxxufgf8WDA24eKxvK2U9n7yOvF3fY69ld+RSp+tPT0kq3i+FLW5PVDuoqPf4T58RrrX6dqR4q7dtt/mLIs29zcjP8Rd/kvWjH4HX+qXbYBvF5cx9dxNBoV6ZYVSfsbrZTjS1mT1w/pKg6uOD9ey7X5Pofdl2cs1nqMxQcvv1OkeN9GH9+iUfGKlGJxgOBvoJjd2swZplWRd+Hu4uZcXsdCaYq+X7JVfF/KgtqH1Pc/wso/Xiv04MrdjG1rytJrnF/m4ubu6WsG6/z7lR+QK/Y0e5rJVOd1dnELyxcuuI79XVMst+qS9fcWreb4UhbUPqS+/xFe8UP1/3P847VCPy7e2nZ01Rdlb7nt7yWv/jwvfvQf8b6HXdTI6+niLqu/gGvveL1kqzi+lDm1D6nvf4TLf6auzuLs4q4yWNT4q1Hj8um5VaTCmt+8XnOZ62il1PLG1P4GpPK6D0tRBQAAkID/VyoAAAA0gKIKAAAgAYoqAACABCiqAAAAEqCoAgAASICiCgAAIAGKKgAAgAQoqgAAABKgqAIAAEiAogoAACABiioAAIAEKKoAAAASoKgCAABIgKIKAAAgAYoqAACABCiqAAAAEqCoAgAASICiCgAAIAGKKgAAgAQoqgAAABKgqAIAAEiAogoAACABiioAAIAEKKoAAAASoKgCAABIgKIKAAAgAYoqAACABCiqAAAAEqCoAgAASICiCgAAIAGKKgAAgAQoqgAAABKgqAIAAEiAogoAACABiioAAIAEKKoAAAASoKgCAABIgKIKAAAgAYoqAACABCiqAAAAEqCoAgAASICiCgAAIAGKKgAAgAQoqgAAABKgqAIAAEiAogoAACABiioAAIAEKKoAAAASoKgCAABIgKIKAAAggf8HWQ7HUQA/V8IAAAAASUVORK5CYII=", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "hist = ROOT.TH2F(\"h2\", \"h2\", 100, -20., 20., 100, -20., 20.)\n", + "for i in range(100000):\n", + " uniform = ROOT.gRandom.Uniform()\n", + " x = 20.0 * (uniform - 0.5)\n", + " y = ROOT.gRandom.Gaus(x, 1.0 + 0.02*x**2)\n", + " hist.Fill(x, y)\n", + "\n", + "canvas = ROOT.TCanvas(\"canvas\", \"canvas\", 800, 800)\n", + "canvas.SetGrid()\n", + "hist.Draw()\n", + "canvas.Draw()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## slice process" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### constant" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "ROOT.gStyle.SetOptStat(0)\n", + "ROOT.gStyle.SetOptFit(0)\n", + "ROOT.gStyle.SetMarkerStyle(20)\n", + "ROOT.gStyle.SetMarkerSize(1.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "delta = 1.0 # mm\n", + "x_min = -10.0 # mm\n", + "x_max = 10.0 # mm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "get the TH2F object from ROOT file (if need)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# rootfile = ROOT.TFile(\"/path/to/rootfile.root\")\n", + "# hist = rootfile.Get(\"histogram_name\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## slice and fit gaussian" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "gr = ROOT.TGraph()\n", + "gaus = ROOT.TF1(\"gaus_fit\", \"gaus(0)\")\n", + "for i, x_center in enumerate(np.arange(x_min + delta/2.0, x_max, delta)):\n", + " bin_min = hist.GetXaxis().FindBin(x_center - delta/2.0)\n", + " bin_max = hist.GetXaxis().FindBin(x_center + delta/2.0)\n", + " h = hist.ProjectionY(f\"h_{x_center}\", bin_min, bin_max)\n", + " h.Fit(gaus, \"q\")\n", + " gr.SetPoint(i, x_center, gaus.GetParameter(2))\n", + "\n", + "canvas.Clear()\n", + "gr.SetMarkerColor(ROOT.kRed)\n", + "gr.Draw(\"ap\")\n", + "canvas.Draw()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "if we draw the assumed distribution, `0.02 * x^2 + 1.0`" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "real_func = ROOT.TF1(\"f\", \"pol2\")\n", + "real_func.SetParameters(1.0, 0.0, 0.02)\n", + "real_func.SetRange(x_min, x_max)\n", + "real_func.Draw(\"same\")\n", + "canvas.Draw()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}