CbmRoot
Loading...
Searching...
No Matches
cbm::algo::kf::FieldBuilder Class Reference

A builder class for kf::Field. More...

#include <KfField.h>

Classes

struct  SliceRef
 A helper structure for field slices initialization. More...
 

Public Member Functions

 FieldBuilder ()=default
 Default constructor.
 
 FieldBuilder (const FieldBuilder &)=default
 Copy constructor.
 
 ~FieldBuilder ()=default
 Destructor.
 
FieldBuilderoperator= (const FieldBuilder &)=default
 Copy assignment operator.
 
void AddSliceReference (double halfSizeX, double halfSizeY, double refZ)
 Adds a slice reference.
 
EFieldType GetFieldType () const
 Gets field type.
 
const FieldFn_tGetFieldFunction () const
 Gets field function.
 
template<typename T>
Field< T > MakeField (EFieldMode fldMode) const
 Create field.
 
void Reset ()
 Resets the instance.
 
void ResetSliceReferences ()
 Resets slicer references.
 
void SetFieldFunction (const FieldFn_t &fieldFn, EFieldType fldType)
 Sets magnetic field function.
 
void SetStep (double step=2.5)
 Sets a step for the primary vertex field region estimation.
 
void SetTarget (double x, double y, double z)
 Sets target.
 

Private Attributes

std::set< SliceReffSliceReferences
 Set of slice references.
 
FieldFn_t fFieldFn {defs::ZeroFieldFn}
 Field function (x, y, z) [cm] -> (Bx, By, Bz) [kG].
 
double fTargetStep {2.5}
 Step between nodal points for the primary vertex field estimation.
 
EFieldType fFieldType {EFieldType::Null}
 Field type.
 
std::array< double, 3 > fTarget {{defs::Undef<double>, defs::Undef<double>, defs::Undef<double>}}
 Target position.
 

Detailed Description

A builder class for kf::Field.

Definition at line 494 of file KfField.h.

Constructor & Destructor Documentation

◆ FieldBuilder() [1/2]

cbm::algo::kf::FieldBuilder::FieldBuilder ( )
default

Default constructor.

Referenced by FieldBuilder(), operator=(), and Reset().

◆ FieldBuilder() [2/2]

cbm::algo::kf::FieldBuilder::FieldBuilder ( const FieldBuilder & )
default

Copy constructor.

References FieldBuilder().

◆ ~FieldBuilder()

cbm::algo::kf::FieldBuilder::~FieldBuilder ( )
default

Destructor.

Member Function Documentation

◆ AddSliceReference()

void FieldBuilder::AddSliceReference ( double halfSizeX,
double halfSizeY,
double refZ )

Adds a slice reference.

Parameters
halfSizeXHalf-size of the slice in x-direction [cm]
halfSizeYHalf-size of the slice in y-direction [cm]
refZReference z-position of the slice [cm]

Definition at line 80 of file KfField.cxx.

References fSliceReferences.

Referenced by operator=().

◆ GetFieldFunction()

const FieldFn_t & cbm::algo::kf::FieldBuilder::GetFieldFunction ( ) const
inline

Gets field function.

Definition at line 535 of file KfField.h.

References fFieldFn.

◆ GetFieldType()

EFieldType cbm::algo::kf::FieldBuilder::GetFieldType ( ) const
inline

Gets field type.

Definition at line 532 of file KfField.h.

References fFieldType.

◆ MakeField()

template<typename T>
Field< T > cbm::algo::kf::FieldBuilder::MakeField ( EFieldMode fldMode) const

Create field.

Template Parameters
TUnderlying floating-point data type
Parameters
fldModeField mode (original or interpolated)

Definition at line 580 of file KfField.h.

References fFieldFn, fFieldType, fSliceReferences, fTarget, fTargetStep, cbm::algo::kf::GlobalField::GetFieldValue(), cbm::algo::kf::Interpolated, cbm::algo::kf::Original, and x.

◆ operator=()

FieldBuilder & cbm::algo::kf::FieldBuilder::operator= ( const FieldBuilder & )
default

Copy assignment operator.

References AddSliceReference(), and FieldBuilder().

◆ Reset()

void cbm::algo::kf::FieldBuilder::Reset ( )
inline

Resets the instance.

Definition at line 544 of file KfField.h.

References FieldBuilder().

◆ ResetSliceReferences()

void cbm::algo::kf::FieldBuilder::ResetSliceReferences ( )
inline

Resets slicer references.

Definition at line 547 of file KfField.h.

References fSliceReferences.

◆ SetFieldFunction()

void cbm::algo::kf::FieldBuilder::SetFieldFunction ( const FieldFn_t & fieldFn,
EFieldType fldType )
inline

Sets magnetic field function.

Parameters
fieldFnMagnetic field function (KF-format)

Definition at line 551 of file KfField.h.

References fFieldFn, and fFieldType.

◆ SetStep()

void cbm::algo::kf::FieldBuilder::SetStep ( double step = 2.5)
inline

Sets a step for the primary vertex field region estimation.

Parameters
stepA step between nodal points in z-axis direction [cm]

Definition at line 559 of file KfField.h.

References fTargetStep.

◆ SetTarget()

void cbm::algo::kf::FieldBuilder::SetTarget ( double x,
double y,
double z )
inline

Sets target.

Parameters
xx-coordinate of the target position [cm]
yy-coordinate of the target position [cm]
zz-coordinate of the target position [cm]

Definition at line 565 of file KfField.h.

References fTarget, x, and y.

Member Data Documentation

◆ fFieldFn

FieldFn_t cbm::algo::kf::FieldBuilder::fFieldFn {defs::ZeroFieldFn}
private

Field function (x, y, z) [cm] -> (Bx, By, Bz) [kG].

Definition at line 569 of file KfField.h.

Referenced by GetFieldFunction(), MakeField(), and SetFieldFunction().

◆ fFieldType

EFieldType cbm::algo::kf::FieldBuilder::fFieldType {EFieldType::Null}
private

Field type.

Definition at line 571 of file KfField.h.

Referenced by GetFieldType(), MakeField(), and SetFieldFunction().

◆ fSliceReferences

std::set<SliceRef> cbm::algo::kf::FieldBuilder::fSliceReferences
private

Set of slice references.

Definition at line 568 of file KfField.h.

Referenced by AddSliceReference(), MakeField(), and ResetSliceReferences().

◆ fTarget

std::array<double, 3> cbm::algo::kf::FieldBuilder::fTarget {{defs::Undef<double>, defs::Undef<double>, defs::Undef<double>}}
private

Target position.

Definition at line 574 of file KfField.h.

Referenced by MakeField(), and SetTarget().

◆ fTargetStep

double cbm::algo::kf::FieldBuilder::fTargetStep {2.5}
private

Step between nodal points for the primary vertex field estimation.

Definition at line 570 of file KfField.h.

Referenced by MakeField(), and SetStep().


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