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
00031 namespace Atlfast {
00032
00033
00034 class TrackTrajectory: public virtual ITrackTrajectory {
00035
00036 private:
00037
00038
00039 double m_impactParameter ;
00040 double m_zPerigee ;
00041 Phi m_phi ;
00042 double m_cotTheta ;
00043 double m_invPtCharge ;
00044 ::HepPoint3D m_startPoint ;
00045 double m_curvature ;
00046
00047
00048 Hep3Vector m_threeMomentum ;
00049
00050
00051 void set_impactParameter( double val );
00052 void set_zPerigee( double val ) ;
00053 void set_phi( const Phi& val ) ;
00054 void set_cotTheta( double val ) ;
00055 void set_invPtCharge( double val ) ;
00056 void set_startPoint( HepPoint3D val) ;
00057 void set_curvature( double val) ;
00058
00059
00060 void convertToThreeMomentum() ;
00061
00062
00063
00064 public:
00065
00066
00067 TrackTrajectory(
00068 double impactParameter,
00069 double zPerigee,
00070 Phi phi,
00071 double cotTheta,
00072 double invPtCharge,
00073 double curvature,
00074 HepPoint3D startPoint
00075 );
00076
00077
00078 TrackTrajectory(
00079 const Hep3Vector& p,
00080 const Hep3Vector& vertex,
00081 double charge,
00082 double bField
00083 );
00084
00085
00086 TrackTrajectory( const TrackTrajectory& src ) ;
00087
00088
00089 ~TrackTrajectory() ;
00090
00091
00092 TrackTrajectory& operator=( const TrackTrajectory& src ) ;
00093
00094
00095 virtual double impactParameter() const ;
00096 virtual double zPerigee() const ;
00097 virtual double phi() const ;
00098 virtual double eta() const ;
00099 virtual double cotTheta() const ;
00100 virtual double pT() const ;
00101 virtual Hep3Vector threeMomentum() const ;
00102 virtual operator Hep3Vector() const ;
00103 virtual double invPtCharge() const ;
00104 virtual double radius() const ;
00105 virtual int signOfCharge() const ;
00106 virtual HepPoint3D startPoint() const ;
00107 virtual double curvature() const ;
00108
00109 };
00110
00111 }
00112
00113 #endif