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

#include <acts/blob/sPHENIX/Core/include/Acts/Utilities/detail/Subspace.hpp>

+ Collaboration diagram for Acts::detail::FixedSizeSubspace< kFullSize, kSize >:

Public Member Functions

template<typename index_t >
constexpr FixedSizeSubspace (const std::array< index_t, kSize > &indices)
 
 FixedSizeSubspace ()=delete
 
 FixedSizeSubspace (const FixedSizeSubspace &)=default
 
 FixedSizeSubspace (FixedSizeSubspace &&)=default
 
FixedSizeSubspaceoperator= (const FixedSizeSubspace &)=default
 
FixedSizeSubspaceoperator= (FixedSizeSubspace &&)=default
 
constexpr const std::array
< uint8_t, kSize > & 
indices () const
 
constexpr bool contains (size_t index) const
 Check if the given axis index in the full space is part of the subspace.
 
template<typename fullspace_vector_t >
auto projectVector (const Eigen::MatrixBase< fullspace_vector_t > &full) const -> SubspaceVectorFor< fullspace_vector_t >
 
template<typename subspace_vector_t >
auto expandVector (const Eigen::MatrixBase< subspace_vector_t > &sub) const -> FullspaceVectorFor< subspace_vector_t >
 
template<typename scalar_t >
auto projector () const -> ProjectionMatrix< scalar_t >
 
template<typename scalar_t >
auto expander () const -> ExpansionMatrix< scalar_t >
 

Static Public Member Functions

static constexpr size_t size ()
 Size of the subspace.
 
static constexpr size_t fullSize ()
 Size of the full vector space.
 

Private Types

template<typename source_t >
using SubspaceVectorFor = Eigen::Matrix< typename source_t::Scalar, kSize, 1 >
 
template<typename source_t >
using FullspaceVectorFor = Eigen::Matrix< typename source_t::Scalar, kFullSize, 1 >
 
template<typename scalar_t >
using ProjectionMatrix = Eigen::Matrix< scalar_t, kSize, kFullSize >
 
template<typename scalar_t >
using ExpansionMatrix = Eigen::Matrix< scalar_t, kFullSize, kSize >
 

Private Attributes

std::array< uint8_t, kSize > m_axes
 

Detailed Description

template<size_t kFullSize, size_t kSize>
class Acts::detail::FixedSizeSubspace< kFullSize, kSize >

Fixed-size subspace representation.

Template Parameters
kFullSizeSize of the full vector space
kSizeSize of the subspace

Definition at line 64 of file Subspace.hpp.

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

Member Typedef Documentation

template<size_t kFullSize, size_t kSize>
template<typename scalar_t >
using Acts::detail::FixedSizeSubspace< kFullSize, kSize >::ExpansionMatrix = Eigen::Matrix<scalar_t, kFullSize, kSize>
private

Definition at line 79 of file Subspace.hpp.

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

template<size_t kFullSize, size_t kSize>
template<typename source_t >
using Acts::detail::FixedSizeSubspace< kFullSize, kSize >::FullspaceVectorFor = Eigen::Matrix<typename source_t::Scalar, kFullSize, 1>
private

Definition at line 75 of file Subspace.hpp.

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

template<size_t kFullSize, size_t kSize>
template<typename scalar_t >
using Acts::detail::FixedSizeSubspace< kFullSize, kSize >::ProjectionMatrix = Eigen::Matrix<scalar_t, kSize, kFullSize>
private

Definition at line 77 of file Subspace.hpp.

View newest version in sPHENIX GitHub at line 77 of file Subspace.hpp

template<size_t kFullSize, size_t kSize>
template<typename source_t >
using Acts::detail::FixedSizeSubspace< kFullSize, kSize >::SubspaceVectorFor = Eigen::Matrix<typename source_t::Scalar, kSize, 1>
private

Definition at line 72 of file Subspace.hpp.

View newest version in sPHENIX GitHub at line 72 of file Subspace.hpp

Constructor & Destructor Documentation

template<size_t kFullSize, size_t kSize>
template<typename index_t >
constexpr Acts::detail::FixedSizeSubspace< kFullSize, kSize >::FixedSizeSubspace ( const std::array< index_t, kSize > &  indices)
inline

Construct from a container of axis indices.

Template Parameters
index_tInput index type, must be convertible to uint8_t
Parameters
indicesUnique, ordered indices

Definition at line 96 of file Subspace.hpp.

View newest version in sPHENIX GitHub at line 96 of file Subspace.hpp

References assert, i, Acts::detail::FixedSizeSubspace< kFullSize, kSize >::m_axes, and physmon_ckf_tracking::u.

template<size_t kFullSize, size_t kSize>
Acts::detail::FixedSizeSubspace< kFullSize, kSize >::FixedSizeSubspace ( )
delete
template<size_t kFullSize, size_t kSize>
Acts::detail::FixedSizeSubspace< kFullSize, kSize >::FixedSizeSubspace ( const FixedSizeSubspace< kFullSize, kSize > &  )
default
template<size_t kFullSize, size_t kSize>
Acts::detail::FixedSizeSubspace< kFullSize, kSize >::FixedSizeSubspace ( FixedSizeSubspace< kFullSize, kSize > &&  )
default

