1 #ifndef CLASSIC_BSingleMultipoleField_HH
2 #define CLASSIC_BSingleMultipoleField_HH
75 void scale(
double scalar);
90 template <
int order>
inline
96 template <
int order>
inline
99 strength(field.strength)
108 template <
int order>
inline
116 template <
int order>
inline
128 template <
int order>
inline
131 std::complex<double> z(point.
getX(), point.
getY());
132 std::complex<double> B = strength;
134 for(
int i = 0; i < order; i++) {
139 for(
int i = 0; i > order; i--) {
147 template <
int order>
inline
150 return Bfield(point);
154 template <
int order>
inline
160 template <
int order>
inline
166 template <
int order>
inline
172 template <
int order>
inline
FLieGenerator< T, N > imag(const FLieGenerator< std::complex< T >, N > &)
Take imaginary part of a complex generator.
FLieGenerator< T, N > real(const FLieGenerator< std::complex< T >, N > &)
Take real part of a complex generator.
PETE_TUTree< FnAbs, typename T::PETE_Expr_t > abs(const PETE_Expr< T > &l)
The magnetic field of a multipole.
void setNormalComponent(int n, double Bn)
Set component.
void setSkewComponent(int n, double Bn)
Set component.
Representation for a single magnetic multipole field.
virtual double getComponent() const
Return field coefficient.
virtual ~BSingleMultipoleField()
virtual void setComponent(double)
Set field coefficient.
virtual BVector Bfield(const Point3D &X) const
Field at a given point.
int size() const
Return order.
void scale(double scalar)
Scale the field.
BSingleMultipoleField & operator=(const BSingleMultipoleField &)
BSingleMultipoleField()
Default constructor.
double getX() const
Return coordinate.
double getY() const
Return coordinate.
Abstract base class for electromagnetic fields.