StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StTrackGeometry.h
1 
5 /***************************************************************************
6  *
7  * $Id: StTrackGeometry.h,v 2.11 2009/11/23 16:34:07 fisyak Exp $
8  *
9  * Author: Thomas Ullrich, Sep 1999
10  ***************************************************************************
11  *
12  * Description:
13  *
14  ***************************************************************************
15  *
16  * $Log: StTrackGeometry.h,v $
17  * Revision 2.11 2009/11/23 16:34:07 fisyak
18  * Cleanup, remove dependence on dst tables, clean up software monitors
19  *
20  * Revision 2.10 2005/07/06 19:00:52 fisyak
21  * Add include of StThreeVectorD.hh
22  *
23  * Revision 2.9 2004/07/15 16:36:26 ullrich
24  * Removed all clone() declerations and definitions. Use StObject::clone() only.
25  *
26  * Revision 2.8 2003/10/30 20:07:32 perev
27  * Check of quality added
28  *
29  * Revision 2.7 2003/04/09 17:59:39 genevb
30  * Add setMomentum function
31  *
32  * Revision 2.6 2002/02/22 22:56:52 jeromel
33  * Doxygen basic documentation in all header files. None of this is required
34  * for QM production.
35  *
36  * Revision 2.5 2001/07/17 22:23:30 ullrich
37  * Added helicity to track geometry.
38  *
39  * Revision 2.4 2001/04/05 04:00:45 ullrich
40  * Replaced all (U)Long_t by (U)Int_t and all redundant ROOT typedefs.
41  *
42  * Revision 2.3 2001/03/24 03:35:00 perev
43  * clone() -> clone() const
44  *
45  * Revision 2.2 1999/10/28 22:27:41 ullrich
46  * Adapted new StArray version. First version to compile on Linux and Sun.
47  *
48  * Revision 2.1 1999/10/13 19:44:13 ullrich
49  * Initial Revision
50  *
51  **************************************************************************/
52 #ifndef StTrackGeometry_hh
53 #define StTrackGeometry_hh
54 #include "StObject.h"
55 #include "StEnumerations.h"
56 #include "StPhysicalHelixD.hh"
57 #include "StThreeVectorF.hh"
58 
59 class StTrackGeometry : public StObject {
60 public:
62  // StTrackGeometry(const StTrackGeometry&); use default
63  // StTrackGeometry & operator=(const StTrackGeometry&); use default
64  virtual ~StTrackGeometry();
65 
66  virtual StTrackModel model() const = 0;
67  virtual short charge() const = 0;
68  virtual short helicity() const = 0;
69  virtual double curvature() const = 0;
70  virtual double psi() const = 0;
71  virtual double dipAngle() const = 0;
72  virtual const StThreeVectorF& origin() const = 0;
73  virtual const StThreeVectorF& momentum() const = 0;
74  virtual StPhysicalHelixD helix() const = 0;
75 
76  virtual void setCharge(short) = 0;
77  virtual void setHelicity(short) = 0;
78  virtual void setCurvature(double) = 0;
79  virtual void setPsi(double) = 0;
80  virtual void setDipAngle(double) = 0;
81  virtual void setOrigin(const StThreeVectorF&) = 0;
82  virtual void setMomentum(const StThreeVectorF&) = 0;
83 
84  virtual StTrackGeometry* copy() const = 0; // virtual constructor
85  int bad() const;
86 
87  ClassDef(StTrackGeometry,2)
88 };
89 
90 #endif