33 const Entry entries[] = {
40 :
Multipole(multipole), geometry(multipole.geometry), field(multipole.field) {}
49 if (aKey[0] ==
'A' || aKey[0] ==
'B') {
52 for (std::string::size_type k = 1; k < aKey.length(); k++) {
53 if (isdigit(aKey[k])) {
54 n = 10 * n + aKey[k] -
'0';
68 for (
const Entry* entry = entries; entry->name != 0; ++entry) {
69 if (aKey == entry->name) {
The magnetic field of a multipole.
Abstract interface for read/write access to variable.
virtual Channel * getChannel(const std::string &aKey, bool create=false)
Construct a read/write channel.
virtual double getElementLength() const
Get design length.
virtual void setElementLength(double length)
Set design length.
Access to an indexed [b]double[/b] data member.
Access to a [b]double[/b] data member.
virtual ElementBase * clone() const
Return clone.
virtual Channel * getChannel(const std::string &aKey, bool=false)
Construct a read/write channel.
StraightGeometry geometry
Multipole geometry.
virtual BMultipoleField & getField()
Get field.
BMultipoleField field
Multipole field.
virtual void setField(const BMultipoleField &field)
Set mulitpole field.
virtual StraightGeometry & getGeometry()
Get geometry.
Interface for general multipole.
void setSkewComponent(int n, double)
void setNormalComponent(int n, double)
double getSkewComponent(int n) const
Gets the n-th skew component of the multipole expansion.
double getNormalComponent(int n) const
Gets the n-th normal component of the multipole expansion.
A geometry representing a straight line.