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