1#ifndef CLASSIC_Component_HH
2#define CLASSIC_Component_HH
34template <
class T,
int N>
53 explicit Component(
const std::string& name);
129 virtual void setDesignEnergy(
const double& energy,
bool changeable =
true);
140 virtual void goOnline(
const double& kineticEnergy);
ParticleContainer< double, 3 > ParticleContainer_t
PartBunch< PLayout_t< double, 3 >, double, 3 > PartBunch_t
ippl::Vector< T, Dim > Vector_t
BVector Bfield(const Point3D &P) const
Return the field in a point.
virtual ElementType getType() const
Get element type std::string.
virtual bool applyToReferenceParticle(const Vector_t< double, 3 > &R, const Vector_t< double, 3 > &P, const double &t, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B)
virtual void finalise()=0
virtual const EMField & getField() const =0
Return field.
virtual bool getPotential(const Vector_t< double, 3 > &, const double &, Vector_t< double, 3 > &, double &)
virtual double getDesignEnergy() const
virtual void initialise(PartBunch_t *bunch, double &startField, double &endField)=0
virtual void goOnline(const double &kineticEnergy)
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.
Component(const std::string &name)
Constructor with given name.
virtual EMField & getField()=0
Return field.
virtual bool bends() const =0
PartBunch_t * RefPartBunch_m
virtual void setDesignEnergy(const double &energy, bool changeable=true)
static const std::vector< double > defaultAperture_m
virtual void trackBunch(PartBunch_t *bunch, const PartData &, bool revBeam, bool revTrack) const
Track particle bunch.
EBVectors EBfield(const Point3D &P) const
Return the field in a point.
virtual const ElementBase & getDesign() const
Return design element.
virtual bool apply(const size_t &i, const double &t, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B)
EVector Efield(const Point3D &P) const
Return the field in a point.
void setExitFaceSlope(const double &)
ElementBase(const std::string &name)
Constructor with given name.
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.