30 "The \"RINGDEFINITION\" element defines basic ring parameters.") {
33 (
"HARMONIC_NUMBER",
"The assumed harmonic number of the ring (i.e. number of bunches in the ring on a given turn) (default = 1).", 1.0);
36 (
"LAT_RINIT",
"The initial radius of the first element to be placed in the ring [m].");
39 (
"LAT_PHIINIT",
"The initial angle around the ring of the first element to be placed. [deg]");
42 (
"LAT_THETAINIT",
"The angle relative to the tangent of the ring for the first element to be placed [deg].");
45 (
"BEAM_PHIINIT",
"The initial angle around the ring of the beam [deg].");
48 (
"BEAM_THETAINIT",
"Defines an angular offset of the beam relative to the tangent vector, in the x-y plane [deg] (default = 0).", 0.0);
51 (
"BEAM_PRINIT",
"An initial pr momentum offset of the beam.");
54 (
"BEAM_RINIT",
"The initial radius of the beam [m].");
57 (
"SYMMETRY",
"The rotational symmetry of the lattice.", 1.0);
60 (
"SCALE",
"Scale the fields by a multiplicative factor", 1.0);
65 (
"RFFREQ",
"The nominal RF frequency of the ring [MHz].");
69 (
"IS_CLOSED",
"Set to 'false' to disable checking for closure of the ring");
72 (
"MIN_R",
"Minimum allowed radius during tracking [m]. If not defined, any radius is allowed. If MIN_R is defined, MAX_R must also be defined.");
75 (
"MAX_R",
"Maximum allowed radius during tracking [m]. If not defined, any radius is allowed. If MAX_R is defined, MIN_R must also be defined.");
121 "If MIN_R is defined, MAX_R must also be defined.");
124 "If MAX_R is defined, MIN_R must also be defined.");
Attribute makeBool(const std::string &name, const std::string &help)
Make logical attribute.
double getReal(const Attribute &attr)
Return real value.
Attribute makeReal(const std::string &name, const std::string &help)
Make real attribute.
bool getBool(const Attribute &attr)
Return logical value.
ElementBase * getElement() const
Return the embedded CLASSIC element.
void setElement(ElementBase *)
Assign new CLASSIC element.
std::vector< Attribute > itsAttr
The object attributes.
Ring describes a ring type geometry for tracking.
void setSymmetry(double symmetry)
Set the rotational symmetry of the ring (number of cells)
void setBeamThetaInit(double thetaInit)
Set the initial beam rotation relative to the tangent vector.
void setBeamRInit(double rInit)
Set the initial beam radius.
void setIsClosed(bool isClosed)
Set flag for closure checking.
void setLatticeThetaInit(double thetaInit)
Set the first element's horizontal angle.
void setHarmonicNumber(double cyclHarm)
Set the harmonic number for RF (number of bunches in the ring)
void setLatticePhiInit(double phiInit)
Set the initial element's azimuthal angle.
void setRingAperture(double minR, double maxR)
Set the ring aperture limits.
void setScale(double scale)
Set the scaling factor for the fields.
void setBeamPRInit(double pRInit)
Set the initial beam radial momentum.
void setBeamPhiInit(double phiInit)
Set the initial beam azimuthal angle.
void setRFFreq(double rfFreq)
Set the nominal RF frequency.
void setLatticeRInit(double rInit)
Set the initial element's radius.
virtual void print(std::ostream &) const
Print the object.
void registerOwnership() const
OpalRingDefinition provides UI wrapper for the Ring.
virtual void print(std::ostream &) const
Calls print on the OpalElement.
virtual ~OpalRingDefinition()
No memory allocated so does nothing.
OpalRingDefinition()
Define mapping from enum variables to string UI parameter names.
virtual OpalRingDefinition * clone(const std::string &name)
Inherited copy constructor.
void update()
Receive parameters from the parser and hand them off to the Ring.
The base class for all OPAL exceptions.