15#ifndef CLASSIC_OutputPlane_HH
16#define CLASSIC_OutputPlane_HH
184 bool checkOne(
const int index,
const double tstep,
double chargeToMass,
203 void RK4Step(
const double& tstep,
204 const double& chargeToMass,
225 const int turnnumber,
227 const double tstep)
override;
233 const double& chargeToMass,
236 void rk4Test(
double tstep,
double chargeToMass,
256 typedef std::function<bool(
const double&,
T euclidean_norm(const Vector< T > &)
Euclidean norm.
T::PETE_Expr_t::PETE_Return_t max(const PETE_Expr< T > &expr, NDIndex< D > &loc)
Interface for a single beam element.
BVector Bfield(const Point3D &P) const
Return the field in a point.
Component(const std::string &name)
Constructor with given name.
EVector Efield(const Point3D &P) const
Return the field in a point.
void setAlgorithm(algorithm alg)
bool getFieldsAtPoint(const Vector_t &R, const Vector_t &P, const double &t, Vector_t &Efield, Vector_t &Bfield)
void setVerticalExtent(double z)
void setCentre(Vector_t centre)
void operator=(const OutputPlane &)=delete
void RK4Step(const double &tstep, const double &chargeToMass, const double &t, Vector_t &R, Vector_t &P) const
void rk4Test(double tstep, double chargeToMass, double &t, Vector_t &R, Vector_t &P)
OutputPlane(const std::string &name)
void setNormal(Vector_t normal)
void getDerivatives(const Vector_t &R, const Vector_t &P, const double &t, const double &chargeToMass, double *yp) const
const NullField & getField() const override
int getVerboseLevel() const
double distanceToPlane(Vector_t point) const
bool checkOne(const int index, const double tstep, double chargeToMass, double &t, Vector_t &R, Vector_t &P)
StraightGeometry & getGeometry() override
double getVerticalExtent() const
algorithm getAlgorithm() const
virtual void doInitialise(PartBunchBase< double, 3 > *) override
Initialise peakfinder file.
const StraightGeometry & getGeometry() const override
Vector_t getCentre() const
NullField & getField() override
ElementType getType() const override
Get element type std::string.
void setTolerance(double tolerance)
void setRadialExtent(double r)
bool doPreCheck(PartBunchBase< double, 3 > *bunch) override
Record probe hits when bunch particles pass.
ElementBase * clone() const override
std::function< bool(const double &, const size_t &, Vector_t &, Vector_t &)> function_t
virtual void doGoOffline() override
Hook for goOffline.
double getRadialExtent() const
Component * getGlobalFieldMap() const
void recentre(Vector_t R, Vector_t P)
double getHorizontalExtent() const
size_t getMaxIterations() const
void setVerboseLevel(int verbose)
double horizontalExtent_m
void setGlobalFieldMap(Component *field)
void setMaxIterations(size_t max)
virtual bool doCheck(PartBunchBase< double, 3 > *bunch, const int turnnumber, const double t, const double tstep) override
Record probe hits when bunch particles pass.
Vector_t getNormal() const
virtual void accept(BeamlineVisitor &) const override
void setHorizontalExtent(double width)
void setRecentre(int willRecentre)
std::unique_ptr< Stepper< function_t > > stepper_m
double getTolerance() const
PluginElement(const std::string &name)
Constructor with given name.
A geometry representing a straight line.
A zero electromagnetic field.
Vektor< double, 3 > Vector_t