1 #ifndef CLASSIC_SingleMultipole_HH
2 #define CLASSIC_SingleMultipole_HH
150 field(multipole.
field)
167 template <
int order>
inline
169 return field.getComponent();
172 template <
int order>
inline
174 field.setComponent(value);
192 template <
int order>
inline
197 template <
int order>
inline
203 template <
int order>
inline
209 template <
int order>
inline
211 for(
const Entry *entry = entries; entry->
name != 0; ++entry) {
212 if(aKey == entry->name) {
214 (*
this, entry->get, entry->set);
222 template <
int order>
inline
226 for(
const Entry *entry = entries; entry->
name != 0; ++entry) {
227 image->
setAttribute(entry->name, (this->*(entry->get))());
234 #endif // __SingleMultipole_HH
Representation for a single magnetic multipole field.
Interface for basic beam line object.
virtual void setComponent(double Bn)
Set component.
void(SingleMultipole< order >::* set)(double)
static const std::string type
virtual StraightGeometry & getGeometry()
Get geometry.
virtual ~SingleMultipole()
ElementImage * getImage() const
Construct an image.
virtual Channel * getChannel(const std::string &aKey, bool create=false)
Construct a read/write channel.
virtual double getComponent() const
Get component.
virtual BMultipoleField & getField()
Get field.
Interface for general multipole.
const SingleMultipole< 4 >::Entry entries[]
virtual Channel * getChannel(const std::string &aKey, bool=false)
Construct a read/write channel.
virtual ElementImage * getImage() const
Construct an image.
void setAttribute(const std::string &aKey, double val)
Set value of an attribute.
A geometry representing a straight line.
StraightGeometry geometry
Multipole geometry.
Abstract interface for read/write access to variable.
virtual ElementBase * clone() const
Return clone.
Representation for single multipoles.
The magnetic field of a multipole.
BMultipoleField tempField
void operator=(const SingleMultipole &)
Access to a [b]double[/b] data member.
BSingleMultipoleField< order > field
The single multipole component.