CbmRoot
|
Magnetic field region, corresponding to a hit triplet. More...
#include <KfFieldRegion.h>
Public Member Functions | |
FieldRegion (EFieldMode fldMode=EFieldMode::Intrpl, EFieldType fldType=EFieldType::Normal) | |
Constructor of the generic field. | |
template<typename I > | |
FieldRegion (const FieldRegion< I > &other) | |
Copy constructor. | |
FieldRegion (const FieldValue< T > &b0, const T &z0, const FieldValue< T > &b1, const T &z1, const FieldValue< T > &b2, const T &z2) | |
Constructor for the interpolated field region. | |
FieldRegion (EFieldType fieldType, const detail::FieldRegionBase< T, EFieldMode::Intrpl > &fld) | |
Constructor for the interpolated field region. | |
FieldRegion (EFieldType fieldType, const FieldFn_t &fieldFn) | |
Constructor for the field region with the original field function. | |
~FieldRegion ()=default | |
Destructor. | |
FieldRegion & | operator= (const FieldRegion &other)=default |
Copy assignment operator. | |
FieldValue< T > | Get (const T &x, const T &y, const T &z) const |
Gets the field value in a spatial point on the track. | |
std::tuple< T, T, T > | GetDoubleIntegrals (const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2) const |
Gets the double integrals of the field along the track. | |
EFieldMode | GetFieldMode () const |
Gets field mode. | |
EFieldType | GetFieldType () const |
Gets the field type. | |
void | Set (const FieldValue< T > &b0, const T &z0, const FieldValue< T > &b1, const T &z1, const FieldValue< T > &b2, const T &z2) |
Interpolates the field by three nodal points with the second order polynomial. | |
void | SetFieldType (EFieldType fldType) |
Sets the field type. | |
void | Shift (const T &z) |
Shifts the coefficients to another first z-coordinate. | |
void | CheckConsistency () const |
Consistency checker. | |
std::string | ToString (int indentLevel=0, int verbose=1) const |
String representation of the class content. | |
const auto & | GetIntrplField () const |
Private Member Functions | |
template<class Archive > | |
void | load (Archive &ar, const unsigned int) |
Serialization load method. | |
template<class Archive > | |
void | save (Archive &ar, const unsigned int) const |
Serialization save method. | |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
Serialization method. | |
Private Attributes | |
std::optional< detail::FieldRegionBase< T, EFieldMode::Intrpl > > | foFldIntrpl {std::nullopt} |
std::optional< detail::FieldRegionBase< T, EFieldMode::Orig > > | foFldOrig {std::nullopt} |
EFieldType | fFieldType {EFieldType::Null} |
Field type in a given region. | |
EFieldMode | fFieldMode |
Field mode. | |
Friends | |
template<typename > | |
class | FieldRegion |
class | boost::serialization::access |
Magnetic field region, corresponding to a hit triplet.
T | Underlying data-type |
Definition at line 257 of file KfFieldRegion.h.
|
inline |
Constructor of the generic field.
Definition at line 263 of file KfFieldRegion.h.
References cbm::algo::kf::Intrpl, and cbm::algo::kf::Orig.
|
inline |
Copy constructor.
I | Underlying floating point type of the source |
Definition at line 276 of file KfFieldRegion.h.
References cbm::algo::kf::Intrpl, and cbm::algo::kf::Orig.
|
inline |
Constructor for the interpolated field region.
Definition at line 289 of file KfFieldRegion.h.
References cbm::algo::kf::Intrpl, and cbm::algo::kf::Normal.
|
inline |
Constructor for the interpolated field region.
fieldType | Type of the field |
Definition at line 302 of file KfFieldRegion.h.
References cbm::algo::kf::Intrpl.
|
inline |
Constructor for the field region with the original field function.
fieldType | Type of the field |
Definition at line 312 of file KfFieldRegion.h.
References cbm::algo::kf::Orig.
|
default |
Destructor.
void cbm::algo::kf::FieldRegion< T >::CheckConsistency | ( | ) | const |
Consistency checker.
Definition at line 214 of file KfFieldRegion.cxx.
References cbm::algo::kf::Intrpl.
|
inline |
Gets the field value in a spatial point on the track.
x | x-coordinate of the point [cm] |
y | y-coordinate of the point [cm] |
z | z-coordinate of the point [cm] |
Definition at line 331 of file KfFieldRegion.h.
|
inline |
Gets the double integrals of the field along the track.
Definition at line 337 of file KfFieldRegion.h.
Referenced by cbm::algo::kf::TrackKalmanFilter< DataT >::GetExtrapolatedXYline().
|
inline |
Gets field mode.
Definition at line 345 of file KfFieldRegion.h.
Referenced by CbmL1PFFitter::PFFieldRegion::getL1FieldRegion(), and CbmL1PFFitter::PFFieldRegion::setFromL1FieldRegion().
|
inline |
Gets the field type.
Definition at line 348 of file KfFieldRegion.h.
|
inline |
Definition at line 385 of file KfFieldRegion.h.
Referenced by CbmL1PFFitter::PFFieldRegion::getL1FieldRegion(), and CbmL1PFFitter::PFFieldRegion::setFromL1FieldRegion().
|
inlineprivate |
Serialization load method.
Definition at line 392 of file KfFieldRegion.h.
|
default |
Copy assignment operator.
|
inlineprivate |
Serialization save method.
Definition at line 404 of file KfFieldRegion.h.
|
inlineprivate |
Serialization method.
Definition at line 418 of file KfFieldRegion.h.
|
inline |
Interpolates the field by three nodal points with the second order polynomial.
b0 | Field value at z0 [kG] |
z0 | First nodal point in z-axis direction [cm] |
b1 | Field value at z1 [kG] |
z1 | Second nodal point in z-axis direction [cm] |
b2 | Field value at z2 [kG] |
z2 | Third nodal point in z-axis direction [cm] |
Definition at line 358 of file KfFieldRegion.h.
References cbm::algo::kf::FieldValue< T >::IsZero().
Referenced by cbm::algo::ca::TripletConstructor::CreateTripletsForHit(), and CbmL1PFFitter::Fit().
|
inline |
Sets the field type.
Definition at line 371 of file KfFieldRegion.h.
void cbm::algo::kf::FieldRegion< T >::Shift | ( | const T & | z | ) |
Shifts the coefficients to another first z-coordinate.
z | new z-coordinate [cm] |
Definition at line 189 of file KfFieldRegion.cxx.
References cbm::algo::kf::Intrpl.
std::string cbm::algo::kf::FieldRegion< T >::ToString | ( | int | indentLevel = 0, |
int | verbose = 1 ) const |
String representation of the class content.
intdentLevel | Indent level |
verbose | Verbosity level |
Definition at line 199 of file KfFieldRegion.cxx.
References cbm::algo::kf::Intrpl.
|
friend |
Definition at line 388 of file KfFieldRegion.h.
Definition at line 259 of file KfFieldRegion.h.
|
private |
Field mode.
Definition at line 426 of file KfFieldRegion.h.
|
private |
Field type in a given region.
Definition at line 425 of file KfFieldRegion.h.
|
private |
Definition at line 423 of file KfFieldRegion.h.
|
private |
Definition at line 424 of file KfFieldRegion.h.