00001 #ifndef ROOT_TRVector
00002 #define ROOT_TRVector
00003 #include "TRMatrix.h"
00004 #include "TRSymMatrix.h"
00005 #include "TVector3.h"
00006 #include "StThreeVectorD.hh"
00007 class TRVector : public TRMatrix {
00008 public:
00009 TRVector(Int_t nrows=0);
00010 TRVector(Int_t nrows,const Double_t *Array);
00011 TRVector(Int_t nrows,const Float_t *Array);
00012 TRVector(const TRVector& A, ETRMatrixCreatorsOp kop,const TRMatrix& B);
00013 TRVector(const TRMatrix& A, ETRMatrixCreatorsOp kop,const TRVector& B);
00014 TRVector(const TRMatrix& A, Int_t I=1);
00015 TRVector(Int_t nrows,const Char_t *s);
00016 TRVector(const TRSymMatrix &S, ETRMatrixCreatorsOp kop,const TRVector& A);
00017 TRVector(const TRVector& A, ETRMatrixCreatorsOp kop,const TRSymMatrix &S);
00018 TRVector &operator=(const TVector3 &rhs);
00019 TRVector &operator=(const StThreeVectorD &rhs);
00020 TRVector(const TVector3 &rhs);
00021 TRVector(const StThreeVectorD &rhs);
00022 TRVector Cross(const TRVector& v) const;
00023 TRVector Unit() const;
00024 friend TRVector operator*(const TRVector &source, Double_t scalar) {TRVector s(source); s *= scalar; return s;}
00025 friend TRVector operator*(Double_t scalar, const TRVector &source) {TRVector s(source); s *= scalar; return s;}
00026 friend TRVector operator/(const TRVector &source, Double_t scalar) {TRVector s(source); s /= scalar; return s;}
00027 friend TRVector operator+(const TRVector &source, Double_t scalar) {TRVector s(source); s += scalar; return s;}
00028 friend TRVector operator+(Double_t scalar, const TRVector &source) {TRVector s(source); s += scalar; return s;}
00029 friend TRVector operator-(const TRVector &source, Double_t scalar) {TRVector s(source); s -= scalar; return s;}
00030 friend TRVector operator-(Double_t scalar, const TRVector &source) {TRVector s(source); s -= scalar; return s;}
00031 #ifndef __CINT__
00032 TRVector(Int_t nrows,Double_t a0, ...);
00033 #endif
00034 virtual ~TRVector(){}
00035 ETRMatrixType GetMatrixType() const {return kVector;}
00036
00037
00038 virtual void Print(Option_t *opt="") const;
00039 ClassDef(TRVector,1)
00040 };
00041 ostream& operator<<(ostream& s,const TRVector &target);
00042 #endif