18 #ifndef RING_SECTION_H
19 #define RING_SECTION_H
119 bool doesOverlap(
double phiStart,
double phiEnd)
const;
221 double magnitude =
std::sqrt(orientation(0) * orientation(0) +
222 orientation(1) * orientation(1) +
223 orientation(2) * orientation(2));
224 if (magnitude > 0.) {
225 orientation /= magnitude;
232 vec =
Vector_t(vec(1), vec(2), vec(0));
236 vec =
Vector_t(vec(2), vec(0), vec(1));
239 #endif //RING_SECTION_H
void rotateToTCoordinates(Vector_t &vec) const
Tps< T > sqrt(const Tps< T > &x)
Square root.
void rotate_back(Vector_t &vector) const
item[EANGLE] Entrance edge counterclockwise This enables to obtain skew at each point along the its radius is computed such that the reference trajectory always remains in the centre of the magnet In the body of the magnet the radius is set from the LENGTH and ANGLE attributes It is then continuously changed to be proportional to the dipole field on the reference trajectory while entering the end fields This attribute is only to be set TRUE for a non zero dipole component(Default:FALSE)\item[VARSTEP] The step size(meters) used in calculating the reference trajectory for VARRARDIUS
void setEndPosition(Vector_t pos)
Vektor< double, 3 > Vector_t
Vector_t & normalise(Vector_t &vector) const
bool isPastEndPlane(const Vector_t &pos) const
Vector_t getComponentPosition() const
RingSection & operator=(const RingSection &sec)
std::vector< Vector_t > getVirtualBoundingBox() const
void setComponentPosition(Vector_t position)
bool isOnOrPastStartPlane(const Vector_t &pos) const
void setEndNormal(Vector_t orientation)
Vector_t getStartPosition() const
bool getFieldValue(const Vector_t &pos, const Vector_t ¢roid, const double &t, Vector_t &E, Vector_t &B) const
void setStartNormal(Vector_t orientation)
Vector_t getStartNormal() const
std::vector< RingSection * > RingSectionList
Component placement handler in ring geometry.
void rotateToCyclCoordinates(Vector_t &vec) const
void setComponentOrientation(Vector_t orientation)
Vector_t getEndNormal() const
void rotate(Vector_t &vector) const
Component * getComponent() const
void setStartPosition(Vector_t pos)
bool doesOverlap(double phiStart, double phiEnd) const
Vector_t componentOrientation_m
Vector_t startOrientation_m
Vector_t getComponentOrientation() const
Tps< T > sec(const Tps< T > &x)
Secant.
Vector_t componentPosition_m
void updateComponentOrientation()
void setComponent(Component *component)
Interface for a single beam element.
Vector_t getEndPosition() const
Vector_t endOrientation_m