EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::Measurement< source_link_t, parameter_indices_t, params > Class Template Reference

base class for Measurements More...

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

+ Inheritance diagram for Acts::Measurement< source_link_t, parameter_indices_t, params >:
+ Collaboration diagram for Acts::Measurement< source_link_t, parameter_indices_t, params >:

Public Types

using Scalar = typename ParamSet::Scalar
 
using ParametersVector = typename ParamSet::ParametersVector
 type of the vector containing the parameter values
 
using FullParametersVector = typename ParamSet::FullParametersVector
 Vector type containing all parameters from the same space.
 
using CovarianceMatrix = typename ParamSet::CovarianceMatrix
 type of the covariance matrix of the measurement
 
using ProjectionMatrix = typename ParamSet::ProjectionMatrix
 matrix type for projecting full parameter vector onto measured parameters
 
using RefObject = typename detail::ReferenceObject< parameter_indices_t >::type
 Object type that corresponds to the measurement.
 

Public Member Functions

 Measurement ()=delete
 Delete the default constructor.
 
template<typename... Tail>
 Measurement (std::shared_ptr< const RefObject > referenceObject, const source_link_t &source, CovarianceMatrix cov, typename std::enable_if< sizeof...(Tail)+1==sizeof...(params), Scalar >::type head, Tail...values)
 standard constructor for surface/volume measurements
 
 Measurement (std::shared_ptr< const RefObject > referenceObject, const source_link_t &source, CovarianceMatrix cov, ParametersVector vec)
 standard constructor for surface/volume measurements
 
virtual ~Measurement ()=default
 
 Measurement (const Measurement< source_link_t, parameter_indices_t, params...> &copy)
 copy constructor
 
 Measurement (Measurement< source_link_t, parameter_indices_t, params...> &&other)
 move constructor
 
Measurement< source_link_t,
parameter_indices_t, params...> & 
operator= (const Measurement< source_link_t, parameter_indices_t, params...> &rhs)
 copy assignment operator
 
Measurement< source_link_t,
parameter_indices_t, params...> & 
operator= (Measurement< source_link_t, parameter_indices_t, params...> &&rhs)
 move assignment operator
 
template<parameter_indices_t parameter>
Scalar get () const
 retrieve stored value for given parameter
 
const ParametersVectorparameters () const
 access vector with measured parameter values
 
const CovarianceMatrixcovariance () const
 access covariance matrix of the measured parameter values
 
template<parameter_indices_t parameter>
Scalar uncertainty () const
 retrieve stored uncertainty for given parameter
 
const RefObjectreferenceObject () const
 access associated object
 
const source_link_t & sourceLink () const
 link access to the source of the measurement.
 
ParametersVector residual (const FullParametersVector &trackPars) const
 calculate residual with respect to given track parameters
 
virtual bool operator== (const Measurement< source_link_t, parameter_indices_t, params...> &rhs) const
 equality operator
 
bool operator!= (const Measurement< source_link_t, parameter_indices_t, params...> &rhs) const
 inequality operator
 

Static Public Member Functions

static constexpr unsigned int size ()
 number of measured parameters
 
static const ProjectionMatrixprojector ()
 operator
 

Protected Member Functions

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

Private Types

using ParamSet = ParameterSet< parameter_indices_t, params...>
 

Private Attributes

ParamSet m_oParameters
 measured parameter set
 
std::shared_ptr< const RefObjectm_pReferenceObject
 object which corresponds to the measurement
 
source_link_t m_sourceLink
 link to the source for this measurement
 

Friends

std::ostream & operator<< (std::ostream &out, const Measurement< source_link_t, parameter_indices_t, params...> &m)
 

Detailed Description

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

base class for Measurements

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

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

Template Parameters
source_link_tthe 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
Identifieridentification object for this measurement
parameter_indices_tEnum of parameter identifier
paramsparameter pack containing the measured parameters

Definition at line 70 of file Measurement.hpp.

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

