1 #ifndef CLASSIC_Cyclotron_HH
2 #define CLASSIC_Cyclotron_HH
39 std::vector<double>
dbt;
44 std::vector<double>
dbr;
53 std::vector<double>
f2;
54 std::vector<double>
f3;
55 std::vector<double>
g3;
126 virtual void getDimensions(
double &zBegin,
double &zEnd)
const;
133 void setRfPhi(std::vector<double> f);
161 void setTrimCoils(
const std::vector<TrimCoil*> &trimcoils);
167 virtual double getMinR()
const;
169 virtual double getMaxR()
const;
172 virtual double getMinZ()
const;
174 virtual double getMaxZ()
const;
191 virtual void apply(
const double&
rad,
const double& z,
192 const double& tet_rad,
double& br,
193 double& bt,
double& bz);
201 virtual bool bends()
const;
203 virtual double getRmax()
const;
205 virtual double getRmin()
const;
208 const double& tet_rad,
213 void read(
const int &fieldflag,
const double &scaleFactor);
217 void applyTrimCoil (
const double r,
const double z,
const double tet_rad,
double& br,
double& bz);
219 void applyTrimCoil_m(
const double r,
const double z,
const double tet_rad,
double *br,
double *bz);
226 double gutdf5d(
double *f,
double dx,
const int kor,
const int krl,
const int lpr);
228 void initR(
double rmin,
double dr,
int nrad);
245 std::vector< std::vector<double> >
rffc_m;
247 std::vector< std::vector<double> >
rfvc_m;
307 #endif // CLASSIC_Cyclotron_HH
virtual double getMaxR() const
virtual double getRmin() const
std::vector< std::string > RFfilename_m
bool interpolate(const double &rad, const double &tet_rad, double &br, double &bt, double &bz)
virtual double getTrimCoilThreshold() const
double trimCoilThreshold_m
B-field threshold for applying trim coil.
double gutdf5d(double *f, double dx, const int kor, const int krl, const int lpr)
constexpr double e
The value of .
void setRinit(double rinit)
virtual bool getSpiralFlag() const
void setFMHighE(double e)
virtual double getZinit() const
std::vector< double > rfvrequ_m
void applyTrimCoil_m(const double r, const double z, const double tet_rad, double *br, double *bz)
Apply trim coils (calculate field contributions)
Interface for a Cyclotron.
std::vector< Fieldmap * > RFfields_m
virtual double getPHIinit() const
std::vector< std::vector< double > > rfvc_m
void getFieldFromFile_AVFEQ(const double &scaleFactor)
void setTrimCoils(const std::vector< TrimCoil * > &trimcoils)
void setFieldMapFN(std::string fmapfn)
void setRFFCoeffFN(std::vector< std::string > rff_coeff_fn)
void setSuperpose(std::vector< bool > flag)
virtual double getSymmetry() const
virtual double getStepsize() const =0
Get stepsize.
void getFieldFromFile_CYCIAE(const double &scaleFactor)
void operator=(const Cyclotron &)=delete
const std::string & getCyclotronType() const
std::vector< double > dbt
void applyTrimCoil(const double r, const double z, const double tet_rad, double &br, double &bz)
Apply trim coils (calculate field contributions) with smooth field transition.
std::vector< double > dbtt
std::vector< std::vector< double > > rffc_m
void getFieldFromFile_FFA(const double &scaleFactor)
std::vector< double > bfld
std::vector< std::string > RFVCoeff_fn_m
std::vector< double > dbrt
virtual double getMinZ() const
virtual bool apply(const size_t &id, const double &t, Vector_t &E, Vector_t &B)
void setRfFieldMapFN(std::vector< std::string > rffmapfn)
std::vector< double > dbrr
virtual double getFMHighE() const
virtual double getCyclHarm() const
virtual double getMinR() const
void setCyclHarm(double h)
virtual void getDimensions(double &zBegin, double &zEnd) const
void getFieldFromFile_Carbon(const double &scaleFactor)
void setPZinit(double zinit)
std::vector< double > rarr
virtual double getBScale() const
std::vector< double > rfphi_m
void setEScale(std::vector< double > bs)
void setPRinit(double prinit)
virtual void initialise(PartBunchBase< double, 3 > *bunch, double &startField, double &endField)
void setRfPhi(std::vector< double > f)
void getFieldFromFile_BandRF(const double &scaleFactor)
void setType(std::string t)
virtual double getPZinit() const
std::vector< std::string > RFFCoeff_fn_m
void setRfFrequ(std::vector< double > f)
virtual std::string getFieldMapFN() const
unsigned int getNumberOfTrimcoils() const
virtual double getPRinit() const
void getFieldFromFile(const double &scaleFactor)
virtual double getFMLowE() const
std::vector< double > dbr
virtual void accept(BeamlineVisitor &) const
Apply visitor to Cyclotron.
int getFieldFlag(const std::string &type) const
std::unique_ptr< LossDataSink > lossDs_m
void setPHIinit(double phiinit)
BFieldType myBFieldType_m
std::vector< double > rffrequ_m
T rad(T x)
Convert degrees to radians.
void setZinit(double zinit)
virtual double getRmax() const
void setRFVCoeffFN(std::vector< std::string > rfv_coeff_fn)
std::vector< double > escale_m
std::vector< TrimCoil * > trimcoils_m
Trim coils.
virtual double getRinit() const
int idx(int irad, int ktet)
double getRfFrequ() const
std::vector< double > dbttt
void setBScale(double bs)
void setSymmetry(double symmetry)
void setTrimCoilThreshold(double)
virtual double getMaxZ() const
Interface for a single beam element.
std::vector< bool > superpose_m
void setSpiralFlag(bool spiral_flag)
virtual bool bends() const
virtual double getSlices() const =0
Get number of slices.
std::vector< double > dbrrr
void initR(double rmin, double dr, int nrad)
void getFieldFromFile_Synchrocyclotron(const double &scaleFactor)
void read(const int &fieldflag, const double &scaleFactor)
std::vector< double > dbrtt
virtual ElementBase::ElementType getType() const
Get element type std::string.
std::vector< double > dbrrt