34 "The \"QUADRUPOLE\" element defines a Quadrupole."),
35 parmatint_m(nullptr) {
37 (
"K1",
"Normalised upright quadrupole coefficient in m^(-2)");
39 (
"DK1",
"Normalised upright quadrupole coefficient error in m^(-2)");
41 (
"K1S",
"Normalised skew quadrupole coefficient in m^(-2)");
43 (
"DK1S",
"Normalised skew quadrupole coefficient error in m^(-2)");
45 (
"NSLICES",
"The number of slices/ steps for this element in Map Tracking", 1);
55 parmatint_m(nullptr) {
double getReal(const Attribute &attr)
Return real value.
Attribute makeReal(const std::string &name, const std::string &help)
Make real attribute.
std::string getString(const Attribute &attr)
Get string value.
constexpr double c
The velocity of light in m/s.
ElementBase * getElement() const
Return the embedded CLASSIC element.
void setElement(ElementBase *)
Assign new CLASSIC element.
std::vector< Attribute > itsAttr
The object attributes.
double getP0() const
Return value of global reference momentum.
static OpalData * getInstance()
virtual void setElementLength(double length)
Set design length.
virtual void setParticleMatterInteraction(ParticleMatterInteractionHandler *spys)
void setNSlices(const std::size_t &nSlices)
void setNormalComponent(int, double)
Set normal component.
void setSkewComponent(int, double)
Set skew component.
virtual void setField(const BMultipoleField &field)
Set mulitpole field.
The magnetic field of a multipole.
void setNormalComponent(int n, double Bn)
Set component.
void setSkewComponent(int n, double Bn)
Set component.
@ PARTICLEMATTERINTERACTION
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 void print(std::ostream &) const
Print the quadrupole.
virtual ~OpalQuadrupole()
virtual OpalQuadrupole * clone(const std::string &name)
Make clone.
ParticleMatterInteraction * parmatint_m
OpalQuadrupole()
Exemplar constructor.
virtual void update()
Update the embedded CLASSIC multipole.
virtual ParticleMatterInteraction * clone(const std::string &name)
Make clone.
static ParticleMatterInteraction * find(const std::string &name)
Find named PARTICLEMATTERINTERACTION.
ParticleMatterInteractionHandler * handler_m
void initParticleMatterInteractionHandler(ElementBase &element)