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

base class for Measurements More...

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

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

Public Types

using ParVector_t = typename ParSet_t::ParVector_t
 type of the vector containing the parameter values
 
using CovMatrix_t = typename ParSet_t::CovMatrix_t
 type of the covariance matrix of the measurement
 
using Projection_t = typename ParSet_t::Projection_t
 matrix type for projecting full parameter vector onto local parameters
 

Public Member Functions

 Measurement ()=delete
 Delete the default constructor.
 
template<typename... Tail>
 Measurement (std::shared_ptr< const Surface > surface, const source_link_t &source, CovMatrix_t cov, typename std::enable_if< sizeof...(Tail)+1==sizeof...(params), ParValue_t >::type head, Tail...values)
 standard constructor
 
virtual ~Measurement ()=default
 virtual destructor
 
 Measurement (const Measurement< source_link_t, params...> &copy)
 copy constructor
 
 Measurement (Measurement< source_link_t, params...> &&other)
 move constructor
 
Measurement< source_link_t,
params...> & 
operator= (const Measurement< source_link_t, params...> &rhs)
 copy assignment operator
 
Measurement< source_link_t,
params...> & 
operator= (Measurement< source_link_t, params...> &&rhs)
 move assignment operator
 
template<ParID_t parameter>
ParValue_t get () const
 retrieve stored value for given parameter
 
ParVector_t parameters () const
 access vector with measured parameter values
 
CovMatrix_t covariance () const
 access covariance matrix of the measured parameter values
 
template<ParID_t parameter>
ParValue_t uncertainty () const
 retrieve stored uncertainty for given parameter
 
const Acts::SurfacereferenceSurface () const
 access associated surface
 
const source_link_t & sourceLink () const
 link access to the source of the measurement.
 
ParVector_t residual (const TrackParameters &trackPars) const
 calculate residual with respect to given track parameters
 
virtual bool operator== (const Measurement< source_link_t, params...> &rhs) const
 equality operator
 
bool operator!= (const Measurement< source_link_t, params...> &rhs) const
 inequality operator
 

Static Public Member Functions

static constexpr unsigned int size ()
 number of measured parameters
 
static Projection_t projector ()
 operator
 

Protected Member Functions

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

Private Types

using ParSet_t = ParameterSet< params...>
 type of the underlying ParameterSet object
 

Private Attributes

ParSet_t m_oParameters
 measured parameter set
 
std::shared_ptr< const Surfacem_pSurface
 surface at which the measurement took place
 
source_link_t m_sourceLink
 link to the source for this measurement
 

Friends

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

Detailed Description

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

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_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
paramsparameter pack containing the measured parameters

Definition at line 51 of file Measurement.hpp.

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

Member Typedef Documentation

template<typename source_link_t, ParID_t... params>
using Acts::Measurement< source_link_t, params >::CovMatrix_t = typename ParSet_t::CovMatrix_t

type of the covariance matrix of the measurement

Definition at line 66 of file Measurement.hpp.

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

template<typename source_link_t, ParID_t... params>
using Acts::Measurement< source_link_t, params >::ParSet_t = ParameterSet<params...>
private

type of the underlying ParameterSet object

Definition at line 60 of file Measurement.hpp.

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

template<typename source_link_t, ParID_t... params>
using Acts::Measurement< source_link_t, params >::ParVector_t = typename ParSet_t::ParVector_t

type of the vector containing the parameter values

Definition at line 64 of file Measurement.hpp.

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

template<typename source_link_t, ParID_t... params>
using Acts::Measurement< source_link_t, params >::Projection_t = typename ParSet_t::Projection_t

matrix type for projecting full parameter vector onto local parameters

Definition at line 68 of file Measurement.hpp.

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

Constructor & Destructor Documentation

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

Delete the default constructor.

