48 : itsLine(beamline), back_beam(backBeam), back_track(backTrack) {
An abstract sequence of beam line components.
virtual void iterate(BeamlineVisitor &, bool reverse) const =0
Apply visitor to all elements of the line.
Component applying a constant accelerating electric field (Ex,Ey,Ez).
void visitBeamline(const Beamline &) override
Apply the algorithm to a beam line.
void visitTravelingWave(const TravelingWave &) override
Apply the algorithm to a traveling wave.
void visitFlaggedElmPtr(const FlaggedElmPtr &) override
Apply the algorithm to a FlaggedElmPtr.
void visitSolenoid(const Solenoid &) override
Apply the algorithm to a Solenoid.
void visitRing(const Ring &) override
Apply the algorithm to a Ring.
void visitComponent(const Component &) override
Apply the algorithm to an arbitrary component.
void visitDrift(const Drift &) override
Apply the algorithm to a drift space.
void visitRFCavity(const RFCavity &) override
Apply the algorithm to a RF cavity.
void visitMonitor(const Monitor &) override
Apply the algorithm to a beam position monitor.
void visitRBend(const RBend &) override
Apply the algorithm to a rectangular bend.
void visitVariableRFCavity(const VariableRFCavity &) override
Apply the algorithm to a variable RF cavity.
void visitMultipoleT(const MultipoleT &) override
Apply the algorithm to an arbitrary multipole.
void visitMarker(const Marker &) override
Apply the algorithm to a marker.
void visitProbe(const Probe &prob) override
Apply the algorithm to a Probe.
virtual void applyDefault(const ElementBase &)
void visitMultipole(const Multipole &) override
Apply the algorithm to a multipole.
void execute() override
Apply the algorithm to the top-level beamline.
void visitScalingFFAMagnet(const ScalingFFAMagnet &spiral) override
Apply the algorithm to a scaling FFA magnet.
void visitSBend(const SBend &) override
Apply the algorithm to a sector bend.
void visitVerticalFFAMagnet(const VerticalFFAMagnet &) override
Apply the algorithm to a vertical FFA magnet.
void visitLaser(const Laser &) override
Apply the algorithm to a laser.
void visitConstantEFieldCavity(const ConstantEFieldCavity &) override
Apply the algorithm to a constant E-field cavity element.
Interface for drift space.
virtual void accept(BeamlineVisitor &visitor) const =0
Apply visitor.
ElementBase * getElement() const
Get the element pointer.
A section of a beam line.
bool getReflectionFlag() const
Get reflection flag.
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.