OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
RangeSelector Class Reference

#include <RangeSelector.h>

Inheritance diagram for RangeSelector:
Inheritance graph
Collaboration diagram for RangeSelector:
Collaboration graph

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

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...
 
const BeamlineitsLine
 
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 &)
 
virtual void applyDefault (const ElementBase &)
 

Private Attributes

bool local_flip
 

Detailed Description

Definition at line 29 of file RangeSelector.h.

Constructor & Destructor Documentation

◆ RangeSelector() [1/3]

RangeSelector::RangeSelector ( const Beamline beamline,
const RangeRep range 
)

Constructor.

Definition at line 31 of file RangeSelector.cpp.

◆ ~RangeSelector()

RangeSelector::~RangeSelector ( )
virtual

Definition at line 36 of file RangeSelector.cpp.

◆ RangeSelector() [2/3]

RangeSelector::RangeSelector ( )
private

◆ RangeSelector() [3/3]

RangeSelector::RangeSelector ( const RangeSelector )
private

Member Function Documentation

◆ applyDefault()

◆ execute()

void RangeSelector::execute ( )
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().

Here is the call graph for this function:

◆ handleBeamline()

void RangeSelector::handleBeamline ( const FlaggedElmPtr fep)
protectedvirtual

The operation to be done for beamlines.

Definition at line 64 of file RangeSelector.cpp.

References DefaultVisitor::visitFlaggedElmPtr().

Referenced by visitFlaggedElmPtr().

Here is the call graph for this function:

◆ handleElement()

void RangeSelector::handleElement ( const FlaggedElmPtr fep)
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().

Here is the call graph for this function:

◆ operator=()

void RangeSelector::operator= ( const RangeSelector )
private

◆ visitBeamline()

void DefaultVisitor::visitBeamline ( const Beamline bl)
virtualinherited

Apply the algorithm to a beam line.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 213 of file DefaultVisitor.cpp.

References Beamline::iterate(), and DefaultVisitor::local_flip.

Here is the call graph for this function:

◆ visitCCollimator()

void DefaultVisitor::visitCCollimator ( const CCollimator coll)
virtualinherited

Apply the algorithm to a collimator.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 85 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitComponent()

void DefaultVisitor::visitComponent ( const Component comp)
virtualinherited

Apply the algorithm to an arbitrary component.

Implements BeamlineVisitor.

Reimplemented in Tracker.

Definition at line 89 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitCorrector()

void DefaultVisitor::visitCorrector ( const Corrector corr)
virtualinherited

Apply the algorithm to a closed orbit corrector.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 93 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitCyclotron()

void DefaultVisitor::visitCyclotron ( const Cyclotron cyc)
virtualinherited

Apply the algorithm to an cyclotron.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker.

Definition at line 97 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitDegrader()

void DefaultVisitor::visitDegrader ( const Degrader deg)
virtualinherited

Apply the algorithm to a degrader.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 101 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault(), and matheval::detail::math::deg().

Here is the call graph for this function:

◆ visitDrift()

void DefaultVisitor::visitDrift ( const Drift drf)
virtualinherited

Apply the algorithm to a drift space.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 105 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitFlaggedElmPtr()

void RangeSelector::visitFlaggedElmPtr ( const FlaggedElmPtr fep)
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().

Here is the call graph for this function:

◆ visitFlexibleCollimator()

void DefaultVisitor::visitFlexibleCollimator ( const FlexibleCollimator coll)
virtualinherited

Apply the algorithm to a flexible collimator.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 109 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitMarker()

void DefaultVisitor::visitMarker ( const Marker mark)
virtualinherited

Apply the algorithm to a marker.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 113 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitMonitor()

void DefaultVisitor::visitMonitor ( const Monitor mon)
virtualinherited

Apply the algorithm to a beam position monitor.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 117 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitMultipole()

void DefaultVisitor::visitMultipole ( const Multipole mult)
virtualinherited

Apply the algorithm to a multipole.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 121 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitMultipoleT()

void DefaultVisitor::visitMultipoleT ( const MultipoleT multT)
virtualinherited

Apply the algorithm to to an arbitrary multipole.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, and ParallelTTracker.

Definition at line 125 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitOffset()

void DefaultVisitor::visitOffset ( const Offset off)
virtualinherited

Apply the algorithm to an offset (placement).

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker.

Definition at line 129 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitOutputPlane()

void DefaultVisitor::visitOutputPlane ( const OutputPlane out)
virtualinherited

Apply the algorithm to an output plane.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker.

Definition at line 133 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitProbe()

