29#ifndef CLASSIC_ABSBEAMLINE_Offset_HH
30#define CLASSIC_ABSBEAMLINE_Offset_HH
71 explicit Offset(
const std::string &name);
105 double displacement);
158 bool bends()
const override;
161 double &endField)
override;
bool operator!=(const Offset &off1, const Offset &off2)
std::ostream & operator<<(std::ostream &out, const Offset &off1)
bool operator==(const Offset &off1, const Offset &off2)
PartBunch< PLayout_t< double, 3 >, double, 3 > PartBunch_t
ippl::Vector< T, Dim > Vector_t
Component(const std::string &name)
Constructor with given name.
ElementBase(const std::string &name)
Constructor with given name.
Vector_t< double, 3 > getEndDirection() const
Euclid3DGeometry & getGeometry() override
Get geometry.
void setEndDirection(Vector_t< double, 3 > direction)
Offset & operator=(const Offset &)
static Offset localCylindricalOffset(std::string name, double theta_in, double theta_out, double displacement)
bool isGeometryAllocated() const
static Vector_t< double, 3 > rotate(Vector_t< double, 3 > vec, double theta)
Vector_t< double, 3 > _end_position
static Offset globalCartesianOffset(std::string name, Vector_t< double, 3 > end_position, Vector_t< double, 3 > end_direction)
void getDimensions(double &, double &) const override
Vector_t< double, 3 > _end_direction
static const double lengthUnits_m
EMField & getField() override
Not implemented - throws GeneralClassicException.
static double getTheta(Vector_t< double, 3 > vec1, Vector_t< double, 3 > vec2)
static double float_tolerance
void initialise(PartBunch_t *bunch, double &startField, double &endField) override
static Offset localCartesianOffset(std::string name, Vector_t< double, 3 > end_position, Vector_t< double, 3 > end_direction)
Offset(const std::string &name)
void setEndPosition(Vector_t< double, 3 > position)
ElementBase * clone() const override
void accept(BeamlineVisitor &) const override
static Offset globalCylindricalOffset(std::string name, double radius_out, double phi_out, double theta_out)
Vector_t< double, 3 > getEndPosition() const
Euclid3DGeometry * geometry_m
void setIsLocal(bool isLocal)
bool bends() const override
Abstract base class for electromagnetic fields.