00001 00005 /*************************************************************************** 00006 * 00007 * $Id: StHelixModel.h,v 2.10 2009/11/23 16:34:06 fisyak Exp $ 00008 * 00009 * Author: Thomas Ullrich, Sep 1999 00010 *************************************************************************** 00011 * 00012 * Description: 00013 * 00014 *************************************************************************** 00015 * 00016 * $Log: StHelixModel.h,v $ 00017 * Revision 2.10 2009/11/23 16:34:06 fisyak 00018 * Cleanup, remove dependence on dst tables, clean up software monitors 00019 * 00020 * Revision 2.9 2004/07/15 16:36:24 ullrich 00021 * Removed all clone() declerations and definitions. Use StObject::clone() only. 00022 * 00023 * Revision 2.8 2003/04/09 17:59:39 genevb 00024 * Add setMomentum function 00025 * 00026 * Revision 2.7 2002/11/26 02:19:11 perev 00027 * StEventMaker ITTF modif 00028 * 00029 * Revision 2.6 2002/02/22 22:56:48 jeromel 00030 * Doxygen basic documentation in all header files. None of this is required 00031 * for QM production. 00032 * 00033 * Revision 2.5 2001/07/17 22:23:30 ullrich 00034 * Added helicity to track geometry. 00035 * 00036 * Revision 2.4 2001/04/05 04:00:37 ullrich 00037 * Replaced all (U)Long_t by (U)Int_t and all redundant ROOT typedefs. 00038 * 00039 * Revision 2.3 2001/03/24 03:34:49 perev 00040 * clone() -> clone() const 00041 * 00042 * Revision 2.2 1999/10/28 22:25:45 ullrich 00043 * Adapted new StArray version. First version to compile on Linux and Sun. 00044 * 00045 * Revision 2.1 1999/10/13 19:43:20 ullrich 00046 * Initial Revision 00047 * 00048 **************************************************************************/ 00049 #ifndef StHelixModel_hh 00050 #define StHelixModel_hh 00051 #include "StTrackGeometry.h" 00052 #include "StThreeVectorF.hh" 00053 00054 class StHelixModel : public StTrackGeometry { 00055 public: 00056 StHelixModel(); 00057 StHelixModel(short q, float psi, float c, float dip, 00058 const StThreeVectorF& o, const StThreeVectorF& p, short h); 00059 // StHelixModel(const StHelixModel&); use default 00060 // StHelixModel& operator=(const StHelixModel&); use default 00061 ~StHelixModel(); 00062 00063 StTrackModel model() const; 00064 short charge() const; 00065 short helicity() const; 00066 double curvature() const; 00067 double psi() const; 00068 double dipAngle() const; 00069 const StThreeVectorF& origin() const; 00070 const StThreeVectorF& momentum() const; 00071 StPhysicalHelixD helix() const; 00072 00073 void setCharge(short); 00074 void setHelicity(short); 00075 void setCurvature(double); 00076 void setPsi(double); 00077 void setDipAngle(double); 00078 void setOrigin(const StThreeVectorF&); 00079 void setMomentum(const StThreeVectorF&); 00080 00081 StTrackGeometry* copy() const; // virtual constructor 00082 00083 private: 00084 StTrackModel mModel; 00085 Short_t mCharge; 00086 Float_t mPsi; 00087 Float_t mCurvature; 00088 Float_t mDipAngle; 00089 StThreeVectorF mOrigin; 00090 StThreeVectorF mMomentum; 00091 Short_t mHelicity; 00092 00093 ClassDef(StHelixModel,3) 00094 }; 00095 00096 #endif
1.5.9