1#ifndef CLASSIC_Component_HH
2#define CLASSIC_Component_HH
31template <
class T,
unsigned Dim>
34template <
class T,
int N>
class FVps;
101 virtual bool apply(
const size_t &i,
133 double &) {
return false;}
136 virtual void setDesignEnergy(
const double& energy,
bool changeable =
true);
146 virtual void goOnline(
const double &kineticEnergy);
174 bool revBeam,
bool revTrack)
const;
181 bool revBeam,
bool revTrack)
const;
Vector truncated power series in n variables.
Interface for a single beam element.
BVector Bfield(const Point3D &P) const
Return the field in a point.
virtual ElementType getType() const
Get element type std::string.
virtual void finalise()=0
virtual const EMField & getField() const =0
Return field.
virtual void initialise(PartBunchBase< double, 3 > *bunch, double &startField, double &endField)=0
virtual double getDesignEnergy() const
virtual bool applyToReferenceParticle(const Vector_t &R, const Vector_t &P, const double &t, Vector_t &E, Vector_t &B)
virtual void goOnline(const double &kineticEnergy)
virtual void getDimensions(double &zBegin, double &zEnd) const =0
virtual bool apply(const size_t &i, const double &t, Vector_t &E, Vector_t &B)
virtual void trackBunch(PartBunchBase< double, 3 > *bunch, const PartData &, bool revBeam, bool revTrack) const
Track particle bunch.
virtual void trackMap(FVps< double, 6 > &map, const PartData &, bool revBeam, bool revTrack) const
Track a map.
virtual bool getPotential(const Vector_t &, const double &, Vector_t &, double &)
PartBunchBase< double, 3 > * RefPartBunch_m
virtual EMField & getField()=0
Return field.
virtual bool bends() const =0
virtual void setDesignEnergy(const double &energy, bool changeable=true)
static const std::vector< double > defaultAperture_m
EBVectors EBfield(const Point3D &P) const
Return the field in a point.
virtual const ElementBase & getDesign() const
Return design element.
EVector Efield(const Point3D &P) const
Return the field in a point.
void setExitFaceSlope(const double &)
An electric field vector.
A representation of an electromagnetic field.
Abstract base class for electromagnetic fields.
virtual BVector Bfield(const Point3D &P) const
Get field.
virtual EVector Efield(const Point3D &P) const
Get field.
virtual EBVectors EBfield(const Point3D &P) const
Get field.