00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef TrkLineTraj_H
00014 #define TrkLineTraj_H
00015 #include "MdcGeom/TrkGeomTraj.h"
00016 #include "CLHEP/Geometry/Point3D.h"
00017 #include "CLHEP/Vector/ThreeVector.h"
00018
00019 class TrkLineTraj : public TrkGeomTraj
00020 {
00021 public:
00022
00023
00024
00025 TrkLineTraj( const HepPoint3D& point, const Hep3Vector& direction, double length);
00026 TrkLineTraj(const HepPoint3D& point, const Hep3Vector& direction, double lorange, double hirange);
00027 TrkLineTraj( const HepPoint3D& point1, const HepPoint3D& point2);
00028 TrkLineTraj( const TrkLineTraj& );
00029
00030 TrkLineTraj* clone() const;
00031
00032
00033 ~TrkLineTraj();
00034
00035
00036 TrkLineTraj& operator=(const TrkLineTraj&);
00037
00038
00039 HepPoint3D position( double ) const;
00040 Hep3Vector direction( double ) const;
00041 double curvature( double f = 0. ) const;
00042 Hep3Vector delDirect( double ) const;
00043 void getInfo(double fltLen, HepPoint3D& , Hep3Vector& direction) const;
00044 void getInfo(double fltLen, HepPoint3D& , Hep3Vector& direction,
00045 Hep3Vector& delDirect) const;
00046
00047 virtual double distTo1stError(double s, double tol, int pathDir) const;
00048 virtual double distTo2ndError(double s, double tol, int pathDir) const;
00049
00050
00051 void accept(TrkGeomTrajVisitor& visitor) const;
00052
00053
00054 private:
00055 HepPoint3D _start;
00056 Hep3Vector _direction;
00057 };
00058 #endif