@@ -83,7 +83,7 @@ def __init__(
83
83
84
84
self .background_models : models = []
85
85
self .signal_models : models = []
86
- self .parameters : Optional [Parameters ] = None
86
+ self ._parameters : Optional [Parameters ] = None
87
87
self ._num_backgrounds = 0
88
88
self ._num_signals = 0
89
89
self .result : Optional [ModelResult ] = None
@@ -122,13 +122,7 @@ def add_signal(
122
122
):
123
123
self ._num_signals += 1
124
124
prefix = f"s{ self ._num_signals } _"
125
- self .signal_models .append (
126
- Fit1D ._add_model (
127
- model ,
128
- prefix ,
129
- nan_policy = self .nan_policy ,
130
- )
131
- )
125
+ self .signal_models .append (Fit1D ._add_model (model , prefix , nan_policy = self .nan_policy ))
132
126
133
127
def add_background (
134
128
self ,
@@ -143,13 +137,7 @@ def add_background(
143
137
):
144
138
self ._num_backgrounds += 1
145
139
prefix = f"b{ self ._num_backgrounds } _"
146
- self .background_models .append (
147
- Fit1D ._add_model (
148
- model ,
149
- prefix ,
150
- nan_policy = self .nan_policy ,
151
- )
152
- )
140
+ self .background_models .append (Fit1D ._add_model (model , prefix , nan_policy = self .nan_policy ))
153
141
154
142
@staticmethod
155
143
def _get_param_names (models ) -> list [list [str ]]:
@@ -166,11 +154,15 @@ def signal_param_names(self):
166
154
def background_param_names (self ):
167
155
return Fit1D ._get_param_names (self .background_models )
168
156
169
- @staticmethod
170
- def _get_params (all_pars , parsms_names : list [list [str ]]) -> tuple [tuple [FitParams , ...], ...]:
171
- signal_params_list = []
157
+ @property
158
+ def params (self ) -> dict [str , tuple [FitParams , ...]]:
159
+
160
+ all_pars = self .guess () if self ._parameters is None else self ._parameters
161
+ parsms_names = Fit1D ._get_param_names (self .signal_models + self .background_models )
162
+ params_dict = {}
172
163
173
164
for params in parsms_names :
165
+ key = params [0 ].split ("_" )[0 ]
174
166
params_list = []
175
167
for param_name in params :
176
168
param = all_pars [param_name ]
@@ -185,34 +177,17 @@ def _get_params(all_pars, parsms_names: list[list[str]]) -> tuple[tuple[FitParam
185
177
brute_step = param .brute_step ,
186
178
)
187
179
)
188
- signal_params_list .append (tuple (params_list ))
189
- return tuple (signal_params_list )
190
-
191
- @property
192
- def signal_params (self ) -> tuple [tuple [FitParams , ...], ...]:
193
-
194
- pars = self .guess () if self .parameters is None else self .parameters
195
- names = Fit1D ._get_param_names (self .signal_models )
196
- signal_params = Fit1D ._get_params (pars , names )
197
-
198
- return signal_params
199
-
200
- @property
201
- def background_params (self ) -> tuple [tuple [FitParams , ...], ...]:
202
-
203
- pars = self .guess () if self .parameters is None else self .parameters
204
- names = Fit1D ._get_param_names (self .background_models )
205
- background_params = Fit1D ._get_params (pars , names )
180
+ params_dict .update ({key : tuple (params_list )})
206
181
207
- return background_params
182
+ return params_dict
208
183
209
184
def guess (self ) -> Parameters :
210
185
pars = Parameters ()
211
186
for signal in self .signal_models :
212
187
pars += signal .guess (self .y , x = self .x )
213
188
for bkg in self .background_models :
214
189
pars += bkg .guess (self .y , x = self .x )
215
- self .parameters = pars
190
+ self ._parameters = pars
216
191
return pars
217
192
218
193
@property
0 commit comments