From 41effddd1d47e0316e5d9eecd87300ef0052a8a7 Mon Sep 17 00:00:00 2001 From: Jim Pivarski Date: Sun, 12 Jul 2020 10:10:59 -0500 Subject: [PATCH] Simplify 'plot1d', etc. to 'plot' and add an EVALUATED copy. --- README.md | 4 +- tutorial-EVALUATED.ipynb | 4481 ++++++++++++++++++++++++++++++++++++++ tutorial.ipynb | 6 +- 3 files changed, 4487 insertions(+), 4 deletions(-) create mode 100644 tutorial-EVALUATED.ipynb diff --git a/README.md b/README.md index 83d0665..a0e7185 100644 --- a/README.md +++ b/README.md @@ -12,10 +12,12 @@ You can run it on a public cloud service called Binder:

- + Launch Binder


If you instead want to run everything on your own laptop, use pip to install the packages listed in [requirements.txt](requirements.txt) and open [tutorial.ipynb](tutorial.ipynb) in Jupyter. + +The [tutorial-EVALUATED.ipynb](https://nbviewer.jupyter.org/github/jpivarski/2020-07-13-pyhep2020-tutorial/blob/master/tutorial-EVALUATED.ipynb) copy has all cells evaluated, in case you want to read it offline. diff --git a/tutorial-EVALUATED.ipynb b/tutorial-EVALUATED.ipynb new file mode 100644 index 0000000..8343e8f --- /dev/null +++ b/tutorial-EVALUATED.ipynb @@ -0,0 +1,4481 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Welcome to PyHEP 2020!\n", + "\n", + "


\n", + "\n", + "Before writing this tutorial, I took a look at the survey..." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PyHEP feedback: Atlantic: 15:00 CET, 06:00 PDT, 18:30 IST, 22:00 JSTPyHEP feedback: Pacific: 00:00 CET, 15:00 PDT, 03:30 IST, 07:00 JSTPyHEP feedback: Indian Ocean: 09:00 CET, 00:00 PDT, 12:30 IST, 16:00 JSTPyHEP feedback: How did you hear about this workshop?PyHEP feedback: What are you hoping to learn from this workshop?Professional life: What best describes your occupation?Professional life: What best describes the stage of your professional career?Professional life: If you're involved in computing, what do you do?Professional life: If you write software, what is its lifespan and scope?Professional life: Are you associated with one or more experimental or theoretical collaborations? (E.g. ATLAS, CMS, DUNE, USQCD...)...Particle physics ecosystem: hepunits: https://github.com/scikit-hep/hepunitsParticle physics ecosystem: particle: https://github.com/scikit-hep/particleParticle physics ecosystem: pyjet: https://github.com/scikit-hep/pyjetParticle physics ecosystem: Astropy: https://www.astropy.orgParticle physics ecosystem: Geant4Py: https://nusoft.fnal.gov/larsoft/doxsvn/html/md_geant4.10.03.p03_environments_g4py_README.htmlParticle physics ecosystem: luigi: https://luigi.readthedocs.ioParticle physics ecosystem: Rucio: https://rucio.readthedocs.ioParticle physics ecosystem: Gaudi: https://github.com/lgiordani/gaudiParticle physics ecosystem: Condor: https://htcondor.readthedocs.io/en/latest/apis/python-bindingsParticle physics ecosystem: Do you regularly use any other packages that weren't listed here?
0Great!BADAcceptableMy physics collaboration's mailing list(s)Machine learning/deep learning toolkits; Parti...I research particle physics (experiment, theor...Grad student involved in researchStudies that improve the quality of reconstruc...Deployed widelyNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1AcceptableBADGreat!HSF mailing lists or announcements; Word of mo...General-purpose data analysis toolkits; Machin...I research particle physics (experiment, theor...Grad student involved in researchStudies that improve the quality of reconstruc...Used in small groupNaN...Don't know what it isDon't know what it isDon't know what it isDon't know what it isDon't know what it isDon't know what it isDon't know what it isThrough dependencies onlyThrough dependencies onlyNaN
2Great!BADAcceptableWord of mouth (in person, personal email, chat...Particle physics analysis tools (other than RO...I develop/maintain softwareGrad student involved in researchDeveloping libraries for data analysts (i.e. \"...Deployed widelyNaN...NeverNeverNeverNeverNeverNeverNeverNeverNeverNaN
3Great!NaNNaNMy physics collaboration's mailing list(s)General-purpose data analysis toolkits; Machin...I research particle physics (experiment, theor...Grad student involved in researchSoftware the simulates physics (e.g. Monte Car...Mostly use-onceNaN...NeverNeverNeverNeverNeverNeverNeverThrough dependencies onlyNeverNaN
4Great!BADAcceptableMy physics collaboration's mailing list(s)General-purpose data analysis toolkits; Machin...I research particle physics (experiment, theor...Postdoc/fellow/temporary research positionNaNUsed in small groupCMS...Don't know what it isDon't know what it isDon't know what it isDon't know what it isNeverDon't know what it isDon't know what it isDon't know what it isRegularlyNaN
..................................................................
400NaNNaNGreat!My physics collaboration's mailing list(s)Python fundamentals (how to program in Python)...I research particle physics (experiment, theor...Research or management at a laboratory/college...Software that controls/reads data from an expe...I don't write softwareCMS...Don't know what it isRegularlyRegularlyThrough dependencies onlyRegularlyThrough dependencies onlyAll the timeThrough dependencies onlyThrough dependencies onlyNO,
401BADAcceptableGreat!Word of mouth (in person, personal email, chat...General-purpose data analysis toolkits; Machin...I research particle physics (experiment, theor...Grad student involved in researchStatistical analysis of reconstructed physics ...I don't write softwareNo...NaNNaNNaNNaNThrough dependencies onlyNaNNaNNaNNaNNaN
402NaNNaNGreat!HSF mailing lists or announcements; HSF/PyHEP ...General-purpose data analysis toolkits; Machin...I research particle physics (experiment, theor...Postdoc/fellow/temporary research positionSoftware that controls/reads data from an expe...NaNNaN...NeverNeverNeverNeverNeverNeverThrough dependencies onlyNeverThrough dependencies onlyNaN
403AcceptableBADAcceptableMy physics collaboration's mailing list(s)General-purpose data analysis toolkits; Machin...I'm studying physics but not doing researchUndergraduate studentSoftware that controls/reads data from an expe...Used in small groupCMS...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
404AcceptableBADGreat!My physics collaboration's mailing list(s)General-purpose data analysis toolkits; Machin...I research particle physics (experiment, theor...Postdoc/fellow/temporary research positionSoftware that controls/reads data from an expe...NaNCMS...NeverNeverNeverNeverNeverNeverNeverNeverRegularlyNaN
\n", + "

405 rows × 105 columns

\n", + "
" + ], + "text/plain": [ + " PyHEP feedback: Atlantic: 15:00 CET, 06:00 PDT, 18:30 IST, 22:00 JST \\\n", + "0 Great! \n", + "1 Acceptable \n", + "2 Great! \n", + "3 Great! \n", + "4 Great! \n", + ".. ... \n", + "400 NaN \n", + "401 BAD \n", + "402 NaN \n", + "403 Acceptable \n", + "404 Acceptable \n", + "\n", + " PyHEP feedback: Pacific: 00:00 CET, 15:00 PDT, 03:30 IST, 07:00 JST \\\n", + "0 BAD \n", + "1 BAD \n", + "2 BAD \n", + "3 NaN \n", + "4 BAD \n", + ".. ... \n", + "400 NaN \n", + "401 Acceptable \n", + "402 NaN \n", + "403 BAD \n", + "404 BAD \n", + "\n", + " PyHEP feedback: Indian Ocean: 09:00 CET, 00:00 PDT, 12:30 IST, 16:00 JST \\\n", + "0 Acceptable \n", + "1 Great! \n", + "2 Acceptable \n", + "3 NaN \n", + "4 Acceptable \n", + ".. ... \n", + "400 Great! \n", + "401 Great! \n", + "402 Great! \n", + "403 Acceptable \n", + "404 Great! \n", + "\n", + " PyHEP feedback: How did you hear about this workshop? \\\n", + "0 My physics collaboration's mailing list(s) \n", + "1 HSF mailing lists or announcements; Word of mo... \n", + "2 Word of mouth (in person, personal email, chat... \n", + "3 My physics collaboration's mailing list(s) \n", + "4 My physics collaboration's mailing list(s) \n", + ".. ... \n", + "400 My physics collaboration's mailing list(s) \n", + "401 Word of mouth (in person, personal email, chat... \n", + "402 HSF mailing lists or announcements; HSF/PyHEP ... \n", + "403 My physics collaboration's mailing list(s) \n", + "404 My physics collaboration's mailing list(s) \n", + "\n", + " PyHEP feedback: What are you hoping to learn from this workshop? \\\n", + "0 Machine learning/deep learning toolkits; Parti... \n", + "1 General-purpose data analysis toolkits; Machin... \n", + "2 Particle physics analysis tools (other than RO... \n", + "3 General-purpose data analysis toolkits; Machin... \n", + "4 General-purpose data analysis toolkits; Machin... \n", + ".. ... \n", + "400 Python fundamentals (how to program in Python)... \n", + "401 General-purpose data analysis toolkits; Machin... \n", + "402 General-purpose data analysis toolkits; Machin... \n", + "403 General-purpose data analysis toolkits; Machin... \n", + "404 General-purpose data analysis toolkits; Machin... \n", + "\n", + " Professional life: What best describes your occupation? \\\n", + "0 I research particle physics (experiment, theor... \n", + "1 I research particle physics (experiment, theor... \n", + "2 I develop/maintain software \n", + "3 I research particle physics (experiment, theor... \n", + "4 I research particle physics (experiment, theor... \n", + ".. ... \n", + "400 I research particle physics (experiment, theor... \n", + "401 I research particle physics (experiment, theor... \n", + "402 I research particle physics (experiment, theor... \n", + "403 I'm studying physics but not doing research \n", + "404 I research particle physics (experiment, theor... \n", + "\n", + " Professional life: What best describes the stage of your professional career? \\\n", + "0 Grad student involved in research \n", + "1 Grad student involved in research \n", + "2 Grad student involved in research \n", + "3 Grad student involved in research \n", + "4 Postdoc/fellow/temporary research position \n", + ".. ... \n", + "400 Research or management at a laboratory/college... \n", + "401 Grad student involved in research \n", + "402 Postdoc/fellow/temporary research position \n", + "403 Undergraduate student \n", + "404 Postdoc/fellow/temporary research position \n", + "\n", + " Professional life: If you're involved in computing, what do you do? \\\n", + "0 Studies that improve the quality of reconstruc... \n", + "1 Studies that improve the quality of reconstruc... \n", + "2 Developing libraries for data analysts (i.e. \"... \n", + "3 Software the simulates physics (e.g. Monte Car... \n", + "4 NaN \n", + ".. ... \n", + "400 Software that controls/reads data from an expe... \n", + "401 Statistical analysis of reconstructed physics ... \n", + "402 Software that controls/reads data from an expe... \n", + "403 Software that controls/reads data from an expe... \n", + "404 Software that controls/reads data from an expe... \n", + "\n", + " Professional life: If you write software, what is its lifespan and scope? \\\n", + "0 Deployed widely \n", + "1 Used in small group \n", + "2 Deployed widely \n", + "3 Mostly use-once \n", + "4 Used in small group \n", + ".. ... \n", + "400 I don't write software \n", + "401 I don't write software \n", + "402 NaN \n", + "403 Used in small group \n", + "404 NaN \n", + "\n", + " Professional life: Are you associated with one or more experimental or theoretical collaborations? (E.g. ATLAS, CMS, DUNE, USQCD...) \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 CMS \n", + ".. ... \n", + "400 CMS \n", + "401 No \n", + "402 NaN \n", + "403 CMS \n", + "404 CMS \n", + "\n", + " ... \\\n", + "0 ... \n", + "1 ... \n", + "2 ... \n", + "3 ... \n", + "4 ... \n", + ".. ... \n", + "400 ... \n", + "401 ... \n", + "402 ... \n", + "403 ... \n", + "404 ... \n", + "\n", + " Particle physics ecosystem: hepunits: https://github.com/scikit-hep/hepunits \\\n", + "0 NaN \n", + "1 Don't know what it is \n", + "2 Never \n", + "3 Never \n", + "4 Don't know what it is \n", + ".. ... \n", + "400 Don't know what it is \n", + "401 NaN \n", + "402 Never \n", + "403 NaN \n", + "404 Never \n", + "\n", + " Particle physics ecosystem: particle: https://github.com/scikit-hep/particle \\\n", + "0 NaN \n", + "1 Don't know what it is \n", + "2 Never \n", + "3 Never \n", + "4 Don't know what it is \n", + ".. ... \n", + "400 Regularly \n", + "401 NaN \n", + "402 Never \n", + "403 NaN \n", + "404 Never \n", + "\n", + " Particle physics ecosystem: pyjet: https://github.com/scikit-hep/pyjet \\\n", + "0 NaN \n", + "1 Don't know what it is \n", + "2 Never \n", + "3 Never \n", + "4 Don't know what it is \n", + ".. ... \n", + "400 Regularly \n", + "401 NaN \n", + "402 Never \n", + "403 NaN \n", + "404 Never \n", + "\n", + " Particle physics ecosystem: Astropy: https://www.astropy.org \\\n", + "0 NaN \n", + "1 Don't know what it is \n", + "2 Never \n", + "3 Never \n", + "4 Don't know what it is \n", + ".. ... \n", + "400 Through dependencies only \n", + "401 NaN \n", + "402 Never \n", + "403 NaN \n", + "404 Never \n", + "\n", + " Particle physics ecosystem: Geant4Py: https://nusoft.fnal.gov/larsoft/doxsvn/html/md_geant4.10.03.p03_environments_g4py_README.html \\\n", + "0 NaN \n", + "1 Don't know what it is \n", + "2 Never \n", + "3 Never \n", + "4 Never \n", + ".. ... \n", + "400 Regularly \n", + "401 Through dependencies only \n", + "402 Never \n", + "403 NaN \n", + "404 Never \n", + "\n", + " Particle physics ecosystem: luigi: https://luigi.readthedocs.io \\\n", + "0 NaN \n", + "1 Don't know what it is \n", + "2 Never \n", + "3 Never \n", + "4 Don't know what it is \n", + ".. ... \n", + "400 Through dependencies only \n", + "401 NaN \n", + "402 Never \n", + "403 NaN \n", + "404 Never \n", + "\n", + " Particle physics ecosystem: Rucio: https://rucio.readthedocs.io \\\n", + "0 NaN \n", + "1 Don't know what it is \n", + "2 Never \n", + "3 Never \n", + "4 Don't know what it is \n", + ".. ... \n", + "400 All the time \n", + "401 NaN \n", + "402 Through dependencies only \n", + "403 NaN \n", + "404 Never \n", + "\n", + " Particle physics ecosystem: Gaudi: https://github.com/lgiordani/gaudi \\\n", + "0 NaN \n", + "1 Through dependencies only \n", + "2 Never \n", + "3 Through dependencies only \n", + "4 Don't know what it is \n", + ".. ... \n", + "400 Through dependencies only \n", + "401 NaN \n", + "402 Never \n", + "403 NaN \n", + "404 Never \n", + "\n", + " Particle physics ecosystem: Condor: https://htcondor.readthedocs.io/en/latest/apis/python-bindings \\\n", + "0 NaN \n", + "1 Through dependencies only \n", + "2 Never \n", + "3 Never \n", + "4 Regularly \n", + ".. ... \n", + "400 Through dependencies only \n", + "401 NaN \n", + "402 Through dependencies only \n", + "403 NaN \n", + "404 Regularly \n", + "\n", + " Particle physics ecosystem: Do you regularly use any other packages that weren't listed here? \n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + ".. ... \n", + "400 NO, \n", + "401 NaN \n", + "402 NaN \n", + "403 NaN \n", + "404 NaN \n", + "\n", + "[405 rows x 105 columns]" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas\n", + "df = pandas.read_csv(\"survey-results.csv\")\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df[\"Professional life: What best describes your occupation?\"].value_counts(ascending=True).plot.barh();" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df[\"Professional life: What best describes the stage of your professional career?\"].value_counts(ascending=True).plot.barh();" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "languages = [\n", + " \"C or C++\",\n", + " \"Python\",\n", + " \"Matlab\",\n", + " \"Javascript or other browser-based (e.g. TypeScript, CoffeeScript)\",\n", + " \"Verilog, VHDL, or other hardware description language\",\n", + " \"R\",\n", + " \"Java or other JVM-based (e.g. Kotlin, Scala, Clojure)\",\n", + " \"Perl\",\n", + " \"PHP\",\n", + " \"C#\",\n", + " \"Julia\",\n", + " \"Go\",\n", + " \"Swift\",\n", + " \"Rust\",\n", + " \"Ruby\",\n", + " \"Haskell\",\n", + " \"Raw assembly or machine code\",\n", + " \"Other, not listed above\",\n", + "]\n", + "def explode(responses):\n", + " responses = [response.strip() for response in responses.split(\";\")]\n", + " return [1.0 if language in responses else 0.0 for language in languages]\n", + "exploded = df[[\"Computing and programming: Which of the following languages do you use regularly (i.e. more than 10% of your work)?\"]].fillna(\"\").applymap(explode)\n", + "indicator = pandas.DataFrame(exploded.iloc[:, 0].tolist(), columns=languages)\n", + "indicator.div(indicator.sum(axis=1), axis=0).sum(axis=0).iloc[::-1].plot.barh(figsize=(5, 7));" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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H4vnzZsn7Li+ffv2Fbm5uTWrVCrFmDFj6g3lyVA9NrUN+uWYl5dnVVRUZJWTk6NUKpWK7OxswcGDB+/pFZCVlWXzxBNP3NZ9TkpKKpHL5crs7GzFli1b+l29epVrrP7rGzVqVH12drZKqVQqJk6cWL1y5cp7XnsxtM23bt3injt3Lv/999+vNJbG8uXLnXr27KkpKChQFBQUKMaNG1dn6nxoqt4aOp91zOesWbM8P/jgg8sFBQUKmUzW+H//93/OkydPrpkxY8b1efPmVer2v86cOXOqf/75517Nzc0M0Z1eH7GxsVWm6rwp+mXS8TulUml95MiRwl9//VW1bt06Z127p388Gmsb1q1b59i7d29NQUGB4r333itXKBTt56bGxkaOn59fY05OjurZZ5+tX7Zs2bW8vDxlYWGhvLGxkbNr16723l6WlpbazMzM/NmzZ1+Pjo72/vLLL0tVKpU8OTm5z9WrV7lERGVlZVZLly69plKp5MXFxVZJSUkOmZmZqtWrV19evXq1U8ftIiKqrKy0yMzMVO3du7fwn//8p0vbvjR5DUBENHv27Jt+fn4NiYmJF1UqlcLGxuauH6/oyrndVBv2xBNP3D579uxd6128eLGzu7t785NPPmnw+tAYo10sAQAA4NHIyMiwnTRpUjWPxyM3Nzf10KFD60+cOCHo1auX1t/f/7aHh0crEZG7u3vz2LFja4iIAgMDG9PT09tfeYmKiqrmcrnk7+/f7Obm1pydnf3A72D7+/vf9vLyaiUikslkDcXFxZa2trYaNze3ZolE0kJENGXKlOqvvvrqnqBBS0sLM2fOHA+FQmHN4XDo0qVL/M7SdXV1bfb3928mIoqJiakylC4RUVhYWG3//v01RETjxo27eezYMZvJkyffcnJyann66advmyrLjIwMmxdffPEml8sld3d39bBhw+r0054xY0b7TUxWVpb1u+++61JXV8e9ffs2NyIiokb33bhx425xOBwaPHhwg4ODQ2tISEgjEZFIJGosLi7mh4aGNlpYWLATJ06sbdvORj6fr+Xz+WxISEjjlStXDD79Hz169C1ra2vW2tpabW9v33r58mXesWPHbMaOHXur7cKRHTVqVPtTbP0eW51h2f9ed54/f77HwYMHi4mI5s+fX/3+++/f0xNg/vz5NyIjI73ffffda1u3bu0za9asG11d1pjY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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df[[\n", + " \"Computing and programming: Do you *expect* to use Python more or less in the future (as a fraction of your programming time)?\",\n", + " \"Computing and programming: Do you *want* to use Python more or less in the future (as a fraction of your programming time)?\"\n", + "]].apply(pandas.Series.value_counts).loc[[\"Less\", \"About the same\", \"More\", \"Don't know\"]].plot.bar(rot=0).legend(bbox_to_anchor=(1.2, 0.5));" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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f/rT77/22mun3XvvvXXHHXdMufDCC2eMfsYvf/nLKdOmTVs9c+bMVTfeeOPU8847b6tHU9ucOXMe3G677R48/vjjZx155JG2xBjHJnznMgAAAACMS4edu3iQj3/+859/7y677HLvpz/96Secfvrp1x155JE7/M3f/M2slStX1sEHH3znc5/73Hs/+tGP3nj44YfveMIJJzz5gAMOWLbFFlusSpJnPOMZD77yla/85S677LLbjjvueN9uu+22YvT6z33uc+/dfffdV+y00067PfWpT71//vz5dz/a2l73utfd8fGPf3zq/Pnz71ub78zaJVwGAAAAgElixYoVS/rP//3f//3aNccXXHDBNaPnz5kz58FLL730JxtttFEWLlz4hGc961n3rLl20kkn3ZTkptH3fP/7379qzfFXvvKV68eqY+nSpZf3n4+ed+GFF27pQ37jn3AZAAAAABjT9773vel/8id/8tTWWmbMmLHqlFNOuX5dP3O33XbbZdq0aas/+clP3riun8XjI1wGAAAAAMZ04IEH3n3VVVc96g/9rQ1XXnnlj9fn83jsJvwH/QAAAAAAWPuEywAAAAAAdCZcBgAAAACgM+EyAAAAAACd+aDfejJn9iY59a93GHQZAMBYjhl0AQBMDDcPuoDJ67BBF7COTfT3m8wO32v+Wl1v0ZLFj2ba5z73ua0XLFjw9EsuueTKvfba674kueqqqzZ5xStesdM111xz5dlnn73l8ccfv9255557bf99F1100bQbb7xxk0MPPXR5khx99NFP2WKLLVa9733vu/WxlPu+971v27e97W23b7nllquT5EUvetEzvvKVr/x0m222WfVY1mP907kMAAAAAJPIF7/4xZl777333aeddtrMLvcNDw9P/9a3vrXV2qrjk5/85HZ33333r/LJ888//1rB8oZFuAwAAAAAk8Ty5cs3Gh4e3uKzn/3s9V/72tee8Gjvu+++++qDH/zgU775zW8+Ye7cubt+6lOfekKS/PjHP562zz77PHP77bd/1vvf//5t18z/xCc+MfNZz3rWLnPnzt319a9//Q4rV678H+u9//3v3/YXv/jFxi960Yt2fs5znrNzksyePftZN99889Srrrpqkx133HG3Qw89dIeddtppt1e96lU7fv3rX99y7733nrvDDjvsfu65505PkrvuumujQw45ZM7uu+++yy677LLr5z//+a3Xyo/Eo2ZbjPXk+qUPZMGxNwy6DCao2TOXD7oEgAlvzqkrBl0CAAzEERcfPOgSJq3pZ819bDeevWzs8UVLHnsxTBiLFi3aer/99ls+b968+7feeutVF1544fR99933Ef9jd7PNNmvvfOc7fz48PLz55z73uZ8lydFHHz3t2muv3eyiiy66atmyZVN22WWX3f/0T//0tiuvvHLTL3/5yzOHh4d/summm7YjjjjiqSeddNIT3/zmN9+xZr13v/vdvzjxxBO3O//886+eNWvWytHPu/HGGzc744wzrps/f/4N8+bN22XRokVPHB4e/skXvvCFrT/wgQ/M2n///f/fscceO2v//fe/68wzz7z+9ttvnzI0NLTLq171qrtmzJixeu3+ajwUncsAAAAAMEl86UtfmnnYYYf9Mkle+9rX3tl1a4zRDjjggGXTpk1rs2bNWjlz5swHb7rppqnf/va3t7ziiium77HHHrvMnTt31wsvvHDGddddt2mXdWfPnn3/Pvvsc++UKVOy88473/viF7/4ro022ih77733iptuumnTJDnvvPNmfPjDH541d+7cXffdd99n3n///XXttddu8njeh250LgMAAADAJHDLLbdM+c///M8ZV1999bQ3v/nNWbVqVVVVO/HEE296rGtuuummbc3xlClTsnLlymqt1SGHHHLHxz/+8aWPdd1NNtnkV+tutNFG2WyzzdqaZ6xataqSpLWWL3/5y9fuscce9z/W5/D46FwGAAAAgEngtNNOe8JrXvOaO37+859fvnTp0stvueWWH26//fYPfOc739ni0dw/Y8aMVf0f4HsoBx544F1nn332E5YuXTo1SW699dYpV1999f/qKN58881XLV++/DHnk/vvv/9dxx9//HarV4/sgvG9731v2mNdi8dG5zIAAAAADMKiJYvX5+POPPPMJ77jHe+4uX/s1a9+9S9PO+20me9973tveaT7DzrooP/6+7//+1lz587d9e1vf/vNDzVv/vz597373e9e+pKXvGTn1atXZ+ONN24nnHDCz3beeecH+uctWLDg9oMOOminbbfd9sGLL7746q7v86EPfejnRx111FPnzp27a2uttt9++/vPPffca7uuw2NXrbVHnsXjts2see3lb/zmoMtggvJBP4B1zwf9AJisfNBvcHzQ75FV1eLW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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "cols = {x: x.split(\":\")[1].strip() for x in df.columns if x.startswith(\"Python ecosystem:\") and \"?\" not in x}\n", + "order = ((df[list(cols)] == \"Don't know what it is\") | (df[list(cols)] == \"Never\")).sum(axis=0).sort_values(ascending=False).index.tolist()\n", + "pkgs = df[order].rename(columns=cols).apply(pandas.Series.value_counts).T[[\n", + " \"Don't know what it is\", \"Never\", \"Through dependencies only\", \"Regularly\", \"All the time\"\n", + "]].fillna(0)\n", + "pkgs.insert(0, \"No selection\", pkgs.sum(axis=1).max() - pkgs.sum(axis=1))\n", + "pkgs.plot.barh(stacked=True, width=0.9, figsize=(20, 20), color=[\"#5e79e0\", \"#798bd1\", \"#992cc7\", \"#f5f518\", \"#ffa640\", \"#ff5a30\"]).legend(bbox_to_anchor=(1.2, 0.5));" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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+gEAAAAAPGXU7986A92rqk0y9IX+i5cTYDylVdXuSf57a+0NK+o7Zatd2l8c9Z0OqoI1Y+rkRf0uAYDVMO3Uxf0uAYB13BGXHdzvEjZIE88cdfvKtePs+0ZvP31udzV0pKrmtNYG+l0HbKisoKCveht0/0OGVj1siKYkeX+/iwAAAAAA6Npor7GBTrXWvr/iXk9NrbUf9LsGAAAAAIB+sIICAAAAAADonIACAAAAAADonIACAAAAAADonIACAAAAAADonIACAAAAAADonIACAAAAAADoXLXW+l0DsBIGBgba4OBgv8sAAAAAeMqoqjmttYF+1wEbKisoAAAAAACAzgkoAAAAAACAzo3rdwHAyll466M58r039bsMeEqYOnlRv0sAgCTJtFMX97sEgKeMIy47uN8lrJKJZ87odwnJ2fetWv/T566dOoANlhUUAAAAAABA5wQUAAAAAABA5wQUAAAAAABA5wQUAAAAAABA5wQUAAAAAABA5wQUAAAAAABA5wQUAAAAAABA5wQUAAAAAABA5wQUAAAAAABA5wQUAAAAAABA5wQU0IGqemA57VtU1WVVNbeqZnVdFwAAAABAv4zrdwGwgXtpkgWttSP7XQgAAAAAQJesoIDVUFXTqmpBVZ1aVVdU1der6i+q6lvD+rysqr457PxDVTWvqi6tqi2rarck/5LkFVV1eVVt0o9nAQAAAADoBwEFrL4XJDm5tbZLkt8mmZlkh6raonf9qCSn9I6fluTS1tquSX6U5M2ttcuTfCDJGa213VprD428QVUdXVWDVTX48OJ71vbzAAAAAAB0RkABq+/m1tpPesdfTvLiJKclOaKqNkuyd5Lv9a4/muTs3vGcJNNW5gattZNbawOttYEJEyevscIBAAAAAPrNHhSw+too56ck+U6Sh5N8rbW2pHftsdbasv6Px789AAAAAGADZwUFrL7nVtXevePDklzcWrstyW1Jjk/yxX4VBgAAAACwrhNQwOr7RZIjq+qKJJOTfLbXfnqGXv80v2+VAQAAAACs47xmBlbf0tbaMaO075Pk88MbWmuThh1/PcnXe8dfjJUWAAAAAMAGSEABa1BVzUnyYJJ39LsWAAAAAIB1mYACVkNrbWGSnUZp36P7agAAAAAA1j/2oAAAAAAAADonoAAAAAAAADonoAAAAAAAADonoAAAAAAAADonoAAAAAAAADonoAAAAAAAADonoAAAAAAAADpXrbV+1wCshIGBgTY4ONjvMgAAAACeMqpqTmttoN91wIbKCgoAAAAAAKBzAgoAAAAAAKBz4/pdALByFt76aI587039LgM2GFMnL+p3CQDQqWmnLu53CQDrtCMuO7jfJazQxDNnrN0bHHbB2p0f2OBYQQEAAAAAAHROQAEAAAAAAHTOK54AAAAAANZxc+bMeda4ceNmJ9kp/vCc9cPSJFctWbLkTXvssccdo3UQUAAAAAAArOPGjRs3+9nPfvYOW2yxxb1jxoxp/a4HVmTp0qV15513zvz1r389O8mrRusjaQMAAAAAWPfttMUWW/xWOMH6YsyYMW2LLbZYlKFVP6P36bAeAAAAAABWzxjhBOub3v+zy80hBBQAAAAAAEDn7EEBAAAAALCeOfK9N+2xJuc79cRt56yoT1Xt8aY3vek3n//8529Jkg984ANbPvDAA2P/1//6X7etyVqWmThx4u6LFy+eu6rjTjvttM1mzpz58B577PFwkrztbW/ber/99rv/oIMOun/NV8mTIaAAAAAAAGCFxo8f37773e8+8/bbb//1VltttaTf9SzPt7/97c2WLFmyaFlA8fGPf3ytBCg8eV7xBAAAAADACo0dO7b91V/91Z0nnnjiliOvXXvtteP33nvv6dOnT5+59957T7/uuuvGj+xzzjnnTJoxY8bMGTNmzNxhhx1m3nvvvWOS5P3vf/+WO+200w7Tp0+f+fa3v33r0e69vD6f+tSnNp8+ffrMF7zgBTMPOuig5/3gBz942vnnn7/Z8ccfv82MGTNmXn311Ru/5jWvmXbKKac8M0nOPPPMTXfYYYeZ06dPn3nooYdOe+ihhypJpk6duvPb3/72rWfOnLnD9OnTZ86dO3fCmvrcWD4BBaxFVfXdqtpsBX3e21U9AAAAAPBkvPOd77zjm9/85uS777577PD2Y4455rmHH3743ddee+381772tXcfe+yxzxk59mMf+9izP/GJT9y0YMGC+ZdeeumCSZMmLf3mN7/59Ouvv37CFVdc8Ytf/OIX8y+//PKJ3/ve9yYNH7e8PoODgxM++tGPbnXRRRdde80118w/6aSTfvWyl73swf333/++D37wg7csWLBg/o477vjIsnkWL15cb3nLW553xhln3HDttdfOX7JkST7ykY9ssez6lClTlsyfP/8X/+W//Jc7P/zhD/9RCMOaJ6CAtai19orW2n0r6CagAAAAAGC9MHny5KWHHnro3R/+8IefNbx97ty5Tzv66KPvSZJjjz32njlz5kwaOXavvfZ64LjjjnvOBz/4wWfdddddYzfaaKOce+65T//Rj3709JkzZ87ccccdZ95www0TFixY8AerF5bX5/vf//7TDzzwwHuXvW5qyy23fPyJap83b96EbbbZ5pFddtnlkSR54xvfePfFF1+86bLrhx9++L1J8sIXvnDxzTffvPHqfkasPAEFrIKqmlZVC6rq1Kq6oqq+XlV/UVXfGtbnZVX1zd7xwqqa0js+oqp+WlWXV9VJVTW2qj6cZJNe2+l9eiwAAAAAWGnvec97fvOVr3xlyoMPPrhK3y+feOKJv549e/ZNDz300JgXvehFO8ydO3dCay1ve9vbbl+wYMH8BQsWzP/Vr3511dvf/va7ho9bXp/WWqqqrez9W3virhMmTGhJMm7cuLZkyZJalWdj9QgoYNW9IMnJrbVdkvw2ycwkO1TVsuVgRyU5ZfiAqtohyWuTvLi1tluSx5O8vrX27iQPtdZ2a629fuSNquroqhqsqsGHF9+zFh8JAAAAAFbOlltu+fiBBx5471e+8pUpy9p23333B2fPnv3MJDnppJMmDwwMPDBy3NVXX73xC1/4woc+9KEP/XrnnXd+8Kqrrprw8pe//LennXbalEWLFo1JkhtvvHGjW2+9ddzwccvr8+d//ue/Peussyb/+te/Hpskv/nNb8YmyaRJkx7/7W9/+0fffe+2224P33rrreOvuuqqjZPkS1/60uazZs26f819MqyqcSvuAoxwc2vtJ73jLyf5uySnJTmiqk5JsneSvxox5qVJ9kjys6pKkk2S3LGiG7XWTk5ycpJM2WqXlU6DAQAAAHhqO/XEbef08/7ve9/7fn3qqaf+bv+Gz372s7868sgjp/3rv/7rszfffPMlX/rSlxaOHPMv//Ivz7rkkkuePmbMmDZ9+vSHDjnkkEWbbLJJu/rqqyfsueeeM5Jk4sSJS08//fQbp06dumTZuFe/+tW/Ha3PwMDAw+94xztunzVr1owxY8a0nXbaafE3vvGNha9//evvOfbYY6d97nOf2/LrX//6DcvmmThxYvvc5z638NBDD33+448/nl133XXxcccdd+da/aB4QrWiZS3A71XVtCQXtda27Z3/WZK3JvmbJN9JMjvJ81pr7+pdX5hkIMlhSbZurb1nlDkfaK390Tv5Rpqy1S7tL476zpp5EGCFpk5e1O8SAKBT005d3O8SANZpR1x2cL9LWKGJZ85Yuzc47IK1O38fVNWc1tpAv+tYGfPmzVu466673rXinrBumTdv3pRdd9112mjXvOIJVt1zq2rv3vFhSS5urd2W5LYkxyf54ihj/l+SQ6rqWUlSVZOratvetceqaqO1XDMAAAAAwDpFQAGr7hdJjqyqK5JMTvLZXvvpGXr90/wR/Vuv7fgk5/XG/SDJVr3rJye5wibZAAAAAMCGxB4UsOqWttaOGaV9nySfX3ZSVWOTbJqhjbTTWjsjyRkjB7XW/j7J36+dUgEAAAAA1k0CClgDqmpOkgeTvGNY89VJZrfWHutPVQAAAAAA6y4BBayC1trCJDuN0r7HKG1reWcqAAAAAID1lz0oAAAAAACAzllBAQAAAACwnnnvR6/4ozd6PBknHrfLnBX1GTt27B7bb7/9Q0uWLKmxY8e2ww477O73v//9vxk7duxq3XPq1Kk733rrrVfeddddY2fPnj353e9+950j+1xzzTXjX/nKV25/3XXXXb1aN1lLXvOa10x75Stfueioo466d2X6P9EzJsnuu+8+Y+7cuQuuueaa8RdccMGkY4455p6RfRYuXLjRMccc85xzzz33l0+2/nWFFRQAAAAAAKzQxhtvvHTBggXzr7/++qt/+MMfXnveeec947jjjtv6yc579913j/3CF77wrDVR47pqRc84d+7cBUly3XXXbXzGGWdMHq3PtGnTHnsqhROJgAIAAAAAgFU0derUJbNnz154yimnPGvp0qVZvHhxHXLIIdOmT58+c4cddpj5ne98Z9Mk+cQnPrH5AQcc8PxZs2Ztv+222+50zDHHbLNsjmc+85lLkuQd73jHNjfffPPGM2bMmPmWt7xlm+Xdc/78+eN32GGHmRdddNHEJ5r3pJNOmjx9+vSZ22+//Y7HHnvs1CSZPXv2M9/0pjdtkyT/9E//9Kxtttlm5yS5+uqrN95jjz1eMPw+t95667gdd9xxhyT593//902qao/rrrtufJI85znP2en+++8fkyQXXXTRpN13333GNttss/Mpp5zyzCRZtGjRmL333nv6zJkzd5g+ffrML3/5y5utzDNOnDhx9yR53/veN3VwcHDSjBkzZv7jP/7jHwQa11xzzfjtt99+xyQZHBycsPPOO+8wY8aMmdOnT5955ZVXbrxy/+XWLV7xBAAAAADAKps5c+ajS5cuza233jpu9uzZmyfJtddeO3/u3LkTXvGKV2x/ww03XJUk8+fPnzhv3rz5m2yyydLttttup+OOO+4322233WNXXXXVL5LkYx/72C2vfOUrN1mwYMH85d1r3rx5G7/uda97/he+8IUbX/SiFz00b968TUabd9y4cTnhhBOmzpkz5xdbbLHFklmzZk0/7bTTNjvggAPu//jHP/7sJPnJT34yabPNNlty4403bvTDH/5w0l577fXA8HtNnTp1ySOPPDLmnnvuGXPBBRdM2nHHHReff/75k1prD2y++eZLNt1006VJ8pvf/GajwcHBBZdffvmEgw8+eLujjjrq3okTJy4955xzrp88efLS22+/fdx//I//ccbhhx9+38o8Y5J86EMfuvVjH/vYlhdccMH1T9Tvk5/85BZ//dd//Ztjjz32nocffriWLFmyMv/J1jkCCgAAAAAAVktrLUlyySWXTHrrW996R5LsvvvuD2+99daPXnnllROSZJ999vnt5ptv/niSbLfddg/fcMMNG2+33XaPrew97rnnnnEHHXTQdl/72tduGBgYeHhZ+2jz3nnnneP22muv+7feeuslSfLa1772nosuumjSG97whvsWL1485t577x1z2223jT/00EPvPu+88za9+OKLJ7361a++b+Q9BwYGHjj//PMnXXzxxZu+613vuv3cc899Rmstw8OMV73qVfeNHTs2e+yxx8N33333RkmydOnSetvb3rbNpZdeOmnMmDG54447xt9yyy1r/Hv4vffe+8GPfvSjW91yyy3jX/e619278847P7Km79EFAQWsJ6ZNHZ9TT9y232UAAPBUdVy/CwBY193e7wJW7LB+F8CGZv78+ePHjh2bqVOnLlkWVIxm/Pjxv7s4duzY9thjj9Wq3GfTTTd9fKuttnr0wgsvnDQ8oBht3ieqY4899njw05/+9JTnP//5D7/kJS954OSTT54yZ86cSZ/5zGduGdl3n332eeBHP/rRprfccsv417/+9fd97GMfe3aSduCBBy5a1mfChAm/u9my+5500kmT77777nFXXnnlLzbeeOM2derUnR966KE1vtXCMcccc8+s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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "cols = {x: x.split(\":\")[1].strip() for x in df.columns if x.startswith(\"Particle physics ecosystem:\") and \"?\" not in x}\n", + "order = ((df[list(cols)] == \"Don't know what it is\") | (df[list(cols)] == \"Never\")).sum(axis=0).sort_values(ascending=False).index.tolist()\n", + "pkgs = df[order].rename(columns=cols).apply(pandas.Series.value_counts).T[[\n", + " \"Don't know what it is\", \"Never\", \"Through dependencies only\", \"Regularly\", \"All the time\"\n", + "]].fillna(0)\n", + "pkgs.insert(0, \"No selection\", pkgs.sum(axis=1).max() - pkgs.sum(axis=1))\n", + "pkgs.plot.barh(stacked=True, width=0.9, figsize=(20, 20), color=[\"#5e79e0\", \"#798bd1\", \"#992cc7\", \"#f5f518\", \"#ffa640\", \"#ff5a30\"]).legend(bbox_to_anchor=(1.2, 0.5));" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj8AAAGbCAYAAAAryfFSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdebxVVf3/8ddbMMQJM80vDnkdQBNRFCTnIc0GcyoLh0qyNM0y7auFmWZWhkOZQ2lIipap4ZRKKmoiiKIyXyTTn0KD9k0txQkn+Pz+WOvI5nCGC9zLBff7+XjwuPusvfban732vpzPWWsdUERgZmZmVhYrdXYAZmZmZsuSkx8zMzMrFSc/ZmZmVipOfszMzKxUnPyYmZlZqXTt7ADMrNzWWWedaGlp6ewwzOw9ZtKkSS9ExLq19jn5MbNO1dLSwsSJEzs7DDN7j5H0t3r7PO1lZmZmpeLkx8zMzErFyY+ZmZmVipMfMzMzKxUnP2ZmZlYqTn7MzMysVJz8mJmZWak4+TEzM7NScfJjZmZmpeLkx8zMzErF/72FmXWq1mfm0DJkVGeHYWbLsdlD92vX9jzyY2ZmZqXi5MfMzMxKxcmPmZmZlYqTHzMzMysVJz9mZmZWKk5+zMzMrFSc/JiZmVmpOPkxMzOzUlnukx9J8yRNlTRD0khJqy7Gsf0kfarw+gBJQ5oc8+rSxFtoZ4ykAUvZxvqSbmiPeNrDkl6TpOGStmpj3YPaWrfO8SMkHbIY9Q+SdMbixNQe97aq/e8VtlskzWivtqvOU/xduk3SWoV9fST9WdITkp6UdLokFfYfJGm6pMcltUo6KJf/Mrc5U9LcvD1V0iGSzpf00Y64FjOzpbHcJz/A3IjoFxFbA28Bx7blIEldgX7Au8lPRNwaEUM7Jsz2FxHPRkSb38iXVxHx1YiY2cbqBwFLnPwsge8Av2pSp91iktSlRvH3apR1hOLv0n+B43NM3YFbgaER0RvYFtgZ+Hrevy1wPnBgRGwJHACcL2mbiDg+Iiq/Z0/l9vtFxA3AxUDDDxtmZp1hRUh+isYBm0vaX9LDkqZIukfSegCSzpQ0TNJo4GrgLGBQ/iQ6SNJgSZfkuutJulnStPxn5+qTSTpF0qP5E+8PawUk6VVJP5M0WdK9ktYt7P6cpEfyp+ndcv1xkvoVjh8vaRtJexQ+NU+RtEZxFEBSl/xJujXH881cPjR/6p4u6fwa8Q2U9GBu80FJW+TywZJuknRn/qR/buGYSyVNlPRYreuW9BVJFxReHy3p55JWkzQq9+cMSYPy/jGSBuRrGJH3tUo6qardnUlvrOflfthMafRuQr6+myW9P9etWV7VXrO+6Q28GREv5Ncb53s4Pf/8UK2YGtzbLpLOKzwzX8vle0q6T9LvgdbqGIHuue1rcnEXSZfn/h+dk5NKPz+a+/dG5VHQ3KcX5fv7tNo28vUQsEHePhwYHxGjASLideAbLEhcTgbOjohZef8s4KfAKY1OEBF/Az4g6X/aEI+Z2TKzwiQ/SiM5nyS9eTwA7BgR2wHXkT69V/QnfUI9HDgDuD5/Er2+qsmLgPsjYltge+CxqvPtC/QCBpJGkPpL2r1GaKsBkyNie+B+4AeFfV0jYiBwYqF8ODA4n6M30C0ippPeYCqfoncD5lad5xhgE2C7iNgGuEbS2sDBQJ9c9uMa8T0O7J776gzg7MK+fsAgoC8pSdwol58WEQOAbYA9JG1T1eZ1wAGSVs6vvwxcCXwCeDYits2jC3dWHdcP2CAito6IvvmYd0XEg6QRiFPyPXuKlMR+N19fa6Ef65UD0Ma+2QWYXHh9CXB1pX+Bi+rEBLXv7VeAORGxA7ADcLSkTfK+gaR+XWgEKSKGsGBE5ohc3Av4ZUT0AV4CPpvLb4qIHfIz+5d8voqewK7Ap4GGo5tKo0975+sC6ANMqorrKWB1SWvW2g9MzOXNTCb1c3UMx+QEe+K81+e0oRkzs/azIiQ/3SVNJf1l+3fgN8CGwF2SWkmfPot/Cd8aEdWJQy0fBS4FiIh5EVH9N/C++c8U0l/gW5LelKrNByqJ1e9Ib0AVN+Wfk4CWvD0S+HROHI4CRuTy8cDPJZ0ArBUR71SdZx/gskp5RPwXeBl4Axgu6TPA6zXi6wGMzCNIF7BwX90bEXMi4g1gJrBxLv+8pMn52vtQNeUTEa8Bf87XsSWwckS0kpKQfSSdI2m3Gn36NLCppIslfSLHX5ekHrkv7s9FVwG71yuvOrwtfdMTeL7weifg93n7tyx8L6vVurf7Al/Kz+vDwAdY8Mw8Uhk5aYNZETG1RvtbK40ctgJHsPC9vCUi5ufpxfXqtFv5XfoPsDZwdy4XEHWOiTr7Gx1T9Byw/iKNRgyLiAERMaDLqj3a0IyZWftZEZKfyqfifhHxzYh4i7SW4JI8evA1YJVC/dfa6bwCflo49+YR8Zs2HFd8Q3gz/5wHdIV3pxTuBg4EPk9+s81rkb4KdAcm5KSiOp6F3mxyIjQQuJG0LqV6pAXgR8B9eSRmfxbuqzcL2/OArnmk4mRg7zwCMqrqmIrKCFZl1IeIeII08tYK/FRVC4kj4kXSepIxpPUmw2u02y7a2DdzqX1t7zbTYN8i95Z0j75ZeGY2qUwlsXjP5SL3JW+PAL6Rn/sfUv9eitrm5pHFjYH3kdf8kEY9F1rALWlT4NWIeKXWftJoaVvWca3CoqOYZmadakVIfmrpATyTt49sUO8VYI06++4FjoN312qsWbX/LuAoSavnOhtI+mCNdlYCKmssDidNyTUznDTt9mgewUHSZhHRGhHnkEa5qpOf0cCxefoPSWvn2HpExJ9I0y/9WFSxrwa3IbY1SW/Uc5TWUn2yVqWIeBjYiHTN1+aY1gdej4jfkRbIbl88RtI6wEoRcSNwevX+7N17lkeOXqysqQG+SJqqrFleda629M1fgM0Lrx8EDs3bR7DgXjZ6joruAo6rTAdK6i1ptTYc93ZhCrGRNYB/5bpHNKtcT+6/E4CTc1vXALtK2ifH3Z30fFbWgZ0PnCqpJe9vIS3S/lkbTtcb6JBvr5mZLamuzassl84kTeU8A0wgrYWp5T5gSB7q/2nVvm8BwyR9hfTp+jjSIlAAImK0pA8DDyl94/dV4AukYfyi14A+kiYBc0hraBqKiEmSXmbhNS8nStorxzITuIM0LVMxnPRGMl3S28DlpFGNP0pahfRpf6EFxNm5wFWSvk2aqmoW2zRJU0if9p8mTcfV8wegXx7RgbR26DxJ84G3ycllwQbAlZIqSfepNdq8Drg8T/8dQkpuL8uLe58mjTTRoLxiDZr3zVjgZ5IUEUFKCK6QdAppOqzSZnVM9QwnTVFNVnponieNOjUzjHRfJwOnNah3Omk67W+k0bW2JGQ1RcQUSdOAQyPit5IOBC6W9EugC2na75Jcd6qk7wK35WTpbeA7ham5mnLdzUnJvJnZckPp73xbUpJejYjVF/OY9UlTP1tGxPwOCWwZkHQ7cEFE3NvZsSwpSRcCt0XEPZ0dy3uNpIOB7SPi9Eb1uvXsFT2P/MUyisrMVkSzh+632MdImpS/vLOIFXXaa4Ul6UukT++nraiJj6S1JD1BWkOywiY+2dlAm//hTFssXWnb1JiZ2TK1ok57LTcWd9QnIq4mfU17hRURL5Gm4FZ4EfFvFnzl29pRRIzs7BjMzGrxyI+ZmZmVipMfMzMzKxUnP2ZmZlYqTn7MzMysVLzg2cw6Vd8NejBxCb7Gama2pDzyY2ZmZqXi5MfMzMxKxcmPmZmZlYqTHzMzMysVJz9mZmZWKk5+zMzMrFSc/JiZmVmpOPkxMzOzUnHyY2ZmZqXi5MfMzMxKxcmPmZmZlYqTHzMzMysVJz9mZmZWKk5+zMzMrFSc/JiZmVmpOPkxMzOzUnHyY2ZmZqXi5MfMzMxKxcmPmZmZlYqTHzMzMysVJz9mZmZWKk5+zMzMrFSc/JiZmVmpdO3sAMys3FqfmUPLkFGdHYbZe9Lsoft1dgjLJY/8mJmZWak4+TEzM7NScfJjZmZmpeLkx8zMzErFyY+ZmZmVipMfMzMzKxUnP2ZmZlYqTn7MzMysVJz8LCOS1pP0e0lPS5ok6SFJB3diPIMlXdJZ5+8okmZLWqdJne8tq3hqnLtF0owlOG59STcsRv2lukZJr+afe0q6vcb+AyQNydsHSdpqac5nZrYsOflZBiQJuAUYGxGbRkR/4FBgww4+7zL/F7w745xLoNOSnyUVEc9GxCGLcUiHXmNE3BoRQ/PLgwAnP2a2wnDys2x8FHgrIi6rFETE3yLiYgBJXSSdJ+lRSdMlfS2X7ylpjKQbJD0u6ZqcSCGpv6T78yjSXZJ65vIxks6WdD/wLUn7S3pY0hRJ90har1mwkl6V9DNJkyXdK2ndQtsD8vY6kmbn7cGSRkq6DRid4x4r6WZJMyVdJmmlXPcwSa2SZkg6p3D9I3JZq6STcvlmku7M1zhO0pY1Yv2ApNH5+n4NqLDvlnzsY5KOyWVDge6Spkq6pl69Guc5I9+fGZKGFe7DGEnnSHpE0hOSdsvlLTnmyfnPzjXaHCepX+H1eEnbSNojxzc1X9caxREjSX3y+abm56VXVbu1rvHbOfYZkk4s1K1ZXqcPdsjxbJrv+SX5ug4Azsvn20zSCfm+T5d0XaM2zcw6w4rwKf29oA8wucH+rwBzImIHSd2A8ZJG533b5eOfBcYDu0h6GLgYODAinpc0CPgJcFQ+Zq2I2ANA0vuBHSMiJH0V+A7wv03iXQ2YHBH/K+kM4AfAN5ocsxOwTUT8V9KewEDSaMDfgDuBz0h6EDgH6A+8SEqUDgL+AWwQEVvnmNfKbQ4Djo2IJyV9BPgVKZEs+gHwQEScJWk/oJi8HJXj6Q48KunGiBgi6RsR0a9Jvf9UneeSiDgrx/db4NPAbXlf14gYKOlTOZ59gOeAj0XEGzk5uRYYUNXmcGAwcKKk3kC3iJiek8jjI2K8pNWBN6qOOxa4MCKukfQ+oEtxZ/U1SuoPfBn4CCk5fFgpOV6pVnlETKk6HznJqTxzf5e0ez7Xg5JuBW6PiBty3SHAJhHxZuFeVrd3DPledVlz3VpVzMw6jJOfTiDpl8CupNGgHYB9gW0kVaY1egC9gLeARyLin/m4qUAL8BKwNXB3HoDoAvyrcIrrC9sbAtcrjQy9D5jVhhDnF9r4HXBTG465OyL+W3j9SEQ8neO+Nl/v28CYiHg+l18D7A78CNhU0sXAKFJStDqwMzAyXyNAtxrn3R34DEBEjJL0YmHfCVqwrmojUp9WJzVtrbeXpO8AqwJrA4+xIPmp9M8k0v0BWBm4JI/szAN61zjvSOB0SaeQEtcRuXw88PPcPzdFxD8LfQDwEHCapA3z/idrtF20K3BzRLwGIOkmYDdSwlOrvDr5+TApEd03Ip5tci6A6cA1km4hTfcuIiKG5Tbp1rNXtKFNM7N242mvZeMxYPvKi4g4HtgbqHzkFfDNiOiX/2wSEZWRnzcL7cwjJawCHivU7xsR+xbqvVbYvpg0atEX+BqwSjEwpSmnyhTLWXXir7w5vcOCZ2aVqjqvVb2ufkMLClNSC+2IeBHYFhgDHE8aEVkJeKlwjf0i4sNN4ntXHn3aB9gpIrYlvaFXx9ymepJWIY06HZL78fKqOpV7VLk/ACcB/87XNYCUeFZf9+vA3cCBwOeB3+fyocBXge7ABFVN90XE70lTTXOBuyRVj4YtcpmLWV7tX6TRp+3aWH8/4JekEb5JWjHWgZlZiTj5WTb+DKwi6bhC2aqF7buA4yStDCCpt6TVGrT3V2BdSTvl+itL6lOnbg/gmbx9ZPXOiJhXSC7OyMUrAZVRqMOBB/L2bNIbGoX99QyUtInSWp9BuY2HgT2U1gt1AQ4D7lf6dtZKEXEjcDqwfUS8DMyS9Ll8jZK0bY3zjAWOyHU+Cby/cN0vRsTrOXnYsXDM25W+blKvopLovJBHpNqy8LgH8K+ImA98kaqpqYLhwEXAo5WRM0mbRURrRJwDTAQWSn4kbQo8HREXAbcC29Rot3iNY4GDJK2an6uDgXENyqu9REpozs7JYrVXgDVybCsBG0XEfaQp1rWA1etcu5lZp/AnsmUgr7c5CLggT508Txop+W6uMpw0XTJZaX7jedI3aOq191aeIrtIUg/SffwFaYSp2pmkqaNngAnAJm0I+TWgj6RJwBxS8gJwPvAHSV8kJXSNPAQMBfqS3mRvjoj5kk4F7iONOvwpIv6Yk5or8xsnwKn55xHApZK+T5pGug6YVnWeHwLXSpoM3A/8PZffCRwraTopWZxQOGYYMD0fc1SDegBExEuSLgdaSQngo02uHdJI0Y05ebuPRUfGKm1PkvQycGWh+ERJe5FGkmYCdwA9C/sHAV+Q9Dbwf0CtEbt3rzEijpA0Angk7xteWddTr7xGnP+WtD9wh6SjqnZfB1wu6QTStxh/k59LARdExEu12jQz6yyK8HS7LUzSqxGxxJ/W8+jAyRHx6faL6r1J0vqk6b4t8yhR6XTr2St6HvmLzg7D7D1p9tD9OjuETiNpUkRUf9EE8LSXWaeR9CXSVOBpZU18zMw6g6e9bBFLM+qTjx9DGs2wBiLiauDqzo7DzKxsPPJjZmZmpeLkx8zMzErFyY+ZmZmVipMfMzMzKxUveDazTtV3gx5MLPHXcc1s2fPIj5mZmZWKkx8zMzMrFSc/ZmZmVipOfszMzKxUnPyYmZlZqTj5MTMzs1Jx8mNmZmal4uTHzMzMSsXJj5mZmZWKkx8zMzMrFSc/ZmZmVipOfszMzKxUnPyYmZlZqTj5MTMzs1Jx8mNmZmal4uTHzMzMSsXJj5mZmZWKkx8zMzMrFSc/ZmZmVipOfszMzKxUnPyYmZlZqTj5MTMzs1Lp2tkBmFm5tT4zh5Yhozo7DLMV1uyh+3V2CCscj/yYmZlZqTj5MTMzs1Jx8mNmZmal4uTHzMzMSsXJj5mZmZWKkx8zMzMrFSc/ZmZmVipOfszMzKxUnPx0AEkh6beF110lPS/p9iVsb7akdWqUHyBpyNLE2uwc7ak94pV0mKTTapR3aPySBku6pKPaL5znT5LWaod2WiQdvhTH71l5XiWdKenkGnXOkrRP3j5R0qpLHrGZ2bLj5KdjvAZsLal7fv0x4Jn2PklE3BoRQ9u73aUhqUu9fe0U7yeAO5eyjU4jqeG/qh4Rn4qIl9rhVC3AEic/bRERZ0TEPfnliYCTHzNbITj56Th3AJV/c/ww4NrKDkkDJT0oaUr+uUUu7yLpfEmtkqZL+mahvW9Kmpz3bZnrvzsaIWmEpItye09LOqRwvlMkPZrb/GGzwCV9QdIjkqZK+nUloZF0qaSJkh4rtpNHXc6Q9ADwufz6h0sSr6SVJP0qn+P2PBJS2SegHzBZ0gckjc59+GtAbYh/X0kP5bhGSlq9EP85+ZhHJG3epH/WlXRj7tNHJe3S5L4Ozue7DRidX98k6U5JT0o6t6ov18kjN3+RdHnui9GVZFrSDvlePiTpPEkzaoQ5FNgt98FJklaRdGW+H1Mk7ZXbqlne4NqPlnSHpO75Hh4i6QRgfeA+Sffl53iEpBm53ZMatWlmtqw5+ek41wGHSloF2AZ4uLDvcWD3iNgOOAM4O5cfA2wCbBcR2wDXFI55ISK2By4FFpmCyHoCuwKfJr35IWlfoBcwkJQ49Je0e72gJX0YGATsEhH9gHnAEXn3aRExIF/PHpK2KRz6RkTsGhHXLU28wGdIoxZ9ga8COxXqbwdMi4gAfgA8kPvwVuBDjeJXmhL7PrBPjmsi8O1C2y9HxEDgEuAX9fonuxC4ICJ2AD4LDM/l9e4r+TqOjIiP5tf9cpx9gUGSNqpxnl7ALyOiD/BSPhfAlcCxEbFTvr5ahgDjIqJfRFwAHA8QEX1JyfhV+dmsV74ISd8A9gcOioi5lfKIuAh4FtgrIvbK17ZBRGyd272yRlvH5ER64rzX59S5BDOzjuH/2LSDRMR0SS2kN5Q/Ve3uQXqT6QUEsHIu3we4LCLeyW38t3DMTfnnJFKCUMstETEfmClpvVy2b/4zJb9enfSmOrZOG3sD/YFH00AL3YHn8r7PSzqG9Nz0BLYCpud911e1s6Tx7gqMzOX/J+m+Qv1PkEbUAHavtBsRoyS92CT+HXO843P5+4CHCm1fW/h5QZ14K/YBtsrtAKwpaQ3q31eAu6vu570RMQdA0kxgY+AfVeeZFRFT8/YkoEVpPdAaEfFgLv89KXlsZlfgYoCIeFzS34DeDcqrfRH4JynxebvJuZ4GNpV0MTAKGF1dISKGAcMAuvXsFW2I38ys3Tj56Vi3AucDewIfKJT/CLgvIg7OCdKYXC7Sm2Ytb+af86h/394sbKvw86cR8es2xizgqog4daFCaRPSCM4OEfGipBFAcYTgtXaMt559WTD6AbX7ql78+5MSkMPqtB11tmtZCdipOPqRz3Exte8r1O8fqN9H1XW607h/Gql3XFvbm0Ea0dkQmNWoYn4+tgU+ThpZ+jxwVBvPY2bW4Tzt1bGuAM6KiNaq8h4sWAA9uFA+GjhWeVGspLXbIYa7gKMK61s2kPTBBvXvBQ6p1JG0tqSNgTVJb+Bz8ijNJ9shtloeAD6rtPZnPVLiiKQeQNeI+E+uN5Y8HSfpk8D7m8Q/Adilsp5H0qqSiiMcgwo/iyNCtYwGvlF5Ialf3qx3X9tNRLwIvCJpx1x0aJ2qrwBrFF4X+6s3aZrwrw3Kq00BvgbcKmn9RufLU4wrRcSNwOnA9m29PjOzZcHJTweKiH9GxIU1dp0L/FTSeKD47ajhwN+B6ZKm0Q7f1omI0aSpkYcktQI3sPCbYnX9maS1MaMlTQfuBnpGxDTSG+BjpKRu/NLGVseNpOmVGcCvSWul5pC+MXdPod4Pgd0lTSaNCP29SfzPkxKSa3P5BGDLQnvdJD0MfAtotkD3BGBAXnQ8Ezg2l9e7r+3tK8AwSQ+RRm5qLZqZDrwjaVpecPwroEt+Bq4HBkfEmw3KFxERD5BG/0Zp0X9WYBhwR56m3AAYI2kqMAI4FTOz5YjS2lGz5Yek1SPiVUkfAB4BdgF+DAyPiAkdcL7ZwICIeKG92+4Ilf7J20NIyd23OjmsJdatZ6/oeWSzNeZmVs/sofs1r1RCkiblL+kswmt+bHl0e17Y+z7gRxHxf6Rvflmyn6RTSb+/f6ODptjMzN6rnPzYcici9lzG52tZludbWhFxPYt+u87MzNrIa37MzMysVJz8mJmZWak4+TEzM7NScfJjZmZmpeIFz2bWqfpu0IOJ/qqumS1DHvkxMzOzUnHyY2ZmZqXi5MfMzMxKxcmPmZmZlYqTHzMzMysVJz9mZmZWKk5+zMzMrFSc/JiZmVmpOPkxMzOzUnHyY2ZmZqXi5MfMzMxKxcmPmZmZlYqTHzMzMysVJz9mZmZWKk5+zMzMrFSc/JiZmVmpOPkxMzOzUnHyY2ZmZqXi5MfMzMxKxcmPmZmZlYqTHzMzMysVJz9mZmZWKk5+zMzMrFS6dnYAZlZurc/MoWXIqM4Ow+xds4fu19khWAfzyI+ZmZmVipMfMzMzKxUnP2ZmZlYqTn7MzMysVJz8mJmZWak4+TEzM7NScfJjZmZmpeLkx8zMzEqlafIj6TRJj0maLmmqpI80qb9brj9V0k6SPtV+4XYOSetLumEZnOdYSV/qwPZHSDqkRvlwSVvl7dmS1snbry5m+zdI2nRJju0oksZIGlCj/ERJqxZeL1W8kq7NvyMnLU07ua3Bki5Z2naW8Nz92vI7K2lPSbc32L+upDvbNzozs/bR8F94lrQT8Glg+4h4M78pvq9Jm0cA50fElZIGAwOAP7VHsDmmLhExr73aa4uIeBZYJGloT5K6RsRlHXmOeiLiq0vbhqQ+QJeIeLodQloWTgR+B7y+tA1J+h9g54jYeKmj6nz9aIff2Yh4XtK/JO0SEePbJzQzs/bRbOSnJ/BCRLwJEBEv5EQASXtLmiKpVdIVkrpJ+irweeAMSdcCZwGD8ijQoFx3LSX/qYxySPqtpH0ktUgaJ2ly/rNz3r+npPsk/R5oldRF0nmSHs2ftr9WK3hJX5D0SD7/ryV1yeWvSvqJpGmSJkhaL5dvll8/KumsymhAjmtG3h4s6SZJd0p6UtK5hfPtK+mhHPtISavn8v6S7pc0SdJdknrm8jGSzpZ0P/AtSWdKOrmw75wc/xOSdsvlq0r6Q77u6yU9XGdkY6ikmbne+TX2/yiPBK1Ub3SkULenpLG5H2dUYqlyBPDHquN+lvviXknrFvr4ztwX4yRtKWkNSbMkrZzrrKk0ArVyHomYkK/jZknvb9I/3SVdV+kfoHuN6zkBWB+4T9J9hfJaz8S6km7Mz8Sjknapce2jgQ/m/tmt2J+S1pE0O283ena+nK/jfmCXQvn++R5PkXRPIa4zJV0laXTuq89IOlfpd+zOQl82evYW6j9J72PR39mBkh7M539Q0hY1+nOPXH9qrrdG3nVLfi7MzJYrzZKf0cBG+S/HX0naA0DSKsAIYFBE9CWNIB0XEcOBW4FTIuIw4Azg+ojoFxHXA+NJf7H3AZ4GKm+iOwITgOeAj0XE9sAg4KJCLAOB0yJiK+ArwJyI2AHYATha0ibFwCV9OLexS0T0A+ax4C/i1YAJEbEtMBY4OpdfCFyY2322Qb/0y233Jb1RbKQ0KvZ9YJ8c/0Tg2/lN6GLgkIjoD1wB/KTQ1loRsUdE/KzGebpGxEDSKMUPctnXgRcjYhvgR0D/6oMkrQ0cDPTJ9X5ctf9c4IPAlyNifoPrrDgcuCv347bA1Bp1dgEmFV6vBkzOfXF/If5hwDdzX5wM/CoiXgHGAJX/UOdQ4MaIeBu4Gvhuvo7WQjtQu3+OA17P9X9Cjf6JiItI93eviNirEG+9Z+KC/Ex8Fhhe49oPAJ7Kz/m4GvuLaj07PYEfkvrwY8BWhfoPADtGxHbAdcB3Cvs2I/XZgaRRrPvy7+NcYL82PHsL9V9EvMWiv7OPA7vn858BnF3jmk4Gjs/Px275/JB+B2olykg6RtJESRPnvT6nSZeZmbWvhtNeEfGqpP6kv8D2Aq6XNASYAsyKiCdy1auA44FfNDnfOGB34G/ApcAxkjWHbIUAACAASURBVDYA/pvP1QO4RFIlWeldOPaRiJiVt/cFttGC9Ss9gF7ArEL9vUlvfI9KgjQC8Fze9xZQWa8wifSGA7ATcFDe/j2wyIhJdm9EzAGQNBPYGFiL9KY1Pp/vfcBDwBbA1sDdubwL8K9CW9fXOQfATYUYW/L2rqQ3ZCJihqTpNY57GXgDGC5pVOFaAU4HHo6IYxqct9qjwBX5zfSWiKiV/PQEni+8ns+Ca/sdcJPSSNjOwMjcFwDd8s/hpDf2W4AvkxLaHqTk8P5c5ypgZOEctfpnd3LSHBHT6/RPLfWeiX2ArQrxrilpjZywLYlaz846wJiIeD6XX8+CZ39D0u9dT9IzVXzG74iItyW1kp6ryhqbVlJ/NHv2avVftR7AVZJ6AQGsXKPOeODnkq4BboqIf+by50gjbIuIiGGkRJhuPXtFnXObmXWIpv+re15fMwYYk/+SPZLan/zbYiwpSfoQcBppdOIQUlIEcBLwb9LowkqkN/CK1wrbIo0e3NXgXAKuiohTa+x7OyIqf+HOY/H/d/s3C9uV4wXcnUe8FgQh9QUei4id6rT1Wp3y4nmKMapO3XdFxDuSBpISwEOBbwAfzbsfBfpLWjsi/tusrdzeWEm7k0YZfivpvIi4uqraXGCVRs2Q7ulLeYSg+hzjlaYX9yCtHZqRk59GavVP5VyLq94zsRKwU0TMrX1YTe+wYFS1uk9qPTtQP+aLgZ9HxK2S9gTOrG4rIuZLKsY/nwXPZKNnr17/Ff2INKJ0sKQW0t8FC4mIoTnJ/hQwQdI+EfE46doXp9/MzJaJhtNekrbIn/gq+pFGbR4HWiRtnsu/SJraqPYKUJn/JyL+QfqU2ysvjH2ANGReSX56AP/KUzFfJH1SreUu4LjCuobeklarqnMvcIikD+Y6a0tqtiB1AmlqA1LSsDgmALtU+kRpbU5v4K/AukqLx1Fax9JnMdsueoC0rgqlb2j1ra6QR1h6RMSfSFMaxWTjTmAoMKqwNqOh3G/PRcTlwG+A7WtU+wuweeH1SixYJH448EBEvAzMkvS53K4kbVs45mrgWuBKgDxC8qIWrDGq95wVjSVPb0raGtimTr2Fns0GRpOSR3KbiyRuNcxmwXRbWxbKPwzsKekD+Zn+XGFfD+CZvH1kG9oqWpJnr7pfiucfXOsASZtFRGtEnEOa6toy7+oNzFjMmM3MOlyzNT+rk4a8Z+bpg62AMyPiDdLUxMg8GjQfqPVNpftIUwZTJQ3KZQ8DlemyccAGpDd0gF8BR0qaQPqLs96oyHBgJjBZaSHyr6n65BoRM0lrcEbn2O8mTc00ciJpnc4juW6bFyPkKYvBwLX5fBOALfM6ikOAcyRNI42a7dzWdmv4FekNbTrwXWB6jTjXAG7Pde4njagVYx0JXA7cKmmRBcE17AlMlTSFlBxeWKPOqFyv4jWgj6RJpFGns3L5EcBXcl88RlqvUnEN8H5SAlRxJHBevpZ+hXbquRRYPdf/DvBInXrDgDtUWPBcxwnAAKUF1DOBY5vUhzRdepykB0nJfkMR8S/SiM5DwD3A5MLuM0m/Z+OAF9pw7mK7S/LsVf/Ongv8VNJ46n8YOVFpIfw00kjPHbl8L9JzYWa2XNGCkXJT+ndf5kZESDoUOCwiDmx23LKk9I21lSPiDUmbkUa4euc3us6MqzvpjXOXJf2nCPIargMj4ovtGpx1CkljSffzxUb1uvXsFT2PbLZc0GzZmT10v+aVbLknaVJE1Pwm8+KudXmv609acC3gJeCoTo6nllVJX9FembSm47jOTnwAImKupB+QRvL+vrjHS7oY+CRp3Yit4JT+aYOfN0t8zMw6g5Ofgvw15W2bVuxE+VtGdf9Nns7UZAF6s2O/2Z6xWOfK08C3dHYcZma1+P/2MjMzs1Jx8mNmZmal4uTHzMzMSsXJj5mZmZWKFzybWafqu0EPJvqrxWa2DHnkx8zMzErFyY+ZmZmVipMfMzMzKxUnP2ZmZlYqTn7MzMysVJz8mJmZWak4+TEzM7NScfJjZmZmpeLkx8zMzErFyY+ZmZmVipMfMzMzKxUnP2ZmZlYqTn7MzMysVJz8mJmZWak4+TEzM7NScfJjZmZmpeLkx8zMzErFyY+ZmZmVipMfMzMzKxUnP2ZmZlYqTn7MzMysVJz8mJmZWal07ewAzKzcWp+ZQ8uQUZ0dhhmzh+7X2SHYMuKRHzMzMysVJz9mZmZWKk5+zMzMrFSc/JiZmVmpOPkxMzOzUnHyY2ZmZqXi5MfMzMxKxcmPmZmZlYqTHysdSfMkTZU0Q9JtktYq7Osj6c+SnpD0pKTTJamw/yBJ0yU9LqlV0kG5/Je5zZmS5ubtqZIOaefYz5R0cp3yZwrXdUCTdkZImpXrT5O0d2Hf+yT9QtJTuQ/+KGnDwv4Nc9mTuc6F+ZiPF677VUl/zdtXt2cfmJktLSc/VkZzI6JfRGwN/Bc4HkBSd+BWYGhE9Aa2BXYGvp73bwucDxwYEVsCBwDnS9omIo6PiH7Ap4Cncvv9IuKGZXhdF+QYPgdcIanZ7/cpuf6JwGWF8rOBNYDeEdELuAW4SRlwE3BL3tcbWB34SUTcVbluYCJwRH79pXa9SjOzpeTkx8ruIWCDvH04MD4iRgNExOvAN4Ahef/JwNkRMSvvnwX8FDilrSeTtL+khyVNkXSPpPVy+ZmSrpA0RtLTkk4oHHNaHkW5B9ii2Tki4i/AO8BGeXRn5dzOmpJmV17X6gNJqwJfBk6KiHm5vSuBN4GP5j9v5DJynZOAo/KxZmbLPSc/VlqSugB7k0Z7APoAk4p1IuIpYHVJa9baTxrh6LMYp30A2DEitgOuA75T2Lcl8HFgIPADSStL6g8cCmwHfAbYoQ3X9RFgPvB3YAxQ+Q+LDgVujIi3qw75BGl0B2Bz4O8R8XJVncp11uqjl/O5Nm8WWyHGYyRNlDRx3utz2nqYmVm78H9samXUXdJUoIX0Rn53LhcQdY6JOvsbHVPLhsD1knoC7wNmFfaNiog3gTclPQesB+wG3JxHoZB0a3WDBSdJ+gLwCjAoIkLScFKCdQtpROfoQv3zJJ0LfBDYscn1VMpXarK/TSJiGDAMoFvPXovTf2ZmS80jP1ZGc/O6lI1JCcjxufwxYECxoqRNgVcj4pVa+4HtgZmLce6LgUsioi/wNWCVwr43C9vzWPDhpK3JwQV5jc1uETEOICLGAy2S9gC6RMSMQv1TSKM13weuymX/D9hY0hpVbVeus1YfrQlsBDzVxjjNzDqVkx8rrYiYA5wAnJzXwVwD7CppH3h3AfRFwLn5kPOBUyW15P0twPeAny3GaXsAz+TtI9tQfyxwsKTuOSHZfzHOVXE1cC1wZfWOiJgPXAisJOnjEfEaKRH6eZ4WRNKXgFWBPwP3AqvmssrU4c+AEZXRKTOz5Z2THyu1iJgCTAMOjYi5wIHA9yX9FWgFHgUuyXWnAt8FbpP0OHAb8J1c3lZnAiMljQNeaEN8k4HrganAjcC4xThXxTXA+0kJUK1zBPBjFqw/OhV4A3hC0pOkb48dHBlwMPC5vO+JXPd7SxCXmVmnUPq7zMzeq/K/NXRgRHyxs2OppVvPXtHzyF90dhhmzB66X/NKtsKQNCkiqpcqAF7wbPaeJuli4JOkf3/IzMxw8mP2nhYR3+zsGMzMljde82NmZmal4uTHzMzMSsXJj5mZmZWKkx8zMzMrFS94NrNO1XeDHkz0V4zNbBnyyI+ZmZmVipMfMzMzKxUnP2ZmZlYqTn7MzMysVJz8mJmZWak4+TEzM7NScfJjZmZmpeLkx8zMzErFyY+ZmZmVipMfMzMzKxUnP2ZmZlYqTn7MzMysVJz8mJmZWak4+TEzM7NScfJjZmZmpeLkx8zMzErFyY+ZmZmVipMfMzMzKxUnP2ZmZlYqTn7MzMysVJz8mJmZWak4+TEzM7NScfJjZmZmpdK1swMws3JrfWYOLUNGdXYY1gFmD92vs0Mwq8kjP2ZmZlYqTn7MzMysVJz8mJmZWak4+TEzM7NScfJjZmZmpeLkx8zMzErFyY+ZmZmVipMfMzMzK5XlLvmRNE/SVEkzJI2UtGqDui2SDi+8Hizpkg6IqZuke3Jcg9qhvTMlndwesS3BufeUtHMb6i1WX0rqKen2JTl2ceX21++o9pcXktaXdMNiHjNG0l8lTZM0XtIWTep/r7DdImnGksZb1W5fSSPaoy0zs/a23CU/wNyI6BcRWwNvAcc2qNsCHN5gf3vZDlg5x3X9MjhfR9oTaJr8LIFvA5d3QLu1DAbaPfmRtFT/4rmkLu0VC0BEPBsRhyzBoUdExLbAVcB5Tep+r8n+JRIRrcCGkj7UEe2bmS2N5TH5KRoHbC7pR5K+VSmU9BNJJwBDgd3yiMxJeff6ku6U9KSkcwvHHCapNY8onVMofzW3N03SBEnrFQOQ9EHgd0C/fJ7NJM2WtE7eP0DSmLx9pqQr8qfvp3OMlXZOy5/I7wG2KJQfLenRfP4bKyNdkkZIulTSfbmtPXLbfyl+opa0r6SHJE3OI2Wr5/LZkn6Yy1slbSmphZRMnpSvZTdJ+0t6WNKUPLq10PXntj6X+22apLF17tVngTsLr9t8HyR9XtLP8/a3JD2dtzeT9EBVLIcAA4Br8jV0l7R3jr8191G3GtcwRtIvJD2Yzz2wcM+GSRoNXC1pY0n3Spqef36oEMuEfK/OkvRqLt8z36PfA6257BZJkyQ9JumYQgyvSjon77tH0sDCs3JAjZjfHYlRGu26qVafNjCW9Puzt6SbC+1+LLc1FOie+/GavLuLpMtz7KMldc/H9MvXP13SzZLeX+jXcyQ9IukJSbsVzn8bcGgb4jQzW6aW2+RH6VP4J0lvKL8BjszlK5H+Qr0GGAKMyyMyF+RD+wGDgL7AIEkbKU2RnAN8NO/fQdJBuf5qwIT8SXkscHQxjoh4Dvhq4TxPNQl9S+DjwEDgB5JWltQ/x7wd8Blgh0L9myJih3z+vwBfKex7f475JNIbyQVAH6BvfjNaB/g+sE9EbA9MJI3AVLyQyy8FTo6I2cBlwAX5WsYBDwA7RsR2wHXAd2pc0xnAx3OMtd6kNwFejIg3C8WLcx/GApU3zd2A/0jaANiVlAC/KyJuyNd5RET0AwIYAQyKiL6k/6/uuBrXALBaROwMfB24olDeHzgwIg4HLgGujohtSM/YRbnOhcCFEbED8GxVuwOB0yJiq/z6qIjoT0rSTpD0gcr5gTF53yvAj4GPAQcDZ9WJuWiRPm1Sf3/S78+fgQ9LWjeXfxm4MiKGsGCk9Yi8rxfwy4joA7xESmoBrga+m/ulFfhB4TxdI2IgcGJV+UQW3NeFSDpG0kRJE+e9PqfphZuZtaflMfnpLmkq6S/OvwO/yW/a/5G0HbAvMCUi/lPn+HsjYk5EvAHMBDYmJRtjIuL5iHiH9Ka2e67/FnB73p5EmkpbGqMi4s2IeAF4DliP9AZwc0S8HhEvA7cW6m8taZykVuAIUnJTcVtEBOnN5t8R0RoR84HHcpw7AlsB43OfHZmvt+KmNlzXhsBd+fynVJ2/YjwwQtLRQK2pnZ7A81Vlbb4PEfF/wOqS1gA2An5Puj+7UZX81LAFMCsinsivr2LBva12LUBEjAXWlLRWLr81Iubm7Z3y+QF+S0rAKuUj83Zlf8UjETGr8PoESdOACfl6euXyt1gwOtYK3B8Rb+ftlibXCbX7tJZr8vOwCynpjXwtX8jXvBNwR51jZ0XE1Lw9CWiR1ANYKyLuz+XVfVzvOXuOOtOTETEsIgZExIAuq/aoE4qZWcdYHv9X97n5E3214aS1Hv/Dwp/aqxVHH+aRrlEN6r+d3xyK9Zt5hwWJ4yptOD+kEYpaRgAHRcQ0SYNJa3Kq25pf1e783O484O6IOKxO25VjGl3XxcDPI+JWSXsCZ1ZXiIhjJX0E2A+YKqlfVfI5l7b1Q6P78BBpROKvpITnKNKb9P82OIYmbVarvgeV168txjG1vHt87sN9gJ0i4nWlKdFK3xSftXfvaUTMV9vWG9V7tqodERETq8quJI0evgGMzMlnW87RfTHiqo5pFdKzYWa2XFkeR37quRn4BGn04K5c9gqwRhuOfRjYQ9I6SotSDwPub3JMI7NJUyWwYFqgkbHAwXl9yhqk6YiKNYB/SVqZNPKzOCYAu0jaHEDSqpJ6Nzmmus96AM/k7SNrHSBps4h4OCLOAF4gjWYUPUHbRi4a3YexwMn55xRgL+DNiKg1J1K8hsdJoxOb59dfpP69HZSvZ1dgTp22H2TBOpUjSNOCkPq6cq8brWPpQZoCfF3SlqTRuU4XEc+Spuu+T0q4K97Oz16jY+cALxbW8zTq46LeQLt8e8zMrD2tMMlPRLwF3Af8ISLm5eLpwDtKC3FPanDsv4BT8/HTgMkR8celCOeHwIWSxpE+7TaLfTJwPTAVuJGFp3JOJyUFd5PeyNssIp4njYZdK2k66Q16yyaH3UZKxKbmN7MzgZH5Wl6oc8x5eTHxDFJyMq0qjteApwoJSL14G92HcaSkamy+v/9gQeJRbQRwWZ7aEWnEaGSeuptPWtdUy4uSHsz7v1KnzgnAl3N/fhGoLLQ/Efi2pEdI03z1FqrcCXTNx/+IdE+WF9cA/4iImYWyYcD0woLneo4kPQfTSWuP2rJGaS9g1BJFambWgbRgFH75lhc6TwY+FxFPdnY8tjBJBwP9I+L7nR1LLXn66eQa00FtPX5V0pRsSDoUOCwiDmzPGDua0r+9NCUifrMMztWNNDq0a4MpNgC69ewVPY/8RUeHZJ1g9tD9OjsEKzFJkyJiQK19y+Oan0VI2oq0KPlmJz7Lp4i4ufCtpvei/sAlkkT6FtRRnRzPYpE0ibQ2qdkaqvbyIWBIs8THzKwzrBDJTx6m37Sz47DGImJ4Z8dQT0TsuZTHjwO2bZ9olr389fpleb4nAX9QMbPl0gqz5sfMzMysPTj5MTMzs1Jx8mNmZmal4uTHzMzMSmWFWPBsZu9dfTfowUR/JdrMliGP/JiZmVmpOPkxMzOzUnHyY2ZmZqXi5MfMzMxKxcmPmZmZlYqTHzMzMysVJz9mZmZWKk5+zMzMrFSc/JiZmVmpOPkxMzOzUnHyY2ZmZqXi5MfMzMxKxcmPmZmZlYqTHzMzMysVJz9mZmZWKk5+zMzMrFSc/JiZmVmpOPkxMzOzUnHyY2ZmZqXi5MfMzMxKxcmPmZmZlYqTHzMzMysVJz9mZmZWKl07OwAzK7fWZ+bQMmRUZ4fRIWYP3a+zQzCzGjzyY2ZmZqXi5MfMzMxKxcmPmZmZlYqTHzMzMysVJz9mZmZWKk5+zMzMrFSc/JiZmVmpOPmxJSLpfyRdJ+kpSTMl/UlS7wb1WyTNyNt7Srq9SfuDJV3S3nHntk+UtGrh9Z8krdUR52pPxTglnSDpL5KukXSApCGL0c73ljKO4ZK2Wpo2zMw6k/+RQ1tskgTcDFwVEYfmsn7AesATnRlbjkWAImJ+nSonAr8DXgeIiE8tq9iWRlWcXwc+GRGz8utbF6Op7wFnL0UcX13SY83Mlgce+bElsRfwdkRcVimIiKkRMU7JeZJmSGqVNKhRQ5IGSnpQ0pT8c4vC7o0k3Snpr5J+UDjm27n9GZJOzGUteSTkV8DkfOylkiZKekzSD3O9E4D1gfsk3ZfLZktapw1tX57bGi2pe41rWU3SKEnT8vGDCu2fI+mR/GfzXL6upBslPZr/7JLLV5d0Ze6/6ZI+W4xT0mXApsCtkk4qjpJJWk/SzTmGaZJ2ropxKNBd0lRJ1zS55sclXZVjuKEyWiZpjKQBefsTkibnc92by/bI7U/N93WNRs+Amdmy5pEfWxJbA5Pq7PsM0A/YFlgHeFTS2AZtPQ7sHhHvSNqHNCLx2bxvYD7X67mdUUAAXwY+Agh4WNL9wIvAFsCXI+LrAJJOi4j/SuoC3Ctpm4i4SNK3gb0i4oViIJL6N2i7F3BYRBwt6Q85xt9VXcsngGcjYr/cXo/CvpcjYqCkLwG/AD4NXAhcEBEPSPoQcBfwYeB0YE5E9M3tvL94kog4VtInKtcgaXBh90XA/RFxcL7u1auOHSLpGxHRrw3XvAXwlYgYL+kK0mjT+YX+Whe4PN+/WZLWzrtOBo7Px60OvFHVT0g6BjgGoMua61bvNjPrUB75sfa2K3BtRMyLiH8D9wM7NKjfAxiptB7oAqBPYd/dEfGfiJgL3JTb3hW4OSJei4hXc/luuf7fImJC4fjPS5oMTMntNlun0qjtWRExNW9PAlpqHN8K7JNHeXaLiDmFfdcWfu6Ut/cBLpE0lTRttWYeJdkH+GXlwIh4sUncRR8FLs3HzauKoZZG1/yPiBift3+X6xbtCIytTL1FxH9z+Xjg53mUba2IeKf6pBExLCIGRMSALqv2qN5tZtahnPzYkngM6F9nnxazrR8B90XE1sD+wCqFfVFVN5q0/9q7QUibkEYg9o6IbYBRVW3X0qjtNwvb84CukjYqTO8cGxFPkPqlFfippDPqXEtleyVgp4jol/9sEBGv5Diqr72jNLrmWv1ffewicUbEUOCrQHdggqQtlypCM7N25uTHlsSfgW6Sjq4USNpB0h7AWGCQpC55WmR34JEGbfUAnsnbg6v2fUzS2nl9zUGkEYWxwEGSVpW0GnAwMK5Gu2uSkqE5ktYDPlnY9wpQax1KW9sGICL+UUhcLpO0PvB6RPyOND20faH6oMLPh/L2aOAblQpKi8ZrlS807dXEvcBx+bguktasUedtSSvn7UbX/CFJlVGqw4AHqtp5CNgjJ5pUpr0kbRYRrRFxDjARcPJjZssVJz+22CIiSG+SH1P6qvtjwJnAs6RvgU0HppGSpO9ExP81aO5c0ijJeKBL1b4HgN8CU4EbI2JiREwGRpASqoeB4RExpUaM00jTXY8BV5ASp4phwB3KC54Lx7Sp7Qb6Ao/kaazTgB8X9nWT/n97dx9yZ13Hcfz9YVNzLs1VytqWM1j5SLOWaUaUCypnWZSsSBqBRBA4JQmVoAcURlToHxENywZJLXSkKIViBvXPcmb5tEyzkbPljEjtwVnr2x/XZR3G7cPsnPvyPr/365/7XL/rOtf1/XLf3OfD9fudc7IVWA9c0I+dB6zqFxTfC3yyH78UOLxfgPwrugXmz9d64B1J7qKbnjt+hmM2Ancmufo5et4OrEtyJ7CIfjrtaVX1KN26nS19nZv7XeeP1P4P4If7Ub8kTVy61zFJk5JkB7Bq3wXWL2ZJlgM39NORE3XQ4hW1eN3lk77MIHZsWDN0CVKzktxeVatm2uedH0mS1BTf6i5NWFUtH7qG/VVVO+g+ZkCSpo53fiRJUlMMP5IkqSmGH0mS1BTDjyRJaooLniUN6sQlh7HNt4RLmkXe+ZEkSU0x/EiSpKYYfiRJUlMMP5IkqSmGH0mS1BTDjyRJaorhR5IkNcXwI0mSmmL4kSRJTTH8SJKkphh+JElSUww/kiSpKYYfSZLUFMOPJElqiuFHkiQ1xfAjSZKaYviRJElNMfxIkqSmGH4kSVJTDD+SJKkphh9JktQUw48kSWqK4UeSJDVl/tAFSGrbXQ8/xvKLbnzBz9+xYc0Yq5HUAu/8SJKkphh+JElSUww/kiSpKYYfSZLUFMOPJElqiuFHkiQ1xfAjSZKaYviRJElNMfxIjUqyNMl1Se5P8tskVyQ5MMnKJGeMHPf5JBcOWaskjZPhR2pQkgBbgB9U1QrgtcBC4DJgJXDGszx9f681b1znkqRxMPxIbTodeLKqrgKoqr3ABcC5wJeAtUl+mWRtf/xxSX6S5MEk5z19kiTnJPl5f+w3ng46Sf6a5ItJtgKnzmpnkvQcDD9Sm44Hbh8dqKrHgR3ApcDmqlpZVZv73ccA7wJOBj6X5IAkxwJrgdOqaiWwF/hof/whwN1V9eaq+tm+F0/yiSTbkmzb+/fHJtCeJD0zv9hUalOA2o/xG6tqD7AnyW7gSGA18Ebgtm4WjYOB3f3xe4Frn+niVbUR2Ahw0OIVM11PkibG8CO16R7gg6MDSQ4FltEFl33tGXm8l+5/R4BNVXXxDMc/2U+lSdKLjtNeUptuARYk+Rj8d1HyV4BvA48AL32e5/hQkiP6cyxKctRkypWk8TH8SA2qqgI+AJyd5H7gN8CTwCXArXQLnEcXPM90jnuBzwI3JbkTuBlYPPHiJen/5LSX1Kiqegh47wy79gBvepbnnTDyeDOweYZjFo6jRkmaBO/8SJKkphh+JElSUww/kiSpKYYfSZLUFMOPJElqiuFHkiQ1xbe6SxrUiUsOY9uGNUOXIakh3vmRJElNMfxIkqSmGH4kSVJTDD+SJKkphh9JktQUw48kSWqK4UeSJDXF8CNJkppi+JEkSU0x/EiSpKYYfiRJUlNSVUPXIKlhSZ4A7hu6jln0CuBPQxcxi+x3ur2Y+z2qql450w6/2FTS0O6rqlVDFzFbkmyz3+llv3OD016SJKkphh9JktQUw4+koW0cuoBZZr/TzX7nABc8S5KkpnjnR5IkNcXwI0mSmmL4kTSIJO9Ocl+SB5JcNHQ945ZkWZJbk2xPck+S9f34oiQ3J7m//3n40LWOU5J5Se5IckO/PbX9JnlZkmuS/Lr/PZ865f1e0P8t353ku0leMlf7NfxImnVJ5gFfA94DHAd8JMlxw1Y1dv8CPl1VxwKnAJ/qe7wIuKWqVgC39NvTZD2wfWR7mvu9AvhRVR0DvJ6u76nsN8kS4DxgVVWdAMwDPswc7dfwI2kIJwMPVNWDVfUU8D3grIFrGquq2lVVv+gfP0H3wriErs9N/WGbgPcPU+H4JVkKrAGuHBmeyn6THAq8DfgmQFU9VVV/YUr77c0HDk4yH1gA/IE52q/hR9IQlgAPjWzv7MemUpLlwEnAVuDIqtoFXUACjhiusrG7HPgM8O+RsWnt9zXAo8BV/TTflUkOYUr7raqHgS8Du4B2igAAAZJJREFUvwd2AY9V1U3M0X4NP5KGkBnGpvJzN5IsBK4Fzq+qx4euZ1KSnAnsrqrbh65llswH3gB8vapOAv7GHJnyeSH6tTxnAUcDrwIOSXLOsFW9cIYfSUPYCSwb2V5Kdwt9qiQ5gC74XF1VW/rhR5Is7vcvBnYPVd+YnQa8L8kOumnM05N8h+ntdyews6q29tvX0IWhae33ncDvqurRqvonsAV4C3O0X8OPpCHcBqxIcnSSA+kWTl4/cE1jlSR060G2V9VXR3ZdD6zrH68Drpvt2iahqi6uqqVVtZzu9/njqjqH6e33j8BDSV7XD60G7mVK+6Wb7jolyYL+b3s13Tq2Odmvn/AsaRBJzqBbIzIP+FZVXTZwSWOV5K3AT4G7+N8amEvo1v18H3g13QvK2VX150GKnJAkbwcurKozk7ycKe03yUq6xd0HAg8CH6e7qTCt/X4BWEv3TsY7gHOBhczBfg0/kiSpKU57SZKkphh+JElSUww/kiSpKYYfSZLUFMOPJElqiuFHkiQ1xfAjSZKa8h9GsXP3P7RXaAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "hopes = [\n", + " \"Particle physics analysis tools (other than ROOT)\",\n", + " \"General-purpose data analysis toolkits\",\n", + " \"Machine learning/deep learning toolkits\",\n", + " \"Software engineering skills (beyond the fundamentals)\",\n", + " \"ROOT and PyROOT\",\n", + " \"Python fundamentals (how to program in Python)\",\n", + " \"Collaboration-specific topics\",\n", + " \"Other\",\n", + "]\n", + "def explode(responses):\n", + " responses = [response.strip() for response in responses.split(\";\")]\n", + " return [1.0 if hope in responses else 0.0 for hope in hopes]\n", + "exploded = df[[\"PyHEP feedback: What are you hoping to learn from this workshop?\"]].fillna(\"\").applymap(explode)\n", + "indicator = pandas.DataFrame(exploded.iloc[:, 0].tolist(), columns=hopes)\n", + "indicator.div(indicator.sum(axis=1), axis=0).sum(axis=0).iloc[::-1].plot.barh(figsize=(5, 7));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "




\n", + "\n", + "## Conclusions:\n", + "\n", + " 1. You are mostly grad students and postdocs engaged in physics research.\n", + " 2. You use Python and C++ about equally, but want to use Python more.\n", + " 3. You are familiar with the major libraries of the Python world: NumPy, Matplotlib, machine learning.\n", + " 4. You are less familiar with Python libraries intended for physics analysis.\n", + " 5. But you want to learn.\n", + "\n", + "So let's get started!\n", + "\n", + "




" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\"Uproot\" is a pure-Python implementation of ROOT I/O.\n", + "\n", + "

\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\"Uproot\" is a generalization of NumPy to data structures (such as jagged arrays).\n", + "\n", + "

\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "


\n", + "\n", + "# Interesting times!\n", + "\n", + "We're in in the middle of a transition from Uproot 3.x → Uproot 4.x and Awkward 0.x → Awkward 1.x.\n", + "\n", + "\n", + "\n", + "You can use both! Old and new versions are independently installable/importable.\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "
NowLater this year
Old versionsuproot, awkwarduproot3, awkward0
New versionsuproot4, awkward1uproot, awkward
\n", + "\n", + "\n", + "\n", + "




" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# What will this tutorial use?\n", + "\n", + "New versions of both: Uproot 4 and Awkward 1. This tutorial is bleeding edge." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "import uproot4\n", + "import awkward1 as ak\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# In a nutshell\n", + "\n", + "Uproot provides a short path from ROOT files to arrays." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([2, 1, 2, ..., 2, 2, 2], dtype=uint32)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.array(uproot4.open(\"data/opendata_muons.root:Events/nMuon\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's break that down." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exploring a file" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "root = uproot4.open(\"data/opendata_muons.root\")\n", + "root" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you open a file, you get its root directory, which has the properties of a Python dict.\n", + "\n", + "You can list its keys." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Events;1']" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "root.keys()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can get an item from it using square brackets." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "root[\"Events\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(The `;1` wasn't necesssary—it's a \"cycle number,\" which ROOT uses to distinguish objects in the same directory with the same name. If unspecified, you get the highest cycle number.)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from collections.abc import Mapping\n", + "\n", + "isinstance(root, Mapping)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also get listings of objects by type." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Events': 'TTree'}" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "root.classnames()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Perhaps this file is more interesting:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "nesteddirs = uproot4.open(\"data/nesteddirs.root\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['one;1',\n", + " 'one/two;1',\n", + " 'one/two/tree;1',\n", + " 'one/tree;1',\n", + " 'three;1',\n", + " 'three/tree;1']" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nesteddirs.keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nesteddirs[\"one/two\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['tree;1']" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nesteddirs[\"one/two\"].keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'one': 'TDirectory',\n", + " 'one/two': 'TDirectory',\n", + " 'one/two/tree': 'TTree',\n", + " 'one/tree': 'TTree',\n", + " 'three': 'TDirectory',\n", + " 'three/tree': 'TTree'}" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nesteddirs.classnames()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "At all levels, you can filter by name or type." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['one/two/tree;1', 'one/tree;1', 'three/tree;1']" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nesteddirs.keys(filter_classname=\"TTree\")" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'one/two': 'TDirectory',\n", + " 'one/two/tree': 'TTree',\n", + " 'one/tree': 'TTree',\n", + " 'three': 'TDirectory',\n", + " 'three/tree': 'TTree'}" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nesteddirs.classnames(filter_name=\"*t*\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Histograms!\n", + "\n", + "Uproot can read histograms (as well as most other ROOT objects), but it doesn't deal directly with them. The first thing that you do when extracting a histogram is to convert it to another library." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "histograms = uproot4.open(\"data/hepdata-example.root\")" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'hpx': 'TH1F', 'hpxpy': 'TH2F', 'hprof': 'TProfile', 'ntuple': 'TNtuple'}" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "histograms.classnames()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Histogram(Regular(100, -4, 4, metadata={'@fUniqueID': 0, '@fBits': 50331648, 'fNdivisions': 510, 'fAxisColor': 1, 'fLabelColor': 1, 'fLabelFont': 42, 'fLabelOffset': 0.004999999888241291, 'fLabelSize': 0.03500000014901161, 'fTickLength': 0.029999999329447746, 'fTitleOffset': 1.0, 'fTitleSize': 0.03500000014901161, 'fTitleColor': 1, 'fTitleFont': 42, 'fNbins': 100, 'fXmin': -4.0, 'fXmax': 4.0, 'fFirst': 0, 'fLast': 0, 'fBits2': 0, 'fTimeDisplay': False, 'fTimeFormat': , 'name': 'xaxis', 'title': ''}), storage=Double()) # Sum: 74994.0 (75000.0 with flow)" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "histograms[\"hpx\"].to_boost()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is a [boost-histogram](https://github.com/scikit-hep/boost-histogram), a clean design of N-dimensional histograms in the [Boost](https://www.boost.org/doc/libs/release/libs/histogram/doc/html/index.html) C++ library (with Python bindings). Boost-histogram focuses just on **filling and manipulating (e.g. slicing)** histograms.\n", + "\n", + "But we want to plot it, right? There's another library, [mplhep](https://github.com/scikit-hep/mplhep), which focuses just on **plotting** histograms in Matplotlib.\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import mplhep\n", + "\n", + "mplhep.histplot(histograms[\"hpx\"].to_boost())" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.style.use(mplhep.style.CMS)\n", + "mplhep.histplot(histograms[\"hpx\"].to_boost())\n", + "mplhep.cms.label()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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fn6+rDwpKQkA0KtXr9roFhEREdUwRQQukydPRlFREVauXCmVZWdnY+3atfDx8cFTTz1Vi70jIiKimmImFDApRK1WY8SIEdixYwdeeOEFeHl5Yfv27bh69Sp27NiB5557rra7SERERDVAESMu5ubm2LZtG8LDw/Hnn38iNjYWrVu3xp49e2o1aElOToaZmRn27NlTa32gqiksLMSHH36Itm3bwsbGBt7e3njllVdw8+bN2u4aGaC4uBhvv/02WrVqhcaNG6NHjx7SKWNShjNnzmDChAlwd3eHra0tunfvjtWrV0OtVtd216iaQkJCanSuqSJGXOqigoICdOrUCefPn8fu3bsRGBhY210iA0yZMgXr16+Hn58fnnvuOVy/fh0bN26Era0tfvvtN7i7u9d2F0kPtVqNfv36IS0tDWPGjMHjjz+O//73v7h69Sr27duH3r1713YXqRLZ2dno1KkTcnNzMWLECLRp0wbJyclITU3F2LFjsXnz5truIlXR3r17ERgYCDc3N9y4caNmntTYC8bVF/PmzZMWydm9e3dtd4cMcOjQIQFAvPjii0KtVkvlhw8fFhYWFuKll16qxd5RZTZt2iQAiPfee08qy87OFl5eXqJt27a12DMyVGhoqAAgdu3aJSt/7bXXBACxZ8+eWuoZVUd+fr7417/+JQAINze3GnteRZwqqmtOnDiBFStWwMfHp7a7QlWgOaUwZ84cmJmZSeW9evVCnz59kJqaWltdIwNUlGz19OnTJp0l3lQkJSWhffv2GDRokKw8MjISAPgeVJj58+cjKysL3t7eNfq8DFyqSKVSITQ0FE8++SRef/312u4OVUFRURFatGiBJ554QmubSqVCdnY2FzCswypKtgqUDllT3WZhYaFz+QrN6ue3bt2q6S5RNR07dgyrVq3CkiVLdOYSfJQYuFTRypUr8euvv2Lt2rVo0KDOLzxMZURHR+Pq1ato0qSJrPzy5cs4dOgQOnfuLBuJobqDyVZNw7lz57Bu3Tqt8ri4OABAly5darpLVA0lJSUIDQ3FU089henTp9f48zNwqYILFy5g4cKFePPNN3mayET8+eefeOaZZ1BSUoKIiIja7g7pkZubCwBwdHTU2ubk5ASgdOInKU9MTAzmz58PNzc3hISE1HZ3yADLly/H77//jrVr18LcvObDCA4ZlKNSqbTSCzg4OMDe3h6vvvoqXF1dsWjRotrpHBmkomOoUVBQgKVLl/7/9u7fJZkwgAP4NxyUIAiyH4TEtdkU/RhEKGgKpalyyqEpWoIgGsojCxdxSSIIyqE2iYaggiOO+gOyGloOifLglraGIIOue4d4ezEtjcjz6f1+wOXxhi88cH59PJ8HiUQC+Xwe0WgU4+Pj1Y5KFeJhq7+PpmmYmZmBqqpwu904PDxEQ0OD3bGojOvra6ysrGBubg7d3d22ZGBxeccwDEiSVDC2vLwMSZKgqioURSn6jZ1qy0dzGI1GAQBnZ2cIh8PIZrPo6OjAxsYGgsGgDUmpUl89bJVq18vLC1ZXVxGJRPD09ISRkRFsbm5y/gQxNTWF9vb2t/upHVhc3mlpacH+/n7BmNfrhd/vx/DwMLxeL3RdB/Bvafru7g66rqO1tRUul6vqmanQR3MIAAcHBxgdHUVdXR0ikQgWFxdZRAXAw1Z/B8uyMDExgXQ6jc7OTqyvr/NLg0D29vZwenqKra2tggep8/k8TNOErutwOBzweDw/G6Rqf7wW2P39/dueLZ+9VFW1Oyp94vb21qqvr7fa2tqsy8tLu+PQF4VCIcvpdFoPDw8F47FYzAJgnZ+f25SMKpVIJCwA1tjYWNE8Uu1LJpNlPwc9Hs+P5+DOuRV4fn7G0dFR0fjJyQnW1tawtLSE3t5e+P1+NDc325CQKrGwsIB4PI7d3V2EQiG749AXKYqCQCCAWCwGWZYBvK569vX1oampCRcXFzYnpM+YpglJkvD4+AjDMLg6LaCbmxtcXV0VjcuyDMMwsL29DZfL9eM7ybO4fMPOzg4mJye55b8gfD4fMpkM4vF4yYc9nU4npqenbUhGleBhq2LTNA1dXV3o7+9HOBwueU1PTw8GBwernIy+a2hoCJqmVW3Lfz7jQv+NXC4H0zQxPz9f8v3GxkYWlxr297BVWZahKAqOj4/h8/mQSqUwMDBgdzwqI5fLAXjduCyTyZS8ZnZ2lsWFyuKKCxEREQmDG9ARERGRMFhciIiISBgsLkRERCQMFhciIiISBosLERERCYPFhYiIiITB4kJERETCYHEhIiIiYbC4EBERkTBYXIiIiEgYfwCu1+S/KvhHSQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.style.use(mplhep.style.ATLAS)\n", + "mplhep.histplot(histograms[\"hpx\"].to_boost())\n", + "mplhep.atlas.label()" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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9u3bh927d7ucv22L6mRJv0REROQ+X//73717dwQFBaG6utrlueZlvXr1MnpY7RdpPXr0wI4dO1osGzBgAEaOHIkJEyZgwIABKC4uBgBUVVUBuHLetri4GD179kRYWJgXhk1ERETkGZqmoWfPni5nDgGgtLQUgDlFmqZ0lLcXL15EdHR0u+327duHtLQ0XQMjIiIiMsovfvEL/P3vf8f58+cRGRnpXL5ixQosXrwYH330EW699VZDx6SrSGtqasLOnTtdlufl5SEnJwdLlizBrbfeipEjRyI+Pt4jAyUiIiLylt27d+Oee+5BdnY2Fi1aBODKGcKhQ4eie/fu+Pjjjw0fk64IjqCgIEycONFl+YULFwDAeSqUiIiIqDMYP3487rvvPixduhTHjx9HcnIytm/fjsrKSrz++uumjMljt4XSIy8vD5qm4d133zVzGF5XWVmJuXPnh3rXrQAACXVJREFUon///oiIiEBqaiqysrJw8eJFs4fmVTabDb///e8xYMAAREREoF+/fpgzZw7KysrMHpqhNm3aZMq1DEZqbGzEggULcP311yMyMhJ33HEH9u7da/awDDVu3Dg899xzZg/DEKdOncLMmTPRu3dvdOnSBbfffjteeuklOBxtp7n7g/z8fIwdOxY9e/ZEbGwsRo4ciW3btpk9LFPMmjXL737XLBYLtm3bhszMTHzxxRdYt24dfvrTn+Ldd9/F2LFjzRmU4aEfP6itrVXXX3+9AtrOVfMHdXV1qm/fviooKEjNmjVLrVixQv3iF79QmqapESNGqKamJrOH6DVz5sxRANSoUaPUkiVL1H/913+p0NBQ1b17d1VaWmr28AzR2Niohg8frhISEsweitfY7XY1ZswYZbFY1IMPPqiee+451b9/fxUeHq4OHjxo9vAMcfToUWW1WtWzzz5r9lC8rrKyUiUkJKiIiAj10EMPqeXLl6u77rpLAVDTpk0ze3he88477yhN01Tfvn3VU089pZYuXapuvPFGBUC9/PLLZg/PUO+++64C4Ne/a77CtCLtmWeecQbK+XORtnbtWgVAbdy4scXy5cuXKwDq73//u0kj866DBw8qAOrBBx9UDofDufzQoUPKarWq//zP/zRxdN73r3/9S73wwgtq2LBhfv9j9sYbbygA6re//a1zWVVVlUpOTlYDBgwwcWTeVV9fr7Zv366eeeYZ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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "mplhep.hist2dplot(histograms[\"hpxpy\"].to_boost());" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## pip install hist\n", + "\n", + "The [hist](https://github.com/scikit-hep/hist) project is being developed to pull all of this into a common interface.\n", + "\n", + "(Note: currently, you have to `pip install 'hist>=2.0.0a2'` because it has only been released as an alpha version.)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAAIcCAYAAAAdYR+SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzde1xVVcL/8e8GESER8ZJ4CelCqZlmkrfHSjN1zI5ZZtOQkZWeasp0ygtNibfG1C42PE3NYD7lJJrVYzYnzETNyy+dl4NN5sx4xxta5GXES6B42L8/HM7D4RwFDpxzgP15v1687Ky99t5rs4n9Ze211zZM0zQFAABQx4UEuwEAAACBQOgBAACWQOgBAACWQOgBAACWQOgBAACWUC/YDYBvDMMIdhMAAKiRLvVgOj09ZezatUuPPPKIWrVqpYYNG6pbt256++23VVxc7Kozb948GYbh9evpp5/22GZGRoY6deqkyMhIJSQkKC0tzeu+T58+raeeekpxcXGKiopS37599e233/rtWAEAsBQTLkePHjVjY2PNyMhI8+GHHzanTZtm3nHHHaYk86GHHnLVe/HFF03DMMy5c+eab731ltvX6tWr3bY5efJkU5LZu3dvc/Lkya7tvfnmm271zpw5Y7Zv395s0KCBOXLkSPOFF14wW7dubTZr1szctWuXR1slmf44fV27dq32bXozevRo9uODunZ+ArkvzhH7Mc26d34Cua/acI7KuzZye6uU3/72t/rxxx+1fPlyDRo0SJKUmpqqZ555Ru+8844ee+wxDRgwQDk5OWrVqpXGjRt32e0dPHhQM2fO1MCBA7V8+XKFhITINE0NHTpU48eP10MPPaSWLVtKkt566y1t375dGRkZSkpKkiQ9/fTTSkxM1HPPPacvv/zSvwcPAEAdx+2tUrKystShQwdX4CmRkpIiSVq3bp0kKScnR/Hx8eVub8mSJXI6nZo0aZJCQi5+qw3D0KRJk1RcXKxly5a56i5atEhxcXGuwCNJ1157rYYPH67Vq1crPz+/qocHAIClEXpKCQ0NVc+ePT3KnU6nJOmnn36S5B56Tp06pYKCAq/b27x5syIiItS7d2+38h49eqhRo0ZauXKlpItjebZv367+/ft7bGPAgAEqKirS2rVrfT0sAAAgQo+bPXv26L333vMoz8jIkCTdfPPNOnXqlI4fP65Dhw6pU6dOio6OVlRUlDp16qTly5e7rbd//341b95cYWFhbuUhISGKjY1VXl6epIu3wUzTVOvWrT32XVJWUreusNls7KcGC+TxcI58U9e+b5yfmr+vunCOCD3lSEtL0+TJkxUbG6vk5GTl5ORIkjZs2KAePXrogw8+0MyZM5Wfn6/Bgwfrk08+ca176tQpxcTEeN1ukyZNdOzYMVc9SV7rNmnSRJJcdeuKuvY/aV34ZVAav7Brvrr2feP81Px91YVzxEDmS9ixY4fGjBmjVatWqVmzZvriiy8UFRWl8PBwjRs3Tn379tWQIUNc9UeNGqX27dvrueee07BhwxQSEuLRw1Oa0+l03TYrr17pf8tKTEys9LHZ7XbZ7fZKrwcAQKCkp6crPT29WrdJ6CmjuLhYc+fO1UsvvaRz587pnnvuUXp6uuspq/bt22vu3Lke6zVp0kQjR47UnDlzlJOTo+uuu06xsbHatWuX1/2cOHHCtc3Y2FhXmbd6klx1y8rOzq78QQIAUMP58gd6eRP3cnurFNM09fDDD2v8+PFq1aqVMjMz5XA4Lhk4ymrbtq0k6ejRo5IuhpmjR4/q/PnzbvWcTqfy8vJc223RooUMw1Bubq7HNg8fPizp0qEHAABUDKGnlNdff10fffSRhg0bpm3btunuu+/2qJOWlqakpCT9/PPPHsv27dsn6WJvkCT16tVLhYWF2rBhg1u9TZs26cyZM64nxcLCwpSYmKisrCyPbWZlZalevXo+3cbyBbe9ajbOT83HOarZOD81n1/Pkc/THtYxFy5cMNu0aWM2bdrULCgouGS9+fPnm5LM6dOnu5UfOnTIjImJMfv16+cq+/e//202aNDAHDBggOl0Ok3TNE2n02nec889Zv369c2jR4+66r777rumJPPDDz90le3atcuMjo4277//fo92yE8zMgMAUFuVd200/lPJ8nbs2KH27dsrMTFRI0aM8FqnS5cu6tWrl/r06aONGzdqyJAh6t69u44cOaKFCxcqNDRUmzZtUkJCgmud119/XRMmTNBtt92mPn36aN26dVq/fr1mzpypF1980VXvzJkzuuuuu/T9998rKSlJ0dHRWrJkic6dO6c1a9bopptucmtLyX1LTh8AABeVd20k9PzHihUrPGZiLmvcuHGaO3euzp8/r9TUVH388cc6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pkzR4cOHJbk/1ZWfn6/s7Gxt2bJFGRkZeuihhzRnzhy1bt26qrsFAAColCqFnldffVUvv/yypIthp1mzZrrlllvUtm1bxcTE6ODBg9qzZ4+2bNki0zT10UcfafPmzdq4caOaN29eLQcAAABQET6Hnu3bt7ue4IqJidErr7yikSNHqkGDBh51v//+e7300kvKzMxUTk6Oxo8frwULFvjeagAAgEryOfS88847cjqdql+/vj777DPddtttl6zbqVMnff755xo0aJCysrK0aNEivfHGG2rWrJmvu8d/2O12r+U2m002my3ArQEAwP8cDokZ0PsAACAASURBVIccDkel1zNMH6dW7tChg3bu3Knk5GS9//77FVonJydH1113nQzD0OLFi/Xggw/6smtIrgkefZ0ZG6iK+JRMnt6yOH4GUBOVd230+emt3NxcSVLPnj0rvM4111yjFi1auK0PAAAQCFV+91ZlXykREhLitj4AoPaJjghTfEqm2+etUwYEsUVA+XwOPa1bt9bu3bu1adMmjR49ukLrHDp0SD/88IMMw1CbNm183TWAAGMGZpRVNuCUDkBATeVz6Lnrrru0a9cuLV68WE888YT+67/+67L1TdPUs88+K+li71Dfvn193TWAAGMGZgB1gc9jep555hmFhobq/PnzGjp0qObPn6+ioiKvdXfu3KkHH3xQDodDhmHowQcf1JVXXulzowEAACrL556e9u3ba/r06XrppZd04sQJ2e12paam6tZbb1V8fLyioqJ06NAh7d27V5s2bXKN4YmLi9Obb75ZbQcAAABQEVWakfnFF1/UlVdeqdTUVP3www/64YcfvD43XxJ47r//fr3xxhuKjY2tym4BAAAqzed5ekorKCjQ73//e61evVp79uzRoUOHVFxcrIYNG+q6665Tu3btNHbsWHXv3r062gwxTw8CizlZUJ6yg90lnuhC4Pltnp7SIiIilJKSoqysLO3bt08///yzfvrpJ506dUrffvutFi1aVCsDT//+/fXiiy96XbZnzx7dfffdatKkiZo3b66kpCQdP37ca92MjAx16tRJkZGRSkhIUFpamtd6p0+f1lNPPaW4uDhFRUWpb9+++vbbb6vteADAX7ZOGaD9swa7fZUNQUCwVUvoKat+/fo6f/68PzYdMFu3btXXX399yWVdunTRd999p8cee0xDhgzR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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "histograms[\"hpx\"].to_hist().plot();" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAikAAAIiCAYAAAANVFjdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3deXxU1d3H8e+dyUoCRDCyBRpQVhFRBASqUFFEC1K3glXRouDyiMWtqKigWKtCXVHLYtW6YC219HFDjCAVFARE2UVAkLBHZcuemfP8AczTNIHcM2QyNzOf9+vlq/XOmTO/ubP4y517v8cxxhgBAAB4jC/aBQAAAFSGJgUAAHgSTQoAAPAkmhQAAOBJNCkAAMCTaFIAAIAn0aSEaejQoWrSpEm0ywAAIGbRpIRh9uzZevXVV6NdBgAAMY0mxVJBQYFuvPHGaJcBAEDMo0mxdP/992v37t1q3bp1tEsBACCm0aRYWLJkiZ5++mk9/PDDatasWbTLAQAgpjms3eNOWVmZunbtqsTERC1cuFB9+/bV2rVrtX379gpjHceJQoUAAHifTduREME6YsrEiRO1cuVKLVmyRD4fB6AAAIg0mhQX1q9frwcffFB33HGHTj31VNf3O9e5LIJVlbfGLFV7p0uNPV40HrOmH2+R+Vjdnb419nhS7O/TaDwmr2NsPGZNv47xsE9r+vFyzAzr+3BIwIURI0aoadOmGjt2bLRLAQAgbnAkpQozZszQ3LlzNXXqVO3atSu0vaioSIFAQJs3b5bf71dWVlYUqwQAIPbQpFRh69atkqThw4dXent2draysrK0ZcuWmiwLAICYR5NShYEDByo7O7vC9vvuu0+5ubl6+eWXlZKSUvOF/ZfjVfMR/TX9mNF4jjUtHvYpr2Ptf7xoPWZNiod9WhteQ5qUKrRq1UqtWrWqsP2pp55SXl6eBg0aFIWqKsp0msb8Y0bjOda0eNinvI61//Gi9Zg1KR72aW14DTlxFgAAeBJHUsI0d+7caJcAAEBM40gKAADwJJoU4AiaqWW0S0A14HWMDbyO8Ym1eyLg8No9R/pQHa8mteKEJQAAbO0225SniuvabdV3kli7xzNqOlIZiAtOBA8Am2Dk5gbiRKbTVJmq+If4VvOd9Vz83AMAADyJJgUAAHgSTQoAAPAkmhQAAOBJNCkAAMCTaFIAAIAn0aQAAABPokkBAACeRJMCAAA8icTZCFpjlla6nVh8AECsOlIsfjhoUiKIWHzEFK/E0dtG19vUbTOWCH2gUsTiAwCAmEeTAgAAPIkmBQAAeBJNCgAA8CSaFAAA4Ek0KQAAwJNoUgAAgCfRpAAAAE+iSQEAAJ5EkwIAADyJWPwIYu0exJQIxtE7fr9FGcauDpu6I1SzJJlAwGq8J9guhcBSARBr99QarN0DAIg3rN0DAABiHk0KAADwJJoUAADgSTQpAADAk2hSAACAJ9GkAAAAT6JJAQAAnkSTAgAAPIkmBQAAeBKJsxFELD6qg1VkvG30um3suQc4PsduvD/J9dhgaZlNIVZ1yLGM87eZ2mKfWL1HIrgUAhH6sYtY/FqCWHwAQLwhFh8AAMQ8mhQAAOBJNCkAAMCTaFJcmjdvns455xw1atRIDRo0UM+ePTVjxoxolwUAQMyiSXFh1qxZ+sUvfqFNmzbpqquu0q233qr9+/fr8ssv1/PPPx/t8gAAiEmOMSZy18XFiNNPP125ublau3atGjRoIEkqKSlRp06dlJeXp7y8vHLjHefg5YDnOpfVeK2IPfFwCbLtZcVWc1vsP5tLkG3mlcJ4bSxE7BJk+0Lcj+US5LiTYw7++mDTdnjjG8rDysrKtGLFCg0YMCDUoEhSUlKSLrzwQv3www/asWNHFCsEACA2kZNShdLSUk2bNk0nn3xyhdt27NihjIwMZWZmRqEyAABiG01KFVJTU3XNNdeE/n3z5s3atWuX3n//ff3tb3/T6NGj5bc87AsAAKrGOSmWTjnlFK1cuVKSdOGFF2rmzJlKTEwsN+bwOSl1dZz1/M3UUllOq2MvFLHD4nd+23M7TNDi4295DoHNORtOQmLVgw4JlpTY1WFzvobF/vAl2v2NZ3MuiNXrIsvzYyxex4ie48Q5KbVartmorbJLkN2vnyTZnZNCk2Jpzpw5ys3N1fz58/XSSy+pR48e+vjjj8s1Kpw4i2pFk1IOTUpFNCmoDcI5cZafeyydc845kqShQ4fqZz/7me677z7NnDlTl19+eZQrAwAgtnB1TxU2bNig119/XVu3bq1w24ABAyRJa9asqemyAACIeTQpVdiyZYuuuuoqffDBBxVu27dvnySpadOKqz0CAIBjQ5NShS5duigtLU0vv/yyAv/x+6wxRs8++6z8fr969eoVxQoBAIhNnJNShbp162r8+PG6/fbbdcYZZ2jAgAFyHEcffPCBlixZojFjxqh9+/bRLhMAgJhDk+LCbbfdpqysLD355JN6/vnn5fP51KFDB/3jH//QJZdcEu3yAACISVyCHAFcgoxqxSXI5XAJckVcgozagLV7AABAzKBJAQAAnsQ5KRG0xiytdPvxaqJMx4OXLcfDoVqb5xhJFvvP9iccG76kpIjNLYu6bX6u8NnuD4ufLHx1ku3mtmAKi9zXkWj5s53tzzIRYvXTmk3Jtp/b2vr9FCN2m23K0/ZqmYsmJYLaO12iXQIAADUq02mqTFX8Q3yrsVvrR+LnHgAA4FE0KQAAwJNoUgAAgCfRpAAAAE+iSQEAAJ5EkwIAADyJJgUAAHgSTQoAAPAkmhQAAOBJJM5GUK2Lxa+NUdIRjMu2WlnWmsUKwTZ1RLBmJzlykfE20fXWdXhkoXerVaFTLJ9jUbH7sR75nNvsj4iuxhxJHtnXNY1Y/FqCWHwAQLwhFh8AAMQ8mhQAAOBJNCkAAMCTaFIAAIAn0aQAAABPokkBAACeRJMCAAA8iSYFAAB4Ek0KAADwJBJnI6jWxeKjPItobcfn2M1tE1/vuJ/bl1bHqgzruHELToLF10tSmvuxtjWXlbkfG4xghH6qxXskgq+LVWS8Y7k/IrTsRCTfp9biNOreBrH4tQSx+ACAeEMsPgAAiHk0KQAAwJNoUgAAgCfRpAAAAE+iSQEAAJ5EkwIAADyJJgUAAHgSTQoAAPAkmhQAAOBJJM5GELH4AIB4Qyx+LUEsvvfYrBdisx6Pk5xsVYfNWiSOz+KAp+XaM47NOi4Z9azmlk3dxqLuMst1XGxem+RE92PzC63KcEpL3Q9OtKhDkgoK3I+1eI84Nq+LJGPzHC3WVPIlp9jVUea+DhPJ9ZriFLH4AAAg5tGkAAAAT6JJAQAAnkST4tK6det09dVXq2nTpkpPT1e3bt00adIkBYPBaJcGAEBM4sRZF/Ly8tS7d2/t27dPF198sdq0aaM5c+Zo5MiRWrBggaZPnx7tEgEAiDkcSXHh3nvv1Y4dOzRjxgy99tpreuCBB/TJJ5/o5ptv1ptvvqnZs2dHu0QAAGIOTYoLH330kTp06KALLrig3Pa7775bkjRv3rxolAUAQEyjSXHB7/erR48eFbYHDmVd7Nq1q6ZLAgAg5nFOigvr16+vdPvrr78uSercuXNNlgMAQFxwjLGMFIQk6ZlnntGoUaPUqFEjrVu3TnXr1g3d5jgHk0rr6jjreZuppbKcVtVWZ8yzSUyVZYqsTTqtRxJnbeuwUlsTZ21EMHFWEUycNRFKnLV6XRS5xFnbz3lEE2cNV3RKUq7ZqK2yS5Ddr58kSTZtB02KpbVr12rkyJHKycnR8ccfr1mzZqlLl/Lx94eblHOdy6JRovfYNhIWzYHtF4aT4P7L30m0ONCYYHlQ0uZDWifV/bwlFv+RkKS66a6HBhrVt5raKbL4j5BNP2Pz/rCc21fofv8F0uwaQn9BieuxTonFvpOkUovxB/JdDzVFxXZ1OO7/CLD5DJhCu4bQ5o+ASIpo5H4tbJZyzAxJdk0K56S4FAwG9ac//UmdO3dWTk6OBgwYoOXLl1doUAAAQPXgnBQXjDG68sor9eabb6ply5aaNGmSLrzwwmiXBQBATKNJcWHixIl68803demll+qVV15RWlpatEsCACDm0aRUIRAI6JlnnlHDhg312muvKSXFbslwAAAQHpqUKnz77bfKzc3VGWecocmTJ1c65rTTTtPZZ59dw5UBABDbaFKqsGnTJknSkiVLtGTJkkrHjBo1iiYFAIBqRpNShf79+1tdLgUAAKoHlyADAABPokkBAACexM89EbTGLK10+/FqokynaQ1XAwBA5O0225Sn7dUyF01KBLV3alkarWV8vetpLWPMbdbXkWO3xolN1L0Juo+d9tlE10uSTeR+wH0dprHd+jqB+nXcj022ex39FhHp+VmW+89C0n6LdZLquY+6DyZavE8lJdmsG1Vi99XslLp/jj6L955zwGJNIMlqfSKTbzG39dIa7scGS9wvVxBOLa7Vwpj7I8l0mipTFf8Q32rs1vqR+LkHAAB4FE0KAADwJJoUAADgSTQpAADAk2hSAACAJ9GkAAAAT6JJAQAAnkSTAgAAPIkmBQAAeBKJsxFELD4AIN4Qi19L1LpY/EjFMhu7+HDjPuHbKv5asoy6T7WIag9YFC1JFpHx5ri67uf1WR4cNcb10NK6dju7qKH7JQtK093vj0CS3fupNM1uvFtJB9zvO0kKpETuwHXyD+6j3RP2u5/XV2T5nwiLWHwlWMTzW4yVJFNYZDG33dIaxuazHkNR9zaIxQcAADGPJgUAAHgSTQoAAPAkmhQAAOBJNCkAAMCTaFIAAIAn0aQAAABPokkBAACeRJMCAAA8icTZCCIWHwAQb4jFryVqXSy+4/7AmuO3iEi3jYa2qMMmWluSnKQk94N9FnHqx9W3qsMmjj5Qz308f0l9u4jvogbu919JPbt4+aIG7sc6Fm+RoOW3lmOxLEOiRWS8TZS/JPndJ7XLsXh/SFJCvvvPoxN0/xlwSsqs6nAsPuuOxRIOpqDQqg75Lb7LbD7nluNN0P3raMoslhTwOGLxAQBAzKNJAQAAnkSTAgAAPIkmBQAAeBJNCgAA8CSaFAAA4Ek0KQAAwJNoUgAAgCfRpAAAAE+iSQEAAJ5ELH4E1bq1eywirU2ZRfy1TYS+5XibaG3rWpKTXQ8ta5BmVYfxu4/WLmroPsa8uL7d/ihNc19HabrV1Co+3n0kuGORCB5MsYuMN+nuo90Lytzvv5Ttdl+fSXvdjzW2Ue1B98shpG23iHX32b2vk4otYvQtov+dFPefRUlSIOB+rOXSGsH97tdOMBZ12H5P2sxd01i7p5aodWv3AABwjFi7BwAAxDyaFAAA4Ek0KQAAwJNoUsJw3nnn6Z577ol2GQAAxDSaFEtff/215s6dG+0yAACIeVzd40JJSYnee+89LVy4UNOmTVPAw5d+AQAQK2hSXNi9e7cuueSSaJcBAEBc4eceF5o1a6aioiIVFRXpm2++iXY5AADEBY6kuJR8KH002SKFFAAAhI8mJYIWmY+t79NMLZXltIpANVWzjWV2PW+C+8huSXIS3b8tndQUu2LqpLofm+i+bp9NHLik4uPd11GQ6f518ZXZRcYXNbQYm2X3HJXofumErKwfXI8tKbOMo09wX/euvXVdjy3baxcZX2Yx3F9gF4ufvMf9+OLj3L+f6hTaveZlJ9RzPda/r9D1WGd3iVUdSnL/2TVFxVZT23yf2UTXm6DdZzfacs1GbZV9gqwtmpQI6u70jXYJAABUuyynlbJk9wd1jplh/TickwIAADyJJgUAAHgSTQoAAPAkmhQAAOBJNCkAAMCTaFIAAIAncQmypZ/97GcypnZdzw4AQG3EkRQAAOBJNCkAAMCT+LkngtaYpZVuP15NlOk0jXwBjl0PahPhbBOhbzOvJDkWkdZy7OLDVWYRU13PfY55aT27NZ0Cye7rTsp3//Pivp/Z7Q+bqPak44qs5m7WYI/rsQk+9xH6man5VnWk+Etdj01LdB+/vjFot69LC9y/r4MWS0NIUmGm+8+6E3Bfd8lxSVZ1pG1w/5o7hRZR9yl2ny8n6P79ZLP8hSSZMos4f5vvyVoWi380u8025Wl7tcxFkxJB7Z0u0S4BAIAalek0VaYq/iG+1div9cPPPQAAwJNoUgAAgCfRpAAAAE+iSQEAAJ5EkwIAADyJJgUAAHgSTQoAAPAkmhQAAOBJNCkAAMCTSJyNoIjE4ltG3VtNHaEIZ1+K5dvMog7rWPxk9zHfJtFifyRYxtGnun8d97ZyP7dTZlWGyhoXux7b4rh9VnNnJLuP0T8xPc/12GZJP1nVUd9f4H7uxB9dj/1rSi+rOlblNXY9dk9Bfau5Aynux5bWdf9+Mj6Lz6Kk5B/ruB7rT3YfR+/b4f51sea3/E61+Q52LKLujfvlG6zrMBbLBFQDYvFrCWLxAQDxptbE4hcUFGjFihUqKHD/lwwAAIB0jE3K9u3b9eqrr2rq1KnlthcXF+vWW29VvXr11LlzZ2VkZKhPnz7avHnzMRULAADiR9hNyr/+9S917NhR1157rd58881yt40dO1aTJk1SMBiUMUZlZWX69NNPdeaZZ2r9+vXHXDQAAIh9YTUpubm5GjJkiPbs2SNjyp8YtHPnTv3pT3+S4zhq1aqVnnzySd18881yHEe7du3S+PHjq6VwAAAQ28I6cfaxxx5TcXGxUlJS9MILL+jSSy8N3fbPf/5TgUBAfr9f77//vtq0aSNJys7O1u9//3tNnz5djz32mBo3dn+mOwAAiD9hHUn54osv5DiOrr32Wl1zzTVKT08P3fbee+9Jknr06BFqUCTp5ptvVnJysgKBgFauXHmMZQMAgFgXVpPy3XcHLyPq2bNnhdsWLFggx3HUt2/fctvr1KmjFi1alLs/AADAkYTVpJSUlEiSkpLKB2OtWLFCe/bskSSdffbZFe53+PyVvXv3hvOwAAAgjoTVpJx44omSpHXr1pXb/sEHH0iSUlNTKxxlCQQC2rRpkyQpKysrnIcFAABxJKwTZ08++WQtW7ZML730kkaNGqX09HQVFxdr8uTJchxH5513npKTk8vdZ+rUqSorK5PjOKGffWJdRGLxIxpv7D4C2/FZxMBbROhLkizmNgWFVlM7FrH4gTruY7tL0+3iwxMK3b+OvhL3f0vktwhY1SHjfl/7Hbv3Xsd621yPrZ/gPvBxcD27c9oWFjVyPfbnKfmux36csseqjm/9ma7HJh7vfkkBSQoccB9HX5oeuWUWSuq7/8zU+dH9vjYN6tkVsmWH+7EBy8+MDYvva5tlSQ5Obfm96roQy2MXlTzHqMfijxw5Uq+99po2bdqkbt26aeDAgZo7d66+++47OY6jIUOGhMauXbtW06dP14QJE+Q4jpo3b66uXbtWS/FeRyw+ACDeVGcsflhNSteuXfXb3/5WL730kr755ht98803odu6d++uwYMHh/59xIgRWrBgQeh8lPvuu0+Jie67bQAAEJ/CTpx98cUX9cgjj6hly5YyxighIUEXXXSRZs6cWWGsMUZpaWmaMmWKrr/++mMqGAAAxIdjWgX57rvv1t133609e/aobt268lfym9q9996r+vXr6+STT1a9epa/KwIAgLh1TE3KYRkZGUe8rX///tXxEAAAIM4c0yrIAAAAkXLUIymffvpp6P+fddZZlW4Px3/OBQAAUJmjNim9e/eW4zhyHEdlZWUVtofjv+cCAACoTJXnpBy+dNjtdgAAgOpw1Cblk08+sdoOAABQXY7apFS2SODRtqO8iMTi27CMN7aJWfYlWlwY5rc8P9uiDic9zWpqk+Y+PtwmBd7YLBMgaX9z9xHYgeSqx4TqSLI8whlwX3fTtH1WUzdKdL+QaNtk9xHajf3pVnU09LuPX59TWN/12JPrbLWqo/AE90syvLOjk9XcpoH7n9ATDrgP00zZE7kj5sFU929s/08H7Ca3WP7ClJbazW0Ro+8Y959zE8l4fpv/FlTD0itRj8WHO8TiAwDiTXXG4od1CfINN9yg/Hz3f50ctn79evXp0yechwQAAHEmrCZl6tSpOvXUUzV//nxX440xeuKJJ9S5c+djvnwZAADEh7CaFJ/Pp40bN6pPnz666667VFJScsSxa9asUc+ePXXXXXepoKBASUnufysEAADxK6wmZdGiRTrllFMUDAb1xBNPqEuXLvryyy/LjQkEAvrDH/6g008/XV988YWMMerVq5eWLVtWLYXXtNLSUt1777068cQTlZaWpu7du+ujjz6KdlkAAMSssJqULl26aOnSpXrwwQeVmJioVatWqUePHho/fryCwaC++uorde3aVQ888ICKi4uVnp6u5557Tp9++qnatWtX3c8h4oLBoPr166fHHntMXbt21e9+9zvt2bNHgwYN0meffRbt8gAAiElhr92TkJCg+++/X19++aW6deum0tJSjRs3Th06dFD37t311VdfyRijgQMHavXq1brpppuqs+4aNX36dH3yyScaP3683nzzTT3yyCP67LPP1KhRI1133XXRLg8AgJh0zAsMdujQQZ9//rmuv/56GWP07bffqrS0VAkJCXr99df1r3/9S82aNauOWqPmjTfeUEpKikaNGhXa1rBhQw0fPlxr167VmjVrolgdAACx6ZiblLKyMj344IP661//KsdxQnH5gUBAEydO1FdffXXMRUbbF198oV69eqlOnfJBYP369ZMkzZ49OxplAQAQ046pSVm8eLFOO+00jR8/XiUlJWrevLlmzZqlhx9+WImJifrqq6/UrVs3jRkz5qhXAHlZfn6+8vLyKj0adHjbzp07a7osAABiXliJs0VFRbr//vv11FNPKXAoynfEiBGaOHGi0tPT1a9fP/3yl7/U0KFDtWLFCj366KN6++23NW3aNPXq1atan0Ck7dt3MAr8uOOOq3BbgwYNJEl5eXmV3neR+dj68ZqppbKcVtb3AwCgpuSajdoq+wRZW2E1KZ06ddKGDRtkjFHz5s01bdo0nXfeeeXGnHrqqVqyZInGjh2rCRMm6JtvvlHv3r1100036dlnn62W4mtCYuKR17k43KAFjrDmQnenb0Rqcs1yDQbHb7HOhM36OrYrZpe5X4dEjt2aOSbJ/Vvel+/+6F9Knt1BybIU9+uWBBPcP8eiErv9obru1wspCrhf80WSfixzv8aOP8X9e3VXwG4dlxLjfj0eG98VZ1qNT0sodj22Tkah1dxFm+q5Hhu0WAvKCdh9dh2L4b5iizVzbL4TJClo8d1n8V0WSY5thlip+30SiXWBspxWylIrq3WBcoJvWT9OWD/3rF+/XsYYXX/99Vq5cmWFBuWwxMREPfLII/r000/VunVrBYNBPf/88+E8ZNQ0bNhQCQkJ+vHHHyvcdnhbkyZNarosAABiXlhNSlZWlmbNmqUpU6aobt26VY4/88wz9fXXX+uWW24J5+GiynEcNWrUSLm5uRVu27r14CqoNCkAAFS/sH7uWblyperVc394UZJSUlL0zDPP6JJLLgnnIaOqZ8+e+t///V/l5+crLS0ttP1w4myPHj2iVRoAADErrCMptg3Kf6qNqyAPGzZMxcXFevLJJ0Pb8vLyNHXqVJ122mk6/fTTo1gdAACxKawjKeE688wztX79ev31r3/VhRdeWJMPfUz69euniy66SGPHjtWqVauUnZ2tt99+W7t379ZLL70U7fIAAIhJxxzm5tbixYu1dOlS/fTTT1q5cmVNPWy18Pl8mjFjhu68806tXr1aU6ZM0UknnaQPP/xQ55xzTrTLAwAgJoV9JOXAgQO6/fbbNXfuXG3cuNHVfYwxchwnlC9SmyQmJuqxxx7TY489Fu1SAACIC2E1KaWlpfr5z3+uFStWhGLw3WrZsqUuv/zycB4WAADEkbCalL/97W9avny5HMdR+/btNWDAAJWWlmrKlCkqLCzUiBEj1KRJExlj9PXXX+vdd98NreVz4403KjU1tbqfBwAAiDFhNSmvvvqqJOmkk07SF198Ebost0mTJrr77rt15pln6pprrgmNz8nJ0a9+9Su98MIL+u1vfxs3Tcoas7TS7ceriTKdpjVcDQAAkbfbbFOe2VYtc4XVpGzevFmO42jo0KHlckPOO+88jR49WvPmzSvXpJx77rm688479dBDD2n06NGaPHnysVdeC7R3ulT/pBYRxLax+DbRyb4k9xH6tpzUFNdjTX6B1dw+izj6shPcx6kHku3OQQ9afPKCFmn0/iK7OgLuk+u17YBd9MCpFsM7JO53PXZFiV3MfYFx/5p/U+Q+mPGHEoudJ2nOltaux5aU2H01J+53vxyCzfvJmkXEfDDZfSFORtWhof/Jd8D994LNciCSrE5xCFpE1zuW8fymzGJZgUiq5L8zmWqsTKdxhe1bjbvzV/9TWFf3HE5aPemkk8ptb9u2rRzH0ZdfflnhPrfeeqsk6S9/+Yt2794dzsMCAIA4ElaT4j9C55mamqrmzZtr3bp1FbrNBg0aqHHjxgoGg5o9e3Y4DwsAAOJIWE1K48YHD+Ns2LChwm1t2rRRcXGxvvrqqwq3HXfccZL+/0gMAADAkYTVpHTv3l3GGL300ksqKCj/299pp50Wuu0/FRQUaNOmTZKkE044IbxqAQBA3AirSRk6dKgkaePGjeratasmTZoUum3AgAGSDl4BtHr16tD2MWPGqLCwUNLBc1cAAACOJqwmpW/fvho+fLiMMVqzZo3GjBkTuq1Xr15q1KiR9u3bp9NPP13dunVTdna2nnnmGTmOo06dOrFqMAAAqFLYa/dMnjxZDzzwQIWIe5/Pp5kzZyolJUUlJSVasmSJvv/+exljlJGRoRdeeOGYiwYAALHvmBYYHDdunPLy8rR27dpy27t3766cnBxddtll6tixo3r06KFbbrlFX3/9tc4888xjKhgAAMSHsMLc1q1bpzZt2oT+vUmTigFIPXr04GcdAAAQtrCalPbt24ei7wcPHqz69e0SIOMFsfgAgHiz22xTnrZXy1yOsV3GWAfPO3GcgzHMycnJuuiiizR06FD1799fPt8x/YIUEw7vm3OdyyIweeRi8W3mtomSdnzuI7slyUlKcj82rY7V3KrrPsq8pFmG+3ktP0YFTdxHtVjZrREAACAASURBVBfXd/+67M+2KkPBlu7jw9s02WU1d36p+9fxyqwvXI/N8NsthZAfdL+vt5e6f82X7PmZVR2b9x7neuz+fPdLQ0iSf2Va1YMOSf7J/bypP9h9h6RtLXY9NvGHfNdjnTLL77I8908yeMB9HZEULC6K3OSR/O+GhRwz4+BDWHxfhtVR3HnnnWrWrJmMMSoqKtLf//53DRw4UM2aNdNdd92lFStWhDMtAABASFhNyuOPP67Nmzdrzpw5GjZsmOrWrStjjHbu3KknnnhCnTt3VpcuXfTss88qLy+vumsGAABxIOzfZhzHUZ8+fTRt2jTt3LlTb731li666CIlJCTIGKNly5Zp1KhRatasmX71q1/pn//8p8rK3K8ICQAA4lu1nECSnJysyy67TDNnztT27dv1/PPPq2fPnjLGqLS0VO+8844uu+wyNWnSRLfeequWLq38hFIAAIDDqv0s1wYNGujGG2/U/PnztWHDBo0YMULGGBlj9MMPP+i5555Tt27d1LFjR02cOFH79++v7hIAAEAMiMilONu3b9ezzz6ra665RtOmTQtd7SIp1LCsXr1ao0ePVsuWLTV9+vRIlAEAAGqxsHJSKrNt2zbNmDFDf//73/X555+HLjE6/L9nnHGGhgwZov79+2v27Nl68cUXtWrVKv3444+6+uqrVa9ePf3yl7+srnIAAEAtd0xNytatW0ONycKFCys0Jp06ddLgwYM1ePBgtWrVKnS/Dh06aNSoUfrb3/6mm266SXv27NHDDz9MkwIAAELCalKefvppvfXWW1q0aFGFxqRt27YaMmSIBg8erHbt2h11nsGDB2vBggWaNGmSVq1aFU4pAAAgRoXVpNx2221yHCfUmLRs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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "histograms[\"hpxpy\"].to_hist().plot();" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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PQAAwBe4ZD3OkdMDAO7VJqenHHk98YumJ86R0+Oem8A3Y/CgJCslxXG9m9A4K2DYyeoirM8yheRlNDHOIVMdtougvTLD/TU8XsfHJDmvP1ZonMIqLXUekGTYhiQVFJjHGJ4by8VjZptqdRHoGEhJdd5GmWEbkuxIhELGmdrk9JQjryd+cXjLY7Zs2aIxY8aobdu2atSokfr166ennnpKoVD9S0YFACCa2NPjIXl5eTr//PN1+PBh/exnP1OXLl20fPly3XbbbVq1apXmzJkT6xIBAIhb7OnxkHvuuUf79u3TvHnz9Morr2jKlCl650w8YVkAACAASURBVJ13dMstt2ju3LlavHhxrEsEACBu0fR4yJIlS9StWzf99Kc/rbR80qRJkqR33303FmUBAFAv0PR4SEJCggYMGFBlefD/Toz99ttvo10SAAD1Buf0eMjWrVurXT579mxJ0plnnhnNcgAAqFdoejzuySef1H333afWrVtr7NixVdZ/YC+r8Zzt1FFZVqdIlAcAnpNrb9duub8EPVzleT0/XkZ2j3dZtu0miAPRtmnTJt12221aunSpWrRoobffflu9e/87k8eyjufJXGRdHasSI8uQOeMmY0e282X9VqI5p8VKcvE9INEwxsVbymqQ5jygxJyxosaNHFcHW6Wb6ygy5MG4OABum54bF3MECp3vb7ChOesnoaDEcb1VYs6+UamLMUePOa62i4rNc1iGPCg3WT+FztlFbvKiIiEiWT+G9240LLXnSZJq+ycxe9JC7Xjo0kiUhDrAOT0eEwqF9Nhjj+nMM8/U0qVLddlll+nzzz+v1PAAAICa4/CWh9i2rV/+8peaO3euOnbsqKeeekqXXHJJrMsCAKBeoOnxkEcffVRz587Vz3/+c7300ktq2LBhrEsCAKDeoOnxiGAwqCeffFLNmzfXK6+8otRU59/VAQAANUPT4xFfffWVcnNz1adPHz333HPVjunVq5fOO++8KFcGAED9QNPjETt27JAkrV27VmvXrq12zJ133knTAwBAmGh6PGLYsGG1vlQSAACcGE1PnNtor6t2eQu1UabVNjpFGDJ2XE1hyHqxAoZcE0mynHN43GTw2CFzXkjAlLHjJusn6Lwdu3UT8xTpDZzXp5izjRIMeTHHsgz31YXkI+a8GKuJcw5PKMn8/CcbXiNWifl5sUrNtQYMz691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qv0FGKE0wwtEUsL3R50HuAjjtEtLnQe4CC+0bOfXux2JAEQXn0Nug1bJ6fE2p6YmEhk+nj28FQgEtH37dg0ePFh33323SkpKTjh248aNGjhwoO6++24VFBQoOdn8Zveq0tJS3XPPPTr55JPVsGFD9e/fX0uWLIl1WQAAxD3PNj0ffPCBzjjjDIVCIf3pT39S79699fHHH1caEwwG9d///d8666yz9OGHH8q2bQ0aNEiffPJJjKqunVAopIsvvlgPP/yw+vbtqzvuuEOHDh3SFVdcodWrV8e6PAAA4ppnm57evXtr3bp1uv/++5WUlKQNGzZowIABmj59ukKhkD799FP17dtXU6ZMUXFxsRo1aqSnn35aK1eu1GmnnRbr8sMyZ84cvfPOO5o+fbrmzp2rBx98UKtXr1arVq30H//xH7EuDwCAuObZpkeSEhMTdd999+njjz9Wv379VFpaqmnTpqlbt27q37+/Pv30U9m2reHDh+vLL7/UzTffHOuSa+Uvf/mLUlNTdeedd1Ysa968uW688UZt2rRJGzdujGF1AADEN083PeW6deum999/XzfccINs29ZXX32l0tJSJSYmavbs2XrzzTfVrl27WJdZax9++KEGDRqkBg0qn3B78cXHT+xavHhxLMoCAKBeiIump6ysTPfff79efvllWZZV8fMUwWBQjz76qD799NMYV1h7x44dU15eXrXNW/my/fv3R7ssAADqDc9esl7uo48+0vXXX68vv/xStm2rffv2ysnJ0dq1a/Vf//Vf+vTTT9WvXz/dfffdmjp1atxeuXX48PHLi5s2bVplXbNmzSRJeXl5VdZ9YC+r8bbaqaOyrE41vh0AxINce7t2i0vQ65vqMnxqmt3j2aanqKhI9913n/785z8r+H85D+PHj9ejjz6qRo0a6eKLL9all16qsWPHav369XrooYf0+uuv6/nnn9egQYNiXH3NJSWdOPuj/P4Hq8m76G8NqbOaJLnKvrASDDkdbjJ2TD8uW2bOT5HlnFtjJ5tf7oFjJ45GKJea57yDtCzVnLESSnSutajEeb0kqbFz/klR0DlPRpK+K3PO2ElINT//3wad82JKbOcMHje+Ls40jmmYWOy4vkGGOb+raEcT45iQ4em1gm5e787rA8WG/BzJ/J4IucitcfHerC3LzRfRUuf7UtOsnyyrk7L0oy92hqyf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PKb4m8bGOdL2mPOREg3xRxlbS50HSEoscM7pSd7j4pB+qWE7R53zkyTJLnbOAwoVmfOCjNsIOudJRYzLnJ4TWWrPOz6Nd/8k+kb2pIURyeSpjmcPb0nH/7APHjxYzz//vPbv36+//vWvuvzyy5WYmCjbtvXJJ5/ozjvvVLt27XTllVfqjTfeUFmZi3QxAADgO55uen4oJSVFV199tebPn6+9e/fqmWee0cCBA2XbtkpLS7VgwQJdffXVatOmjW6//XatW1f9YR8AAOBPcdP0/FCzZs1000036V//+pe2bdum8ePHy7Zt2batgwcP6umnn1a/fv10+umn69FHH9WRI0diXTIAAIixuGx6JGnv3r36n//5H1133XV6/vnnK85xkVTRAH355ZeaOHGiOnbsqDlz5sSwWgAAEGuevXqrOnv27NG8efP02muv6f3336844az8//v06aNRo0Zp2LBhWrx4sV544QVt2LBB3333ncaMGaMmTZro0kvr5uQoAADgbZ5venbv3l3R6KxZs6ZKo9OjRw+NHDlSI0eOVKdOnSpu161bN91555169dVXdfPNN+vQoUN64IEHaHoAAPApzzY9TzzxhP7617/qgw8+qNLonHrqqRo1apRGjhyp0047zXGekSNHatWqVXrqqae0YcOGOq8bAAB4k2ebnt/85jeyLKui0enYsaNGjhypUaNGqUePHjWaq1WrVpJUaU9QfbHR/rja5S2stspUa/MEpowdF9kXVsCQbeIix8cuKXEekGDOvlGJc26JlWLOnLEKXWSsWM73t8ywXpKSjzhngdgu5ihq7ry+2EX00Sdb2zuuT29+1DjHnkPO2Uadmh80zrHvcBPH9UcPm3N67ELnj7OUw+bH1M1ZjmkHnd8TiUXmXJrEo4bXu5usmMIi5/Wm96XM7zvLxfvOLjO/Z2qtlhk8P0Q4YWxUFzh4IpEKIqyOZ5seSWrXrp2uueYajRw5Un379g17nqFDh+qkk05Shw4dIlidN3QN9Dnxygh+UABAfZBptVWmqqbV77a/jkE1/pFfWFpngYM14dmmZ+XKlRo0aFBE5urXr5/69esXkbmiZfbs2ZowYYL27uUbCQAAkeDZS9Yj1fDEo7KyMj311FOxLgMAgHrFs02PH61du1ZPPPGEBgwYoDVr1sS6HAAA6hXPHt7yo9///vdaunRprMsAAKBe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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "histograms[\"hpxpy\"].to_hist().plot2d_full();" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "from uncertainties import unumpy as unp\n", + "\n", + "def pdf(x, a=1/np.sqrt(2*np.pi), x0=0, sigma=1, offset=0):\n", + " exp = unp.exp if a.dtype == np.dtype(\"O\") else np.exp\n", + " return a * exp(-(x-x0)**2/(2*sigma**2)) + offset" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "histograms[\"hpx\"].to_hist().plot_pull(pdf);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "See the [hist examples](https://github.com/scikit-hep/hist/tree/master/notebooks) on how to do this more beautifully/elegantly." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exploring a TTree\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It's generally useful to first look at a TTree with `show`." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "name | typename | interpretation \n", + "---------------------+----------------------+-----------------------------------\n", + "run | int32_t | AsDtype('>i4') \n", + "luminosityBlock | uint32_t | AsDtype('>u4') \n", + "event | uint64_t | AsDtype('>u8') \n", + "PV_npvs | int32_t | AsDtype('>i4') \n", + "PV_x | float | AsDtype('>f4') \n", + "PV_y | float | AsDtype('>f4') \n", + "PV_z | float | AsDtype('>f4') \n", + "nMuon | uint32_t | AsDtype('>u4') \n", + "Muon_pt | float[] | AsJagged(AsDtype('>f4')) \n", + "Muon_eta | float[] | AsJagged(AsDtype('>f4')) \n", + "Muon_phi | float[] | AsJagged(AsDtype('>f4')) \n", + "Muon_mass | float[] | AsJagged(AsDtype('>f4')) \n", + "Muon_charge | int32_t[] | AsJagged(AsDtype('>i4')) \n", + "Muon_pfRelIso04_all | float[] | AsJagged(AsDtype('>f4')) \n", + "Muon_tightId | bool[] | AsJagged(AsDtype('bool')) \n" + ] + } + ], + "source": [ + "tree = root[\"Events\"]\n", + "tree.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These are all the branches of the TTree with the type name of the branch (if Uproot can determine it) and its interpretation as an array (if possible).\n", + "\n", + "TTrees also have a dict-like interface." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['run',\n", + " 'luminosityBlock',\n", + " 'event',\n", + " 'PV_npvs',\n", + " 'PV_x',\n", + " 'PV_y',\n", + " 'PV_z',\n", + " 'nMuon',\n", + " 'Muon_pt',\n", + " 'Muon_eta',\n", + " 'Muon_phi',\n", + " 'Muon_mass',\n", + " 'Muon_charge',\n", + " 'Muon_pfRelIso04_all',\n", + " 'Muon_tightId']" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tree.keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('run', ),\n", + " ('luminosityBlock', ),\n", + " ('event', ),\n", + " ('PV_npvs', ),\n", + " ('PV_x', ),\n", + " ('PV_y', ),\n", + " ('PV_z', ),\n", + " ('nMuon', ),\n", + " ('Muon_pt', ),\n", + " ('Muon_eta', ),\n", + " ('Muon_phi', ),\n", + " ('Muon_mass', ),\n", + " ('Muon_charge', ),\n", + " ('Muon_pfRelIso04_all', ),\n", + " ('Muon_tightId', )]" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tree.items()" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'run': 'int32_t',\n", + " 'luminosityBlock': 'uint32_t',\n", + " 'event': 'uint64_t',\n", + " 'PV_npvs': 'int32_t',\n", + " 'PV_x': 'float',\n", + " 'PV_y': 'float',\n", + " 'PV_z': 'float',\n", + " 'nMuon': 'uint32_t',\n", + " 'Muon_pt': 'float[]',\n", + " 'Muon_eta': 'float[]',\n", + " 'Muon_phi': 'float[]',\n", + " 'Muon_mass': 'float[]',\n", + " 'Muon_charge': 'int32_t[]',\n", + " 'Muon_pfRelIso04_all': 'float[]',\n", + " 'Muon_tightId': 'bool[]'}" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tree.typenames()" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "isinstance(tree, Mapping)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Muon_pt',\n", + " 'Muon_eta',\n", + " 'Muon_phi',\n", + " 'Muon_mass',\n", + " 'Muon_charge',\n", + " 'Muon_pfRelIso04_all',\n", + " 'Muon_tightId']" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tree.keys(filter_name=\"Muon_*\")" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Muon_pt', 'Muon_eta', 'Muon_phi', 'Muon_mass', 'Muon_pfRelIso04_all']" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tree.keys(filter_typename=\"float[]\")" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['run', 'luminosityBlock', 'event', 'PV_npvs', 'PV_x', 'PV_y', 'PV_z', 'nMuon']" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tree.keys(filter_branch=lambda branch: not isinstance(branch.interpretation, uproot4.AsJagged))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Turning branches into arrays\n", + "\n", + "If a branch has a known interpretation, you can call `array` on it to get an array." + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tree[\"Muon_pt\"].array()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First thing to notice: this is not a NumPy array. It's because the data have different numbers of values in each element (a jagged array)." + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[52.00833511352539, 42.85704040527344],\n", + " [5.019948482513428],\n", + " [15.967432022094727, 12.481289863586426],\n", + " [53.42825698852539, 38.43761444091797],\n", + " [7.178549766540527, 5.597340106964111],\n", + " [47.27000427246094, 39.6187858581543],\n", + " [5.050840377807617, 16.29404067993164],\n", + " [17.36166763305664, 26.066043853759766],\n", + " [42.84968566894531, 74.1303482055664],\n", + " [33.52196502685547, 21.316774368286133],\n", + " [13.822826385498047, 27.89041519165039],\n", + " [12.187352180480957],\n", + " [24.41823387145996, 3.560229778289795, 28.34453010559082],\n", + " [22.598438262939453, 9.5486421585083],\n", + " [12.511752128601074, 11.833377838134766, 45.572383880615234],\n", + " [35.032833099365234, 36.92668533325195],\n", + " [39.79318618774414, 39.22704315185547],\n", + " [42.45128631591797, 45.18961715698242],\n", + " [17.6611270904541, 7.474045753479004],\n", + " [6.152662754058838]]" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tree[\"Muon_pt\"].array()[:20].tolist()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can (in Uproot 4) _force_ it to be a NumPy array, but it isn't pretty:" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([array([52.008335, 42.85704 ], dtype=float32),\n", + " array([5.0199485], dtype=float32),\n", + " array([15.967432, 12.48129 ], dtype=float32),\n", + " array([53.428257, 38.437614], dtype=float32),\n", + " array([7.17855, 5.59734], dtype=float32),\n", + " array([47.270004, 39.618786], dtype=float32),\n", + " array([ 5.0508404, 16.29404 ], dtype=float32),\n", + " array([17.361668, 26.066044], dtype=float32),\n", + " array([42.849686, 74.13035 ], dtype=float32),\n", + " array([33.521965, 21.316774], dtype=float32),\n", + " array([13.822826, 27.890415], dtype=float32),\n", + " array([12.187352], dtype=float32),\n", + " array([24.418234 , 3.5602298, 28.34453 ], dtype=float32),\n", + " array([22.598438, 9.548642], dtype=float32),\n", + " array([12.511752, 11.833378, 45.572384], dtype=float32),\n", + " array([35.032833, 36.926685], dtype=float32),\n", + " array([39.793186, 39.227043], dtype=float32),\n", + " array([42.451286, 45.189617], dtype=float32),\n", + " array([17.661127 , 7.4740458], dtype=float32),\n", + " array([6.1526628], dtype=float32)], dtype=object)" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tree[\"Muon_pt\"].array(library=\"np\")[:20]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The data type (`dtype`) of this NumPy array is `object`, meaning that each element it contains is a Python object, namely another NumPy array.\n", + "\n", + "The default is for all arrays to be Awkward arrays, but you can override this by specifying `library`.\n", + "\n", + "The difference is that Awkward arrays interpret nested lists as a second dimension, whereas NumPy object arrays do not:" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "awkward_array = tree[\"Muon_pt\"].array(library=\"ak\")\n", + "numpy_array = tree[\"Muon_pt\"].array(library=\"np\")" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# from the first 20 events, get the first item\n", + "awkward_array[:20, 0]" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "tags": [ + "raises-exception" + ] + }, + "outputs": [ + { + "ename": "IndexError", + "evalue": "too many indices for array", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# doesn't work with NumPy object arrays because contents are not guaranteed to be arrays\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mnumpy_array\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;36m20\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m: too many indices for array" + ] + } + ], + "source": [ + "# doesn't work with NumPy object arrays because contents are not guaranteed to be arrays\n", + "numpy_array[:20, 0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another valid library is Pandas. Pandas has its own way of describing variable length structures (`MultiIndex`)." + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "entry subentry\n", + "0 0 52.008335\n", + " 1 42.857040\n", + "1 0 5.019948\n", + "2 0 15.967432\n", + " 1 12.481290\n", + " ... \n", + "999997 1 3.336458\n", + "999998 0 4.999241\n", + " 1 14.161738\n", + "999999 0 18.304218\n", + " 1 9.717607\n", + "Length: 2366345, dtype: float32" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tree[\"Muon_pt\"].array(library=\"pd\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the original one-liner, we used colon (`:`) to separate a file path/URL from an object path to get to the branch:" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "uproot4.open(\"data/opendata_muons.root:Events/nMuon\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And \"cast\" the branch as a NumPy array, which is the same as calling `array` with `library=\"np\"`." + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([2, 1, 2, ..., 2, 2, 2], dtype=uint32)" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.array(uproot4.open(\"data/opendata_muons.root:Events/nMuon\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This can be useful if you're passing the branch to a library that expects an array. _(Warning: only do this with non-jagged arrays!)_" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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sWPVznn16lXt3r3bnFOSU62Pj4/69u1rzllV26lTJ4WGhjrNKcmhFgAANG61asdx4sQJl+OrVq2SJN177706efKkJCkkJMSprmqsuLhYrVq10smTJ9WuXTt5e3s71Hl6eiooKEhFRUWSrn+dZhhGjXNW1d7s+GVlZaqoqFCTJk108uRJhYeHO9W1bdtWPj4+5pwAAKDxu+Vb61NSUjRv3jwFBQVp7NixOn/+vCSpdevWTrUBAQGSrl+ILUnnz593WVdVe2NdXea8WW3VXW21PT4AAGj86tyo9fjx45o6dar+9re/qW3bttqyZYv8/Fhr1/0AABgeSURBVPyczvLcqOrrtKqfb1Zb27q6zHkrx/+hqKioat9XnUmTJlXb4BUAANRNamqqUlNT63XOWoehyspKLVmyRM8++6wqKio0dOhQpaammnd9BQUFSZJKS0ud3ls1dmNtbm6uy+OUlpbe8pxV461atXKq9fDwUGBgoFnrak5J+u6778w5fygnJ8flOAAA+GncykmGqrvJqlOrr8kMw9CYMWM0c+ZMdejQQVu3btXmzZsdQkNVGCksLHR6/+nTpyU5BpeSkhJduXLFoc5ut6uoqMisCwwMlIeHR63nrOn4bdq0MW+XDwoKcllXVFSka9euVRuGAABA41OrMLR48WKtXbtWI0eO1BdffKH4+Hinmp49e6pJkyZKT093ei09PV0RERFq3ry5JCk6Olrl5eXau3evQ92BAwd08eJF8841b29vRUVFVTvnXXfdZX51FR0dbY7fqKKiQnv27HG4Gy46OloFBQXKz893mlOSyzvnAABA43TTMGS325WSkqI2bdpo5cqVZqD5odatW2v48OFKS0vT8ePHzfEPP/xQ+fn5SkpKMsdsNpuaNm2qRYsWmU+GrqysVHJysnx8fDR27FizdsKECSosLNTKlSvNsby8PK1fv17Dhg0zv/oKDw9Xr1699O6776q4uNisTUlJ0eXLlx2OP378eEnSK6+8Yo6Vl5dr6dKlat++vRISEm62LQAAoJG46ROojx8/rq5duyoqKkqJiYkuayIjI/XQQw/p6NGjio2Nlbe3t2w2m0pLS7VmzRp169ZNmZmZ8vPzM9+zePFiPfPMM3rwwQcVGxurrKws7dmzRy+//LLDwxAvXryoAQMG6MiRI7LZbPL399e6detUUVGhzMxMRUREmLVZ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adOm+sMf/qBOnTrpyy+/VEpKin7961/riy++MD90UL0dO3bo8ccfV3h4uJKSktSmTRvt379fy5cvV0xMjLKysvjzfQsay+cPYagRqGvjWdSssrJSS5Ys0bPPPquKigoNHTpUqamp7GEdTJo0SR06dNAf//jHhl6KW2vbtq2k678nP/30U919993maw8++KDi4+O1dOlSvfDCCw21RLdQUVGh3//+9/rFL36hgwcPqmnTppKuf3UWHR2tcePG6c0336z2GTqoXlBQkCS5/ecP564bARrP1h/DMDRmzBjNnDlTHTp00NatW7V582b2rw7Wr1+vjz/+WHPnzlVxcbFOnTqlU6dOqby8XHa7XadOnXL5exXOmjRpopYtWyo2NtYhCEnS4MGD5efnp5ycnAZanfv4xz/+oaKiItlsNjMIVbHZbGrSpIk++eSTBlqde6sKQ+7++cOZoUYiOjpaH330kS5duqTmzZub4zSerZvFixdr7dq1GjlypFasWOGwl6idqr8Ak5KSXL5+zz336Gc/+5n++c9//pTLclu9e/c2r8u4kd1u15UrV/iKrBaqrmepqKhweu3atWuy2+1q3779T72sRqFnz55q0qSJ0tPTna6pTE9PV0REhFv8PcqZoUaCxrM/nt1uV0pKitq0aaOVK1e6xR/gO1FCQoLS0tKcfnTv3l2tWrVSWlqayzv24NrYsWO1d+9effzxxw7jb7zxhioqKty2fdBP6Re/+IV+/vOf6y9/+YtKSkocXluyZImuXbum2NjYhlmcm2vdurWGDx+utLQ0HT9+3Bz/8MMPlZ+fX+0/iu40lm3U2tjQePbHO378uLp27aqoqCglJia6rImMjNRDDz30E6+scejXr5+OHz+uf/3rXw29FLdSUVGh3/zmN8rMzJTNZlNYWJg+/fRTbd68WQMGDNCuXbvk4eHR0Mu842VkZGjw4MEKCAiQzWZTQECA9u/fr507d2rIkCHaunUr+1iDU6dO6Z577tGcOXOc7r47evSoYmNj5e3tLZvNptLSUq1Zs0bdunVTZmame1yY3pCPv0b9unLlijFr1iyjR48eRkBAgBEfH2/s2bOnoZflNrZv325IqvHH9OnTG3qZbis2NpZ2HLeovLzcmDVrlhEVFWW0aNHCuO+++4xFixYZV69ebeiluZUvvvjCePTRR427777b8PPzM+6//35j6dKlxrVr1xp6aXe8kydPVtuOwzAM4+jRo8bIkSONwMBA45e//KUxadIk49y5cz/xKm8dZ4YAAIClcc0QAACwNMIQAACwNMIQAACwNMIQAACwNMIQAACwNMIQAACwNMIQAACwNMIQAACwNMIQAACwNMIQAACwtP8P+JaHEPe25mAAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.hist(uproot4.open(\"data/opendata_muons.root:Events/nMuon\"), bins=11, range=(-0.5, 10.5));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Pluralization\n", + "\n", + "If you look carefully, you'll notice that there's an `array` function and an `arrays` function. The latter gets multiple arrays." + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'PV_npvs': array([ 1, 1, 1, ..., 12, 20, 9], dtype=int32),\n", + " 'PV_x': array([0.0722459 , 0.0722459 , 0.0722459 , ..., 0.07219489, 0.07082949,\n", + " 0.06881613], dtype=float32),\n", + " 'PV_y': array([0.06209353, 0.06209353, 0.06209353, ..., 0.06237721, 0.06023057,\n", + " 0.06337257], dtype=float32),\n", + " 'PV_z': array([-0.0280992 , -0.0280992 , -0.0280992 , ..., 1.5894414 ,\n", + " 0.87497556, -0.6417597 ], dtype=float32)}" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# NumPy arrays in a dict\n", + "pv_numpy = tree.arrays(filter_name=\"PV_*\", library=\"np\")\n", + "pv_numpy" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Awkward record-array\n", + "pv_awkward = tree.arrays(filter_name=\"PV_*\", library=\"ak\")\n", + "pv_awkward" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PV_npvsPV_xPV_yPV_z
010.0722460.062094-0.028099
110.0722460.062094-0.028099
210.0722460.062094-0.028099
310.0722460.062094-0.028099
410.0722460.062094-0.028099
...............
999995110.0728570.059204-0.903353
999996160.0733760.0606430.519306
999997120.0721950.0623771.589441
999998200.0708290.0602310.874976
99999990.0688160.063373-0.641760
\n", + "

1000000 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " PV_npvs PV_x PV_y PV_z\n", + "0 1 0.072246 0.062094 -0.028099\n", + "1 1 0.072246 0.062094 -0.028099\n", + "2 1 0.072246 0.062094 -0.028099\n", + "3 1 0.072246 0.062094 -0.028099\n", + "4 1 0.072246 0.062094 -0.028099\n", + "... ... ... ... ...\n", + "999995 11 0.072857 0.059204 -0.903353\n", + "999996 16 0.073376 0.060643 0.519306\n", + "999997 12 0.072195 0.062377 1.589441\n", + "999998 20 0.070829 0.060231 0.874976\n", + "999999 9 0.068816 0.063373 -0.641760\n", + "\n", + "[1000000 rows x 4 columns]" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Pandas DataFrame (as opposed to Series for a single array)\n", + "pv_pandas = tree.arrays(filter_name=\"PV_*\", library=\"pd\")\n", + "pv_pandas" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All of these are \"packages\" of arrays that you might use in your analysis." + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.0722459 , 0.0722459 , 0.0722459 , ..., 0.07219489, 0.07082949,\n", + " 0.06881613], dtype=float32)" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pv_numpy[\"PV_x\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pv_awkward[\"PV_x\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pv_awkward.PV_x" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 0.072246\n", + "1 0.072246\n", + "2 0.072246\n", + "3 0.072246\n", + "4 0.072246\n", + " ... \n", + "999995 0.072857\n", + "999996 0.073376\n", + "999997 0.072195\n", + "999998 0.070829\n", + "999999 0.068816\n", + "Name: PV_x, Length: 1000000, dtype: float32" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pv_pandas[\"PV_x\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 0.072246\n", + "1 0.072246\n", + "2 0.072246\n", + "3 0.072246\n", + "4 0.072246\n", + " ... \n", + "999995 0.072857\n", + "999996 0.073376\n", + "999997 0.072195\n", + "999998 0.070829\n", + "999999 0.068816\n", + "Name: PV_x, Length: 1000000, dtype: float32" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pv_pandas.PV_x" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Above, we used `filter_name` to select branches that match a pattern. We can also request specific branches:" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tree.arrays([\"PV_x\", \"PV_y\", \"PV_z\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Or do calculations. (This feature exists for TTree aliases, which can be formulas.)" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tree.arrays(\"PV\", aliases={\"PV\": \"sqrt(PV_x**2 + PV_y**2 + PV_z**2)\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tree.arrays(\"PV\", cut=\"sqrt(PV_x**2 + PV_y**2) < 0.1\", aliases={\"PV\": \"sqrt(PV_x**2 + PV_y**2 + PV_z**2)\"})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Multiple files\n", + "\n", + "Typically, you'll have a lot of files with similar contents.\n", + "\n", + "## Concatenation\n", + "\n", + "The simplest way to deal with this is to read a selection of branches entirely into memory, concatenating them.\n", + "\n", + "If you have enough memory, go for it!" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "all_in_memory = uproot4.concatenate(\"data/uproot-sample-*.root:sample\", [\"i4\", \"ai8\", \"Af8\", \"str\"])\n", + "all_in_memory" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "all_in_memory.i4" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "all_in_memory.ai8" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "all_in_memory.Af8" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "all_in_memory.str" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But, often enough, you don't have enough memory. What then?\n", + "\n", + "## Laziness\n", + "\n", + "One option is to open them as lazy arrays, which opens the files (to get the number of events in each), but doesn't read the data until you use it." + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "not_in_memory_yet = uproot4.lazy(\"data/uproot-sample-*.root:sample\")\n", + "not_in_memory_yet" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\"If it's not in memory, how can I see the values?\"\n", + "\n", + "Only the parts of the files (branches and batches of events) that are visible are read. In the above, `n` and `b` from the first file and `str` from the last file must have been read.\n", + "\n", + "Let's get the `Af8` field:" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "not_in_memory_yet.Af8" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again, this only read from the first and last files to show the first and last values.\n", + "\n", + "A mathematical operation would cause them all to be read in." + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "not_in_memory_yet.Af8 + 100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Controlling the lazy cache\n", + "\n", + "After (part of) a lazy array has been read, how long does it stay in memory? Is it constantly being re-read every time we do a calculation?\n", + "\n", + "By default, a 100 MB cache is associated with the lazy array, but we can provide our own if we want a bigger or smaller one." + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [], + "source": [ + "cache = uproot4.LRUArrayCache(\"1 GB\")\n", + "\n", + "not_in_memory_yet = uproot4.lazy(\"data/uproot-sample-*.root:sample\", array_cache=cache)" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cache" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "not_in_memory_yet" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 75, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cache" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 76, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "not_in_memory_yet + 100" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cache" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What's more, we can clear it when we need to." + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [], + "source": [ + "cache.clear()" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cache" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Iteration\n", + "\n", + "But often, that's still not enough control.\n", + "\n", + "We don't read arrays into memory for the fun of it, we do it to perform calculations, and lazy arrays don't control which parts of which arrays are in memory during a calculation.\n", + "\n", + "If you're worried about memory, the safest thing to do is to iterate over the data." + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[], [-29], [-28, -26.9], [-27, -25.9, ... [23, 24.1, 25.2], [24, 25.1, 26.2, 27.3]]\n", + "[[], [-29], [-28, -26.9], [-27, -25.9, ... [23, 24.1, 25.2], [24, 25.1, 26.2, 27.3]]\n", + "[[], [-29], [-28, -26.9], [-27, -25.9, ... [23, 24.1, 25.2], [24, 25.1, 26.2, 27.3]]\n", + "[[], [-29], [-28, -26.9], [-27, -25.9, ... [23, 24.1, 25.2], [24, 25.1, 26.2, 27.3]]\n", + "[[], [-29], [-28, -26.9], [-27, -25.9, ... [23, 24.1, 25.2], [24, 25.1, 26.2, 27.3]]\n", + "[[], [-29], [-28, -26.9], [-27, -25.9, ... [23, 24.1, 25.2], [24, 25.1, 26.2, 27.3]]\n", + "[[], [-29], [-28, -26.9], [-27, -25.9, ... [23, 24.1, 25.2], [24, 25.1, 26.2, 27.3]]\n", + "[[], [-29], [-28, -26.9], [-27, -25.9, ... [23, 24.1, 25.2], [24, 25.1, 26.2, 27.3]]\n", + "[[], [-29], [-28, -26.9], [-27, -25.9, ... [23, 24.1, 25.2], [24, 25.1, 26.2, 27.3]]\n", + "[[], [-29], [-28, -26.9], [-27, -25.9, ... [23, 24.1, 25.2], [24, 25.1, 26.2, 27.3]]\n", + "[[], [-29], [-28, -26.9], [-27, -25.9, ... [23, 24.1, 25.2], [24, 25.1, 26.2, 27.3]]\n", + "[[], [-29], [-28, -26.9], [-27, -25.9, ... [23, 24.1, 25.2], [24, 25.1, 26.2, 27.3]]\n", + "[[], [-29], [-28, -26.9], [-27, -25.9, ... [23, 24.1, 25.2], [24, 25.1, 26.2, 27.3]]\n", + "[[], [-29], [-28, -26.9], [-27, -25.9, ... [23, 24.1, 25.2], [24, 25.1, 26.2, 27.3]]\n" + ] + } + ], + "source": [ + "for arrays in uproot4.iterate(\"data/uproot-sample-*.root:sample\", [\"i4\", \"Af8\"]):\n", + " print(arrays[\"i4\"] + arrays[\"Af8\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This iteration is _not_ one event at a time. (This set of TTrees has 420 entries.) It's a _chunk of events_ at a time.\n", + "\n", + "In each step, a chunk of events for all specified arrays (`[\"i4\", \"Af8\"]`) is read. You do your calculation, move on to the next step, and all the previous arrays are dropped. (Only TBasket data carries over if event steps don't line up with TBasket boundaries—a low-level detail.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Weird objects\n", + "\n", + "Although Uproot is primarily for TTrees with simple types, it is possible to read some complex types." + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [], + "source": [ + "weird = uproot4.open(\"data/uproot-stl_containers.root:tree\")" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "name | typename | interpretation \n", + "---------------------+----------------------+-----------------------------------\n", + "string | std::string | AsStrings() \n", + "tstring | TString | AsStrings() \n", + "vector_int32 | std::vector | AsJagged(AsDtype('>i4'), header_by\n", + "vector_string | std::vector | AsObjects(AsVector(True, AsString(\n", + "vector_vector_int32 | std::vector | AsObjects(AsSet(True, dtype('>i4')\n", + "set_string | std::seti4')\n", + "map_int32_vector_int | std::mapi4')\n", + "map_int32_vector_str | std::mapi4')\n", + "map_int32_set_int16 | std::mapi4')\n", + "map_int32_set_string | std::mapi4')\n", + "map_string_int16 | std::mapi4')\n", + "map_int32_vector_set | std::mapi4')\n", + "map_string_string | std::map,\n", + " ,\n", + " ,\n", + " ,\n", + " ],\n", + " dtype=object)" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.array(weird[\"map_string_vector_string\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [], + "source": [ + "HZZ = uproot4.open(\"data/uproot-HZZ-objects.root:events\")" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "name | typename | interpretation \n", + "---------------------+----------------------+-----------------------------------\n", + "jetp4 | std::vector | AsJagged(AsDtype('>f4'), header_by\n", + "jetid | std::vector | AsJagged(AsDtype('bool'), header_b\n", + "muonp4 | std::vector | AsJagged(AsDtype('>i4'), header_by\n", + "muoniso | std::vector | AsJagged(AsDtype('>f4'), header_by\n", + "electronp4 | std::vector | AsJagged(AsDtype('>i4'), header_by\n", + "electroniso | std::vector | AsJagged(AsDtype('>f4'), header_by\n", + "photonp4 | std::vector | AsJagged(AsDtype('>f4'), header_by\n", + "MET | TVector2 | AsStridedObjects(Model_TVector2_v3\n", + "MC_bquarkhadronic | TVector3 | AsStridedObjects(Model_TVector3_v3\n", + "MC_bquarkleptonic | TVector3 | AsStridedObjects(Model_TVector3_v3\n", + "MC_wdecayb | TVector3 | AsStridedObjects(Model_TVector3_v3\n", + "MC_wdecaybbar | TVector3 | AsStridedObjects(Model_TVector3_v3\n", + "MC_lepton | TVector3 | AsStridedObjects(Model_TVector3_v3\n", + "MC_leptonpdgid | int32_t | AsDtype('>i4') \n", + "MC_neutrino | TVector3 | AsStridedObjects(Model_TVector3_v3\n", + "num_primaryvertex | int32_t | AsDtype('>i4') \n", + "trigger_isomu24 | bool | AsDtype('bool') \n", + "eventweight | float | AsDtype('>f4') \n" + ] + } + ], + "source": [ + "HZZ.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
fPfE
fXfYfZ
entrysubentry
00-52.899456-11.654672-8.16079354.779499
137.7377820.693474-11.30758239.401695
10-0.816459-24.40425920.19996831.690445
2048.987831-21.72313911.16828554.739788
10.82756729.80050836.96519147.488857
..................
24160-39.285824-14.60749161.71579074.602982
2417035.067146-14.150043160.817917165.203949
24180-29.756786-15.303859-52.66375062.395161
241901.14187063.609570162.176315174.208633
2420023.913206-35.66507754.71943769.556213
\n", + "

3825 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " fP fE\n", + " fX fY fZ \n", + "entry subentry \n", + "0 0 -52.899456 -11.654672 -8.160793 54.779499\n", + " 1 37.737782 0.693474 -11.307582 39.401695\n", + "1 0 -0.816459 -24.404259 20.199968 31.690445\n", + "2 0 48.987831 -21.723139 11.168285 54.739788\n", + " 1 0.827567 29.800508 36.965191 47.488857\n", + "... ... ... ... ...\n", + "2416 0 -39.285824 -14.607491 61.715790 74.602982\n", + "2417 0 35.067146 -14.150043 160.817917 165.203949\n", + "2418 0 -29.756786 -15.303859 -52.663750 62.395161\n", + "2419 0 1.141870 63.609570 162.176315 174.208633\n", + "2420 0 23.913206 -35.665077 54.719437 69.556213\n", + "\n", + "[3825 rows x 4 columns]" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "HZZ[\"muonp4\"].array(library=\"pd\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sometimes, errors that people report as \"Uproot can't read type X\" don't have anything to do with type X.\n", + "\n", + "To help zero in on actual deserialization errors, a lot more diagnostic information has been included. In Uproot 4, this is what a deserialization error looks like (encountered last Thursday):\n", + "\n", + "```\n", + " TH1F version 2 as .Model_TH1F_v2 (939 bytes)\n", + " TH1 version 7 as .Model_TH1_v7 (893 bytes)\n", + " (base): \n", + " (base): \n", + " (base): \n", + " (base): \n", + " fNcells: 9\n", + " TAxis version 9 as .Model_TAxis_v9 (417 bytes)\n", + " (base): \n", + " (base): \n", + " fNbins: 7\n", + " fXmin: 0.0\n", + " fXmax: 7.0\n", + " fXbins: \n", + " fFirst: 0\n", + " fLast: 0\n", + " fBits2: 4\n", + " fTimeDisplay: False\n", + " fTimeFormat: \n", + " THashList version 5 as .Model_THashList_v0 (294 bytes)\n", + " TList version 1 as uproot4.models.TList.Model_TList (? bytes)\n", + " (base): \n", + " fName: ''\n", + " fSize: 475136\n", + "\n", + "attempting to get bytes 1851028560:1851028561\n", + "outside expected range 0:939 for this Chunk\n", + "in file /home/pivarski/miniconda3/lib/python3.7/site-packages/skhep_testdata/data/uproot-issue33.root\n", + "in object /cutflow\n", + "```\n", + "\n", + "The values get wonky in the THashList (`fSize: 475136`), which led directly to the issue." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# To split or not to split\n", + "\n", + "\"Splitting branches\" is a technical detail in ROOT, but very important in Uproot, since Uproot views branches as arrays.\n", + "\n", + "Here is an \"unsplit\" file:" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [], + "source": [ + "unsplit = uproot4.open(\"data/uproot-small-evnt-tree-nosplit.root:tree\")" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "name | typename | interpretation \n", + "---------------------+----------------------+-----------------------------------\n", + "evt | Event | AsObjects(Model_Event) \n" + ] + } + ], + "source": [ + "unsplit.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here is a \"split\" file:" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": {}, + "outputs": [], + "source": [ + "split = uproot4.open(\"data/uproot-small-evnt-tree-fullsplit.root:tree\")" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "name | typename | interpretation \n", + "---------------------+----------------------+-----------------------------------\n", + "evt | Event | AsObjects(Model_Event) \n", + "evt/Beg | TString | AsStrings() \n", + "evt/I16 | int16_t | AsDtype('>i2') \n", + "evt/I32 | int32_t | AsDtype('>i4') \n", + "evt/I64 | int64_t | AsDtype('>i8') \n", + "evt/U16 | uint16_t | AsDtype('>u2') \n", + "evt/U32 | uint32_t | AsDtype('>u4') \n", + "evt/U64 | uint64_t | AsDtype('>u8') \n", + "evt/F32 | float | AsDtype('>f4') \n", + "evt/F64 | double | AsDtype('>f8') \n", + "evt/Str | TString | AsStrings() \n", + "evt/P3 | unknown | None \n", + "evt/P3/P3.Px | int32_t | AsDtype('>i4') \n", + "evt/P3/P3.Py | double | AsDtype('>f8') \n", + "evt/P3/P3.Pz | int32_t | AsDtype('>i4') \n", + "evt/ArrayI16[10] | int16_t[10] | AsDtype(\"('>i2', (10,))\") \n", + "evt/ArrayI32[10] | int32_t[10] | AsDtype(\"('>i4', (10,))\") \n", + "evt/ArrayI64[10] | int64_t[10] | AsDtype(\"('>i8', (10,))\") \n", + "evt/ArrayU16[10] | uint16_t[10] | AsDtype(\"('>u2', (10,))\") \n", + "evt/ArrayU32[10] | uint32_t[10] | AsDtype(\"('>u4', (10,))\") \n", + "evt/ArrayU64[10] | uint64_t[10] | AsDtype(\"('>u8', (10,))\") \n", + "evt/ArrayF32[10] | float[10] | AsDtype(\"('>f4', (10,))\") \n", + "evt/ArrayF64[10] | double[10] | AsDtype(\"('>f8', (10,))\") \n", + "evt/N | uint32_t | AsDtype('>u4') \n", + "evt/SliceI16 | int16_t* | AsJagged(AsDtype('>i2'), header_by\n", + "evt/SliceI32 | int32_t* | AsJagged(AsDtype('>i4'), header_by\n", + "evt/SliceI64 | int64_t* | AsJagged(AsDtype('>i8'), header_by\n", + "evt/SliceU16 | uint16_t* | AsJagged(AsDtype('>u2'), header_by\n", + "evt/SliceU32 | uint32_t* | AsJagged(AsDtype('>u4'), header_by\n", + "evt/SliceU64 | uint64_t* | AsJagged(AsDtype('>u8'), header_by\n", + "evt/SliceF32 | float* | AsJagged(AsDtype('>f4'), header_by\n", + "evt/SliceF64 | double* | AsJagged(AsDtype('>f8'), header_by\n", + "evt/StdStr | std::string | AsStrings(header_bytes=6) \n", + "evt/StlVecI16 | std::vector | AsJagged(AsDtype('>i2'), header_by\n", + "evt/StlVecI32 | std::vector | AsJagged(AsDtype('>i4'), header_by\n", + "evt/StlVecI64 | std::vector | AsJagged(AsDtype('>i8'), header_by\n", + "evt/StlVecU16 | std::vectoru2'), header_by\n", + "evt/StlVecU32 | std::vectoru4'), header_by\n", + "evt/StlVecU64 | std::vectoru8'), header_by\n", + "evt/StlVecF32 | std::vector | AsJagged(AsDtype('>f4'), header_by\n", + "evt/StlVecF64 | std::vector | AsJagged(AsDtype('>f8'), header_by\n", + "evt/StlVecStr | std::vector" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "unsplit[\"evt\"].array()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But with the split file, we can choose which parts to read." + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "split.arrays([\"P3.Px\", \"P3.Py\", \"P3.Pz\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If there are any types in an unsplit object that Uproot can't deserialize, Uproot won't be able to read _any_ of its data.\n", + "\n", + "If there are any types in a split object that Uproot can't deserialize, Uproot will be able to read everything else.\n", + "\n", + "Also, split objects are usually faster to read, even if you read everything.\n", + "\n", + "**Split your data whenever possible!**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Writing to ROOT files\n", + "\n", + "Uproot 4 cannot write to ROOT files yet: see Uproot 3 documentation.\n", + "\n", + "Some caveats, though:\n", + "\n", + " * Writing ROOT files with Uproot will always be minimal: histograms and only basic types in TTrees.\n", + " * You won't be able to update an existing file, only make new files.\n", + " * It won't be as fast as writing with ROOT.\n", + "\n", + "The issues involved in _writing_ an established format are considerably different from _reading_. If anyone thinks they can do better, they're welcome to try!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "


\n", + "\n", + "\"Uproot\"\n", + "\n", + "
\n", + "\n", + "Why do we need our own array library? It's a long story, but if you're interested, I presented it to non-physicists here:\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's take another look at the muon data." + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "name | typename | interpretation \n", + "---------------------+----------------------+-----------------------------------\n", + "run | int32_t | AsDtype('>i4') \n", + "luminosityBlock | uint32_t | AsDtype('>u4') \n", + "event | uint64_t | AsDtype('>u8') \n", + "PV_npvs | int32_t | AsDtype('>i4') \n", + "PV_x | float | AsDtype('>f4') \n", + "PV_y | float | AsDtype('>f4') \n", + "PV_z | float | AsDtype('>f4') \n", + "nMuon | uint32_t | AsDtype('>u4') \n", + "Muon_pt | float[] | AsJagged(AsDtype('>f4')) \n", + "Muon_eta | float[] | AsJagged(AsDtype('>f4')) \n", + "Muon_phi | float[] | AsJagged(AsDtype('>f4')) \n", + "Muon_mass | float[] | AsJagged(AsDtype('>f4')) \n", + "Muon_charge | int32_t[] | AsJagged(AsDtype('>i4')) \n", + "Muon_pfRelIso04_all | float[] | AsJagged(AsDtype('>f4')) \n", + "Muon_tightId | bool[] | AsJagged(AsDtype('bool')) \n" + ] + } + ], + "source": [ + "tree = uproot4.open(\"data/opendata_muons.root:Events\")\n", + "tree.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We've already seen that it's \"awkward\" to deal with the jagged arrays in NumPy. However, they look and feel like records if \"zipped\" into an Awkward array." + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events = tree.arrays(library=\"ak\", how=\"zip\")\n", + "events" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The data type encapsulates the structure of the events." + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1000000 * {\"run\": int32, \"luminosityBlock\": uint32, \"event\": uint64, \"PV_npvs\": int32, \"PV_x\": float32, \"PV_y\": float32, \"PV_z\": float32, \"nMuon\": uint32, \"Muon\": var * {\"pt\": float32, \"eta\": float32, \"phi\": float32, \"mass\": float32, \"charge\": int32, \"pfRelIso04_all\": float32, \"tightId\": bool}}" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ak.type(events)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`1000000 *` means that there are a million events, `\"Muon\": var *` means that the contents of the `\"Muon\"` field are jagged: there's a variable number of them per event.\n", + "\n", + "We could look at a few of these as Python lists and dicts." + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'run': 194778,\n", + " 'luminosityBlock': 51,\n", + " 'event': 12887941,\n", + " 'PV_npvs': 1,\n", + " 'PV_x': 0.07224589586257935,\n", + " 'PV_y': 0.06209353357553482,\n", + " 'PV_z': -0.02809920161962509,\n", + " 'nMuon': 2,\n", + " 'Muon': [{'pt': 52.00833511352539,\n", + " 'eta': 1.2523202896118164,\n", + " 'phi': 0.8424168229103088,\n", + " 'mass': 0.10565836727619171,\n", + " 'charge': 1,\n", + " 'pfRelIso04_all': -999.0,\n", + " 'tightId': False},\n", + " {'pt': 42.85704040527344,\n", + " 'eta': 1.6531223058700562,\n", + " 'phi': -2.154824733734131,\n", + " 'mass': 0.10565836727619171,\n", + " 'charge': -1,\n", + " 'pfRelIso04_all': -999.0,\n", + " 'tightId': False}]},\n", + " {'run': 194778,\n", + " 'luminosityBlock': 51,\n", + " 'event': 12963969,\n", + " 'PV_npvs': 1,\n", + " 'PV_x': 0.07224589586257935,\n", + " 'PV_y': 0.06209353357553482,\n", + " 'PV_z': -0.02809920161962509,\n", + " 'nMuon': 1,\n", + " 'Muon': [{'pt': 5.019948482513428,\n", + " 'eta': 2.1219534873962402,\n", + " 'phi': 1.7212640047073364,\n", + " 'mass': 0.10565836727619171,\n", + " 'charge': 1,\n", + " 'pfRelIso04_all': -999.0,\n", + " 'tightId': False}]},\n", + " {'run': 194778,\n", + " 'luminosityBlock': 51,\n", + " 'event': 13227276,\n", + " 'PV_npvs': 1,\n", + " 'PV_x': 0.07224589586257935,\n", + " 'PV_y': 0.06209353357553482,\n", + " 'PV_z': -0.02809920161962509,\n", + " 'nMuon': 2,\n", + " 'Muon': [{'pt': 15.967432022094727,\n", + " 'eta': -1.241450548171997,\n", + " 'phi': -2.8183231353759766,\n", + " 'mass': 0.10565836727619171,\n", + " 'charge': -1,\n", + " 'pfRelIso04_all': -999.0,\n", + " 'tightId': False},\n", + " {'pt': 12.481289863586426,\n", + " 'eta': -0.7956085205078125,\n", + " 'phi': -1.5160582065582275,\n", + " 'mass': 0.10565836727619171,\n", + " 'charge': 1,\n", + " 'pfRelIso04_all': -999.0,\n", + " 'tightId': False}]}]" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ak.to_list(events[:3])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But the data are not actually arranged as objects in memory; each field (`\"pt\"`, `\"eta\"`, `\"phi\"`, etc.) is in an array by itself.\n", + "\n", + "This means that structure-changing things like pulling out the kinematics are not expensive computations. (That is, they do not scale with the size of the dataset.)\n", + "\n", + "You can project out and remix them without penalty." + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 97, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events[\"Muon\", [\"pt\", \"eta\", \"phi\"]]" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1000000 * var * {\"pt\": float32, \"eta\": float32, \"phi\": float32}" + ] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ak.type(events[\"Muon\", [\"pt\", \"eta\", \"phi\"]])" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": {}, + "outputs": [], + "source": [ + "events[\"Muon\", \"pz\"] = events[\"Muon\", \"pt\"] * np.sinh(events[\"Muon\", \"eta\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1000000 * var * {\"pt\": float32, \"eta\": float32, \"phi\": float32, \"mass\": float32, \"charge\": int32, \"pfRelIso04_all\": float32, \"tightId\": bool, \"pz\": float32}" + ] + }, + "execution_count": 100, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ak.type(events.Muon)" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 101, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.Muon.pz" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since nearly all of you are familiar with NumPy, slicing arrays with boolean arrays is probably familiar to you.\n", + "\n", + "What's new is that the boolean arrays can now be jagged to slice jagged arrays (i.e. cut particles)." + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 102, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.Muon.pt > 20" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 103, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.Muon[events.Muon.pt > 20]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To cut events, make the jagged array of booleans a one-dimensional array of booleans. You can do this with a reducer (such as [ak.sum](https://awkward-array.readthedocs.io/en/latest/_auto/ak.sum.html) or [ak.max](https://awkward-array.readthedocs.io/en/latest/_auto/ak.max.html), but most likely [ak.any](https://awkward-array.readthedocs.io/en/latest/_auto/ak.any.html) and [ak.all](https://awkward-array.readthedocs.io/en/latest/_auto/ak.all.html) for booleans)." + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 104, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ak.any(events.Muon.pt > 20, axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 105, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.Muon[ak.any(events.Muon.pt > 20, axis=1)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Awkward analysis\n", + "\n", + "Several new operations are needed when arrays can have arbitrary data structures, so the Awkward Array library is best seen as a collection of functions acting on [ak.Array](https://awkward-array.readthedocs.io/en/latest/_auto/ak.Array.html) (the array type).\n", + "\n", + "Probably the most important of these is [ak.num](https://awkward-array.readthedocs.io/en/latest/_auto/ak.num.html), which tells us the number of elements in each nested list." + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 106, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ak.num(events.Muon)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That's how many muons there are in each event.\n", + "\n", + "This becomes necessary if we ever try to select the first (and second, etc.) element in each event. Some events might not have any." + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "tags": [ + "raises-exception" + ] + }, + "outputs": [ + { + "ename": "ValueError", + "evalue": "in ListArray64 attempting to get 0, index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mevents\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mMuon\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/miniconda3/lib/python3.7/site-packages/awkward1/highlevel.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, where)\u001b[0m\n\u001b[1;32m 855\u001b[0m \u001b[0mhave\u001b[0m \u001b[0mthe\u001b[0m \u001b[0msame\u001b[0m \u001b[0mdimension\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mthe\u001b[0m \u001b[0marray\u001b[0m \u001b[0mbeing\u001b[0m \u001b[0mindexed\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 856\u001b[0m \"\"\"\n\u001b[0;32m--> 857\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mawkward1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_util\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwrap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_layout\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mwhere\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_behavior\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 858\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 859\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__setitem__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwhere\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwhat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: in ListArray64 attempting to get 0, index out of range" + ] + } + ], + "source": [ + "events.Muon[:, 0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So we use [ak.num](https://awkward-array.readthedocs.io/en/latest/_auto/ak.num.html) to slice the first dimension." + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 108, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.Muon[ak.num(events.Muon) > 0, 0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Masking vs cutting\n", + "\n", + "In the nearly two years that physicists have been doing analyses with Awkward Arrays, they've found that cuts are difficult to accumulate. If the first cut changes the length of the array from 1000000 to 969031, boolean arrays that could be applied to the first array can't be applied to the second array.\n", + "\n", + "In practice, they've taken a logical-and of all cuts and apply them at the end, but we can do better: we can mask, rather than cut." + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 109, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.Muon.mask[events.Muon.pt > 20]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One of the new types that Awkward Array introduces is the \"option type,\" which allows some values to be `None`. (It's a `?` in the type specification.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Making regular arrays\n", + "\n", + "If you're feeding your data into a machine learning pipeline, you might need the jaggedness to go away. There are functions for padding jagged arrays (with `None`) so that they reach a desired length (and replacing `None` with a preferred value): [ak.pad_none](https://awkward-array.readthedocs.io/en/latest/_auto/ak.pad_none.html) (and [ak.fill_none](https://awkward-array.readthedocs.io/en/latest/_auto/ak.fill_none.html))." + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 110, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ak.pad_none(events.Muon.pt, 3, clip=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 111, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ak.fill_none(ak.pad_none(events.Muon.pt, 3, clip=True), 0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you're plotting something, you usually want to flatten the jaggedness." + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.hist(ak.flatten(events.Muon.pt), bins=120, range=(0, 60));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Awkward combinatorics\n", + "\n", + "We often want to find pairs of particles with some invariant mass. To do that, we need combinatoric functions like [ak.cartesian](https://awkward-array.readthedocs.io/en/latest/_auto/ak.cartesian.html) and [ak.combinations](https://awkward-array.readthedocs.io/en/latest/_auto/ak.combinations.html).\n", + "\n", + "\n", + " \n", + " \n", + "
Cartesian product (per event)n-choose-k combinations (per event)
" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 113, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "muon_pairs = ak.combinations(events.Muon, 2)\n", + "muon_pairs" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(,\n", + " )" + ] + }, + "execution_count": 114, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m1, m2 = ak.unzip(muon_pairs)\n", + "m1, m2" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 115, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "masses = np.sqrt(2*m1.pt*m2.pt*(np.cosh(m1.eta - m2.eta) - np.cos(m1.phi - m2.phi)))\n", + "masses" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.hist(ak.flatten(masses), bins=80, range=(70, 110));" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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MWNG/OlPf4rTTz89HnroofIXk9WYpUuXZhGR3X777bu3NTY2ZnV1ddmnPvWphJXlT319fRYR2UMPPdRi+7e+9a0sIrJHHnkkUWX5t23btmzkyJFZRGSHHXZY6nJy5/nnn88KhUJWLBaznTt37t4+bdq0rE+fPtnGjRsTVpc/t9xySxYR2eOPP95i+6RJk7I+ffpkW7duTVRZWk1NTdnKlSuz2bNnZ0OGDMkiIpszZ06r+5133nnZ4MGDs1dffXX3thUrVmQRkc2dO7eSJSfTmbH6z3/+kx100EHZJz/5yRafqXfeeSc76qijshEjRrT4fS2HmgshkydPzvr3759t27atxfbbb789i4jslVdeSVRZ/tTV1WUnnHBCq+1///vfs4jIbrrppgRVVYdrr702GzRoUDZq1CghpA3NAfeNN95osf2pp57Khg0bli1btixRZfk0derUbODAga22L1y4MIuIbPXq1QmqSm/jxo1ZRLT42XvHumnTpqxQKGQzZ85s9fhRo0Zlp512WqXKTaozY/Xkk09mEZHdeeedrR5/2223tfk7u79qbjrmueeei7POOisGDBjQYvukSZMi4sMWOh/q06dPnHnmma2279y5MyIi/vnPf1a6pKqwZs2auOuuu+IHP/hBjBgxInU5ufT000/HCSecEKNGjWqx/eyzz47NmzfHl7/85USV5dNxxx0X27Zti7feeqvF9jfeeCMOOOCAOP744xNVltaIESNi+/btsX379nj99dfbvM+aNWsiy7KYOHFiq9smTZoUzz33XGzdurWnS02uM2P13nvvxZFHHhknn3xyq9t66nu/pkLItm3borGxsc0dQ/O2t99+u9Jl5db69evjpz/9aavtv/rVryIi4pRTTql0Sbm3Y8eOqK+vjzFjxsRVV12Vupxc2rFjR7z++ustdpxbtmyxILUDl112WXz0ox+Nz3/+8/HYY4/F2rVrY968eXHPPffElVdeGQcffHDqEpPp16/f7p+2bNiwISKiw+/9WvmDal9jVSwW480334zzzz+/xfampqZYsWJFfOQjHyl74K2pEPLee+9FRMQhhxzS6rYhQ4ZExIeLMWnfwoUL47vf/W4cdthhMXPmzNTl5M68efNi7dq1sXjx4jjggJr69eq0d999N7Isi2HDhsW8efPiE5/4RAwdOjQGDRoUl1xyye6dBv9zyimnxC9/+ct4/vnnY+LEiXHSSSfFDTfcEKNHj44f/ehHqcvLNd/7++fdd9+NyZMnx7p166K+vn73mJVL7q8dU04HHnhgu7c1t5qa/0tLr732Wlx11VXx2GOPxbBhw+L3v/99DB48OHVZubJ+/fr43ve+F9ddd118+tOfTl1Obm3fvj0iIpYvXx79+/ePb3/723HsscfG2rVrY+HChXHWWWfFyy+/XPYvu2r2hz/8IS677LI44YQTor6+PoYOHRrPPPNM/OxnP4vPfOYz8cc//tHvYzt873ff0qVLY/bs2fGPf/wjzj///Pjxj39c9teoqRAydOjQ6Nu3b2zZsqXVbc3bnNOhpV27dsX8+fPj5ptvjqamprjoooti0aJFxqkNDQ0NccQRR8Stt96aupRcGzZsWER8+Nl69tln4+ijj95929lnnx2TJ0+OBQsWxG233ZaqxFxpamqKWbNmxciRI+OFF16I/v37R8SHUzTjx4+Pr33ta3H33Xc7tLkdhx12WESE7/0u2LRpU1xxxRXx8MMPx4ABA+LOO++M6667rke6uzUVQgqFQgwfPjw2btzY6rbmBV8+jP+TZVnMmDEjli9fHiNHjoy77747Jk+enLqsXFqxYkU88cQTsXjx4hbzy9u3b4+dO3fG3/72t+jTp08ceeSRCavMh379+sVBBx0U55xzTosAEhFxwQUXxODBg2PNmjWJqsufdevWxdtvvx1XXnnl7gDSbPr06dHQ0OAcRx1oDiG+9zvnr3/9a4wfPz42bdoU06ZNi/nz58dRRx3VY69XUyEkImL8+PHxu9/9LrZt2xYDBw7cvb35jKltHQ1Sq+bNmxfLly+PadOmxb333ttivGip+cusvr6+zdvr6uriyCOPjDfffLOSZeXWGWecsXuufk87d+6M999/31TMHprXMjQ1NbW6bceOHbFz5874+Mc/Xumyqsapp54a/fr1i1WrVrVax7Zq1ao46aSTfLf9f1mWxdSpU6OxsTHuu++++OpXv9rjr1lzK+euuOKKaGpqivnz5+/e1tjYGIsXL47Ro0fHmDFjElaXHzt37oyFCxfG0KFDY+nSpX5J96FYLMYDDzzQ6ufEE0+Mgw8+OB544IE2jzSqVTNnzoynn3661Vkb77rrrmhqaooJEyYkqix/Ro4cGUcddVQsWbIkNm/e3OK2+fPnx44dO+Lcc89NU1wVOOSQQ+KSSy6JBx54IF577bXd2++///74y1/+0u4fDrXo0UcfjbVr10ZDQ0NFAkhEDXZCJk2aFFOnTo1bb7011q1bF3V1dbFy5crYvHlzLFmyJHV5ufHnP/85Nm7cGGPHjo2f/OQnbd5n9OjR8dnPfrbCleXTMcccE8ccc0yr7QsWLIjGxsa4+OKLE1SVX1/4whfivvvui/PPPz+mT58eo0aNimeffTZKpVKcd955cfnll6cuMVeWLFkSF1xwQZx44okxffr0GDJkSDzzzDPxyCOPxIUXXlixHUa1uuWWW+Lxxx+Pz33uczF9+vTYsmVLLFu2LMaOHRuzZs1KXV5u7PlHwV133dXmfWbMmLF7XVdZlPXUZ1Xi/fffz2bPnp2dfPLJ2ZAhQ7LJkydnTz31VOqycuXhhx9udXa9vX+uueaa1GXm3rnnnuuMqe3Yvn17Nnv27Gzs2LHZoEGDsjFjxmR33nln9sEHH6QuLZdefvnl7NJLL82OPvrobPDgwdm4ceOyBQsWZDt27EhdWi5s2LCh3dO2Z1mWvfLKK9m0adOy4cOHZ8cdd1zW0NCQvfvuuxWuMh/aG6svfelL+/zef/HFF8taSyHLXIIRAKi8mlsTAgDkgxACACQhhAAASQghAEASQggAkIQQAgAkIYQAAEkIIQBAEkIIAJCEEAIAJPH/ACu9Edg3YDcHAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.hist(ak.flatten(masses), bins=240, range=(0, 12))\n", + "plt.yscale(\"log\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Numba\n", + "\n", + "The most important Python library that most of you aren't aware of is Numba:\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The NumPy-like expressions for combinatorics look weird. It's fine for simple things when you get the hang of it, but really complex or performance-critical array expressions can be hard to write.\n", + "\n", + "Numba lets you write Python for loops, but then it compiles them as though they were C functions.\n", + "\n", + "Only a subset of Python and NumPy are accepted by its compiler, but Awkward Arrays are included." + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": {}, + "outputs": [], + "source": [ + "import numba as nb" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "metadata": {}, + "outputs": [], + "source": [ + "@nb.jit\n", + "def find_energetic_muon(events):\n", + " for event in events:\n", + " for muon in event.Muon:\n", + " if muon.pt > 100000:\n", + " return muon\n", + " return None" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'pt': 124582.25,\n", + " 'eta': 1.2202473878860474,\n", + " 'phi': 1.9215593338012695,\n", + " 'mass': 0.1056494414806366,\n", + " 'charge': 1,\n", + " 'pfRelIso04_all': -999.0,\n", + " 'tightId': False,\n", + " 'pz': 192658.265625}" + ] + }, + "execution_count": 120, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "find_energetic_muon(events).tolist()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Or better yet," + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": {}, + "outputs": [], + "source": [ + "@nb.jit\n", + "def find_energetic_muons_event(events):\n", + " for i in range(len(events)):\n", + " for muon in events[i].Muon:\n", + " if muon.pt > 100000:\n", + " return i\n", + " return -1" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "7400" + ] + }, + "execution_count": 122, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "find_energetic_muons_event(events)" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'run': 194120,\n", + " 'luminosityBlock': 267,\n", + " 'event': 200402745,\n", + " 'PV_npvs': 6,\n", + " 'PV_x': 0.07382062822580338,\n", + " 'PV_y': 0.06162504851818085,\n", + " 'PV_z': 2.451892137527466,\n", + " 'nMuon': 4,\n", + " 'Muon': [{'pt': 23.145275115966797,\n", + " 'eta': -1.4625529050827026,\n", + " 'phi': -0.7058165669441223,\n", + " 'mass': 0.10565836727619171,\n", + " 'charge': 1,\n", + " 'pfRelIso04_all': 2.859344959259033,\n", + " 'tightId': True,\n", + " 'pz': -47.2779541015625},\n", + " {'pt': 37.34275436401367,\n", + " 'eta': 1.2313216924667358,\n", + " 'phi': 1.9259896278381348,\n", + " 'mass': 0.10565836727619171,\n", + " 'charge': -1,\n", + " 'pfRelIso04_all': 1.151142954826355,\n", + " 'tightId': True,\n", + " 'pz': 58.51325225830078},\n", + " {'pt': 12.710587501525879,\n", + " 'eta': -1.3235374689102173,\n", + " 'phi': -0.615562379360199,\n", + " 'mass': 0.10565836727619171,\n", + " 'charge': 1,\n", + " 'pfRelIso04_all': -999.0,\n", + " 'tightId': False,\n", + " 'pz': -22.183122634887695},\n", + " {'pt': 124582.25,\n", + " 'eta': 1.2202473878860474,\n", + " 'phi': 1.9215593338012695,\n", + " 'mass': 0.1056494414806366,\n", + " 'charge': 1,\n", + " 'pfRelIso04_all': -999.0,\n", + " 'tightId': False,\n", + " 'pz': 192658.265625}]}" + ] + }, + "execution_count": 123, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events[7400].tolist()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The invariant mass calculation looks more conventional this way, though it is more verbose, too. You also need two passes to allocate an array of the right size." + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": {}, + "outputs": [], + "source": [ + "@nb.jit\n", + "def invariant_mass(events):\n", + " num_pairs = 0\n", + " for event in events:\n", + " num_pairs += max(0, len(event.Muon) * (len(event.Muon) - 1) // 2)\n", + " out = np.empty(num_pairs, np.float64)\n", + " \n", + " num_pairs = 0\n", + " for event in events:\n", + " for i in range(len(event.Muon)):\n", + " for j in range(i + 1, len(event.Muon)):\n", + " m1 = event.Muon[i]\n", + " m2 = event.Muon[j]\n", + " out[num_pairs] = np.sqrt(2*m1.pt*m2.pt*(np.cosh(m1.eta - m2.eta) - np.cos(m1.phi - m2.phi)))\n", + " num_pairs += 1\n", + " \n", + " return out" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": {}, + "outputs": [], + "source": [ + "masses = invariant_mass(events)" + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.hist(masses, bins=80, range=(70, 110));" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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MWNG/OlPf4rTTz89HnroofIXk9WYpUuXZhGR3X777bu3NTY2ZnV1ddmnPvWphJXlT319fRYR2UMPPdRi+7e+9a0sIrJHHnkkUWX5t23btmzkyJFZRGSHHXZY6nJy5/nnn88KhUJWLBaznTt37t4+bdq0rE+fPtnGjRsTVpc/t9xySxYR2eOPP95i+6RJk7I+ffpkW7duTVRZWk1NTdnKlSuz2bNnZ0OGDMkiIpszZ06r+5133nnZ4MGDs1dffXX3thUrVmQRkc2dO7eSJSfTmbH6z3/+kx100EHZJz/5yRafqXfeeSc76qijshEjRrT4fS2HmgshkydPzvr3759t27atxfbbb789i4jslVdeSVRZ/tTV1WUnnHBCq+1///vfs4jIbrrppgRVVYdrr702GzRoUDZq1CghpA3NAfeNN95osf2pp57Khg0bli1btixRZfk0derUbODAga22L1y4MIuIbPXq1QmqSm/jxo1ZRLT42XvHumnTpqxQKGQzZ85s9fhRo0Zlp512WqXKTaozY/Xkk09mEZHdeeedrR5/2223tfk7u79qbjrmueeei7POOisGDBjQYvukSZMi4sMWOh/q06dPnHnmma2279y5MyIi/vnPf1a6pKqwZs2auOuuu+IHP/hBjBgxInU5ufT000/HCSecEKNGjWqx/eyzz47NmzfHl7/85USV5dNxxx0X27Zti7feeqvF9jfeeCMOOOCAOP744xNVltaIESNi+/btsX379nj99dfbvM+aNWsiy7KYOHFiq9smTZoUzz33XGzdurWnS02uM2P13nvvxZFHHhknn3xyq9t66nu/pkLItm3borGxsc0dQ/O2t99+u9Jl5db69evjpz/9aavtv/rVryIi4pRTTql0Sbm3Y8eOqK+vjzFjxsRVV12Vupxc2rFjR7z++ustdpxbtmyxILUDl112WXz0ox+Nz3/+8/HYY4/F2rVrY968eXHPPffElVdeGQcffHDqEpPp16/f7p+2bNiwISKiw+/9WvmDal9jVSwW480334zzzz+/xfampqZYsWJFfOQjHyl74K2pEPLee+9FRMQhhxzS6rYhQ4ZExIeLMWnfwoUL47vf/W4cdthhMXPmzNTl5M68efNi7dq1sXjx4jjggJr69eq0d999N7Isi2HDhsW8efPiE5/4RAwdOjQGDRoUl1xyye6dBv9zyimnxC9/+ct4/vnnY+LEiXHSSSfFDTfcEKNHj44f/ehHqcvLNd/7++fdd9+NyZMnx7p166K+vn73mJVL7q8dU04HHnhgu7c1t5qa/0tLr732Wlx11VXx2GOPxbBhw+L3v/99DB48OHVZubJ+/fr43ve+F9ddd118+tOfTl1Obm3fvj0iIpYvXx79+/ePb3/723HsscfG2rVrY+HChXHWWWfFyy+/XPYvu2r2hz/8IS677LI44YQTor6+PoYOHRrPPPNM/OxnP4vPfOYz8cc//tHvYzt873ff0qVLY/bs2fGPf/wjzj///Pjxj39c9teoqRAydOjQ6Nu3b2zZsqXVbc3bnNOhpV27dsX8+fPj5ptvjqamprjoooti0aJFxqkNDQ0NccQRR8Stt96aupRcGzZsWER8+Nl69tln4+ijj95929lnnx2TJ0+OBQsWxG233ZaqxFxpamqKWbNmxciRI+OFF16I/v37R8SHUzTjx4+Pr33ta3H33Xc7tLkdhx12WESE7/0u2LRpU1xxxRXx8MMPx4ABA+LOO++M6667rke6uzUVQgqFQgwfPjw2btzY6rbmBV8+jP+TZVnMmDEjli9fHiNHjoy77747Jk+enLqsXFqxYkU88cQTsXjx4hbzy9u3b4+dO3fG3/72t+jTp08ceeSRCavMh379+sVBBx0U55xzTosAEhFxwQUXxODBg2PNmjWJqsufdevWxdtvvx1XXnnl7gDSbPr06dHQ0OAcRx1oDiG+9zvnr3/9a4wfPz42bdoU06ZNi/nz58dRRx3VY69XUyEkImL8+PHxu9/9LrZt2xYDBw7cvb35jKltHQ1Sq+bNmxfLly+PadOmxb333ttivGip+cusvr6+zdvr6uriyCOPjDfffLOSZeXWGWecsXuufk87d+6M999/31TMHprXMjQ1NbW6bceOHbFz5874+Mc/Xumyqsapp54a/fr1i1WrVrVax7Zq1ao46aSTfLf9f1mWxdSpU6OxsTHuu++++OpXv9rjr1lzK+euuOKKaGpqivnz5+/e1tjYGIsXL47Ro0fHmDFjElaXHzt37oyFCxfG0KFDY+nSpX5J96FYLMYDDzzQ6ufEE0+Mgw8+OB544IE2jzSqVTNnzoynn3661Vkb77rrrmhqaooJEyYkqix/Ro4cGUcddVQsWbIkNm/e3OK2+fPnx44dO+Lcc89NU1wVOOSQQ+KSSy6JBx54IF577bXd2++///74y1/+0u4fDrXo0UcfjbVr10ZDQ0NFAkhEDXZCJk2aFFOnTo1bb7011q1bF3V1dbFy5crYvHlzLFmyJHV5ufHnP/85Nm7cGGPHjo2f/OQnbd5n9OjR8dnPfrbCleXTMcccE8ccc0yr7QsWLIjGxsa4+OKLE1SVX1/4whfivvvui/PPPz+mT58eo0aNimeffTZKpVKcd955cfnll6cuMVeWLFkSF1xwQZx44okxffr0GDJkSDzzzDPxyCOPxIUXXlixHUa1uuWWW+Lxxx+Pz33uczF9+vTYsmVLLFu2LMaOHRuzZs1KXV5u7PlHwV133dXmfWbMmLF7XVdZlPXUZ1Xi/fffz2bPnp2dfPLJ2ZAhQ7LJkydnTz31VOqycuXhhx9udXa9vX+uueaa1GXm3rnnnuuMqe3Yvn17Nnv27Gzs2LHZoEGDsjFjxmR33nln9sEHH6QuLZdefvnl7NJLL82OPvrobPDgwdm4ceOyBQsWZDt27EhdWi5s2LCh3dO2Z1mWvfLKK9m0adOy4cOHZ8cdd1zW0NCQvfvuuxWuMh/aG6svfelL+/zef/HFF8taSyHLXIIRAKi8mlsTAgDkgxACACQhhAAASQghAEASQggAkIQQAgAkIYQAAEkIIQBAEkIIAJCEEAIAJPH/ACu9Edg3YDcHAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.hist(masses, bins=240, range=(0, 12))\n", + "plt.yscale(\"log\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The important point is that _you don't have to choose_ between Awkward combinatorics and Numba. You can pass the same data structures through `ak.this` and `ak.that` functions as you can pass into Numba-compiled functions.\n", + "\n", + " * Awkward's array-at-a-time functions are best for interactive exploration. It can be hard to express deeply nested loops with [ak.cartesian](https://awkward-array.readthedocs.io/en/latest/_auto/ak.cartesian.html) and [ak.combinations](https://awkward-array.readthedocs.io/en/latest/_auto/ak.combinations.html).\n", + " * Numba's just-in-time compilation is best for tricky algorithms and high performance. It can be hard to satisfy Numba's type constraints and stay within the supported [Python subset](https://numba.pydata.org/numba-doc/dev/reference/pysupported.html) and [NumPy subset](https://numba.pydata.org/numba-doc/dev/reference/numpysupported.html).\n", + "\n", + "Use them both in your data analysis! Use Numba to make indexes to slice Awkward arrays; use Awkward to prepare structures for Numba.\n", + "\n", + "(I haven't even mentioned the fact that Awkward Arrays are [accessible from C++](https://github.com/scikit-hep/awkward-1.0/tree/master/dependent-project) and will [soon run on GPUs](https://github.com/scikit-hep/awkward-1.0/projects/1).)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/tutorial.ipynb b/tutorial.ipynb index 69952b4..9cad355 100644 --- a/tutorial.ipynb +++ b/tutorial.ipynb @@ -506,7 +506,7 @@ "metadata": {}, "outputs": [], "source": [ - "mplhep.hist2dplot(*histograms[\"hpxpy\"].to_numpy(flow=False));" + "mplhep.hist2dplot(histograms[\"hpxpy\"].to_boost());" ] }, { @@ -526,7 +526,7 @@ "metadata": {}, "outputs": [], "source": [ - "histograms[\"hpx\"].to_hist().plot1d();" + "histograms[\"hpx\"].to_hist().plot();" ] }, { @@ -535,7 +535,7 @@ "metadata": {}, "outputs": [], "source": [ - "histograms[\"hpxpy\"].to_hist().plot2d();" + "histograms[\"hpxpy\"].to_hist().plot();" ] }, {