1#ifndef OPALX_Corrector_HH
2#define OPALX_Corrector_HH
50 explicit Corrector(
const std::string& name);
85 virtual void goOnline(
const double& kineticEnergy);
89 virtual bool bends()
const;
99 virtual void setDesignEnergy(
const double& ekin,
bool changeable =
true);
Defines the abstract interface for a single beamline component in the accelerator model.
ippl::Vector< T, Dim > Vector_t
The field of a magnetic dipole.
Interface for general corrector.
virtual StraightGeometry & getGeometry()=0
Return the corrector geometry.
virtual void goOnline(const double &kineticEnergy)
virtual bool bends() const
virtual bool apply(const size_t &i, const double &t, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B)
Apply to particle i.
void operator=(const Corrector &)
virtual ElementType getType() const
Get element type std::string.
virtual const BDipoleField & getField() const =0
Return the corrector field.
@ OFF
Corrector is off (inactive).
@ X
Corrector acts on x-plane.
@ Y
Corrector acts on y-plane.
@ XY
Corrector acts on both planes.
bool designEnergyChangeable_m
virtual void accept(BeamlineVisitor &) const
Apply a visitor to Corrector.
virtual Plane getPlane() const =0
Return the plane on which the corrector acts.
void setKickField(const Vector_t< double, 3 > &k0)
Vector_t< double, 3 > kickField_m
virtual void getFieldExtend(double &zBegin, double &zEnd) const
Return the field-support extent of the component.
virtual const StraightGeometry & getGeometry() const =0
Return the corrector geometry. Version for const object.
virtual BDipoleField & getField()=0
Return the corrector field.
virtual void setDesignEnergy(const double &ekin, bool changeable=true)
virtual void initialise(PartBunch_t *bunch, double &startField, double &endField)
A geometry representing a straight line.