1 #ifndef CLASSIC_BENDBASE_H
2 #define CLASSIC_BENDBASE_H
18 virtual bool bends()
const;
29 virtual void setDesignEnergy(
const double& energy,
bool changeable =
true);
44 double calcBendAngle(
double chordLength,
double radius)
const;
PETE_TUTree< FnAbs, typename T::PETE_Expr_t > abs(const PETE_Expr< T > &l)
double calcGamma() const
Calculate gamma from design energy.
std::vector< Vector_t > getDesignPath() const
std::vector< Vector_t > refTrajMap_m
Map of reference particle trajectory.
const bool fast_m
Flag to turn on fast field calculation.
void setFieldMapFN(std::string fileName)
double calcBendAngle(double chordLength, double radius) const
Calculate bend angle from chord length and design radius.
virtual void setDesignEnergy(const double &energy, bool changeable=true)
double fieldAmplitude_m
Field amplitude.
double calcBetaGamma() const
Calculate beta*gamma from design energy.
double getChordLength() const
double designEnergy_m
Bend design energy (eV).
virtual void setEntranceAngle(double entranceAngle)
double getBendAngle() const
double getFieldAmplitude() const
double getDesignEnergy() const
double gap_m
Full vertical gap of the magnets.
virtual double getExitAngle() const =0
virtual void setBendAngle(double angle)
Fieldmap * fieldmap_m
Magnet field map.
double getEntranceAngle() const
bool designEnergyChangeable_m
double calcFieldAmplitude(double radius) const
Calculate field amplitude from design energy and radius.
double calcDesignRadius(double fieldAmplitude) const
Calculate design radius from design energy and field amplitude.
void setFieldAmplitude(double k0, double k0s)
virtual bool bends() const
Indicates that element bends the beam.
std::string getFieldMapFN() const
double getFullGap() const
double angle_m
Bend angle.
Interface for a single beam element.