{ "cells": [ { "cell_type": "markdown", "id": "d7492051", "metadata": {}, "source": [ "# reading remote data: examples\n", "\n", "dataset to use: PP8 ttbar from 2015 CMS Open Data, converted to flat ntuple" ] }, { "cell_type": "code", "execution_count": 1, "id": "10f550aa", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import awkward as ak\n", "import numpy as np\n", "\n", "dataset_opendata = \"http://xrootd-local.unl.edu:1094//store/user/AGC/datasets/RunIIFall15MiniAODv2/TT_TuneCUETP8M1_13TeV-powheg-pythia8/MINIAODSIM//PU25nsData2015v1_76X_mcRun2_asymptotic_v12_ext3-v1/00000/00DF0A73-17C2-E511-B086-E41D2D08DE30.root\"\n", "treename = \"events\"\n", "bins = np.linspace(0, 250, 26)" ] }, { "cell_type": "markdown", "id": "3b68c225", "metadata": {}, "source": [ "#### using `uproot`" ] }, { "cell_type": "code", "execution_count": 2, "id": "88ed6c38", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[96.6, 90.3, 66.4, 57.2, 35.4, 16.4, 16.1, ... 16, 14.9, 13.9, 13.6, 10.4, 10.1]]\n" ] }, { "data": { "image/png": "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73//e333u9+V9LcXKmZkZOjNN99UcHCwpk+frjVr1ujWW2816w8dOqT09HTt27dP/fr105w5c7R48WK/Prdu3aqlS5fqgw8+0ODBg5WTk6P77rvPbDcMQ8uWLdOGDRtUX1+viRMn6tVXX9U3vvGN65orj88DAND1tOXn91d6j1B3RxACAKDruaneIwQAAHCzIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLanMQKikp0QMPPCCn06mgoCDl5+f7tRuGoezsbPXv31/h4eFKSEjQ8ePH/WrOnDmjlJQU2Ww2RUREKC0tTefOnfOrOXTokO655x6FhYUpJiZGOTk5V4xl69atGjp0qMLCwhQXF6e33nqrzWMBAADW1eYg1NDQoJEjR2rdunVXbc/JydGaNWuUm5ursrIy9e7dW263W+fPnzdrUlJSdPToURUVFamgoEAlJSWaPXu22e7z+TR16lQNHDhQ5eXlWrlypZYvX64NGzaYNXv27NHMmTOVlpamgwcPKikpSUlJSTpy5EibxgIAAKwryDAM44YPDgrStm3blJSUJOlvV2CcTqcWLFigp556SpLk9XoVHR2tvLw8JScn69ixYxo+fLj27dunsWPHSpIKCwt133336aOPPpLT6dT69ev1zDPPyOPxKCQkRJKUlZWl/Px8VVZWSpJmzJihhoYGFRQUmOOZMGGCRo0apdzc3Osay7X4fD7Z7XZ5vV7ZbLYbXaZ2Nyhre0D6+eDFxID0AwBAZ2rLz++A3iNUXV0tj8ejhIQEc5/dbld8fLxKS0slSaWlpYqIiDBDkCQlJCQoODhYZWVlZs2kSZPMECRJbrdbVVVVOnv2rFlz6Xlaa1rPcz1juVxjY6N8Pp/fBgAAuq+ABiGPxyNJio6O9tsfHR1ttnk8HkVFRfm19+zZU5GRkX41V+vj0nN8Uc2l7dcay+VWrFghu91ubjExMdcxawAA0FXx1NgllixZIq/Xa24nT57s7CEBAIB2FNAg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/wuPYZ1vTF1dnSHJ2L17t2EY1/e94q233jKCg4MNj8dj1qxfv96w2WxGY2Njx06gi7h8nQ3DML7zne8Yc+fO/cJjOnKduSLUwZqamlReXq6EhARzX3BwsBISElRaWtqJI+v6jh8/LqfTqa997WtKSUlRTU2NJKm8vFzNzc1+az506FANGDCANf8Kqqur5fF4/NbVbrcrPj7eXNfS0lJFRERo7NixZk1CQoKCg4NVVlbW4WPuynbt2qWoqCgNGTJETz75pP7617+abazzjfF6vZKkyMhISdf3vaK0tFRxcXF+L+V1u93y+Xw6evRoB46+67h8nVtt2rRJ/fr104gRI7RkyRJ99tlnZltHrnO3f7P0zeaTTz7RxYsXr3izdXR0tCorKztpVF1ffHy88vLyNGTIEH388cd67rnndM899+jIkSPyeDwKCQm54g/oRkdHy+PxdM6Au4HWtbva13Jrm8fjUVRUlF97z549FRkZydq3wbRp0/TQQw8pNjZW77//vp5++mnde++9Ki0tVY8ePVjnG9DS0qJ58+bp7rvv1ogRIyTpur5XeDyeq37Nt7bB39XWWZIeeeQRDRw4UE6nU4cOHdLixYtVVVWl3/zmN5I6dp0JQugW7r33XvPf3/rWtxQfH6+BAwfq9ddfV3h4eCeODPjqkpOTzX/HxcXpW9/6lr7+9a9r165dmjJlSieOrOtKT0/XkSNH/O4lROB90Tpfev9aXFyc+vfvrylTpuj999/X17/+9Q4dI78a62D9+vVTjx49rngKoba2Vg6Ho5NG1f1EREToG9/4hk6cOCGHw6GmpibV19f71bDmX03r2n3Z17LD4bjiIYALFy7ozJkzrP1X8LWvfU39+vXTiRMnJLHObZWRkaGCggL9/ve/1x133GHuv57vFQ6H46pf861t+LsvWueriY+PlyS/r+mOWmeCUAcLCQnRmDFjVFxcbO5raWlRcXGxXC5XJ46sezl37pzef/999e/fX2PGjFGvXr381ryqqko1NTWs+VcQGxsrh8Pht64+n09lZWXmurpcLtXX16u8vNys2blzp1paWsxvfGi7jz76SH/961/Vv39/Sazz9TIMQxkZGdq2bZt27typ2NhYv/br+V7hcrl0+PBhv+BZVFQkm82m4cOHd8xEbnLXWuerqaiokCS/r+kOW+eA3nqN6/Laa68ZoaGhRl5envGnP/3JmD17thEREeF3dzzaZsGCBcauXbuM6upq49133zUSEhKMfv36GXV1dYZhGMYTTzxhDBgwwNi5c6exf/9+w+VyGS6Xq5NHffP79NNPjYMHDxoHDx40JBm/+MUvjIMHDxoffvihYRiG8eKLLxoRERHGb3/7W+PQoUPG97//fSM2Ntb4/PPPzT6mTZtmfPvb3zbKysqMP/7xj8bgwYONmTNndtaUbkpfts6ffvqp8dRTTxmlpaVGdXW18bvf/c4YPXq0MXjwYOP8+fNmH6zztT355JOG3W43du3aZXz88cfm9tlnn5k11/peceHCBWPEiBHG1KlTjYqKCqOwsNC4/fbbjSVLlnTGlG5K11rnEydOGM8//7yxf/9+o7q62vjtb39rfO1rXzMmTZpk9tGR60wQ6iSvvPKKMWDAACMkJMQYP3688d5773X2kLq0GTNmGP379zdCQkKMf/iHfzBmzJhhnDhxwmz//PPPjR//+MdGnz59jFtuucV48MEHjY8//rgTR9w1/P73vzckXbGlpqYahvG3R+ifffZZIzo62ggNDTWmTJliVFVV+fXx17/+1Zg5c6Zx6623GjabzXj88ceNTz/9tBNmc/P6snX+7LPPjKlTpxq333670atXL2PgwIHGrFmzrvgfJ9b52q62xpKMX/3qV2bN9Xyv+OCDD4x7773XCA8PN/r162csWLDAaG5u7uDZ3Lyutc41NTXGpEmTjMjISCM0NNS48847jYULFxper9evn45a56D/P2gAAADL4R4hAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWf8PxgbmsV3PCFsAAAAASUVORK5CYII=\n", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import uproot\n", "\n", "f = uproot.open(dataset_opendata)\n", "jet_pt = f[treename][\"jet_pt\"].array()\n", "print(jet_pt)\n", "plt.hist(ak.flatten(jet_pt), bins=bins);" ] }, { "cell_type": "markdown", "id": "09818da0", "metadata": {}, "source": [ "#### using `func_adl_uproot`" ] }, { "cell_type": "code", "execution_count": 3, "id": "f4206330", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[96.6, 90.3, 66.4, 57.2, 35.4, 16.4, 16.1, ... 16, 14.9, 13.9, 13.6, 10.4, 10.1]]\n" ] }, { "data": { "image/png": "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73//e333u9+V9LcXKmZkZOjNN99UcHCwpk+frjVr1ujWW2816w8dOqT09HTt27dP/fr105w5c7R48WK/Prdu3aqlS5fqgw8+0ODBg5WTk6P77rvPbDcMQ8uWLdOGDRtUX1+viRMn6tVXX9U3vvGN65orj88DAND1tOXn91d6j1B3RxACAKDruaneIwQAAHCzIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLanMQKikp0QMPPCCn06mgoCDl5+f7tRuGoezsbPXv31/h4eFKSEjQ8ePH/WrOnDmjlJQU2Ww2RUREKC0tTefOnfOrOXTokO655x6FhYUpJiZGOTk5V4xl69atGjp0qMLCwhQXF6e33nqrzWMBAADW1eYg1NDQoJEjR2rdunVXbc/JydGaNWuUm5ursrIy9e7dW263W+fPnzdrUlJSdPToURUVFamgoEAlJSWaPXu22e7z+TR16lQNHDhQ5eXlWrlypZYvX64NGzaYNXv27NHMmTOVlpamgwcPKikpSUlJSTpy5EibxgIAAKwryDAM44YPDgrStm3blJSUJOlvV2CcTqcWLFigp556SpLk9XoVHR2tvLw8JScn69ixYxo+fLj27dunsWPHSpIKCwt133336aOPPpLT6dT69ev1zDPPyOPxKCQkRJKUlZWl/Px8VVZWSpJmzJihhoYGFRQUmOOZMGGCRo0apdzc3Osay7X4fD7Z7XZ5vV7ZbLYbXaZ2Nyhre0D6+eDFxID0AwBAZ2rLz++A3iNUXV0tj8ejhIQEc5/dbld8fLxKS0slSaWlpYqIiDBDkCQlJCQoODhYZWVlZs2kSZPMECRJbrdbVVVVOnv2rFlz6Xlaa1rPcz1juVxjY6N8Pp/fBgAAuq+ABiGPxyNJio6O9tsfHR1ttnk8HkVFRfm19+zZU5GRkX41V+vj0nN8Uc2l7dcay+VWrFghu91ubjExMdcxawAA0FXx1NgllixZIq/Xa24nT57s7CEBAIB2FNAg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/wuPYZ1vTF1dnSHJ2L17t2EY1/e94q233jKCg4MNj8dj1qxfv96w2WxGY2Njx06gi7h8nQ3DML7zne8Yc+fO/cJjOnKduSLUwZqamlReXq6EhARzX3BwsBISElRaWtqJI+v6jh8/LqfTqa997WtKSUlRTU2NJKm8vFzNzc1+az506FANGDCANf8Kqqur5fF4/NbVbrcrPj7eXNfS0lJFRERo7NixZk1CQoKCg4NVVlbW4WPuynbt2qWoqCgNGTJETz75pP7617+abazzjfF6vZKkyMhISdf3vaK0tFRxcXF+L+V1u93y+Xw6evRoB46+67h8nVtt2rRJ/fr104gRI7RkyRJ99tlnZltHrnO3f7P0zeaTTz7RxYsXr3izdXR0tCorKztpVF1ffHy88vLyNGTIEH388cd67rnndM899+jIkSPyeDwKCQm54g/oRkdHy+PxdM6Au4HWtbva13Jrm8fjUVRUlF97z549FRkZydq3wbRp0/TQQw8pNjZW77//vp5++mnde++9Ki0tVY8ePVjnG9DS0qJ58+bp7rvv1ogRIyTpur5XeDyeq37Nt7bB39XWWZIeeeQRDRw4UE6nU4cOHdLixYtVVVWl3/zmN5I6dp0JQugW7r33XvPf3/rWtxQfH6+BAwfq9ddfV3h4eCeODPjqkpOTzX/HxcXpW9/6lr7+9a9r165dmjJlSieOrOtKT0/XkSNH/O4lROB90Tpfev9aXFyc+vfvrylTpuj999/X17/+9Q4dI78a62D9+vVTjx49rngKoba2Vg6Ho5NG1f1EREToG9/4hk6cOCGHw6GmpibV19f71bDmX03r2n3Z17LD4bjiIYALFy7ozJkzrP1X8LWvfU39+vXTiRMnJLHObZWRkaGCggL9/ve/1x133GHuv57vFQ6H46pf861t+LsvWueriY+PlyS/r+mOWmeCUAcLCQnRmDFjVFxcbO5raWlRcXGxXC5XJ46sezl37pzef/999e/fX2PGjFGvXr381ryqqko1NTWs+VcQGxsrh8Pht64+n09lZWXmurpcLtXX16u8vNys2blzp1paWsxvfGi7jz76SH/961/Vv39/Sazz9TIMQxkZGdq2bZt27typ2NhYv/br+V7hcrl0+PBhv+BZVFQkm82m4cOHd8xEbnLXWuerqaiokCS/r+kOW+eA3nqN6/Laa68ZoaGhRl5envGnP/3JmD17thEREeF3dzzaZsGCBcauXbuM6upq49133zUSEhKMfv36GXV1dYZhGMYTTzxhDBgwwNi5c6exf/9+w+VyGS6Xq5NHffP79NNPjYMHDxoHDx40JBm/+MUvjIMHDxoffvihYRiG8eKLLxoRERHGb3/7W+PQoUPG97//fSM2Ntb4/PPPzT6mTZtmfPvb3zbKysqMP/7xj8bgwYONmTNndtaUbkpfts6ffvqp8dRTTxmlpaVGdXW18bvf/c4YPXq0MXjwYOP8+fNmH6zztT355JOG3W43du3aZXz88cfm9tlnn5k11/peceHCBWPEiBHG1KlTjYqKCqOwsNC4/fbbjSVLlnTGlG5K11rnEydOGM8//7yxf/9+o7q62vjtb39rfO1rXzMmTZpk9tGR60wQ6iSvvPKKMWDAACMkJMQYP3688d5773X2kLq0GTNmGP379zdCQkKMf/iHfzBmzJhhnDhxwmz//PPPjR//+MdGnz59jFtuucV48MEHjY8//rgTR9w1/P73vzckXbGlpqYahvG3R+ifffZZIzo62ggNDTWmTJliVFVV+fXx17/+1Zg5c6Zx6623GjabzXj88ceNTz/9tBNmc/P6snX+7LPPjKlTpxq333670atXL2PgwIHGrFmzrvgfJ9b52q62xpKMX/3qV2bN9Xyv+OCDD4x7773XCA8PN/r162csWLDAaG5u7uDZ3Lyutc41NTXGpEmTjMjISCM0NNS48847jYULFxper9evn45a56D/P2gAAADL4R4hAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWf8PxgbmsV3PCFsAAAAASUVORK5CYII=\n", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from func_adl_uproot import UprootDataset\n", "\n", "ds = UprootDataset(dataset_opendata, treename)\n", "jet_pt_query = ds.Select(lambda event: event.jet_pt)\n", "jet_pt = jet_pt_query.value()\n", "print(jet_pt)\n", "plt.hist(ak.flatten(jet_pt), bins=bins);" ] }, { "cell_type": "markdown", "id": "69613ce0", "metadata": {}, "source": [ "#### using `func_adl_servicex`\n", "\n", "querying e.g. https://uproot-atlas.servicex.af.uchicago.edu/" ] }, { "cell_type": "code", "execution_count": 4, "id": "4c09eb08", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "http://xrootd-local....: 0%| | 0/9000000000.0 [00:00]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ " http://xrootd-local.... Downloaded: 0%| | 0/90000" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "[[96.6, 90.3, 66.4, 57.2, 35.4, 16.4, 16.1, ... 16, 14.9, 13.9, 13.6, 10.4, 10.1]]\n" ] }, { "data": { "image/png": "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73//e333u9+V9LcXKmZkZOjNN99UcHCwpk+frjVr1ujWW2816w8dOqT09HTt27dP/fr105w5c7R48WK/Prdu3aqlS5fqgw8+0ODBg5WTk6P77rvPbDcMQ8uWLdOGDRtUX1+viRMn6tVXX9U3vvGN65orj88DAND1tOXn91d6j1B3RxACAKDruaneIwQAAHCzIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLIggBAADLanMQKikp0QMPPCCn06mgoCDl5+f7tRuGoezsbPXv31/h4eFKSEjQ8ePH/WrOnDmjlJQU2Ww2RUREKC0tTefOnfOrOXTokO655x6FhYUpJiZGOTk5V4xl69atGjp0qMLCwhQXF6e33nqrzWMBAADW1eYg1NDQoJEjR2rdunVXbc/JydGaNWuUm5ursrIy9e7dW263W+fPnzdrUlJSdPToURUVFamgoEAlJSWaPXu22e7z+TR16lQNHDhQ5eXlWrlypZYvX64NGzaYNXv27NHMmTOVlpamgwcPKikpSUlJSTpy5EibxgIAAKwryDAM44YPDgrStm3blJSUJOlvV2CcTqcWLFigp556SpLk9XoVHR2tvLw8JScn69ixYxo+fLj27dunsWPHSpIKCwt133336aOPPpLT6dT69ev1zDPPyOPxKCQkRJKUlZWl/Px8VVZWSpJmzJihhoYGFRQUmOOZMGGCRo0apdzc3Osay7X4fD7Z7XZ5vV7ZbLYbXaZ2Nyhre0D6+eDFxID0AwBAZ2rLz++A3iNUXV0tj8ejhIQEc5/dbld8fLxKS0slSaWlpYqIiDBDkCQlJCQoODhYZWVlZs2kSZPMECRJbrdbVVVVOnv2rFlz6Xlaa1rPcz1juVxjY6N8Pp/fBgAAuq+ABiGPxyNJio6O9tsfHR1ttnk8HkVFRfm19+zZU5GRkX41V+vj0nN8Uc2l7dcay+VWrFghu91ubjExMdcxawAA0FXx1NgllixZIq/Xa24nT57s7CEBAIB2FNAg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/wuPYZ1vTF1dnSHJ2L17t2EY1/e94q233jKCg4MNj8dj1qxfv96w2WxGY2Njx06gi7h8nQ3DML7zne8Yc+fO/cJjOnKduSLUwZqamlReXq6EhARzX3BwsBISElRaWtqJI+v6jh8/LqfTqa997WtKSUlRTU2NJKm8vFzNzc1+az506FANGDCANf8Kqqur5fF4/NbVbrcrPj7eXNfS0lJFRERo7NixZk1CQoKCg4NVVlbW4WPuynbt2qWoqCgNGTJETz75pP7617+abazzjfF6vZKkyMhISdf3vaK0tFRxcXF+L+V1u93y+Xw6evRoB46+67h8nVtt2rRJ/fr104gRI7RkyRJ99tlnZltHrnO3f7P0zeaTTz7RxYsXr3izdXR0tCorKztpVF1ffHy88vLyNGTIEH388cd67rnndM899+jIkSPyeDwKCQm54g/oRkdHy+PxdM6Au4HWtbva13Jrm8fjUVRUlF97z549FRkZydq3wbRp0/TQQw8pNjZW77//vp5++mnde++9Ki0tVY8ePVjnG9DS0qJ58+bp7rvv1ogRIyTpur5XeDyeq37Nt7bB39XWWZIeeeQRDRw4UE6nU4cOHdLixYtVVVWl3/zmN5I6dp0JQugW7r33XvPf3/rWtxQfH6+BAwfq9ddfV3h4eCeODPjqkpOTzX/HxcXpW9/6lr7+9a9r165dmjJlSieOrOtKT0/XkSNH/O4lROB90Tpfev9aXFyc+vfvrylTpuj999/X17/+9Q4dI78a62D9+vVTjx49rngKoba2Vg6Ho5NG1f1EREToG9/4hk6cOCGHw6GmpibV19f71bDmX03r2n3Z17LD4bjiIYALFy7ozJkzrP1X8LWvfU39+vXTiRMnJLHObZWRkaGCggL9/ve/1x133GHuv57vFQ6H46pf861t+LsvWueriY+PlyS/r+mOWmeCUAcLCQnRmDFjVFxcbO5raWlRcXGxXC5XJ46sezl37pzef/999e/fX2PGjFGvXr381ryqqko1NTWs+VcQGxsrh8Pht64+n09lZWXmurpcLtXX16u8vNys2blzp1paWsxvfGi7jz76SH/961/Vv39/Sazz9TIMQxkZGdq2bZt27typ2NhYv/br+V7hcrl0+PBhv+BZVFQkm82m4cOHd8xEbnLXWuerqaiokCS/r+kOW+eA3nqN6/Laa68ZoaGhRl5envGnP/3JmD17thEREeF3dzzaZsGCBcauXbuM6upq49133zUSEhKMfv36GXV1dYZhGMYTTzxhDBgwwNi5c6exf/9+w+VyGS6Xq5NHffP79NNPjYMHDxoHDx40JBm/+MUvjIMHDxoffvihYRiG8eKLLxoRERHGb3/7W+PQoUPG97//fSM2Ntb4/PPPzT6mTZtmfPvb3zbKysqMP/7xj8bgwYONmTNndtaUbkpfts6ffvqp8dRTTxmlpaVGdXW18bvf/c4YPXq0MXjwYOP8+fNmH6zztT355JOG3W43du3aZXz88cfm9tlnn5k11/peceHCBWPEiBHG1KlTjYqKCqOwsNC4/fbbjSVLlnTGlG5K11rnEydOGM8//7yxf/9+o7q62vjtb39rfO1rXzMmTZpk9tGR60wQ6iSvvPKKMWDAACMkJMQYP3688d5773X2kLq0GTNmGP379zdCQkKMf/iHfzBmzJhhnDhxwmz//PPPjR//+MdGnz59jFtuucV48MEHjY8//rgTR9w1/P73vzckXbGlpqYahvG3R+ifffZZIzo62ggNDTWmTJliVFVV+fXx17/+1Zg5c6Zx6623GjabzXj88ceNTz/9tBNmc/P6snX+7LPPjKlTpxq333670atXL2PgwIHGrFmzrvgfJ9b52q62xpKMX/3qV2bN9Xyv+OCDD4x7773XCA8PN/r162csWLDAaG5u7uDZ3Lyutc41NTXGpEmTjMjISCM0NNS48847jYULFxper9evn45a56D/P2gAAADL4R4hAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWQQhAABgWf8PxgbmsV3PCFsAAAAASUVORK5CYII=\n", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from servicex import ServiceXDataset\n", "from func_adl_servicex import ServiceXSourceUpROOT\n", "\n", "sx_dataset = ServiceXDataset(dataset_opendata, backend_name='uproot', ignore_cache=False)\n", "ds = ServiceXSourceUpROOT(sx_dataset, treename)\n", "jet_pt_query = ds.Select(lambda event: event.jet_pt)\n", "\n", "jet_pt = jet_pt_query.AsAwkwardArray().value()\n", "print(jet_pt)\n", "plt.hist(ak.flatten(jet_pt), bins=bins);" ] }, { "cell_type": "markdown", "id": "3c8ba99f", "metadata": {}, "source": [ "#### Streaming data from ROOT files" ] }, { "cell_type": "code", "execution_count": 5, "id": "9d3f3372", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "[https://xrootd-loca...: 0%| | 0/9000000000.0 [00:00]" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "remote file content: ['event', 'nel_pt', 'el_pt']\n", "downloading 0.root\n", "local file content: ['event', 'nel_pt', 'el_pt']\n" ] } ], "source": [ "import urllib\n", "\n", "from servicex import ServiceXDataset\n", "import uproot\n", "\n", "dummy_ds = ServiceXSourceUpROOT(\"cernopendata://dummy\", \"Events\", backend_name=\"uproot\")\n", "dummy_ds.return_qastle = True\n", "query = dummy_ds.Select(lambda e: {\"event\": e.event, \"el_pt\": e.Electron_pt}).value()\n", "\n", "dataset_name = [\"https://xrootd-local.unl.edu:1094//store/user/AGC/nanoAOD/nanoaod15.root\"]\n", "sx_dataset = ServiceXDataset(dataset_name, backend_name='uproot', ignore_cache=False)\n", "\n", "transformed_files = sx_dataset.get_data_rootfiles_uri(query, as_signed_url=True)\n", "\n", "# open remote file\n", "with uproot.open(f\"{transformed_files[0].url}:servicex\") as f:\n", " print(f\"remote file content: {f.keys()}\")\n", "\n", "# download file\n", "for i, output in enumerate(transformed_files):\n", " output_fname = f\"{i}.root\"\n", " print(f\"downloading {output_fname}\")\n", " urllib.request.urlretrieve(output.url, filename=output_fname)\n", "\n", "# open local file\n", "with uproot.open(\"0.root:servicex\") as f:\n", " print(f\"local file content: {f.keys()}\")" ] }, { "cell_type": "markdown", "id": "ad71b1fe", "metadata": {}, "source": [ "#### xAOD backend\n", "\n", "taken from https://github.com/iris-hep/func_adl_servicex#using-the-xaod-backend" ] }, { "cell_type": "code", "execution_count": null, "id": "19e6ee1e", "metadata": {}, "outputs": [], "source": [ "from func_adl_servicex import ServiceXSourceXAOD\n", "\n", "dataset_xaod = \"mc15_13TeV:mc15_13TeV.361106.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zee.merge.DAOD_STDM3.e3601_s2576_s2132_r6630_r6264_p2363_tid05630052_00\"\n", "ds = ServiceXSourceXAOD(dataset_xaod)\n", "data = (\n", " ds\n", " .SelectMany('lambda e: (e.Jets(\"AntiKt4EMTopoJets\"))')\n", " .Where('lambda j: (j.pt()/1000)>30')\n", " .Select('lambda j: j.pt()')\n", " .AsAwkwardArray([\"JetPt\"])\n", " .value()\n", ")\n", "\n", "print(data['JetPt'])" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.13" } }, "nbformat": 4, "nbformat_minor": 5 }