|
OPAL (Object Oriented Parallel Accelerator Library)
2024.1
OPAL
|
#include <OpalElement.h>


Public Types | |
| enum | { TYPE, APERT, LENGTH, ELEMEDGE, WAKEF, PARTICLEMATTERINTERACTION, ORIGIN, ORIENTATION, X, Y, Z, THETA, PHI, PSI, DX, DY, DZ, DTHETA, DPHI, DPSI, OUTFN, DELETEONTRANSVERSEEXIT, COMMON } |
| The common attributes for all elements. More... | |
Public Types inherited from Element | |
| enum | ReferenceType { IS_ENTRY, IS_CENTRE, IS_EXIT } |
| Reference for element positioning. More... | |
Public Member Functions | |
| virtual | ~OpalElement () |
| virtual double | getLength () const |
| Return element length. More... | |
| const std::string | getTypeName () const |
| Return the element's type name. More... | |
| std::pair< ApertureType, std::vector< double > > | getApert () const |
| const std::string | getWakeF () const |
| Return the element's type name. More... | |
| const std::string | getParticleMatterInteraction () const |
| const std::string | getWMaterial () const |
| const std::string | getWakeGeom () const |
| std::vector< double > | getWakeParam () const |
| const std::string | getWakeConductivity () const |
| virtual void | parse (Statement &) |
| Parse the element. More... | |
| virtual void | print (std::ostream &) const |
| Print the object. More... | |
| virtual void | update () |
| Update the embedded CLASSIC element. More... | |
| virtual void | updateUnknown (ElementBase *) |
| Transmit the ``unknown'' (not known to OPAL) attributes to CLASSIC. More... | |
Public Member Functions inherited from Element | |
| virtual | ~Element () |
| virtual bool | canReplaceBy (Object *object) |
| Test if replacement is allowed. More... | |
| virtual const std::string | getCategory () const |
| Return the object category as a string. More... | |
| virtual bool | shouldTrace () const |
| Trace flag. More... | |
| virtual bool | shouldUpdate () const |
| Update flag. More... | |
| virtual double | getEntrance (ReferenceType) const |
| Return arc length from origin to entrance (negative !). More... | |
| virtual double | getExit (ReferenceType) const |
| Return arc length from origin to exit (positive !). More... | |
| virtual void | setShared (bool) |
| Set shared flag. More... | |
| ElementBase * | getElement () const |
| Return the embedded CLASSIC element. More... | |
| void | setElement (ElementBase *) |
| Assign new CLASSIC element. More... | |
Public Member Functions inherited from Object | |
| virtual | ~Object () |
| virtual Object * | clone (const std::string &name)=0 |
| Return a clone. More... | |
| void | copyAttributes (const Object &) |
| Copy attributes from another object. More... | |
| virtual void | execute () |
| Execute the command. More... | |
| virtual Attribute * | findAttribute (const std::string &name) |
| Find an attribute by name. More... | |
| virtual const Attribute * | findAttribute (const std::string &name) const |
| Find an attribute by name. More... | |
| virtual Object * | makeTemplate (const std::string &, TokenStream &, Statement &) |
| Macro handler function. More... | |
| virtual Object * | makeInstance (const std::string &name, Statement &, const Parser *) |
| Macro handler function. More... | |
| virtual void | parseShortcut (Statement &, bool eval=true) |
| Parser for single-attribute commands. More... | |
| virtual void | printValue (std::ostream &) const |
| virtual void | printHelp (std::ostream &) const |
| Print help. More... | |
| virtual void | replace (Object *oldObject, Object *newObject) |
| Replace references. More... | |
| bool | isBuiltin () const |
| True, if [b]this[/b] is a built-in object. More... | |
| virtual bool | isShared () const |
| Shared flag. More... | |
| void | setDirty (bool) |
| Set/reset the [b]modified[/b] flag. More... | |
| bool | isDirty () const |
| True, if the [b]modified[/b] flag is set. More... | |
| void | setFlag (bool) |
| Flag/unflag this object, e. g. to control output of objects for. More... | |
| bool | isFlagged () const |
| True, if [b]this[/b] is flagged by setFlag(true). More... | |
| const Object * | getBaseObject () const |
| Return the object's base type object. More... | |
| const std::string & | getOpalName () const |
| Return object name. More... | |
| Object * | getParent () const |
| Return parent pointer. More... | |
| bool | isTreeMember (const Object *subTree) const |
| Test for tree membership. More... | |
| void | setOpalName (const std::string &name) |
| Set object name. More... | |
| void | setParent (Object *) |
| Set parent object. More... | |
| void | clear () |
| Clear the occurrence counter. More... | |
| int | increment () |
| Increment and return the occurrence counter. More... | |
| int | occurrenceCount () |
| Return the occurrence counter. More... | |
| void | registerReference (Invalidator *a) |
| Register a reference to this object. More... | |
| void | unregisterReference (Invalidator *a) |
| Unegister a reference to this object. More... | |
| void | registerOwnership (const AttributeHandler::OwnerType &itsClass) const |
Public Member Functions inherited from RCObject | |
| int | addReference () const |
| Increment reference count. More... | |
| int | removeReference () const |
| Decrement the reference count. More... | |
| bool | isShared () const |
| Test for sharing. More... | |
Protected Member Functions | |
| OpalElement (int size, const char *name, const char *help) | |
| Exemplar constructor. More... | |
| OpalElement (const std::string &name, OpalElement *parent) | |
| Clone constructor. More... | |
| void | registerOwnership () const |
Protected Member Functions inherited from Element | |
| Element (int size, const char *name, const char *help) | |
| Constructor for exemplars. More... | |
| Element (const std::string &name, Element *parent) | |
| Constructor for clones. More... | |
Protected Member Functions inherited from Object | |
| Object (int size, const char *name, const char *help) | |
| Constructor for exemplars. More... | |
| Object (const std::string &name, Object *parent) | |
| Constructor for clones. More... | |
Protected Member Functions inherited from RCObject | |
| RCObject () | |
| Default constructor. More... | |
| RCObject (const RCObject &) | |
| Copy constructor. More... | |
| virtual | ~RCObject ()=0 |
| RCObject & | operator= (const RCObject &right) |
Static Protected Member Functions | |
| static void | printMultipoleStrength (std::ostream &os, int order, int &len, const std::string &sName, const std::string &tName, const Attribute &length, const Attribute &vNorm, const Attribute &vSkew) |
| Print multipole components in OPAL-8 format. More... | |
| static void | printAttribute (std::ostream &os, const std::string &name, const std::string &image, int &len) |
| Print an attribute with a OPAL-8 name (as an expression). More... | |
| static void | printAttribute (std::ostream &os, const std::string &name, double value, int &len) |
| Print an attribute with a OPAL-8 name (as a constant). More... | |
Private Member Functions | |
| OpalElement () | |
| void | operator= (const OpalElement &) |
Private Attributes | |
| int | itsSize |
Additional Inherited Members | |
Static Public Member Functions inherited from Element | |
| static Element * | find (const std::string &name) |
| Find named Element. More... | |
Public Attributes inherited from Object | |
| std::vector< Attribute > | itsAttr |
| The object attributes. More... | |
Protected Attributes inherited from Object | |
| bool | builtin |
| Built-in flag. More... | |
| bool | modified |
| Dirty flag. More... | |
| bool | flagged |
| Object flag. More... | |
Definition at line 28 of file OpalElement.h.
| anonymous enum |
The common attributes for all elements.
| Enumerator | |
|---|---|
| TYPE | |
| APERT | |
| LENGTH | |
| ELEMEDGE | |
| WAKEF | |
| PARTICLEMATTERINTERACTION | |
| ORIGIN | |
| ORIENTATION | |
| X | |
| Y | |
| Z | |
| THETA | |
| PHI | |
| PSI | |
| DX | |
| DY | |
| DZ | |
| DTHETA | |
| DPHI | |
| DPSI | |
| OUTFN | |
| DELETEONTRANSVERSEEXIT | |
| COMMON | |
Definition at line 33 of file OpalElement.h.
|
virtual |
Definition at line 132 of file OpalElement.cpp.
|
protected |
Exemplar constructor.
Definition at line 40 of file OpalElement.cpp.
References AttributeHandler::addAttributeOwner(), APERT, COMMON, DELETEONTRANSVERSEEXIT, DPHI, DPSI, DTHETA, DX, DY, DZ, ELEMEDGE, AttributeHandler::ELEMENT, end, Object::itsAttr, LENGTH, Attributes::makeBool(), Attributes::makePredefinedString(), Attributes::makeReal(), Attributes::makeRealArray(), Attributes::makeString(), ORIENTATION, ORIGIN, OUTFN, PARTICLEMATTERINTERACTION, PHI, PSI, THETA, TYPE, WAKEF, X, Y, and Z.

