Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::Measurement< indices_t, kSize > Class Template Reference

#include <acts/blob/sPHENIX/Core/include/Acts/EventData/Measurement.hpp>

+ Collaboration diagram for Acts::Measurement< indices_t, kSize >:

Public Types

using Scalar = ActsScalar
 
using ParametersVector = ActsVector< kSize >
 Vector type containing for measured parameter values.
 
using CovarianceMatrix = ActsSquareMatrix< kSize >
 Matrix type for the measurement covariance.
 
using FullParametersVector = ActsVector< kFullSize >
 Vector type containing all parameters in the same space.
 
using ProjectionMatrix = ActsMatrix< kSize, kFullSize >
 
using ExpansionMatrix = ActsMatrix< kFullSize, kSize >
 

Public Member Functions

template<typename parameters_t , typename covariance_t >
 Measurement (SourceLink source, const std::array< indices_t, kSize > &indices, const Eigen::MatrixBase< parameters_t > &params, const Eigen::MatrixBase< covariance_t > &cov)
 
 Measurement ()=delete
 A measurement can only be constructed with valid parameters.
 
 Measurement (const Measurement &)=default
 
 Measurement (Measurement &&)=default
 
 ~Measurement ()=default
 
Measurementoperator= (const Measurement &)=default
 
Measurementoperator= (Measurement &&)=default
 
const SourceLinksourceLink () const
 Source link that connects to the underlying detector readout.
 
bool contains (indices_t i) const
 Check if a specific parameter is part of this measurement.
 
constexpr std::array
< indices_t, kSize > 
indices () const
 The measurement indices.
 
const ParametersVectorparameters () const
 Measured parameters values.
 
const CovarianceMatrixcovariance () const
 Measured parameters covariance.
 
ProjectionMatrix projector () const
 Projection matrix from the full space into the measured subspace.
 
ExpansionMatrix expander () const
 
ParametersVector residuals (const FullParametersVector &reference) const
 
std::ostream & operator<< (std::ostream &os) const
 

Static Public Member Functions

static constexpr size_t size ()
 Number of measured parameters.
 

Private Types

using Subspace = detail::FixedSizeSubspace< kFullSize, kSize >
 

Private Attributes

SourceLink m_source
 
Subspace m_subspace
 
ParametersVector m_params
 
CovarianceMatrix m_cov
 

Static Private Attributes

static constexpr size_t kFullSize = detail::kParametersSize<indices_t>
 

Detailed Description

template<typename indices_t, size_t kSize>
class Acts::Measurement< indices_t, kSize >

A measurement of a fixed-size subspace of the full parameters.

Template Parameters
indices_tParameter index type, determines the full parameter space
kSizeSize of the parameter subset.

The measurement intentionally does not store a pointer/reference to the reference object in the geometry hierarchy, i.e. the surface or volume. The reference object can already be identified via the geometry identifier provided by the source link. Since a measurement must be anchored within the geometry hierarchy, all measurement surfaces and volumes must provide valid geometry identifiers. In all use-cases, e.g. Kalman filtering, a pointer/reference to the reference object is available before the measurement is accessed; e.g. the propagator provides the surface pointer during navigation, which is then used to lookup possible measurements.

The pointed-to geometry object would differ depending on the parameter type. This means either, that there needs to be an additional variable type or that a pointer to a base object is stored (requiring a dynamic_cast later on). Both variants add additional complications. Since the geometry object is not required anyway (as discussed above), not storing it removes all these complications altogether.

Definition at line 47 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 47 of file Measurement.hpp

Member Typedef Documentation

template<typename indices_t, size_t kSize>
using Acts::Measurement< indices_t, kSize >::CovarianceMatrix = ActsSquareMatrix<kSize>

Matrix type for the measurement covariance.

Definition at line 57 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 57 of file Measurement.hpp

