34 "The \"CYCLOTRON\" defines an 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", 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) [deg]");
85 (
"MINZ",
"Minimal vertical extent of the machine [mm]",-10000.0);
88 (
"MAXZ",
"Maximal vertical extent of the machine [mm]",10000.0);
91 (
"MINR",
"Minimal radial extent of the machine [mm]", 0.0);
94 (
"MAXR",
"Maximal radial extent of the machine [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",
false);
109 (
"TRIMCOILTHRESHOLD",
"Minimum magnetic field [T] for which trim coils are applied", 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)
Attribute makeBool(const std::string &name, const std::string &help)
Make logical attribute.
double getReal(const Attribute &attr)
Return real value.
Attribute makeStringArray(const std::string &name, const std::string &help)
Create a string array attribute.
Attribute makeReal(const std::string &name, const std::string &help)
Make real attribute.
std::vector< bool > getBoolArray(const Attribute &attr)
Get logical array value.
bool getBool(const Attribute &attr)
Return logical value.
Attribute makeRealArray(const std::string &name, const std::string &help)
Create real array attribute.
std::vector< double > getRealArray(const Attribute &attr)
Get array value.
std::vector< std::string > getStringArray(const Attribute &attr)
Get string array value.
std::string getString(const Attribute &attr)
Get string value.
Attribute makeBoolArray(const std::string &name, const std::string &help)
Create a logical array attribute.
Attribute makeString(const std::string &name, const std::string &help)
Make string attribute.
boost::function< boost::tuple< double, bool >(arguments_t)> type
ElementBase * getElement() const
Return the embedded CLASSIC element.
void setElement(ElementBase *)
Assign new CLASSIC element.
std::vector< Attribute > itsAttr
The object attributes.
void setTrimCoilThreshold(double)
void setZinit(double zinit)
void setSpiralFlag(bool spiral_flag)
void setSuperpose(std::vector< bool > flag)
void setRfPhi(std::vector< double > f)
void setRFVCoeffFN(std::vector< std::string > rfv_coeff_fn)
void setPZinit(double zinit)
void setCyclotronType(const std::string &type)
void setEScale(std::vector< double > bs)
void setSymmetry(double symmetry)
void setFieldMapFN(const std::string &fmapfn)
void setTrimCoils(const std::vector< TrimCoil * > &trimcoils)
void setCyclHarm(double h)
void setPHIinit(double phiinit)
void setRfFrequ(std::vector< double > f)
void setPRinit(double prinit)
void setRfFieldMapFN(std::vector< std::string > rffmapfn)
void setFMHighE(double e)
void setRinit(double rinit)
void setRFFCoeffFN(std::vector< std::string > rff_coeff_fn)
void setBScale(double bs)
virtual void setBoundaryGeometry(BoundaryGeometry *geo)
void setOutputFN(std::string fn)
Set output filename.
static OpalTrimCoil * find(const std::string &name)
Find named trim coil.
std::unique_ptr< TrimCoil > trimcoil_m
Actual implementation.
void initOpalTrimCoil()
Initialise implementation.
virtual void update()
Update the embedded CLASSIC cavity.
BoundaryGeometry * obgeo_m
virtual OpalCyclotron * clone(const std::string &name)
Make clone.
virtual void updateUnknown(ElementBase *)
Transmit the `‘unknown’' (not known to OPAL) attributes to CLASSIC.
void registerOwnership() const
static BoundaryGeometry * find(const std::string &name)