33#ifndef OPALX_BeamlineVisitor_HH
34#define OPALX_BeamlineVisitor_HH
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 element.
virtual void visitMultipole(const Multipole &)=0
Apply the algorithm to a multipole.
virtual void visitMarker(const Marker &)=0
Apply the algorithm to a marker.
virtual void visitScalingFFAMagnet(const ScalingFFAMagnet &)=0
virtual void visitTravelingWave(const TravelingWave &)=0
Apply the algorithm to a traveling wave.
virtual void visitProbe(const Probe &)=0
Apply the algorithm to a Probe.
virtual void visitMonitor(const Monitor &)=0
Apply the algorithm to a beam position monitor.
virtual void visitConstantEFieldCavity(const ConstantEFieldCavity &)=0
Apply the algorithm to a constant E-field cavity element.
BeamlineVisitor(const BeamlineVisitor &)
virtual void visitRing(const Ring &)=0
Apply the algorithm to a Ring element.
virtual ~BeamlineVisitor()
virtual void visitSBend(const SBend &)=0
Apply the algorithm to a sector bend.
virtual void execute()=0
Execute the algorithm on the attached beam line.
virtual void visitLaser(const Laser &)=0
Apply the algorithm to a laser element.
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 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 visitMultipoleT(const MultipoleT &)=0
Apply the algorithm to an arbitrary multipole.
An abstract sequence of beam line components.
Component applying a constant accelerating electric field (Ex,Ey,Ez).
Interface for drift space.
A section of a beam line.
Passive OPALX laser element.
Interface for general multipole.
Abstract rectangular bend with straight body and curved reference path.
Interface for standing wave cavities.
Ring describes a ring type geometry for tracking.
Abstract sector bend with planar-arc body geometry.
Abstract class for a solenoid magnet.
Interface for traveling wave cavities.