|
protected |
Clone constructor.
Definition at line 127 of file OpalElement.cpp.
|
private |
| std::pair< ApertureType, std::vector< double > > OpalElement::getApert | ( | ) | const |
Definition at line 136 of file OpalElement.cpp.
References APERT, CONIC_ELLIPTICAL, CONIC_RECTANGULAR, ELLIPTICAL, exception, Attributes::getString(), Object::itsAttr, and RECTANGULAR.
Referenced by update().

|
virtual |
Return element length.
Implements Element.
Definition at line 290 of file OpalElement.cpp.
References Attributes::getReal(), Object::itsAttr, and LENGTH.
Referenced by OpalMultipole::update().

| const std::string OpalElement::getParticleMatterInteraction | ( | ) | const |
Definition at line 308 of file OpalElement.cpp.
References Object::findAttribute(), and Attributes::getString().

| const std::string OpalElement::getTypeName | ( | ) | const |
Return the element's type name.
Definition at line 295 of file OpalElement.cpp.
References Object::findAttribute(), and Attributes::getString().
Referenced by Selector::handleElement().

| const std::string OpalElement::getWakeConductivity | ( | ) | const |
| const std::string OpalElement::getWakeF | ( | ) | const |
Return the element's type name.
Functions to get the wake field parametes
Definition at line 303 of file OpalElement.cpp.
References Object::findAttribute(), and Attributes::getString().

