CbmRoot
Loading...
Searching...
No Matches
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.

◆ FieldBuilder() [2/2]

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

Copy constructor.

◆ ~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.

◆ GetFieldFunction()

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

Gets field function.

Definition at line 535 of file KfField.h.

◆ GetFieldType()

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

Gets field type.

Definition at line 532 of file KfField.h.

◆ 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.

◆ operator=()

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

Copy assignment operator.

◆ Reset()

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

Resets the instance.

Definition at line 544 of file KfField.h.

◆ ResetSliceReferences()

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

Resets slicer references.

Definition at line 547 of file KfField.h.

◆ 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.

◆ 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.

◆ 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.

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.

◆ fFieldType

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

Field type.

Definition at line 571 of file KfField.h.

◆ fSliceReferences

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

Set of slice references.

Definition at line 568 of file KfField.h.

◆ 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.

◆ 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.


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