17 std::string(
"The \"VerticalFFAMagnet\" element defines a vertical FFA ")+
18 std::string(
"magnet, which has a field that increases in the vertical ")+
19 std::string(
"direction while maintaining similar orbits.");
23 (
"B0",
"The nominal dipole field of the magnet at zero height [T].");
25 "Exponent term in the field index [m^(-1)].");
27 "The full width of the magnet. Particles moving more than WIDTH/2 horizontally, in either direction, are out of the aperture.");
29 "The maximum power in horizontal coordinate that will be considered in the field expansion.");
31 "The end length of the FFA fringe field [m].");
33 "The centre length of the FFA (i.e. length of the flat top) [m].");
35 "Determines the length of the bounding box. Magnet is situated symmetrically in the bounding box. [m]");
37 "Height of the magnet above z=0. Particles moving upwards more than HEIGHT_POS_EXTENT are out of the aperture [m].");
39 "Height of the magnet below z=0. Particles moving downwards more than HEIGHT_NEG_EXTENT are out of the aperture [m].");
100 endField->
setX0(centre_length/2.);
static void setTanhDiffIndices(size_t n)
void setWidth(double width)
Interface for basic beam line object.
virtual void fillRegisteredAttributes(const ElementBase &, ValueFlag)
Fill in all registered attributes.
void setFieldIndex(double index)
ValueFlag
Switch for value desired on ATTLIST command.
static std::string docstring_m
void setEndField(endfieldmodel::EndFieldModel *endField)
virtual ElementBase * removeWrappers()
Return the design element.
void setMaxOrder(size_t maxOrder)
std::vector< Attribute > itsAttr
The object attributes (see Attribute.hh).
void setBBLength(double bbLength)
void setPositiveVerticalExtent(double positiveExtent)
virtual void fillRegisteredAttributes(const ElementBase &, ValueFlag)
virtual ~OpalVerticalFFAMagnet()
void setLambda(double lambda)
Base class for all beam line elements.
virtual OpalVerticalFFAMagnet * clone(const std::string &name)
void setElement(ElementBase *)
Assign new CLASSIC element.
void setNegativeVerticalExtent(double negativeExtent)
void registerOwnership() const
ElementBase * getElement() const
Return the embedded CLASSIC element.
virtual ElementBase * makeAlignWrapper()
Allow misalignment.
double getReal(const Attribute &attr)
Return real value.
Attribute makeReal(const std::string &name, const std::string &help)
Make real attribute.
static AttCell * registerRealAttribute(const std::string &name)
Register a ``real'' element attribute.
void initialise(PartBunchBase< double, 3 > *bunch, double &startField, double &endField)
PETE_TUTree< FnFloor, typename T::PETE_Expr_t > floor(const PETE_Expr< T > &l)
endfieldmodel::EndFieldModel * getEndField() const