00001 // ================================================ 00002 // TrackTrajectory class description 00003 // ================================================ 00004 // 00005 // THIS TEXT TO BE REPLACED BY ATLAS STANDARD FORMAT 00006 // 00007 // 00008 // This version.... 00009 // 00010 // 00011 // Namespace Atlfast:: 00012 // 00013 // class: TrackTrajectory 00014 // 00015 // Description: 00016 // 00017 // Simple concrete class to represent a track trajectory 00018 // 00019 // ................................................................ 00020 // 00021 00022 #ifndef ATLFAST_TRACKTRAJECTORY_H 00023 #define ATLFAST_TRACKTRAJECTORY_H 00024 00025 00026 #include "AtlfastEvent/Phi.h" 00027 #include "CLHEP/Vector/ThreeVector.h" 00028 #include "CLHEP/Geometry/Point3D.h" 00029 00030 #include "AtlfastEvent/TrackParameters.h" 00031 00032 namespace Atlfast { 00036 class TrackTrajectory { 00037 00038 private: 00039 00040 // Trajectory state variables 00041 TrackParameters m_parameters; 00042 ::HepPoint3D m_startPoint ; 00043 double m_curvature ; 00044 00045 public: 00046 00048 TrackTrajectory() {} 00050 TrackTrajectory( TrackParameters, ::HepPoint3D, double); 00051 00053 TrackTrajectory( 00054 const Hep3Vector& p, 00055 const Hep3Vector& vertex, 00056 double charge, 00057 double bField 00058 ); 00059 00061 TrackTrajectory( const TrackTrajectory& src ) ; 00062 00064 ~TrackTrajectory() ; 00065 00067 TrackTrajectory& operator=( const TrackTrajectory& src ) ; 00068 TrackParameters parameters() const; 00069 00070 int signOfCharge() const ; 00071 HepPoint3D startPoint() const ; 00072 double radius() const ; 00073 double curvature() const ; 00074 00075 }; 00076 00077 // ................................................ 00078 // Message stream operator for simple debug output 00079 00080 MsgStream& operator << ( MsgStream& s, const TrackTrajectory& t ) ; 00081 std::ostream& operator << ( std::ostream& s, const TrackTrajectory& t ) ; 00082 00083 00084 } // End namespace 00085 00086 #endif