1#ifndef CLASSIC_BSingleMultipoleField_HH
2#define CLASSIC_BSingleMultipoleField_HH
75 void scale(
double scalar);
90template <
int order>
inline
96template <
int order>
inline
108template <
int order>
inline
116template <
int order>
inline
128template <
int order>
inline
131 std::complex<double> z(point.
getX(), point.
getY());
134 for(
int i = 0; i < order; i++) {
137 return BVector(std::real(B), -std::imag(B), 0.0);
139 for(
int i = 0; i > order; i--) {
142 return BVector(std::imag(B), std::real(B), 0.0);
147template <
int order>
inline
154template <
int order>
inline
160template <
int order>
inline
166template <
int order>
inline
172template <
int order>
inline
174 return std::abs(order);
The magnetic field of a multipole.
void setNormalComponent(int n, double Bn)
Set component.
void setSkewComponent(int n, double Bn)
Set component.
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.
EMField()
Default constructor.