Skip to content

Commit fcb1e29

Browse files
author
Arthur Glowacki
committed
Started working on adding ROI per K,L,M lines
1 parent 067f3c0 commit fcb1e29

2 files changed

Lines changed: 19 additions & 11 deletions

File tree

src/fitting/routines/roi_fit_routine.cpp

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff 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;

src/fitting/routines/roi_fit_routine.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff 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;}
8384
protected:
8485

85-
86+
bool _separate_lines;
8687

8788

8889
private:

0 commit comments

Comments
 (0)