31 return Vector(vector1.
x + vector2.
x , vector1.
y + vector2.
y , vector1.
z + vector2.
z);
37 vector1 = vector1 + vector2;
42 return Vector(vector1.
x - vector2.
x , vector1.
y - vector2.
y , vector1.
z - vector2.
z);
48 vector1 = vector1 - vector2;
59 return ((vector1.
x * vector2.
x) + (vector1.
y * vector2.
y) + (vector1.
z * vector2.
z));
101 Vector(
double x_inp,
double y_inp,
double z_inp);
169 double X()
const {
return x; }
170 double Y()
const {
return y; }
171 double Z()
const {
return z; }
175 double Theta()
const;
183 void SetXYZ(
double inpx,
double inpy,
double inpz)
190 void Reset(
double x_inp,
double y_inp,
double z_inp) {
SetXYZ(x_inp, y_inp, z_inp); }
friend void operator+=(Vector &vector1, const Vector &vector2)
Definition: vector.hh:35
Vector Unit() const
Definition: vector.cc:133
Vector RotateY(double angle) const
Definition: vector.cc:158
double X() const
Definition: vector.hh:169
Vector ChangeCoord(const Vector &new_x_axis, const Vector &new_y_axis) const
Definition: vector.cc:73
double x
Definition: vector.hh:194
double GetZ() const
Definition: vector.hh:168
This class represents a three-vector. Operators are overloaded to provide for the familiar operations...
Definition: vector.hh:27
friend Vector operator+(const Vector &vector1, const Vector &vector2)
Definition: vector.hh:29
double Y() const
Definition: vector.hh:170
Vector()
Definition: vector.cc:46
double Z() const
Definition: vector.hh:171
double GetY() const
Definition: vector.hh:167
Vector Cross(const Vector &vec) const
Definition: vector.cc:55
double GetX() const
Definition: vector.hh:166
Vector RotateZ(double angle) const
Definition: vector.cc:166
void Reset(double x_inp, double y_inp, double z_inp)
Definition: vector.hh:190
Vector RotateX(double angle) const
Definition: vector.cc:150
double Phi() const
Definition: vector.cc:145
double Angle(const Vector &vec) const
Definition: vector.cc:69
void SetY(double inp)
Definition: vector.hh:181
void SetX(double inp)
Definition: vector.hh:180
double operator[](int i) const
Definition: vector.hh:85
void Print() const
Definition: vector.cc:137
Vector Orthogonal() const
Definition: vector.cc:240
double z
Definition: vector.hh:196
bool angles_need_updating
Definition: vector.hh:199
double Theta() const
Definition: vector.cc:140
friend ostream & operator<<(ostream &outs, const Vector &vec)
Definition: vector.cc:234
friend double operator*(const Vector &vector1, const Vector &vector2)
Definition: vector.hh:57
double Mag2() const
Definition: vector.hh:144
friend Vector operator/(const Vector &v, const double &a)
Definition: vector.hh:64
friend Vector operator-(const Vector &vector1, const Vector &vector2)
Definition: vector.hh:40
friend void operator-=(Vector &vector1, const Vector &vector2)
Definition: vector.hh:46
double phi
Definition: vector.hh:198
double theta
Definition: vector.hh:197
Vector Zero()
Definition: vector.cc:219
void SetXYZ(double inpx, double inpy, double inpz)
Definition: vector.hh:183
void UpdateThetaPhi() const
Definition: vector.cc:194
double Dot(const Vector &vec) const
Definition: vector.cc:61
double Mag() const
Definition: vector.cc:65
void SetZ(double inp)
Definition: vector.hh:182
double y
Definition: vector.hh:195
Vector Rotate(double angle, const Vector &axis) const
Definition: vector.cc:176