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