CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
corsika::QuantityVector< TDimension > Class Template Reference

#include <QuantityVector.hpp>

Inheritance diagram for corsika::QuantityVector< TDimension >:

Public Types

using quantity_type = phys::units::quantity< TDimension, double >
 
using quantity_square_type = decltype(std::declval< quantity_type >() *std::declval< quantity_type >())
 
typedef TDimension dimension_type
 should be a phys::units::dimension
 

Public Member Functions

 QuantityVector (Eigen::Vector3d const &pBareVector)
 
 QuantityVector (quantity_type const a, quantity_type const b, quantity_type const c)
 
 QuantityVector (double const a, double const b, double const c)
 
quantity_type operator[] (size_t const index) const
 
quantity_type getX () const
 
quantity_type getY () const
 
quantity_type getZ () const
 
Eigen::Vector3d const & getEigenVector () const
 
Eigen::Vector3d & getEigenVector ()
 
quantity_type getNorm () const
 
quantity_square_type getSquaredNorm () const
 
QuantityVector operator+ (QuantityVector< TDimension > const &pQVec) const
 
QuantityVector operator- (QuantityVector< TDimension > const &pQVec) const
 
template<typename TScalarDim >
auto operator* (phys::units::quantity< TScalarDim, double > const p) const
 
template<typename TScalarDim >
auto operator/ (phys::units::quantity< TScalarDim, double > const p) const
 
auto operator* (double const p) const
 
auto operator/ (double const p) const
 
auto & operator/= (double const p)
 
auto & operator*= (double const p)
 
auto & operator+= (QuantityVector< TDimension > const &pQVec)
 
auto & operator-= (QuantityVector< TDimension > const &pQVec)
 
auto operator- () const
 
auto normalized () const
 
auto operator== (QuantityVector< TDimension > const &p) const
 

Protected Attributes

Eigen::Vector3d eigenVector_
 the actual container where the raw numbers are stored
 

Friends

class CoordinateSystem
 
class Point
 
template<typename T >
class corsika::Vector
 
template<typename TDim >
std::ostream & operator<< (std::ostream &os, QuantityVector< TDim > const &qv)
 

Detailed Description

template<typename TDimension>
class corsika::QuantityVector< TDimension >

A QuantityVector is a three-component container based on Eigen::Vector3d with a phys::units::si::dimension. Arithmethic operators are defined that propagate the dimensions by dimensional analysis.

Todo:
review QuantityVector: can this be a protected-only inheritance to other objects? We don't want to expose access to low-level Eigen objects anywhere.

Definition at line 35 of file QuantityVector.hpp.


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