OPALX (Object Oriented Parallel Accelerator Library for Exascale) MINIorX
OPALX
Line Class Reference

#include <Line.h>

Inheritance diagram for Line:
Inheritance graph
Collaboration diagram for Line:
Collaboration graph

Public Types

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

Public Member Functions

 Line ()
 Exemplar constructor. More...
 
virtual ~Line ()
 
virtual Lineclone (const std::string &name)
 Make clone. More...
 
virtual Linecopy (const std::string &name)
 Make complete copy. More...
 
virtual double getLength () const
 Return line length. More...
 
virtual ObjectmakeTemplate (const std::string &name, TokenStream &is, Statement &stat)
 Make a line template. More...
 
virtual void parse (Statement &stat)
 Parse the line object. More...
 
virtual void print (std::ostream &stream) const
 Print the line. More...
 
virtual const std::string getCategory () const
 Return the object category as a string. More...
 
virtual bool canReplaceBy (Object *object)
 Test if replacement is allowed. 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...
 
ElementBasegetElement () const
 Return the embedded CLASSIC element. More...
 
void setElement (ElementBase *)
 Assign new CLASSIC element. 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 ObjectmakeInstance (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 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...
 
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
 
int addReference () const
 Increment reference count. More...
 
int removeReference () const
 Decrement the reference count. More...
 

Static Public Member Functions

static BeamSequencefind (const std::string &name)
 Find a BeamSequence by name. More...
 

Public Attributes

std::vector< AttributeitsAttr
 The object attributes. More...
 

Protected Attributes

bool builtin
 Built-in flag. More...
 
bool modified
 Dirty flag. More...
 
bool flagged
 Object flag. More...
 

Private Member Functions

 Line (const Line &)
 
void operator= (const Line &)
 
 Line (const std::string &name, Line *parent)
 
virtual FlaggedBeamlinefetchLine () const
 Return the embedded CLASSIC beam line. More...
 
void parseList (Statement &)
 
virtual void replace (Object *oldObject, Object *newObject)
 Replace references. More...
 

Private Attributes

std::shared_ptr< ElementBaseitsClassicElement
 
ObjectitsParent
 
std::string itsName
 
std::string itsHelp
 
int occurrence
 
double timeStamp
 
std::set< Invalidator * > references
 
bool sharedFlag
 
int refCount
 

Friends

class LineTemplate
 

Detailed Description

Definition at line 30 of file Line.h.

Member Enumeration Documentation

◆ ReferenceType

enum Element::ReferenceType
inherited

Reference for element positioning.

Enumerator
IS_ENTRY 
IS_CENTRE 
IS_EXIT 

Definition at line 45 of file opalx/src/AbstractObjects/Element.h.

Constructor & Destructor Documentation

◆ Line() [1/3]

Line::Line ( )

Exemplar constructor.

Definition at line 66 of file Line.cpp.

References Object::itsAttr, Attributes::makeReal(), Attributes::makeRealArray(), Attributes::makeString(), Object::registerOwnership(), Element::setElement(), AttributeHandler::STATEMENT, and DISTRIBUTION::TYPE.

Referenced by clone(), and copy().

Here is the call graph for this function:

◆ ~Line()

Line::~Line ( )
virtual

Definition at line 114 of file Line.cpp.

◆ Line() [2/3]

Line::Line ( const Line )
private

◆ Line() [3/3]

Line::Line ( const std::string &  name,
Line parent 
)
private

Definition at line 107 of file Line.cpp.

References Element::setElement().

Here is the call graph for this function:

Member Function Documentation

◆ addReference()

int RCObject::addReference ( ) const
inlineinherited

Increment reference count.

Definition at line 83 of file RCObject.h.

References RCObject::refCount.

Referenced by Pointer< Object >::operator=(), and Pointer< Object >::unique().

◆ canReplaceBy()

bool Element::canReplaceBy ( Object object)
virtualinherited

Test if replacement is allowed.

Reimplemented from Object.

Definition at line 40 of file Element.cpp.

◆ clear()

void Object::clear ( )
inherited

Clear the occurrence counter.

Definition at line 339 of file Object.cpp.

References Object::occurrence.

◆ clone()

Line * Line::clone ( const std::string &  name)
virtual

Make clone.

Implements Object.

Definition at line 118 of file Line.cpp.

References Line().

Referenced by copy(), and LineTemplate::makeInstance().

Here is the call graph for this function:

◆ copy()

Line * Line::copy ( const std::string &  name)
virtual

Make complete copy.

Implements BeamSequence.

Definition at line 123 of file Line.cpp.

References clone(), fetchLine(), and Line().

Here is the call graph for this function:

◆ copyAttributes()

void Object::copyAttributes ( const Object source)
inherited

Copy attributes from another object.

Definition at line 54 of file Object.cpp.

References Object::itsAttr.

Referenced by SequenceTemplate::makeInstance(), and LineTemplate::makeInstance().

◆ execute()

void Object::execute ( )
virtualinherited

◆ fetchLine()

FlaggedBeamline * Line::fetchLine ( ) const
privatevirtual

Return the embedded CLASSIC beam line.

Implements BeamSequence.

Definition at line 292 of file Line.cpp.

References Element::getElement().

Referenced by copy(), parse(), parseList(), print(), and replace().

Here is the call graph for this function:

◆ find()

BeamSequence * BeamSequence::find ( const std::string &  name)
staticinherited

Find a BeamSequence by name.

Definition at line 36 of file BeamSequence.cpp.

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

Referenced by TrackCmd::execute().

Here is the call graph for this function:

◆ findAttribute() [1/2]

◆ findAttribute() [2/2]

const Attribute * Object::findAttribute ( const std::string &  name) const
virtualinherited

Find an attribute by name.

Definition at line 72 of file Object.cpp.

References Object::itsAttr.

◆ getBaseObject()

const Object * Object::getBaseObject ( ) const
inherited

Return the object's base type object.

Definition at line 301 of file Object.cpp.

References Object::itsParent.

◆ getCategory()

const std::string BeamSequence::getCategory ( ) const
virtualinherited

Return the object category as a string.

Reimplemented from Element.

Definition at line 31 of file BeamSequence.cpp.

◆ getElement()

◆ getEntrance()

double Element::getEntrance ( ReferenceType  ref) const
virtualinherited

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

Reimplemented in Sequence.

Definition at line 71 of file Element.cpp.

References Element::getLength(), Element::IS_CENTRE, and Element::IS_EXIT.

Referenced by Sequence::getEntrance().

Here is the call graph for this function:

◆ getExit()

double Element::getExit ( ReferenceType  ref) const
virtualinherited

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

Reimplemented in Sequence.

Definition at line 86 of file Element.cpp.

References Element::getLength(), Element::IS_CENTRE, and Element::IS_ENTRY.

Referenced by Sequence::getExit().

Here is the call graph for this function:

◆ getLength()

double Line::getLength ( ) const
virtual

Return line length.

Implements Element.

Definition at line 131 of file Line.cpp.

References Attributes::getReal(), and Object::itsAttr.

Here is the call graph for this function:

◆ getOpalName()

◆ getParent()

Object * Object::getParent ( ) const
inherited

Return parent pointer.

Definition at line 313 of file Object.cpp.

References Object::itsParent.

Referenced by OpalData::erase(), Object::print(), OpalElement::print(), OpalElement::registerOwnership(), and Object::registerOwnership().

◆ increment()

int Object::increment ( )
inherited

Increment and return the occurrence counter.

Definition at line 344 of file Object.cpp.

References Object::occurrence.

Referenced by parse(), and Sequence::storeLine().

◆ isBuiltin()

bool Object::isBuiltin ( ) const
inherited

True, if [b]this[/b] is a built-in object.

Definition at line 266 of file Object.cpp.

References Object::builtin.

Referenced by OpalData::define(), and OpalData::getVariableNames().

◆ isDirty()

bool Object::isDirty ( ) const
inherited

True, if the [b]modified[/b] flag is set.

Definition at line 287 of file Object.cpp.

References Object::modified.

◆ isFlagged()

bool Object::isFlagged ( ) const
inherited

True, if [b]this[/b] is flagged by setFlag(true).

Definition at line 297 of file Object.cpp.

References Object::flagged.

◆ isShared()

bool Object::isShared ( ) const
virtualinherited

Shared flag.

Definition at line 271 of file Object.cpp.

References Object::sharedFlag.

Referenced by Sequence::print().

◆ isTreeMember()

bool Object::isTreeMember ( const Object subTree) const
inherited

Test for tree membership.

Definition at line 318 of file Object.cpp.

References Object::itsParent.

Referenced by Selector::handleElement(), and OpalParser::parseAssign().

◆ makeInstance()

Object * Object::makeInstance ( const std::string &  name,
Statement ,
const Parser  
)
virtualinherited

Macro handler function.

Reimplemented in SequenceTemplate, MacroCmd, and LineTemplate.

Definition at line 89 of file Object.cpp.

References Object::getOpalName().

Referenced by OpalParser::parseDefine(), and OpalParser::parseMacro().

Here is the call graph for this function:

◆ makeTemplate()

Object * Line::makeTemplate ( const std::string &  name,
TokenStream is,
Statement stat 
)
virtual

Make a line template.

Reimplemented from Object.

Definition at line 136 of file Line.cpp.

References LineTemplate, and LineTemplate::parseTemplate().

Here is the call graph for this function:

◆ occurrenceCount()

int Object::occurrenceCount ( )
inherited

Return the occurrence counter.

Definition at line 349 of file Object.cpp.

References Object::occurrence.

◆ operator=()

void Line::operator= ( const Line )
private

◆ parse()

◆ parseList()

void Line::parseList ( Statement stat)
private

◆ parseShortcut()

void Object::parseShortcut ( Statement stat,
bool  eval = true 
)
virtualinherited

Parser for single-attribute commands.

Definition at line 127 of file Object.cpp.

References Statement::delimiter(), Object::findAttribute(), Object::getOpalName(), Statement::mark(), and Statement::word().

Referenced by Call::parse(), Echo::parse(), Help::parse(), PSystem::parse(), System::parse(), Title::parse(), and Value::parse().

Here is the call graph for this function:

◆ print()

void Line::print ( std::ostream &  stream) const
virtual

Print the line.

Reimplemented from Object.

Definition at line 270 of file Line.cpp.

References endl(), fetchLine(), and Object::getOpalName().

Here is the call graph for this function:

◆ printHelp()

void Object::printHelp ( std::ostream &  ) const
virtualinherited

Print help.

Definition at line 199 of file Object.cpp.

References endl(), gmsg, Object::itsAttr, Object::itsHelp, and ippl::max().

Referenced by Help::execute().

Here is the call graph for this function:

◆ printValue()

void Object::printValue ( std::ostream &  os) const
inlinevirtualinherited

Reimplemented in BoolConstant, RealConstant, RealVariable, RealVector, and StringConstant.

Definition at line 280 of file Object.h.

References Object::print().

Here is the call graph for this function:

◆ registerOwnership()

◆ registerReference()

void Object::registerReference ( Invalidator a)
inherited

Register a reference to this object.

Definition at line 180 of file Object.cpp.

References Object::references.

◆ removeReference()

int RCObject::removeReference ( ) const
inlineinherited

Decrement the reference count.

Definition at line 88 of file RCObject.h.

References RCObject::refCount.

◆ replace()

void Line::replace ( Object oldObject,
Object newObject 
)
privatevirtual

Replace references.

Reimplemented from Object.

Definition at line 367 of file Line.cpp.

References DefaultVisitor::execute(), fetchLine(), Element::getElement(), and Object::getOpalName().

Here is the call graph for this function:

◆ setDirty()

void Object::setDirty ( bool  dirty)
inherited

Set/reset the [b]modified[/b] flag.

Definition at line 281 of file Object.cpp.

References Object::modified.

Referenced by OpalData::define(), OpalData::makeDirty(), and RealVariable::RealVariable().

◆ setElement()

◆ setFlag()

void Object::setFlag ( bool  flag)
inherited

Flag/unflag this object, e. g. to control output of objects for.

Definition at line 292 of file Object.cpp.

References Object::flagged.

◆ setOpalName()

void Object::setOpalName ( const std::string &  name)
inherited

Set object name.

Definition at line 329 of file Object.cpp.

References Object::itsName.

Referenced by Beam::update(), BoundaryGeometry::update(), and OpalFilter::update().

◆ setParent()

void Object::setParent ( Object parent)
inherited

Set parent object.

Definition at line 334 of file Object.cpp.

References Object::itsParent.

Referenced by OpalData::erase().

◆ setShared()

void Element::setShared ( bool  flag)
virtualinherited

Set shared flag.

Reimplemented from Object.

Definition at line 101 of file Element.cpp.

References Element::itsClassicElement, and Object::setShared().

Here is the call graph for this function:

◆ shouldTrace()

bool Element::shouldTrace ( ) const
virtualinherited

Trace flag.

Implements Object.

Definition at line 61 of file Element.cpp.

◆ shouldUpdate()

bool Element::shouldUpdate ( ) const
virtualinherited

Update flag.

Implements Object.

Definition at line 66 of file Element.cpp.

◆ unregisterReference()

void Object::unregisterReference ( Invalidator a)
inherited

Unegister a reference to this object.

Definition at line 185 of file Object.cpp.

References Object::references.

◆ update()

Friends And Related Function Documentation

◆ LineTemplate

friend class LineTemplate
friend

Definition at line 32 of file Line.h.

Referenced by makeTemplate().

Member Data Documentation

◆ builtin

◆ flagged

bool Object::flagged
protectedinherited

Object flag.

Definition at line 242 of file Object.h.

Referenced by Object::isFlagged(), Object::Object(), and Object::setFlag().

◆ itsAttr

std::vector<Attribute> Object::itsAttr
inherited

The object attributes.

Definition at line 216 of file Object.h.

Referenced by Beam::Beam(), BoolConstant::BoolConstant(), BoundaryGeometry::BoundaryGeometry(), DumpEMFields::buildGrid(), DumpFields::buildGrid(), Call::Call(), FieldSolverCmd::constructBCHandler(), Object::copyAttributes(), Distribution::Distribution(), DumpEMFields::DumpEMFields(), DumpFields::DumpFields(), Echo::Echo(), Call::execute(), Echo::execute(), Help::execute(), Option::execute(), PSystem::execute(), Select::execute(), System::execute(), Title::execute(), Value::execute(), Beam::execute(), TrackCmd::execute(), TrackRun::execute(), FieldSolverCmd::FieldSolverCmd(), Object::findAttribute(), BoundaryGeometry::getA(), OpalElement::getApert(), BoundaryGeometry::getB(), BoolConstant::getBool(), FieldSolverCmd::getBoxIncr(), BoundaryGeometry::getC(), Beam::getCharge(), Beam::getCurrent(), FieldSolverCmd::getDomDec(), TrackCmd::getDT(), TrackCmd::getDTAU(), TrackCmd::getDTSCINIT(), BoundaryGeometry::getFilename(), Beam::getFrequency(), BoundaryGeometry::getL1(), BoundaryGeometry::getL2(), BoundaryGeometry::getLength(), OpalElement::getLength(), getLength(), Sequence::getLength(), Beam::getMass(), TrackCmd::getMaxSteps(), Beam::getNumberOfParticles(), FieldSolverCmd::getNX(), FieldSolverCmd::getNY(), FieldSolverCmd::getNZ(), Beam::getParticleName(), RealConstant::getReal(), RealVariable::getReal(), RealVector::getRealComponent(), Sequence::getReference(), BoundaryGeometry::getS(), TrackCmd::getStepsPerTurn(), StringConstant::getString(), TrackCmd::getT0(), TrackCmd::getTimeIntegrator(), BoundaryGeometry::getTopology(), FieldSolverCmd::getType(), TrackCmd::getZStart(), TrackCmd::getZStop(), Help::Help(), BoundaryGeometry::initialize(), OpalFilter::initOpalFilter(), Line(), OpalCavity::OpalCavity(), OpalDrift::OpalDrift(), OpalElement::OpalElement(), OpalFilter::OpalFilter(), OpalOffset::OpalGlobalCartesianOffset::OpalGlobalCartesianOffset(), OpalOffset::OpalGlobalCylindricalOffset::OpalGlobalCylindricalOffset(), OpalOffset::OpalLocalCartesianOffset::OpalLocalCartesianOffset(), OpalOffset::OpalLocalCylindricalOffset::OpalLocalCylindricalOffset(), OpalMultipole::OpalMultipole(), OpalMultipoleT::OpalMultipoleT(), OpalProbe::OpalProbe(), OpalRingDefinition::OpalRingDefinition(), OpalSolenoid::OpalSolenoid(), OpalTravelingWave::OpalTravelingWave(), OpalVacuum::OpalVacuum(), OpalVerticalFFAMagnet::OpalVerticalFFAMagnet(), Option::Option(), Sequence::parse(), parse(), DumpEMFields::parseCoordinateSystem(), TrackRun::print(), Object::print(), Sequence::print(), BoolConstant::print(), RealConstant::print(), RealVariable::print(), RealVector::print(), StringConstant::print(), DumpEMFields::print(), DumpFields::print(), Beam::print(), OpalFilter::print(), Object::printHelp(), BoundaryGeometry::printInfo(), FieldSolverCmd::printInfo(), BoolConstant::printValue(), RealConstant::printValue(), RealVariable::printValue(), RealVector::printValue(), StringConstant::printValue(), PSystem::PSystem(), RealConstant::RealConstant(), RealVariable::RealVariable(), RealVector::RealVector(), OpalElement::registerOwnership(), Object::registerOwnership(), Select::Select(), Select::select(), Sequence::Sequence(), Distribution::setDistParametersFlatTop(), Distribution::setDistParametersMultiVariateGauss(), Distribution::setDistType(), FieldSolverCmd::setNX(), FieldSolverCmd::setNY(), FieldSolverCmd::setNZ(), TrackRun::setRunMethod(), Distribution::setSigmaP_m(), Distribution::setSigmaR_m(), TrackRun::setupBoundaryGeometry(), StringConstant::StringConstant(), System::System(), Title::Title(), TrackCmd::TrackCmd(), TrackRun::TrackRun(), OpalCavity::update(), OpalDrift::update(), OpalElement::update(), OpalMonitor::update(), OpalMultipole::update(), OpalMultipoleT::update(), OpalOffset::OpalGlobalCartesianOffset::update(), OpalOffset::OpalGlobalCylindricalOffset::update(), OpalOffset::OpalLocalCartesianOffset::update(), OpalOffset::OpalLocalCylindricalOffset::update(), OpalProbe::update(), OpalRingDefinition::update(), OpalSolenoid::update(), OpalTravelingWave::update(), OpalVacuum::update(), OpalVerticalFFAMagnet::update(), Beam::update(), FieldSolverCmd::update(), Option::update(), OpalElement::updateUnknown(), ValueDefinition::value(), and Value::Value().

◆ itsClassicElement

std::shared_ptr<ElementBase> Element::itsClassicElement
privateinherited

◆ itsHelp

std::string Object::itsHelp
privateinherited

Definition at line 258 of file Object.h.

Referenced by Object::printHelp().

◆ itsName

std::string Object::itsName
privateinherited

Definition at line 255 of file Object.h.

Referenced by Object::getOpalName(), and Object::setOpalName().

◆ itsParent

Object* Object::itsParent
privateinherited

◆ modified

bool Object::modified
protectedinherited

Dirty flag.

Definition at line 238 of file Object.h.

Referenced by Object::isDirty(), Object::Object(), and Object::setDirty().

◆ occurrence

int Object::occurrence
privateinherited

Definition at line 261 of file Object.h.

Referenced by Object::clear(), Object::increment(), and Object::occurrenceCount().

◆ refCount

int RCObject::refCount
mutableprivateinherited

◆ references

std::set<Invalidator *> Object::references
privateinherited

◆ sharedFlag

bool Object::sharedFlag
privateinherited

Definition at line 271 of file Object.h.

Referenced by Object::isShared(), and Object::setShared().

◆ timeStamp

double Object::timeStamp
privateinherited

Definition at line 264 of file Object.h.


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