OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
|
#include <RangeSelector.h>
Public Member Functions | |
RangeSelector (const Beamline &, const RangeRep &range) | |
Constructor. More... | |
virtual | ~RangeSelector () |
virtual void | execute () |
Execute the algorithm. More... | |
virtual void | visitFlaggedElmPtr (const FlaggedElmPtr &) |
Apply the visitor to an FlaggedElmPtr. More... | |
Public Member Functions inherited from DefaultVisitor | |
DefaultVisitor (const Beamline &beamline, bool backBeam, bool backTrack) | |
Constructor. More... | |
virtual | ~DefaultVisitor ()=0 |
virtual void | execute () |
Apply the algorithm to the top-level beamline. 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 space. 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 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 | 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 a variable RF cavity. More... | |
virtual void | visitVariableRFCavityFringeField (const VariableRFCavityFringeField &vcav) |
Apply the algorithm to a a variable RF cavity with Fringe Field. More... | |
virtual void | visitVerticalFFAMagnet (const VerticalFFAMagnet &) |
Apply the algorithm to a vertical FFA magnet. More... | |
Public Member Functions inherited from BeamlineVisitor | |
BeamlineVisitor () | |
virtual | ~BeamlineVisitor () |
virtual void | execute ()=0 |
Execute the algorithm on the attached beam line. More... | |
virtual void | visitBeamline (const Beamline &)=0 |
Apply the algorithm to a beam line. More... | |
virtual void | visitCCollimator (const CCollimator &)=0 |
Apply the algorithm to a collimator. More... | |
virtual void | visitComponent (const Component &)=0 |
Apply the algorithm to an arbitrary component. More... | |
virtual void | visitCorrector (const Corrector &)=0 |
Apply the algorithm to a closed orbit corrector. More... | |
virtual void | visitCyclotron (const Cyclotron &)=0 |
Apply the algorithm to a cyclotron. More... | |
virtual void | visitDegrader (const Degrader &)=0 |
Apply the algorithm to a degrader. More... | |
virtual void | visitDrift (const Drift &)=0 |
Apply the algorithm to a drift space. More... | |
virtual void | visitFlaggedElmPtr (const FlaggedElmPtr &)=0 |
Apply the algorithm to a FlaggedElmPtr. More... | |
virtual void | visitFlexibleCollimator (const FlexibleCollimator &)=0 |
Apply the algorithm to a flexible collimator. More... | |
virtual void | visitMarker (const Marker &)=0 |
Apply the algorithm to a marker. More... | |
virtual void | visitMonitor (const Monitor &)=0 |
Apply the algorithm to a beam position monitor. More... | |
virtual void | visitMultipole (const Multipole &)=0 |
Apply the algorithm to a multipole. More... | |
virtual void | visitMultipoleT (const MultipoleT &)=0 |
Apply the algorithm to an arbitrary multipole. More... | |
virtual void | visitMultipoleTStraight (const MultipoleTStraight &)=0 |
Apply the algorithm to an arbitrary straight multipole. More... | |
virtual void | visitMultipoleTCurvedConstRadius (const MultipoleTCurvedConstRadius &)=0 |
Apply the algorithm to an arbitrary curved multipole of constant radius. More... | |
virtual void | visitMultipoleTCurvedVarRadius (const MultipoleTCurvedVarRadius &)=0 |
Apply the algorithm to an arbitrary curved multipole of variable radius. More... | |
virtual void | visitOffset (const Offset &)=0 |
Apply the algorithm to an offset (placement). More... | |
virtual void | visitProbe (const Probe &)=0 |
Apply the algorithm to a probe. More... | |
virtual void | visitRBend (const RBend &)=0 |
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 &)=0 |
Apply the algorithm to a RF cavity. More... | |
virtual void | visitRing (const Ring &)=0 |
Apply the algorithm to a ring. More... | |
virtual void | visitSBend (const SBend &)=0 |
Apply the algorithm to a sector bend. More... | |
virtual void | visitSBend3D (const SBend3D &)=0 |
Apply the algorithm to a sector bend with 3D field map. More... | |
virtual void | visitScalingFFAMagnet (const ScalingFFAMagnet &)=0 |
Apply the algorithm to a scaling FFA magnet. More... | |
virtual void | visitSeptum (const Septum &)=0 |
Apply the algorithm to a septum magnet. More... | |
virtual void | visitSolenoid (const Solenoid &)=0 |
Apply the algorithm to a solenoid. More... | |
virtual void | visitSource (const Source &)=0 |
Apply the algorithm to a source. More... | |
virtual void | visitStripper (const Stripper &)=0 |
Apply the algorithm to a particle stripper. More... | |
virtual void | visitTravelingWave (const TravelingWave &)=0 |
Apply the algorithm to a traveling wave. More... | |
virtual void | visitVacuum (const Vacuum &)=0 |
Apply the algorithm to a vacuum space. More... | |
virtual void | visitVariableRFCavity (const VariableRFCavity &)=0 |
Apply the algorithm to a variable RF cavity. More... | |
virtual void | visitVariableRFCavityFringeField (const VariableRFCavityFringeField &)=0 |
Apply the algorithm to a variable RF cavity with Fringe Field. More... | |
virtual void | visitVerticalFFAMagnet (const VerticalFFAMagnet &)=0 |
Apply the algorithm to a vertical FFA magnet. More... | |
Protected Member Functions | |
virtual void | handleBeamline (const FlaggedElmPtr &) |
The operation to be done for beamlines. More... | |
virtual void | handleElement (const FlaggedElmPtr &) |
The operation to be done for elements. More... | |
Protected Attributes | |
RangeRep | itsRange |
Working data for range. More... | |
Protected Attributes inherited from DefaultVisitor | |
const Beamline & | itsLine |
bool | back_beam |
bool | back_track |
bool | back_path |
double | flip_B |
double | flip_s |
Private Member Functions | |
RangeSelector () | |
RangeSelector (const RangeSelector &) | |
void | operator= (const RangeSelector &) |
Definition at line 29 of file RangeSelector.h.
Constructor.
Definition at line 31 of file RangeSelector.cpp.
|
virtual |
Definition at line 36 of file RangeSelector.cpp.
|
private |
|
private |
|
virtual |
Execute the algorithm.
Reimplemented from DefaultVisitor.
Reimplemented in Selector.
Definition at line 40 of file RangeSelector.cpp.
References DefaultVisitor::execute(), RangeRep::initialize(), and itsRange.
Referenced by Selector::execute().
|
protectedvirtual |
The operation to be done for beamlines.
Definition at line 64 of file RangeSelector.cpp.
References DefaultVisitor::visitFlaggedElmPtr().
Referenced by visitFlaggedElmPtr().
|
protectedvirtual |
The operation to be done for elements.
Reimplemented in Selector.
Definition at line 69 of file RangeSelector.cpp.
References RangeRep::isActive(), itsRange, and DefaultVisitor::visitFlaggedElmPtr().
Referenced by visitFlaggedElmPtr().
|
private |
|
virtual |
Apply the visitor to an FlaggedElmPtr.
Reimplemented from DefaultVisitor.
Definition at line 46 of file RangeSelector.cpp.
References RangeRep::enter(), ElmPtr::getElement(), handleBeamline(), handleElement(), itsRange, and RangeRep::leave().
|
protected |
Working data for range.
Definition at line 55 of file RangeSelector.h.
Referenced by execute(), handleElement(), Selector::handleElement(), and visitFlaggedElmPtr().