CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes
VectorDoublet< V1, V2 > Class Template Reference

#include <VectorDoublet.h>

Public Types

typedef V1::ScalarType Scalar1
 
typedef V2::ScalarType Scalar2
 

Public Member Functions

PreciseFloatType< Scalar1, Scalar2 >::Type dot (const VectorDoublet &v) const
 
const V1 & first () const
 
template<class T >
VectorDoubletoperator*= (const T &t)
 
VectorDoubletoperator+= (const VectorDoublet &v)
 
VectorDoublet operator- () const
 
VectorDoubletoperator-= (const VectorDoublet &v)
 
template<class T >
VectorDoubletoperator/= (const T &t)
 
const V2 & second () const
 
 VectorDoublet ()
 
 VectorDoublet (const V1 &a, const V2 &b)
 

Private Attributes

V1 a_
 
V2 b_
 

Detailed Description

template<class V1, class V2>
class VectorDoublet< V1, V2 >

Definition at line 8 of file VectorDoublet.h.

Member Typedef Documentation

◆ Scalar1

template<class V1, class V2>
typedef V1::ScalarType VectorDoublet< V1, V2 >::Scalar1

Definition at line 10 of file VectorDoublet.h.

◆ Scalar2

template<class V1, class V2>
typedef V2::ScalarType VectorDoublet< V1, V2 >::Scalar2

Definition at line 11 of file VectorDoublet.h.

Constructor & Destructor Documentation

◆ VectorDoublet() [1/2]

template<class V1, class V2>
VectorDoublet< V1, V2 >::VectorDoublet ( )
inline

Definition at line 13 of file VectorDoublet.h.

13 {}

◆ VectorDoublet() [2/2]

template<class V1, class V2>
VectorDoublet< V1, V2 >::VectorDoublet ( const V1 &  a,
const V2 &  b 
)
inline

Definition at line 14 of file VectorDoublet.h.

14 : a_(a), b_(b) {}
double b
Definition: hdecay.h:118
double a
Definition: hdecay.h:119

Member Function Documentation

◆ dot()

template<class V1, class V2>
PreciseFloatType<Scalar1, Scalar2>::Type VectorDoublet< V1, V2 >::dot ( const VectorDoublet< V1, V2 > &  v) const
inline

Definition at line 45 of file VectorDoublet.h.

45  {
46  return first() * v.first() + second() * v.second();
47  }
const V2 & second() const
Definition: VectorDoublet.h:17
const V1 & first() const
Definition: VectorDoublet.h:16

◆ first()

template<class V1, class V2>
const V1& VectorDoublet< V1, V2 >::first ( ) const
inline

Definition at line 16 of file VectorDoublet.h.

16 { return a_; }

◆ operator*=()

template<class V1, class V2>
template<class T >
VectorDoublet& VectorDoublet< V1, V2 >::operator*= ( const T t)
inline

Definition at line 33 of file VectorDoublet.h.

33  {
34  a_ *= t;
35  b_ *= t;
36  return *this;
37  }

◆ operator+=()

template<class V1, class V2>
VectorDoublet& VectorDoublet< V1, V2 >::operator+= ( const VectorDoublet< V1, V2 > &  v)
inline

Definition at line 19 of file VectorDoublet.h.

19  {
20  a_ += v.first();
21  b_ += v.second();
22  return *this;
23  }

◆ operator-()

template<class V1, class V2>
VectorDoublet VectorDoublet< V1, V2 >::operator- ( ) const
inline

Definition at line 30 of file VectorDoublet.h.

◆ operator-=()

template<class V1, class V2>
VectorDoublet& VectorDoublet< V1, V2 >::operator-= ( const VectorDoublet< V1, V2 > &  v)
inline

Definition at line 24 of file VectorDoublet.h.

24  {
25  a_ -= v.first();
26  b_ -= v.second();
27  return *this;
28  }

◆ operator/=()

template<class V1, class V2>
template<class T >
VectorDoublet& VectorDoublet< V1, V2 >::operator/= ( const T t)
inline

Definition at line 39 of file VectorDoublet.h.

39  {
40  a_ /= t;
41  b_ /= t;
42  return *this;
43  }

◆ second()

template<class V1, class V2>
const V2& VectorDoublet< V1, V2 >::second ( ) const
inline

Definition at line 17 of file VectorDoublet.h.

17 { return b_; }

Member Data Documentation

◆ a_

template<class V1, class V2>
V1 VectorDoublet< V1, V2 >::a_
private

Definition at line 50 of file VectorDoublet.h.

◆ b_

template<class V1, class V2>
V2 VectorDoublet< V1, V2 >::b_
private

Definition at line 51 of file VectorDoublet.h.