{
"cells": [
{
"cell_type": "markdown",
"id": "fd53882c-29ef-4b7e-a159-738474d6f568",
"metadata": {},
"source": [
"# Data structure in appletree"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "5be47339-4fc8-41bb-8da2-aa2f88533939",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Using accurate Binomial, not Normal approximation\n",
"Using aptext package from https://github.com/XENONnT/applefiles\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/xudc/appletree/appletree/__init__.py:44: UserWarning: You are running appletree on CPU, which usually results in low performance.\n",
" warn(warning)\n"
]
}
],
"source": [
"import os\n",
"\n",
"import graphviz\n",
"import pandas as pd\n",
"import jax.numpy as jnp\n",
"\n",
"import appletree as apt\n",
"from appletree.utils import get_file_path\n",
"\n",
"from IPython.display import SVG, display"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "26dd8ac7-0abc-4521-9378-28b33eec3606",
"metadata": {},
"outputs": [],
"source": [
"apt.set_gpu_memory_usage(0.2)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "5c48559b-4c1b-47aa-8dde-f9a1ced31372",
"metadata": {},
"outputs": [],
"source": [
"data = pd.read_csv(get_file_path(\"data_Rn220.csv\"))\n",
"bins_cs1, bins_cs2 = apt.utils.get_equiprob_bins_2d(\n",
" data[[\"cs1\", \"cs2\"]].to_numpy(),\n",
" [15, 15],\n",
" order=[0, 1],\n",
" x_clip=[0, 100],\n",
" y_clip=[1e2, 1e4],\n",
" which_np=jnp,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "c91259f4-7573-40fa-9493-c0d68b04e710",
"metadata": {},
"outputs": [],
"source": [
"er = apt.ERBand(bins=[bins_cs1, bins_cs2], bins_type=\"irreg\")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "3e66343d-1a5d-493f-826c-6e3a930214d6",
"metadata": {},
"outputs": [],
"source": [
"er.deduce(data_names=[\"cs1\", \"cs2\"], func_name=\"er_simulate\")"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "341c5d65-9319-4b46-84a9-9326dbe2d247",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
""
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"graph_tree = graphviz.Digraph(format=\"svg\", strict=True)\n",
"_ = apt.add_deps_to_graph_tree(er, graph_tree)\n",
"_ = apt.tree_to_svg(graph_tree, \"er_dtypes\")\n",
"display(SVG(\"er_dtypes.svg\"))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "8cbf37d2-781e-400c-89a6-a6b9d77c8576",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
""
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"graph_tree = graphviz.Digraph(format=\"svg\", strict=True)\n",
"_ = apt.add_plugins_to_graph_tree(er, graph_tree)\n",
"_ = apt.tree_to_svg(graph_tree, \"er_plugins\")\n",
"display(SVG(\"er_plugins.svg\"))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "72eb24a3-9c20-4974-ad4e-70f7c2ebae26",
"metadata": {},
"outputs": [],
"source": [
"data = pd.read_csv(get_file_path(\"data_Neutron.csv\"))\n",
"bins_num_s1_phd, bins_cs2 = apt.utils.get_equiprob_bins_2d(\n",
" data[[\"num_s1_phd\", \"cs2\"]].to_numpy(),\n",
" [8, 10],\n",
" order=[0, 1],\n",
" x_clip=[1.5, 9.5],\n",
" y_clip=[1e2, 1e3],\n",
" which_np=jnp,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "a7e69af1-4c51-4228-a8ee-318ee0652f29",
"metadata": {},
"outputs": [],
"source": [
"nr = apt.NR(bins=[bins_num_s1_phd, bins_cs2], bins_type=\"irreg\")"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "2089ab9b-acfa-4978-bc4c-c5e8cd1756c8",
"metadata": {},
"outputs": [],
"source": [
"nr.deduce(data_names=[\"num_s1_phd\", \"cs2\"], func_name=\"nr_simulate\")"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "6ace13c7-dc2c-4bcc-9c4e-32531b50615c",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
""
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"graph_tree = graphviz.Digraph(format=\"svg\", strict=True)\n",
"_ = apt.add_deps_to_graph_tree(nr, graph_tree)\n",
"_ = apt.tree_to_svg(graph_tree, \"nr_dtypes\")\n",
"display(SVG(\"nr_dtypes.svg\"))"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "9aaf099d-5a02-4cb2-95fb-be67789fd0ac",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
""
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"graph_tree = graphviz.Digraph(format=\"svg\", strict=True)\n",
"_ = apt.add_plugins_to_graph_tree(nr, graph_tree)\n",
"_ = apt.tree_to_svg(graph_tree, \"nr_plugins\")\n",
"display(SVG(\"nr_plugins.svg\"))"
]
}
],
"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.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}