33 #ifndef CLASSIC_BeamlineVisitor_HH
34 #define CLASSIC_BeamlineVisitor_HH
71 #ifdef ENABLE_OPAL_FEL
179 #ifdef ENABLE_OPAL_FEL
181 virtual void visitUndulator(
const Undulator &) = 0;
void operator=(const BeamlineVisitor &)
virtual void visitVerticalFFAMagnet(const VerticalFFAMagnet &)=0
Apply the algorithm to a vertical FFA magnet.
virtual void visitSolenoid(const Solenoid &)=0
Apply the algorithm to a solenoid.
virtual void visitMultipole(const Multipole &)=0
Apply the algorithm to a multipole.
virtual void visitDegrader(const Degrader &)=0
Apply the algorithm to a degrader.
virtual void visitMarker(const Marker &)=0
Apply the algorithm to a marker.
virtual void visitScalingFFAMagnet(const ScalingFFAMagnet &)=0
Apply the algorithm to a scaling FFA magnet.
virtual void visitSBend3D(const SBend3D &)=0
Apply the algorithm to a sector bend with 3D field map.
virtual void visitTravelingWave(const TravelingWave &)=0
Apply the algorithm to a traveling wave.
virtual void visitRBend3D(const RBend3D &)
Apply the algorithm to a rectangular bend.
virtual void visitMultipoleTCurvedVarRadius(const MultipoleTCurvedVarRadius &)=0
Apply the algorithm to an arbitrary curved multipole of variable radius.
virtual void visitProbe(const Probe &)=0
Apply the algorithm to a probe.
virtual void visitFlexibleCollimator(const FlexibleCollimator &)=0
Apply the algorithm to a flexible collimator.
virtual void visitMultipoleTCurvedConstRadius(const MultipoleTCurvedConstRadius &)=0
Apply the algorithm to an arbitrary curved multipole of constant radius.
virtual void visitVariableRFCavityFringeField(const VariableRFCavityFringeField &)=0
Apply the algorithm to a variable RF cavity with Fringe Field.
virtual void visitMultipoleTStraight(const MultipoleTStraight &)=0
Apply the algorithm to an arbitrary straight multipole.
virtual void visitSource(const Source &)=0
Apply the algorithm to a source.
virtual void visitMonitor(const Monitor &)=0
Apply the algorithm to a beam position monitor.
BeamlineVisitor(const BeamlineVisitor &)
virtual void visitRing(const Ring &)=0
Apply the algorithm to a ring.
virtual ~BeamlineVisitor()
virtual void visitSBend(const SBend &)=0
Apply the algorithm to a sector bend.
virtual void visitSeptum(const Septum &)=0
Apply the algorithm to a septum magnet.
virtual void execute()=0
Execute the algorithm on the attached beam line.
virtual void visitOffset(const Offset &)=0
Apply the algorithm to an offset (placement).
virtual void visitStripper(const Stripper &)=0
Apply the algorithm to a particle stripper.
virtual void visitDrift(const Drift &)=0
Apply the algorithm to a drift space.
virtual void visitComponent(const Component &)=0
Apply the algorithm to an arbitrary component.
virtual void visitCorrector(const Corrector &)=0
Apply the algorithm to a closed orbit corrector.
virtual void visitCCollimator(const CCollimator &)=0
Apply the algorithm to a collimator.
virtual void visitVacuum(const Vacuum &)=0
Apply the algorithm to a vacuum space.
virtual void visitBeamline(const Beamline &)=0
Apply the algorithm to a beam line.
virtual void visitRBend(const RBend &)=0
Apply the algorithm to a rectangular bend.
virtual void visitVariableRFCavity(const VariableRFCavity &)=0
Apply the algorithm to a variable RF cavity.
virtual void visitRFCavity(const RFCavity &)=0
Apply the algorithm to a RF cavity.
virtual void visitFlaggedElmPtr(const FlaggedElmPtr &)=0
Apply the algorithm to a FlaggedElmPtr.
virtual void visitCyclotron(const Cyclotron &)=0
Apply the algorithm to a cyclotron.
virtual void visitMultipoleT(const MultipoleT &)=0
Apply the algorithm to an arbitrary multipole.
Interface for a single beam element.
Interface for general corrector.
Interface for drift space.
Interface for general multipole.
Ring describes a ring type geometry for tracking.
Interface for Traveling Wave.
An abstract sequence of beam line components.
A section of a beam line.