Member Typedef Documentation

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
using Acts::Measurement< source_link_t, parameter_indices_t, params >::CovarianceMatrix = typename ParamSet::CovarianceMatrix

type of the covariance matrix of the measurement

Definition at line 85 of file Measurement.hpp.

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

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
using Acts::Measurement< source_link_t, parameter_indices_t, params >::FullParametersVector = typename ParamSet::FullParametersVector

Vector type containing all parameters from the same space.

Definition at line 83 of file Measurement.hpp.

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

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
using Acts::Measurement< source_link_t, parameter_indices_t, params >::ParametersVector = typename ParamSet::ParametersVector

type of the vector containing the parameter values

Definition at line 81 of file Measurement.hpp.

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

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
using Acts::Measurement< source_link_t, parameter_indices_t, params >::ParamSet = ParameterSet<parameter_indices_t, params...>
private

Definition at line 76 of file Measurement.hpp.

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

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
using Acts::Measurement< source_link_t, parameter_indices_t, params >::ProjectionMatrix = typename ParamSet::ProjectionMatrix

matrix type for projecting full parameter vector onto measured parameters

Definition at line 87 of file Measurement.hpp.

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

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
using Acts::Measurement< source_link_t, parameter_indices_t, params >::RefObject = typename detail::ReferenceObject<parameter_indices_t>::type

Object type that corresponds to the measurement.

Definition at line 89 of file Measurement.hpp.

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

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
using Acts::Measurement< source_link_t, parameter_indices_t, params >::Scalar = typename ParamSet::Scalar

Definition at line 79 of file Measurement.hpp.

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

Constructor & Destructor Documentation

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
Acts::Measurement< source_link_t, parameter_indices_t, params >::Measurement ( )
delete

Delete the default constructor.

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
template<typename... Tail>
Acts::Measurement< source_link_t, parameter_indices_t, params >::Measurement ( std::shared_ptr< const RefObject referenceObject,
const source_link_t &  source,
CovarianceMatrix  cov,
typename std::enable_if< sizeof...(Tail)+1==sizeof...(params), Scalar >::type  head,
Tail...  values 
)
inline

standard constructor for surface/volume measurements

Concrete class for all possible measurements.

Parameters
referenceObjectsurface/volume origin of the measurement
sourceobject for this measurement
covcovariance matrix of the measurement.
head,valuesconsistent number of parameter values of the measurement

Definition at line 104 of file Measurement.hpp.

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

References Acts::Measurement< source_link_t, parameter_indices_t, params >::m_pReferenceObject.

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
Acts::Measurement< source_link_t, parameter_indices_t, params >::Measurement ( std::shared_ptr< const RefObject referenceObject,
const source_link_t &  source,
CovarianceMatrix  cov,
ParametersVector  vec 
)
inline

standard constructor for surface/volume measurements

Concrete class for all possible measurements, built from properly formatted covariance matrix and parameter vector

Parameters
referenceObjectsurface/volume origin of the measurement
sourceobject for this measurement
covcovariance matrix of the measurement
vecparameter vector of the measurement

Definition at line 124 of file Measurement.hpp.

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

References Acts::Measurement< source_link_t, parameter_indices_t, params >::m_pReferenceObject.

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
virtual Acts::Measurement< source_link_t, parameter_indices_t, params >::~Measurement ( )
virtualdefault
template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
Acts::Measurement< source_link_t, parameter_indices_t, params >::Measurement ( const Measurement< source_link_t, parameter_indices_t, params...> &  copy)
inline

copy constructor

Template Parameters
source_link_tThe identifier type
parameter_indices_tEnum of parameter identifier
params...Thelocal parameter pack
Parameters
copyis the source for the copy

Definition at line 142 of file Measurement.hpp.

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

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
Acts::Measurement< source_link_t, parameter_indices_t, params >::Measurement ( Measurement< source_link_t, parameter_indices_t, params...> &&  other)
inline

move constructor

Template Parameters
source_link_tThe identifier type
parameter_indices_tEnum of parameter identifier
params...Thelocal parameter pack
Parameters
otheris the source for the move

