OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
SpecificElementVisitor< ELEM > Class Template Reference

#include <SpecificElementVisitor.h>

Inheritance diagram for SpecificElementVisitor< ELEM >:
Collaboration diagram for SpecificElementVisitor< ELEM >:

Public Types

typedef std::list< const ELEM * > ElementList_t
typedef ElementList_t::iterator iterator_t
typedef ElementList_t::const_iterator const_iterator_t
typedef ElementList_t::reference reference_t
typedef ElementList_t::const_reference const_reference_t

Public Member Functions

 SpecificElementVisitor (const Beamline &beamline)
virtual void execute ()
 Execute the algorithm on the attached beam line.
virtual void visitBeamline (const Beamline &)
 Apply the algorithm to a beam line.
virtual void visitCCollimator (const CCollimator &)
 Apply the algorithm to a collimator.
virtual void visitComponent (const Component &)
 Apply the algorithm to an arbitrary component.
virtual void visitCorrector (const Corrector &)
 Apply the algorithm to a closed orbit corrector.
virtual void visitCyclotron (const Cyclotron &)
 Apply the algorithm to an cyclotron.
virtual void visitDegrader (const Degrader &)
 Apply the algorithm to a degrader.
virtual void visitDrift (const Drift &)
 Apply the algorithm to a drift.
virtual void visitFlaggedElmPtr (const FlaggedElmPtr &)
 Apply the algorithm to a FlaggedElmPtr.
virtual void visitFlexibleCollimator (const FlexibleCollimator &)
 Apply the algorithm to a flexible collimator.
virtual void visitMarker (const Marker &)
 Apply the algorithm to a marker.
virtual void visitMonitor (const Monitor &)
 Apply the algorithm to a beam position monitor.
virtual void visitMultipole (const Multipole &)
 Apply the algorithm to a multipole.
virtual void visitMultipoleT (const MultipoleT &)
 Apply the algorithm to an arbitrary multipole.
virtual void visitMultipoleTStraight (const MultipoleTStraight &)
 Apply the algorithm to an arbitrary straight multipole.
virtual void visitMultipoleTCurvedConstRadius (const MultipoleTCurvedConstRadius &)
 Apply the algorithm to an arbitrary curved multipole of constant radius.
virtual void visitMultipoleTCurvedVarRadius (const MultipoleTCurvedVarRadius &)
 Apply the algorithm to an arbitrary curved multipole of variable radius.
virtual void visitOffset (const Offset &)
 Apply the algorithm to an offset (placement).
virtual void visitOutputPlane (const OutputPlane &)
 Apply the algorithm to an output plane.
virtual void visitProbe (const Probe &prob)
 Apply the algorithm to a probe.
virtual void visitRBend (const RBend &)
 Apply the algorithm to a rectangular bend.
virtual void visitRBend3D (const RBend3D &)
 Apply the algorithm to a rectangular bend.
virtual void visitRFCavity (const RFCavity &)
 Apply the algorithm to a RF cavity.
virtual void visitRing (const Ring &)
 Apply the algorithm to a ring.
virtual void visitSBend (const SBend &)
 Apply the algorithm to a sector bend.
virtual void visitSBend3D (const SBend3D &)
 Apply the algorithm to a sector bend with 3D field map.
virtual void visitScalingFFAMagnet (const ScalingFFAMagnet &)
 Apply the algorithm to a scaling FFA magnet.
virtual void visitSeptum (const Septum &)
 Apply the algorithm to a septum.
virtual void visitSolenoid (const Solenoid &)
 Apply the algorithm to a solenoid.
virtual void visitSource (const Source &)
 Apply the algorithm to a source.
virtual void visitStripper (const Stripper &)
 Apply the algorithm to a particle stripper.
virtual void visitTravelingWave (const TravelingWave &)
 Apply the algorithm to a traveling wave.
virtual void visitVacuum (const Vacuum &)
 Apply the algorithm to a vacuum space.
virtual void visitVariableRFCavity (const VariableRFCavity &vcav)
 Apply the algorithm to a variable RF cavity.
virtual void visitVariableRFCavityFringeField (const VariableRFCavityFringeField &vcav)
 Apply the algorithm to a variable RF cavity with Fringe Field..
virtual void visitVerticalFFAMagnet (const VerticalFFAMagnet &)
 Apply the algorithm to a vertical FFA magnet.
size_t size () const
iterator_t begin ()
const_iterator_t begin () const
iterator_t end ()
const_iterator_t end () const
reference_t front ()
const_reference_t front () const

Private Attributes

ElementList_t allElementsOfTypeE

Detailed Description

template<class ELEM>
class SpecificElementVisitor< ELEM >

Definition at line 83 of file SpecificElementVisitor.h.

Member Typedef Documentation

◆ const_iterator_t

template<class ELEM>
typedef ElementList_t::const_iterator SpecificElementVisitor< ELEM >::const_iterator_t

Definition at line 205 of file SpecificElementVisitor.h.

