|
CbmRoot
|
Magnetic field region, corresponding to a hit triplet. More...
#include <KfFieldRegion.h>
Public Types | |
| template<EFieldMode Mode> | |
| using | ConcreteFieldRegion_t = typename detail::ConcreteFieldRegion<T, Mode> |
| using | Interpolated_t = ConcreteFieldRegion_t<EFieldMode::Interpolated> |
| using | Original_t = ConcreteFieldRegion_t<EFieldMode::Original> |
| using | FieldRegionVariant_t = typename std::variant<Interpolated_t, Original_t> |
Public Member Functions | |
| FieldRegion ()=default | |
| Default constructor. | |
| FieldRegion (const FieldRegion &)=default | |
| Copy constructor. | |
| FieldRegion (FieldRegion &&)=default | |
| Move constructor. | |
| FieldRegion (const FieldValue< T > &b0, const FieldValue< T > &b1, const FieldValue< T > &b2) | |
| Constructor for interpolated field. | |
| FieldRegion (EFieldType type, const FieldFn_t &fieldFn) | |
| Constructor for original field. | |
| ~FieldRegion ()=default | |
| Constructor from a concrete field. | |
| FieldRegion & | operator= (const FieldRegion &)=default |
| Copy assignment operator. | |
| FieldRegion & | operator= (FieldRegion &&)=default |
| Move assignment operator. | |
| FieldValue< T > | Get (T x, T y, T z) const |
| Gets the field value in a spatial point on the track. | |
| template<EFieldMode FieldMode> | |
| ConcreteFieldRegion_t< FieldMode > * | GetConcrete () |
| Gets a pointer to the concrete field instance (mutable access) | |
| template<EFieldMode FieldMode> | |
| const ConcreteFieldRegion_t< FieldMode > * | GetConcrete () const |
| Gets a pointer to the concrete field instance (constant access) | |
| std::tuple< T, T, T > | GetDoubleIntegrals (T x1, T y1, T z1, T x2, T y2, T z2) const |
| Gets the double integrals of the field along the track. | |
| EFieldMode | GetFieldMode () const |
| Gets field mode. | |
| EFieldType | GetFieldType () const |
| Gets field type. | |
| void | Set (const FieldValue< T > &b0, const FieldValue< T > &b1, const FieldValue< T > &b2) |
| Interpolates the field by three nodal points with the second order polynomial. | |
| void | SetFieldType (EFieldType type) |
| Sets the field type. | |
| void | Shift (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. | |
Static Public Member Functions | |
| template<typename I> | |
| static FieldRegion | CopyConvert (const FieldRegion< I > &other) |
| Creates a converted copy of the field with a different floating point type. | |
| template<EFieldMode FieldMode, typename... Args> | |
| static constexpr FieldRegion | Create (Args... args) |
| Creates a field region. | |
| template<typename... Args> | |
| static constexpr FieldRegion | Create (EFieldMode mode, Args... args) |
| Creates a field region. | |
Private Member Functions | |
| template<typename I, EFieldMode FieldMode> | |
| FieldRegion (const FieldRegion< I > &other, Tag< FieldMode >) | |
| Constructor from a field region with another floating point type. | |
| 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) |
Private Attributes | |
| FieldRegionVariant_t | fFrVariant |
| A variant of concrete field region. | |
Friends | |
| template<typename> | |
| class | FieldRegion |
| class | boost::serialization::access |
| Serialization method. | |
Magnetic field region, corresponding to a hit triplet.
| T | Underlying data-type |
Definition at line 307 of file KfFieldRegion.h.
| using cbm::algo::kf::FieldRegion< T >::ConcreteFieldRegion_t = typename detail::ConcreteFieldRegion<T, Mode> |
Definition at line 313 of file KfFieldRegion.h.
| using cbm::algo::kf::FieldRegion< T >::FieldRegionVariant_t = typename std::variant<Interpolated_t, Original_t> |
Definition at line 316 of file KfFieldRegion.h.
| using cbm::algo::kf::FieldRegion< T >::Interpolated_t = ConcreteFieldRegion_t<EFieldMode::Interpolated> |
Definition at line 314 of file KfFieldRegion.h.
| using cbm::algo::kf::FieldRegion< T >::Original_t = ConcreteFieldRegion_t<EFieldMode::Original> |
Definition at line 315 of file KfFieldRegion.h.
|
default |
Default constructor.
|
default |
Copy constructor.
References FieldRegion.
|
default |
Move constructor.
References FieldRegion.
|
inline |
Constructor for interpolated field.
| b0 | Field value at the first nodal point [kG] |
| b1 | Field value at the second nodal point [kG] |
| b2 | Field value at the third nodal point [kG] |
Definition at line 331 of file KfFieldRegion.h.
References fFrVariant.
|
inline |
Constructor for original field.
| type | Field type |
| fieldFn | External magnetic field function |
Definition at line 339 of file KfFieldRegion.h.
References fFrVariant.
|
default |
Constructor from a concrete field.
Destructor
|
inlineprivate |
Constructor from a field region with another floating point type.
| I | Underlying floating point type of another field region |
| FieldMode | Mode of the another field region |
Definition at line 490 of file KfFieldRegion.h.
References fFrVariant, and FieldRegion.
|
inline |
|
inlinestatic |
Creates a converted copy of the field with a different floating point type.
| I | underlying type of the class |
| other | A source field of different type |
Definition at line 359 of file KfFieldRegion.h.
References fFrVariant, and FieldRegion.
Referenced by cbm::algo::ca::TripletConstructorSW::FitTriplets().
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
Creates a field region.
| mode | Field mode |
| args | Arguments to be passed to a concrete constructor |
Definition at line 425 of file KfFieldRegion.h.
References FieldRegion, cbm::algo::kf::Interpolated, and cbm::algo::kf::Original.
|
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 371 of file KfFieldRegion.h.
References fFrVariant, x, and y.
Referenced by cbm::kf::CreateKfParticle().
|
inline |
Gets a pointer to the concrete field instance (mutable access)
| FieldMode | Field mode |
Definition at line 380 of file KfFieldRegion.h.
References fFrVariant.
Referenced by CbmL1PFFitter::PFFieldRegion::getL1FieldRegion(), and CbmL1PFFitter::PFFieldRegion::setFromL1FieldRegion().
|
inline |
Gets a pointer to the concrete field instance (constant access)
| FieldMode | Field mode |
Definition at line 389 of file KfFieldRegion.h.
References fFrVariant.
|
inline |
Gets the double integrals of the field along the track.
Definition at line 395 of file KfFieldRegion.h.
References fFrVariant.
|
inline |
|
inline |
|
inlineprivate |
|
default |
Copy assignment operator.
References FieldRegion.
|
default |
Move assignment operator.
References FieldRegion.
|
inlineprivate |
|
inlineprivate |
Definition at line 521 of file KfFieldRegion.h.
|
inline |
Interpolates the field by three nodal points with the second order polynomial.
Definition at line 440 of file KfFieldRegion.h.
References fFrVariant, and cbm::algo::kf::Interpolated.
Referenced by cbm::algo::ca::TripletConstructor::CreateTripletsForHit(), and CbmL1PFFitter::Fit().
|
inline |
|
inline |
Shifts the coefficients to another first z-coordinate.
| z | new z-coordinate [cm] |
Definition at line 459 of file KfFieldRegion.h.
References fFrVariant, and cbm::algo::kf::Interpolated.
|
inline |
String representation of the class content.
| intdentLevel | Indent level |
| verbose | Verbosity level |
Definition at line 479 of file KfFieldRegion.h.
References fFrVariant.
|
friend |
Serialization method.
Definition at line 519 of file KfFieldRegion.h.
Definition at line 309 of file KfFieldRegion.h.
References FieldRegion.
Referenced by CopyConvert(), Create(), Create(), FieldRegion, FieldRegion(), FieldRegion(), FieldRegion(), operator=(), and operator=().
|
private |
A variant of concrete field region.
Definition at line 526 of file KfFieldRegion.h.
Referenced by CheckConsistency(), CopyConvert(), FieldRegion(), FieldRegion(), FieldRegion(), Get(), GetConcrete(), GetConcrete(), GetDoubleIntegrals(), GetFieldMode(), GetFieldType(), load(), save(), Set(), SetFieldType(), Shift(), and ToString().