15#ifndef ABSBEAMLINE_VerticalFFAMagnet_H
16#define ABSBEAMLINE_VerticalFFAMagnet_H
236 const double mm = 1000.;
250 std::shared_ptr<ParticleContainer_t> pc =
RefPartBunch_m->getParticleContainer();
251 auto Rview = pc->R.getView();
252 auto Pview = pc->P.getView();
255 return apply(R, P, t, E, B);
PartBunch< PLayout_t< double, 3 >, double, 3 > PartBunch_t
ippl::Vector< T, Dim > Vector_t
Component(const std::string &name)
Constructor with given name.
PartBunch_t * RefPartBunch_m
ElementBase(const std::string &name)
Constructor with given name.
void setBBLength(double bbLength)
ElementBase * clone() const
endfieldmodel::EndFieldModel * getEndField() const
void accept(BeamlineVisitor &visitor) const
VerticalFFAMagnet & operator=(const VerticalFFAMagnet &rhs)
void setWidth(double width)
double getFieldIndex() const
size_t getMaxOrder() const
std::vector< std::vector< double > > getDfCoefficients() const
std::unique_ptr< endfieldmodel::EndFieldModel > endField_m
void calculateDfCoefficients()
BGeometryBase & getGeometry()
void setMaxOrder(size_t maxOrder)
std::vector< std::vector< double > > dfCoefficients_m
double getPositiveVerticalExtent() const
double getNegativeVerticalExtent() const
StraightGeometry straightGeometry_m
bool apply(const size_t &i, const double &t, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B)
double getBBLength() const
VerticalFFAMagnet(const std::string &name)
void setNegativeVerticalExtent(double negativeExtent)
void setFieldIndex(double index)
bool getFieldValue(const Vector_t< double, 3 > &R, Vector_t< double, 3 > &B) const
void getDimensions(double &, double &) const
void setEndField(endfieldmodel::EndFieldModel *endField)
void setPositiveVerticalExtent(double positiveExtent)
Abstract base class for accelerator geometry classes.
A geometry representing a straight line.
The magnetic field of a multipole.
Abstract base class for electromagnetic fields.