Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TFoamVect.h
Go to the documentation of this file.
1 // @(#)root/foam:$Id$
2 // Author: S. Jadach <mailto:Stanislaw.jadach@ifj.edu.pl>, P.Sawicki <mailto:Pawel.Sawicki@ifj.edu.pl>
3 
4 #ifndef ROOT_TFoamVect
5 #define ROOT_TFoamVect
6 
7 #include "TObject.h"
8 
9 
10 class TFoamVect : public TObject {
11  // constructor
12 private:
13  Int_t fDim; ///< Dimension
14  Double_t *fCoords; ///< [fDim] Coordinates
15 public:
16  TFoamVect(); // Constructor
17  TFoamVect(Int_t); // USER Constructor
18  TFoamVect(const TFoamVect &); // Copy constructor
19  virtual ~TFoamVect(); // Destructor
20 
21  TFoamVect& operator =(const TFoamVect&); // = operator; Substitution
22  Double_t &operator[](Int_t); // [] provides POINTER to coordinate
23  TFoamVect& operator =(Double_t []); // LOAD IN entire double vector
24  TFoamVect& operator =(Double_t); // LOAD IN double number
25 
26  TFoamVect& operator+=(const TFoamVect&); // +=; add vector u+=v (FAST)
27  TFoamVect& operator-=(const TFoamVect&); // +=; add vector u+=v (FAST)
28  TFoamVect& operator*=(const Double_t&); // *=; mult. by scalar v*=x (FAST)
29  TFoamVect operator+( const TFoamVect&); // +; u=v+s, NEVER USE IT, SLOW!!!
30  TFoamVect operator-( const TFoamVect&); // -; u=v-s, NEVER USE IT, SLOW!!!
31  void Print(Option_t *option) const; // Prints vector
32  Int_t GetDim() const { return fDim; } // Returns dimension
33  Double_t GetCoord(Int_t i) const {return fCoords[i];}; // Returns coordinate
34 
35  ClassDef(TFoamVect,1) //n-dimensional vector with dynamical allocation
36 };
37 
38 #endif
39