Template Class SingleFreeTrackParameters

Class Documentation

template<class ChargePolicy>
class Acts::SingleFreeTrackParameters

Free track parameters not bound to a surface.

This is a base class for neutral and charged free parameters. All parameters and the corresponding covariance matrix is stored in global coordinates. It is assumed that the order of the parameters (and thereby the order of the entries of the covariance as well) is given as (position_x, position_y, position_z, time, direction_x, direction_y, direction_z, charge / |momentum|).

Note

It is assumed that a charged particle has a charge of +/-1

Template Parameters
  • ChargePolicy: Selection type if the particle is charged or neutral

Public Types

using CovarianceMatrix = FreeSymMatrix
using ParametersVector = FreeVector
using Scalar = FreeParametersScalar

Public Functions

template<typename T = ChargePolicy, std::enable_if_t<std::is_same<T, ChargedPolicy>::value, int> = 0>
SingleFreeTrackParameters(std::optional<CovarianceMatrix> cov, const ParametersVector &parValues)

Construct track parameters for charged particles.

Template Parameters
  • T: Type of the charge policy (ChargedPolicy)

Parameters
  • [in] cov: The covariance matrix

  • [in] parValues: Vector with parameter values

template<typename T = ChargePolicy, std::enable_if_t<std::is_same<T, NeutralPolicy>::value, int> = 0>
SingleFreeTrackParameters(std::optional<CovarianceMatrix> cov, const ParametersVector &parValues)

Construct track parameters for neutral particles.

Template Parameters
  • T: Type of the charge policy (NeutralPolicy)

Parameters
  • [in] cov: The covariance matrix

  • [in] parValues: Vector with parameter values

Scalar charge() const

retrieve electric charge

Return

value of electric charge

const std::optional<CovarianceMatrix> &covariance() const

Access covariance matrix of track parameters.

Note

The ownership of the covariance matrix is not transferred with this call.

See

ParameterSet::getCovariance

template<FreeParametersIndices kIndex>
Scalar get() const

Access to a single parameter.

Return

Value of the requested parameter

Template Parameters
  • kIndex: Identifier of the parameter index which will be retrieved

const FullFreeParameterSet &getParameterSet() const

access to the internally stored FreeParameterSet

Return

FreeParameterSet object holding parameter values and their covariance matrix

Vector3D momentum() const

access momentum in global coordinate system

Return

3D vector with global momentum

bool operator!=(const SingleFreeTrackParameters &rhs) const

inequality operator

Return

not (*this == rhs)

bool operator==(const SingleFreeTrackParameters &rhs) const

Equality operator.

Return

Boolean value whether the objects can be casted into each other and the content of the member variables is the same

Parameters
  • [in] rhs: Object to compare *this to

ParametersVector parameters() const

Access all parameters.

Return

Vector containing the store parameters

Vector3D position() const

access position in global coordinate system

Return

3D vector with global position

template<FreeParametersIndices kIndex>
void set(const GeometryContext&, Scalar newValue)

Update of the parameterisation.

Note

The context is not used here but makes the API consistent with SingleCurvilinearTrackParameters and SingleBoundTrackParameters

Parameters
  • gctx: The current geometry context object, e.g. alignment

  • newValue: The new updaed value

Template Parameters
  • kIndex: Identifier of the parameter index which will be set

Scalar time() const

retrieve time

Return

value of time

template<FreeParametersIndices kIndex>
Scalar uncertainty() const

Access track parameter uncertainty.

Return

Value of the requested parameter uncertainty

Template Parameters
  • kIndex: Identifier of the uncertainty index which will be retrieved