33 : m_precisionPtr(precision_ptr)
41 : m_precisionPtr(other.m_precisionPtr)
54 std::vector<FilterChargeDeconvolution::DataPointInfoSp> data_points_info;
59 for(
auto &data_point : data_points)
65 qDebug() << data_points_info.size();
67 qDebug() << data_points_info.size();
71 qDebug() << dpi->new_mono_charge_data_point.x << dpi->z_charge;
72 new_trace.push_back(dpi->new_mono_charge_data_point);
76 data_points = std::move(new_trace);
83 std::vector<FilterChargeDeconvolution::DataPointInfoSp> &points,
88 new_dpi->data_point = data_point;
89 MzRange range1(data_point.
x + m_diffC12C13_z1, m_precisionPtr);
90 new_dpi->z1_range = std::pair<double, double>(range1.
lower(), range1.
upper());
91 MzRange range2(data_point.
x + m_diffC12C13_z2, m_precisionPtr);
92 new_dpi->z2_range = std::pair<double, double>(range2.
lower(), range2.
upper());
93 addDataPointRefByExclusion(points, new_dpi);
94 points.push_back(new_dpi);
99 std::vector<FilterChargeDeconvolution::DataPointInfoSp> &points,
103 auto i_z1 = points.begin(), end = points.end();
108 return (new_dpi->data_point.x >= dpi->z1_range.first &&
109 new_dpi->data_point.x <= dpi->z1_range.second);
114 i_z1->get()->z1_vect.push_back(new_dpi);
115 new_dpi->parent = *i_z1;
117 while(parent_z1 !=
nullptr)
119 parent_z1.get()->z1_vect.push_back(new_dpi);
120 parent_z1 = parent_z1->parent;
127 auto i_z2 = points.begin();
132 return (new_dpi->data_point.x >= dpi->z2_range.first &&
133 new_dpi->data_point.x <= dpi->z2_range.second);
138 i_z2->get()->z2_vect.push_back(new_dpi);
139 new_dpi->parent = *i_z2;
141 while(parent_z2 !=
nullptr)
143 parent_z2.get()->z2_vect.push_back(new_dpi);
144 parent_z2 = parent_z2->parent;
153 std::vector<FilterChargeDeconvolution::DataPointInfoSp> &data_points_info)
158 if(data_point_info.get()->z1_vect.size() >= 1 &&
159 data_point_info.get()->z2_vect.size() == 0)
165 data_point_info.get()->z_charge = 1;
167 else if(data_point_info.get()->z1_vect.size() == 0 &&
168 data_point_info.get()->z2_vect.size() >= 1)
174 data_point_info.get()->z_charge = 2;
176 else if(data_point_info.get()->z1_vect.size() >= 1 &&
177 data_point_info.get()->z2_vect.size() >= 1)
183 data_point_info.get()->z_charge = 2;
187 if(data_point_info.get()->z_charge == -1)
189 data_point_info.get()->z_charge = 0;
197 std::vector<FilterChargeDeconvolution::DataPointInfoSp> &data_points_info)
200 std::vector<FilterChargeDeconvolution::DataPointInfoSp>
201 deconvoluted_points_info;
205 if(data_point_info->parent ==
nullptr)
209 deconvoluted_point->z_charge = data_point_info->z_charge;
210 deconvoluted_point->new_mono_charge_data_point =
211 data_point_info->data_point;
213 if(data_point_info->z_charge == 1)
217 deconvoluted_point->data_point.y += data->data_point.y;
220 else if(data_point_info->z_charge == 2)
224 deconvoluted_point->data_point.y += data->data_point.y;
229 deconvoluted_point->new_mono_charge_data_point =
230 data_point_info->data_point;
232 deconvoluted_points_info.push_back(deconvoluted_point);
235 data_points_info = deconvoluted_points_info;
240 std::vector<FilterChargeDeconvolution::DataPointInfoSp> &data_points_info)
245 if(dpi->z_charge == 2)
247 dpi->new_mono_charge_data_point.x +=
248 dpi->new_mono_charge_data_point.x -
MHPLUS;