CbmRoot
Loading...
Searching...
No Matches
cbm::algo::kf::FieldRegion< T > Class Template Reference

Magnetic field region, corresponding to a hit triplet. More...

#include <KfFieldRegion.h>

Inheritance diagram for cbm::algo::kf::FieldRegion< T >:
[legend]

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.
 
FieldRegionoperator= (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
 

Detailed Description

template<typename T>
class cbm::algo::kf::FieldRegion< T >

Magnetic field region, corresponding to a hit triplet.

Template Parameters
TUnderlying data-type

Definition at line 257 of file KfFieldRegion.h.

Constructor & Destructor Documentation

◆ FieldRegion() [1/5]

template<typename T >
cbm::algo::kf::FieldRegion< T >::FieldRegion ( EFieldMode fldMode = EFieldMode::Intrpl,
EFieldType fldType = EFieldType::Normal )
inline

Constructor of the generic field.

Definition at line 263 of file KfFieldRegion.h.

References cbm::algo::kf::Intrpl, and cbm::algo::kf::Orig.

◆ FieldRegion() [2/5]

template<typename T >
template<typename I >
cbm::algo::kf::FieldRegion< T >::FieldRegion ( const FieldRegion< I > & other)
inline

Copy constructor.

Template Parameters
IUnderlying floating point type of the source

Definition at line 276 of file KfFieldRegion.h.

References cbm::algo::kf::Intrpl, and cbm::algo::kf::Orig.

◆ FieldRegion() [3/5]

template<typename T >
cbm::algo::kf::FieldRegion< T >::FieldRegion ( const FieldValue< T > & b0,
const T & z0,
const FieldValue< T > & b1,
const T & z1,
const FieldValue< T > & b2,
const T & z2 )
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.

◆ FieldRegion() [4/5]

template<typename T >
cbm::algo::kf::FieldRegion< T >::FieldRegion ( EFieldType fieldType,
const detail::FieldRegionBase< T, EFieldMode::Intrpl > & fld )
inline

Constructor for the interpolated field region.

Parameters
fieldTypeType of the field

Definition at line 302 of file KfFieldRegion.h.

References cbm::algo::kf::Intrpl.

◆ FieldRegion() [5/5]

template<typename T >
cbm::algo::kf::FieldRegion< T >::FieldRegion ( EFieldType fieldType,
const FieldFn_t & fieldFn )
inline

Constructor for the field region with the original field function.

Parameters
fieldTypeType of the field

Definition at line 312 of file KfFieldRegion.h.

References cbm::algo::kf::Orig.

◆ ~FieldRegion()

template<typename T >
cbm::algo::kf::FieldRegion< T >::~FieldRegion ( )
default

Destructor.

Member Function Documentation

◆ CheckConsistency()

template<typename T >
void cbm::algo::kf::FieldRegion< T >::CheckConsistency ( ) const

Consistency checker.

Definition at line 214 of file KfFieldRegion.cxx.

References cbm::algo::kf::Intrpl.

◆ Get()

template<typename T >
FieldValue< T > cbm::algo::kf::FieldRegion< T >::Get ( const T & x,
const T & y,
const T & z ) const
inline

Gets the field value in a spatial point on the track.

Parameters
xx-coordinate of the point [cm]
yy-coordinate of the point [cm]
zz-coordinate of the point [cm]
Note
The x and y coordinates are ignored, if the interpolated field is used

Definition at line 331 of file KfFieldRegion.h.

References x, and y.

◆ GetDoubleIntegrals()

template<typename T >
std::tuple< T, T, T > cbm::algo::kf::FieldRegion< T >::GetDoubleIntegrals ( const T & x1,
const T & y1,
const T & z1,
const T & x2,
const T & y2,
const T & z2 ) const
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().

◆ GetFieldMode()

template<typename T >
EFieldMode cbm::algo::kf::FieldRegion< T >::GetFieldMode ( ) const
inline

◆ GetFieldType()

template<typename T >
EFieldType cbm::algo::kf::FieldRegion< T >::GetFieldType ( ) const
inline

Gets the field type.

Definition at line 348 of file KfFieldRegion.h.

◆ GetIntrplField()

template<typename T >
const auto & cbm::algo::kf::FieldRegion< T >::GetIntrplField ( ) const
inline

◆ load()

template<typename T >
template<class Archive >
void cbm::algo::kf::FieldRegion< T >::load ( Archive & ar,
const unsigned int  )
inlineprivate

Serialization load method.

Definition at line 392 of file KfFieldRegion.h.

◆ operator=()

template<typename T >
FieldRegion & cbm::algo::kf::FieldRegion< T >::operator= ( const FieldRegion< T > & other)
default

Copy assignment operator.

◆ save()

template<typename T >
template<class Archive >
void cbm::algo::kf::FieldRegion< T >::save ( Archive & ar,
const unsigned int  ) const
inlineprivate

Serialization save method.

Definition at line 404 of file KfFieldRegion.h.

◆ serialize()

template<typename T >
template<class Archive >
void cbm::algo::kf::FieldRegion< T >::serialize ( Archive & ar,
const unsigned int version )
inlineprivate

Serialization method.

Definition at line 418 of file KfFieldRegion.h.

◆ Set()

template<typename T >
void cbm::algo::kf::FieldRegion< T >::Set ( const FieldValue< T > & b0,
const T & z0,
const FieldValue< T > & b1,
const T & z1,
const FieldValue< T > & b2,
const T & z2 )
inline

Interpolates the field by three nodal points with the second order polynomial.

Note
The interpolation is carried out vs. z-coordinates of the space points of the field values
Parameters
b0Field value at z0 [kG]
z0First nodal point in z-axis direction [cm]
b1Field value at z1 [kG]
z1Second nodal point in z-axis direction [cm]
b2Field value at z2 [kG]
z2Third 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().

◆ SetFieldType()

template<typename T >
void cbm::algo::kf::FieldRegion< T >::SetFieldType ( EFieldType fldType)
inline

Sets the field type.

Definition at line 371 of file KfFieldRegion.h.

◆ Shift()

template<typename T >
void cbm::algo::kf::FieldRegion< T >::Shift ( const T & z)

Shifts the coefficients to another first z-coordinate.

Parameters
znew z-coordinate [cm]

Definition at line 189 of file KfFieldRegion.cxx.

References cbm::algo::kf::Intrpl.

◆ ToString()

template<typename T >
std::string cbm::algo::kf::FieldRegion< T >::ToString ( int indentLevel = 0,
int verbose = 1 ) const

String representation of the class content.

Parameters
intdentLevelIndent level
verboseVerbosity level

Definition at line 199 of file KfFieldRegion.cxx.

References cbm::algo::kf::Intrpl.

Friends And Related Symbol Documentation

◆ boost::serialization::access

template<typename T >
friend class boost::serialization::access
friend

Definition at line 388 of file KfFieldRegion.h.

◆ FieldRegion

template<typename T >
template<typename >
friend class FieldRegion
friend

Definition at line 259 of file KfFieldRegion.h.

Member Data Documentation

◆ fFieldMode

template<typename T >
EFieldMode cbm::algo::kf::FieldRegion< T >::fFieldMode
private

Field mode.

Definition at line 426 of file KfFieldRegion.h.

◆ fFieldType

template<typename T >
EFieldType cbm::algo::kf::FieldRegion< T >::fFieldType {EFieldType::Null}
private

Field type in a given region.

Definition at line 425 of file KfFieldRegion.h.

◆ foFldIntrpl

template<typename T >
std::optional<detail::FieldRegionBase<T, EFieldMode::Intrpl> > cbm::algo::kf::FieldRegion< T >::foFldIntrpl {std::nullopt}
private

Definition at line 423 of file KfFieldRegion.h.

◆ foFldOrig

template<typename T >
std::optional<detail::FieldRegionBase<T, EFieldMode::Orig> > cbm::algo::kf::FieldRegion< T >::foFldOrig {std::nullopt}
private

Definition at line 424 of file KfFieldRegion.h.


The documentation for this class was generated from the following files: