1#ifndef OPALX_ConstantEFieldCavity_HH
2#define OPALX_ConstantEFieldCavity_HH
24 virtual bool bends()
const override;
26 virtual void getFieldExtend(
double& zBegin,
double& zEnd)
const override;
28 virtual bool apply(
const std::shared_ptr<ParticleContainer_t>& pc)
override;
43 virtual void setEx(
double ex);
44 virtual void setEy(
double ey);
45 virtual void setEz(
double ez);
Defines the abstract interface for a single beamline component in the accelerator model.
ippl::Vector< T, Dim > Vector_t
Component applying a constant accelerating electric field (Ex,Ey,Ez).
virtual void setEx(double ex)
virtual bool bends() const override
virtual bool apply(const std::shared_ptr< ParticleContainer_t > &pc) override
Apply to all particles. Kernel launch moved inside the function.
void operator=(const ConstantEFieldCavity &)
virtual void accept(BeamlineVisitor &visitor) const override
Apply visitor.
virtual ~ConstantEFieldCavity()
virtual void finalise() override
virtual void setEy(double ey)
virtual void setEz(double ez)
virtual bool applyToReferenceParticle(const Vector_t< double, 3 > &R, const Vector_t< double, 3 > &P, const double &t, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B) override
Apply to reference particle with position R and momemtum P.
virtual void getFieldExtend(double &zBegin, double &zEnd) const override
Return the field-support extent of the component.
virtual ElementType getType() const override
Get element type std::string.
virtual void initialise(PartBunch_t *bunch, double &startField, double &endField) override