00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef ATLFAST_TRACKTRAJECTORY_H
00023 #define ATLFAST_TRACKTRAJECTORY_H
00024
00025
00026 #include "AtlfastEvent/Phi.h"
00027 #include "AtlfastEvent/ITrackTrajectory.h"
00028 #include "CLHEP/Vector/ThreeVector.h"
00029 #include "CLHEP/Geometry/Point3D.h"
00030 #include "GaudiKernel/StreamBuffer.h"
00031
00032 namespace Atlfast {
00033
00034
00035 class TrackTrajectory: public virtual ITrackTrajectory {
00036
00037 private:
00038
00039
00040 double m_impactParameter ;
00041 double m_zPerigee ;
00042 Phi m_phi ;
00043 double m_cotTheta ;
00044 double m_invPtCharge ;
00045 HepPoint3D m_startPoint ;
00046 double m_curvature ;
00047
00048
00049 Hep3Vector m_threeMomentum ;
00050
00051
00052 void set_impactParameter( double val );
00053 void set_zPerigee( double val ) ;
00054 void set_phi( const Phi& val ) ;
00055 void set_cotTheta( double val ) ;
00056 void set_invPtCharge( double val ) ;
00057 void set_startPoint( HepPoint3D val) ;
00058 void set_curvature( double val) ;
00059
00060
00061 void convertToThreeMomentum() ;
00062
00063
00064
00065 public:
00066
00067
00068 TrackTrajectory(
00069 double impactParameter,
00070 double zPerigee,
00071 const Phi& phi,
00072 double cotTheta,
00073 double invPtCharge,
00074 double curvature,
00075 HepPoint3D startPoint
00076 );
00077
00078
00079 TrackTrajectory(
00080 const Hep3Vector& p,
00081 const Hep3Vector& vertex,
00082 double charge,
00083 double bField
00084 );
00085
00086
00087 TrackTrajectory( const TrackTrajectory& src ) ;
00088
00089
00090 ~TrackTrajectory() ;
00091
00092
00093 TrackTrajectory& operator=( const TrackTrajectory& src ) ;
00094
00095
00096 virtual double impactParameter() const ;
00097 virtual double zPerigee() const ;
00098 virtual double phi() const ;
00099 virtual double eta() const ;
00100 virtual double cotTheta() const ;
00101 virtual double pT() const ;
00102 virtual Hep3Vector threeMomentum() const ;
00103 virtual operator Hep3Vector() const ;
00104 virtual double invPtCharge() const ;
00105 virtual double radius() const ;
00106 virtual int signOfCharge() const ;
00107 virtual HepPoint3D startPoint() const ;
00108 virtual double curvature() const ;
00109
00110
00111
00112
00113
00114
00115 };
00116
00117 }
00118
00119 #endif