28#ifndef COORDINATE_TRANSFORM_H
29#define COORDINATE_TRANSFORM_H
77 const double &lambdaleft,
78 const double &lambdaright,
115 const double &boundingBoxLength);
double getUnitTangentVectorX(double s, void *p)
Internal function used for GSL numerical integration.
double getUnitTangentVectorY(double s, void *p)
Internal function used for GSL numerical integration.
std::vector< double > getUnitTangentVector(const double &s) const
Returns unit tangent vector.
~CoordinateTransform()
Destructor, does nothing.
static const int algorithm
void transformFromEntranceCoordinates(std::vector< double > &coordinates, const double &boundingBoxLength)
Transforms from coordinate system centred in the middle of the magnet to the coordinate system placed...
void calcXCoordinate(const double &xlab, const double &ylab)
Calculates the coordinate x, coordinate s must be calculated first!
static const double error
CoordinateTransform()=delete
Default constructor, transforms everything to the origin.
std::vector< double > getTransformation() const
Returns a list of transformed coordinates.
std::vector< double > calcReferenceTrajectory(const double &s) const
Calculates reference trajectory by integrating the unit tangent vector.
CoordinateTransform & operator=(const CoordinateTransform &transform)
Assigment operator.
void calcSCoordinate(const double &xlab, const double &ylab)
Calculates the coordinate s.
static const int workspaceSize