| const std::string OpalElement::getWakeGeom | ( | ) | const |
| std::vector<double> OpalElement::getWakeParam | ( | ) | const |
| const std::string OpalElement::getWMaterial | ( | ) | const |
|
private |
Parse the element.
Reimplemented from Object.
Definition at line 313 of file OpalElement.cpp.
References Statement::delimiter(), Object::findAttribute(), name, Attribute::parse(), Attribute::parseComponent(), Expressions::parseDelimiter(), Expressions::parseRealConst(), Expressions::parseString(), and Attribute::setDefault().

|
virtual |
Print the object.
Reimplemented from Object.
Reimplemented in OpalMultipoleTCurvedConstRadius, OpalMultipoleTCurvedVarRadius, OpalOffset::OpalLocalCartesianOffset, OpalMultipoleTStraight, OpalOffset::OpalGlobalCartesianOffset, OpalOffset::OpalLocalCylindricalOffset, OpalOffset::OpalGlobalCylindricalOffset, OpalRingDefinition, OpalBend, OpalPolynomialTimeDependence, OpalSplineTimeDependence, OpalMultipoleT, OpalRBend3D, OpalQuadrupole, OpalOctupole, OpalMultipole, OpalSextupole, and OpalMarker.
Definition at line 348 of file OpalElement.cpp.
References endl(), Object::getOpalName(), and Object::getParent().
Referenced by OpalMarker::print(), OpalSextupole::print(), OpalMultipole::print(), OpalOctupole::print(), OpalQuadrupole::print(), OpalRBend3D::print(), OpalMultipoleT::print(), OpalBend::print(), OpalSplineTimeDependence::print(), OpalPolynomialTimeDependence::print(), OpalRingDefinition::print(), OpalOffset::OpalGlobalCylindricalOffset::print(), OpalOffset::OpalLocalCylindricalOffset::print(), OpalMultipoleTStraight::print(), OpalOffset::OpalGlobalCartesianOffset::print(), OpalMultipoleTCurvedVarRadius::print(), OpalOffset::OpalLocalCartesianOffset::print(), and OpalMultipoleTCurvedConstRadius::print().

