|
CbmRoot
|
Implementation of the polynomial field approximation. More...
#include <CbmLitFieldFitter.h>
Public Member Functions | |
| CbmLitFieldFitter (unsigned int polynomDegree) | |
| Constructor. | |
| virtual | ~CbmLitFieldFitter () |
| Destructor. | |
| template<class T> | |
| void | FitSlice (float Z, lit::parallel::LitFieldSlice< T > &slice) |
| Fits (X, Y) slice of the magnetic field at Z position. | |
| void | FitSliceScal (float Z, lit::parallel::LitFieldSlice< fscal > &slice) |
| FitSlice implementation using fscal data type. | |
| void | FitSliceVec (float Z, lit::parallel::LitFieldSlice< fvec > &slice) |
| FitSlice implementation using fvec data type. | |
| void | SetXangle (double xangle) |
| void | SetYangle (double yangle) |
| void | SetNofBinsX (int nofBinsX) |
| void | SetNofBinsY (int nofBinsY) |
| void | SetUseEllipseAcc (bool useEllipseAcc) |
Private Member Functions | |
| void | FitSlice (double Z, std::vector< double > &parBx, std::vector< double > &parBy, std::vector< double > &parBz) |
| Fit (X, Y) slice of magnetic field at Z position. | |
| void | FitSlice (const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &z, std::vector< double > &par) |
| Fit (X, Y) slice of magnetic field. | |
| void | FitSliceMy (double Z, std::vector< double > &parBx, std::vector< double > &parBy, std::vector< double > &parBz) |
| Fit (X, Y) slice of the magnetic field at Z position. | |
| const CbmLitPolynom * | GetPolynom () const |
| Return polynomial which is used for approximation. | |
Private Attributes | |
| FairField * | fField |
| double | fXangle |
| double | fYangle |
| int | fNofBinsX |
| int | fNofBinsY |
| bool | fUseEllipseAcc |
| unsigned int | fPolynomDegree |
| CbmLitPolynom * | fPolynom |
Implementation of the polynomial field approximation.
Class performs approximation of magnetic field using 0-9 degree polynomial. MINUIT is used for minimization. Also custom LSM fit is implemented for comparison.
Definition at line 65 of file CbmLitFieldFitter.h.
| CbmLitFieldFitter::CbmLitFieldFitter | ( | unsigned int | polynomDegree | ) |
Constructor.
| [in] | polynomDegree | Polynomial degree to be used for field approximation. |
Definition at line 775 of file CbmLitFieldFitter.cxx.
References fField, fNofBinsX, fNofBinsY, fPolynom, fPolynomDegree, fUseEllipseAcc, fXangle, and fYangle.
|
virtual |
Destructor.
Definition at line 800 of file CbmLitFieldFitter.cxx.
|
private |
Fit (X, Y) slice of magnetic field.
| [in] | x | Vector with X coordinates. |
| [in] | y | Vector with y coordinates. |
| [in] | z | Vector with field values. |
| [out] | par | Output vector with polynomial coefficients. |
Definition at line 855 of file CbmLitFieldFitter.cxx.
References fPolynom, CbmLitPolynom::GetNofCoefficients(), FCNPolynom::GetPolynom(), Cbm::ToString(), x, and y.
|
private |
Fit (X, Y) slice of magnetic field at Z position.
| [in] | Z | Z position of the slice. |
| [out] | parBx | Output vector with polynomial coefficients for Bx. |
| [out] | parBy | Output vector with polynomial coefficients for By. |
| [out] | parBz | Output vector with polynomial coefficients for Bz. |
Definition at line 806 of file CbmLitFieldFitter.cxx.
References fField, FitSlice(), fNofBinsX, fNofBinsY, fUseEllipseAcc, fXangle, fYangle, pos, x, and y.
|
inline |
Fits (X, Y) slice of the magnetic field at Z position.
| [in] | Z | Z position of the slice. |
| [out] | slice | Output approximated field slice. |
Definition at line 84 of file CbmLitFieldFitter.h.
References FitSlice(), lit::parallel::LitFieldSlice< T >::SetCoefficients(), and lit::parallel::LitFieldSlice< T >::SetZ().
Referenced by FitSlice(), FitSlice(), FitSliceScal(), and FitSliceVec().
|
private |
Fit (X, Y) slice of the magnetic field at Z position.
| [in] | Z | Z position of the slice. |
| [out] | parBx | Output vector with polynomial coefficients for Bx. |
| [out] | parBy | Output vector with polynomial coefficients for By. |
| [out] | parBz | Output vector with polynomial coefficients for Bz. |
Definition at line 885 of file CbmLitFieldFitter.cxx.
| void CbmLitFieldFitter::FitSliceScal | ( | float | Z, |
| lit::parallel::LitFieldSlice< fscal > & | slice ) |
FitSlice implementation using fscal data type.
Definition at line 802 of file CbmLitFieldFitter.cxx.
References FitSlice().
| void CbmLitFieldFitter::FitSliceVec | ( | float | Z, |
| lit::parallel::LitFieldSlice< fvec > & | slice ) |
FitSlice implementation using fvec data type.
Definition at line 804 of file CbmLitFieldFitter.cxx.
References FitSlice().
|
inlineprivate |
Return polynomial which is used for approximation.
Definition at line 148 of file CbmLitFieldFitter.h.
References fPolynom.
|
inline |
Definition at line 111 of file CbmLitFieldFitter.h.
References fNofBinsX.
|
inline |
Definition at line 112 of file CbmLitFieldFitter.h.
References fNofBinsY.
|
inline |
Definition at line 113 of file CbmLitFieldFitter.h.
References fUseEllipseAcc.
|
inline |
Definition at line 109 of file CbmLitFieldFitter.h.
References fXangle.
|
inline |
Definition at line 110 of file CbmLitFieldFitter.h.
References fYangle.
|
private |
Definition at line 151 of file CbmLitFieldFitter.h.
Referenced by CbmLitFieldFitter(), and FitSlice().
|
private |
Definition at line 156 of file CbmLitFieldFitter.h.
Referenced by CbmLitFieldFitter(), FitSlice(), and SetNofBinsX().
|
private |
Definition at line 157 of file CbmLitFieldFitter.h.
Referenced by CbmLitFieldFitter(), FitSlice(), and SetNofBinsY().
|
private |
Definition at line 162 of file CbmLitFieldFitter.h.
Referenced by CbmLitFieldFitter(), FitSlice(), and GetPolynom().
|
private |
Definition at line 161 of file CbmLitFieldFitter.h.
Referenced by CbmLitFieldFitter(), and FitSliceMy().
|
private |
Definition at line 159 of file CbmLitFieldFitter.h.
Referenced by CbmLitFieldFitter(), FitSlice(), and SetUseEllipseAcc().
|
private |
Definition at line 153 of file CbmLitFieldFitter.h.
Referenced by CbmLitFieldFitter(), FitSlice(), FitSliceMy(), and SetXangle().
|
private |
Definition at line 154 of file CbmLitFieldFitter.h.
Referenced by CbmLitFieldFitter(), FitSlice(), FitSliceMy(), and SetYangle().