CbmRoot
|
A magnetic field approximation on the two-dimensional plane. More...
#include <KfFieldSlice.h>
Public Member Functions | |
FieldSlice ()=default | |
Default constructor. | |
FieldSlice (const FieldFn_t &fieldFn, double xMax, double yMax, double zRef) | |
Constructor from parameters. | |
template<typename I > | |
FieldSlice (const FieldSlice< I > &other) | |
Copy constructor. | |
~FieldSlice ()=default | |
Destructor. | |
FieldSlice & | operator= (const FieldSlice &other)=default |
Copy assignment operator. | |
constexpr FieldValue< T > | GetFieldValue (const T &x, const T &y) const |
Gets field value at a point on the transverse plane. | |
constexpr FieldValue< T > | GetFieldValueForLine (const TrackParam< T > &trkPar) const |
Gets field value for the intersection with a straight track. | |
const T & | GetZref () const |
Gets reference z-coordinate of the slice [cm]. | |
std::string | ToString (int indentLevel=0, int verbose=1) const |
String representation of the class content. | |
void | CheckConsistency () const |
Consistency checker. | |
Private Types | |
using | CoeffArray_t = std::array<T, kNofCoeff> |
Array of the approximation coefficients [<monomial>]. | |
Private Member Functions | |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int) |
Private Attributes | |
CoeffArray_t | fBx {{T(0.)}} |
Approximation coefficients for the x-component of the field. | |
CoeffArray_t | fBy {{T(0.)}} |
Approximation coefficients for the y-component of the field. | |
CoeffArray_t | fBz {{T(0.)}} |
Approximation coefficients for the z-component of the field. | |
T | fZref {defs::Undef<T>} |
Reference z of the coefficients [cm]. | |
Static Private Attributes | |
static constexpr int | kPolDegree {5} |
Approximation polynomial degree. | |
static constexpr int | kNofCoeff {((kPolDegree + 1) * (kPolDegree + 2)) / 2} |
Number of coefficients. | |
Friends | |
template<typename > | |
class | FieldSlice |
class | boost::serialization::access |
Serialization function. | |
A magnetic field approximation on the two-dimensional plane.
T | Underlying data-type |
Definition at line 31 of file KfFieldSlice.h.
|
private |
Array of the approximation coefficients [<monomial>].
Definition at line 39 of file KfFieldSlice.h.
|
default |
Default constructor.
FieldSlice::FieldSlice | ( | const FieldFn_t & | fieldFn, |
double | xMax, | ||
double | yMax, | ||
double | zRef ) |
Constructor from parameters.
fieldFn | Magnetic field function (point xyz, field xyz) |
xMax | Half-size of the slice in x-direction [cm] |
yMax | Half-size of the slice in y-direction [cm] |
zRef | Reference z-coordinate of the slice [cm] |
Definition at line 24 of file KfFieldSlice.cxx.
References cbm::algo::kf::FieldSlice< T >::kNofCoeff, x, and y.
|
inline |
Copy constructor.
I | The underlying data type of the source object |
Definition at line 55 of file KfFieldSlice.h.
|
default |
Destructor.
void FieldSlice::CheckConsistency | ( | ) | const |
Consistency checker.
Definition at line 149 of file KfFieldSlice.cxx.
References cbm::algo::kf::utils::CheckSimdVectorEquality().
|
inlineconstexpr |
Gets field value at a point on the transverse plane.
x | x-coordinate of the point [cm] |
y | y-coordinate of the point [cm] |
Definition at line 73 of file KfFieldSlice.h.
Referenced by CbmL1PFFitter::CalculateFieldRegion(), CbmL1PFFitter::CalculateFieldRegionAtLastPoint(), CbmL1::FieldApproxCheck(), cbm::algo::ca::TrackExtender::FindMoreHits(), cbm::algo::ca::TripletConstructor::FindTriplets(), CbmL1PFFitter::Fit(), cbm::algo::ca::TrackExtender::FitBranchFast(), cbm::algo::ca::TrackFitter::FitCaTracks(), and CbmL1PFFitter::GetChiToVertex().
|
inlineconstexpr |
Gets field value for the intersection with a straight track.
trackParam | Track parameter set |
Definition at line 84 of file KfFieldSlice.h.
References cbm::algo::kf::TrackParamBase< T >::GetTx(), cbm::algo::kf::TrackParamBase< T >::GetTy(), cbm::algo::kf::TrackParamBase< T >::GetX(), cbm::algo::kf::TrackParamBase< T >::GetY(), and cbm::algo::kf::TrackParamBase< T >::GetZ().
|
inline |
Gets reference z-coordinate of the slice [cm].
Definition at line 91 of file KfFieldSlice.h.
|
default |
Copy assignment operator.
|
inlineprivate |
Definition at line 105 of file KfFieldSlice.h.
std::string FieldSlice::ToString | ( | int | indentLevel = 0, |
int | verbose = 1 ) const |
String representation of the class content.
intdentLevel | Indent level |
verbose | Verbosity level |
Definition at line 113 of file KfFieldSlice.cxx.
References cbm::algo::kf::utils::simd::Cast(), and x.
|
friend |
Serialization function.
Definition at line 103 of file KfFieldSlice.h.
Definition at line 33 of file KfFieldSlice.h.
|
private |
Approximation coefficients for the x-component of the field.
Definition at line 113 of file KfFieldSlice.h.
|
private |
Approximation coefficients for the y-component of the field.
Definition at line 114 of file KfFieldSlice.h.
|
private |
Approximation coefficients for the z-component of the field.
Definition at line 115 of file KfFieldSlice.h.
|
private |
Reference z of the coefficients [cm].
Definition at line 116 of file KfFieldSlice.h.
|
staticconstexprprivate |
Number of coefficients.
Definition at line 36 of file KfFieldSlice.h.
Referenced by cbm::algo::kf::FieldSlice< T >::FieldSlice().
|
staticconstexprprivate |
Approximation polynomial degree.
Definition at line 35 of file KfFieldSlice.h.