|
staticprotected |
Print an attribute with a OPAL-8 name (as an expression).
Definition at line 575 of file OpalElement.cpp.
Referenced by printMultipoleStrength().
|
staticprotected |
Print an attribute with a OPAL-8 name (as a constant).
Definition at line 588 of file OpalElement.cpp.
|
staticprotected |
Print multipole components in OPAL-8 format.
Definition at line 363 of file OpalElement.cpp.
References atan2(), Attribute::getBase(), Attribute::getImage(), Attributes::getReal(), AttributeBase::isExpression(), Physics::pi, printAttribute(), and sqrt().

|
protected |
Definition at line 595 of file OpalElement.cpp.
References AttributeHandler::addAttributeOwner(), COMMON, AttributeHandler::ELEMENT, end, Object::getOpalName(), Object::getParent(), Object::itsAttr, and itsSize.
Referenced by OpalAsymmetricEnge::OpalAsymmetricEnge(), OpalCavity::OpalCavity(), OpalCCollimator::OpalCCollimator(), OpalCyclotron::OpalCyclotron(), OpalDegrader::OpalDegrader(), OpalDrift::OpalDrift(), OpalECollimator::OpalECollimator(), OpalEnge::OpalEnge(), OpalFlexibleCollimator::OpalFlexibleCollimator(), OpalOffset::OpalGlobalCartesianOffset::OpalGlobalCartesianOffset(), OpalOffset::OpalGlobalCylindricalOffset::OpalGlobalCylindricalOffset(), OpalHKicker::OpalHKicker(), OpalKicker::OpalKicker(), OpalOffset::OpalLocalCartesianOffset::OpalLocalCartesianOffset(), OpalOffset::OpalLocalCylindricalOffset::OpalLocalCylindricalOffset(), OpalMonitor::OpalMonitor(), OpalMultipole::OpalMultipole(), OpalMultipoleT::OpalMultipoleT(), OpalMultipoleTCurvedConstRadius::OpalMultipoleTCurvedConstRadius(), OpalMultipoleTCurvedVarRadius::OpalMultipoleTCurvedVarRadius(), OpalMultipoleTStraight::OpalMultipoleTStraight(), OpalOctupole::OpalOctupole(), OpalOutputPlane::OpalOutputPlane(), OpalPepperPot::OpalPepperPot(), OpalPolynomialTimeDependence::OpalPolynomialTimeDependence(), OpalProbe::OpalProbe(), OpalQuadrupole::OpalQuadrupole(), OpalRBend::OpalRBend(), OpalRBend3D::OpalRBend3D(), OpalRCollimator::OpalRCollimator(), OpalRingDefinition::OpalRingDefinition(), OpalSBend::OpalSBend(), OpalSBend3D::OpalSBend3D(), OpalScalingFFAMagnet::OpalScalingFFAMagnet(), OpalSeptum::OpalSeptum(), OpalSextupole::OpalSextupole(), OpalSlit::OpalSlit(), OpalSolenoid::OpalSolenoid(), OpalSource::OpalSource(), OpalSplineTimeDependence::OpalSplineTimeDependence(), OpalStripper::OpalStripper(), OpalTravelingWave::OpalTravelingWave(), OpalUndulator::OpalUndulator(), OpalVacuum::OpalVacuum(), OpalVariableRFCavity::OpalVariableRFCavity(), OpalVariableRFCavityFringeField::OpalVariableRFCavityFringeField(), OpalVerticalFFAMagnet::OpalVerticalFFAMagnet(), and OpalVKicker::OpalVKicker().