◆ const_reference_t

template<class ELEM>
typedef ElementList_t::const_reference SpecificElementVisitor< ELEM >::const_reference_t

Definition at line 208 of file SpecificElementVisitor.h.

◆ ElementList_t

template<class ELEM>
typedef std::list<const ELEM*> SpecificElementVisitor< ELEM >::ElementList_t

Definition at line 203 of file SpecificElementVisitor.h.

◆ iterator_t

template<class ELEM>
typedef ElementList_t::iterator SpecificElementVisitor< ELEM >::iterator_t

Definition at line 204 of file SpecificElementVisitor.h.

◆ reference_t

template<class ELEM>
typedef ElementList_t::reference SpecificElementVisitor< ELEM >::reference_t

Definition at line 207 of file SpecificElementVisitor.h.

Constructor & Destructor Documentation

◆ SpecificElementVisitor()

template<class ELEM>
SpecificElementVisitor< ELEM >::SpecificElementVisitor ( const Beamline & beamline)

Definition at line 224 of file SpecificElementVisitor.h.

References allElementsOfTypeE, BeamlineVisitor::BeamlineVisitor(), and Beamline::iterate().

Here is the call graph for this function:

Member Function Documentation

◆ begin() [1/2]

template<class ELEM>
SpecificElementVisitor< ELEM >::iterator_t SpecificElementVisitor< ELEM >::begin ( )

Definition at line 427 of file SpecificElementVisitor.h.

References allElementsOfTypeE.

◆ begin() [2/2]

template<class ELEM>
SpecificElementVisitor< ELEM >::const_iterator_t SpecificElementVisitor< ELEM >::begin ( ) const

Definition at line 432 of file SpecificElementVisitor.h.

References allElementsOfTypeE.

◆ end() [1/2]

template<class ELEM>
SpecificElementVisitor< ELEM >::iterator_t SpecificElementVisitor< ELEM >::end ( )

Definition at line 437 of file SpecificElementVisitor.h.

References allElementsOfTypeE.

◆ end() [2/2]

template<class ELEM>
SpecificElementVisitor< ELEM >::const_iterator_t SpecificElementVisitor< ELEM >::end ( ) const

Definition at line 442 of file SpecificElementVisitor.h.

References allElementsOfTypeE.

◆ execute()

template<class ELEM>
void SpecificElementVisitor< ELEM >::execute ( )
virtual

Execute the algorithm on the attached beam line.

Implements BeamlineVisitor.

Definition at line 232 of file SpecificElementVisitor.h.

Referenced by Distribution::createMatchedGaussDistribution().

◆ front() [1/2]

template<class ELEM>
SpecificElementVisitor< ELEM >::reference_t SpecificElementVisitor< ELEM >::front ( )

◆ front() [2/2]

template<class ELEM>
SpecificElementVisitor< ELEM >::const_reference_t SpecificElementVisitor< ELEM >::front ( ) const

Definition at line 452 of file SpecificElementVisitor.h.

References allElementsOfTypeE.

◆ size()

template<class ELEM>
size_t SpecificElementVisitor< ELEM >::size ( ) const

◆ visitBeamline()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitBeamline ( const Beamline & element)
virtual

Apply the algorithm to a beam line.

Implements BeamlineVisitor.

Definition at line 236 of file SpecificElementVisitor.h.

References Beamline::iterate().

Here is the call graph for this function:

◆ visitCCollimator()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitCCollimator ( const CCollimator & element)
virtual

Apply the algorithm to a collimator.

Implements BeamlineVisitor.

Definition at line 241 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitComponent()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitComponent ( const Component & element)
virtual

Apply the algorithm to an arbitrary component.

Implements BeamlineVisitor.

Definition at line 246 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitCorrector()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitCorrector ( const Corrector & element)
virtual

Apply the algorithm to a closed orbit corrector.

Implements BeamlineVisitor.

Definition at line 251 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitCyclotron()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitCyclotron ( const Cyclotron & element)
virtual

Apply the algorithm to an cyclotron.

Implements BeamlineVisitor.

Definition at line 256 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitDegrader()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitDegrader ( const Degrader & element)
virtual

Apply the algorithm to a degrader.

Implements BeamlineVisitor.

Definition at line 261 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitDrift()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitDrift ( const Drift & element)
virtual

Apply the algorithm to a drift.

Implements BeamlineVisitor.

Definition at line 266 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitFlaggedElmPtr()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitFlaggedElmPtr ( const FlaggedElmPtr & element)
virtual

Apply the algorithm to a FlaggedElmPtr.

Implements BeamlineVisitor.

Definition at line 271 of file SpecificElementVisitor.h.

References ElementBase::accept(), and ElmPtr::getElement().

Here is the call graph for this function:

◆ visitFlexibleCollimator()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitFlexibleCollimator ( const FlexibleCollimator & element)
virtual

Apply the algorithm to a flexible collimator.

Implements BeamlineVisitor.

Definition at line 277 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitMarker()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitMarker ( const Marker & element)
virtual

