42 filename_m(right.filename_m),
43 fieldmap_m(right.fieldmap_m),
44 scale_m(right.scale_m),
45 ElementEdge_m(right.ElementEdge_m),
46 startField_m(right.startField_m),
47 endField_m(right.endField_m),
48 fast_m(right.fast_m) {
110 Vector_t tmpE(0.0, 0.0, 0.0), tmpB(0.0, 0.0, 0.0);
120 Inform msg(
"CyclotronValley ");
125 double zBegin = 0.0, zEnd = 0.0, rBegin = 0.0, rEnd = 0.0;
128 msg <<
getName() <<
" using file: " <<
" ";
136 endField = startField - 1
e-3;
139 endField = startField - 1
e-3;
ParticleAttrib< Vector_t > P
virtual void getInfo(Inform *msg)=0
constexpr double e
The value of .
std::string getFieldMapFN() const
virtual void getFieldDimensions(double &zBegin, double &zEnd, double &rBegin, double &rEnd) const =0
virtual const std::string & getName() const
Get element name.
virtual void getDimensions(double &zBegin, double &zEnd) const
static Fieldmap * getFieldmap(std::string Filename, bool fast=false)
virtual ~CyclotronValley()
ElementBase::ElementType getType() const
Get element type std::string.
virtual bool getFieldstrength(const Vector_t &R, Vector_t &E, Vector_t &B) const =0
virtual bool bends() const
virtual void accept(BeamlineVisitor &) const
Apply visitor to CyclotronValley.
virtual void visitCyclotronValley(const CyclotronValley &)=0
Apply the algorithm to a CyclotronValley.
void setElType(ElemType elt)
set the element type as enumeration needed in the envelope tracker
PartBunchBase< double, 3 > * RefPartBunch_m
Interface for cyclotron valley.
void setFieldMapFN(std::string fmapfn)
Set the name of the field map.
virtual void initialise(PartBunchBase< double, 3 > *bunch, double &startField, double &endField)
virtual bool apply(const size_t &i, const double &t, Vector_t &E, Vector_t &B)
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 goOnline(const double &kineticEnergy)