|
virtual |
Update the embedded CLASSIC element.
Reimplemented from Object.
Reimplemented in OpalMultipoleTCurvedConstRadius, OpalMultipoleTCurvedVarRadius, OpalOffset::OpalLocalCartesianOffset, OpalCyclotron, OpalMultipoleTStraight, OpalOffset::OpalGlobalCartesianOffset, OpalOffset::OpalLocalCylindricalOffset, OpalVariableRFCavityFringeField, OpalCavity, OpalOutputPlane, OpalOffset::OpalGlobalCylindricalOffset, OpalRingDefinition, OpalPolynomialTimeDependence, OpalSplineTimeDependence, OpalScalingFFAMagnet, OpalVariableRFCavity, OpalKicker, OpalSBend3D, OpalStripper, OpalMultipoleT, OpalTravelingWave, OpalVKicker, OpalVacuum, OpalQuadrupole, OpalDrift, OpalOctupole, OpalUndulator, OpalCCollimator, OpalMultipole, OpalRBend3D, OpalSextupole, OpalVerticalFFAMagnet, OpalPepperPot, OpalProbe, OpalSeptum, OpalFlexibleCollimator, OpalSolenoid, OpalECollimator, OpalHKicker, OpalMarker, OpalRCollimator, OpalSlit, OpalDegrader, OpalSource, OpalRBend, OpalSBend, OpalMonitor, OpalAsymmetricEnge, and OpalEnge.
Definition at line 472 of file OpalElement.cpp.
References Quaternion::conjugate(), cos(), DELETEONTRANSVERSEEXIT, DPHI, DPSI, DTHETA, DX, DY, DZ, ELEMEDGE, ElementBase::fixPosition(), getApert(), Attributes::getBool(), Element::getElement(), Attributes::getReal(), Attributes::getRealArray(), Object::itsAttr, ORIENTATION, ORIGIN, PHI, PSI, ElementBase::setAperture(), ElementBase::setCSTrafoGlobal2Local(), ElementBase::setElementPosition(), ElementBase::setFlagDeleteOnTransverseExit(), ElementBase::setMisalignment(), ElementBase::setRotationAboutZ(), sin(), THETA, X, Y, and Z.
Referenced by PyOpal::PyLine_< C >::setElement(), OpalMonitor::update(), OpalRBend::update(), OpalSBend::update(), OpalDegrader::update(), OpalSource::update(), OpalECollimator::update(), OpalRCollimator::update(), OpalSlit::update(), OpalHKicker::update(), OpalSolenoid::update(), OpalFlexibleCollimator::update(), OpalSeptum::update(), OpalProbe::update(), OpalPepperPot::update(), OpalMultipole::update(), OpalRBend3D::update(), OpalCCollimator::update(), OpalSextupole::update(), OpalDrift::update(), OpalUndulator::update(), OpalOctupole::update(), OpalQuadrupole::update(), OpalVacuum::update(), OpalVKicker::update(), OpalMultipoleT::update(), OpalTravelingWave::update(), OpalKicker::update(), OpalStripper::update(), OpalVariableRFCavity::update(), OpalCavity::update(), OpalOutputPlane::update(), OpalVariableRFCavityFringeField::update(), OpalMultipoleTStraight::update(), OpalMultipoleTCurvedVarRadius::update(), and OpalMultipoleTCurvedConstRadius::update().

|
virtual |
Transmit the ``unknown'' (not known to OPAL) attributes to CLASSIC.
Definition at line 566 of file OpalElement.cpp.
References Attribute::getName(), Attributes::getReal(), Object::itsAttr, itsSize, and ElementBase::setAttribute().
Referenced by OpalMonitor::update(), OpalRBend::update(), OpalSBend::update(), OpalDegrader::update(), OpalSource::update(), OpalHKicker::update(), OpalMarker::update(), OpalECollimator::update(), OpalRCollimator::update(), OpalSlit::update(), OpalSolenoid::update(), OpalFlexibleCollimator::update(), OpalSeptum::update(), OpalProbe::update(), OpalPepperPot::update(), OpalCCollimator::update(), OpalRBend3D::update(), OpalMultipole::update(), OpalSextupole::update(), OpalOctupole::update(), OpalUndulator::update(), OpalDrift::update(), OpalQuadrupole::update(), OpalVacuum::update(), OpalTravelingWave::update(), OpalVKicker::update(), OpalMultipoleT::update(), OpalKicker::update(), OpalStripper::update(), OpalCavity::update(), OpalOutputPlane::update(), OpalMultipoleTStraight::update(), OpalCyclotron::update(), OpalMultipoleTCurvedVarRadius::update(), and OpalMultipoleTCurvedConstRadius::update().

|
private |
Definition at line 139 of file OpalElement.h.
Referenced by registerOwnership(), and updateUnknown().
1.8.5