Back to index

See source file

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 */ 
 
 
 
 

Back to index

See source file