Apply the algorithm to a marker.

Implements BeamlineVisitor.

Definition at line 282 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitMonitor()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitMonitor ( const Monitor & element)
virtual

Apply the algorithm to a beam position monitor.

Implements BeamlineVisitor.

Definition at line 287 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitMultipole()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitMultipole ( const Multipole & element)
virtual

Apply the algorithm to a multipole.

Implements BeamlineVisitor.

Definition at line 292 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitMultipoleT()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitMultipoleT ( const MultipoleT & element)
virtual

Apply the algorithm to an arbitrary multipole.

Implements BeamlineVisitor.

Definition at line 297 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitMultipoleTCurvedConstRadius()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitMultipoleTCurvedConstRadius ( const MultipoleTCurvedConstRadius & element)
virtual

Apply the algorithm to an arbitrary curved multipole of constant radius.

Definition at line 307 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitMultipoleTCurvedVarRadius()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitMultipoleTCurvedVarRadius ( const MultipoleTCurvedVarRadius & element)
virtual

Apply the algorithm to an arbitrary curved multipole of variable radius.

Definition at line 312 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitMultipoleTStraight()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitMultipoleTStraight ( const MultipoleTStraight & element)
virtual

Apply the algorithm to an arbitrary straight multipole.

Definition at line 302 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitOffset()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitOffset ( const Offset & element)
virtual

Apply the algorithm to an offset (placement).

Implements BeamlineVisitor.

Definition at line 317 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitOutputPlane()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitOutputPlane ( const OutputPlane & element)
virtual

Apply the algorithm to an output plane.

Implements BeamlineVisitor.

Definition at line 322 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitProbe()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitProbe ( const Probe & prob)
virtual

Apply the algorithm to a probe.

Implements BeamlineVisitor.

Definition at line 327 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitRBend()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitRBend ( const RBend & element)
virtual

Apply the algorithm to a rectangular bend.

Implements BeamlineVisitor.

Definition at line 332 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitRBend3D()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitRBend3D ( const RBend3D & element)
virtual

Apply the algorithm to a rectangular bend.

Reimplemented from BeamlineVisitor.

Definition at line 337 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitRFCavity()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitRFCavity ( const RFCavity & element)
virtual

Apply the algorithm to a RF cavity.

Implements BeamlineVisitor.

Definition at line 342 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitRing()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitRing ( const Ring & element)
virtual

Apply the algorithm to a ring.

Implements BeamlineVisitor.

Definition at line 347 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitSBend()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitSBend ( const SBend & element)
virtual

Apply the algorithm to a sector bend.

Implements BeamlineVisitor.

Definition at line 352 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitSBend3D()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitSBend3D ( const SBend3D & element)
virtual

Apply the algorithm to a sector bend with 3D field map.

Implements BeamlineVisitor.

Definition at line 357 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitScalingFFAMagnet()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitScalingFFAMagnet ( const ScalingFFAMagnet & element)
virtual

Apply the algorithm to a scaling FFA magnet.

Implements BeamlineVisitor.

Definition at line 362 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitSeptum()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitSeptum ( const Septum & element)
virtual

Apply the algorithm to a septum.

Implements BeamlineVisitor.

Definition at line 367 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitSolenoid()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitSolenoid ( const Solenoid & element)
virtual

Apply the algorithm to a solenoid.

Implements BeamlineVisitor.

Definition at line 372 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitSource()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitSource ( const Source & element)
virtual

Apply the algorithm to a source.

Implements BeamlineVisitor.

Definition at line 377 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitStripper()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitStripper ( const Stripper & element)
virtual

Apply the algorithm to a particle stripper.

Implements BeamlineVisitor.

Definition at line 382 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitTravelingWave()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitTravelingWave ( const TravelingWave & element)
virtual

Apply the algorithm to a traveling wave.

Implements BeamlineVisitor.

Definition at line 387 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitVacuum()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitVacuum ( const Vacuum & element)
virtual

Apply the algorithm to a vacuum space.

Implements BeamlineVisitor.

Definition at line 399 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitVariableRFCavity()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitVariableRFCavity ( const VariableRFCavity & vcav)
virtual

Apply the algorithm to a variable RF cavity.

Implements BeamlineVisitor.

Definition at line 404 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitVariableRFCavityFringeField()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitVariableRFCavityFringeField ( const VariableRFCavityFringeField & vcav)
virtual

Apply the algorithm to a variable RF cavity with Fringe Field..

Implements BeamlineVisitor.

Definition at line 410 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

◆ visitVerticalFFAMagnet()

template<class ELEM>
void SpecificElementVisitor< ELEM >::visitVerticalFFAMagnet ( const VerticalFFAMagnet & element)
virtual

Apply the algorithm to a vertical FFA magnet.

Implements BeamlineVisitor.

Definition at line 417 of file SpecificElementVisitor.h.

References allElementsOfTypeE, and CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

Member Data Documentation

◆ allElementsOfTypeE


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