6#include "CgemGeomSvc/StraightLine.h"
34 if(pos1.y()<pos2.y()) {
39 else if(pos1.y()==pos2.y()&&pos1.x()>pos2.x()) {
46 double phi_vec =
vec.phi();
50 double dphi1=pos1.phi()-
phi0;
51 double dr = pos1.perp()*
cos(dphi1);
54 if(pos1.y()!=pos2.y()) {
65 cout<<
"s1>=s2!!!"<<endl;
68 tanl=(pos2.z()-pos1.z())/(s2-s1);
85 double z=m_a[2]+
s*m_a[3];
94 ss=sqrt(R*R-m_a[0]*m_a[0]);
103 double ss=
sAtR(R, direction);
104 if(ss!=999999.) pos=
x(ss);
117 double dphi=
phi0()-phi;
120 if(fabs(dphi)<
M_PI/2)
131 if(ss!=999999.) pos=
x(ss);
154 cout<<
"line pivot: "<<m_pivot<<endl;
155 cout<<
" par: "<<m_a<<endl;
HepGeom::Point3D< double > HepPoint3D
double tan(const BesAngle a)
double sin(const BesAngle a)
double cos(const BesAngle a)
double sAtPhi(double phi) const
HepPoint3D x(double s=0.) const
returns position after moving s in downwoards
virtual ~StraightLine()
Destructor.
const HepPoint3D & pivot(void) const
returns pivot position.
HepPoint3D xAtR(double R, int direction=1) const
double dr(void) const
returns an element of parameters.
void set(const HepVector &a)
returns position and convariance matrix(Ex) after moving s.
HepPoint3D xAtPhi(double phi) const
const HepVector & a(void) const
returns helix parameters.
StraightLine(const HepPoint3D &pivot, const HepVector &a)
double sAtR(double R, int direction=1) const