30 #ifndef CLASSIC_MULTIPOLETBASE_H 
   31 #define CLASSIC_MULTIPOLETBASE_H 
  145     virtual void setMaxOrder(
const std::size_t &maxOrder);
 
  173                         const double &lambda_left, 
 
  174                         const double &lambda_right);
 
  201     void setAperture(
const double &vertAp, 
const double &horizAp);
 
  220     virtual void getDimensions(
double &zBegin, 
double &zEnd) 
const;
 
  293     virtual double getRadius(
const double &s) = 0;
 
  298     virtual double getScaleFactor(
const double &x, 
const double &s) = 0;
 
  325     virtual double getFn(
const std::size_t &n,
 
  327                          const double &s) = 0;
 
  430                                      const double &horizAp) {
 
  436         std::vector<double> temp(2, 0.0);
 
  443         std::vector<double> temp(2, 0.0);
 
ParticleAttrib< Vector_t > P
 
virtual double getFn(const std::size_t &n, const double &x, const double &s)=0
 
PETE_TUTree< FnAbs, typename T::PETE_Expr_t > abs(const PETE_Expr< T > &l)
 
double getEntranceAngle() const 
 
std::vector< double > getFringeLength() const 
 
bool setFringeField(const double &s0, const double &lambda_left, const double &lambda_right)
 
double getFnDerivX(const std::size_t &n, const double &x, const double &s)
 
virtual void getDimensions(double &zBegin, double &zEnd) const 
 
void setDipoleConstant(const double &B0)
 
void setAperture(const double &vertAp, const double &horizAp)
 
virtual double getRadius(const double &s)=0
 
PETE_TUTree< FnFabs, typename T::PETE_Expr_t > fabs(const PETE_Expr< T > &l)
 
virtual void setBendAngle(const double &angle)
 
virtual void transformCoords(Vector_t &R)=0
 
std::size_t getTransMaxOrder() const 
 
std::size_t transMaxOrder_m
 
void setTransProfile(const std::size_t &n, const double &Bn)
 
std::vector< double > getTransProfile() const 
 
endfieldmodel::Tanh fringeField_l
 
double getRotation() const 
 
void setTransMaxOrder(const std::size_t &transMaxOrder)
 
void setEntranceAngle(const double &entranceAngle)
 
PartBunchBase< double, 3 > * RefPartBunch_m
 
double boundingBoxLength_m
 
virtual double getBx(const Vector_t &R)
 
void setLength(const double &length)
 
void setBoundingBoxLength(const double &boundingBoxLength)
 
bool insideAperture(const Vector_t &R)
 
Abstract base class for electromagnetic fields. 
 
bool apply(const Vector_t &R, const Vector_t &P, const double &t, Vector_t &E, Vector_t &B)
 
double getTransDeriv(const std::size_t &n, const double &x)
 
The magnetic field of a multipole. 
 
virtual void transformBField(Vector_t &B, const Vector_t &R)=0
 
endfieldmodel::Tanh fringeField_r
 
double getFnDerivS(const std::size_t &n, const double &x, const double &s)
 
virtual double getScaleFactor(const double &x, const double &s)=0
 
void initialise(PartBunchBase< double, 3 > *, double &startField, double &endField)
 
double getFringeDeriv(const std::size_t &n, const double &s)
 
std::size_t getMaxOrder() const 
 
virtual double getBs(const Vector_t &R)
 
virtual double getBendAngle() const 
 
void setRotation(const double &rot)
 
double getBoundingBoxLength() const 
 
Interface for a single beam element. 
 
virtual void setMaxOrder(const std::size_t &maxOrder)
 
double getDipoleConstant() const 
 
std::vector< double > transProfile_m
 
Vector_t rotateFrameInverse(Vector_t &B)
 
std::vector< double > getAperture() const 
 
Vector_t rotateFrame(const Vector_t &R)
 
double getBz(const Vector_t &R)