31 using namespace Physics;
58 "The \"WAKE\" statement defines data for the wakefuction "
62 (
"TYPE",
"Specifies the wake function: 1D-CSR, 1D-CSR-IGF, LONG-SHORT-RANGE, TRANSV-SHORT-RANGE, LONG-TRANSV-SHORT-RANGE");
65 (
"NBIN",
"Number of bins for the line density calculation");
68 (
"CONST_LENGTH",
"True if the length of the Bunch is considered as constant");
71 (
"CONDUCT",
"Conductivity: DC, AC");
74 (
"Z0",
"Impedance of the beam pipe ");
77 (
"FORM",
"The form of the beam pipe: ROUND");
80 (
"RADIUS",
"The radius of the beam pipe [m]");
83 (
"SIGMA",
"Material constant dependant on the beam pipe material");
86 (
"TAU",
"Material constant dependant on the beam pipe material");
89 (
"FILTERS",
"List of filters to apply on line density");
92 (
"FNAME",
"Filename of the wakefield file");
122 return dynamic_cast<OpalWake *
>(object) != 0;
140 throw OpalException(
"OpalWake::find()",
"Wake \"" + name +
"\" not found.");
158 *gmsg <<
"* ************* W A K E ************************************************************\n";
159 *gmsg <<
"OpalWake::initWakefunction ";
160 *gmsg <<
"for element " << element.
getName() <<
"\n";
161 *gmsg <<
"* **********************************************************************************" <<
endl;
166 std::vector<Filter *> filters;
168 for(std::vector<std::string>::const_iterator fit = filters_str.begin(); fit != filters_str.end(); ++ fit) {
181 "At least 8 bins have to be used, ideally far more");
193 "At least 8 bins have to be used, ideally far more");
237 INFOMSG(
"no wakefunction attached" << endl);
242 os <<
"* ************* W A K E ************************************************************ " <<
std::endl;
252 os <<
"* ********************************************************************************** " <<
std::endl;
virtual void update()
Update the WAKE data.
Interface for basic beam line object.
void define(Object *newObject)
Define a new object.
The base class for all OPAL definitions.
void print(std::ostream &os) const
Print the object.
The base class for all OPAL exceptions.
std::string toUpper(const std::string &str)
virtual const std::string & getName() const
Get element name.
std::vector< Attribute > itsAttr
The object attributes (see Attribute.hh).
bool getBool(const Attribute &attr)
Return logical value.
void initWakefunction(ElementBase &element)
Attribute makeStringArray(const std::string &name, const std::string &help)
Create a string array attribute.
static OpalData * getInstance()
const std::string & getOpalName() const
Return object name.
virtual OpalWake * clone(const std::string &name)
Make clone.
virtual void execute()
Check the WAKE data.
std::vector< std::string > getStringArray(const Attribute &attr)
Get string array value.
static OpalWake * find(const std::string &name)
Find named WAKE.
void registerOwnership(const AttributeHandler::OwnerType &itsClass) const
OpalWake()
Exemplar constructor.
Object * find(const std::string &name)
Find entry.
The base class for all OPAL objects.
Attribute makeBool(const std::string &name, const std::string &help)
Make logical attribute.
ElementBase * itsElement_m
void setOpalName(const std::string &name)
Set object name.
static OpalFilter * find(const std::string &name)
Find named FILTER.
bool builtin
Built-in flag.
double getReal(const Attribute &attr)
Return real value.
Attribute makeString(const std::string &name, const std::string &help)
Make string attribute.
Attribute makeReal(const std::string &name, const std::string &help)
Make real attribute.
virtual bool canReplaceBy(Object *object)
Test if replacement is allowed.
Inform & endl(Inform &inf)
std::string getString(const Attribute &attr)
Get string value.