// TwoVector class // Glen Cowan, RHUL Physics Dept., October 2004 #ifndef TWOVECTOR_H #define TWOVECTOR_H #include "Rtypes.h" // class TwoVector : public TObject { class TwoVector { public: TwoVector(); TwoVector(double x, double y); double x() const; double y() const; double r() const; double cosTheta() const; double sinTheta() const; double theta() const; void set(double x, double y); void setX(double); void setY(double); void setR(double); // keeps theta constant void setTheta(double); // keeps r constant void rotate(double); // also as non-member function (below) TwoVector operator+(const TwoVector&); TwoVector operator-(const TwoVector&); private: double m_x; double m_y; ClassDef (TwoVector,1) //<=========================== }; // non-member operators and functions TwoVector operator*(const TwoVector&, double); // mult. by constant TwoVector operator*(double, const TwoVector&); // allow either order double dot(const TwoVector&, const TwoVector&); TwoVector rotate (const TwoVector&, double); ClassImp(TwoVector) //<====================== #endif