StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StGlobalCoordinate.hh
1 /***********************************************************************
2  *
3  * $Id: StGlobalCoordinate.hh,v 1.6 2011/01/18 14:34:28 fisyak Exp $
4  *
5  * Author: brian Feb 6, 1998
6  *
7  ************************************************************************
8  *
9  * Description: Raw data information along with access functions
10  *
11  *************************************************************************
12  *
13  * $Log: StGlobalCoordinate.hh,v $
14  * Revision 1.6 2011/01/18 14:34:28 fisyak
15  * Clean up TpcDb interfaces and Tpc coordinate transformation
16  *
17  * Revision 1.5 2005/07/06 19:10:34 fisyak
18  * Add TpcCoordinate transormation classes to dictionary, use templated StThreeVector
19  *
20  * Revision 1.4 2003/09/02 17:57:51 perev
21  * gcc 3.2 updates + WarnOff
22  *
23  * Revision 1.3 2000/04/28 16:40:35 calderon
24  * added constructor taking StThreeVectorF, because that's what
25  * StHits and StMcHits have.
26  *
27  * Revision 1.2 2000/02/02 23:01:38 calderon
28  * Changes for CC5
29  * Tests withs StTpcDb still going.
30  *
31  * Revision 1.1 1999/11/19 19:01:07 calderon
32  * First version of files for StDbUtilities.
33  * Note: this package uses StTpcDb.
34  * There are some parameters
35  * that are not yet kept in StTpcDb. When StTpcDb has them, the code
36  * will be changed to use them from StTpcDb.
37  * There are no Ftpc or Svt Coordinate transformations in here yet.
38  *
39  * Revision 1.3 1999/10/25 18:38:29 calderon
40  * changed mPos and pos() to mPosition and position() to
41  * be compatible with StEvent/StMcEvent.
42  *
43  * Revision 1.2 1998/11/16 19:40:21 lasiuk
44  * constructors do not use reference for doubles
45  *
46  * Revision 1.1 1998/11/10 17:12:04 fisyak
47  * Put Brian trs versin into StRoot
48  *
49  * Revision 1.2 1998/11/01 16:21:06 lasiuk
50  * remove 'St' from variable declarations
51  * add set functions in local Coordinates
52  *
53  * Revision 1.1 1998/05/21 21:27:37 lasiuk
54  * Initial revision
55  *
56  *
57  ***********************************************************************/
58 #ifndef ST_GLOBAL_COORDINATE_HH
59 #define ST_GLOBAL_COORDINATE_HH
60 
61 #include <Stiostream.h>
62 
63 #include "StThreeVectorF.hh"
64 
66 {
67 public:
69  StGlobalCoordinate(const double x, const double y, const double z) : mPosition(x,y,z) { }
70  StGlobalCoordinate(const double *x) : mPosition(x) { }
71  StGlobalCoordinate(const StThreeVector<double>& x) : mPosition(x) {}
72  StGlobalCoordinate(const StThreeVectorF& x) : mPosition(x.x(), x.y(), x.z()) {}
73 
74  virtual ~StGlobalCoordinate() {}
75  int operator==(const StGlobalCoordinate& p) const {return p.mPosition == mPosition;}
76  int operator!=(const StGlobalCoordinate& p) const {return !(*this == p);}
77  // access functions provided by StThreeVector
78  virtual const StThreeVector<double>& position() const {return *&mPosition;}
79  virtual StThreeVector<double>& position() {return *&mPosition;}
80  virtual void setPosition(const StThreeVector<double>& val) {mPosition = val; }
81 
82 protected:
83  StThreeVector<double> mPosition;
84 
85 };
86 // Non-Member
87 ostream& operator<<(ostream&, const StGlobalCoordinate&);
88 #endif