Definition at line 155 of file Measurement.hpp.

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

Member Function Documentation

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
const CovarianceMatrix& Acts::Measurement< source_link_t, parameter_indices_t, params >::covariance ( ) const
inline

access covariance matrix of the measured parameter values

Returns
covariance matrix of the measurement

Definition at line 222 of file Measurement.hpp.

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

References Acts::ParameterSet< parameter_indices_t, params >::getCovariance(), and Acts::Measurement< source_link_t, parameter_indices_t, params >::m_oParameters.

Referenced by Acts::Measurement< source_link_t, parameter_indices_t, params >::print(), and Acts::detail_lt::TrackStateProxy< source_link_t, M, ReadOnly >::setCalibrated().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
template<parameter_indices_t parameter>
Scalar Acts::Measurement< source_link_t, parameter_indices_t, params >::get ( ) const
inline

retrieve stored value for given parameter

Template Parameters
parameteridentifier for the parameter to be retrieved
Remarks
parameter must be part of the template parameter pack params. Otherwise a compile-time error is generated.
Returns
value of the stored parameter

Definition at line 204 of file Measurement.hpp.

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

References Acts::Measurement< source_link_t, parameter_indices_t, params >::m_oParameters.

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
bool Acts::Measurement< source_link_t, parameter_indices_t, params >::operator!= ( const Measurement< source_link_t, parameter_indices_t, params...> &  rhs) const
inline

inequality operator

Returns
true if both objects are not equal, otherwise false
See Also
Measurement::operator==

Definition at line 297 of file Measurement.hpp.

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

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
Measurement<source_link_t, parameter_indices_t, params...>& Acts::Measurement< source_link_t, parameter_indices_t, params >::operator= ( const Measurement< source_link_t, parameter_indices_t, params...> &  rhs)
inline

copy assignment operator

Template Parameters
source_link_tThe identifier type
parameter_indices_tEnum of parameter identifier
params...Thelocal parameter pack
Parameters
rhsis the source for the assignment

Definition at line 168 of file Measurement.hpp.

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

References Acts::Measurement< source_link_t, parameter_indices_t, params >::m_oParameters, Acts::Measurement< source_link_t, parameter_indices_t, params >::m_pReferenceObject, and Acts::Measurement< source_link_t, parameter_indices_t, params >::m_sourceLink.

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
Measurement<source_link_t, parameter_indices_t, params...>& Acts::Measurement< source_link_t, parameter_indices_t, params >::operator= ( Measurement< source_link_t, parameter_indices_t, params...> &&  rhs)
inline

move assignment operator

Template Parameters
source_link_tThe identifier type
parameter_indices_tEnum of parameter identifier
params...Thelocal parameter pack
Parameters
rhsis the source for the move assignment

Definition at line 186 of file Measurement.hpp.

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

References Acts::Measurement< source_link_t, parameter_indices_t, params >::m_oParameters, Acts::Measurement< source_link_t, parameter_indices_t, params >::m_pReferenceObject, and Acts::Measurement< source_link_t, parameter_indices_t, params >::m_sourceLink.

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
virtual bool Acts::Measurement< source_link_t, parameter_indices_t, params >::operator== ( const Measurement< source_link_t, parameter_indices_t, params...> &  rhs) const
inlinevirtual

equality operator

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

Definition at line 285 of file Measurement.hpp.

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

References Acts::Measurement< source_link_t, parameter_indices_t, params >::m_oParameters, Acts::Measurement< source_link_t, parameter_indices_t, params >::m_pReferenceObject, and Acts::Measurement< source_link_t, parameter_indices_t, params >::m_sourceLink.

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
const ParametersVector& Acts::Measurement< source_link_t, parameter_indices_t, params >::parameters ( ) const
inline

access vector with measured parameter values

Returns
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.
A pure vector type of length size_of(params...)

Definition at line 215 of file Measurement.hpp.

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

