From 48beebc68b1fefeca1ababd3c5f5ef76b1c47fef Mon Sep 17 00:00:00 2001 From: WenzDaniel Date: Thu, 9 Oct 2025 06:21:25 -0500 Subject: [PATCH 1/3] Added NR yields, updated defaut yields treatment --- fuse/plugins/micro_physics/yields.py | 39 +++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/fuse/plugins/micro_physics/yields.py b/fuse/plugins/micro_physics/yields.py index c896c4a6..618cbe09 100644 --- a/fuse/plugins/micro_physics/yields.py +++ b/fuse/plugins/micro_physics/yields.py @@ -18,7 +18,7 @@ class NestYields(FuseBasePlugin): """Plugin that calculates the number of photons, electrons and excitons produced by energy deposit using nestpy.""" - __version__ = "0.2.3" + __version__ = "0.3.0" depends_on = ("interactions_in_roi", "electric_field_values") provides = "quanta" @@ -51,12 +51,20 @@ class NestYields(FuseBasePlugin): default="take://resource://" "SIMULATION_CONFIG_FILE.json?&fmt=json" "&take=nest_er_yields_parameters", - type=list, + type=(int, list), help="Set to modify default NEST ER yields parameters. Use -1 to keep default value. \ From NEST code https://github.com/NESTCollaboration/nest/blob/v2.4.0/src/NEST.cpp \ Used in the calcuations of BetaYieldsGR.", ) + nest_nr_yields_parameters = straxen.URLConfig( + default="take://resource://" + "SIMULATION_CONFIG_FILE.json?&fmt=json" + "&take=nest_nr_yields_parameters", + type=(int, list), + help="Set to modify default NEST NR yields parameters. Use -1 to keep default value.", + ) + fix_gamma_yield_field = straxen.URLConfig( default=-1.0, help="Field in V/cm to use for NEST gamma yield calculation. Only used if set to > 0.", @@ -77,10 +85,28 @@ def setup(self): self.vectorized_get_quanta = np.vectorize(self.get_quanta) self.updated_nest_width_parameters = self.update_nest_width_parameters() - # Set the elements of the list so we do not run into problems with the vectorized function - self.nest_er_yields_parameters_list = [ - float(element) for element in self.nest_er_yields_parameters - ] + + # Change NR and ER yields to best fit: + if hasattr(self.nest_er_yields_parameters, '__len__'): + # Set the elements of the list so we do not run into problems with the vectorized function + self.nest_er_yields_parameters_list = [ + float(element) for element in self.nest_er_yields_parameters + ] + elif self.nest_er_yields_parameters == -1: + self.nest_er_yields_parameters_list = nestpy.default_er_yields_params() + else: + raise ValueError('Not supported setting for nest_er_yields_parameters!') + + + if hasattr(self.nest_nr_yields_parameters, '__len__'): + self.nest_nr_yields_parameters_list = [ + float(element) for element in self.nest_nr_yields_parameters + ] + elif self.nest_nr_yields_parameters == -1: + self.nest_nr_yields_parameters_list = nestpy.default_nr_yields_params() + else: + raise ValueError('Not supported setting for nest_nr_yields_parameters!') + def update_nest_width_parameters(self): @@ -207,6 +233,7 @@ def get_yields_from_NEST(self, en, model, e_field, A, Z, density): Z=Z, density=density, ERYieldsParam=self.nest_er_yields_parameters_list, + nuisance_parameters=self.nuisance_parameters_list ) return yields_result From 5973066fbde475c1597729dd8b21b275aa380add Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 9 Oct 2025 11:23:24 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- fuse/plugins/micro_physics/yields.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/fuse/plugins/micro_physics/yields.py b/fuse/plugins/micro_physics/yields.py index 618cbe09..b1d52909 100644 --- a/fuse/plugins/micro_physics/yields.py +++ b/fuse/plugins/micro_physics/yields.py @@ -85,9 +85,8 @@ def setup(self): self.vectorized_get_quanta = np.vectorize(self.get_quanta) self.updated_nest_width_parameters = self.update_nest_width_parameters() - - # Change NR and ER yields to best fit: - if hasattr(self.nest_er_yields_parameters, '__len__'): + # Change NR and ER yields to best fit: + if hasattr(self.nest_er_yields_parameters, "__len__"): # Set the elements of the list so we do not run into problems with the vectorized function self.nest_er_yields_parameters_list = [ float(element) for element in self.nest_er_yields_parameters @@ -95,18 +94,16 @@ def setup(self): elif self.nest_er_yields_parameters == -1: self.nest_er_yields_parameters_list = nestpy.default_er_yields_params() else: - raise ValueError('Not supported setting for nest_er_yields_parameters!') + raise ValueError("Not supported setting for nest_er_yields_parameters!") - - if hasattr(self.nest_nr_yields_parameters, '__len__'): + if hasattr(self.nest_nr_yields_parameters, "__len__"): self.nest_nr_yields_parameters_list = [ float(element) for element in self.nest_nr_yields_parameters ] elif self.nest_nr_yields_parameters == -1: self.nest_nr_yields_parameters_list = nestpy.default_nr_yields_params() else: - raise ValueError('Not supported setting for nest_nr_yields_parameters!') - + raise ValueError("Not supported setting for nest_nr_yields_parameters!") def update_nest_width_parameters(self): @@ -233,7 +230,7 @@ def get_yields_from_NEST(self, en, model, e_field, A, Z, density): Z=Z, density=density, ERYieldsParam=self.nest_er_yields_parameters_list, - nuisance_parameters=self.nuisance_parameters_list + nuisance_parameters=self.nuisance_parameters_list, ) return yields_result From 532c89d5e1345cc4def8142c4ce06e1af57d4780 Mon Sep 17 00:00:00 2001 From: WenzDaniel Date: Thu, 9 Oct 2025 06:28:02 -0500 Subject: [PATCH 3/3] Fix typo --- fuse/plugins/micro_physics/yields.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fuse/plugins/micro_physics/yields.py b/fuse/plugins/micro_physics/yields.py index 618cbe09..996670ba 100644 --- a/fuse/plugins/micro_physics/yields.py +++ b/fuse/plugins/micro_physics/yields.py @@ -233,7 +233,7 @@ def get_yields_from_NEST(self, en, model, e_field, A, Z, density): Z=Z, density=density, ERYieldsParam=self.nest_er_yields_parameters_list, - nuisance_parameters=self.nuisance_parameters_list + nuisance_parameters=self.nest_nr_yields_parameters_list ) return yields_result