template<typename indices_t, size_t kSize>
using Acts::Measurement< indices_t, kSize >::ExpansionMatrix = ActsMatrix<kFullSize, kSize>

Definition at line 61 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 61 of file Measurement.hpp

template<typename indices_t, size_t kSize>
using Acts::Measurement< indices_t, kSize >::FullParametersVector = ActsVector<kFullSize>

Vector type containing all parameters in the same space.

Definition at line 59 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 59 of file Measurement.hpp

template<typename indices_t, size_t kSize>
using Acts::Measurement< indices_t, kSize >::ParametersVector = ActsVector<kSize>

Vector type containing for measured parameter values.

Definition at line 55 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 55 of file Measurement.hpp

template<typename indices_t, size_t kSize>
using Acts::Measurement< indices_t, kSize >::ProjectionMatrix = ActsMatrix<kSize, kFullSize>

Definition at line 60 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 60 of file Measurement.hpp

template<typename indices_t, size_t kSize>
using Acts::Measurement< indices_t, kSize >::Scalar = ActsScalar

Definition at line 53 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 53 of file Measurement.hpp

template<typename indices_t, size_t kSize>
using Acts::Measurement< indices_t, kSize >::Subspace = detail::FixedSizeSubspace<kFullSize, kSize>
private

Definition at line 50 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 50 of file Measurement.hpp

Constructor & Destructor Documentation

template<typename indices_t, size_t kSize>
template<typename parameters_t , typename covariance_t >
Acts::Measurement< indices_t, kSize >::Measurement ( SourceLink  source,
const std::array< indices_t, kSize > &  indices,
const Eigen::MatrixBase< parameters_t > &  params,
const Eigen::MatrixBase< covariance_t > &  cov 
)
inline

Construct from source link, subset indices, and measured data.

Template Parameters
parameters_tInput parameters vector type
covariance_tInput covariance matrix type
Parameters
sourceThe link that connects to the underlying detector readout
indicesWhich parameters are measured
paramsMeasured parameters values
covMeasured parameters covariance
Note
The indices must be ordered and must describe/match the content of parameters and covariance.

Definition at line 75 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 75 of file Measurement.hpp

template<typename indices_t, size_t kSize>
Acts::Measurement< indices_t, kSize >::Measurement ( )
delete

A measurement can only be constructed with valid parameters.

template<typename indices_t, size_t kSize>
Acts::Measurement< indices_t, kSize >::Measurement ( const Measurement< indices_t, kSize > &  )
default
template<typename indices_t, size_t kSize>
Acts::Measurement< indices_t, kSize >::Measurement ( Measurement< indices_t, kSize > &&  )
default
template<typename indices_t, size_t kSize>
Acts::Measurement< indices_t, kSize >::~Measurement ( )
default

Member Function Documentation

template<typename indices_t, size_t kSize>
bool Acts::Measurement< indices_t, kSize >::contains ( indices_t  i) const
inline

Check if a specific parameter is part of this measurement.

Definition at line 104 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 104 of file Measurement.hpp

template<typename indices_t, size_t kSize>
const CovarianceMatrix& Acts::Measurement< indices_t, kSize >::covariance ( ) const
inline

Measured parameters covariance.

Definition at line 120 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 120 of file Measurement.hpp

Referenced by Acts::detail_lt::TrackStateProxy< trajectory_t, M, ReadOnly >::setCalibrated().

+ Here is the caller graph for this function:

template<typename indices_t, size_t kSize>
ExpansionMatrix Acts::Measurement< indices_t, kSize >::expander ( ) const
inline

Expansion matrix from the measured subspace into the full space.

This is equivalent to the transpose of the projection matrix only in the case of a trivial projection matrix. While this is the case here, it is still recommended to use the expansion matrix directly in cases where it is explicitly used.

Definition at line 133 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 133 of file Measurement.hpp

template<typename indices_t, size_t kSize>
constexpr std::array<indices_t, kSize> Acts::Measurement< indices_t, kSize >::indices ( ) const
inline

