Update current ``self.param_new`` with elements from ``self.EC`` (delete elements that are not in ``self.EC`` and update the existing elements.
(self)
| 1083 | self.create_full_param() |
| 1084 | |
| 1085 | def create_full_param(self): |
| 1086 | """ |
| 1087 | Update current ``self.param_new`` with elements from ``self.EC`` (delete elements that |
| 1088 | are not in ``self.EC`` and update the existing elements. |
| 1089 | """ |
| 1090 | self.define_range() |
| 1091 | # We set 'self.element_list' from 'EC' (because we want to set elements of 'self.param_new' |
| 1092 | # from 'EC.element_dict' |
| 1093 | self.element_list = self.EC.get_element_list() |
| 1094 | |
| 1095 | self.param_new = update_param_from_element(self.param_new, self.element_list) |
| 1096 | element_temp = [e for e in self.element_list if len(e) <= 4] |
| 1097 | pileup_temp = [e for e in self.element_list if "-" in e] |
| 1098 | userpeak_temp = [e for e in self.element_list if "user" in e.lower()] |
| 1099 | |
| 1100 | # update area values in param_new according to results saved in ElementController |
| 1101 | if len(self.EC.element_dict): |
| 1102 | for k, v in self.param_new.items(): |
| 1103 | if "area" in k: |
| 1104 | if "pileup" in k: |
| 1105 | name_cut = k[7:-5] # remove pileup_ and _area |
| 1106 | for p in pileup_temp: |
| 1107 | if name_cut == p.replace("-", "_"): |
| 1108 | v["value"] = self.EC.element_dict[p].area |
| 1109 | elif "user" in k.lower(): |
| 1110 | for p in userpeak_temp: |
| 1111 | if p in k: |
| 1112 | v["value"] = self.EC.element_dict[p].area |
| 1113 | else: |
| 1114 | for e in element_temp: |
| 1115 | k_name, k_line, _ = k.split("_") |
| 1116 | e_name, e_line = e.split("_") |
| 1117 | if k_name == e_name and e_line.lower() == k_line[0]: # attention: S_k and As_k |
| 1118 | v["value"] = self.EC.element_dict[e].area |
| 1119 | |
| 1120 | if "compton" in self.EC.element_dict: |
| 1121 | self.param_new["compton_amplitude"]["value"] = self.EC.element_dict["compton"].area |
| 1122 | if "coherent_sct_amplitude" in self.EC.element_dict: |
| 1123 | self.param_new["coherent_sct_amplitude"]["value"] = self.EC.element_dict["elastic"].area |
| 1124 | |
| 1125 | if "escape" in self.EC.element_dict: |
| 1126 | self.param_new["non_fitting_values"]["escape_ratio"] = self.EC.element_dict[ |
| 1127 | "escape" |
| 1128 | ].maxv / np.max(self.y0) |
| 1129 | else: |
| 1130 | self.param_new["non_fitting_values"]["escape_ratio"] = 0.0 |
| 1131 | |
| 1132 | def data_for_plot(self): |
| 1133 | """ |
no test coverage detected