This class performs a fit of a linear combination of base functions to a set of sample points.
More...
#include <BaseFunctionFitter.h>
|
| | BaseFunctionFitter () |
| | default constructor, the number of fit parameters will be set to 5
|
| | BaseFunctionFitter (const unsigned nb_coefficients) |
| | constructor, the number of fit parameters is set to nb_coefficients
|
| int | number_of_coefficients () const |
| | get the number of fit parameters (coefficients) of the base functions to be fitted
|
| const Amg::VectorX & | coefficients () const |
| | get the coefficients determined by the fit to the sample points
|
| void | set_number_of_coefficients (const unsigned nb_coefficients) |
| | set the number of fit parameters (coefficients) of the base functions to nb_coefficients
|
| void | fit_parameters (const std::vector< SamplePoint > &sample_point, const unsigned int first_point, const unsigned int last_point, const BaseFunction &base_function) |
| | perform a fit of the base functions (base_function) to the sample points as given in "sample_point" starting at the sample point first_point and stopping at the point last_point, 1 <= first_point < last_point <= size of the sample_point vector; the method returns true, if the fit failed
|
|
| void | init () |
| | default initialization method
|
| void | init (const unsigned nb_coefficients) |
| | initialization method: the number of fit parameters (coefficients) is set to nb_coefficients
|
This class performs a fit of a linear combination of base functions to a set of sample points.
Definition at line 39 of file BaseFunctionFitter.h.
◆ BaseFunctionFitter() [1/2]
| MuonCalib::BaseFunctionFitter::BaseFunctionFitter |
( |
| ) |
|
default constructor, the number of fit parameters will be set to 5
Definition at line 10 of file BaseFunctionFitter.cxx.
10 {
12 }
void init()
default initialization method
◆ BaseFunctionFitter() [2/2]
| MuonCalib::BaseFunctionFitter::BaseFunctionFitter |
( |
const unsigned | nb_coefficients | ) |
|
constructor, the number of fit parameters is set to nb_coefficients
Definition at line 13 of file BaseFunctionFitter.cxx.
13 {
14 init(nb_coefficients);
15 }
◆ coefficients()
| const Amg::VectorX & MuonCalib::BaseFunctionFitter::coefficients |
( |
| ) |
const |
get the coefficients determined by the fit to the sample points
Definition at line 30 of file BaseFunctionFitter.cxx.
30 {
32 }
Amg::VectorX m_alpha
coefficients of the base functions after the fit
◆ fit_parameters()
| void MuonCalib::BaseFunctionFitter::fit_parameters |
( |
const std::vector< SamplePoint > & | sample_point, |
|
|
const unsigned int | first_point, |
|
|
const unsigned int | last_point, |
|
|
const BaseFunction & | base_function ) |
perform a fit of the base functions (base_function) to the sample points as given in "sample_point" starting at the sample point first_point and stopping at the point last_point, 1 <= first_point < last_point <= size of the sample_point vector; the method returns true, if the fit failed
Definition at line 36 of file BaseFunctionFitter.cxx.
39 {
40 if (first_point<1 || first_point>sample_point.size()) {
41 THROW_EXCEPTION(
"BaseFunctionFitter::fit_parameters() - ERROR: Illegal first point "
42 <<first_point<<", must be >=1 and <="<<sample_point.size());
43 }
44 if (last_point<first_point || last_point>sample_point.size()) {
45 THROW_EXCEPTION(
"BaseFunctionFitter::fit_parameters() - ERROR: Illegal last point "<<last_point
46 <<", must be >="<<first_point<<" and <="<<sample_point.size());
47 }
48
50
53 for (
unsigned k=first_point-1;
k<last_point; ++
k) {
54 m_A.fillSymmetric(j,p,
m_A(j,p)+base_function.value(j,sample_point[k].x1())
55 *base_function.value(p,sample_point[k].x1()) /
56 std::pow(sample_point[k].error(), 2));
57 }
58 }
59 for (
unsigned k=first_point-1;
k<last_point;
k++) {
60 m_b[j] =
m_b[j]+sample_point[
k].x2()* base_function.value(j, sample_point[k].
x1()) /
61 std::pow(sample_point[k].
error(), 2);
62 }
63 }
64
66 }
Amg::VectorX m_b
m_A*m_alpha = m_b;
Amg::MatrixX m_A
coefficient matrix for the fit
unsigned int m_nb_coefficients
number of coefficients
#define THROW_EXCEPTION(MESSAGE)
◆ init() [1/2]
| void MuonCalib::BaseFunctionFitter::init |
( |
| ) |
|
|
private |
◆ init() [2/2]
| void MuonCalib::BaseFunctionFitter::init |
( |
const unsigned | nb_coefficients | ) |
|
|
private |
initialization method: the number of fit parameters (coefficients) is set to nb_coefficients
Definition at line 18 of file BaseFunctionFitter.cxx.
18 {
26 }
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
◆ number_of_coefficients()
| int MuonCalib::BaseFunctionFitter::number_of_coefficients |
( |
| ) |
const |
get the number of fit parameters (coefficients) of the base functions to be fitted
Definition at line 27 of file BaseFunctionFitter.cxx.
◆ set_number_of_coefficients()
| void MuonCalib::BaseFunctionFitter::set_number_of_coefficients |
( |
const unsigned | nb_coefficients | ) |
|
set the number of fit parameters (coefficients) of the base functions to nb_coefficients
Definition at line 33 of file BaseFunctionFitter.cxx.
33 {
34 init(nb_coefficients);
35 }
◆ m_A
◆ m_alpha
◆ m_b
◆ m_nb_coefficients
| unsigned int MuonCalib::BaseFunctionFitter::m_nb_coefficients {0} |
|
private |
The documentation for this class was generated from the following files: