CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Point2DBase.h
Go to the documentation of this file.
1 #ifndef GeometryVector_Point2DBase_h
2 #define GeometryVector_Point2DBase_h
3 
4 
8 
9 template <class T, class FrameTag>
10 class Point2DBase : public PV2DBase< T, PointTag, FrameTag> {
11 public:
12 
16  typedef typename BaseClass::Polar Polar;
17 
23 
27  template <class U>
29 
31  Point2DBase(const T& x, const T& y) : BaseClass(x, y) {}
32 
34  explicit Point2DBase( const Polar& set) : BaseClass( set) {}
35 
40  template <class U>
41  explicit Point2DBase( const Basic2DVector<U>& v) : BaseClass(v) {}
42 
46  template <class U>
48  this->basicVector() += v.basicVector();
49  return *this;
50  }
51 
52  template <class U>
54  this->basicVector() -= v.basicVector();
55  return *this;
56  }
57 
58 };
59 
64 template< typename T, typename U, class Frame>
68  return RT( p.basicVector() + v.basicVector());
69 }
70 
73 template< typename T, typename U, class Frame>
77  return RT( p.basicVector() + v.basicVector());
78 }
79 
84 template< typename T, typename U, class Frame>
88  return RT( p1.basicVector() - p2.basicVector());
89 }
90 
91 #endif // GeometryVector_Point2DBase_h
Vector2DBase< T, FrameTag > VectorType
Definition: Point2DBase.h:14
MatrixMeschach operator+(const MatrixMeschach &mat1, const MatrixMeschach &mat2)
Basic2DVector< T > BasicVectorType
Definition: Point2DBase.h:15
PV2DBase< T, PointTag, FrameTag > BaseClass
Definition: Point2DBase.h:13
MatrixMeschach operator-(const MatrixMeschach &mat1, const MatrixMeschach &mat2)
Point2DBase(const T &x, const T &y)
construct from cartesian coordinates
Definition: Point2DBase.h:31
const BasicVectorType & basicVector() const
Definition: PV2DBase.h:38
double p2[4]
Definition: TauolaWrapper.h:90
Point2DBase(const Point2DBase< U, FrameTag > &p)
Definition: Point2DBase.h:28
Point2DBase(const Polar &set)
construct from polar coordinates
Definition: Point2DBase.h:34
BaseClass::Polar Polar
Definition: Point2DBase.h:16
Point2DBase(const Basic2DVector< U > &v)
Definition: Point2DBase.h:41
Point2DBase & operator+=(const Vector2DBase< U, FrameTag > &v)
Definition: Point2DBase.h:47
double p1[4]
Definition: TauolaWrapper.h:89
Point2DBase & operator-=(const Vector2DBase< U, FrameTag > &v)
Definition: Point2DBase.h:53
long double T