13 chordLength_m(right.chordLength_m),
14 angle_m(right.angle_m),
15 entranceAngle_m(right.entranceAngle_m),
16 fieldmap_m(right.fieldmap_m),
18 designEnergy_m(right.designEnergy_m),
19 designEnergyChangeable_m(true),
20 refTrajMap_m(right.refTrajMap_m),
21 fieldAmplitudeX_m(right.fieldAmplitudeX_m),
22 fieldAmplitudeY_m(right.fieldAmplitudeY_m),
23 fieldAmplitude_m(right.fieldAmplitude_m),
24 fileName_m(right.fileName_m)
35 designEnergyChangeable_m(true),
36 fieldAmplitudeX_m(0.0),
37 fieldAmplitudeY_m(0.0),
38 fieldAmplitude_m(0.0),
45 std::vector<Vector_t> designPath(size);
48 for (
unsigned int i = 0; i < size; ++ i) {
50 designPath[i] = currentPosition;
76 return betaGamma * mass / (
Physics::c * radius * charge);
81 return 2.0 *
std::asin(chordLength / (2.0 * radius));
86 return chordLength / (2.0 *
std::sin(angle / 2.0));
Tps< T > pow(const Tps< T > &x, int y)
Integer power.
Tps< T > sin(const Tps< T > &x)
Sine.
Tps< T > sqrt(const Tps< T > &x)
Square root.
PETE_TUTree< FnArcSin, typename T::PETE_Expr_t > asin(const PETE_Expr< T > &l)
PETE_TUTree< FnAbs, typename T::PETE_Expr_t > abs(const PETE_Expr< T > &l)
constexpr double c
The velocity of light in m/s.
double getQ() const
Access to reference data.
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.
double calcBendAngle(double chordLength, double radius) const
Calculate bend angle from chord length and design radius.
double calcBetaGamma() const
Calculate beta*gamma from design energy.
double designEnergy_m
Bend design energy (eV).
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)
Interface for a single beam element.
PartBunchBase< double, 3 > * RefPartBunch_m