void DefaultVisitor::visitProbe ( const Probe prob)
virtualinherited

Apply the algorithm to a probe.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 137 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitRBend()

void DefaultVisitor::visitRBend ( const RBend bend)
virtualinherited

Apply the algorithm to a rectangular bend.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 141 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitRBend3D()

void DefaultVisitor::visitRBend3D ( const RBend3D bend)
virtualinherited

Apply the algorithm to a rectangular bend.

Reimplemented from BeamlineVisitor.

Reimplemented in ParallelTTracker.

Definition at line 145 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitRFCavity()

void DefaultVisitor::visitRFCavity ( const RFCavity cav)
virtualinherited

Apply the algorithm to a RF cavity.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 149 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitRing()

void DefaultVisitor::visitRing ( const Ring ring)
virtualinherited

Apply the algorithm to a ring.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker.

Definition at line 153 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitSBend()

void DefaultVisitor::visitSBend ( const SBend bend)
virtualinherited

Apply the algorithm to a sector bend.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 157 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitSBend3D()

void DefaultVisitor::visitSBend3D ( const SBend3D bend)
virtualinherited

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

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker.

Definition at line 161 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitScalingFFAMagnet()

void DefaultVisitor::visitScalingFFAMagnet ( const ScalingFFAMagnet spiral)
virtualinherited

Apply the algorithm to a scaling FFA magnet.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker.

Definition at line 165 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitSeptum()

void DefaultVisitor::visitSeptum ( const Septum sept)
virtualinherited

Apply the algorithm to a septum.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 169 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitSolenoid()

void DefaultVisitor::visitSolenoid ( const Solenoid sol)
virtualinherited

Apply the algorithm to a solenoid.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 173 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitSource()

void DefaultVisitor::visitSource ( const Source sou)
virtualinherited

Apply the algorithm to a source.

Implements BeamlineVisitor.

Reimplemented in ParallelTTracker.

Definition at line 177 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitStripper()

void DefaultVisitor::visitStripper ( const Stripper stripper)
virtualinherited

Apply the algorithm to a particle stripper.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker.

Definition at line 181 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitTravelingWave()

void DefaultVisitor::visitTravelingWave ( const TravelingWave trw)
virtualinherited

Apply the algorithm to a traveling wave.

Implements BeamlineVisitor.

Reimplemented in ParallelTTracker, and ThickTracker.

Definition at line 185 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitVacuum()

void DefaultVisitor::visitVacuum ( const Vacuum vac)
virtualinherited

Apply the algorithm to a vacuum space.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker, ParallelTTracker, and ThickTracker.

Definition at line 195 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitVariableRFCavity()

void DefaultVisitor::visitVariableRFCavity ( const VariableRFCavity vcav)
virtualinherited

Apply the algorithm to a a variable RF cavity.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker.

Definition at line 199 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitVariableRFCavityFringeField()

void DefaultVisitor::visitVariableRFCavityFringeField ( const VariableRFCavityFringeField vcav)
virtualinherited

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

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker.

Definition at line 203 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitVerticalFFAMagnet()

void DefaultVisitor::visitVerticalFFAMagnet ( const VerticalFFAMagnet mag)
virtualinherited

Apply the algorithm to a vertical FFA magnet.

Implements BeamlineVisitor.

Reimplemented in ParallelCyclotronTracker.

Definition at line 208 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

Member Data Documentation

◆ back_beam

bool DefaultVisitor::back_beam
protectedinherited

◆ back_path

bool DefaultVisitor::back_path
protectedinherited

Definition at line 157 of file DefaultVisitor.h.

Referenced by DefaultVisitor::DefaultVisitor().

◆ back_track

◆ flip_B

double DefaultVisitor::flip_B
protectedinherited

Definition at line 160 of file DefaultVisitor.h.

Referenced by DefaultVisitor::DefaultVisitor().

◆ flip_s

double DefaultVisitor::flip_s
protectedinherited

Definition at line 161 of file DefaultVisitor.h.

Referenced by DefaultVisitor::DefaultVisitor().

◆ itsLine

const Beamline& DefaultVisitor::itsLine
protectedinherited

Definition at line 152 of file DefaultVisitor.h.

Referenced by DefaultVisitor::execute().

◆ itsRange

RangeRep RangeSelector::itsRange
protected

Working data for range.

Definition at line 55 of file RangeSelector.h.

Referenced by execute(), handleElement(), Selector::handleElement(), and visitFlaggedElmPtr().

◆ local_flip

bool DefaultVisitor::local_flip
privateinherited

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