1#ifndef CLASSIC_Corrector_HH
2#define CLASSIC_Corrector_HH
52 explicit Corrector(
const std::string &name);
79 virtual bool apply(
const size_t &i,
92 virtual void goOnline(
const double &kineticEnergy);
96 virtual bool bends()
const;
100 virtual void getDimensions(
double &zBegin,
double &zEnd)
const;
106 virtual void setDesignEnergy(
const double& ekin,
bool changeable =
true);
PartBunch< PLayout_t< double, 3 >, double, 3 > PartBunch_t
ippl::Vector< T, Dim > Vector_t
Component(const std::string &name)
Constructor with given name.
Interface for general corrector.
virtual StraightGeometry & getGeometry()=0
Return the corrector geometry.
virtual void getDimensions(double &zBegin, double &zEnd) const
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)
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.
Corrector(const std::string &name)
Constructor with given name.
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 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.
The field of a magnetic dipole.