37 "The \"CYCLOTRON\" defines an cyclotron"),
40 (
"CYHARMON",
"the harmonic number of the cyclotron");
43 (
"SYMMETRY",
"defines how the field is stored");
46 (
"RINIT",
"Initial radius of the reference particle [mm]");
49 (
"PRINIT",
"Initial radial momentum of the reference particle, pr = beta_r * gamma");
52 (
"PHIINIT",
"Initial azimuth of the reference particle [deg]");
55 (
"ZINIT",
"Initial z-coordinate of the reference particle [mm]. Default = 0 mm", 0.0);
58 (
"PZINIT",
"Initial vertical momentum of the reference particle pz = beta_z * gamma. Default = 0", 0.0);
61 (
"FMAPFN",
"Filename for the B fieldmap");
64 (
"BSCALE",
"Scale factor for the B-field", 1.0);
67 (
"RFFREQ",
"RF Frequency(ies) [MHz]");
70 (
"ESCALE",
"Scale factor for the RF field(s)");
73 (
"SUPERPOSE",
"If TRUE, all of the electric field maps are superposed, only used when TYPE = BANDRF");
76 (
"RFMAPFN",
"Filename(s) for the RF fieldmap(s)");
79 (
"RFFCFN",
"Filename(s) for the RF Frequency Coefficients");
82 (
"RFVCFN",
"Filename(s) for the RF Voltage Coefficients");
85 (
"RFPHI",
"Initial phase(s) of the electric field map(s) [deg]");
88 (
"TYPE",
"Used to identify special cyclotron types");
91 (
"MINZ",
"Minimal vertical extent of the machine [mm]",-10000.0);
94 (
"MAXZ",
"Maximal vertical extent of the machine [mm]",10000.0);
97 (
"MINR",
"Minimal radial extent of the machine [mm]", 0.0);
100 (
"MAXR",
"Maximal radial extent of the machine [mm]", 10000.0);
103 (
"GEOMETRY",
"Boundary Geometry for the Cyclotron");
106 (
"FMLOWE",
"Minimal Energy [MeV] the fieldmap can accept. Used in GAUSSMATCHED", -1.0);
109 (
"FMHIGHE",
"Maximal Energy [MeV] the fieldmap can accept. Used in GAUSSMATCHED", -1.0);
112 (
"SPIRAL",
"Flag whether or not this is a spiral inflector simulation",
false);
115 (
"TRIMCOILTHRESHOLD",
"Minimum magnetic field [T] for which trim coils are applied", 0.0);
118 (
"TRIMCOIL",
"List of trim coils");
235 if ( !trimcoil.empty() ) {
237 std::vector<TrimCoil* > trimcoils;
239 for (std::vector<std::string>::const_iterator tit = trimcoil.begin();
240 tit != trimcoil.end(); ++tit)
BoundaryGeometry * obgeo_m
The OpalCyclotron element.
static AttCell * registerStringAttribute(const std::string &name)
Register a ``string'' element attribute.
Interface for basic beam line object.
void setRinit(double rinit)
void setFMHighE(double e)
virtual void fillRegisteredAttributes(const ElementBase &, ValueFlag)
Fill in all registered attributes.
virtual void update()
Update the embedded CLASSIC cavity.
ValueFlag
Switch for value desired on ATTLIST command.
virtual ElementBase * removeWrappers()
Return the design element.
void setTrimCoils(const std::vector< TrimCoil * > &trimcoils)
void setFieldMapFN(std::string fmapfn)
void setRFFCoeffFN(std::vector< std::string > rff_coeff_fn)
void setSuperpose(std::vector< bool > flag)
std::vector< bool > getBoolArray(const Attribute &attr)
Get logical array value.
std::vector< Attribute > itsAttr
The object attributes (see Attribute.hh).
void setRfFieldMapFN(std::vector< std::string > rffmapfn)
bool getBool(const Attribute &attr)
Return logical value.
Attribute makeStringArray(const std::string &name, const std::string &help)
Create a string array attribute.
Attribute makeBoolArray(const std::string &name, const std::string &help)
Create a logical array attribute.
void setCyclHarm(double h)
virtual void setBoundaryGeometry(BoundaryGeometry *geo)
void setPZinit(double zinit)
void setEScale(std::vector< double > bs)
void setPRinit(double prinit)
std::vector< std::string > getStringArray(const Attribute &attr)
Get string array value.
void setRfPhi(std::vector< double > f)
static BoundaryGeometry * find(const std::string &name)
Base class for all beam line elements.
void setType(std::string t)
void setRfFrequ(std::vector< double > f)
std::vector< double > getRealArray(const Attribute &attr)
Get array value.
std::unique_ptr< TrimCoil > trimcoil_m
Actual implementation.
void setElement(ElementBase *)
Assign new CLASSIC element.
virtual OpalCyclotron * clone(const std::string &name)
Make clone.
void registerOwnership() const
OpalCyclotron()
Exemplar constructor.
void setPHIinit(double phiinit)
virtual void updateUnknown(ElementBase *)
Transmit the ``unknown'' (not known to OPAL) attributes to CLASSIC.
ElementBase * getElement() const
Return the embedded CLASSIC element.
void setZinit(double zinit)
void setRFVCoeffFN(std::vector< std::string > rfv_coeff_fn)
Attribute makeBool(const std::string &name, const std::string &help)
Make logical attribute.
Representation for a cyclotron magnet system.
void setBScale(double bs)
void initOpalTrimCoil()
Initialise implementation.
Attribute makeRealArray(const std::string &name, const std::string &help)
Create real array attribute.
void setSymmetry(double symmetry)
void setTrimCoilThreshold(double)
double getReal(const Attribute &attr)
Return real value.
virtual void fillRegisteredAttributes(const ElementBase &, ValueFlag)
Fill in all registered attributes.
static OpalTrimCoil * find(const std::string &name)
Find named trim coil.
Attribute makeString(const std::string &name, const std::string &help)
Make string attribute.
void setSpiralFlag(bool spiral_flag)
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.
std::string getString(const Attribute &attr)
Get string value.