Skip to content

Commit 9aa0d0e

Browse files
WenzDanielpre-commit-ci[bot]cfuselli
authored
Added NR yields, updated defaut yields treatment (#357)
* Added NR yields, updated defaut yields treatment * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix typo * Update test simulation config from sr1_dev to sr2_dev * Update simulation config file for microphysics context * env var in tests * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix precommit * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Carlo Fuselli <cfuselli@nikhef.nl>
1 parent e98a80e commit 9aa0d0e

4 files changed

Lines changed: 38 additions & 8 deletions

File tree

.github/workflows/pytest.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ jobs:
102102
env:
103103
TEST_MONGO_URI: 'mongodb://localhost:27017/'
104104
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
105+
FUSE_TEST_SIMULATION_CONFIG: ${{ matrix.dependency-version == 'lowest' && 'sr1_dev' || 'sr2_dev' }}
106+
105107
if: env.HAVE_ACCESS_TO_SECRETS != null
106108
run: |
107109
coverage run --source=fuse -m pytest --durations 0 -v

fuse/context.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114

115115
def microphysics_context(
116116
output_folder="./fuse_data",
117-
simulation_config_file="fuse_config_nt_sr1_dev.json",
117+
simulation_config_file="fuse_config_nt_sr2_dev.json",
118118
clustering_method="dbscan",
119119
extra_plugins=[],
120120
):

fuse/plugins/micro_physics/yields.py

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class NestYields(FuseBasePlugin):
1818
"""Plugin that calculates the number of photons, electrons and excitons
1919
produced by energy deposit using nestpy."""
2020

21-
__version__ = "0.2.3"
21+
__version__ = "0.3.0"
2222

2323
depends_on = ("interactions_in_roi", "electric_field_values")
2424
provides = "quanta"
@@ -51,12 +51,20 @@ class NestYields(FuseBasePlugin):
5151
default="take://resource://"
5252
"SIMULATION_CONFIG_FILE.json?&fmt=json"
5353
"&take=nest_er_yields_parameters",
54-
type=list,
54+
type=(int, list),
5555
help="Set to modify default NEST ER yields parameters. Use -1 to keep default value. \
5656
From NEST code https://github.com/NESTCollaboration/nest/blob/v2.4.0/src/NEST.cpp \
5757
Used in the calcuations of BetaYieldsGR.",
5858
)
5959

60+
nest_nr_yields_parameters = straxen.URLConfig(
61+
default="take://resource://"
62+
"SIMULATION_CONFIG_FILE.json?&fmt=json"
63+
"&take=nest_nr_yields_parameters",
64+
type=(int, list),
65+
help="Set to modify default NEST NR yields parameters. Use -1 to keep default value.",
66+
)
67+
6068
fix_gamma_yield_field = straxen.URLConfig(
6169
default=-1.0,
6270
help="Field in V/cm to use for NEST gamma yield calculation. Only used if set to > 0.",
@@ -77,10 +85,26 @@ def setup(self):
7785
self.vectorized_get_quanta = np.vectorize(self.get_quanta)
7886
self.updated_nest_width_parameters = self.update_nest_width_parameters()
7987

80-
# Set the elements of the list so we do not run into problems with the vectorized function
81-
self.nest_er_yields_parameters_list = [
82-
float(element) for element in self.nest_er_yields_parameters
83-
]
88+
# Change NR and ER yields to best fit:
89+
if hasattr(self.nest_er_yields_parameters, "__len__"):
90+
# Set the elements of the list
91+
# so we do not run into problems with the vectorized function
92+
self.nest_er_yields_parameters_list = [
93+
float(element) for element in self.nest_er_yields_parameters
94+
]
95+
elif self.nest_er_yields_parameters == -1:
96+
self.nest_er_yields_parameters_list = nestpy.default_er_yields_params()
97+
else:
98+
raise ValueError("Not supported setting for nest_er_yields_parameters!")
99+
100+
if hasattr(self.nest_nr_yields_parameters, "__len__"):
101+
self.nest_nr_yields_parameters_list = [
102+
float(element) for element in self.nest_nr_yields_parameters
103+
]
104+
elif self.nest_nr_yields_parameters == -1:
105+
self.nest_nr_yields_parameters_list = nestpy.default_nr_yields_params()
106+
else:
107+
raise ValueError("Not supported setting for nest_nr_yields_parameters!")
84108

85109
def update_nest_width_parameters(self):
86110

@@ -207,6 +231,7 @@ def get_yields_from_NEST(self, en, model, e_field, A, Z, density):
207231
Z=Z,
208232
density=density,
209233
ERYieldsParam=self.nest_er_yields_parameters_list,
234+
nuisance_parameters=self.nest_nr_yields_parameters_list,
210235
)
211236

212237
return yields_result

tests/_utils.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import pandas as pd
22
import numpy as np
3+
import os
34

45
test_root_file_name = "test_cryo_neutrons_tpc-nveto.root"
5-
test_simulation_config = "sr1_dev"
6+
7+
# This environment variable is set in the CI configuration
8+
test_simulation_config = os.getenv("FUSE_TEST_SIMULATION_CONFIG", "sr2_dev")
69

710

811
def build_random_instructions(n):

0 commit comments

Comments
 (0)