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