diff --git a/notebooks/egamma_meeting_May_6_2024.ipynb b/notebooks/egamma_meeting_May_6_2024.ipynb
index 3d4d578f..5b03d426 100644
--- a/notebooks/egamma_meeting_May_6_2024.ipynb
+++ b/notebooks/egamma_meeting_May_6_2024.ipynb
@@ -1,860 +1,853 @@
{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "b369fd0f-665d-49e9-bed9-85ef8ba9396f",
- "metadata": {},
- "outputs": [],
- "source": [
- "import dask_awkward as dak\n",
- "import numpy as np\n",
- "from coffea.dataset_tools import preprocess\n",
- "from distributed import Client\n",
- "from matplotlib import pyplot as plt\n",
- "\n",
- "import egamma_tnp\n",
- "from egamma_tnp import ElectronTagNProbeFromNTuples\n",
- "from egamma_tnp.plot import plot_efficiency"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "688ce707-6830-4326-b8f9-42f65f31272f",
- "metadata": {},
- "outputs": [],
- "source": [
- "client = Client()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "id": "2249d89d-0e57-4e36-9223-aef31d5f971f",
- "metadata": {},
- "outputs": [],
- "source": [
- "fileset = {\n",
- " \"samples\": {\n",
- " \"files\": {\n",
- " \"../root_files/Egamma0.root\": \"Events\",\n",
- " \"../root_files/Egamma1.root\": \"Events\",\n",
- " }\n",
- " }\n",
- "}\n",
- "\n",
- "fileset_available, fileset_updates = preprocess(fileset, skip_bad_files=True, step_size=500_000)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "id": "e201b56b-5648-4b51-9c7d-8786bfc01b12",
- "metadata": {},
- "outputs": [],
- "source": [
- "tnp = egamma_tnp.ElectronTagNProbeFromNanoAOD(\n",
- " fileset_available,\n",
- " True,\n",
- " filter=\"asdf\",\n",
- " filterbit=1,\n",
- " tags_pt_cut=30,\n",
- " use_sc_eta=True,\n",
- " tags_abseta_cut=2.50,\n",
- " probes_pt_cut=27,\n",
- " trigger_pt=30,\n",
- " hlt_filter=\"Ele32_WPTight_Gsf\",\n",
- ")\n",
- "\n",
- "egamma_tnp.config.set(\"MET_pt_bins\", np.linspace(0, 200, 21).tolist())\n",
- "egamma_tnp.config.set(\"luminosityBlock_bins\", np.linspace(0, 1000, 11).tolist())\n",
- "egamma_tnp.config.set(\"tag_Ele_pt_bins\", egamma_tnp.config.get(\"pt_bins\"))\n",
- "egamma_tnp.config.set(\"Electron_pt_bins\", egamma_tnp.config.get(\"pt_bins\"))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "384a0b8b-8cbc-4bda-aa78-76061965bdca",
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/Users/iason/miniforge3/envs/egamma_dev/lib/python3.10/site-packages/coffea/nanoevents/methods/candidate.py:11: FutureWarning: In version 2024.7.0 (target date: 2024-06-30 11:59:59-05:00), this will be an error.\n",
- "To raise these warnings as errors (and get stack traces to find out where they're called), run\n",
- " import warnings\n",
- " warnings.filterwarnings(\"error\", module=\"coffea.*\")\n",
- "after the first `import coffea` or use `@pytest.mark.filterwarnings(\"error:::coffea.*\")` in pytest.\n",
- "Issue: coffea.nanoevents.methods.vector will be removed and replaced with scikit-hep vector. Nanoevents schemas internal to coffea will be migrated. Otherwise please consider using that package!.\n",
- " from coffea.nanoevents.methods import vector\n"
- ]
- },
- {
- "data": {
- "text/plain": [
- "{'from-uproot-79e3ecd01474e06d4436304834c219f7': frozenset({'Electron_charge',\n",
- " 'Electron_deltaEtaSC',\n",
- " 'Electron_eta',\n",
- " 'Electron_mass',\n",
- " 'Electron_phi',\n",
- " 'Electron_pt',\n",
- " 'HLT_Ele30_WPTight_Gsf',\n",
- " 'HLT_Ele32_WPTight_Gsf',\n",
- " 'MET_pt',\n",
- " 'TrigObj_eta',\n",
- " 'TrigObj_filterBits',\n",
- " 'TrigObj_id',\n",
- " 'TrigObj_phi',\n",
- " 'TrigObj_pt',\n",
- " 'luminosityBlock',\n",
- " 'nElectron',\n",
- " 'nTrigObj'})}"
- ]
- },
- "execution_count": 5,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "dak.necessary_columns(tnp.get_tnp_arrays(cut_and_count=False, vars=[\"Electron_pt\", \"tag_Ele_eta\", \"el_pt\", \"el_eta\", \"MET_pt\", \"luminosityBlock\"]))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "id": "4e2f809b-e40d-4a2e-9dab-b2392be30af6",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "{'from-uproot-79e3ecd01474e06d4436304834c219f7': frozenset({'Electron_charge',\n",
- " 'Electron_deltaEtaSC',\n",
- " 'Electron_eta',\n",
- " 'Electron_mass',\n",
- " 'Electron_phi',\n",
- " 'Electron_pt',\n",
- " 'HLT_Ele30_WPTight_Gsf',\n",
- " 'HLT_Ele32_WPTight_Gsf',\n",
- " 'MET_pt',\n",
- " 'TrigObj_eta',\n",
- " 'TrigObj_filterBits',\n",
- " 'TrigObj_id',\n",
- " 'TrigObj_phi',\n",
- " 'TrigObj_pt',\n",
- " 'luminosityBlock',\n",
- " 'nElectron',\n",
- " 'nTrigObj'})}"
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "dak.necessary_columns(tnp.get_nd_tnp_histograms(cut_and_count=True, vars=[\"tag_Ele_pt\", \"el_pt\", \"el_eta\", \"MET_pt\", \"luminosityBlock\"]))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "id": "f791896e-f3a9-4cae-8ce7-cd82b9f4354a",
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/Users/iason/miniforge3/envs/egamma_dev/lib/python3.10/site-packages/coffea/nanoevents/methods/candidate.py:11: FutureWarning: In version 2024.7.0 (target date: 2024-06-30 11:59:59-05:00), this will be an error.\n",
- "To raise these warnings as errors (and get stack traces to find out where they're called), run\n",
- " import warnings\n",
- " warnings.filterwarnings(\"error\", module=\"coffea.*\")\n",
- "after the first `import coffea` or use `@pytest.mark.filterwarnings(\"error:::coffea.*\")` in pytest.\n",
- "Issue: coffea.nanoevents.methods.vector will be removed and replaced with scikit-hep vector. Nanoevents schemas internal to coffea will be migrated. Otherwise please consider using that package!.\n",
- " from coffea.nanoevents.methods import vector\n",
- "/Users/iason/miniforge3/envs/egamma_dev/lib/python3.10/site-packages/coffea/nanoevents/methods/candidate.py:11: FutureWarning: In version 2024.7.0 (target date: 2024-06-30 11:59:59-05:00), this will be an error.\n",
- "To raise these warnings as errors (and get stack traces to find out where they're called), run\n",
- " import warnings\n",
- " warnings.filterwarnings(\"error\", module=\"coffea.*\")\n",
- "after the first `import coffea` or use `@pytest.mark.filterwarnings(\"error:::coffea.*\")` in pytest.\n",
- "Issue: coffea.nanoevents.methods.vector will be removed and replaced with scikit-hep vector. Nanoevents schemas internal to coffea will be migrated. Otherwise please consider using that package!.\n",
- " from coffea.nanoevents.methods import vector\n"
- ]
- }
- ],
- "source": [
- "out = tnp.get_tnp_arrays(cut_and_count=False, vars=[\"Electron_pt\", \"tag_Ele_eta\", \"el_pt\", \"el_eta\", \"MET_pt\", \"luminosityBlock\"], compute=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "id": "8ddb488b-1c4b-487e-a47a-206fc9e9ee5e",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "
[{Electron_pt: [42.6, 34.2], tag_Ele_eta: 0.906, el_pt: 34.2, el_eta: ..., ...},\n",
- " {Electron_pt: [43.2, 41.4], tag_Ele_eta: 1.58, el_pt: 41.4, el_eta: ..., ...},\n",
- " {Electron_pt: [45.8, 40.8], tag_Ele_eta: 0.0873, el_pt: 40.8, ...},\n",
- " {Electron_pt: [48.8, 38.6], tag_Ele_eta: 1.02, el_pt: 38.6, el_eta: 1.31, ...},\n",
- " {Electron_pt: [47.1, 41.2], tag_Ele_eta: 1.35, el_pt: 41.2, el_eta: 1.62, ...},\n",
- " {Electron_pt: [63, 57.4], tag_Ele_eta: -2.21, el_pt: 57.4, el_eta: -2.24, ...},\n",
- " {Electron_pt: [49.7, 44.2], tag_Ele_eta: 0.514, el_pt: 44.2, el_eta: ..., ...},\n",
- " {Electron_pt: [41.2, 39.6], tag_Ele_eta: -1.4, el_pt: 39.6, el_eta: ..., ...},\n",
- " {Electron_pt: [51.6, 35.2], tag_Ele_eta: 0.217, el_pt: 35.2, el_eta: ..., ...},\n",
- " {Electron_pt: [36.9, 30.4], tag_Ele_eta: -0.623, el_pt: 30.4, ...},\n",
- " ...,\n",
- " {Electron_pt: [44, 43.1], tag_Ele_eta: 2.07, el_pt: 43.1, el_eta: 1.32, ...},\n",
- " {Electron_pt: [38.8, 34], tag_Ele_eta: -1.56, el_pt: 34, el_eta: -0.349, ...},\n",
- " {Electron_pt: [82, 71.4], tag_Ele_eta: -1.64, el_pt: 71.4, el_eta: -1.34, ...},\n",
- " {Electron_pt: [40, 39.7], tag_Ele_eta: 1.11, el_pt: 39.7, el_eta: 0.113, ...},\n",
- " {Electron_pt: [47.5, 34], tag_Ele_eta: -2.35, el_pt: 34, el_eta: -1.61, ...},\n",
- " {Electron_pt: [36.6, 31], tag_Ele_eta: 1.6, el_pt: 31, el_eta: 0.0329, ...},\n",
- " {Electron_pt: [40.4, 40.1], tag_Ele_eta: -1.11, el_pt: 40.1, el_eta: ..., ...},\n",
- " {Electron_pt: [44.2, 36.2], tag_Ele_eta: -1.84, el_pt: 36.2, el_eta: ..., ...},\n",
- " {Electron_pt: [52, 38.3], tag_Ele_eta: -0.813, el_pt: 38.3, el_eta: ..., ...}]\n",
- "--------------------------------------------------------------------------------\n",
- "type: 9436 * {\n",
- " Electron_pt: var * float32[parameters={"__doc__": "pt"}],\n",
- " tag_Ele_eta: float32[parameters={"__doc__": "eta"}],\n",
- " el_pt: float32[parameters={"__doc__": "pt"}],\n",
- " el_eta: float32[parameters={"__doc__": "eta"}],\n",
- " MET_pt: float32[parameters={"__doc__": "pt"}],\n",
- " luminosityBlock: uint32[parameters={"__doc__": "luminosityBlock/i"}],\n",
- " pair_mass: float32\n",
- "}
"
- ],
- "text/plain": [
- ""
- ]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "out[\"samples\"][\"passing\"]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "id": "81a31ffc-6eb8-49ef-8d0c-8449e78fa34f",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "[[42.6, 34.2],\n",
- " [43.2, 41.4],\n",
- " [45.8, 40.8],\n",
- " [48.8, 38.6],\n",
- " [47.1, 41.2],\n",
- " [63, 57.4],\n",
- " [49.7, 44.2],\n",
- " [41.2, 39.6],\n",
- " [51.6, 35.2],\n",
- " [36.9, 30.4],\n",
- " ...,\n",
- " [44, 43.1],\n",
- " [38.8, 34],\n",
- " [82, 71.4],\n",
- " [40, 39.7],\n",
- " [47.5, 34],\n",
- " [36.6, 31],\n",
- " [40.4, 40.1],\n",
- " [44.2, 36.2],\n",
- " [52, 38.3]]\n",
- "--------------------------------------------------------\n",
- "type: 9436 * var * float32[parameters={"__doc__": "pt"}]
"
- ],
- "text/plain": [
- ""
- ]
- },
- "execution_count": 9,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "out[\"samples\"][\"passing\"].Electron_pt"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "id": "02a9882b-4d7c-46ef-aac0-f803c6e78b56",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "[34.2,\n",
- " 41.4,\n",
- " 40.8,\n",
- " 38.6,\n",
- " 41.2,\n",
- " 57.4,\n",
- " 44.2,\n",
- " 39.6,\n",
- " 35.2,\n",
- " 30.4,\n",
- " ...,\n",
- " 43.1,\n",
- " 34,\n",
- " 71.4,\n",
- " 39.7,\n",
- " 34,\n",
- " 31,\n",
- " 40.1,\n",
- " 36.2,\n",
- " 38.3]\n",
- "--------------------------------------------------\n",
- "type: 9436 * float32[parameters={"__doc__": "pt"}]
"
- ],
- "text/plain": [
- ""
- ]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "out[\"samples\"][\"passing\"].el_pt"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "id": "eb8e2608-aab8-42bf-967f-17b85000033e",
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/Users/iason/miniforge3/envs/egamma_dev/lib/python3.10/site-packages/coffea/nanoevents/methods/candidate.py:11: FutureWarning: In version 2024.7.0 (target date: 2024-06-30 11:59:59-05:00), this will be an error.\n",
- "To raise these warnings as errors (and get stack traces to find out where they're called), run\n",
- " import warnings\n",
- " warnings.filterwarnings(\"error\", module=\"coffea.*\")\n",
- "after the first `import coffea` or use `@pytest.mark.filterwarnings(\"error:::coffea.*\")` in pytest.\n",
- "Issue: coffea.nanoevents.methods.vector will be removed and replaced with scikit-hep vector. Nanoevents schemas internal to coffea will be migrated. Otherwise please consider using that package!.\n",
- " from coffea.nanoevents.methods import vector\n",
- "/Users/iason/miniforge3/envs/egamma_dev/lib/python3.10/site-packages/coffea/nanoevents/methods/candidate.py:11: FutureWarning: In version 2024.7.0 (target date: 2024-06-30 11:59:59-05:00), this will be an error.\n",
- "To raise these warnings as errors (and get stack traces to find out where they're called), run\n",
- " import warnings\n",
- " warnings.filterwarnings(\"error\", module=\"coffea.*\")\n",
- "after the first `import coffea` or use `@pytest.mark.filterwarnings(\"error:::coffea.*\")` in pytest.\n",
- "Issue: coffea.nanoevents.methods.vector will be removed and replaced with scikit-hep vector. Nanoevents schemas internal to coffea will be migrated. Otherwise please consider using that package!.\n",
- " from coffea.nanoevents.methods import vector\n"
- ]
- }
- ],
- "source": [
- "out = tnp.get_1d_pt_eta_phi_tnp_histograms(\n",
- " cut_and_count=True,\n",
- " vars=[\"tag_Ele_pt\", \"el_eta\", \"el_phi\"],\n",
- " eta_regions_pt={\n",
- " \"barrel\": [0.0, 1.4442],\n",
- " \"endcap_loweta\": [1.566, 2.0],\n",
- " \"endcap_higheta\": [2.0, 2.5],\n",
- " },\n",
- " plateau_cut=35,\n",
- " compute=True,\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "id": "060667d8-847f-48c6-86eb-242d7f0abfb7",
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/Users/iason/miniforge3/envs/egamma_dev/lib/python3.10/site-packages/coffea/nanoevents/methods/candidate.py:11: FutureWarning: In version 2024.7.0 (target date: 2024-06-30 11:59:59-05:00), this will be an error.\n",
- "To raise these warnings as errors (and get stack traces to find out where they're called), run\n",
- " import warnings\n",
- " warnings.filterwarnings(\"error\", module=\"coffea.*\")\n",
- "after the first `import coffea` or use `@pytest.mark.filterwarnings(\"error:::coffea.*\")` in pytest.\n",
- "Issue: coffea.nanoevents.methods.vector will be removed and replaced with scikit-hep vector. Nanoevents schemas internal to coffea will be migrated. Otherwise please consider using that package!.\n",
- " from coffea.nanoevents.methods import vector\n"
- ]
- }
- ],
- "source": [
- "out = tnp.get_nd_tnp_histograms(cut_and_count=True, vars=[\"tag_Ele_pt\", \"el_pt\", \"el_eta\", \"MET_pt\", \"luminosityBlock\"], compute=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "id": "7f920326-d4f0-479a-b07d-aa5231230914",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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lJQkn8+n22+/XStWrNA111yj48ePKyMjQ3fccYdGjRp13msef/xx/fjHP5bX69Utt9yiiooK7du3T19++aVmz57dqHE999xzuvrqqzVkyBCtWrVKX375pR544AFJUv/+/eVyubR582bdeuutio6O5lZyoI1xGzWAy/LUU0+pS5cu+uY3v6nbbrtNycnJAde7SNJvf/tbxcXFaezYsbrjjjs0depUde7cWR06dLjk/l0ul1599VWNHTtW999/v6655hrdfffd+tvf/qa4uLgGX/Pggw9q3bp1Wr9+vYYOHarvfOc7Sk9PV0JCQqPHtXz5ci1fvlzDhw/X22+/rT//+c/q3r27JOlrX/uaHn/8cS1YsEBxcXHOzAyAtuMyxphgFwHgyvL3v/9dffv21euvv67x48cHu5wAR48eVUJCgvbv38/PEwDtGKeQALS6nTt3qrS0VEOHDtWJEyc0b948DRgwwLnGBACailNIAFpdVVWVHn30UV177bW644471KNHD+ehdi+++KI6derU4HLttde2eC1PPPHEBd9v4sSJLf5+AFoHp5AABNWpU6dUWFjYYFtkZKT69+/fou938uRJnTx5ssG26Ohofe1rX2vR9wPQOggwAADAOpxCAgAA1iHAAAAA6xBgAACAdQgwAADAOgQYAABgHQIMAACwDgEGAABYhwADAACs8/8BbPk/DAfPfGoAAAAASUVORK5CYII=",
- "text/plain": [
- "