49 "The \"MULTIPOLETSTRAIGHT\" element defines a straight, combined function multipole magnet.") {
51 (
"TP",
"Transverse Profile derivatives in m^(-k)");
53 (
"LFRINGE",
"The length of the left end field in m");
55 (
"RFRINGE",
"The length of the right end field in m");
57 (
"HAPERT",
"The aperture width in m");
59 (
"VAPERT",
"The aperture height in m");
61 (
"EANGLE",
"The entrance angle (rad)");
64 "Number of terms used in each field component");
67 "Rotation angle about its axis for skew elements (rad)");
70 "Distance between centre of magnet and entrance in m");
116 const std::vector<double> transProfile =
118 int transSize = transProfile.size();
129 for(
int comp = 0; comp < transSize; comp++) {
double getReal(const Attribute &attr)
Return real value.
Attribute makeReal(const std::string &name, const std::string &help)
Make real attribute.
Attribute makeRealArray(const std::string &name, const std::string &help)
Create real array attribute.
std::vector< double > getRealArray(const Attribute &attr)
Get array value.
ElementBase * getElement() const
Return the embedded CLASSIC element.
void setElement(ElementBase *)
Assign new CLASSIC element.
std::vector< Attribute > itsAttr
The object attributes.
virtual void setElementLength(double length)
Set design length.
void setRotation(const double &rot)
void setLength(const double &length)
void setEntranceAngle(const double &entranceAngle)
void setTransProfile(const std::size_t &n, const double &Bn)
bool setFringeField(const double &s0, const double &lambda_left, const double &lambda_right)
void setBoundingBoxLength(const double &boundingBoxLength)
void setAperture(const double &vertAp, const double &horizAp)
void setTransMaxOrder(const std::size_t &transMaxOrder)
virtual void setMaxOrder(const std::size_t &maxOrder) override
StraightGeometry & getGeometry() override
A geometry representing a straight line.
virtual void updateUnknown(ElementBase *)
Transmit the `‘unknown’' (not known to OPAL) attributes to CLASSIC.
virtual void print(std::ostream &) const
Print the object.
virtual void update()
Update the embedded CLASSIC element.
void registerOwnership() const
virtual OpalMultipoleTStraight * clone(const std::string &name)
virtual ~OpalMultipoleTStraight()
void print(std::ostream &os) const
Print the object.