OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
Abstract algorithm. More...
#include <BeamlineVisitor.h>
Public Member Functions | |
BeamlineVisitor () | |
virtual | ~BeamlineVisitor () |
virtual void | execute ()=0 |
Execute the algorithm on the attached beam line. More... | |
virtual void | visitBeamBeam (const BeamBeam &)=0 |
Apply the algorithm to a beam-beam interaction. More... | |
virtual void | visitBeamStripping (const BeamStripping &)=0 |
Apply the algorithm to a beam stripping interaction. 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 (catch all). More... | |
virtual void | visitCorrector (const Corrector &)=0 |
Apply the algorithm to a closed orbit corrector. More... | |
virtual void | visitDegrader (const Degrader &)=0 |
Apply the algorithm to a diagnostic. More... | |
virtual void | visitDiagnostic (const Diagnostic &)=0 |
Apply the algorithm to a diagnostic. More... | |
virtual void | visitDrift (const Drift &)=0 |
Apply the algorithm to a drift space. More... | |
virtual void | visitFlexibleCollimator (const FlexibleCollimator &)=0 |
Apply the algorithm to a flexible collimator. More... | |
virtual void | visitRing (const Ring &)=0 |
Apply the algorithm to an Ring. More... | |
virtual void | visitCyclotron (const Cyclotron &)=0 |
Apply the algorithm to a cyclotron. More... | |
virtual void | visitLambertson (const Lambertson &)=0 |
Apply the algorithm to a Lambertson septum magnet. More... | |
virtual void | visitOffset (const Offset &)=0 |
Apply the algorithm to an Offset (placement). 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 | visitPatch (const Patch &)=0 |
Apply the algorithm to a patch. 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 | 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 | visitTravelingWave (const TravelingWave &)=0 |
Apply the algorithm to a RF cavity. More... | |
virtual void | visitRFQuadrupole (const RFQuadrupole &)=0 |
Apply the algorithm to a RF quadrupole. 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 | visitSeparator (const Separator &)=0 |
Apply the algorithm to an electrostatic separator. 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 | visitScalingFFAMagnet (const ScalingFFAMagnet &)=0 |
Apply the algorithm to a solenoid. More... | |
virtual void | visitSource (const Source &)=0 |
Apply the algorithm to a source. More... | |
virtual void | visitBeamline (const Beamline &)=0 |
Apply the algorithm to a Beamline. More... | |
virtual void | visitFlaggedElmPtr (const FlaggedElmPtr &)=0 |
Apply the algorithm to a FlaggedElmPtr. More... | |
virtual void | visitAlignWrapper (const AlignWrapper &)=0 |
Apply the algorithm to an align wrapper. More... | |
virtual void | visitCorrectorWrapper (const CorrectorWrapper &)=0 |
Apply the algorithm to an corrector wrapper. More... | |
virtual void | visitCyclotronWrapper (const CyclotronWrapper &)=0 |
Apply the algorithm to an corrector wrapper. More... | |
virtual void | visitMultipoleWrapper (const MultipoleWrapper &)=0 |
Apply the algorithm to an multipole wrapper. More... | |
virtual void | visitRBendWrapper (const RBendWrapper &)=0 |
Apply the algorithm to an RBend wrapper. More... | |
virtual void | visitSBendWrapper (const SBendWrapper &)=0 |
Apply the algorithm to an SBend wrapper. More... | |
virtual void | visitParallelPlate (const ParallelPlate &)=0 |
Apply the algorithm to an ParallelPlate. More... | |
virtual void | visitCyclotronValley (const CyclotronValley &)=0 |
Apply the algorithm to a CyclotronValley. More... | |
virtual void | visitStripper (const Stripper &)=0 |
Apply the algorithm to a particle stripper. More... | |
virtual void | visitIntegrator (const Integrator &)=0 |
Apply the algorithm to a generic integrator. More... | |
virtual void | visitTrackIntegrator (const TrackIntegrator &)=0 |
Apply the algorithm to an integrator capable of tracking. More... | |
virtual void | visitMapIntegrator (const MapIntegrator &)=0 |
Apply the algorithm to an integrator capable of mapping. More... | |
virtual void | visitVerticalFFAMagnet (const VerticalFFAMagnet &)=0 |
Apply the algorithm to a vertical FFA magnet. More... | |
Private Member Functions | |
BeamlineVisitor (const BeamlineVisitor &) | |
void | operator= (const BeamlineVisitor &) |
Abstract algorithm.
Definition at line 104 of file BeamlineVisitor.h.
BeamlineVisitor::BeamlineVisitor | ( | ) |
Definition at line 27 of file BeamlineVisitor.cpp.
|
virtual |
Definition at line 31 of file BeamlineVisitor.cpp.
|
private |
|
pure virtual |
Execute the algorithm on the attached beam line.
Implemented in ThickTracker, ParallelTTracker, ParallelCyclotronTracker, Aperture, MSplit, ParallelSliceTracker, MakeSequenceNS::SequenceWriter, SpecificElementVisitor< ELEM >, NilTracker, Flatten< Member >, DefaultVisitor, Selector, and RangeSelector.
|
private |
|
pure virtual |
Apply the algorithm to an align wrapper.
Implemented in SpecificElementVisitor< ELEM >, DefaultVisitor, TransportMapper, LinearMapper, ThickTracker, OrbitTracker, Mapper, Tracker, ParallelTTracker, IdealMapper, ParallelSliceTracker, and NilTracker.
Referenced by AlignWrapper::accept().
|
pure virtual |
Apply the algorithm to a beam-beam interaction.
Implemented in ThickTracker, ParallelTTracker, TransportMapper, ThickMapper, LinearMapper, LieMapper, ParallelCyclotronTracker, SpecificElementVisitor< ELEM >, ParallelSliceTracker, ThinTracker, OrbitTracker, ThinMapper, NilTracker, and DefaultVisitor.
Referenced by BeamBeam::accept().
|
pure virtual |
Apply the algorithm to a Beamline.
Implemented in ThickTracker, SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, ParallelTTracker, DefaultVisitor, ParallelSliceTracker, and NilTracker.
Referenced by TBeamline< T >::accept().
|
pure virtual |
Apply the algorithm to a beam stripping interaction.
Implemented in ThickTracker, ParallelTTracker, TransportMapper, ThickMapper, LinearMapper, LieMapper, ParallelCyclotronTracker, SpecificElementVisitor< ELEM >, ThinTracker, OrbitTracker, ThinMapper, NilTracker, and DefaultVisitor.
Referenced by BeamStripping::accept().
|
pure virtual |
Apply the algorithm to a collimator.
Implemented in ThickTracker, ParallelTTracker, TransportMapper, ThickMapper, LinearMapper, LieMapper, ParallelCyclotronTracker, SpecificElementVisitor< ELEM >, ThinTracker, ParallelSliceTracker, OrbitTracker, ThinMapper, DefaultVisitor, and NilTracker.
Referenced by CCollimator::accept().
|
pure virtual |
Apply the algorithm to an arbitrary component (catch all).
Implemented in Mapper, Tracker, TransportMapper, LinearMapper, LieMapper, SpecificElementVisitor< ELEM >, OrbitTracker, and DefaultVisitor.
|
pure virtual |
Apply the algorithm to a closed orbit corrector.
Implemented in ThickTracker, ParallelTTracker, TransportMapper, LinearMapper, ThickMapper, LieMapper, SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, IdealMapper, ThinTracker, ParallelSliceTracker, DefaultVisitor, OrbitTracker, ThinMapper, and NilTracker.
Referenced by Corrector::accept().
|
pure virtual |
Apply the algorithm to an corrector wrapper.
Implemented in SpecificElementVisitor< ELEM >, DefaultVisitor, and IdealMapper.
Referenced by CorrectorWrapper::accept().
|
pure virtual |
Apply the algorithm to a cyclotron.
Implemented in Aperture, MSplit, SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, and DefaultVisitor.
Referenced by Cyclotron::accept().
|
pure virtual |
Apply the algorithm to a CyclotronValley.
Implemented in ThickTracker, SpecificElementVisitor< ELEM >, ParallelTTracker, ParallelCyclotronTracker, TransportMapper, DefaultVisitor, LinearMapper, LieMapper, ThickMapper, ThinTracker, OrbitTracker, ThinMapper, ParallelSliceTracker, and NilTracker.
Referenced by CyclotronValley::accept().
|
pure virtual |
Apply the algorithm to an corrector wrapper.
Implemented in SpecificElementVisitor< ELEM >, and DefaultVisitor.
Referenced by CyclotronWrapper::accept().
|
pure virtual |
Apply the algorithm to a diagnostic.
Implemented in ThickTracker, ParallelTTracker, TransportMapper, LinearMapper, ThickMapper, LieMapper, SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, ThinTracker, DefaultVisitor, OrbitTracker, ParallelSliceTracker, ThinMapper, and NilTracker.
Referenced by Degrader::accept().
|
pure virtual |
Apply the algorithm to a diagnostic.
Implemented in ThickTracker, ParallelTTracker, TransportMapper, LinearMapper, ThickMapper, LieMapper, SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, ThinTracker, DefaultVisitor, OrbitTracker, ParallelSliceTracker, ThinMapper, and NilTracker.
Referenced by Diagnostic::accept().
|
pure virtual |
Apply the algorithm to a drift space.
Implemented in ThickTracker, ParallelTTracker, TransportMapper, LinearMapper, ThickMapper, LieMapper, SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, MakeSequenceNS::SequenceWriter, ThinTracker, DefaultVisitor, OrbitTracker, ParallelSliceTracker, ThinMapper, NilTracker, and FlatWriter.
Referenced by Drift::accept().
|
pure virtual |
Apply the algorithm to a FlaggedElmPtr.
Implemented in SpecificElementVisitor< ELEM >, DefaultVisitor, AttWriter, RangeSelector, Replacer, and Flagger.
Referenced by FlaggedElmPtr::accept().
|
pure virtual |
Apply the algorithm to a flexible collimator.
Implemented in ThickTracker, ParallelTTracker, TransportMapper, LinearMapper, ThickMapper, LieMapper, SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, ThinTracker, DefaultVisitor, OrbitTracker, ThinMapper, ParallelSliceTracker, and NilTracker.
Referenced by FlexibleCollimator::accept().
|
pure virtual |
Apply the algorithm to a generic integrator.
Implemented in SpecificElementVisitor< ELEM >, and DefaultVisitor.
|
pure virtual |
Apply the algorithm to a Lambertson septum magnet.
Implemented in ThickTracker, ParallelTTracker, TransportMapper, LinearMapper, ThickMapper, LieMapper, SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, ThinTracker, DefaultVisitor, OrbitTracker, ThinMapper, ParallelSliceTracker, and NilTracker.
Referenced by Lambertson::accept().
|
pure virtual |
Apply the algorithm to an integrator capable of mapping.
Implemented in SpecificElementVisitor< ELEM >, DefaultVisitor, TransportMapper, LinearMapper, Mapper, Tracker, and FlatWriter.
Referenced by MapIntegrator::accept().
|
pure virtual |
Apply the algorithm to a marker.
Implemented in ThickTracker, ParallelTTracker, TransportMapper, LinearMapper, ThickMapper, LieMapper, SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, ThinTracker, DefaultVisitor, OrbitTracker, ThinMapper, ParallelSliceTracker, and NilTracker.
Referenced by Marker::accept().
|
pure virtual |
Apply the algorithm to a beam position monitor.
Implemented in ThickTracker, ParallelTTracker, TransportMapper, LinearMapper, ThickMapper, LieMapper, SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, ThinTracker, DefaultVisitor, OrbitTracker, ThinMapper, ParallelSliceTracker, and NilTracker.
Referenced by Monitor::accept().
|
pure virtual |
Apply the algorithm to a multipole.
Implemented in ThickTracker, ParallelTTracker, TransportMapper, LinearMapper, ThickMapper, LieMapper, SpecificElementVisitor< ELEM >, Aperture, ParallelCyclotronTracker, ThinTracker, MSplit, DefaultVisitor, OrbitTracker, ThinMapper, ParallelSliceTracker, and NilTracker.
Referenced by Multipole::accept().
|
pure virtual |
Apply the algorithm to an arbitrary Multipole.
Implemented in ParallelTTracker, SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, and DefaultVisitor.
Referenced by MultipoleT::accept().
|
pure virtual |
Apply the algorithm to an arbitrary curved Multipole of constant radius.
Implemented in SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, and DefaultVisitor.
Referenced by MultipoleTCurvedConstRadius::accept().
|
pure virtual |
Apply the algorithm to an arbitrary curved Multipole of variable radius.
Implemented in SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, and DefaultVisitor.
Referenced by MultipoleTCurvedVarRadius::accept().
|
pure virtual |
Apply the algorithm to an arbitrary straight Multipole.
Implemented in SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, and DefaultVisitor.
Referenced by MultipoleTStraight::accept().
|
pure virtual |
Apply the algorithm to an multipole wrapper.
Implemented in SpecificElementVisitor< ELEM >, DefaultVisitor, and IdealMapper.
Referenced by MultipoleWrapper::accept().
|
pure virtual |
Apply the algorithm to an Offset (placement).
Implemented in SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, and DefaultVisitor.
Referenced by Offset::accept().
|
pure virtual |
Apply the algorithm to an ParallelPlate.
Implemented in ThickTracker, SpecificElementVisitor< ELEM >, ParallelTTracker, ParallelCyclotronTracker, TransportMapper, DefaultVisitor, LinearMapper, LieMapper, ThickMapper, ThinTracker, OrbitTracker, ThinMapper, ParallelSliceTracker, and NilTracker.
Referenced by ParallelPlate::accept().
|
pure virtual |
Apply the algorithm to a patch.
Implemented in SpecificElementVisitor< ELEM >, TransportMapper, LinearMapper, LieMapper, Mapper, Tracker, DefaultVisitor, OrbitTracker, IdealMapper, and Surveyor.
Referenced by Patch::accept().
|
pure virtual |
Apply the algorithm to a probe.
Implemented in ThickTracker, SpecificElementVisitor< ELEM >, ParallelTTracker, TransportMapper, ParallelCyclotronTracker, LinearMapper, LieMapper, ThickMapper, DefaultVisitor, ThinTracker, OrbitTracker, ThinMapper, ParallelSliceTracker, and NilTracker.
Referenced by Probe::accept().
|
pure virtual |
Apply the algorithm to a rectangular bend.
Implemented in ThickTracker, SpecificElementVisitor< ELEM >, ParallelTTracker, TransportMapper, ParallelCyclotronTracker, LinearMapper, LieMapper, ThickMapper, Aperture, DefaultVisitor, ThinTracker, OrbitTracker, MSplit, ThinMapper, ParallelSliceTracker, and NilTracker.
Referenced by RBend::accept().
|
inlinevirtual |
Apply the algorithm to a rectangular bend.
Reimplemented in SpecificElementVisitor< ELEM >, ParallelTTracker, and DefaultVisitor.
Definition at line 276 of file BeamlineVisitor.h.
Referenced by RBend3D::accept().
|
pure virtual |
Apply the algorithm to an RBend wrapper.
Implemented in SpecificElementVisitor< ELEM >, DefaultVisitor, and IdealMapper.
Referenced by RBendWrapper::accept().
|
pure virtual |
Apply the algorithm to a RF cavity.
Implemented in ThickTracker, SpecificElementVisitor< ELEM >, ParallelTTracker, TransportMapper, LinearMapper, LieMapper, ThickMapper, DefaultVisitor, ThinTracker, OrbitTracker, ThinMapper, ParallelCyclotronTracker, ParallelSliceTracker, and NilTracker.
Referenced by RFCavity::accept().
|
pure virtual |
Apply the algorithm to a RF quadrupole.
Implemented in ThickTracker, SpecificElementVisitor< ELEM >, ParallelTTracker, TransportMapper, ParallelCyclotronTracker, LinearMapper, LieMapper, ThickMapper, DefaultVisitor, ThinTracker, OrbitTracker, ThinMapper, ParallelSliceTracker, and NilTracker.
Referenced by RFQuadrupole::accept().
|
pure virtual |
Apply the algorithm to an Ring.
Implemented in SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, and DefaultVisitor.
Referenced by Ring::accept().
|
pure virtual |
Apply the algorithm to a sector bend.
Implemented in ThickTracker, SpecificElementVisitor< ELEM >, ParallelTTracker, TransportMapper, ParallelCyclotronTracker, LinearMapper, LieMapper, ThickMapper, DefaultVisitor, Aperture, ThinTracker, OrbitTracker, ThinMapper, MSplit, ParallelSliceTracker, and NilTracker.
Referenced by SBend::accept().
|
pure virtual |
Apply the algorithm to a Sector Bend with 3D field map.
Implemented in SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, and DefaultVisitor.
Referenced by SBend3D::accept().
|
pure virtual |
Apply the algorithm to an SBend wrapper.
Implemented in SpecificElementVisitor< ELEM >, DefaultVisitor, and IdealMapper.
Referenced by SBendWrapper::accept().
|
pure virtual |
Apply the algorithm to a solenoid.
Implemented in SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, and DefaultVisitor.
Referenced by ScalingFFAMagnet::accept().
|
pure virtual |
Apply the algorithm to an electrostatic separator.
Implemented in ThickTracker, SpecificElementVisitor< ELEM >, ParallelTTracker, TransportMapper, ParallelCyclotronTracker, DefaultVisitor, LinearMapper, LieMapper, ThickMapper, ThinTracker, OrbitTracker, ThinMapper, IdealMapper, ParallelSliceTracker, and NilTracker.
Referenced by Separator::accept().
|
pure virtual |
Apply the algorithm to a septum magnet.
Implemented in ThickTracker, SpecificElementVisitor< ELEM >, ParallelTTracker, TransportMapper, ParallelCyclotronTracker, DefaultVisitor, LinearMapper, LieMapper, ThickMapper, ThinTracker, OrbitTracker, ThinMapper, ParallelSliceTracker, and NilTracker.
Referenced by Septum::accept().
|
pure virtual |
Apply the algorithm to a solenoid.
Implemented in ThickTracker, SpecificElementVisitor< ELEM >, ParallelTTracker, TransportMapper, ParallelCyclotronTracker, DefaultVisitor, LinearMapper, LieMapper, ThickMapper, ThinTracker, OrbitTracker, ThinMapper, ParallelSliceTracker, and NilTracker.
Referenced by Solenoid::accept().
|
pure virtual |
Apply the algorithm to a source.
Implemented in SpecificElementVisitor< ELEM >, ParallelTTracker, DefaultVisitor, and ParallelSliceTracker.
Referenced by Source::accept().
|
pure virtual |
Apply the algorithm to a particle stripper.
Implemented in SpecificElementVisitor< ELEM >, DefaultVisitor, and ParallelCyclotronTracker.
Referenced by Stripper::accept().
|
pure virtual |
Apply the algorithm to an integrator capable of tracking.
Implemented in SpecificElementVisitor< ELEM >, DefaultVisitor, and Tracker.
Referenced by TrackIntegrator::accept().
|
pure virtual |
Apply the algorithm to a RF cavity.
Implemented in ThickTracker, SpecificElementVisitor< ELEM >, ParallelTTracker, DefaultVisitor, ParallelSliceTracker, and NilTracker.
Referenced by TravelingWave::accept().
|
pure virtual |
Apply the algorithm to a variable RF cavity.
Implemented in ParallelCyclotronTracker, SpecificElementVisitor< ELEM >, and DefaultVisitor.
Referenced by VariableRFCavity::accept(), and VariableRFCavityFringeField::accept().
|
pure virtual |
Apply the algorithm to a variable RF cavity with Fringe Field.
Implemented in ParallelCyclotronTracker, SpecificElementVisitor< ELEM >, and DefaultVisitor.
|
pure virtual |
Apply the algorithm to a vertical FFA magnet.
Implemented in SpecificElementVisitor< ELEM >, ParallelCyclotronTracker, and DefaultVisitor.
Referenced by VerticalFFAMagnet::accept().