30#ifndef CLASSIC_MULTIPOLETBASE_H
31#define CLASSIC_MULTIPOLETBASE_H
129 virtual double getFn(
size_t n,
double x,
double s) = 0;
virtual ~MultipoleTBase()=default
Destructor.
virtual void setMaxOrder(size_t, size_t)
Set the number of terms used in calculation of field components .
virtual Vector_t localCartesianToOpalCartesian(const Vector_t &r)=0
virtual void transformCoords(Vector_t &R)=0
Transform to Frenet-Serret coordinates for sector magnets.
virtual const BGeometryBase & getGeometry() const =0
Return the cell geometry.
virtual double localCartesianRotation()
double getBz(const Vector_t &R)
Returns the vertical field component Returns zero far outside fringe field .
virtual void initialise()=0
Initialise the element.
virtual void transformBField(Vector_t &B, const Vector_t &R)=0
Transform B-field from Frenet-Serret coordinates to lab coordinates.
virtual double getScaleFactor(double x, double s)=0
Returns the scale factor .
virtual BGeometryBase & getGeometry()=0
Return the cell geometry.
virtual double getBx(const Vector_t &R)
Returns the radial component of the field Returns zero far outside fringe field .
MultipoleTBase(MultipoleT *element)
Constructor.
virtual double getBs(const Vector_t &R)
Returns the component of the field along the central axis Returns zero far outside fringe field .
virtual double getFn(size_t n, double x, double s)=0
Calculate fn(x, s) by expanding the differential operator (from Laplacian and scalar potential) in te...
Abstract base class for accelerator geometry classes.