StRoot  1
TRVector.h
1 #ifndef ROOT_TRVector
2 #define ROOT_TRVector
3 #include "TRMatrix.h"
4 #include "TRSymMatrix.h"
5 #include "TVector3.h"
6 #include "StThreeVectorD.hh"
7 class TRVector : public TRMatrix {
8  public:
9  TRVector(Int_t nrows=0);
10  TRVector(Int_t nrows,const Double_t *Array);
11  TRVector(Int_t nrows,const Float_t *Array);
12  TRVector(const TRVector& A, ETRMatrixCreatorsOp kop,const TRMatrix& B);
13  TRVector(const TRMatrix& A, ETRMatrixCreatorsOp kop,const TRVector& B);
14  TRVector(const TRMatrix& A, Int_t I=1);
15  TRVector(Int_t nrows,const Char_t *s);
16  TRVector(const TRSymMatrix &S, ETRMatrixCreatorsOp kop,const TRVector& A);
17  TRVector(const TRVector& A, ETRMatrixCreatorsOp kop,const TRSymMatrix &S);
18  TRVector &operator=(const TVector3 &rhs);
19  TRVector &operator=(const StThreeVectorD &rhs);
20  TRVector(const TVector3 &rhs);
21  TRVector(const StThreeVectorD &rhs);
22  TRVector Cross(const TRVector& v) const;
23  TRVector Unit() const;
24  friend TRVector operator*(const TRVector &source, Double_t scalar) {TRVector s(source); s *= scalar; return s;}
25  friend TRVector operator*(Double_t scalar, const TRVector &source) {TRVector s(source); s *= scalar; return s;}
26  friend TRVector operator/(const TRVector &source, Double_t scalar) {TRVector s(source); s /= scalar; return s;}
27  friend TRVector operator+(const TRVector &source, Double_t scalar) {TRVector s(source); s += scalar; return s;}
28  friend TRVector operator+(Double_t scalar, const TRVector &source) {TRVector s(source); s += scalar; return s;}
29  friend TRVector operator-(const TRVector &source, Double_t scalar) {TRVector s(source); s -= scalar; return s;}
30  friend TRVector operator-(Double_t scalar, const TRVector &source) {TRVector s(source); s -= scalar; return s;}
31 #ifndef __CINT__
32  TRVector(Int_t nrows,Double_t a0, ...);
33 #endif
34  virtual ~TRVector(){}
35  ETRMatrixType GetMatrixType() const {return kVector;}
36  // void Add(const TRMatrix& A, ETRMatrixCreatorsOp kop,con.xst TRVector& B);
37  // void Substruct(const TRMatrix& A, ETRMatrixCreatorsOp kop,const TRVector& B);
38  virtual void Print(Option_t *opt="") const;
39  ClassDef(TRVector,1) // TRMatrix class (double precision)
40 };
41 ostream& operator<<(ostream& s,const TRVector &target);
42 #endif