{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Tutorial" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Jelle, updated May 2020\n", "\n", "updated Feb 2022 by Joran\n", "\n", "This notebook shows how to do basic analysis with straxen, much like `hax.minitrees`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For reference, here are some jargon terms which we will introduce below:\n", "\n", " * **Context**: Holds configuration on how to process\n", " * **Dataframe** or **array**: table of related information produced by a plugin.\n", " * **Plugin**: an algorithm that produces a dataframe\n", " * **Data type**: specification of which columns are in a dataframe. \n", " * **Data kind**: e.g. 'events' or 'peaks'. Dataframes of the same kind have the same number of rows and can be merged.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "\n", "# This just ensures some comments in dataframes below display nicely\n", "pd.options.display.max_colwidth = 100\n", "import straxen" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "cutax is not installed\n" ] }, { "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", "
moduleversionpathgit
0python3.10.0/home/angevaare/miniconda3/envs/dev_strax/bin/pythonNone
1strax1.1.7/home/angevaare/software/dev_strax/strax/straxbranch:master | db14f80
2straxen1.2.8/home/angevaare/software/dev_strax/straxen/straxenbranch:master | 024602e
\n", "
" ], "text/plain": [ " module version path \\\n", "0 python 3.10.0 /home/angevaare/miniconda3/envs/dev_strax/bin/python \n", "1 strax 1.1.7 /home/angevaare/software/dev_strax/strax/strax \n", "2 straxen 1.2.8 /home/angevaare/software/dev_strax/straxen/straxen \n", "\n", " git \n", "0 None \n", "1 branch:master | db14f80 \n", "2 branch:master | 024602e " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "straxen.print_versions()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setting up" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we load a strax **context**, much like `hax.init()`. A strax context contains all information on *how* to process: where to read what files from, what plugins provide what data, etc. \n", "\n", "You can make a context yourselves using `strax.Context`, but straxen provides standardized contexts as well. Most future analyses will use such standardized contexts defined by analysis coordinators or straxen maintainers.\n", "\n", "Unlike `hax.init`, you can have multiple active contexts, e.g. to load analysis and MC data, or compare data processed with different settings (we will see examples of this below)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "st = straxen.contexts.xenonnt_online()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Finding your data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Suposse we want to make a cS1/cS2 plot. We have to figure out which type of **dataframes** to load. A specific type of dataframe is also called a **data type**. (in hax these were called minitrees)\n", "\n", "We can find this out automatically if we know (part of) the name of a field to load:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "cs1 is part of corrected_areas (provided by CorrectedAreas)\n", "cs1 is part of event_info (provided by EventInfo)\n", "\n", "cs1 is used in CorrectedAreas.infer_dtype\n", "cs1 is used in CorrectedAreas.compute\n", "cs1 is used in EnergyEstimates.compute\n", "cs1 is used in EnergyEstimates.cs1_to_e\n" ] } ], "source": [ "st.search_field(\"cs1\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It seems we're after one of the data types called `event_info` or `corrected_areas`. In the current context, these are provided by **plugins** called EventInfo and CorrectedAreas, respectively (but this doesn't concern us yet). \n", "\n", "Additionally, we see the occurrences of `cs1` of a field in `EnergyEstimates` and `CorrectedAreas`. This means that the field is used there directly\n", "\n", "Let's see what else is in these data types:" ] }, { "cell_type": "code", "execution_count": 5, "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", "
Field nameData typeComment
0timeint64Start time since unix epoch [ns]
1endtimeint64Exclusive end time since unix epoch [ns]
2cs1float32Corrected area of main S1 [PE]
3cs2_wo_elifecorrfloat32Corrected area of main S2 before elife correction (s2 xy correction + SEG/EE correction applied)...
4cs2_wo_timecorrfloat32Corrected area of main S2 before SEG/EE and elife corrections(s2 xy correction applied) [PE]
............
106z_naivefloat32Interaction z-position using mean drift velocity only (cm)
107r_naivefloat32Interaction r-position using observed S2 positions directly (cm)
108r_field_distortion_correctionfloat32Correction added to r_naive for field distortion (cm)
109z_field_distortion_correctionfloat32Correction added to z_naive for field distortion (cm)
110thetafloat32Interaction angular position (radians)
\n", "

111 rows × 3 columns

\n", "
" ], "text/plain": [ " Field name Data type \\\n", "0 time int64 \n", "1 endtime int64 \n", "2 cs1 float32 \n", "3 cs2_wo_elifecorr float32 \n", "4 cs2_wo_timecorr float32 \n", ".. ... ... \n", "106 z_naive float32 \n", "107 r_naive float32 \n", "108 r_field_distortion_correction float32 \n", "109 z_field_distortion_correction float32 \n", "110 theta float32 \n", "\n", " Comment \n", "0 Start time since unix epoch [ns] \n", "1 Exclusive end time since unix epoch [ns] \n", "2 Corrected area of main S1 [PE] \n", "3 Corrected area of main S2 before elife correction (s2 xy correction + SEG/EE correction applied)... \n", "4 Corrected area of main S2 before SEG/EE and elife corrections(s2 xy correction applied) [PE] \n", ".. ... \n", "106 Interaction z-position using mean drift velocity only (cm) \n", "107 Interaction r-position using observed S2 positions directly (cm) \n", "108 Correction added to r_naive for field distortion (cm) \n", "109 Correction added to z_naive for field distortion (cm) \n", "110 Interaction angular position (radians) \n", "\n", "[111 rows x 3 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "st.data_info(\"event_info\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see, `event_info` has a lot more information; let's load that one. You can see from the documentation (TODO link) that `event_info`'s job is to merge the info from `corrected_areas` and other things.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Loading data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, you'll want to select a run. The `select_runs` function will return a dataframe with all available runs; there is a separate tutorial on more advanced use of this. In this demo context, we only have high-level data for the run `180215_1029` available (and low-level data for another):" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "st.select_runs()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So lets' take 021932.\n", "\n", "To actually load data, you use `get_df` to get a pandas DataFrame, or `get_array` to get a numpy (structured) array. Let's go with pandas for now:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": true }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "22bcf8d7f0e74a8980a53922f9cfc3f8", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Loading event_info: | | 0.00 % [00:00\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
optiondefaultcurrentapplies_tohelp
0gain_model<OMITTED>(to_pe_model, ONLINE, True)(afterpulses,)PMT gain model. Specify as (model_type, model_config)
1n_tpc_pmts<OMITTED>494(afterpulses,)Number of PMTs in TPC
2LED_window_left50<OMITTED>(afterpulses,)Left boundary of sample range for LED pulse integration
3LED_window_right100<OMITTED>(afterpulses,)Right boundary of sample range for LED pulse integration
4baseline_samples40<OMITTED>(afterpulses,)Number of samples to use at start of WF to determine the baseline
..................
269recon_alg_included(_mlp, _gcn, _cnn)<OMITTED>(s2_recon_pos_diff,)The list of all reconstruction algorithm considered.
270max_veto_window7200000000000<OMITTED>(veto_intervals,)Maximum separation between veto stop and start pulses [ns]. Set to be >> than the max duration o...
271event_window_fields(time, endtime)<OMITTED>(veto_proximity,)Fields to determine where to look for overlaps for using this plugin in the events. The default ...
272veto_proximity_window300000000000<OMITTED>(veto_proximity,)Maximum separation between veto stop and start pulses [ns]
273time_no_aqmon_veto_found3600000000000<OMITTED>(veto_proximity,)If no next/previous veto is found, we will fill the fields time_to_previous_XX with this time. S...
\n", "

274 rows × 5 columns

\n", "" ], "text/plain": [ " option default \\\n", "0 gain_model \n", "1 n_tpc_pmts \n", "2 LED_window_left 50 \n", "3 LED_window_right 100 \n", "4 baseline_samples 40 \n", ".. ... ... \n", "269 recon_alg_included (_mlp, _gcn, _cnn) \n", "270 max_veto_window 7200000000000 \n", "271 event_window_fields (time, endtime) \n", "272 veto_proximity_window 300000000000 \n", "273 time_no_aqmon_veto_found 3600000000000 \n", "\n", " current applies_to \\\n", "0 (to_pe_model, ONLINE, True) (afterpulses,) \n", "1 494 (afterpulses,) \n", "2 (afterpulses,) \n", "3 (afterpulses,) \n", "4 (afterpulses,) \n", ".. ... ... \n", "269 (s2_recon_pos_diff,) \n", "270 (veto_intervals,) \n", "271 (veto_proximity,) \n", "272 (veto_proximity,) \n", "273 (veto_proximity,) \n", "\n", " help \n", "0 PMT gain model. Specify as (model_type, model_config) \n", "1 Number of PMTs in TPC \n", "2 Left boundary of sample range for LED pulse integration \n", "3 Right boundary of sample range for LED pulse integration \n", "4 Number of samples to use at start of WF to determine the baseline \n", ".. ... \n", "269 The list of all reconstruction algorithm considered. \n", "270 Maximum separation between veto stop and start pulses [ns]. Set to be >> than the max duration o... \n", "271 Fields to determine where to look for overlaps for using this plugin in the events. The default ... \n", "272 Maximum separation between veto stop and start pulses [ns] \n", "273 If no next/previous veto is found, we will fill the fields time_to_previous_XX with this time. S... \n", "\n", "[274 rows x 5 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "st.show_config(\"event_info\")" ] }, { "cell_type": "code", "execution_count": 8, "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", "
timeendtimecs1cs2_wo_elifecorrcs2_wo_timecorrcs2_area_fraction_topcs2_bottomcs2alt_cs1alt_cs2_wo_elifecorr...alt_s2_y_mlpxyzrz_naiver_naiver_field_distortion_correctionz_field_distortion_correctiontheta
0162314488700314809216231448870058630302.659672348.436493370.8872680.77727882.604637370.887268NaN34.098747...-23.990379-7.353356-15.314320-43.33910416.988239-43.33910416.1901550.7980830.007348-2.018448
11623144887006147772162314488700885425013155.237305NaNNaNNaNNaNNaN4.279365NaN...NaN45.51776955.207436-0.18962871.552284-0.18962869.5428312.0094510.0000000.881302
21623144887030319882162314488703332736061723.96093828599.91796929029.1523440.7232258034.54296929029.15234419.3046281338.243530...53.898460-35.26430955.141556-10.20015665.453514-10.20015661.6286283.8248860.7442882.139771
31623144887054958322162314488705767770076545.2578121266.1776121266.5585940.1599551063.9663091266.5585942.06234217.207802...2.88416231.2934519.913309-0.02694532.826115-0.02694537.803139-4.9770240.0000000.306784
416231448871270754721623144887129777490NaN5178.317383NaN0.749424NaNNaNNaNNaN...NaNNaNNaNNaNNaNNaN61.323208NaNNaN2.864871
\n", "

5 rows × 111 columns

\n", "
" ], "text/plain": [ " time endtime cs1 cs2_wo_elifecorr \\\n", "0 1623144887003148092 1623144887005863030 2.659672 348.436493 \n", "1 1623144887006147772 1623144887008854250 13155.237305 NaN \n", "2 1623144887030319882 1623144887033327360 61723.960938 28599.917969 \n", "3 1623144887054958322 1623144887057677700 76545.257812 1266.177612 \n", "4 1623144887127075472 1623144887129777490 NaN 5178.317383 \n", "\n", " cs2_wo_timecorr cs2_area_fraction_top cs2_bottom cs2 \\\n", "0 370.887268 0.777278 82.604637 370.887268 \n", "1 NaN NaN NaN NaN \n", "2 29029.152344 0.723225 8034.542969 29029.152344 \n", "3 1266.558594 0.159955 1063.966309 1266.558594 \n", "4 NaN 0.749424 NaN NaN \n", "\n", " alt_cs1 alt_cs2_wo_elifecorr ... alt_s2_y_mlp x y \\\n", "0 NaN 34.098747 ... -23.990379 -7.353356 -15.314320 \n", "1 4.279365 NaN ... NaN 45.517769 55.207436 \n", "2 19.304628 1338.243530 ... 53.898460 -35.264309 55.141556 \n", "3 2.062342 17.207802 ... 2.884162 31.293451 9.913309 \n", "4 NaN NaN ... NaN NaN NaN \n", "\n", " z r z_naive r_naive r_field_distortion_correction \\\n", "0 -43.339104 16.988239 -43.339104 16.190155 0.798083 \n", "1 -0.189628 71.552284 -0.189628 69.542831 2.009451 \n", "2 -10.200156 65.453514 -10.200156 61.628628 3.824886 \n", "3 -0.026945 32.826115 -0.026945 37.803139 -4.977024 \n", "4 NaN NaN NaN 61.323208 NaN \n", "\n", " z_field_distortion_correction theta \n", "0 0.007348 -2.018448 \n", "1 0.000000 0.881302 \n", "2 0.744288 2.139771 \n", "3 0.000000 0.306784 \n", "4 NaN 2.864871 \n", "\n", "[5 rows x 111 columns]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's make a quick plot of the events we just loaded:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "df.plot.scatter(\"cs1\", \"cs2\")\n", "\n", "import matplotlib.pyplot as plt\n", "\n", "plt.xscale(\"log\")\n", "plt.xlim(1, None)\n", "plt.yscale(\"log\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since making a cS1, cS2 plot for a dataset is such a common task that straxen has a built-in method for it. There are other similar mini-analyses, such a waveform plotting, which we will see in action below." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "st.event_scatter(run_id, s=20, seconds_range=[0, 60])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Can you guess what kind of data this is?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Waveform analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The *peaks* data type contains the sum waveform information:" ] }, { "cell_type": "code", "execution_count": 11, "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", "
Field nameData typeComment
0timeint64Start time since unix epoch [ns]
1lengthint32Length of the interval in samples
2dtint32Width of one sample [ns]
3channelint16Channel/PMT number
4typeint8Classification of the peak(let)
5areafloat32Integral across channels [PE]
6area_per_channel('<f4', (494,))Integral per channel [PE]
7n_hitsint32Number of hits contributing at least one sample to the peak
8data('<f4', (200,))Waveform data in PE/sample (not PE/ns!)
9width('<f4', (11,))Peak widths in range of central area fraction [ns]
10area_decile_from_midpoint('<f4', (11,))Peak widths: time between nth and 5th area decile [ns]
11saturated_channel('i1', (494,))Does the channel reach ADC saturation?
12n_saturated_channelsint16Total number of saturated channels
13tight_coincidenceint16Channel within tight range of mean
14max_gapint32Largest gap between hits inside peak [ns]
15max_goodness_of_splitfloat32Maximum interior goodness of split
\n", "
" ], "text/plain": [ " Field name Data type \\\n", "0 time int64 \n", "1 length int32 \n", "2 dt int32 \n", "3 channel int16 \n", "4 type int8 \n", "5 area float32 \n", "6 area_per_channel ('" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def plot_peak(p, t0=None, **kwargs):\n", " n = p[\"length\"]\n", " if t0 is None:\n", " t0 = p[\"time\"]\n", " plt.plot(\n", " (p[\"time\"] - t0) + np.arange(n) * p[\"dt\"],\n", " p[\"data\"][:n] / p[\"dt\"],\n", " drawstyle=\"steps-mid\",\n", " **kwargs\n", " )\n", " plt.xlabel(\"Time (ns)\")\n", " plt.ylabel(\"Sum waveform (PE / ns)\")\n", "\n", "\n", "plot_peak(peaks[148])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def plot_peaks(main_i, n_before=0, n_after=0, label_threshold=0, legendloc=\"best\"):\n", " for i in main_i + np.arange(-n_before, n_after + 1):\n", " p = peaks[mask][i]\n", " label = None\n", " if p[\"area\"] > label_threshold:\n", " label = \"%d PE, %d ns dt\" % (\n", " p[\"area\"],\n", " p[\"dt\"],\n", " )\n", " color = None\n", " else:\n", " color = \"gray\"\n", " plot_peak(p, t0=peaks[main_i][\"time\"], label=label, color=color)\n", " plt.ylim(0, None)\n", " plt.legend(loc=legendloc)\n", " plt.yscale(\"symlog\")\n", "\n", "\n", "# Find the largest peak close to 1e4 PE\n", "mask = peaks[\"area\"] < 1e4\n", "i_of_largest_peak = np.argmax(peaks[mask][\"area\"])\n", "plot_peaks(i_of_largest_peak, n_after=5, n_before=2, label_threshold=10, legendloc=(1.1, 0.0))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The abrupt termination of the S2 above is due to strax's data reduction." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you have access to the raw data (at least the `records` level) you can use straxen's built-in waveform display. For example, try:\n", "\n", "```python\n", "st.waveform_display(run_id, seconds_range=(0, 0.15))\n", "```\n", "\n", "(we didn't evaluate this in the tutorial, as it creates a substantial amount of javascript, which would have made the notebook quite huge)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Configuration changes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see in the above plot, we have many events high up in the TPC at low S1. Perhaps you want to get rid of them by increasing the 'S1 coincidence requirement', i.e. the number of PMTs that must see something before a peak is labeled as S1. Then, of course, you want to load the event-level data again to see if it worked." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we need to see which configuration option we have to change. Strax plugins declare what configuration they take and what other plugins they depend on, so this is not very difficult. We just ask which options with `s1` in their name influence `event_basics`:" ] }, { "cell_type": "code", "execution_count": 29, "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", "
optionapplies_tohelpcurrentdefault
0s1_xyz_map(corrected_areas,)<OMITTED>itp_map://resource://cmt://format://s1_xyz_map_{algo}?version=ONLINE&run_id=plugin.run_id&fmt=js...
1s1_risetime_area_parameters(peaklet_classification,)norm, const, tau in the empirical boundary in the risetime-area plot<OMITTED>(50, 80, 12)
2s1_risetime_aft_parameters(peaklet_classification,)Slope and offset in exponential of emperical boundary in the rise time-AFT plot. Specified as (s...<OMITTED>(-1, 2.6)
3s1_flatten_threshold_aft(peaklet_classification,)Threshold for AFT, above which we use a flatted boundary for rise timeSpecified values: (AFT bou...<OMITTED>(0.6, 100)
4s1_max_rise_time_post100(peaklet_classification,)Maximum S1 rise time for > 100 PE [ns]<OMITTED>200
5s1_min_coincidence(peaklet_classification,)Minimum tight coincidence necessary to make an S1<OMITTED>2
6s1_optical_map(event_pattern_fit,)S1 (x, y, z) optical/pattern map.<OMITTED>XENONnT_s1_xyz_patterns_LCE_corrected_qes_MCva43fa9b_wires.pkl
7s1_aft_map(event_pattern_fit,)Date drive S1 area fraction top map.<OMITTED>s1_aft_dd_xyz_XENONnT_Kr83m_41500eV_31Oct2021.json
8s1_min_area_pattern_fit(event_pattern_fit,)Skip EventPatternFit reconstruction if S1 area (PE) is less than this<OMITTED>2
9s1_risetime_area_parameters(peaklet_classification_he,)norm, const, tau in the empirical boundary in the risetime-area plot<OMITTED>(50, 80, 12)
10s1_risetime_aft_parameters(peaklet_classification_he,)Slope and offset in exponential of emperical boundary in the rise time-AFT plot. Specified as (s...<OMITTED>(-1, 2.6)
11s1_flatten_threshold_aft(peaklet_classification_he,)Threshold for AFT, above which we use a flatted boundary for rise timeSpecified values: (AFT bou...<OMITTED>(0.6, 100)
12s1_max_rise_time_post100(peaklet_classification_he,)Maximum S1 rise time for > 100 PE [ns]<OMITTED>200
13s1_min_coincidence(peaklet_classification_he,)Minimum tight coincidence necessary to make an S1<OMITTED>2
\n", "
" ], "text/plain": [ " option applies_to \\\n", "0 s1_xyz_map (corrected_areas,) \n", "1 s1_risetime_area_parameters (peaklet_classification,) \n", "2 s1_risetime_aft_parameters (peaklet_classification,) \n", "3 s1_flatten_threshold_aft (peaklet_classification,) \n", "4 s1_max_rise_time_post100 (peaklet_classification,) \n", "5 s1_min_coincidence (peaklet_classification,) \n", "6 s1_optical_map (event_pattern_fit,) \n", "7 s1_aft_map (event_pattern_fit,) \n", "8 s1_min_area_pattern_fit (event_pattern_fit,) \n", "9 s1_risetime_area_parameters (peaklet_classification_he,) \n", "10 s1_risetime_aft_parameters (peaklet_classification_he,) \n", "11 s1_flatten_threshold_aft (peaklet_classification_he,) \n", "12 s1_max_rise_time_post100 (peaklet_classification_he,) \n", "13 s1_min_coincidence (peaklet_classification_he,) \n", "\n", " help \\\n", "0 \n", "1 norm, const, tau in the empirical boundary in the risetime-area plot \n", "2 Slope and offset in exponential of emperical boundary in the rise time-AFT plot. Specified as (s... \n", "3 Threshold for AFT, above which we use a flatted boundary for rise timeSpecified values: (AFT bou... \n", "4 Maximum S1 rise time for > 100 PE [ns] \n", "5 Minimum tight coincidence necessary to make an S1 \n", "6 S1 (x, y, z) optical/pattern map. \n", "7 Date drive S1 area fraction top map. \n", "8 Skip EventPatternFit reconstruction if S1 area (PE) is less than this \n", "9 norm, const, tau in the empirical boundary in the risetime-area plot \n", "10 Slope and offset in exponential of emperical boundary in the rise time-AFT plot. Specified as (s... \n", "11 Threshold for AFT, above which we use a flatted boundary for rise timeSpecified values: (AFT bou... \n", "12 Maximum S1 rise time for > 100 PE [ns] \n", "13 Minimum tight coincidence necessary to make an S1 \n", "\n", " current \\\n", "0 \n", "1 \n", "2 \n", "3 \n", "4 \n", "5 \n", "6 \n", "7 \n", "8 \n", "9 \n", "10 \n", "11 \n", "12 \n", "13 \n", "\n", " default \n", "0 itp_map://resource://cmt://format://s1_xyz_map_{algo}?version=ONLINE&run_id=plugin.run_id&fmt=js... \n", "1 (50, 80, 12) \n", "2 (-1, 2.6) \n", "3 (0.6, 100) \n", "4 200 \n", "5 2 \n", "6 XENONnT_s1_xyz_patterns_LCE_corrected_qes_MCva43fa9b_wires.pkl \n", "7 s1_aft_dd_xyz_XENONnT_Kr83m_41500eV_31Oct2021.json \n", "8 2 \n", "9 (50, 80, 12) \n", "10 (-1, 2.6) \n", "11 (0.6, 100) \n", "12 200 \n", "13 2 " ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "st.show_config(\"event_basics\", \"s1*\")[[\"option\", \"applies_to\", \"help\", \"current\", \"default\"]]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looks like we're after the `s1_min_coincidence option`. Note this is not part of the `event_basics` data type, but of a data type called `peak_classification`. As you can see from the table, this option is not set in the current context, so the default value (3) is used.\n", "\n", "To try out a different option, just pass it to get_df:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "# Let's use a short run for the following exaples\n", "run_id = \"038769\"" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4c7b5d64b41b422998d39903f8f66af8", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Loading event_info: | | 0.00 % [00:00" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "st2 = st.new_context()\n", "st2.set_config(dict(s1_min_coincidence=50))\n", "df_2 = st2.get_df(\n", " run_id,\n", " \"event_info\",\n", " config=dict(s1_min_coincidence=50),\n", ")\n", "st2.event_scatter(run_id, events=df_2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice all the small S1 events are indeed gone now.\n", "\n", "Behind the scenes, this figured out which dataframes had to be remade: as it happens this time just `event_basics` and `peak_basics`. You will now have a new `event_basics_` folder in `./custom_data` which contains the results, as well as a new `peak_basics_ folder`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### More on configuration changes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Changing configuration can be done in two other ways. We can change it permanently in the current context:\n", "```python\n", "st.set_config(dict(s1_min_coincidence=50))\n", "```\n", "Or we could make a new context, with this option set:\n", "```python\n", "st_2 = st.new_context(config=dict(s1_min_coincidence=50))\n", "```\n", "(feeding it to get_df just does the latter behind the scenes).\n", "\n", "If you just want to run a mini-analysis (like `event_scatter`), you can also pass a new `config` option directly to it, as in the example below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Strax protects you from typos in the configuration. Suppose we typed `s1_min_n_channelz` instead:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Option s1_min_n_channelz not taken by any registered plugin\n", "Option s1_min_n_channelz not taken by any registered plugin\n" ] }, { "ename": "DataNotAvailable", "evalue": "Time range selection assumes data is already available, but event_info for 038769 is not.", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mDataNotAvailable\u001b[0m Traceback (most recent call last)", "Input \u001b[0;32mIn [32]\u001b[0m, in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mst\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mevent_scatter\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrun_id\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mconfig\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mdict\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43ms1_min_n_channelz\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m10\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mseconds_range\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m60\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m~/software/dev_strax/straxen/straxen/mini_analysis.py:106\u001b[0m, in \u001b[0;36mmini_analysis..decorator..wrapped_f\u001b[0;34m(context, run_id, **kwargs)\u001b[0m\n\u001b[1;32m 100\u001b[0m kwargs[dkind] \u001b[38;5;241m=\u001b[39m strax\u001b[38;5;241m.\u001b[39mapply_selection(\n\u001b[1;32m 101\u001b[0m kwargs[dkind],\n\u001b[1;32m 102\u001b[0m selection_str\u001b[38;5;241m=\u001b[39mkwargs[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mselection_str\u001b[39m\u001b[38;5;124m'\u001b[39m],\n\u001b[1;32m 103\u001b[0m time_range\u001b[38;5;241m=\u001b[39mkwargs[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtime_range\u001b[39m\u001b[38;5;124m'\u001b[39m],\n\u001b[1;32m 104\u001b[0m time_selection\u001b[38;5;241m=\u001b[39mkwargs[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtime_selection\u001b[39m\u001b[38;5;124m'\u001b[39m])\n\u001b[1;32m 105\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 106\u001b[0m kwargs[dkind] \u001b[38;5;241m=\u001b[39m \u001b[43mcontext\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_array\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 107\u001b[0m \u001b[43m \u001b[49m\u001b[43mrun_id\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 108\u001b[0m \u001b[43m \u001b[49m\u001b[43mdtypes\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 109\u001b[0m \u001b[43m \u001b[49m\u001b[43mselection_str\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mselection_str\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 110\u001b[0m \u001b[43m \u001b[49m\u001b[43mtime_range\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mtime_range\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 111\u001b[0m \u001b[43m \u001b[49m\u001b[43mtime_selection\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mtime_selection\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 112\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;66;43;03m# Arguments for new context, if needed\u001b[39;49;00m\n\u001b[1;32m 113\u001b[0m \u001b[43m \u001b[49m\u001b[43mconfig\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mconfig\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 114\u001b[0m \u001b[43m \u001b[49m\u001b[43mregister\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mregister\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 115\u001b[0m \u001b[43m \u001b[49m\u001b[43mstorage\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mstorage\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mtuple\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 116\u001b[0m \u001b[43m \u001b[49m\u001b[43mprogress_bar\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 117\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 119\u001b[0m \u001b[38;5;66;03m# If user did not give time kwargs, but the function expects\u001b[39;00m\n\u001b[1;32m 120\u001b[0m \u001b[38;5;66;03m# a time_range, try to add one based on the time range of the data\u001b[39;00m\n\u001b[1;32m 121\u001b[0m base_dkind \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(deps_by_kind\u001b[38;5;241m.\u001b[39mkeys())[\u001b[38;5;241m0\u001b[39m]\n", "File \u001b[0;32m~/software/dev_strax/strax/strax/context.py:1406\u001b[0m, in \u001b[0;36mContext.get_array\u001b[0;34m(self, run_id, targets, save, max_workers, **kwargs)\u001b[0m\n\u001b[1;32m 1399\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1400\u001b[0m source \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_iter(\n\u001b[1;32m 1401\u001b[0m run_ids[\u001b[38;5;241m0\u001b[39m],\n\u001b[1;32m 1402\u001b[0m targets,\n\u001b[1;32m 1403\u001b[0m save\u001b[38;5;241m=\u001b[39msave,\n\u001b[1;32m 1404\u001b[0m max_workers\u001b[38;5;241m=\u001b[39mmax_workers,\n\u001b[1;32m 1405\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m-> 1406\u001b[0m results \u001b[38;5;241m=\u001b[39m [x\u001b[38;5;241m.\u001b[39mdata \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m source]\n\u001b[1;32m 1408\u001b[0m results \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mconcatenate(results)\n\u001b[1;32m 1409\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m results\n", "File \u001b[0;32m~/software/dev_strax/strax/strax/context.py:1406\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1399\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1400\u001b[0m source \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_iter(\n\u001b[1;32m 1401\u001b[0m run_ids[\u001b[38;5;241m0\u001b[39m],\n\u001b[1;32m 1402\u001b[0m targets,\n\u001b[1;32m 1403\u001b[0m save\u001b[38;5;241m=\u001b[39msave,\n\u001b[1;32m 1404\u001b[0m max_workers\u001b[38;5;241m=\u001b[39mmax_workers,\n\u001b[1;32m 1405\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m-> 1406\u001b[0m results \u001b[38;5;241m=\u001b[39m [x\u001b[38;5;241m.\u001b[39mdata \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m source]\n\u001b[1;32m 1408\u001b[0m results \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mconcatenate(results)\n\u001b[1;32m 1409\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m results\n", "File \u001b[0;32m~/software/dev_strax/strax/strax/context.py:1234\u001b[0m, in \u001b[0;36mContext.get_iter\u001b[0;34m(self, run_id, targets, save, max_workers, time_range, seconds_range, time_within, time_selection, selection_str, keep_columns, drop_columns, allow_multiple, progress_bar, _chunk_number, **kwargs)\u001b[0m\n\u001b[1;32m 1225\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcontext_config[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtimeout\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m7200\u001b[39m \u001b[38;5;129;01mor\u001b[39;00m (\n\u001b[1;32m 1226\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcontext_config[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mallow_lazy\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;129;01mand\u001b[39;00m\n\u001b[1;32m 1227\u001b[0m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcontext_config[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mallow_multiprocess\u001b[39m\u001b[38;5;124m'\u001b[39m])):\n\u001b[1;32m 1228\u001b[0m \u001b[38;5;66;03m# For allow_multiple we don't want allow this when in lazy mode\u001b[39;00m\n\u001b[1;32m 1229\u001b[0m \u001b[38;5;66;03m# with long timeouts (lazy-mode is disabled if multiprocessing\u001b[39;00m\n\u001b[1;32m 1230\u001b[0m \u001b[38;5;66;03m# so if that is activated, we can also continue)\u001b[39;00m\n\u001b[1;32m 1231\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mCannot allow_multiple in lazy mode or \u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m 1232\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mwith long timeouts.\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m-> 1234\u001b[0m components \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_components\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrun_id\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1235\u001b[0m \u001b[43m \u001b[49m\u001b[43mtargets\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtargets\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1236\u001b[0m \u001b[43m \u001b[49m\u001b[43msave\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msave\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1237\u001b[0m \u001b[43m \u001b[49m\u001b[43mtime_range\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtime_range\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1238\u001b[0m \u001b[43m \u001b[49m\u001b[43mchunk_number\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_chunk_number\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1240\u001b[0m \u001b[38;5;66;03m# Cleanup the temp plugins\u001b[39;00m\n\u001b[1;32m 1241\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mlist\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_plugin_class_registry\u001b[38;5;241m.\u001b[39mkeys()):\n", "File \u001b[0;32m~/software/dev_strax/strax/strax/context.py:979\u001b[0m, in \u001b[0;36mContext.get_components\u001b[0;34m(self, run_id, targets, save, time_range, chunk_number)\u001b[0m\n\u001b[1;32m 975\u001b[0m savers \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_add_saver(savers, d_to_save, target_plugin,\n\u001b[1;32m 976\u001b[0m _is_superrun, loading_this_data)\n\u001b[1;32m 978\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m target_i \u001b[38;5;129;01min\u001b[39;00m targets:\n\u001b[0;32m--> 979\u001b[0m \u001b[43mcheck_cache\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtarget_i\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 980\u001b[0m plugins \u001b[38;5;241m=\u001b[39m to_compute\n\u001b[1;32m 982\u001b[0m intersec \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(plugins\u001b[38;5;241m.\u001b[39mkeys() \u001b[38;5;241m&\u001b[39m loaders\u001b[38;5;241m.\u001b[39mkeys())\n", "File \u001b[0;32m~/software/dev_strax/strax/strax/context.py:894\u001b[0m, in \u001b[0;36mContext.get_components..check_cache\u001b[0;34m(target_i)\u001b[0m\n\u001b[1;32m 891\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m target_plugin\u001b[38;5;241m.\u001b[39msave_when[target_i] \u001b[38;5;241m==\u001b[39m strax\u001b[38;5;241m.\u001b[39mSaveWhen\u001b[38;5;241m.\u001b[39mTARGET:\n\u001b[1;32m 892\u001b[0m error_message \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m (\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124mFirst run st.make(\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mrun_id\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 893\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mtarget_i\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m) to make \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mtarget_i\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m--> 894\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m strax\u001b[38;5;241m.\u001b[39mDataNotAvailable(error_message)\n\u001b[1;32m 895\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m*\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcontext_config[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mforbid_creation_of\u001b[39m\u001b[38;5;124m'\u001b[39m]:\n\u001b[1;32m 896\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m strax\u001b[38;5;241m.\u001b[39mDataNotAvailable(\n\u001b[1;32m 897\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mtarget_i\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m for \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mrun_id\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m not found in any storage, and \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 898\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124myour context specifies no new data can be created.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", "\u001b[0;31mDataNotAvailable\u001b[0m: Time range selection assumes data is already available, but event_info for 038769 is not." ] } ], "source": [ "st.event_scatter(run_id, config=dict(s1_min_n_channelz=10), seconds_range=[0, 60])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result of get_df is just the same as if the option wasn't set (just like in pax/hax), but you also get a warning about an unknown configuration option. \n", "\n", "By the way, you can use \n", "```python\n", "import warnings\n", "warnings.filterwarnings(\"error\")\n", "```\n", "to ensure any warning raises an exception instead." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Customization: new plugins" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To add or change processing algorithms, or to define new variables to use in cuts, you have to write new strax plugins. These are somewhat similar to hax's treemakers.\n", "\n", "Suppose you have a brilliant new idea for peak classification. Strax does this in the peaklet_classification plugin, which produces:" ] }, { "cell_type": "code", "execution_count": 33, "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", "
Field nameData typeComment
0timeint64Start time since unix epoch [ns]
1lengthint32Length of the interval in samples
2dtint32Width of one sample [ns]
3channelint16Channel/PMT number
4typeint8Classification of the peak(let)
\n", "
" ], "text/plain": [ " Field name Data type Comment\n", "0 time int64 Start time since unix epoch [ns]\n", "1 length int32 Length of the interval in samples\n", "2 dt int32 Width of one sample [ns]\n", "3 channel int16 Channel/PMT number\n", "4 type int8 Classification of the peak(let)" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "st.data_info(\"peaklet_classification\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " * The first three fields contain time information of the peak. This is duplicated in many datatypes -- unfortunately, this is necessary for strax to be able to track the data and combine it with other data. Instead of (time, length, dt), plugins could also provide (time, endtime). See [here](https://strax.readthedocs.io/en/latest/advanced/plugin_dev.html#special-time-fields) for more information.\n", " * The 'channel' field is an historical artifact.\n", " * The 'type' field contains the classification: 0 for unknown, 1 for S1, 2 for S2. (note [#8](https://github.com/XENONnT/straxen/issues/8))\n", " \n", "You can find the original plugin in [peaklet_processing.py](https://github.com/XENONnT/straxen/blob/master/straxen/plugins/peaklet_processing.py.) Here's how you would make a different classification plugin:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "import strax\n", "import numpy as np\n", "\n", "\n", "class AdvancedExpertClassification(strax.Plugin):\n", " \"\"\"Everything is an S1!\"\"\"\n", "\n", " # Name of the data type this plugin provides\n", " provides = \"peaklet_classification\"\n", "\n", " # Data types this plugin requires. Note we don't specify\n", " # what plugins should produce them: maybe the default PeakBasics\n", " # has been replaced by another AdvancedExpertBlabla plugin?\n", " depends_on = (\"peaklets\",)\n", "\n", " # Numpy datatype of the output\n", " dtype = straxen.PeakletClassification.dtype\n", "\n", " # Version of the plugin. Increment this if you change the algorithm.\n", " __version__ = \"0.0.2\"\n", "\n", " def compute(self, peaklets):\n", " # Your code here.\n", " # This function will be called several times with\n", " # 'peaks' a numpy array of the datatype 'peaks'.\n", " # Each time you'll see a small part of the run.\n", "\n", " # You have to return a numpy array of the dtype you declared above\n", " result = np.zeros(len(peaklets), self.dtype)\n", "\n", " # Copy the basic time fields over from peaklets\n", " for (_, field), _ in strax.time_dt_fields:\n", " result[field] = peaklets[field]\n", "\n", " # Store the classification results\n", " # You might want to do real work here\n", " result[\"type\"] = 1\n", "\n", " return result\n", "\n", " # Instead of an array, you are also allowed to return a dictionary\n", " # we can transform into an array.\n", " # That is, (dict keys -> field names, values -> field values)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To use it in place of PeakClassification, we only have to register it. Again, we can do so permanently using \n", "```python\n", "st.register(AdvancedExpertClassification)\n", "```\n", "or temporarily, by feeding the registration as an extra argument to `get_df`:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "f7289983bcb54401aca75e151137b30f", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Loading event_info: | | 0.00 % [00:00