28 #ifndef CLASSIC_VarRadiusGeometry_HH
29 #define CLASSIC_VarRadiusGeometry_HH
95 void setS0(
const double &s_0);
138 double lambda_right):
139 length_m(length), rho_m(rho), s_0_m(s_0),
140 lambda_left_m(lambda_left), lambda_right_m(lambda_right) {
146 length_m(rhs.length_m), rho_m(rhs.rho_m), s_0_m(rhs.s_0_m),
147 lambda_left_m(rhs.lambda_left_m), lambda_right_m(rhs.lambda_right_m) {
void setLambdaLeft(const double &lambda_left)
virtual Euclid3D getTransform(double fromS, double toS) const
virtual double getEntrance() const
Get entrance position.
virtual double getOrigin() const
Get origin position.
virtual double getExit() const
Get exit position.
virtual void setElementLength(double length)
Abstract base class for accelerator geometry classes.
virtual double getArcLength() const
virtual double getElementLength() const
virtual Euclid3D getEntranceFrame() const
VarRadiusGeometry(double length, double rho, double s_0, double lambda_left, double lambda_right)
virtual Euclid3D getExitFrame() const
Displacement and rotation in space.
double getLambdaRight() const
const VarRadiusGeometry & operator=(const VarRadiusGeometry &right)
void setLambdaRight(const double &lambda_right)
double getLambdaLeft() const
void setRadius(const double &rho)
void setS0(const double &s_0)
virtual ~VarRadiusGeometry()