template<typename source_link_t, ParID_t... params>
template<typename... Tail>
Acts::Measurement< source_link_t, params >::Measurement ( std::shared_ptr< const Surface surface,
const source_link_t &  source,
CovMatrix_t  cov,
typename std::enable_if< sizeof...(Tail)+1==sizeof...(params), ParValue_t >::type  head,
Tail...  values 
)
inline

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
surfacesurface at which the measurement took place
sourceobject for this measurement
covcovariance matrix of the measurement.
head,valuesconsistent number of parameter values of the measurement

Definition at line 93 of file Measurement.hpp.

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

References Acts::Measurement< source_link_t, params >::m_pSurface.

template<typename source_link_t, ParID_t... params>
virtual Acts::Measurement< source_link_t, params >::~Measurement ( )
virtualdefault

virtual destructor

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

copy constructor

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

Definition at line 113 of file Measurement.hpp.

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

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

move constructor

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

Definition at line 124 of file Measurement.hpp.

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

Member Function Documentation

template<typename source_link_t, ParID_t... params>
CovMatrix_t Acts::Measurement< source_link_t, params >::covariance ( ) const
inline

access covariance matrix of the measured parameter values

Returns
covariance matrix of the measurement

Definition at line 186 of file Measurement.hpp.

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

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

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename source_link_t, ParID_t... params>
template<ParID_t parameter>
ParValue_t Acts::Measurement< source_link_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 170 of file Measurement.hpp.

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

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

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

inequality operator

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

Definition at line 259 of file Measurement.hpp.

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

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

copy assignment operator

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

Definition at line 135 of file Measurement.hpp.

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

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

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

move assignment operator

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

Definition at line 152 of file Measurement.hpp.

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

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

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

equality operator

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

Definition at line 247 of file Measurement.hpp.

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

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

template<typename source_link_t, ParID_t... params>
ParVector_t Acts::Measurement< source_link_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.

Definition at line 181 of file Measurement.hpp.

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

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

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 273 of file Measurement.hpp.

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

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

+ Here is the call graph for this function:

template<typename source_link_t, ParID_t... params>
static Projection_t Acts::Measurement< source_link_t, params >::projector ( )
inlinestatic

operator

Definition at line 264 of file Measurement.hpp.

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

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

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename source_link_t, ParID_t... params>
const Acts::Surface& Acts::Measurement< source_link_t, params >::referenceSurface ( ) const
inline

access associated surface

Precondition
The Surface object used to construct this Measurement object must still be valid at the same memory location.
Returns
reference to surface at which the measurement took place

Definition at line 213 of file Measurement.hpp.

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

References Acts::Measurement< source_link_t, params >::m_pSurface.

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

+ Here is the caller graph for this function:

template<typename source_link_t, ParID_t... params>
ParVector_t Acts::Measurement< source_link_t, params >::residual ( const TrackParameters 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 239 of file Measurement.hpp.

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

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

+ Here is the call graph for this function:

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

number of measured parameters

Returns
number of measured parameters

Definition at line 205 of file Measurement.hpp.

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

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

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename source_link_t, ParID_t... params>
const source_link_t& Acts::Measurement< source_link_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 221 of file Measurement.hpp.

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

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

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

+ Here is the caller graph for this function:

template<typename source_link_t, ParID_t... params>
template<ParID_t parameter>
ParValue_t Acts::Measurement< source_link_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 198 of file Measurement.hpp.

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

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

Friends And Related Function Documentation

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

Definition at line 266 of file Measurement.hpp.

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

Member Data Documentation

template<typename source_link_t, ParID_t... params>
std::shared_ptr<const Surface> Acts::Measurement< source_link_t, params >::m_pSurface
private
template<typename source_link_t, ParID_t... params>
source_link_t Acts::Measurement< source_link_t, params >::m_sourceLink
private

link to the source for this measurement

Definition at line 290 of file Measurement.hpp.

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

Referenced by Acts::Measurement< source_link_t, params >::operator=(), Acts::Measurement< source_link_t, params >::operator==(), and Acts::Measurement< source_link_t, params >::sourceLink().


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