OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
SpecificElementVisitor< ELEM > Class Template Reference

#include <SpecificElementVisitor.h>

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

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 visitConstantEFieldCavity (const ConstantEFieldCavity &)
 Apply the algorithm to a constant E-field cavity element.
 
virtual void visitDrift (const Drift &)
 Apply the algorithm to a drift.
 
virtual void visitLaser (const Laser &)
 Apply the algorithm to a laser.
 
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 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 81 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 201 of file SpecificElementVisitor.h.

◆ const_reference_t

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

Definition at line 204 of file SpecificElementVisitor.h.

◆ ElementList_t

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

Definition at line 199 of file SpecificElementVisitor.h.

◆ iterator_t

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

Definition at line 200 of file SpecificElementVisitor.h.

◆ reference_t

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

Definition at line 203 of file SpecificElementVisitor.h.

Constructor & Destructor Documentation

◆ SpecificElementVisitor()

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

Definition at line 220 of file SpecificElementVisitor.h.

References 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 420 of file SpecificElementVisitor.h.

◆ begin() [2/2]

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

Definition at line 425 of file SpecificElementVisitor.h.

◆ end() [1/2]

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

Definition at line 431 of file SpecificElementVisitor.h.

◆ end() [2/2]

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

Definition at line 436 of file SpecificElementVisitor.h.

◆ execute()

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

Execute the algorithm on the attached beam line.

Implements BeamlineVisitor.

Definition at line 226 of file SpecificElementVisitor.h.

◆ front() [1/2]

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

Definition at line 441 of file SpecificElementVisitor.h.

◆ front() [2/2]

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

Definition at line 446 of file SpecificElementVisitor.h.

◆ size()

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

Definition at line 415 of file SpecificElementVisitor.h.

◆ visitBeamline()

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

Apply the algorithm to a beam line.

Implements BeamlineVisitor.

Definition at line 229 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.

Definition at line 234 of file SpecificElementVisitor.h.

References 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 239 of file SpecificElementVisitor.h.

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

Here is the call graph for this function:

◆ visitConstantEFieldCavity()

template<class ELEM >
void SpecificElementVisitor< ELEM >::visitConstantEFieldCavity ( const ConstantEFieldCavity element)
virtual

Apply the algorithm to a constant E-field cavity element.

Implements BeamlineVisitor.

Definition at line 259 of file SpecificElementVisitor.h.

References 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.

Definition at line 244 of file SpecificElementVisitor.h.

References 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.

Definition at line 249 of file SpecificElementVisitor.h.

References 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.

Definition at line 254 of file SpecificElementVisitor.h.

References 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 264 of file SpecificElementVisitor.h.

References 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 274 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.

Definition at line 280 of file SpecificElementVisitor.h.

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

Here is the call graph for this function:

◆ visitLaser()

template<class ELEM >
void SpecificElementVisitor< ELEM >::visitLaser ( const Laser element)
virtual

Apply the algorithm to a laser.

Implements BeamlineVisitor.

Definition at line 269 of file SpecificElementVisitor.h.

References 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 285 of file SpecificElementVisitor.h.

References 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 290 of file SpecificElementVisitor.h.

References 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 295 of file SpecificElementVisitor.h.

References 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 300 of file SpecificElementVisitor.h.

References 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 310 of file SpecificElementVisitor.h.

References 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 316 of file SpecificElementVisitor.h.

References 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 305 of file SpecificElementVisitor.h.

References 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 322 of file SpecificElementVisitor.h.

References 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 327 of file SpecificElementVisitor.h.

References 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.

Definition at line 332 of file SpecificElementVisitor.h.

References 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 337 of file SpecificElementVisitor.h.

References 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 342 of file SpecificElementVisitor.h.

References 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 347 of file SpecificElementVisitor.h.

References 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.

Definition at line 352 of file SpecificElementVisitor.h.

References 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 357 of file SpecificElementVisitor.h.

References 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.

Definition at line 362 of file SpecificElementVisitor.h.

References 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 367 of file SpecificElementVisitor.h.

References 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.

Definition at line 372 of file SpecificElementVisitor.h.

References 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.

Definition at line 377 of file SpecificElementVisitor.h.

References 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 382 of file SpecificElementVisitor.h.

References 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.

Definition at line 394 of file SpecificElementVisitor.h.

References 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 399 of file SpecificElementVisitor.h.

References 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..

Definition at line 404 of file SpecificElementVisitor.h.

References 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 410 of file SpecificElementVisitor.h.

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

Here is the call graph for this function:

Member Data Documentation

◆ allElementsOfTypeE

template<class ELEM >
ElementList_t SpecificElementVisitor< ELEM >::allElementsOfTypeE
private

Definition at line 216 of file SpecificElementVisitor.h.


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