Member Function Documentation

template<size_t kFullSize, size_t kSize>
constexpr bool Acts::detail::FixedSizeSubspace< kFullSize, kSize >::contains ( size_t  index) const
inline

Check if the given axis index in the full space is part of the subspace.

Definition at line 129 of file Subspace.hpp.

View newest version in sPHENIX GitHub at line 129 of file Subspace.hpp

References KFPMath::a, and Acts::detail::FixedSizeSubspace< kFullSize, kSize >::m_axes.

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

+ Here is the caller graph for this function:

template<size_t kFullSize, size_t kSize>
template<typename scalar_t >
auto Acts::detail::FixedSizeSubspace< kFullSize, kSize >::expander ( ) const -> ExpansionMatrix<scalar_t>
inline

Expansion matrix that maps from the subspace into the full space.

Template Parameters
scalar_tScalar type of the generated expansion matrix

Definition at line 195 of file Subspace.hpp.

View newest version in sPHENIX GitHub at line 195 of file Subspace.hpp

References i, Acts::detail::FixedSizeSubspace< kFullSize, kSize >::m_axes, and physmon_ckf_tracking::u.

template<size_t kFullSize, size_t kSize>
template<typename subspace_vector_t >
auto Acts::detail::FixedSizeSubspace< kFullSize, kSize >::expandVector ( const Eigen::MatrixBase< subspace_vector_t > &  sub) const -> FullspaceVectorFor<subspace_vector_t>
inline

Expand a subspace vector into the full space.

Template Parameters
subspace_vector_tSubspace vector type
Parameters
subSubspace vector
Returns
Vector in the full space w/ zeros for non-subspace components
Note
Always returns a column vector regardless of the input

Definition at line 166 of file Subspace.hpp.

View newest version in sPHENIX GitHub at line 166 of file Subspace.hpp

References i, Acts::detail::FixedSizeSubspace< kFullSize, kSize >::m_axes, and physmon_ckf_tracking::u.

template<size_t kFullSize, size_t kSize>
static constexpr size_t Acts::detail::FixedSizeSubspace< kFullSize, kSize >::fullSize ( )
inlinestatic

Size of the full vector space.

Definition at line 119 of file Subspace.hpp.

View newest version in sPHENIX GitHub at line 119 of file Subspace.hpp

template<size_t kFullSize, size_t kSize>
constexpr const std::array<uint8_t, kSize>& Acts::detail::FixedSizeSubspace< kFullSize, kSize >::indices ( ) const
inline

Axis indices that comprise the subspace.

The specific container and index type should be considered an implementation detail. Users should treat the return type as a generic container whose elements are convertible to size_t.

Definition at line 126 of file Subspace.hpp.

View newest version in sPHENIX GitHub at line 126 of file Subspace.hpp

References Acts::detail::FixedSizeSubspace< kFullSize, kSize >::m_axes.

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

+ Here is the caller graph for this function:

template<size_t kFullSize, size_t kSize>
FixedSizeSubspace& Acts::detail::FixedSizeSubspace< kFullSize, kSize >::operator= ( const FixedSizeSubspace< kFullSize, kSize > &  )
default
template<size_t kFullSize, size_t kSize>
FixedSizeSubspace& Acts::detail::FixedSizeSubspace< kFullSize, kSize >::operator= ( FixedSizeSubspace< kFullSize, kSize > &&  )
default
template<size_t kFullSize, size_t kSize>
template<typename scalar_t >
auto Acts::detail::FixedSizeSubspace< kFullSize, kSize >::projector ( ) const -> ProjectionMatrix<scalar_t>
inline

Projection matrix that maps from the full space into the subspace.

Template Parameters
scalar_tScalar type for the projection matrix

Definition at line 182 of file Subspace.hpp.

View newest version in sPHENIX GitHub at line 182 of file Subspace.hpp

References i, Acts::detail::FixedSizeSubspace< kFullSize, kSize >::m_axes, proj(), and physmon_ckf_tracking::u.

+ Here is the call graph for this function:

template<size_t kFullSize, size_t kSize>
template<typename fullspace_vector_t >
auto Acts::detail::FixedSizeSubspace< kFullSize, kSize >::projectVector ( const Eigen::MatrixBase< fullspace_vector_t > &  full) const -> SubspaceVectorFor<fullspace_vector_t>
inline

Project a full vector into the subspace.

Template Parameters
fullspace_vector_tVector type in the full space
Parameters
fullVector in the full space
Returns
Subspace vector w/ just the configured axis components
Note
Always returns a column vector regardless of the input

Definition at line 147 of file Subspace.hpp.

View newest version in sPHENIX GitHub at line 147 of file Subspace.hpp

References i, Acts::detail::FixedSizeSubspace< kFullSize, kSize >::m_axes, and physmon_ckf_tracking::u.

template<size_t kFullSize, size_t kSize>
static constexpr size_t Acts::detail::FixedSizeSubspace< kFullSize, kSize >::size ( )
inlinestatic

Size of the subspace.

Definition at line 117 of file Subspace.hpp.

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

Member Data Documentation


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