References Acts::ParameterSet< parameter_indices_t, params >::getParameters(), and Acts::Measurement< source_link_t, parameter_indices_t, params >::m_oParameters.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::Measurement< source_link_t, parameter_indices_t, params >::print(), Acts::detail_lt::TrackStateProxy< source_link_t, M, ReadOnly >::setCalibrated(), ActsExamples::CsvPlanarClusterWriter::writeT(), and ActsExamples::RootPlanarClusterWriter::writeT().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
virtual std::ostream& Acts::Measurement< source_link_t, parameter_indices_t, params >::print ( std::ostream &  out) const
inlineprotectedvirtual

Definition at line 313 of file Measurement.hpp.

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

References Acts::Measurement< source_link_t, parameter_indices_t, params >::covariance(), and Acts::Measurement< source_link_t, parameter_indices_t, params >::parameters().

+ Here is the call graph for this function:

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
static const ProjectionMatrix& Acts::Measurement< source_link_t, parameter_indices_t, params >::projector ( )
inlinestatic

operator

Definition at line 303 of file Measurement.hpp.

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

References Acts::ParameterSet< parameter_indices_t, params...>::projector().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
const RefObject& Acts::Measurement< source_link_t, parameter_indices_t, params >::referenceObject ( ) const
inline

access associated object

Precondition
The ReferenceObject object used to construct this Measurement object must still be valid at the same memory location.
Returns
reference to surface/volume associated which the measurement

Definition at line 251 of file Measurement.hpp.

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

References Acts::Measurement< source_link_t, parameter_indices_t, params >::m_pReferenceObject.

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

+ Here is the caller graph for this function:

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
ParametersVector Acts::Measurement< source_link_t, parameter_indices_t, params >::residual ( const FullParametersVector trackPars) const
inline

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).
Parameters
trackParsreference TrackParameters object
Returns
vector with the residual parameter values (in valid range)
See Also
ParameterSet::residual

Definition at line 277 of file Measurement.hpp.

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

References Acts::Measurement< source_link_t, parameter_indices_t, params >::m_oParameters, and Acts::ParameterSet< parameter_indices_t, params >::residual().

+ Here is the call graph for this function:

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
static constexpr unsigned int Acts::Measurement< source_link_t, parameter_indices_t, params >::size ( )
inlinestatic

number of measured parameters

Returns
number of measured parameters

Definition at line 243 of file Measurement.hpp.

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

References Acts::ParameterSet< parameter_indices_t, params...>::size().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
const source_link_t& Acts::Measurement< source_link_t, parameter_indices_t, params >::sourceLink ( ) const
inline

link access to the source of the measurement.

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

Returns
source_link_t object

Definition at line 259 of file Measurement.hpp.

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

References Acts::Measurement< source_link_t, parameter_indices_t, params >::m_sourceLink.

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

+ Here is the caller graph for this function:

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
template<parameter_indices_t parameter>
Scalar Acts::Measurement< source_link_t, parameter_indices_t, params >::uncertainty ( ) const
inline

retrieve stored uncertainty for given parameter

Template Parameters
parameteridentifier for the parameter to be retrieved
Remarks
parameter must be part of the template parameter pack params. Otherwise a compile-time error is generated.
Returns
uncertainty $\sigma \ge 0$ for given parameter

Definition at line 236 of file Measurement.hpp.

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

References Acts::Measurement< source_link_t, parameter_indices_t, params >::m_oParameters.

Referenced by dr1998(), and r1998().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
std::ostream& operator<< ( std::ostream &  out,
const Measurement< source_link_t, parameter_indices_t, params...> &  m 
)
friend

Definition at line 305 of file Measurement.hpp.

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

Member Data Documentation

template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
std::shared_ptr<const RefObject> Acts::Measurement< source_link_t, parameter_indices_t, params >::m_pReferenceObject
private
template<typename source_link_t, typename parameter_indices_t, parameter_indices_t... params>
source_link_t Acts::Measurement< source_link_t, parameter_indices_t, params >::m_sourceLink
private

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