File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -90,20 +90,27 @@ optimizers::OPTIMIZER_OUTCOME ROI_Fit_Routine<T_real>::fit_spectra(const models:
9090 Fit_Element_Map<T_real>* element = e_itr.second ;
9191 if (element != nullptr )
9292 {
93- left_roi = static_cast <unsigned int >(std::round (((element->center () - element->width ()) - energy_offset) / energy_slope));
94- right_roi = static_cast <unsigned int >(std::round (((element->center () + element->width ()) - energy_offset) / energy_slope));
95-
96- if (right_roi >= n_mca_channels)
93+ if (_separate_lines == false )
9794 {
98- right_roi = n_mca_channels - 2 ;
95+ left_roi = static_cast <unsigned int >(std::round (((element->center () - element->width ()) - energy_offset) / energy_slope));
96+ right_roi = static_cast <unsigned int >(std::round (((element->center () + element->width ()) - energy_offset) / energy_slope));
97+
98+ if (right_roi >= n_mca_channels)
99+ {
100+ right_roi = n_mca_channels - 2 ;
101+ }
102+ if (left_roi > right_roi)
103+ {
104+ left_roi = right_roi - 1 ;
105+ }
106+
107+ size_t spec_size = (right_roi - left_roi) + 1 ;
108+ out_counts[e_itr.first ] = spectra->segment (left_roi, spec_size).sum ();
99109 }
100- if (left_roi > right_roi)
110+ else
101111 {
102- left_roi = right_roi - 1 ;
103- }
104112
105- size_t spec_size = (right_roi - left_roi) + 1 ;
106- out_counts[e_itr.first ] = spectra->segment (left_roi, spec_size).sum ();
113+ }
107114 }
108115 }
109116 return optimizers::OPTIMIZER_OUTCOME::CONVERGED;
Original file line number Diff line number Diff line change @@ -80,9 +80,10 @@ class DLL_EXPORT ROI_Fit_Routine: public Base_Fit_Routine<T_real>
8080 const struct Range energy_range,
8181 ArrayTr<T_real>* custom_background);
8282
83+ void set_fit_separate_lines (bool val) {_separate_lines = val;}
8384protected:
8485
85-
86+ bool _separate_lines;
8687
8788
8889private:
You can’t perform that action at this time.
0 commit comments