28 #ifndef CLASSIC_VarRadiusGeometry_HH
29 #define CLASSIC_VarRadiusGeometry_HH
97 void setS0(
const double &s_0);
140 double lambda_right):
141 length_m(length), rho_m(rho), s_0_m(s_0),
142 lambda_left_m(lambda_left), lambda_right_m(lambda_right) {
148 length_m(rhs.length_m), rho_m(rhs.rho_m), s_0_m(rhs.s_0_m),
149 lambda_left_m(rhs.lambda_left_m), lambda_right_m(rhs.lambda_right_m) {
178 "The length of an element has to be positive");
virtual Euclid3D getTransform(double fromS, double toS) const
Abstract base class for accelerator geometry classes.
void setS0(const double &s_0)
virtual Euclid3D getExitFrame() const
T::PETE_Expr_t::PETE_Return_t max(const PETE_Expr< T > &expr, NDIndex< D > &loc)
const VarRadiusGeometry & operator=(const VarRadiusGeometry &right)
void setLambdaRight(const double &lambda_right)
virtual double getElementLength() const
virtual double getArcLength() const
virtual double getEntrance() const
Get entrance position.
double getLambdaLeft() const
void setLambdaLeft(const double &lambda_left)
void setRadius(const double &rho)
virtual Euclid3D getEntranceFrame() const
Displacement and rotation in space.
virtual void setElementLength(double length)
double getLambdaRight() const
VarRadiusGeometry(double length, double rho, double s_0, double lambda_left, double lambda_right)
virtual ~VarRadiusGeometry()
virtual double getOrigin() const
Get origin position.
virtual double getExit() const
Get exit position.