Template Class Measurement

Class Documentation

template<typename source_link_t, ParID_t... params>
class Acts::Measurement

base class for Measurements

This class describes the measurement of track parameters at a certain Surface in the TrackingGeometry.

The measurement is in local parameters and will not provide localToGlobal information. It is thus free from any Context.

Template Parameters
  • source_link_t: the templated class that allows to link back to the source used to create this measurement, this can simply be an identifier or an extended object that allows to navigate back to the original source. The source link is necessary when e.g. calibrating the object or in other circumstances where the pure mathematical view of a measurement is not sufficient. The name link indicates that there is a relationship to a unique source object, i.e. if a measurement appears on several tracks, then there must be a uniquely identifyable common source for those.

Template Parameters
  • Identifier: identification object for this measurement

  • params: parameter pack containing the measured parameters

Public Types

using CovarianceMatrix = typename ParSet_t::CovarianceMatrix

type of the covariance matrix of the measurement

using ParameterVector = typename ParSet_t::ParameterVector

type of the vector containing the parameter values

using Projection = typename ParSet_t::Projection

matrix type for projecting full parameter vector onto local parameters

Public Functions

Measurement() = delete

Delete the default constructor.

standard constructor

Concrete class for all possible measurements.

Note

Only a reference to the given surface is stored. The user must ensure that the lifetime of the Surface object surpasses the lifetime of this Measurement object. The given parameter values are interpreted as values to the parameters as defined in the class template argument params.

Attention

The current design will fail if the in-memory location of the Surface object is changed (e.g. if it is stored in a container and this gets relocated).

Parameters
  • surface: surface at which the measurement took place

  • source: object for this measurement

  • cov: covariance matrix of the measurement.

  • headvalues: consistent number of parameter values of the measurement

copy constructor

Template Parameters
  • source_link_t: The identifier type

  • params...The: local parameter pack

Parameters
  • copy: is the source for the copy

move constructor

Template Parameters
  • source_link_t: The identifier type

  • params...The: local parameter pack

Parameters
  • other: is the source for the move

~Measurement() = default

virtual destructor

CovarianceMatrix covariance() const

access covariance matrix of the measured parameter values

Return

covariance matrix of the measurement

template<ParID_t parameter>
ParValue_t get() const

retrieve stored value for given parameter

Remark

parameter must be part of the template parameter pack params. Otherwise a compile-time error is generated.

Return

value of the stored parameter

Template Parameters
  • parameter: identifier for the parameter to be retrieved

inequality operator

Return

true if both objects are not equal, otherwise false

See

Measurement::operator==

copy assignment operator

Template Parameters
  • source_link_t: The identifier type

  • params...The: local parameter pack

Parameters
  • rhs: is the source for the assignment

move assignment operator

Template Parameters
  • source_link_t: The identifier type

  • params...The: local parameter pack

Parameters
  • rhs: is the source for the move assignment

equality operator

Return

true if parameter sets and associated surfaces compare equal, otherwise false

ParameterVector parameters() const

access vector with measured parameter values

Return

column vector whose size is equal to the dimensionality of this Measurement. The values are given for the measured parameters in the order defined by the class template argument params.

const Acts::Surface &referenceSurface() const

access associated surface

Pre

The Surface object used to construct this Measurement object must still be valid at the same memory location.

Return

reference to surface at which the measurement took place

ParameterVector residual(const BoundParameters &trackPars) const

calculate residual with respect to given track parameters

Note

It is checked that the residual for non-local parameters are in valid range (e.g. residuals in \(\phi\) are corrected).

Return

vector with the residual parameter values (in valid range)

See

ParameterSet::residual

Parameters
  • trackPars: reference TrackParameters object

const source_link_t &sourceLink() const

link access to the source of the measurement.

The source link can be simply an identifier or a more complicated object, see description above.

Return

source_link_t object

template<ParID_t parameter>
ParValue_t uncertainty() const

retrieve stored uncertainty for given parameter

Remark

parameter must be part of the template parameter pack params. Otherwise a compile-time error is generated.

Return

uncertainty \(\sigma \ge 0\) for given parameter

Template Parameters
  • parameter: identifier for the parameter to be retrieved

Public Static Functions

Projection projector()

operator

constexpr unsigned int size()

number of measured parameters

Return

number of measured parameters

Protected Functions

std::ostream &print(std::ostream &out) const

Friends