32 "The \"RFCAVITY\" element defines a RF cavity"),
36 (
"VOLT",
"RF voltage [MV]");
39 (
"DVOLT",
"RF voltage error [MV]");
42 (
"FREQ",
"RF frequency [MHz]");
45 (
"LAG",
"Phase lag [rad]");
48 (
"DLAG",
"Phase lag error [rad]");
51 (
"FMAPFN",
"Filename of the fieldmap");
54 (
"GEOMETRY",
"BoundaryGeometry for Cavities");
57 (
"FAST",
"Faster but less accurate (default=true)",
true);
60 (
"APVETO",
"Do not use this cavity in the Autophase procedure (default=false)",
false);
63 (
"RMIN",
"Minimal Radius of a cyclotron cavity [mm]");
66 (
"RMAX",
"Maximal Radius of a cyclotron cavity [mm]");
69 (
"ANGLE",
"Azimuth position of a cyclotron cavity [deg]");
72 (
"PDIS",
"Shift distance of cavity gap from center of cyclotron [mm]");
75 (
"GAPWIDTH",
"Gap width of a cyclotron cavity [mm]");
78 (
"PHI0",
"Initial phase of cavity [deg]");
81 (
"DESIGNENERGY",
"The mean energy of the particles at exit", -1.0);
85 (
"PHASE_MODEL",
"The name of the phase time dependence model");
88 (
"AMPLITUDE_MODEL",
"The name of the amplitude time dependence model");
91 (
"FREQUENCY_MODEL",
"The name of the frequency time dependence model");
Attribute makeReal(const std::string &name, const std::string &help)
Make real attribute.
BoundaryGeometry * obgeo_m
virtual void setBoundaryGeometry(BoundaryGeometry *geo)
virtual void setFast(bool fast)
virtual void setFrequencym(double freq)
item[EANGLE] Entrance edge angle(radians).\item[ROTATION] Rotation of the magnet about its central axis(radians
void setPhaseModelName(std::string name)
constexpr double MVpm2Vpm
std::string getString(const Attribute &attr)
Get string value.
constexpr double two_pi
The value of .
virtual void setPhase(double phi)
Set phase.
void setCavityType(const std::string &type)
void setRmax(double rmax)
virtual void setAmplitude(double V)
Set amplitude.
void setAmplitudeModelName(std::string name)
void setAzimuth(double angle)
static BoundaryGeometry * find(const std::string &name)
virtual void setFieldMapFN(const std::string &fmapfn)
Set the name of the field map.
void setElement(ElementBase *)
Assign new CLASSIC element.
bool getBool(const Attribute &attr)
Return logical value.
Attribute makeBool(const std::string &name, const std::string &help)
Make logical attribute.
virtual void setWake(WakeFunction *wf)
attach a wake field to the element
void setGapWidth(double gapwidth)
virtual void setAmplitudem(double vPeak)
void setRmin(double rmin)
Attribute makeString(const std::string &name, const std::string &help)
Make string attribute.
ElementBase * getElement() const
Return the embedded CLASSIC element.
void initWakefunction(const ElementBase &element)
OpalCavity()
Exemplar constructor.
void setFrequencyModelName(std::string name)
virtual void setAutophaseVeto(bool veto=true)
const std::string & getOpalName() const
Return object name.
virtual void setFrequency(double f)
Set frequency.
std::vector< Attribute > itsAttr
The object attributes.
void setPerpenDistance(double pdis)
double getReal(const Attribute &attr)
Return real value.
virtual void setDesignEnergy(const double &ekin, bool changeable=true) override
virtual void setElementLength(double length)
Set design length.
virtual void updateUnknown(ElementBase *)
Transmit the ``unknown'' (not known to OPAL) attributes to CLASSIC.
void setPhi0(double phi0)
virtual void setAmplitudeError(double vPeakError)
virtual void setPhaseError(double phaseError)
virtual void update()
Update the embedded CLASSIC cavity.
virtual OpalCavity * clone(const std::string &name)
Make clone.
static OpalWake * find(const std::string &name)
Find named WAKE.
virtual void update()
Update the embedded CLASSIC element.
void registerOwnership() const
virtual void setPhasem(double phase)