CMS 3D CMS Logo

Vector2DBase.h File Reference

#include "DataFormats/GeometryVector/interface/VectorTag.h"
#include "DataFormats/GeometryVector/interface/PV2DBase.h"

Go to the source code of this file.

Classes

class  Vector2DBase< T, FrameTag >

Functions

template<class T, class FrameTag, class Scalar>
Vector2DBase< T, FrameTag > operator * (const Scalar &s, const Vector2DBase< T, FrameTag > &v)
 Same as operator*( Vector, Scalar).
template<class T, class FrameTag, class Scalar>
Vector2DBase< T, FrameTag > operator * (const Vector2DBase< T, FrameTag > &v, const Scalar &s)
 Multiplication by scalar, does not change the precision of the vector.
template<class T, class U, class FrameTag>
PreciseFloatType< T, U >::Type operator * (const Vector2DBase< T, FrameTag > &v1, const Vector2DBase< U, FrameTag > &v2)
 scalar product of vectors of possibly different precision
template<class T, class U, class FrameTag>
Vector2DBase< typename
PreciseFloatType< T, U >::Type,
FrameTag > 
operator+ (const Vector2DBase< T, FrameTag > &v1, const Vector2DBase< U, FrameTag > &v2)
 vector sum and subtraction of vectors of possibly different precision
template<class T, class U, class FrameTag>
Vector2DBase< typename
PreciseFloatType< T, U >::Type,
FrameTag > 
operator- (const Vector2DBase< T, FrameTag > &v1, const Vector2DBase< U, FrameTag > &v2)
template<class T, class FrameTag, class Scalar>
Vector2DBase< T, FrameTag > operator/ (const Vector2DBase< T, FrameTag > &v, const Scalar &s)
 Division by scalar, does not change the precision of the vector.


Function Documentation

template<class T, class FrameTag, class Scalar>
Vector2DBase<T, FrameTag> operator * ( const Scalar &  s,
const Vector2DBase< T, FrameTag > &  v 
) [inline]

Same as operator*( Vector, Scalar).

Definition at line 127 of file Vector2DBase.h.

References PV2DBase< T, VectorTag, FrameTag >::basicVector().

00127                                                                 {
00128   return Vector2DBase<T, FrameTag>( v.basicVector() * s);
00129 }

template<class T, class FrameTag, class Scalar>
Vector2DBase<T, FrameTag> operator * ( const Vector2DBase< T, FrameTag > &  v,
const Scalar &  s 
) [inline]

Multiplication by scalar, does not change the precision of the vector.

The return type is the same as the type of the vector argument.

Definition at line 120 of file Vector2DBase.h.

References PV2DBase< T, VectorTag, FrameTag >::basicVector().

00120                                                                 {
00121   return Vector2DBase<T, FrameTag>( v.basicVector() * s);
00122 }

template<class T, class U, class FrameTag>
PreciseFloatType<T,U>::Type operator * ( const Vector2DBase< T, FrameTag > &  v1,
const Vector2DBase< U, FrameTag > &  v2 
) [inline]

scalar product of vectors of possibly different precision

Definition at line 111 of file Vector2DBase.h.

References PV2DBase< T, VectorTag, FrameTag >::basicVector().

00111                                                                                      {
00112   return v1.basicVector() * v2.basicVector();
00113 }

template<class T, class U, class FrameTag>
Vector2DBase<typename PreciseFloatType<T,U>::Type, FrameTag> operator+ ( const Vector2DBase< T, FrameTag > &  v1,
const Vector2DBase< U, FrameTag > &  v2 
) [inline]

vector sum and subtraction of vectors of possibly different precision

Definition at line 96 of file Vector2DBase.h.

References PV2DBase< T, VectorTag, FrameTag >::basicVector().

00096                                                                                      {
00097   typedef Vector2DBase<typename PreciseFloatType<T,U>::Type, FrameTag> RT;
00098   return RT(v1.basicVector() + v2.basicVector());
00099 }

template<class T, class U, class FrameTag>
Vector2DBase<typename PreciseFloatType<T,U>::Type, FrameTag> operator- ( const Vector2DBase< T, FrameTag > &  v1,
const Vector2DBase< U, FrameTag > &  v2 
) [inline]

Definition at line 103 of file Vector2DBase.h.

References PV2DBase< T, VectorTag, FrameTag >::basicVector().

00103                                                                                      {
00104   typedef Vector2DBase<typename PreciseFloatType<T,U>::Type, FrameTag> RT;
00105   return RT(v1.basicVector() - v2.basicVector());
00106 }

template<class T, class FrameTag, class Scalar>
Vector2DBase<T, FrameTag> operator/ ( const Vector2DBase< T, FrameTag > &  v,
const Scalar &  s 
) [inline]

Division by scalar, does not change the precision of the vector.

The return type is the same as the type of the vector argument.

Definition at line 136 of file Vector2DBase.h.

References PV2DBase< T, VectorTag, FrameTag >::basicVector().

00136                                                                 {
00137   return Vector2DBase<T, FrameTag>( v.basicVector() / s);
00138 }


Generated on Tue Jun 9 17:52:06 2009 for CMSSW by  doxygen 1.5.4