Interface for a single beam element.
Interface for drift space.
virtual void accept(BeamlineVisitor &visitor) const =0
Apply visitor.
Interface for general multipole.
Ring describes a ring type geometry for tracking.
virtual void visitProbe(const Probe &prob)
Apply the algorithm to a Probe.
virtual ~DefaultVisitor()=0
virtual void visitOffset(const Offset &)
Apply the algorithm to an offset (placement).
virtual void visitDrift(const Drift &)
Apply the algorithm to a drift space.
virtual void visitComponent(const Component &)
Apply the algorithm to an arbitrary component.
virtual void visitRFCavity(const RFCavity &)
Apply the algorithm to a RF cavity.
virtual void visitMarker(const Marker &)
Apply the algorithm to a marker.
virtual void visitMultipoleTCurvedVarRadius(const MultipoleTCurvedVarRadius &)
Apply the algorithm to an arbitrary curved multipole of variable radius.
virtual void visitTravelingWave(const TravelingWave &)
Apply the algorithm to a traveling wave.
virtual void visitMultipoleTCurvedConstRadius(const MultipoleTCurvedConstRadius &)
Apply the algorithm to an arbitrary curved multipole of constant radius.
virtual void visitMonitor(const Monitor &)
Apply the algorithm to a beam position monitor.
virtual void visitFlaggedElmPtr(const FlaggedElmPtr &)
Apply the algorithm to a FlaggedElmPtr.
virtual void applyDefault(const ElementBase &)
virtual void visitSolenoid(const Solenoid &)
Apply the algorithm to a Solenoid.
virtual void visitScalingFFAMagnet(const ScalingFFAMagnet &spiral)
Apply the algorithm to a scaling FFA magnet.
virtual void visitBeamline(const Beamline &)
Apply the algorithm to a beam line.
virtual void visitMultipoleT(const MultipoleT &)
Apply the algorithm to to an arbitrary multipole.
virtual void visitVerticalFFAMagnet(const VerticalFFAMagnet &)
Apply the algorithm to a vertical FFA magnet.
virtual void visitMultipole(const Multipole &)
Apply the algorithm to a multipole.
virtual void execute()
Apply the algorithm to the top-level beamline.
virtual void visitRing(const Ring &)
Apply the algorithm to a Ring.
virtual void visitMultipoleTStraight(const MultipoleTStraight &)
Apply the algorithm to an arbitrary straight multipole.
An abstract sequence of beam line components.
virtual void iterate(BeamlineVisitor &, bool reverse) const =0
Apply visitor to all elements of the line.
ElementBase * getElement() const
Get the element pointer.
A section of a beam line.
bool getReflectionFlag() const
Get reflection flag.