From e237adf6c5e375782af44fe067f2f0f3d340b9bb Mon Sep 17 00:00:00 2001 From: Minghao Liu Date: Wed, 20 Dec 2023 10:36:28 -0500 Subject: [PATCH] Fix S1/S2 correction and gas gain when simulating S1/S2PE (#122) * Separate correction for S1PE/S2PE and cS1/cS2 using true/reconstructed position * Add gas gain (x,y) dependence when simulating S2PE * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix parameter list of S2PE * change gas gain map to relative map * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add back gas gain to parameter * modify the structure a bit * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * debug * Update datastructure --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Zihao Xu Co-authored-by: Dacheng Xu --- appletree/maps/_gas_gain_relative.json | 1 + appletree/plugins/detector.py | 63 +- appletree/plugins/reconstruction.py | 38 + notebooks/5. datastructure.ipynb | 2117 +++++++++++++----------- 4 files changed, 1235 insertions(+), 984 deletions(-) create mode 100644 appletree/maps/_gas_gain_relative.json diff --git a/appletree/maps/_gas_gain_relative.json b/appletree/maps/_gas_gain_relative.json new file mode 100644 index 00000000..2c6ef063 --- /dev/null +++ b/appletree/maps/_gas_gain_relative.json @@ -0,0 +1 @@ +{"coordinate_lowers": [-70, -70], "coordinate_uppers": [70, 70], "coordinate_type": "regbin", "coordinate_name": ["x", "y"], "map": [[1.0, 1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0, 1.0]]} diff --git a/appletree/plugins/detector.py b/appletree/plugins/detector.py index 0051744a..5c41507f 100644 --- a/appletree/plugins/detector.py +++ b/appletree/plugins/detector.py @@ -13,52 +13,50 @@ @export @takes_config( Map( - name="s1_correction", + name="s1_lce", default="_s1_correction.json", - help="S1 light collection efficiency correction", + help="S1 light collection efficiency", ), ) -class S1Correction(Plugin): - depends_on = ["rec_x", "rec_y", "rec_z"] - provides = ["s1_correction"] +class S1LCE(Plugin): + depends_on = ["x", "y", "z"] + provides = ["s1_lce"] @partial(jit, static_argnums=(0,)) - def simulate(self, key, parameters, rec_x, rec_y, rec_z): - pos = jnp.stack([rec_x, rec_y, rec_z]).T - s1_correction = self.s1_correction.apply(pos) - return key, s1_correction + def simulate(self, key, parameters, x, y, z): + pos_true = jnp.stack([x, y, z]).T + s1_lce = self.s1_lce.apply(pos_true) + return key, s1_lce @export @takes_config( Map( - name="s2_correction", + name="s2_lce", default="_s2_correction.json", - help="S2 light collection efficiency correction", + help="S2 light collection efficiency", ), ) -class S2Correction(Plugin): - depends_on = ["rec_x", "rec_y"] - provides = ["s2_correction"] +class S2LCE(Plugin): + depends_on = ["x", "y"] + provides = ["s2_lce"] @partial(jit, static_argnums=(0,)) - def simulate(self, key, parameters, rec_x, rec_y): - pos = jnp.stack([rec_x, rec_y]).T - s2_correction = self.s2_correction.apply(pos) - return key, s2_correction + def simulate(self, key, parameters, x, y): + pos_true = jnp.stack([x, y]).T + s2_lce = self.s2_lce.apply(pos_true) + return key, s2_lce @export class PhotonDetection(Plugin): - depends_on = ["num_photon", "s1_correction"] + depends_on = ["num_photon", "s1_lce"] provides = ["num_s1_phd"] parameters = ("g1", "p_dpe") @partial(jit, static_argnums=(0,)) - def simulate(self, key, parameters, num_photon, s1_correction): - g1_true_no_dpe = jnp.clip( - parameters["g1"] * s1_correction / (1.0 + parameters["p_dpe"]), 0, 1.0 - ) + def simulate(self, key, parameters, num_photon, s1_lce): + g1_true_no_dpe = jnp.clip(parameters["g1"] * s1_lce / (1.0 + parameters["p_dpe"]), 0, 1.0) key, num_s1_phd = randgen.binomial(key, g1_true_no_dpe, num_photon) return key, num_s1_phd @@ -104,21 +102,28 @@ def simulate(self, key, parameters, num_electron, drift_survive_prob): return key, num_electron_drifted +@takes_config( + Map( + name="gas_gain_relative", + default="_gas_gain_relative.json", + help="Gas gain as a function of (x, y) / mean gas gain", + ), +) @export class S2PE(Plugin): - depends_on = ["num_electron_drifted", "s2_correction"] + depends_on = ["num_electron_drifted", "s2_lce", "x", "y"] provides = ["num_s2_pe"] parameters = ("g2", "gas_gain") @partial(jit, static_argnums=(0,)) - def simulate(self, key, parameters, num_electron_drifted, s2_correction): - extraction_eff = parameters["g2"] / parameters["gas_gain"] - g2_true = parameters["g2"] * s2_correction - gas_gain_true = g2_true / extraction_eff + def simulate(self, key, parameters, num_electron_drifted, s2_lce, x, y): + pos_true = jnp.stack([x, y]).T + gas_gain = parameters["gas_gain"] * self.gas_gain_relative.apply((pos_true)) + extraction_eff = parameters["g2"] * s2_lce / gas_gain key, num_electron_extracted = randgen.binomial(key, extraction_eff, num_electron_drifted) - mean_s2_pe = num_electron_extracted * gas_gain_true + mean_s2_pe = num_electron_extracted * gas_gain key, num_s2_pe = randgen.truncate_normal(key, mean_s2_pe, jnp.sqrt(mean_s2_pe), vmin=0) return key, num_s2_pe diff --git a/appletree/plugins/reconstruction.py b/appletree/plugins/reconstruction.py index 47c6ac0b..92c1919c 100644 --- a/appletree/plugins/reconstruction.py +++ b/appletree/plugins/reconstruction.py @@ -69,6 +69,44 @@ def simulate(self, key, parameters, num_s2_pe): return key, s2_area +@export +@takes_config( + Map( + name="s1_correction", + default="_s1_correction.json", + help="S1 xyz correction on reconstructed positions", + ), +) +class S1Correction(Plugin): + depends_on = ["rec_x", "rec_y", "rec_z"] + provides = ["s1_correction"] + + @partial(jit, static_argnums=(0,)) + def simulate(self, key, parameters, rec_x, rec_y, rec_z): + pos_rec = jnp.stack([rec_x, rec_y, rec_z]).T + s1_correction = self.s1_correction.apply(pos_rec) + return key, s1_correction + + +@export +@takes_config( + Map( + name="s2_correction", + default="_s2_correction.json", + help="S2 xy correction on constructed positions", + ), +) +class S2Correction(Plugin): + depends_on = ["rec_x", "rec_y"] + provides = ["s2_correction"] + + @partial(jit, static_argnums=(0,)) + def simulate(self, key, parameters, rec_x, rec_y): + pos_rec = jnp.stack([rec_x, rec_y]).T + s2_correction = self.s2_correction.apply(pos_rec) + return key, s2_correction + + @export class cS1(Plugin): depends_on = ["s1_area", "s1_correction"] diff --git a/notebooks/5. datastructure.ipynb b/notebooks/5. datastructure.ipynb index 279ad6f0..697f4b2d 100644 --- a/notebooks/5. datastructure.ipynb +++ b/notebooks/5. datastructure.ipynb @@ -14,13 +14,28 @@ "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 Normal as an approximation of Binomial\n", + "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": [ @@ -93,15 +108,15 @@ { "data": { "image/svg+xml": [ - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", "\n", "\n", "cs1\n", "\n", - "\n", - "cs1\n", + "\n", + "cs1\n", "\n", "\n", "\n", @@ -109,613 +124,673 @@ "\n", "s1_area\n", "\n", - "\n", - "s1_area\n", + "\n", + "s1_area\n", "\n", "\n", "\n", "\n", "\n", "cs1->s1_area\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "s1_correction\n", - "\n", - "\n", - "s1_correction\n", + "\n", + "\n", + "s1_correction\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cs1->s1_correction\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "num_s1_phd\n", "\n", - "\n", - "num_s1_phd\n", + "\n", + "num_s1_phd\n", "\n", "\n", "\n", "\n", "\n", "s1_area->num_s1_phd\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "num_s1_pe\n", - "\n", - "\n", - "num_s1_pe\n", + "\n", + "\n", + "num_s1_pe\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "s1_area->num_s1_pe\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "num_photon\n", "\n", - "\n", - "num_photon\n", + "\n", + "num_photon\n", "\n", "\n", "\n", "\n", "\n", "num_s1_phd->num_photon\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "num_s1_phd->s1_correction\n", - "\n", - "\n", + "\n", + "\n", + "s1_lce\n", + "\n", + "\n", + "s1_lce\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "num_s1_phd->s1_lce\n", + "\n", + "\n", "\n", "\n", "\n", "num_quanta\n", "\n", - "\n", - "num_quanta\n", + "\n", + "num_quanta\n", "\n", "\n", "\n", "\n", "\n", "num_photon->num_quanta\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "num_ion\n", "\n", - "\n", - "num_ion\n", + "\n", + "num_ion\n", "\n", "\n", "\n", "\n", "\n", "num_photon->num_ion\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "recomb\n", "\n", - "\n", - "recomb\n", + "\n", + "recomb\n", "\n", "\n", "\n", "\n", "\n", "num_photon->recomb\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "energy\n", "\n", - "\n", - "energy\n", + "\n", + "energy\n", "\n", "\n", "\n", "\n", "\n", "num_quanta->energy\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "batch_size\n", "\n", - "\n", - "batch_size\n", + "\n", + "batch_size\n", "\n", "\n", "\n", "\n", "\n", "energy->batch_size\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "num_ion->num_quanta\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "recomb_mean\n", "\n", - "\n", - "recomb_mean\n", + "\n", + "recomb_mean\n", "\n", "\n", "\n", "\n", "\n", "recomb->recomb_mean\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "recomb_std\n", "\n", - "\n", - "recomb_std\n", + "\n", + "recomb_std\n", "\n", "\n", "\n", "\n", "\n", "recomb->recomb_std\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "recomb_mean->energy\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "recomb_std->energy\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", + "x\n", + "\n", + "\n", + "x\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "s1_lce->x\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "y\n", + "\n", + "\n", + "y\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "s1_lce->y\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "z\n", + "\n", + "\n", + "z\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "s1_lce->z\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "x->batch_size\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "y->batch_size\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "z->batch_size\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "num_s1_pe->num_s1_phd\n", + "\n", + "\n", + "\n", + "\n", + "\n", "rec_x\n", - "\n", - "\n", - "rec_x\n", + "\n", + "\n", + "rec_x\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "s1_correction->rec_x\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_y\n", - "\n", - "\n", - "rec_y\n", + "\n", + "\n", + "rec_y\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "s1_correction->rec_y\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_z\n", - "\n", - "\n", - "rec_z\n", + "\n", + "\n", + "rec_z\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "s1_correction->rec_z\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "x\n", - "\n", - "\n", - "x\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_x->x\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "y\n", - "\n", - "\n", - "y\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_x->y\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "z\n", - "\n", - "\n", - "z\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_x->z\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "num_electron_drifted\n", - "\n", - "\n", - "num_electron_drifted\n", + "\n", + "\n", + "num_electron_drifted\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "rec_x->num_electron_drifted\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "x->batch_size\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "y->batch_size\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "z->batch_size\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "num_electron\n", - "\n", - "\n", - "num_electron\n", + "\n", + "\n", + "num_electron\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "num_electron_drifted->num_electron\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "drift_survive_prob\n", - "\n", - "\n", - "drift_survive_prob\n", + "\n", + "\n", + "drift_survive_prob\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "num_electron_drifted->drift_survive_prob\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "num_electron->num_quanta\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "num_electron->num_ion\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "num_electron->recomb\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "drift_survive_prob->z\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_y->x\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_y->y\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_y->z\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_y->num_electron_drifted\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_z->x\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_z->y\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_z->z\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_z->num_electron_drifted\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "num_s1_pe->num_s1_phd\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "cs2\n", - "\n", - "\n", - "cs2\n", + "\n", + "\n", + "cs2\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cs2->drift_survive_prob\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "s2_area\n", - "\n", - "\n", - "s2_area\n", + "\n", + "\n", + "s2_area\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cs2->s2_area\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "s2_correction\n", - "\n", - "\n", - "s2_correction\n", + "\n", + "\n", + "s2_correction\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cs2->s2_correction\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "num_s2_pe\n", - "\n", - "\n", - "num_s2_pe\n", + "\n", + "\n", + "num_s2_pe\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "s2_area->num_s2_pe\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "num_s2_pe->x\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "num_s2_pe->y\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "num_s2_pe->num_electron_drifted\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "num_s2_pe->s2_correction\n", - "\n", - "\n", + "\n", + "\n", + "s2_lce\n", + "\n", + "\n", + "s2_lce\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "num_s2_pe->s2_lce\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "s2_lce->x\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "s2_lce->y\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "s2_correction->rec_x\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "s2_correction->rec_y\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "eff\n", - "\n", - "\n", - "eff\n", + "\n", + "\n", + "eff\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "acc_s2_threshold\n", - "\n", - "\n", - "acc_s2_threshold\n", + "\n", + "\n", + "acc_s2_threshold\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "eff->acc_s2_threshold\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "acc_s1_recon_eff\n", - "\n", - "\n", - "acc_s1_recon_eff\n", + "\n", + "\n", + "acc_s1_recon_eff\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "eff->acc_s1_recon_eff\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "cut_acc_s1\n", - "\n", - "\n", - "cut_acc_s1\n", + "\n", + "\n", + "cut_acc_s1\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "eff->cut_acc_s1\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "cut_acc_s2\n", - "\n", - "\n", - "cut_acc_s2\n", + "\n", + "\n", + "cut_acc_s2\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "eff->cut_acc_s2\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "acc_s2_threshold->s2_area\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "acc_s1_recon_eff->num_s1_phd\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "cut_acc_s1->s1_area\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "cut_acc_s2->s2_area\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "" @@ -744,15 +819,15 @@ { "data": { "image/svg+xml": [ - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", "\n", "\n", "cS1\n", "\n", - "\n", - "cS1\n", + "\n", + "cS1\n", "\n", "\n", "\n", @@ -760,439 +835,475 @@ "\n", "S1\n", "\n", - "\n", - "S1\n", + "\n", + "S1\n", "\n", "\n", "\n", "\n", "\n", "cS1->S1\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S1Correction\n", - "\n", - "\n", - "S1Correction\n", + "\n", + "\n", + "S1Correction\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cS1->S1Correction\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "PhotonDetection\n", "\n", - "\n", - "PhotonDetection\n", + "\n", + "PhotonDetection\n", "\n", "\n", "\n", "\n", "\n", "S1->PhotonDetection\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S1PE\n", - "\n", - "\n", - "S1PE\n", + "\n", + "\n", + "S1PE\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "S1->S1PE\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "RecombinationER\n", "\n", - "\n", - "RecombinationER\n", + "\n", + "RecombinationER\n", "\n", "\n", "\n", "\n", "\n", "PhotonDetection->RecombinationER\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "S1LCE\n", + "\n", + "\n", + "S1LCE\n", + "\n", "\n", - "\n", - "\n", - "PhotonDetection->S1Correction\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "PhotonDetection->S1LCE\n", + "\n", + "\n", "\n", "\n", "\n", "Quanta\n", "\n", - "\n", - "Quanta\n", + "\n", + "Quanta\n", "\n", "\n", "\n", "\n", "\n", "RecombinationER->Quanta\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "IonizationER\n", "\n", - "\n", - "IonizationER\n", + "\n", + "IonizationER\n", "\n", "\n", "\n", "\n", "\n", "RecombinationER->IonizationER\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "TrueRecombER\n", "\n", - "\n", - "TrueRecombER\n", + "\n", + "TrueRecombER\n", "\n", "\n", "\n", "\n", "\n", "RecombinationER->TrueRecombER\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "UniformEnergySpectra\n", "\n", - "\n", - "UniformEnergySpectra\n", + "\n", + "UniformEnergySpectra\n", "\n", "\n", "\n", "\n", "\n", "Quanta->UniformEnergySpectra\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "IonizationER->Quanta\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "mTI\n", "\n", - "\n", - "mTI\n", + "\n", + "mTI\n", "\n", "\n", "\n", "\n", "\n", "TrueRecombER->mTI\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "RecombFluct\n", "\n", - "\n", - "RecombFluct\n", + "\n", + "RecombFluct\n", "\n", "\n", "\n", "\n", "\n", "TrueRecombER->RecombFluct\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "mTI->UniformEnergySpectra\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "RecombFluct->UniformEnergySpectra\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "PositionRecon\n", - "\n", - "\n", - "PositionRecon\n", + "PositionSpectra\n", + "\n", + "\n", + "PositionSpectra\n", "\n", "\n", "\n", - "\n", + "\n", "\n", - "S1Correction->PositionRecon\n", - "\n", - "\n", + "S1LCE->PositionSpectra\n", + "\n", + "\n", "\n", - "\n", - "\n", - "PositionSpectra\n", - "\n", - "\n", - "PositionSpectra\n", + "\n", + "\n", + "S1PE->PhotonDetection\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "PositionRecon\n", + "\n", + "\n", + "PositionRecon\n", "\n", "\n", "\n", + "\n", + "\n", + "S1Correction->PositionRecon\n", + "\n", + "\n", + "\n", "\n", - "\n", + "\n", "PositionRecon->PositionSpectra\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "ElectronDrifted\n", - "\n", - "\n", - "ElectronDrifted\n", + "\n", + "\n", + "ElectronDrifted\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "PositionRecon->ElectronDrifted\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "ElectronDrifted->RecombinationER\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "DriftLoss\n", - "\n", - "\n", - "DriftLoss\n", + "\n", + "\n", + "DriftLoss\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "ElectronDrifted->DriftLoss\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "DriftLoss->PositionSpectra\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "S1PE->PhotonDetection\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "cS2\n", - "\n", - "\n", - "cS2\n", + "\n", + "\n", + "cS2\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cS2->DriftLoss\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2\n", - "\n", - "\n", - "S2\n", + "\n", + "\n", + "S2\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cS2->S2\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2Correction\n", - "\n", - "\n", - "S2Correction\n", + "\n", + "\n", + "S2Correction\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cS2->S2Correction\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2PE\n", - "\n", - "\n", - "S2PE\n", + "\n", + "\n", + "S2PE\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "S2->S2PE\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "S2PE->PositionSpectra\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2PE->ElectronDrifted\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "S2LCE\n", + "\n", + "\n", + "S2LCE\n", + "\n", "\n", - "\n", + "\n", + "\n", + "\n", + "S2PE->S2LCE\n", + "\n", + "\n", + "\n", + "\n", "\n", - "S2PE->S2Correction\n", - "\n", - "\n", + "S2LCE->PositionSpectra\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2Correction->PositionRecon\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "Eff\n", - "\n", - "\n", - "Eff\n", + "\n", + "\n", + "Eff\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "S2Threshold\n", - "\n", - "\n", - "S2Threshold\n", + "\n", + "\n", + "S2Threshold\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "Eff->S2Threshold\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S1ReconEff\n", - "\n", - "\n", - "S1ReconEff\n", + "\n", + "\n", + "S1ReconEff\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "Eff->S1ReconEff\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S1CutAccept\n", - "\n", - "\n", - "S1CutAccept\n", + "\n", + "\n", + "S1CutAccept\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "Eff->S1CutAccept\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2CutAccept\n", - "\n", - "\n", - "S2CutAccept\n", + "\n", + "\n", + "S2CutAccept\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "Eff->S2CutAccept\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2Threshold->S2\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S1ReconEff->PhotonDetection\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S1CutAccept->S1\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2CutAccept->S2\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "" @@ -1259,15 +1370,15 @@ { "data": { "image/svg+xml": [ - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", "\n", "\n", "cs1\n", "\n", - "\n", - "cs1\n", + "\n", + "cs1\n", "\n", "\n", "\n", @@ -1275,550 +1386,610 @@ "\n", "s1_area\n", "\n", - "\n", - "s1_area\n", + "\n", + "s1_area\n", "\n", "\n", "\n", "\n", "\n", "cs1->s1_area\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "s1_correction\n", - "\n", - "\n", - "s1_correction\n", + "\n", + "\n", + "s1_correction\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cs1->s1_correction\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "num_s1_phd\n", "\n", - "\n", - "num_s1_phd\n", + "\n", + "num_s1_phd\n", "\n", "\n", "\n", "\n", "\n", "s1_area->num_s1_phd\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "num_s1_pe\n", - "\n", - "\n", - "num_s1_pe\n", + "\n", + "\n", + "num_s1_pe\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "s1_area->num_s1_pe\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "num_photon\n", "\n", - "\n", - "num_photon\n", + "\n", + "num_photon\n", "\n", "\n", "\n", "\n", "\n", "num_s1_phd->num_photon\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "s1_lce\n", + "\n", + "\n", + "s1_lce\n", + "\n", "\n", - "\n", - "\n", - "num_s1_phd->s1_correction\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "num_s1_phd->s1_lce\n", + "\n", + "\n", "\n", "\n", "\n", "energy\n", "\n", - "\n", - "energy\n", + "\n", + "energy\n", "\n", "\n", "\n", "\n", "\n", "num_photon->energy\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "light_yield\n", "\n", - "\n", - "light_yield\n", + "\n", + "light_yield\n", "\n", "\n", "\n", "\n", "\n", "num_photon->light_yield\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "batch_size\n", "\n", - "\n", - "batch_size\n", + "\n", + "batch_size\n", "\n", "\n", "\n", "\n", "\n", "energy->batch_size\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "light_yield->energy\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", + "x\n", + "\n", + "\n", + "x\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "s1_lce->x\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "y\n", + "\n", + "\n", + "y\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "s1_lce->y\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "z\n", + "\n", + "\n", + "z\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "s1_lce->z\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "x->batch_size\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "y->batch_size\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "z->batch_size\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "num_s1_pe->num_s1_phd\n", + "\n", + "\n", + "\n", + "\n", + "\n", "rec_x\n", - "\n", - "\n", - "rec_x\n", + "\n", + "\n", + "rec_x\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "s1_correction->rec_x\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_y\n", - "\n", - "\n", - "rec_y\n", + "\n", + "\n", + "rec_y\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "s1_correction->rec_y\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_z\n", - "\n", - "\n", - "rec_z\n", + "\n", + "\n", + "rec_z\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "s1_correction->rec_z\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "x\n", - "\n", - "\n", - "x\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_x->x\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "y\n", - "\n", - "\n", - "y\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_x->y\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "z\n", - "\n", - "\n", - "z\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_x->z\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "num_electron_drifted\n", - "\n", - "\n", - "num_electron_drifted\n", + "\n", + "\n", + "num_electron_drifted\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "rec_x->num_electron_drifted\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "x->batch_size\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "y->batch_size\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "z->batch_size\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "num_electron\n", - "\n", - "\n", - "num_electron\n", + "\n", + "\n", + "num_electron\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "num_electron_drifted->num_electron\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "drift_survive_prob\n", - "\n", - "\n", - "drift_survive_prob\n", + "\n", + "\n", + "drift_survive_prob\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "num_electron_drifted->drift_survive_prob\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "num_electron->energy\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "charge_yield\n", - "\n", - "\n", - "charge_yield\n", + "\n", + "\n", + "charge_yield\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "num_electron->charge_yield\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "charge_yield->energy\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "drift_survive_prob->z\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_y->x\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_y->y\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_y->z\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_y->num_electron_drifted\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_z->x\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_z->y\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_z->z\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "rec_z->num_electron_drifted\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "num_s1_pe->num_s1_phd\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "cs2\n", - "\n", - "\n", - "cs2\n", + "\n", + "\n", + "cs2\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cs2->drift_survive_prob\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "s2_area\n", - "\n", - "\n", - "s2_area\n", + "\n", + "\n", + "s2_area\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cs2->s2_area\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "s2_correction\n", - "\n", - "\n", - "s2_correction\n", + "\n", + "\n", + "s2_correction\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cs2->s2_correction\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "num_s2_pe\n", - "\n", - "\n", - "num_s2_pe\n", + "\n", + "\n", + "num_s2_pe\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "s2_area->num_s2_pe\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "num_s2_pe->x\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "num_s2_pe->y\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "num_s2_pe->num_electron_drifted\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "num_s2_pe->s2_correction\n", - "\n", - "\n", + "\n", + "\n", + "s2_lce\n", + "\n", + "\n", + "s2_lce\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "num_s2_pe->s2_lce\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "s2_lce->x\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "s2_lce->y\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "s2_correction->rec_x\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "s2_correction->rec_y\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "eff\n", - "\n", - "\n", - "eff\n", + "\n", + "\n", + "eff\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "acc_s2_threshold\n", - "\n", - "\n", - "acc_s2_threshold\n", + "\n", + "\n", + "acc_s2_threshold\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "eff->acc_s2_threshold\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "acc_s1_recon_eff\n", - "\n", - "\n", - "acc_s1_recon_eff\n", + "\n", + "\n", + "acc_s1_recon_eff\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "eff->acc_s1_recon_eff\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "cut_acc_s1\n", - "\n", - "\n", - "cut_acc_s1\n", + "\n", + "\n", + "cut_acc_s1\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "eff->cut_acc_s1\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "cut_acc_s2\n", - "\n", - "\n", - "cut_acc_s2\n", + "\n", + "\n", + "cut_acc_s2\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "eff->cut_acc_s2\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "acc_s2_threshold->s2_area\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "acc_s1_recon_eff->num_s1_phd\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "cut_acc_s1->s1_area\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "cut_acc_s2->s2_area\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "" @@ -1847,15 +2018,15 @@ { "data": { "image/svg+xml": [ - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", "\n", "\n", "cS1\n", "\n", - "\n", - "cS1\n", + "\n", + "cS1\n", "\n", "\n", "\n", @@ -1863,403 +2034,439 @@ "\n", "S1\n", "\n", - "\n", - "S1\n", + "\n", + "S1\n", "\n", "\n", "\n", "\n", "\n", "cS1->S1\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S1Correction\n", - "\n", - "\n", - "S1Correction\n", + "\n", + "\n", + "S1Correction\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cS1->S1Correction\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "PhotonDetection\n", "\n", - "\n", - "PhotonDetection\n", + "\n", + "PhotonDetection\n", "\n", "\n", "\n", "\n", "\n", "S1->PhotonDetection\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S1PE\n", - "\n", - "\n", - "S1PE\n", + "\n", + "\n", + "S1PE\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "S1->S1PE\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "NumberPhoton\n", "\n", - "\n", - "NumberPhoton\n", + "\n", + "NumberPhoton\n", "\n", "\n", "\n", "\n", "\n", "PhotonDetection->NumberPhoton\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", - "\n", - "PhotonDetection->S1Correction\n", - "\n", - "\n", + "\n", + "\n", + "S1LCE\n", + "\n", + "\n", + "S1LCE\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "PhotonDetection->S1LCE\n", + "\n", + "\n", "\n", "\n", "\n", "FixedEnergySpectra\n", "\n", - "\n", - "FixedEnergySpectra\n", + "\n", + "FixedEnergySpectra\n", "\n", "\n", "\n", "\n", "\n", "NumberPhoton->FixedEnergySpectra\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "LightYield\n", "\n", - "\n", - "LightYield\n", + "\n", + "LightYield\n", "\n", "\n", "\n", "\n", "\n", "NumberPhoton->LightYield\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n", "LightYield->FixedEnergySpectra\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "PositionRecon\n", - "\n", - "\n", - "PositionRecon\n", + "PositionSpectra\n", + "\n", + "\n", + "PositionSpectra\n", "\n", "\n", "\n", - "\n", + "\n", "\n", - "S1Correction->PositionRecon\n", - "\n", - "\n", + "S1LCE->PositionSpectra\n", + "\n", + "\n", "\n", - "\n", - "\n", - "PositionSpectra\n", - "\n", - "\n", - "PositionSpectra\n", + "\n", + "\n", + "S1PE->PhotonDetection\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "PositionRecon\n", + "\n", + "\n", + "PositionRecon\n", "\n", "\n", "\n", + "\n", + "\n", + "S1Correction->PositionRecon\n", + "\n", + "\n", + "\n", "\n", - "\n", + "\n", "PositionRecon->PositionSpectra\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "ElectronDrifted\n", - "\n", - "\n", - "ElectronDrifted\n", + "\n", + "\n", + "ElectronDrifted\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "PositionRecon->ElectronDrifted\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "NumberElectron\n", - "\n", - "\n", - "NumberElectron\n", + "\n", + "\n", + "NumberElectron\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "ElectronDrifted->NumberElectron\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "DriftLoss\n", - "\n", - "\n", - "DriftLoss\n", + "\n", + "\n", + "DriftLoss\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "ElectronDrifted->DriftLoss\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "NumberElectron->FixedEnergySpectra\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "ChargeYield\n", - "\n", - "\n", - "ChargeYield\n", + "\n", + "\n", + "ChargeYield\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "NumberElectron->ChargeYield\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "ChargeYield->FixedEnergySpectra\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", - "DriftLoss->PositionSpectra\n", - "\n", - "\n", - "\n", - "\n", "\n", - "S1PE->PhotonDetection\n", - "\n", - "\n", + "DriftLoss->PositionSpectra\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "cS2\n", - "\n", - "\n", - "cS2\n", + "\n", + "\n", + "cS2\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cS2->DriftLoss\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2\n", - "\n", - "\n", - "S2\n", + "\n", + "\n", + "S2\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cS2->S2\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2Correction\n", - "\n", - "\n", - "S2Correction\n", + "\n", + "\n", + "S2Correction\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "cS2->S2Correction\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2PE\n", - "\n", - "\n", - "S2PE\n", + "\n", + "\n", + "S2PE\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "S2->S2PE\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "S2PE->PositionSpectra\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2PE->ElectronDrifted\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "S2LCE\n", + "\n", + "\n", + "S2LCE\n", + "\n", "\n", - "\n", + "\n", + "\n", + "\n", + "S2PE->S2LCE\n", + "\n", + "\n", + "\n", + "\n", "\n", - "S2PE->S2Correction\n", - "\n", - "\n", + "S2LCE->PositionSpectra\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2Correction->PositionRecon\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "Eff\n", - "\n", - "\n", - "Eff\n", + "\n", + "\n", + "Eff\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "S2Threshold\n", - "\n", - "\n", - "S2Threshold\n", + "\n", + "\n", + "S2Threshold\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "Eff->S2Threshold\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S1ReconEff\n", - "\n", - "\n", - "S1ReconEff\n", + "\n", + "\n", + "S1ReconEff\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "Eff->S1ReconEff\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S1CutAccept\n", - "\n", - "\n", - "S1CutAccept\n", + "\n", + "\n", + "S1CutAccept\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "Eff->S1CutAccept\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2CutAccept\n", - "\n", - "\n", - "S2CutAccept\n", + "\n", + "\n", + "S2CutAccept\n", "\n", "\n", "\n", "\n", - "\n", + "\n", "Eff->S2CutAccept\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2Threshold->S2\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S1ReconEff->PhotonDetection\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S1CutAccept->S1\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", - "\n", + "\n", "S2CutAccept->S2\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "" @@ -2296,7 +2503,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.16" + "version": "3.9.7" } }, "nbformat": 4,