The measurement indices.

Definition at line 107 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 107 of file Measurement.hpp

template<typename indices_t, size_t kSize>
std::ostream& Acts::Measurement< indices_t, kSize >::operator<< ( std::ostream &  os) const
inline

Definition at line 151 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 151 of file Measurement.hpp

template<typename indices_t, size_t kSize>
Measurement& Acts::Measurement< indices_t, kSize >::operator= ( const Measurement< indices_t, kSize > &  )
default
template<typename indices_t, size_t kSize>
Measurement& Acts::Measurement< indices_t, kSize >::operator= ( Measurement< indices_t, kSize > &&  )
default
template<typename indices_t, size_t kSize>
const ParametersVector& Acts::Measurement< indices_t, kSize >::parameters ( ) const
inline

Measured parameters values.

Definition at line 117 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 117 of file Measurement.hpp

Referenced by Acts::detail_lt::TrackStateProxy< trajectory_t, M, ReadOnly >::setCalibrated(), ActsExamples::CsvPlanarClusterWriter::writeT(), and ActsExamples::RootPlanarClusterWriter::writeT().

+ Here is the caller graph for this function:

template<typename indices_t, size_t kSize>
ProjectionMatrix Acts::Measurement< indices_t, kSize >::projector ( ) const
inline

Projection matrix from the full space into the measured subspace.

Definition at line 123 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 123 of file Measurement.hpp

Referenced by Acts::detail_lt::TrackStateProxy< trajectory_t, M, ReadOnly >::setCalibrated().

+ Here is the caller graph for this function:

template<typename indices_t, size_t kSize>
ParametersVector Acts::Measurement< indices_t, kSize >::residuals ( const FullParametersVector reference) const
inline

Compute residuals in the measured subspace.

Parameters
referenceReference parameters in the full space.

This computes the difference measured - reference taking into account the allowed parameter ranges. Only the reference values in the measured subspace are used for the computation.

Definition at line 144 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 144 of file Measurement.hpp

template<typename indices_t, size_t kSize>
static constexpr size_t Acts::Measurement< indices_t, kSize >::size ( )
inlinestatic

Number of measured parameters.

Definition at line 101 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 101 of file Measurement.hpp

Referenced by Calibrator::calibrate(), and ActsExamples::PlanarSteppingAlgorithm::execute().

+ Here is the caller graph for this function:

template<typename indices_t, size_t kSize>
const SourceLink& Acts::Measurement< indices_t, kSize >::sourceLink ( ) const
inline

Source link that connects to the underlying detector readout.

Definition at line 98 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 98 of file Measurement.hpp

Referenced by ActsExamples::CsvPlanarClusterWriter::writeT(), and ActsExamples::RootPlanarClusterWriter::writeT().

+ Here is the caller graph for this function:

Member Data Documentation

template<typename indices_t, size_t kSize>
constexpr size_t Acts::Measurement< indices_t, kSize >::kFullSize = detail::kParametersSize<indices_t>
staticprivate

Definition at line 48 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 48 of file Measurement.hpp

template<typename indices_t, size_t kSize>
CovarianceMatrix Acts::Measurement< indices_t, kSize >::m_cov
private

Definition at line 162 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 162 of file Measurement.hpp

Referenced by Acts::Measurement< BoundIndices, 3 >::covariance(), and Acts::Measurement< BoundIndices, 3 >::operator<<().

template<typename indices_t, size_t kSize>
ParametersVector Acts::Measurement< indices_t, kSize >::m_params
private
template<typename indices_t, size_t kSize>
SourceLink Acts::Measurement< indices_t, kSize >::m_source
private

Definition at line 159 of file Measurement.hpp.

View newest version in sPHENIX GitHub at line 159 of file Measurement.hpp

Referenced by Acts::Measurement< BoundIndices, 3 >::sourceLink().


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