33 const Entry entries[] = {
53 geometry(multipole.geometry),
54 field(multipole.field)
75 if(aKey[0] ==
'A' || aKey[0] ==
'B') {
78 for(std::string::size_type k = 1; k < aKey.length(); k++) {
79 if(isdigit(aKey[k])) {
80 n = 10 *
n + aKey[k] -
'0';
96 for(
const Entry *entry = entries; entry->name != 0; ++entry) {
97 if(aKey == entry->name) {
99 (*
this, entry->get, entry->set);
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.
Interface for general multipole.
void setNormalComponent(int, double)
Set normal component.
double getSkewComponent(int n) const
Get skew component.
void setSkewComponent(int, double)
Set skew component.
double getNormalComponent(int n) const
Get normal component.
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.
A geometry representing a straight line.
Abstract interface for read/write access to variable.
Access to an indexed [b]double[/b] data member.
Access to a [b]double[/b] data member.
The magnetic field of a multipole.