42 filename_m(right.filename_m),
43 myFieldmap_m(right.myFieldmap_m),
44 scale_m(right.scale_m),
45 scaleError_m(right.scaleError_m),
46 startField_m(right.startField_m),
47 fast_m(right.fast_m) {
54 myFieldmap_m(nullptr),
91 Vector_t tmpE(0.0, 0.0, 0.0), tmpB(0.0, 0.0, 0.0);
93 const bool outOfBounds =
myFieldmap_m->getFieldstrength(
R, tmpE, tmpB);
108 Vector_t tmpE(0.0, 0.0, 0.0), tmpB(0.0, 0.0, 0.0);
110 const bool outOfBounds =
myFieldmap_m->getFieldstrength(
R, tmpE, tmpB);
111 if (outOfBounds)
return true;
130 double zBegin = 0.0, zEnd = 0.0;
137 endField = startField;
PartBunchBase< T, Dim >::ConstIterator end(PartBunchBase< T, Dim > const &bunch)
PartBunchBase< T, Dim >::ConstIterator begin(PartBunchBase< T, Dim > const &bunch)
Inform & level2(Inform &inf)
ParticleAttrib< Vector_t > P
virtual void visitSolenoid(const Solenoid &)=0
Apply the algorithm to a solenoid.
Interface for a single beam element.
PartBunchBase< double, 3 > * RefPartBunch_m
virtual const std::string & getName() const
Get element name.
bool getFlagDeleteOnTransverseExit() const
virtual double getElementLength() const
Get design length.
virtual void setElementLength(double length)
Set design length.
bool isInsideTransverse(const Vector_t &r) const
virtual void getDimensions(double &zBegin, double &zEnd) const override
double scaleError_m
scale multiplier error
virtual void getElementDimensions(double &zBegin, double &zEnd) const override
virtual bool apply(const size_t &i, const double &t, Vector_t &E, Vector_t &B) override
double startField_m
startingpoint of field, m
virtual void goOffline() override
virtual void goOnline(const double &kineticEnergy) override
virtual void finalise() override
virtual bool applyToReferenceParticle(const Vector_t &R, const Vector_t &P, const double &t, Vector_t &E, Vector_t &B) override
virtual bool bends() const override
virtual ElementType getType() const override
Get element type std::string.
virtual bool isInside(const Vector_t &r) const override
std::string filename_m
The name of the inputfile.
void setFieldMapFN(std::string fn)
virtual void accept(BeamlineVisitor &) const override
Apply visitor to Solenoid.
double scale_m
scale multiplier
virtual void initialise(PartBunchBase< double, 3 > *bunch, double &startField, double &endField) override
static Fieldmap getFieldmap(std::string Filename, bool fast=false)