OPAL (Object Oriented Parallel Accelerator Library)  2024.1
OPAL
Public Types | Public Member Functions | Private Attributes | List of all members
SpecificElementVisitor< ELEM > Class Template Reference

#include <SpecificElementVisitor.h>

Inheritance diagram for SpecificElementVisitor< ELEM >:
Inheritance graph
[legend]
Collaboration diagram for SpecificElementVisitor< ELEM >:
Collaboration graph
[legend]

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

Private Attributes

ElementList_t allElementsOfTypeE
 

Detailed Description

template<class ELEM>
class SpecificElementVisitor< ELEM >

Definition at line 83 of file SpecificElementVisitor.h.

Member Typedef Documentation

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

Definition at line 205 of file SpecificElementVisitor.h.

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

Definition at line 208 of file SpecificElementVisitor.h.

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

Definition at line 203 of file SpecificElementVisitor.h.

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

Definition at line 204 of file SpecificElementVisitor.h.

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

Definition at line 207 of file SpecificElementVisitor.h.

Constructor & Destructor Documentation

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

Definition at line 224 of file SpecificElementVisitor.h.

References Beamline::iterate().

Here is the call graph for this function:

Member Function Documentation

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

Definition at line 427 of file SpecificElementVisitor.h.

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

Definition at line 432 of file SpecificElementVisitor.h.

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

Definition at line 437 of file SpecificElementVisitor.h.

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

Definition at line 442 of file SpecificElementVisitor.h.

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(), and minimal_runner.MinimalRunner::execute_fork().

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

Definition at line 447 of file SpecificElementVisitor.h.

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

Definition at line 452 of file SpecificElementVisitor.h.

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

Definition at line 422 of file SpecificElementVisitor.h.

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:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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

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

Implements BeamlineVisitor.

Definition at line 307 of file SpecificElementVisitor.h.

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

Here is the call graph for this function:

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

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

Implements BeamlineVisitor.

Definition at line 312 of file SpecificElementVisitor.h.

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

Here is the call graph for this function:

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

Apply the algorithm to an arbitrary straight multipole.

Implements BeamlineVisitor.

Definition at line 302 of file SpecificElementVisitor.h.

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

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

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

Apply the algorithm to a variable RF cavity.

Implements BeamlineVisitor.

Definition at line 405 of file SpecificElementVisitor.h.

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

Here is the call graph for this function:

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

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

Here is the call graph for this function:

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 CastsTrait< ELEM1, ELEM2 >::apply().

Here is the call graph for this function:

Member Data Documentation

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

Definition at line 220 of file SpecificElementVisitor.h.


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