class ROOT::Math::DisplacementVector2D<ROOT::Math::Polar2D<double>,ROOT::Math::DefaultCoordinateSystemTag>

Class describing a generic displacement vector in 2 dimensions.
This class is templated on the type of Coordinate system.
One example is the XYVector which is a vector based on
double precision x,y  data members by using the
ROOT::Math::Cartesian2D<double> Coordinate system.
The class is having also an extra template parameter, the coordinate system tag,
to be able to identify (tag) vector described in different reference coordinate system,
like global or local coordinate systems.

@ingroup GenVector

Data Members

private:
 ROOT::Math::Polar2D fCoordinates internal coordinate system

Function documentation

DisplacementVector2D & operator=( const ForeignVector & v)
Assignment from a foreign 2D vector type, for example, Hep2Vector
Precondition: v must implement methods x() and  y()

CoordSystem Coordinates() const
------ Set, Get, and access coordinate data ------

Retrieve a copy of the coordinates object

Set internal data based on 2 Scalar numbers.
These are for example (x,y) for a cartesian vector or (r,phi) for a polar vector

get internal data into 2 Scalar numbers.
These are for example (x,y) for a cartesian vector or (r,phi) for a polar vector

------------------- Equality -----------------

Exact equality

Scalar X() const
------ Individual element access, in various coordinate systems ------

Cartesian X, converting if necessary from internal coordinate system.

{ return fCoordinates.X(); }
Scalar Y() const
Cartesian Y, converting if necessary from internal coordinate system.

{ return fCoordinates.Y(); }
Scalar R() const
Polar R, converting if necessary from internal coordinate system.

{ return fCoordinates.R(); }
Scalar Phi() const
Polar phi, converting if necessary from internal coordinate system.

{ return fCoordinates.Phi(); }
Scalar Mag2() const
----- Other fundamental properties -----

Magnitute squared ( r^2 in spherical coordinate)

{ return fCoordinates.Mag2();}
DisplacementVector2D Unit() const
return unit vector parallel to this

------ Setting individual elements present in coordinate system ------

Change X - Cartesian2D coordinates only

Change Y - Cartesian2D coordinates only

Change R - Polar2D coordinates only

Change Phi - Polar2D  coordinates

multiply this vector by a scalar quantity

divide this vector by a scalar quantity

return operator*( Scalar(-1) )

Division of a vector with a real number

Rotate by an angle

Scalar x() const
Methods providing  Limited backward name compatibility with CLHEP
{ return fCoordinates.X(); }
Scalar y() const
{ return fCoordinates.Y(); }
Scalar phi() const
{ return fCoordinates.Phi(); }
Scalar mag2() const
{ return fCoordinates.Mag2(); }
DisplacementVector2D unit() const
{return Unit();}
DisplacementVector2D & operator=( const DisplacementVector2D<OtherCoords, OtherTag> & )
operator+( DisplacementVector2D<CoordSystem1,U> v1, const DisplacementVector2D<CoordSystem2,U> & v2)
---------- DisplacementVector2D class template ends here ------------

The (coordinate system) type of the returned vector is defined to
be identical to that of the first vector, which is passed by value

operator-( DisplacementVector2D<CoordSystem1,U> v1, DisplacementVector2D<CoordSystem2,U> const & v2)
Difference between two DisplacementVector2D vectors.
The (coordinate system) type of the returned vector is defined to
be identical to that of the first vector.