8 #include "GaudiKernel/MsgStream.h"
25 std::vector<Amg::Vector3D> points(3);
26 std::vector<Amg::Vector3D>
errors(3);
85 double loc_x{0.0}, loc_y{0.0};
127 return MTStraightLine(point_1, point_2 - point_1, null_vec, null_vec);
136 void CurvedLine::init(std::vector<Amg::Vector3D>& points, std::vector<Amg::Vector3D>& x_and_y_errors) {
141 if (points.size() < 3) {
143 log << MSG::ERROR <<
"Class CurvedLine, method init: Not enough points given, must be at least 3 points!" <<
endmsg;
153 std::vector<SamplePoint> sample_points(points.size());
161 for (
unsigned int k = 0;
k < points.size();
k++) {
162 sample_points[
k].set_x1(points[
k].
z());
163 sample_points[
k].set_x2(points[
k].
x());
164 sample_points[
k].set_error(x_and_y_errors[
k].
x());
166 fitter.set_number_of_coefficients(2);
167 fitter.fit_parameters(sample_points, 1, sample_points.size(), legendre);
171 for (
unsigned int k = 0;
k < points.size();
k++) {
172 sample_points[
k].set_x1(points[
k].
z());
173 sample_points[
k].set_x2(points[
k].
y());
174 sample_points[
k].set_error(x_and_y_errors[
k].
y());
176 fitter.set_number_of_coefficients(3);
177 fitter.fit_parameters(sample_points, 1, sample_points.size(), legendre);