PHVector.h
#ifndef PHVECTOR_H
#define PHVECTOR_H
//---------------------------------------------------------------------------------------
// Class: PHVector header
//
// Created by: Jane M. Burward-Hoy and Federica Messer
//
// Purpose: The Phenix 3D vector
//
// Last update: 10/19/99
//
//--------------------------------------------------------------------------
#include <iostream.h>
//#include <CLHEP/Geometry/Vector3D.h>
#include "/phenix/workarea/janebh/classes/myCLHEP/CLHEP/Geometry/Vector3D.h"
class PHPoint;
class PHVector : private HepVector3D
{
public:
PHVector();
PHVector(double x, double y, double z);
PHVector(const PHVector &);
PHVector(const PHPoint &);
PHVector(const Hep3Vector&);
PHVector(const HepVector3D &);
~PHVector();
PHVector& operator= (const HepVector3D &);
PHVector& operator= (const Hep3Vector &);
PHVector& operator= (const PHVector&);
PHVector& operator= (const PHPoint&);
PHVector operator- (const PHVector &) const;
PHVector operator- ();
PHVector operator+ (const PHVector &) const;
PHVector operator* (const double &) const;
double dot(const PHVector &) const;
double angle(const PHVector &) const;
PHVector cross(const PHVector &) const;
//PHVector orthogonal() const;
double length() const;
double lengthSqr() const;
void normalize();
void print() const;
friend ostream& operator<<(ostream& ,const PHVector&);
double setX(double x) {HepVector3D::setX(x);}
double setY(double y) {HepVector3D::setY(y);}
double setZ(double z) {HepVector3D::setZ(z);}
double getX() const {return HepVector3D::x();}
double getY() const {return HepVector3D::y();}
double getZ() const {return HepVector3D::z();}
};
#endif /* PHVECTOR_H */