Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DVector2S.h
Go to the documentation of this file.
1 // $Id$
2 //
3 // File: DVector2S.h
4 // Created: Fri Dec 28 07:19:32 EST 2007
5 // Creator: davidl (on Darwin Amelia.local 8.10.1 i386)
6 //
7 
8 #ifndef _DVector2S_
9 #define _DVector2S_
10 
11 #include <JANA/jerror.h>
12 
13 class DVector2S{
14  public:
15  DVector2S(){};
16  DVector2S(double xx, double yy){x=xx; y=yy;}
17  virtual ~DVector2S(){};
18 
19  inline double X(void) const {return x;}
20  inline double Y(void) const {return y;}
21  inline void Set(double xx, double yy){x=xx; y=yy;}
22  inline double Mod(void){return sqrt(x*x + y*y);}
23  inline double Phi(void){return atan2(y,x);}
24  inline double Phi2pi(void){double a=atan2(y,x); return a<0.0 ? a+2*M_PI:a;}
25 
26  inline DVector2S& operator*=(const double &f){x*=f; y*=f; return *(this);}
27  inline DVector2S& operator/=(const double &f){x/=f; y/=f; return *(this);}
28  inline DVector2S& operator+=(const DVector2S &v){x+=v.X(); y+=v.Y(); return *(this);}
29  inline DVector2S& operator-=(const DVector2S &v){x-=v.X(); y-=v.Y(); return *(this);}
30 
31  protected:
32 
33 
34  private:
35  double x;
36  double y;
37 };
38 
39 inline DVector2S operator*(const double &f, const DVector2S &vec){
40  DVector2S s(f*vec.X(), f*vec.Y());
41  return s;
42 }
43 
44 inline DVector2S operator*(const DVector2S &vec, const double &f){
45  DVector2S s(f*vec.X(), f*vec.Y());
46  return s;
47 }
48 
49 inline DVector2S operator/(const DVector2S &vec, const double &f){
50  DVector2S s(vec.X()/f, vec.Y()/f);
51  return s;
52 }
53 
54 inline DVector2S operator+(const DVector2S &vec1, const DVector2S &vec2){
55  DVector2S s(vec1.X()+vec2.X(), vec1.Y()+vec2.Y());
56  return s;
57 }
58 
59 inline DVector2S operator-(const DVector2S &vec1, const DVector2S &vec2){
60  DVector2S s(vec1.X()-vec2.X(), vec1.Y()-vec2.Y());
61  return s;
62 }
63 
64 
65 #endif // _DVector2S_
66 
DVector2S()
Definition: DVector2S.h:15
DMatrix2x1 operator*(const double c, const DMatrix2x1 &M)
Definition: DMatrix2x1.h:58
DVector2S operator+(const DVector2S &vec1, const DVector2S &vec2)
Definition: DVector2S.h:54
double Phi2pi(void)
Definition: DVector2S.h:24
void Set(double xx, double yy)
Definition: DVector2S.h:21
DVector2S operator/(const DVector2S &vec, const double &f)
Definition: DVector2S.h:49
DVector2S & operator+=(const DVector2S &v)
Definition: DVector2S.h:28
double Y(void) const
Definition: DVector2S.h:20
TF1 * f
Definition: FitGains.C:21
DVector2S & operator-=(const DVector2S &v)
Definition: DVector2S.h:29
DVector2S(double xx, double yy)
Definition: DVector2S.h:16
double y
Definition: DVector2S.h:36
double sqrt(double)
DVector2S operator-(const DVector2S &vec1, const DVector2S &vec2)
Definition: DVector2S.h:59
DVector2S & operator*=(const double &f)
Definition: DVector2S.h:26
virtual ~DVector2S()
Definition: DVector2S.h:17
double x
Definition: DVector2S.h:35
double Phi(void)
Definition: DVector2S.h:23
DVector2S & operator/=(const double &f)
Definition: DVector2S.h:27
double Mod(void)
Definition: DVector2S.h:22
double X(void) const
Definition: DVector2S.h:19