OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
Element Class Referenceabstract

#include <Element.h>

Inheritance diagram for Element:
Inheritance graph
[legend]
Collaboration diagram for Element:
Collaboration graph
[legend]

Public Types

enum  ReferenceType { IS_ENTRY , IS_CENTRE , IS_EXIT }
 Reference for element positioning. More...
 

Public Member Functions

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 getLength () const =0
 Return element length. 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...
 
ElementBasegetElement () const
 Return the embedded CLASSIC element. More...
 
void setElement (ElementBase *)
 Assign new CLASSIC element. More...
 
- Public Member Functions inherited from Object
virtual ~Object ()
 
virtual bool canReplaceBy (Object *object)
 Test if replacement is allowed. More...
 
virtual Objectclone (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 AttributefindAttribute (const std::string &name)
 Find an attribute by name. More...
 
virtual const AttributefindAttribute (const std::string &name) const
 Find an attribute by name. More...
 
virtual const std::string getCategory () const =0
 Return the object category as a string. More...
 
virtual bool shouldTrace () const =0
 Trace flag. More...
 
virtual bool shouldUpdate () const =0
 Update flag. More...
 
virtual ObjectmakeTemplate (const std::string &, TokenStream &, Statement &)
 Macro handler function. More...
 
virtual ObjectmakeInstance (const std::string &name, Statement &, const Parser *)
 Macro handler function. More...
 
virtual void parse (Statement &)
 Parse the object. More...
 
virtual void parseShortcut (Statement &, bool eval=true)
 Parser for single-attribute commands. More...
 
virtual void print (std::ostream &) const
 Print the object. 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...
 
virtual void update ()
 Update this object. More...
 
bool isBuiltin () const
 True, if [b]this[/b] is a built-in object. More...
 
virtual bool isShared () const
 Shared flag. More...
 
virtual void setShared (bool)
 Set/reset 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 ObjectgetBaseObject () const
 Return the object's base type object. More...
 
const std::string & getOpalName () const
 Return object name. More...
 
ObjectgetParent () 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...
 

Static Public Member Functions

static Elementfind (const std::string &name)
 Find named Element. More...
 

Protected Member Functions

 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
 
RCObjectoperator= (const RCObject &right)
 

Private Member Functions

 Element ()
 
 Element (const Element &)
 
void operator= (const Element &)
 

Private Attributes

Pointer< ElementBaseitsClassicElement
 

Additional Inherited Members

- Public Attributes inherited from Object
std::vector< AttributeitsAttr
 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...
 

Detailed Description

Definition at line 38 of file Element.h.

Member Enumeration Documentation

◆ ReferenceType

Reference for element positioning.

Enumerator
IS_ENTRY 
IS_CENTRE 
IS_EXIT 

Definition at line 44 of file Element.h.

Constructor & Destructor Documentation

◆ ~Element()

Element::~Element ( )
virtual

Definition at line 36 of file Element.cpp.

◆ Element() [1/4]

Element::Element ( int  size,
const char *  name,
const char *  help 
)
protected

Constructor for exemplars.

Definition at line 107 of file Element.cpp.

◆ Element() [2/4]

Element::Element ( const std::string &  name,
Element parent 
)
protected

Constructor for clones.

Definition at line 112 of file Element.cpp.

◆ Element() [3/4]

Element::Element ( )
private

◆ Element() [4/4]

Element::Element ( const Element )
private

Member Function Documentation

◆ canReplaceBy()

bool Element::canReplaceBy ( Object object)
virtual

Test if replacement is allowed.

Reimplemented from Object.

Definition at line 40 of file Element.cpp.

◆ find()

Element * Element::find ( const std::string &  name)
static

Find named Element.

Definition at line 45 of file Element.cpp.

References OpalData::find(), OpalData::getInstance(), and name.

Referenced by Sequence::addEndMarkers(), SequenceParser::findNeighbourPositions(), Selector::handleElement(), Selector::Selector(), and Sequence::storeLine().

Here is the call graph for this function:

◆ getCategory()

const std::string Element::getCategory ( ) const
virtual

Return the object category as a string.

Implements Object.

Reimplemented in BeamSequence.

Definition at line 56 of file Element.cpp.

◆ getElement()

ElementBase * Element::getElement ( ) const
inline

Return the embedded CLASSIC element.

Definition at line 120 of file Element.h.

References itsClassicElement.

Referenced by Sequence::addEndMarkers(), Line::fetchLine(), Sequence::fetchLine(), OpalMarker::OpalMarker(), OpalVariableRFCavity::OpalVariableRFCavity(), OpalVariableRFCavityFringeField::OpalVariableRFCavityFringeField(), Line::replace(), Sequence::replace(), PyOpal::PyLine_< C >::setElement(), OpalScalingFFAMagnet::setupDefaultEndField(), OpalScalingFFAMagnet::setupNamedEndField(), OpalCavity::update(), OpalCCollimator::update(), OpalCyclotron::update(), OpalDegrader::update(), OpalDrift::update(), OpalECollimator::update(), OpalElement::update(), OpalFlexibleCollimator::update(), OpalHKicker::update(), OpalKicker::update(), OpalMarker::update(), OpalMonitor::update(), OpalMultipole::update(), OpalMultipoleT::update(), OpalMultipoleTCurvedConstRadius::update(), OpalMultipoleTCurvedVarRadius::update(), OpalMultipoleTStraight::update(), OpalOctupole::update(), OpalOffset::OpalLocalCartesianOffset::update(), OpalPepperPot::update(), OpalProbe::update(), OpalQuadrupole::update(), OpalRBend::update(), OpalRBend3D::update(), OpalRCollimator::update(), OpalRingDefinition::update(), OpalSBend::update(), OpalSBend3D::update(), OpalScalingFFAMagnet::update(), OpalSeptum::update(), OpalSextupole::update(), OpalSlit::update(), OpalSolenoid::update(), OpalSource::update(), OpalStripper::update(), OpalTravelingWave::update(), OpalUndulator::update(), OpalVacuum::update(), OpalVariableRFCavity::update(), OpalVariableRFCavityFringeField::update(), OpalVerticalFFAMagnet::update(), and OpalVKicker::update().

◆ getEntrance()

double Element::getEntrance ( ReferenceType  ref) const
virtual

Return arc length from origin to entrance (negative !).

Reimplemented in Sequence.

Definition at line 71 of file Element.cpp.

References getLength(), IS_CENTRE, IS_EXIT, and Hypervolume::ref.

Referenced by Sequence::findDriftLength(), and Sequence::getEntrance().

Here is the call graph for this function:

◆ getExit()

double Element::getExit ( ReferenceType  ref) const
virtual

Return arc length from origin to exit (positive !).

Reimplemented in Sequence.

Definition at line 86 of file Element.cpp.

References getLength(), IS_CENTRE, IS_ENTRY, and Hypervolume::ref.

Referenced by Sequence::findDriftLength(), and Sequence::getExit().

Here is the call graph for this function:

◆ getLength()

virtual double Element::getLength ( ) const
pure virtual

Return element length.

Implemented in OpalElement, Line, and Sequence.

Referenced by SequenceParser::findNeighbourPositions(), getEntrance(), and getExit().

◆ operator=()

void Element::operator= ( const Element )
private

◆ setElement()

void Element::setElement ( ElementBase base)
inline

Assign new CLASSIC element.

Definition at line 125 of file Element.h.

References itsClassicElement.

Referenced by Line::Line(), OpalCavity::OpalCavity(), OpalCCollimator::OpalCCollimator(), OpalCyclotron::OpalCyclotron(), OpalDegrader::OpalDegrader(), OpalDrift::OpalDrift(), OpalECollimator::OpalECollimator(), OpalFlexibleCollimator::OpalFlexibleCollimator(), OpalHKicker::OpalHKicker(), OpalKicker::OpalKicker(), OpalOffset::OpalLocalCartesianOffset::OpalLocalCartesianOffset(), OpalMarker::OpalMarker(), OpalMonitor::OpalMonitor(), OpalMultipole::OpalMultipole(), OpalMultipoleT::OpalMultipoleT(), OpalMultipoleTCurvedConstRadius::OpalMultipoleTCurvedConstRadius(), OpalMultipoleTCurvedVarRadius::OpalMultipoleTCurvedVarRadius(), OpalMultipoleTStraight::OpalMultipoleTStraight(), OpalOctupole::OpalOctupole(), OpalPepperPot::OpalPepperPot(), 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(), OpalStripper::OpalStripper(), OpalTravelingWave::OpalTravelingWave(), OpalUndulator::OpalUndulator(), OpalVacuum::OpalVacuum(), OpalVariableRFCavity::OpalVariableRFCavity(), OpalVariableRFCavityFringeField::OpalVariableRFCavityFringeField(), OpalVerticalFFAMagnet::OpalVerticalFFAMagnet(), OpalVKicker::OpalVKicker(), PyOpal::PyLine_< C >::registerObject(), Sequence::Sequence(), OpalMultipoleT::update(), OpalMultipoleTCurvedConstRadius::update(), OpalMultipoleTCurvedVarRadius::update(), OpalMultipoleTStraight::update(), OpalOffset::OpalGlobalCartesianOffset::update(), OpalOffset::OpalGlobalCylindricalOffset::update(), OpalOffset::OpalLocalCartesianOffset::update(), OpalOffset::OpalLocalCylindricalOffset::update(), OpalRingDefinition::update(), OpalSBend3D::update(), OpalScalingFFAMagnet::update(), OpalVariableRFCavity::update(), OpalVariableRFCavityFringeField::update(), OpalVerticalFFAMagnet::update(), and Replacer::visitFlaggedElmPtr().

◆ setShared()

void Element::setShared ( bool  flag)
virtual

Set shared flag.

Reimplemented from Object.

Definition at line 101 of file Element.cpp.

References itsClassicElement, ElementBase::makeSharable(), and Object::setShared().

Here is the call graph for this function:

◆ shouldTrace()

bool Element::shouldTrace ( ) const
virtual

Trace flag.

Implements Object.

Definition at line 61 of file Element.cpp.

◆ shouldUpdate()

bool Element::shouldUpdate ( ) const
virtual

Update flag.

Implements Object.

Definition at line 66 of file Element.cpp.

Member Data Documentation

◆ itsClassicElement

Pointer<ElementBase> Element::itsClassicElement
private

Definition at line 113 of file Element.h.

Referenced by getElement(), setElement(), and setShared().


The documentation for this class was generated from the following files: