#include "Trajectory/Circle2D.hh" double Circle2D::getCurvature(void) const { double delta = 2.0*_b/(1.0 + sqrt(1.0-4.0*_a*_b)); double c = _a/(1.0-2.0*_a*delta); return c; } double Circle2D::getD0(void) const { return 2.0*_b/(1.0 + sqrt(1.0-4.0*_a*_b)); } void Circle2D::setParameters(HepVector pars) { _a = pars[0]; _b = pars[1]; _phi0 = pars[2]; // _delta = 2.0*_b/(1.0 + sqrt(1.0-4.0*_a*_b)); // _c = _a/(1.0-2.0*_a*_delta); } HepPoint3D Circle2D::getPosition(double s ) const { cerr << "Circle2D not parametrized as a function of arc length" << endl; HepPoint3D p; return p; } HepVector3D Circle2D::getDirection(double s ) const { cerr << "Circle2D not parametrized as a function of arc length" << endl; HepVector3D p; return p; } HepVector3D Circle2D::getSecondDerivative(double s ) const { cerr << "Circle2D not parametrized as a function of arc length" << endl; HepVector3D p; return p; } Circle2D Circle2D::create(const HepVector& v) {return Circle2D(v(1),v(2),v(3));} unsigned int Circle2D::getParameterSpaceSize() { return 3; } HepVector Circle2D::getParameters() const { HepVector pars(3); pars[0] = getA(); pars[1] = getB(); pars[2] = getPhi0(); return pars; }