OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
Cyclotron Class Referenceabstract

#include <Cyclotron.h>

Inheritance diagram for Cyclotron:
Collaboration diagram for Cyclotron:

Public Types

enum class  BFieldType : unsigned short {
  NONE , PSIBF , CARBONBF , ANSYSBF ,
  AVFEQBF , FFABF , BANDRF , SYNCHRO
}

Public Member Functions

 Cyclotron (const std::string &name)
 Constructor with given name.
 Cyclotron ()
 Cyclotron (const Cyclotron &)
virtual ~Cyclotron ()
virtual void accept (BeamlineVisitor &) const
 Apply visitor to Cyclotron.
virtual double getSlices () const =0
 Get number of slices.
virtual double getStepsize () const =0
 Get stepsize.
void setFieldMapFN (const std::string &fmapfn)
virtual std::string getFieldMapFN () const
void setRfFieldMapFN (std::vector< std::string > rffmapfn)
void setRFFCoeffFN (std::vector< std::string > rff_coeff_fn)
void setRFVCoeffFN (std::vector< std::string > rfv_coeff_fn)
void setCyclotronType (const std::string &type)
const std::string & getCyclotronType () const
void setBFieldType ()
BFieldType getBFieldType () const
virtual ElementType getType () const
 Get element type std::string.
virtual void getDimensions (double &zBegin, double &zEnd) const
unsigned int getNumberOfTrimcoils () const
void setCyclHarm (double h)
virtual double getCyclHarm () const
void setRfPhi (std::vector< double > f)
virtual std::vector< double > getRfPhi () const
void setRfFrequ (std::vector< double > f)
virtual std::vector< double > getRfFrequ () const
void setSymmetry (double symmetry)
virtual double getSymmetry () const
void setRinit (double rinit)
virtual double getRinit () const
void setPRinit (double prinit)
virtual double getPRinit () const
void setPHIinit (double phiinit)
virtual double getPHIinit () const
void setZinit (double zinit)
virtual double getZinit () const
void setPZinit (double zinit)
virtual double getPZinit () const
void setBScale (double bs)
virtual double getBScale () const
void setEScale (std::vector< double > bs)
virtual std::vector< double > getEScale () const
void setTrimCoils (const std::vector< TrimCoil * > &trimcoils)
void setSuperpose (std::vector< bool > flag)
virtual std::vector< bool > getSuperpose () const
void setMinR (double r)
virtual double getMinR () const
void setMaxR (double r)
virtual double getMaxR () const
void setMinZ (double z)
virtual double getMinZ () const
void setMaxZ (double z)
virtual double getMaxZ () const
void setFMLowE (double e)
virtual double getFMLowE () const
void setFMHighE (double e)
virtual double getFMHighE () const
void setTrimCoilThreshold (double)
virtual double getTrimCoilThreshold () const
void setSpiralFlag (bool spiral_flag)
virtual bool getSpiralFlag () const
virtual bool apply (const size_t &id, const double &t, Vector_t &E, Vector_t &B)
virtual bool apply (const Vector_t &R, const Vector_t &P, const double &t, Vector_t &E, Vector_t &B)
virtual void apply (const double &rad, const double &z, const double &tet_rad, double &br, double &bt, double &bz)
virtual void initialise (PartBunchBase< double, 3 > *bunch, double &startField, double &endField)
virtual void initialise (PartBunchBase< double, 3 > *bunch, const double &scaleFactor)
virtual void finalise ()
virtual bool bends () const
virtual double getRmax () const
virtual double getRmin () const
bool interpolate (const double &rad, const double &tet_rad, double &br, double &bt, double &bz)
void read (const double &scaleFactor)
void writeOutputFieldFiles ()
void checkInitialReferenceParticle (double refR, double refTheta, double refZ)
virtual EMFieldgetField ()=0
 Return field.
virtual const EMFieldgetField () const =0
 Return field.
EVector Efield (const Point3D &P) const
 Return the field in a point.
EVector Efield (const Point3D &P, double t) const
 Return the field in a point.
BVector Bfield (const Point3D &P) const
 Return the field in a point.
BVector Bfield (const Point3D &P, double t) const
 Return the field in a point.
EBVectors EBfield (const Point3D &P) const
 Return the field in a point.
EBVectors EBfield (const Point3D &P, double t) const
 Return the field in a point.
virtual bool applyToReferenceParticle (const Vector_t &R, const Vector_t &P, const double &t, Vector_t &E, Vector_t &B)
virtual bool getPotential (const Vector_t &, const double &, Vector_t &, double &)
virtual double getDesignEnergy () const
virtual void setDesignEnergy (const double &energy, bool changeable=true)
virtual void goOnline (const double &kineticEnergy)
virtual void goOffline ()
virtual bool Online ()
virtual const ElementBasegetDesign () const
 Return design element.
virtual void trackBunch (PartBunchBase< double, 3 > *bunch, const PartData &, bool revBeam, bool revTrack) const
 Track particle bunch.
virtual void trackMap (FVps< double, 6 > &map, const PartData &, bool revBeam, bool revTrack) const
 Track a map.
void setExitFaceSlope (const double &)
virtual const std::string & getName () const
 Get element name.
virtual void setName (const std::string &name)
 Set element name.
std::string getTypeString () const
virtual BGeometryBasegetGeometry ()=0
 Get geometry.
virtual const BGeometryBasegetGeometry () const =0
 Get geometry.
virtual double getArcLength () const
 Get arc length.
virtual double getElementLength () const
 Get design length.
virtual void setElementLength (double length)
 Set design length.
virtual void getElementDimensions (double &begin, double &end) const
virtual double getOrigin () const
 Get origin position.
virtual double getEntrance () const
 Get entrance position.
virtual double getExit () const
 Get exit position.
virtual Euclid3D getTransform (double fromS, double toS) const
 Get transform.
virtual Euclid3D getTransform (double s) const
 Get transform.
virtual Euclid3D getTotalTransform () const
 Get transform.
virtual Euclid3D getEntranceFrame () const
 Get transform.
virtual Euclid3D getExitFrame () const
 Get transform.
virtual Euclid3D getEntrancePatch () const
 Get patch.
virtual Euclid3D getExitPatch () const
 Get patch.
virtual double getAttribute (const std::string &aKey) const
 Get attribute value.
virtual bool hasAttribute (const std::string &aKey) const
 Test for existence of an attribute.
virtual void removeAttribute (const std::string &aKey)
 Remove an existing attribute.
virtual void setAttribute (const std::string &aKey, double val)
 Set value of an attribute.
virtual ChannelgetChannel (const std::string &aKey, bool create=false)
 Construct a read/write channel.
virtual const ConstChannelgetConstChannel (const std::string &aKey) const
 Construct a read-only channel.
virtual ElementBaseclone () const =0
 Return clone.
virtual ElementBasecopyStructure ()
 Make a structural copy.
bool isSharable () const
 Test if the element can be shared.
virtual void makeSharable ()
 Set sharable flag.
bool update (const AttributeSet &)
 Update element.
virtual void setBoundaryGeometry (BoundaryGeometry *geo)
virtual BoundaryGeometrygetBoundaryGeometry () const
 return the attached boundary geometrt object if there is any
virtual bool hasBoundaryGeometry () const
virtual void setWake (WakeFunction *wf)
 attach a wake field to the element
virtual WakeFunctiongetWake () const
 return the attached wake object if there is any
virtual bool hasWake () const
virtual void setParticleMatterInteraction (ParticleMatterInteractionHandler *spys)
virtual ParticleMatterInteractionHandlergetParticleMatterInteraction () const
virtual bool hasParticleMatterInteraction () const
void setCSTrafoGlobal2Local (const CoordinateSystemTrafo &ori)
CoordinateSystemTrafo getCSTrafoGlobal2Local () const
void releasePosition ()
void fixPosition ()
bool isPositioned () const
virtual CoordinateSystemTrafo getEdgeToBegin () const
virtual CoordinateSystemTrafo getEdgeToEnd () const
void setAperture (const ApertureType &type, const std::vector< double > &args)
std::pair< ApertureType, std::vector< double > > getAperture () const
virtual bool isInside (const Vector_t &r) const
void setMisalignment (const CoordinateSystemTrafo &cst)
void getMisalignment (double &x, double &y, double &s) const
CoordinateSystemTrafo getMisalignment () const
void setActionRange (const std::queue< std::pair< double, double > > &range)
void setCurrentSCoordinate (double s)
void setRotationAboutZ (double rotation)
 Set rotation about z axis in bend frame.
double getRotationAboutZ () const
virtual BoundingBox getBoundingBoxInLabCoords () const
virtual int getRequiredNumberOfTimeSteps () const
void setOutputFN (std::string fn)
 Set output filename.
std::string getOutputFN () const
 Get output filename.
void setFlagDeleteOnTransverseExit (bool=true)
bool getFlagDeleteOnTransverseExit () const
int addReference () const
 Increment reference count.
int removeReference () const
 Decrement the reference count.
bool isShared () const
 Test for sharing.
void setElementPosition (double elemedge)
 Access to ELEMEDGE attribute.
double getElementPosition () const
bool isElementPositionSet () const

Static Public Member Functions

static std::string getTypeString (ElementType type)

Protected Member Functions

void getdiffs ()
double gutdf5d (double *f, double dx, const int kor, const int krl, const int lpr)
void initR (double rmin, double dr, int nrad)
void getFieldFromFile_Ring (const double &scaleFactor)
void getFieldFromFile_Carbon (const double &scaleFactor)
void getFieldFromFile_CYCIAE (const double &scaleFactor)
void getFieldFromFile_AVFEQ (const double &scaleFactor)
void getFieldFromFile_FFA (const double &scaleFactor)
void getFieldFromFile_BandRF (const double &scaleFactor)
void getFieldFromFile_Synchrocyclotron (const double &scaleFactor)
int idx (int irad, int ktet)
bool isInsideTransverse (const Vector_t &r) const

Protected Attributes

BfieldData Bfield_m
BPositions BP_m
double exit_face_slope_m
PartBunchBase< double, 3 > * RefPartBunch_m
bool online_m
bool shareFlag
CoordinateSystemTrafo csTrafoGlobal2Local_m
CoordinateSystemTrafo misalignment_m
std::pair< ApertureType, std::vector< double > > aperture_m
double elementEdge_m
double rotationZAxis_m

Static Protected Attributes

static const std::vector< double > defaultAperture_m

Private Member Functions

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.
void applyTrimCoil_m (const double r, const double z, const double tet_rad, double *br, double *bz)
 Apply trim coils (calculate field contributions).
void operator= (const Cyclotron &)=delete

Private Attributes

BFieldType fieldType_m
std::string fmapfn_m
std::vector< double > rffrequ_m
std::vector< std::vector< double > > rffc_m
std::vector< double > rfvrequ_m
std::vector< std::vector< double > > rfvc_m
std::vector< double > rfphi_m
std::vector< double > escale_m
std::vector< bool > superpose_m
double symmetry_m
double rinit_m
double prinit_m
double phiinit_m
double zinit_m
double pzinit_m
bool spiralFlag_m
double trimCoilThreshold_m
std::string typeName_m
double harm_m
double bscale_m
std::vector< TrimCoil * > trimcoils_m
double minr_m
double maxr_m
double minz_m
double maxz_m
double fmLowE_m
double fmHighE_m
std::vector< FieldmapRFfields_m
std::vector< std::string > RFfilename_m
std::vector< std::string > RFFCoeff_fn_m
std::vector< std::string > RFVCoeff_fn_m
std::unique_ptr< LossDataSinklossDs_m
int waitingGap_m = 1
std::string elementID
AttributeSet userAttribs
WakeFunctionwake_m
BoundaryGeometrybgeometry_m
ParticleMatterInteractionHandlerparmatint_m
bool positionIsFixed
std::queue< std::pair< double, double > > actionRange_m
std::string outputfn_m
bool deleteOnTransverseExit_m = true
int refCount
double elementPosition_m
 ELEMEDGE attribute.
bool elemedgeSet_m

Static Private Attributes

static const std::map< ElementType, std::string > elementTypeToString_s

Detailed Description

Definition at line 80 of file Cyclotron.h.

Member Enumeration Documentation

◆ BFieldType

enum class Cyclotron::BFieldType : unsigned short
strong
Enumerator
NONE 
PSIBF 
CARBONBF 
ANSYSBF 
AVFEQBF 
FFABF 
BANDRF 
SYNCHRO 

Definition at line 83 of file Cyclotron.h.

Constructor & Destructor Documentation

◆ Cyclotron() [1/3]

Cyclotron::Cyclotron ( const std::string & name)
explicit

Constructor with given name.

Definition at line 89 of file Cyclotron.cpp.

References Component::Component(), and name.

Referenced by Cyclotron(), CyclotronRep::CyclotronRep(), CyclotronRep::CyclotronRep(), CyclotronRep::CyclotronRep(), and operator=().

Here is the call graph for this function:

◆ Cyclotron() [2/3]

Cyclotron::Cyclotron ( )

Definition at line 54 of file Cyclotron.cpp.

References Component::Component().

Here is the call graph for this function:

◆ Cyclotron() [3/3]

Cyclotron::Cyclotron ( const Cyclotron & right)

Definition at line 58 of file Cyclotron.cpp.

References bscale_m, Component::Component(), Cyclotron(), escale_m, fieldType_m, fmapfn_m, fmHighE_m, fmLowE_m, harm_m, maxr_m, maxz_m, minr_m, minz_m, phiinit_m, prinit_m, pzinit_m, RFFCoeff_fn_m, RFfilename_m, rffrequ_m, rfphi_m, RFVCoeff_fn_m, rinit_m, spiralFlag_m, superpose_m, symmetry_m, trimcoils_m, trimCoilThreshold_m, typeName_m, and zinit_m.

Here is the call graph for this function:

◆ ~Cyclotron()

Cyclotron::~Cyclotron ( )
virtual

Definition at line 93 of file Cyclotron.cpp.

Member Function Documentation

◆ accept()

void Cyclotron::accept ( BeamlineVisitor & visitor) const
virtual

Apply visitor to Cyclotron.

Implements ElementBase.

Definition at line 119 of file Cyclotron.cpp.

References BeamlineVisitor::visitCyclotron().

Here is the call graph for this function:

◆ addReference()

int RCObject::addReference ( ) const
inlineinherited

Increment reference count.

Definition at line 83 of file RCObject.h.

References refCount.

Referenced by Pointer< Object >::operator=(), Pointer< Object >::operator=(), and Pointer< Object >::unique().

◆ apply() [1/3]

void Cyclotron::apply ( const double & rad,
const double & z,
const double & tet_rad,
double & br,
double & bt,
double & bz )
virtual

Definition at line 581 of file Cyclotron.cpp.

References applyTrimCoil(), and interpolate().

Here is the call graph for this function:

◆ apply() [2/3]

bool Cyclotron::apply ( const size_t & id,
const double & t,
Vector_t & E,
Vector_t & B )
virtual

Reimplemented from Component.

Definition at line 414 of file Cyclotron.cpp.

References apply(), endl(), ElementBase::getName(), gmsgALL, level4(), lossDs_m, maxr_m, maxz_m, minr_m, and Component::RefPartBunch_m.

Referenced by apply().

Here is the call graph for this function:

◆ apply() [3/3]

bool Cyclotron::apply ( const Vector_t & R,
const Vector_t & P,
const double & t,
Vector_t & E,
Vector_t & B )
virtual

Reimplemented from Component.

Definition at line 448 of file Cyclotron.cpp.

References applyTrimCoil(), BANDRF, endl(), escale_m, fieldType_m, gmsg, interpolate(), Units::m2mm, Units::MHz2Hz, Physics::pi, Units::rad2deg, rffc_m, RFfields_m, rffrequ_m, rfphi_m, rfvc_m, superpose_m, SYNCHRO, Physics::two_pi, and waitingGap_m.

Here is the call graph for this function:

◆ applyToReferenceParticle()

bool Component::applyToReferenceParticle ( const Vector_t & R,
const Vector_t & P,
const double & t,
Vector_t & E,
Vector_t & B )
virtualinherited

Reimplemented in Bend2D, Degrader, FlexibleCollimator, Monitor, Multipole, PluginElement, RBend3D, RFCavity, Solenoid, TravelingWave, Vacuum, VariableRFCavity, and VariableRFCavityFringeField.

Definition at line 121 of file Component.cpp.

References ElementBase::getElementLength(), and ElementBase::isInsideTransverse().

Here is the call graph for this function:

◆ applyTrimCoil()

void Cyclotron::applyTrimCoil ( const double r,
const double z,
const double tet_rad,
double & br,
double & bz )
private

Apply trim coils (calculate field contributions) with smooth field transition.

Definition at line 105 of file Cyclotron.cpp.

References applyTrimCoil_m(), and trimCoilThreshold_m.

Referenced by apply(), and apply().

Here is the call graph for this function:

◆ applyTrimCoil_m()

void Cyclotron::applyTrimCoil_m ( const double r,
const double z,
const double tet_rad,
double * br,
double * bz )
private

Apply trim coils (calculate field contributions).

Definition at line 97 of file Cyclotron.cpp.

References trimcoils_m.

Referenced by applyTrimCoil().

◆ bends()

bool Cyclotron::bends ( ) const
virtual

Implements Component.

Definition at line 594 of file Cyclotron.cpp.

◆ Bfield() [1/2]

BVector Component::Bfield ( const Point3D & P) const
inlineinherited

Return the field in a point.

Definition at line 202 of file Component.h.

References EMField::Bfield(), and getField().

Referenced by OutputPlane::getFieldsAtPoint().

Here is the call graph for this function:

◆ Bfield() [2/2]

BVector Component::Bfield ( const Point3D & P,
double t ) const
inlineinherited

Return the field in a point.

Definition at line 208 of file Component.h.

References EMField::Bfield(), and getField().

Here is the call graph for this function:

◆ checkInitialReferenceParticle()

void Cyclotron::checkInitialReferenceParticle ( double refR,
double refTheta,
double refZ )

Definition at line 397 of file Cyclotron.cpp.

References Util::angleBetweenAngles(), maxr_m, maxz_m, and Physics::pi.

Here is the call graph for this function:

◆ clone()

virtual ElementBase * ElementBase::clone ( ) const
pure virtualinherited

Return clone.

Implemented in CCollimatorRep, CorrectorRep, CyclotronRep, DegraderRep, DriftRep, FlexibleCollimatorRep, MarkerRep, MonitorRep, MultipoleRep, MultipoleT, Offset, OutputPlane, ProbeRep, RBend3D, RBendRep, RFCavityRep, Ring, SBend3D, SBendRep, ScalingFFAMagnet, SeptumRep, SingleMultipole< order >, SingleMultipole< -2 >, SingleMultipole< -3 >, SingleMultipole< -4 >, SingleMultipole< 2 >, SingleMultipole< 3 >, SingleMultipole< 4 >, SolenoidRep, SourceRep, StripperRep, TBeamline< T >, TBeamline< FlaggedElmPtr >, TBeamline< SequenceMember >, TravelingWaveRep, UndulatorRep, VacuumRep, VariableRFCavity, VariableRFCavityFringeField, VerticalFFAMagnet, XCorrectorRep, and YCorrectorRep.

References ElementBase().

Referenced by Ring::appendElement(), Sequence::copy(), RingSection::operator=(), ParallelCyclotronTracker::ParallelCyclotronTracker(), OpalBeamline::visit(), ParallelCyclotronTracker::visitCCollimator(), ParallelCyclotronTracker::visitCorrector(), ParallelCyclotronTracker::visitCyclotron(), ParallelCyclotronTracker::visitDrift(), ParallelCyclotronTracker::visitMarker(), ParallelCyclotronTracker::visitMonitor(), ParallelCyclotronTracker::visitMultipole(), ParallelCyclotronTracker::visitProbe(), ParallelCyclotronTracker::visitRBend(), ParallelCyclotronTracker::visitRFCavity(), ParallelCyclotronTracker::visitSBend(), ParallelCyclotronTracker::visitSeptum(), ParallelCyclotronTracker::visitSolenoid(), ParallelCyclotronTracker::visitStripper(), and ParallelCyclotronTracker::visitVacuum().

Here is the call graph for this function:

◆ copyStructure()

ElementBase * ElementBase::copyStructure ( )
virtualinherited

Make a structural copy.

Reimplemented in TBeamline< T >, TBeamline< FlaggedElmPtr >, and TBeamline< SequenceMember >.

Definition at line 244 of file ElementBase.cpp.

References ElementBase(), and isSharable().

Referenced by Sequence::copy(), Line::parse(), and SequenceParser::parseMember().

Here is the call graph for this function:

◆ EBfield() [1/2]

EBVectors Component::EBfield ( const Point3D & P) const
inlineinherited

Return the field in a point.

Definition at line 211 of file Component.h.

References EMField::EBfield(), and getField().

Here is the call graph for this function:

◆ EBfield() [2/2]

EBVectors Component::EBfield ( const Point3D & P,
double t ) const
inlineinherited

Return the field in a point.

Definition at line 214 of file Component.h.

References EMField::EBfield(), and getField().

Here is the call graph for this function:

◆ Efield() [1/2]

EVector Component::Efield ( const Point3D & P) const
inlineinherited

Return the field in a point.

Definition at line 199 of file Component.h.

References EMField::Efield(), and getField().

Referenced by OutputPlane::getFieldsAtPoint().

Here is the call graph for this function:

◆ Efield() [2/2]

EVector Component::Efield ( const Point3D & P,
double t ) const
inlineinherited

Return the field in a point.

Definition at line 205 of file Component.h.

References EMField::Efield(), and getField().

Here is the call graph for this function:

◆ finalise()

void Cyclotron::finalise ( )
virtual

Implements Component.

Definition at line 588 of file Cyclotron.cpp.

References endl(), ElementBase::getName(), gmsg, lossDs_m, and Component::online_m.

Here is the call graph for this function:

◆ fixPosition()

void ElementBase::fixPosition ( )
inlineinherited

◆ getAperture()

std::pair< ApertureType, std::vector< double > > ElementBase::getAperture ( ) const
inlineinherited

Definition at line 525 of file ElementBase.h.

References aperture_m.

Referenced by MeshGenerator::add(), and Offset::operator=().

◆ getArcLength()

double ElementBase::getArcLength ( ) const
inlinevirtualinherited

Get arc length.

Reimplemented in MarkerRep, TBeamline< T >, TBeamline< FlaggedElmPtr >, and TBeamline< SequenceMember >.

Definition at line 411 of file ElementBase.h.

References BGeometryBase::getArcLength(), and getGeometry().

Referenced by TBeamline< T >::getTransform().

Here is the call graph for this function:

◆ getAttribute()

double ElementBase::getAttribute ( const std::string & aKey) const
virtualinherited

Get attribute value.

Definition at line 187 of file ElementBase.cpp.

References getConstChannel().

Here is the call graph for this function:

◆ getBFieldType()

Cyclotron::BFieldType Cyclotron::getBFieldType ( ) const

Definition at line 393 of file Cyclotron.cpp.

References fieldType_m.

◆ getBoundaryGeometry()

BoundaryGeometry * ElementBase::getBoundaryGeometry ( ) const
inlinevirtualinherited

return the attached boundary geometrt object if there is any

Definition at line 475 of file ElementBase.h.

References bgeometry_m.

◆ getBoundingBoxInLabCoords()

BoundingBox ElementBase::getBoundingBoxInLabCoords ( ) const
virtualinherited

Reimplemented in Bend2D.

Definition at line 313 of file ElementBase.cpp.

References csTrafoGlobal2Local_m, and getEdgeToBegin().

Here is the call graph for this function:

◆ getBScale()

double Cyclotron::getBScale ( ) const
virtual

Definition at line 279 of file Cyclotron.cpp.

References bscale_m.

◆ getChannel()

◆ getConstChannel()

const ConstChannel * ElementBase::getConstChannel ( const std::string & aKey) const
virtualinherited

Construct a read-only channel.

Definition at line 233 of file ElementBase.cpp.

References ElementBase(), and getChannel().

Referenced by getAttribute(), and hasAttribute().

Here is the call graph for this function:

◆ getCSTrafoGlobal2Local()

◆ getCyclHarm()

double Cyclotron::getCyclHarm ( ) const
virtual

◆ getCyclotronType()

const std::string & Cyclotron::getCyclotronType ( ) const

Definition at line 263 of file Cyclotron.cpp.

References typeName_m.

◆ getDesign()

const ElementBase & Component::getDesign ( ) const
virtualinherited

Return design element.

Definition at line 67 of file Component.cpp.

References ElementBase::ElementBase().

Here is the call graph for this function:

◆ getDesignEnergy()

double Component::getDesignEnergy ( ) const
inlinevirtualinherited

Reimplemented in BendBase, and RFCavity.

Definition at line 231 of file Component.h.

◆ getdiffs()

void Cyclotron::getdiffs ( )
protected

Definition at line 849 of file Cyclotron.cpp.

References Bfield_m, BP_m, Units::deg2rad, gutdf5d(), and idx().

Referenced by read().

Here is the call graph for this function:

◆ getDimensions()

void Cyclotron::getDimensions ( double & zBegin,
double & zEnd ) const
virtual

Implements Component.

Definition at line 1517 of file Cyclotron.cpp.

◆ getEdgeToBegin()

CoordinateSystemTrafo ElementBase::getEdgeToBegin ( ) const
inlinevirtualinherited

◆ getEdgeToEnd()

CoordinateSystemTrafo ElementBase::getEdgeToEnd ( ) const
inlinevirtualinherited

Reimplemented in Bend2D, RFCavity, Solenoid, and TravelingWave.

Definition at line 511 of file ElementBase.h.

References getElementLength().

Here is the call graph for this function:

◆ getElementDimensions()

virtual void ElementBase::getElementDimensions ( double & begin,
double & end ) const
inlinevirtualinherited

Reimplemented in RFCavity, Solenoid, and TravelingWave.

Definition at line 174 of file ElementBase.h.

References begin(), end(), and getElementLength().

Referenced by MeshGenerator::add().

Here is the call graph for this function:

◆ getElementLength()

double ElementBase::getElementLength ( ) const
inlinevirtualinherited

Get design length.

Reimplemented in MarkerRep, RFCavity, TBeamline< T >, TBeamline< FlaggedElmPtr >, and TBeamline< SequenceMember >.

Definition at line 415 of file ElementBase.h.

References BGeometryBase::getElementLength(), and getGeometry().

Referenced by Component::apply(), Corrector::apply(), Multipole::apply(), Multipole::apply(), Solenoid::apply(), Undulator::apply(), Component::applyToReferenceParticle(), Multipole::applyToReferenceParticle(), Solenoid::applyToReferenceParticle(), Vacuum::checkPoint(), RBend::findChordLength(), SBend::findChordLength(), CCollimator::getDimensions(), Corrector::getDimensions(), Degrader::getDimensions(), Drift::getDimensions(), FlexibleCollimator::getDimensions(), Multipole::getDimensions(), RBend3D::getDimensions(), Solenoid::getDimensions(), Vacuum::getDimensions(), getEdgeToEnd(), Solenoid::getEdgeToEnd(), getElementDimensions(), Solenoid::getElementDimensions(), RFCavity::getElementLength(), Corrector::initialise(), Degrader::initialise(), Drift::initialise(), FlexibleCollimator::initialise(), Multipole::initialise(), RBend3D::initialise(), Solenoid::initialise(), Source::initialise(), Vacuum::initialise(), Degrader::isInside(), isInside(), Monitor::isInside(), Multipole::isInside(), FlexibleCollimator::isStopped(), Bend2D::setupDefaultFieldMap(), SingleMultipole< 4 >::update(), ParallelCyclotronTracker::visitCorrector(), ParallelCyclotronTracker::visitDrift(), ThickTracker::visitDrift(), ParallelCyclotronTracker::visitMultipole(), ThickTracker::visitMultipole(), ParallelCyclotronTracker::visitRBend(), ParallelCyclotronTracker::visitSBend(), and ThickTracker::visitSBend().

Here is the call graph for this function:

◆ getElementPosition()

double ElementBase::getElementPosition ( ) const
inlineinherited

Definition at line 589 of file ElementBase.h.

References elemedgeSet_m, elementPosition_m, and getName().

Here is the call graph for this function:

◆ getEntrance()

double ElementBase::getEntrance ( ) const
inlinevirtualinherited

Get entrance position.

Reimplemented in TBeamline< T >, TBeamline< FlaggedElmPtr >, and TBeamline< SequenceMember >.

Definition at line 427 of file ElementBase.h.

References BGeometryBase::getEntrance(), and getGeometry().

Here is the call graph for this function:

◆ getEntranceFrame()

Euclid3D ElementBase::getEntranceFrame ( ) const
inlinevirtualinherited

Get transform.

Reimplemented in TBeamline< T >, TBeamline< FlaggedElmPtr >, and TBeamline< SequenceMember >.

Definition at line 447 of file ElementBase.h.

References BGeometryBase::getEntranceFrame(), and getGeometry().

Here is the call graph for this function:

◆ getEntrancePatch()

Euclid3D ElementBase::getEntrancePatch ( ) const
inlinevirtualinherited

Get patch.

Definition at line 455 of file ElementBase.h.

References BGeometryBase::getEntrancePatch(), and getGeometry().

Here is the call graph for this function:

◆ getEScale()

std::vector< double > Cyclotron::getEScale ( ) const
virtual

Definition at line 287 of file Cyclotron.cpp.

References escale_m.

◆ getExit()

double ElementBase::getExit ( ) const
inlinevirtualinherited

Get exit position.

Reimplemented in TBeamline< T >, TBeamline< FlaggedElmPtr >, and TBeamline< SequenceMember >.

Definition at line 431 of file ElementBase.h.

References BGeometryBase::getExit(), and getGeometry().

Here is the call graph for this function:

◆ getExitFrame()

Euclid3D ElementBase::getExitFrame ( ) const
inlinevirtualinherited

Get transform.

Reimplemented in TBeamline< T >, TBeamline< FlaggedElmPtr >, and TBeamline< SequenceMember >.

Definition at line 451 of file ElementBase.h.

References BGeometryBase::getExitFrame(), and getGeometry().

Here is the call graph for this function:

◆ getExitPatch()

Euclid3D ElementBase::getExitPatch ( ) const
inlinevirtualinherited

Get patch.

Definition at line 459 of file ElementBase.h.

References BGeometryBase::getExitPatch(), and getGeometry().

Here is the call graph for this function:

◆ getField() [1/2]

◆ getField() [2/2]

◆ getFieldFromFile_AVFEQ()

void Cyclotron::getFieldFromFile_AVFEQ ( const double & scaleFactor)
protected

Definition at line 1197 of file Cyclotron.cpp.

References Bfield_m, BP_m, CHECK_CYC_FSCANF_EOF, endl(), fmapfn_m, IpplInfo::getNodes(), gmsg, idx(), Options::info, Units::mm2m, and writeOutputFieldFiles().

Referenced by read().

Here is the call graph for this function:

◆ getFieldFromFile_BandRF()

void Cyclotron::getFieldFromFile_BandRF ( const double & scaleFactor)
protected

Definition at line 1427 of file Cyclotron.cpp.

References endl(), getFieldFromFile_Carbon(), _Fieldmap::getFieldmap(), gmsg, _Fieldmap::readMap(), RFfields_m, and RFfilename_m.

Referenced by read().

Here is the call graph for this function:

◆ getFieldFromFile_Carbon()

void Cyclotron::getFieldFromFile_Carbon ( const double & scaleFactor)
protected

Definition at line 1287 of file Cyclotron.cpp.

References Bfield_m, BP_m, CHECK_CYC_FSCANF_EOF, endl(), fmapfn_m, IpplInfo::getNodes(), gmsg, idx(), Options::info, Units::mm2m, and writeOutputFieldFiles().

Referenced by getFieldFromFile_BandRF(), getFieldFromFile_Synchrocyclotron(), and read().

Here is the call graph for this function:

◆ getFieldFromFile_CYCIAE()

void Cyclotron::getFieldFromFile_CYCIAE ( const double & scaleFactor)
protected

Definition at line 1354 of file Cyclotron.cpp.

References Bfield_m, BP_m, CHECK_CYC_FSCANF_EOF, endl(), fmapfn_m, gmsg, idx(), Units::mm2m, and Units::T2kG.

Referenced by read().

Here is the call graph for this function:

◆ getFieldFromFile_FFA()

void Cyclotron::getFieldFromFile_FFA ( const double & scaleFactor)
protected

Definition at line 1091 of file Cyclotron.cpp.

References Bfield_m, BP_m, endl(), fmapfn_m, IpplInfo::getNodes(), gmsg, idx(), Options::info, Units::m2mm, Units::T2kG, and writeOutputFieldFiles().

Referenced by read().

Here is the call graph for this function:

◆ getFieldFromFile_Ring()

void Cyclotron::getFieldFromFile_Ring ( const double & scaleFactor)
protected

Definition at line 980 of file Cyclotron.cpp.

References Bfield_m, BP_m, CHECK_CYC_FSCANF_EOF, endl(), fmapfn_m, gmsg, idx(), and Units::mm2m.

Referenced by read().

Here is the call graph for this function:

◆ getFieldFromFile_Synchrocyclotron()

void Cyclotron::getFieldFromFile_Synchrocyclotron ( const double & scaleFactor)
protected

Definition at line 1441 of file Cyclotron.cpp.

References CHECK_CYC_FSCANF_EOF, endl(), getFieldFromFile_Carbon(), _Fieldmap::getFieldmap(), gmsg, _Fieldmap::readMap(), rffc_m, RFFCoeff_fn_m, RFfields_m, RFfilename_m, rfvc_m, and RFVCoeff_fn_m.

Referenced by read().

Here is the call graph for this function:

◆ getFieldMapFN()

std::string Cyclotron::getFieldMapFN ( ) const
virtual

Definition at line 183 of file Cyclotron.cpp.

References fmapfn_m.

Referenced by Distribution::createMatchedGaussDistribution().

◆ getFlagDeleteOnTransverseExit()

bool ElementBase::getFlagDeleteOnTransverseExit ( ) const
inlineinherited

◆ getFMHighE()

double Cyclotron::getFMHighE ( ) const
virtual

Definition at line 375 of file Cyclotron.cpp.

References fmHighE_m.

Referenced by Distribution::createMatchedGaussDistribution().

◆ getFMLowE()

double Cyclotron::getFMLowE ( ) const
virtual

Definition at line 367 of file Cyclotron.cpp.

References fmLowE_m.

Referenced by Distribution::createMatchedGaussDistribution().

◆ getGeometry() [1/2]

◆ getGeometry() [2/2]

◆ getMaxR()

double Cyclotron::getMaxR ( ) const
virtual

Definition at line 329 of file Cyclotron.cpp.

References maxr_m, and minr_m.

Referenced by Vacuum::checkVacuum().

◆ getMaxZ()

double Cyclotron::getMaxZ ( ) const
virtual

Definition at line 350 of file Cyclotron.cpp.

References maxz_m, and minz_m.

Referenced by Vacuum::checkVacuum().

◆ getMinR()

double Cyclotron::getMinR ( ) const
virtual

Definition at line 320 of file Cyclotron.cpp.

References minr_m.

Referenced by Vacuum::checkVacuum().

◆ getMinZ()

double Cyclotron::getMinZ ( ) const
virtual

Definition at line 342 of file Cyclotron.cpp.

References minz_m.

Referenced by Vacuum::checkVacuum().

◆ getMisalignment() [1/2]

CoordinateSystemTrafo ElementBase::getMisalignment ( ) const
inlineinherited

Definition at line 541 of file ElementBase.h.

References misalignment_m.

◆ getMisalignment() [2/2]

void ElementBase::getMisalignment ( double & x,
double & y,
double & s ) const
inherited

◆ getName()

const std::string & ElementBase::getName ( ) const
virtualinherited

Get element name.

Definition at line 162 of file ElementBase.cpp.

References elementID.

Referenced by Ring::appendElement(), Cyclotron::apply(), Ring::apply(), Bend2D::calculateRefTrajectory(), OutputPlane::checkOne(), Vacuum::checkPressure(), TBeamline< T >::clone(), TBeamline< T >::copyStructure(), Stripper::doCheck(), CCollimator::doFinalise(), Stripper::doFinalise(), OutputPlane::doGoOffline(), Probe::doGoOffline(), PlaceRep::enter(), Cyclotron::finalise(), Degrader::finalise(), FlexibleCollimator::finalise(), Vacuum::finalise(), PyOpal::Field::getElementName(), getElementPosition(), RFCavity::getMomentaKick(), Bend2D::getOutline(), getOutputFN(), CavityAutophaser::getPhaseAtMaxEnergy(), Selector::handleElement(), Bend2D::initialise(), RBend3D::initialise(), RFCavity::initialise(), Ring::initialise(), Solenoid::initialise(), CSRIGFWakeFunction::initialize(), CSRWakeFunction::initialize(), OpalWake::initWakefunction(), PlaceRep::leave(), Offset::Offset(), operator<<(), Offset::operator=(), VariableRFCavity::operator=(), operator==(), Line::parse(), Sequence::print(), Vacuum::print(), Bend2D::readFieldMap(), PyOpal::PyLine_< TBeamline< FlaggedElmPtr > >::registerObject(), Ring::Ring(), ClassicField::SortAsc(), Component::trackBunch(), Component::trackMap(), RBend3D::trackRefParticleThrough(), OpalRBend3D::update(), OpalRBend::update(), OpalSBend::update(), Sequence::updateList(), ParallelTTracker::updateRFElement(), ParallelCyclotronTracker::visitCCollimator(), Replacer::visitFlaggedElmPtr(), ParallelCyclotronTracker::visitProbe(), ParallelCyclotronTracker::visitRFCavity(), ParallelCyclotronTracker::visitSeptum(), ParallelCyclotronTracker::visitStripper(), and ParallelTTracker::writePhaseSpace().

◆ getNumberOfTrimcoils()

unsigned int Cyclotron::getNumberOfTrimcoils ( ) const

Definition at line 296 of file Cyclotron.cpp.

References trimcoils_m.

◆ getOrigin()

double ElementBase::getOrigin ( ) const
inlinevirtualinherited

Get origin position.

Reimplemented in TBeamline< T >, TBeamline< FlaggedElmPtr >, and TBeamline< SequenceMember >.

Definition at line 423 of file ElementBase.h.

References getGeometry(), and BGeometryBase::getOrigin().

Here is the call graph for this function:

◆ getOutputFN()

std::string ElementBase::getOutputFN ( ) const
inherited

Get output filename.

Definition at line 177 of file ElementBase.cpp.

References getName(), and outputfn_m.

Referenced by Probe::doInitialise(), Cyclotron::initialise(), FlexibleCollimator::initialise(), FlexibleCollimator::initialise(), Monitor::initialise(), PluginElement::initialise(), and Source::initialise().

Here is the call graph for this function:

◆ getParticleMatterInteraction()

ParticleMatterInteractionHandler * ElementBase::getParticleMatterInteraction ( ) const
inlinevirtualinherited

◆ getPHIinit()

double Cyclotron::getPHIinit ( ) const
virtual

Definition at line 143 of file Cyclotron.cpp.

References phiinit_m.

Referenced by Distribution::createMatchedGaussDistribution(), and SigmaGenerator::match().

◆ getPotential()

virtual bool Component::getPotential ( const Vector_t & ,
const double & ,
Vector_t & ,
double &  )
inlinevirtualinherited

Calculate the four-potential at some position relative to the component

Parameters
Rposition in the local coordinate system of the component
ttime
Afilled with the calculated magnetic vector potential
phifilled with the calculated electric potential Note that any existing values in A and phi may be overwritten by this method.
Returns
true if particle is outside the field map, else false Default for component is to return false and make no change to A and phi

Definition at line 130 of file Component.h.

◆ getPRinit()

double Cyclotron::getPRinit ( ) const
virtual

Definition at line 135 of file Cyclotron.cpp.

References prinit_m.

◆ getPZinit()

double Cyclotron::getPZinit ( ) const
virtual

Definition at line 159 of file Cyclotron.cpp.

References pzinit_m.

◆ getRequiredNumberOfTimeSteps()

int ElementBase::getRequiredNumberOfTimeSteps ( ) const
inlinevirtualinherited

Reimplemented in Drift, Marker, Monitor, Source, and Stripper.

Definition at line 603 of file ElementBase.h.

◆ getRfFrequ()

std::vector< double > Cyclotron::getRfFrequ ( ) const
virtual

Definition at line 226 of file Cyclotron.cpp.

References rffrequ_m.

◆ getRfPhi()

std::vector< double > Cyclotron::getRfPhi ( ) const
virtual

Definition at line 213 of file Cyclotron.cpp.

References rfphi_m.

◆ getRinit()

double Cyclotron::getRinit ( ) const
virtual

Definition at line 127 of file Cyclotron.cpp.

References rinit_m.

◆ getRmax()

double Cyclotron::getRmax ( ) const
virtual

Definition at line 308 of file Cyclotron.cpp.

References Bfield_m, and BP_m.

◆ getRmin()

double Cyclotron::getRmin ( ) const
virtual

Definition at line 304 of file Cyclotron.cpp.

References BP_m.

◆ getRotationAboutZ()

double ElementBase::getRotationAboutZ ( ) const
inlineinherited

Definition at line 574 of file ElementBase.h.

References rotationZAxis_m.

Referenced by OpalBeamline::compute3DLattice(), and Bend2D::setFieldCalcParam().

◆ getSlices()

virtual double Cyclotron::getSlices ( ) const
pure virtual

Get number of slices.

Implemented in CyclotronRep.

◆ getSpiralFlag()

bool Cyclotron::getSpiralFlag ( ) const
virtual

Definition at line 175 of file Cyclotron.cpp.

References spiralFlag_m.

◆ getStepsize()

virtual double Cyclotron::getStepsize ( ) const
pure virtual

Get stepsize.

Implemented in CyclotronRep.

◆ getSuperpose()

std::vector< bool > Cyclotron::getSuperpose ( ) const
virtual

Definition at line 239 of file Cyclotron.cpp.

References superpose_m.

◆ getSymmetry()

double Cyclotron::getSymmetry ( ) const
virtual

Definition at line 252 of file Cyclotron.cpp.

References symmetry_m.

◆ getTotalTransform()

Euclid3D ElementBase::getTotalTransform ( ) const
inlinevirtualinherited

Get transform.

Reimplemented in TBeamline< T >, TBeamline< FlaggedElmPtr >, and TBeamline< SequenceMember >.

Definition at line 439 of file ElementBase.h.

References getGeometry(), and BGeometryBase::getTotalTransform().

Here is the call graph for this function:

◆ getTransform() [1/2]

Euclid3D ElementBase::getTransform ( double fromS,
double toS ) const
inlinevirtualinherited

Get transform.

Reimplemented in TBeamline< T >, TBeamline< FlaggedElmPtr >, and TBeamline< SequenceMember >.

Definition at line 435 of file ElementBase.h.

References getGeometry(), and BGeometryBase::getTransform().

Referenced by TBeamline< T >::getTransform().

Here is the call graph for this function:

◆ getTransform() [2/2]

Euclid3D ElementBase::getTransform ( double s) const
inlinevirtualinherited

Get transform.

Reimplemented in TBeamline< T >, TBeamline< FlaggedElmPtr >, and TBeamline< SequenceMember >.

Definition at line 443 of file ElementBase.h.

References getGeometry(), and BGeometryBase::getTransform().

Here is the call graph for this function:

◆ getTrimCoilThreshold()

double Cyclotron::getTrimCoilThreshold ( ) const
virtual

Definition at line 167 of file Cyclotron.cpp.

References trimCoilThreshold_m.

◆ getType()

ElementType Cyclotron::getType ( ) const
virtual

Get element type std::string.

Reimplemented from Component.

Definition at line 267 of file Cyclotron.cpp.

References CYCLOTRON.

◆ getTypeString() [1/2]

std::string ElementBase::getTypeString ( ) const
inlineinherited

Definition at line 579 of file ElementBase.h.

References getType(), and getTypeString().

Referenced by ParallelCyclotronTracker::execute(), getTypeString(), and OpalBeamline::visit().

Here is the call graph for this function:

◆ getTypeString() [2/2]

std::string ElementBase::getTypeString ( ElementType type)
staticinherited

Definition at line 240 of file ElementBase.cpp.

References elementTypeToString_s.

◆ getWake()

WakeFunction * ElementBase::getWake ( ) const
inlinevirtualinherited

return the attached wake object if there is any

Definition at line 467 of file ElementBase.h.

References wake_m.

◆ getZinit()

double Cyclotron::getZinit ( ) const
virtual

Definition at line 151 of file Cyclotron.cpp.

References zinit_m.

◆ goOffline()

void Component::goOffline ( )
virtualinherited

Reimplemented in Degrader, FlexibleCollimator, Monitor, PluginElement, RBend3D, RFCavity, Solenoid, Source, TravelingWave, and Vacuum.

Definition at line 87 of file Component.cpp.

References online_m.

◆ goOnline()

void Component::goOnline ( const double & kineticEnergy)
virtualinherited

Reimplemented in Bend2D, CCollimator, Corrector, Degrader, FlexibleCollimator, Monitor, RBend3D, RFCavity, Solenoid, Source, TravelingWave, and Vacuum.

Definition at line 83 of file Component.cpp.

References online_m.

Referenced by PluginElement::initialise().

◆ gutdf5d()

double Cyclotron::gutdf5d ( double * f,
double dx,
const int kor,
const int krl,
const int lpr )
protected

Definition at line 599 of file Cyclotron.cpp.

Referenced by getdiffs().

◆ hasAttribute()

bool ElementBase::hasAttribute ( const std::string & aKey) const
virtualinherited

Test for existence of an attribute.

Definition at line 200 of file ElementBase.cpp.

References getConstChannel().

Referenced by ParallelCyclotronTracker::visitSolenoid().

Here is the call graph for this function:

◆ hasBoundaryGeometry()

bool ElementBase::hasBoundaryGeometry ( ) const
inlinevirtualinherited

Definition at line 479 of file ElementBase.h.

References bgeometry_m.

◆ hasParticleMatterInteraction()

bool ElementBase::hasParticleMatterInteraction ( ) const
inlinevirtualinherited

Definition at line 487 of file ElementBase.h.

References parmatint_m.

◆ hasWake()

bool ElementBase::hasWake ( ) const
inlinevirtualinherited

Definition at line 471 of file ElementBase.h.

References wake_m.

◆ idx()

int Cyclotron::idx ( int irad,
int ktet )
inlineprotected

◆ initialise() [1/2]

void Cyclotron::initialise ( PartBunchBase< double, 3 > * bunch,
const double & scaleFactor )
virtual

Definition at line 971 of file Cyclotron.cpp.

References Options::asciidump, ElementBase::getOutputFN(), lossDs_m, read(), and Component::RefPartBunch_m.

Here is the call graph for this function:

◆ initialise() [2/2]

void Cyclotron::initialise ( PartBunchBase< double, 3 > * bunch,
double & startField,
double & endField )
virtual

Implements Component.

Definition at line 966 of file Cyclotron.cpp.

References Component::online_m, and Component::RefPartBunch_m.

◆ initR()

void Cyclotron::initR ( double rmin,
double dr,
int nrad )
protected

Definition at line 958 of file Cyclotron.cpp.

References BP_m.

Referenced by read().

◆ interpolate()

bool Cyclotron::interpolate ( const double & rad,
const double & tet_rad,
double & br,
double & bt,
double & bz )

Definition at line 711 of file Cyclotron.cpp.

References Bfield_m, BP_m, FFABF, fieldType_m, idx(), Units::rad2deg, and symmetry_m.

Referenced by apply(), and apply().

Here is the call graph for this function:

◆ isElementPositionSet()

bool ElementBase::isElementPositionSet ( ) const
inlineinherited

Definition at line 598 of file ElementBase.h.

References elemedgeSet_m.

◆ isInside()

bool ElementBase::isInside ( const Vector_t & r) const
inlinevirtualinherited

Reimplemented in Bend2D, Degrader, Monitor, Multipole, RBend3D, RFCavity, Solenoid, and TravelingWave.

Definition at line 530 of file ElementBase.h.

References getElementLength(), and isInsideTransverse().

Here is the call graph for this function:

◆ isInsideTransverse()

◆ isPositioned()

bool ElementBase::isPositioned ( ) const
inlineinherited

Definition at line 556 of file ElementBase.h.

References positionIsFixed.

Referenced by OpalRBend3D::update(), OpalRBend::update(), and OpalSBend::update().

◆ isSharable()

bool ElementBase::isSharable ( ) const
inlineinherited

Test if the element can be shared.

Definition at line 463 of file ElementBase.h.

References shareFlag.

Referenced by copyStructure(), TBeamline< T >::copyStructure(), and Sequence::updateList().

◆ isShared()

bool RCObject::isShared ( ) const
inlineinherited

Test for sharing.

Definition at line 93 of file RCObject.h.

References refCount.

◆ makeSharable()

void ElementBase::makeSharable ( )
virtualinherited

Set sharable flag.

Reimplemented in TBeamline< T >, TBeamline< FlaggedElmPtr >, and TBeamline< SequenceMember >.

Definition at line 253 of file ElementBase.cpp.

References shareFlag.

Referenced by OpalMarker::OpalMarker().

◆ Online()

bool Component::Online ( )
virtualinherited

Definition at line 91 of file Component.cpp.

References online_m.

◆ operator=()

void Cyclotron::operator= ( const Cyclotron & )
privatedelete

References Cyclotron().

Here is the call graph for this function:

◆ read()

void Cyclotron::read ( const double & scaleFactor)

Definition at line 794 of file Cyclotron.cpp.

References ANSYSBF, AVFEQBF, BANDRF, Bfield_m, BP_m, CARBONBF, endl(), FFABF, fieldType_m, getdiffs(), getFieldFromFile_AVFEQ(), getFieldFromFile_BandRF(), getFieldFromFile_Carbon(), getFieldFromFile_CYCIAE(), getFieldFromFile_FFA(), getFieldFromFile_Ring(), getFieldFromFile_Synchrocyclotron(), gmsg, initR(), PSIBF, SYNCHRO, and typeName_m.

Referenced by initialise().

Here is the call graph for this function:

◆ releasePosition()

void ElementBase::releasePosition ( )
inlineinherited

Definition at line 546 of file ElementBase.h.

References positionIsFixed.

Referenced by OpalRBend3D::update(), OpalRBend::update(), and OpalSBend::update().

◆ removeAttribute()

void ElementBase::removeAttribute ( const std::string & aKey)
virtualinherited

Remove an existing attribute.

Definition at line 212 of file ElementBase.cpp.

References userAttribs.

◆ removeReference()

int RCObject::removeReference ( ) const
inlineinherited

Decrement the reference count.

Definition at line 88 of file RCObject.h.

References refCount.

◆ setActionRange()

void ElementBase::setActionRange ( const std::queue< std::pair< double, double > > & range)
inlineinherited

Definition at line 561 of file ElementBase.h.

References actionRange_m, and elementEdge_m.

◆ setAperture()

void ElementBase::setAperture ( const ApertureType & type,
const std::vector< double > & args )
inlineinherited

◆ setAttribute()

void ElementBase::setAttribute ( const std::string & aKey,
double val )
virtualinherited

Set value of an attribute.

Definition at line 217 of file ElementBase.cpp.

References getChannel(), and Channel::isSettable().

Referenced by TBeamline< FlaggedElmPtr >::getChannel(), and OpalElement::updateUnknown().

Here is the call graph for this function:

◆ setBFieldType()

void Cyclotron::setBFieldType ( )

Definition at line 379 of file Cyclotron.cpp.

References ANSYSBF, AVFEQBF, BANDRF, CARBONBF, FFABF, fieldType_m, PSIBF, SYNCHRO, and typeName_m.

Referenced by setCyclotronType().

◆ setBoundaryGeometry()

void ElementBase::setBoundaryGeometry ( BoundaryGeometry * geo)
virtualinherited

attach a boundary geometry field to the element

Definition at line 270 of file ElementBase.cpp.

References bgeometry_m.

Referenced by OpalCavity::update(), OpalCyclotron::update(), and OpalDrift::update().

◆ setBScale()

void Cyclotron::setBScale ( double bs)

Definition at line 275 of file Cyclotron.cpp.

References bscale_m.

Referenced by OpalCyclotron::update().

◆ setCSTrafoGlobal2Local()

void ElementBase::setCSTrafoGlobal2Local ( const CoordinateSystemTrafo & ori)
inlineinherited

◆ setCurrentSCoordinate()

void ElementBase::setCurrentSCoordinate ( double s)
inherited

Definition at line 278 of file ElementBase.cpp.

◆ setCyclHarm()

void Cyclotron::setCyclHarm ( double h)

Definition at line 271 of file Cyclotron.cpp.

References harm_m.

Referenced by OpalCyclotron::update().

◆ setCyclotronType()

void Cyclotron::setCyclotronType ( const std::string & type)

Definition at line 256 of file Cyclotron.cpp.

References setBFieldType(), and typeName_m.

Referenced by OpalCyclotron::update().

Here is the call graph for this function:

◆ setDesignEnergy()

void Component::setDesignEnergy ( const double & energy,
bool changeable = true )
inlinevirtualinherited

Reimplemented in BendBase, Corrector, and RFCavity.

Definition at line 228 of file Component.h.

◆ setElementLength()

◆ setElementPosition()

void ElementBase::setElementPosition ( double elemedge)
inlineinherited

Access to ELEMEDGE attribute.

Definition at line 583 of file ElementBase.h.

References elemedgeSet_m, and elementPosition_m.

Referenced by OpalElement::update().

◆ setEScale()

void Cyclotron::setEScale ( std::vector< double > bs)

Definition at line 283 of file Cyclotron.cpp.

References escale_m.

Referenced by OpalCyclotron::update().

◆ setExitFaceSlope()

void Component::setExitFaceSlope ( const double & m)
inlineinherited

Definition at line 225 of file Component.h.

References exit_face_slope_m.

◆ setFieldMapFN()

void Cyclotron::setFieldMapFN ( const std::string & fmapfn)

Definition at line 179 of file Cyclotron.cpp.

References fmapfn_m.

Referenced by OpalCyclotron::update().

◆ setFlagDeleteOnTransverseExit()

void ElementBase::setFlagDeleteOnTransverseExit ( bool flag = true)
inlineinherited

Definition at line 608 of file ElementBase.h.

References deleteOnTransverseExit_m.

Referenced by OpalElement::update().

◆ setFMHighE()

void Cyclotron::setFMHighE ( double e)

Definition at line 371 of file Cyclotron.cpp.

References fmHighE_m.

Referenced by OpalCyclotron::update().

◆ setFMLowE()

void Cyclotron::setFMLowE ( double e)

Definition at line 363 of file Cyclotron.cpp.

References fmLowE_m.

Referenced by OpalCyclotron::update().

◆ setMaxR()

void Cyclotron::setMaxR ( double r)

Definition at line 316 of file Cyclotron.cpp.

References maxr_m.

Referenced by OpalCyclotron::update().

◆ setMaxZ()

void Cyclotron::setMaxZ ( double z)

Definition at line 346 of file Cyclotron.cpp.

References maxz_m.

Referenced by OpalCyclotron::update().

◆ setMinR()

void Cyclotron::setMinR ( double r)

Definition at line 312 of file Cyclotron.cpp.

References minr_m.

Referenced by OpalCyclotron::update().

◆ setMinZ()

void Cyclotron::setMinZ ( double z)

Definition at line 338 of file Cyclotron.cpp.

References minz_m.

Referenced by OpalCyclotron::update().

◆ setMisalignment()

void ElementBase::setMisalignment ( const CoordinateSystemTrafo & cst)
inlineinherited

Definition at line 536 of file ElementBase.h.

References misalignment_m.

Referenced by OpalElement::update().

◆ setName()

void ElementBase::setName ( const std::string & name)
virtualinherited

Set element name.

Definition at line 167 of file ElementBase.cpp.

References elementID, and name.

Referenced by Sequence::insertDrifts(), Offset::operator=(), and VariableRFCavity::operator=().

◆ setOutputFN()

◆ setParticleMatterInteraction()

◆ setPHIinit()

void Cyclotron::setPHIinit ( double phiinit)

Definition at line 139 of file Cyclotron.cpp.

References phiinit_m.

Referenced by OpalCyclotron::update().

◆ setPRinit()

void Cyclotron::setPRinit ( double prinit)

Definition at line 131 of file Cyclotron.cpp.

References prinit_m.

Referenced by Distribution::createMatchedGaussDistribution(), and OpalCyclotron::update().

◆ setPZinit()

void Cyclotron::setPZinit ( double zinit)

Definition at line 155 of file Cyclotron.cpp.

References pzinit_m.

Referenced by OpalCyclotron::update().

◆ setRFFCoeffFN()

void Cyclotron::setRFFCoeffFN ( std::vector< std::string > rff_coeff_fn)

Definition at line 201 of file Cyclotron.cpp.

References RFFCoeff_fn_m.

Referenced by OpalCyclotron::update().

◆ setRfFieldMapFN()

void Cyclotron::setRfFieldMapFN ( std::vector< std::string > rffmapfn)

Definition at line 197 of file Cyclotron.cpp.

References RFfilename_m.

Referenced by OpalCyclotron::update().

◆ setRfFrequ()

void Cyclotron::setRfFrequ ( std::vector< double > f)

Definition at line 222 of file Cyclotron.cpp.

References rffrequ_m.

Referenced by OpalCyclotron::update().

◆ setRfPhi()

void Cyclotron::setRfPhi ( std::vector< double > f)

Definition at line 209 of file Cyclotron.cpp.

References rfphi_m.

Referenced by OpalCyclotron::update().

◆ setRFVCoeffFN()

void Cyclotron::setRFVCoeffFN ( std::vector< std::string > rfv_coeff_fn)

Definition at line 205 of file Cyclotron.cpp.

References RFVCoeff_fn_m.

Referenced by OpalCyclotron::update().

◆ setRinit()

void Cyclotron::setRinit ( double rinit)

Definition at line 123 of file Cyclotron.cpp.

References rinit_m.

Referenced by Distribution::createMatchedGaussDistribution(), and OpalCyclotron::update().

◆ setRotationAboutZ()

void ElementBase::setRotationAboutZ ( double rotation)
inlineinherited

Set rotation about z axis in bend frame.

Definition at line 569 of file ElementBase.h.

References rotationZAxis_m.

Referenced by OpalElement::update().

◆ setSpiralFlag()

void Cyclotron::setSpiralFlag ( bool spiral_flag)

Definition at line 171 of file Cyclotron.cpp.

References spiralFlag_m.

Referenced by OpalCyclotron::update().

◆ setSuperpose()

void Cyclotron::setSuperpose ( std::vector< bool > flag)

Definition at line 235 of file Cyclotron.cpp.

References superpose_m.

Referenced by OpalCyclotron::update().

◆ setSymmetry()

void Cyclotron::setSymmetry ( double symmetry)

Definition at line 248 of file Cyclotron.cpp.

References symmetry_m.

Referenced by OpalCyclotron::update().

◆ setTrimCoils()

void Cyclotron::setTrimCoils ( const std::vector< TrimCoil * > & trimcoils)

Definition at line 359 of file Cyclotron.cpp.

References trimcoils_m.

Referenced by OpalCyclotron::update().

◆ setTrimCoilThreshold()

void Cyclotron::setTrimCoilThreshold ( double trimCoilThreshold)

Definition at line 163 of file Cyclotron.cpp.

References trimCoilThreshold_m.

Referenced by OpalCyclotron::update().

◆ setWake()

void ElementBase::setWake ( WakeFunction * wf)
virtualinherited

◆ setZinit()

void Cyclotron::setZinit ( double zinit)

Definition at line 147 of file Cyclotron.cpp.

References zinit_m.

Referenced by OpalCyclotron::update().

◆ trackBunch()

void Component::trackBunch ( PartBunchBase< double, 3 > * bunch,
const PartData & ,
bool revBeam,
bool revTrack ) const
virtualinherited

Track particle bunch.

Definition at line 71 of file Component.cpp.

References ElementBase::getName().

Referenced by Tracker::visitComponent().

Here is the call graph for this function:

◆ trackMap()

void Component::trackMap ( FVps< double, 6 > & map,
const PartData & ,
bool revBeam,
bool revTrack ) const
virtualinherited

Track a map.

Definition at line 77 of file Component.cpp.

References ElementBase::getName().

Here is the call graph for this function:

◆ update()

bool ElementBase::update ( const AttributeSet & set)
inherited

Update element.

Definition at line 258 of file ElementBase.cpp.

Referenced by Monitor::driftToCorrectPositionAndSave().

◆ writeOutputFieldFiles()

void Cyclotron::writeOutputFieldFiles ( )

Definition at line 1521 of file Cyclotron.cpp.

References BANDRF, Bfield_m, BP_m, CARBONBF, Util::combineFilePath(), endl(), fieldType_m, fp1(), fp2(), OpalData::getAuxiliaryOutputDirectory(), OpalData::getInstance(), gmsg, idx(), RFfields_m, and SYNCHRO.

Referenced by getFieldFromFile_AVFEQ(), getFieldFromFile_Carbon(), and getFieldFromFile_FFA().

Here is the call graph for this function:

Member Data Documentation

◆ actionRange_m

std::queue<std::pair<double, double> > ElementBase::actionRange_m
privateinherited

Definition at line 399 of file ElementBase.h.

Referenced by setActionRange().

◆ aperture_m

◆ Bfield_m

◆ bgeometry_m

BoundaryGeometry* ElementBase::bgeometry_m
privateinherited

◆ BP_m

◆ bscale_m

double Cyclotron::bscale_m
private

A scale factor for the B-field

Definition at line 273 of file Cyclotron.h.

Referenced by Cyclotron(), getBScale(), and setBScale().

◆ csTrafoGlobal2Local_m

◆ defaultAperture_m

const std::vector< double > Component::defaultAperture_m
staticprotectedinherited
Initial value:
=
std::vector<double>({1e6, 1e6, 1.0})

Definition at line 187 of file Component.h.

Referenced by Component().

◆ deleteOnTransverseExit_m

bool ElementBase::deleteOnTransverseExit_m = true
privateinherited

◆ elemedgeSet_m

bool ElementBase::elemedgeSet_m
privateinherited

◆ elementEdge_m

double ElementBase::elementEdge_m
protectedinherited

◆ elementID

std::string ElementBase::elementID
privateinherited

Definition at line 381 of file ElementBase.h.

Referenced by ElementBase(), getName(), and setName().

◆ elementPosition_m

double ElementBase::elementPosition_m
privateinherited

ELEMEDGE attribute.

Definition at line 396 of file ElementBase.h.

Referenced by ElementBase(), getElementPosition(), and setElementPosition().

◆ elementTypeToString_s

const std::map< ElementType, std::string > ElementBase::elementTypeToString_s
staticprivateinherited

Definition at line 71 of file ElementBase.h.

Referenced by getTypeString().

◆ escale_m

std::vector<double> Cyclotron::escale_m
private

A scale factor for the E-field

Definition at line 255 of file Cyclotron.h.

Referenced by apply(), Cyclotron(), getEScale(), and setEScale().

◆ exit_face_slope_m

double Component::exit_face_slope_m
protectedinherited

Definition at line 189 of file Component.h.

Referenced by Component(), Component(), and setExitFaceSlope().

◆ fieldType_m

BFieldType Cyclotron::fieldType_m
private

◆ fmapfn_m

std::string Cyclotron::fmapfn_m
private

◆ fmHighE_m

double Cyclotron::fmHighE_m
private

Definition at line 283 of file Cyclotron.h.

Referenced by Cyclotron(), getFMHighE(), and setFMHighE().

◆ fmLowE_m

double Cyclotron::fmLowE_m
private

Definition at line 282 of file Cyclotron.h.

Referenced by Cyclotron(), getFMLowE(), and setFMLowE().

◆ harm_m

double Cyclotron::harm_m
private

Definition at line 271 of file Cyclotron.h.

Referenced by Cyclotron(), getCyclHarm(), and setCyclHarm().

◆ lossDs_m

std::unique_ptr<LossDataSink> Cyclotron::lossDs_m
private

Handling for store the particle out of region

Definition at line 295 of file Cyclotron.h.

Referenced by apply(), finalise(), and initialise().

◆ maxr_m

double Cyclotron::maxr_m
private

Definition at line 278 of file Cyclotron.h.

Referenced by apply(), checkInitialReferenceParticle(), Cyclotron(), getMaxR(), and setMaxR().

◆ maxz_m

double Cyclotron::maxz_m
private

Definition at line 280 of file Cyclotron.h.

Referenced by apply(), checkInitialReferenceParticle(), Cyclotron(), getMaxZ(), and setMaxZ().

◆ minr_m

double Cyclotron::minr_m
private

Definition at line 277 of file Cyclotron.h.

Referenced by apply(), Cyclotron(), getMaxR(), getMinR(), and setMinR().

◆ minz_m

double Cyclotron::minz_m
private

Definition at line 279 of file Cyclotron.h.

Referenced by Cyclotron(), getMaxZ(), getMinZ(), and setMinZ().

◆ misalignment_m

CoordinateSystemTrafo ElementBase::misalignment_m
protectedinherited

Definition at line 367 of file ElementBase.h.

Referenced by ElementBase(), getMisalignment(), and setMisalignment().

◆ online_m

◆ outputfn_m

std::string ElementBase::outputfn_m
privateinherited

The name of the outputfile

Definition at line 401 of file ElementBase.h.

Referenced by ElementBase(), getOutputFN(), and setOutputFN().

◆ parmatint_m

ParticleMatterInteractionHandler* ElementBase::parmatint_m
privateinherited

◆ phiinit_m

double Cyclotron::phiinit_m
private

Definition at line 262 of file Cyclotron.h.

Referenced by Cyclotron(), getPHIinit(), and setPHIinit().

◆ positionIsFixed

bool ElementBase::positionIsFixed
privateinherited

◆ prinit_m

double Cyclotron::prinit_m
private

Definition at line 261 of file Cyclotron.h.

Referenced by Cyclotron(), getPRinit(), and setPRinit().

◆ pzinit_m

double Cyclotron::pzinit_m
private

Definition at line 264 of file Cyclotron.h.

Referenced by Cyclotron(), getPZinit(), and setPZinit().

◆ refCount

int RCObject::refCount
mutableprivateinherited

Definition at line 76 of file RCObject.h.

Referenced by addReference(), isShared(), RCObject(), RCObject(), and removeReference().

◆ RefPartBunch_m

PartBunchBase<double, 3>* Component::RefPartBunch_m
protectedinherited

Definition at line 191 of file Component.h.

Referenced by Bend2D::apply(), Corrector::apply(), Corrector::apply(), Cyclotron::apply(), Degrader::apply(), FlexibleCollimator::apply(), Monitor::apply(), Multipole::apply(), MultipoleT::apply(), RBend3D::apply(), RFCavity::apply(), SBend3D::apply(), ScalingFFAMagnet::apply(), Solenoid::apply(), Source::apply(), TravelingWave::apply(), Undulator::apply(), VariableRFCavity::apply(), VariableRFCavityFringeField::apply(), VerticalFFAMagnet::apply(), Degrader::applyToReferenceParticle(), Monitor::applyToReferenceParticle(), BendBase::calcDesignRadius(), BendBase::calcFieldAmplitude(), BendBase::calcGamma(), Bend2D::calculateBendAngle(), Bend2D::calculateRefTrajectory(), Component(), Component(), Monitor::driftToCorrectPositionAndSave(), MultipoleT::finalise(), Offset::finalise(), SBend3D::finalise(), ScalingFFAMagnet::finalise(), VariableRFCavity::finalise(), VerticalFFAMagnet::finalise(), RBend::findChordLength(), Bend2D::findIdealBendParameters(), Corrector::goOnline(), Degrader::goOnline(), Corrector::initialise(), Cyclotron::initialise(), Cyclotron::initialise(), Degrader::initialise(), Drift::initialise(), FlexibleCollimator::initialise(), FlexibleCollimator::initialise(), Marker::initialise(), Monitor::initialise(), Multipole::initialise(), MultipoleT::initialise(), Offset::initialise(), PluginElement::initialise(), RBend3D::initialise(), RFCavity::initialise(), RFCavity::initialise(), SBend3D::initialise(), ScalingFFAMagnet::initialise(), Solenoid::initialise(), Source::initialise(), TravelingWave::initialise(), Undulator::initialise(), Vacuum::initialise(), VariableRFCavity::initialise(), VerticalFFAMagnet::initialise(), VariableRFCavity::initNull(), Multipole::isFocusing(), MultipoleT::MultipoleT(), CCollimator::print(), FlexibleCollimator::print(), SBend3D::SBend3D(), ScalingFFAMagnet::ScalingFFAMagnet(), Corrector::setDesignEnergy(), Ring::setRefPartBunch(), Bend2D::setupPusher(), RFCavity::trackOnAxisParticle(), RBend3D::trackRefParticleThrough(), Vacuum::updateParticleAttributes(), and VerticalFFAMagnet::VerticalFFAMagnet().

◆ rffc_m

std::vector< std::vector<double> > Cyclotron::rffc_m
private

Definition at line 251 of file Cyclotron.h.

Referenced by apply(), and getFieldFromFile_Synchrocyclotron().

◆ RFFCoeff_fn_m

std::vector<std::string> Cyclotron::RFFCoeff_fn_m
private

Definition at line 292 of file Cyclotron.h.

Referenced by Cyclotron(), getFieldFromFile_Synchrocyclotron(), and setRFFCoeffFN().

◆ RFfields_m

std::vector<Fieldmap> Cyclotron::RFfields_m
private

◆ RFfilename_m

std::vector<std::string> Cyclotron::RFfilename_m
private

◆ rffrequ_m

std::vector<double> Cyclotron::rffrequ_m
private

Definition at line 250 of file Cyclotron.h.

Referenced by apply(), Cyclotron(), getRfFrequ(), and setRfFrequ().

◆ rfphi_m

std::vector<double> Cyclotron::rfphi_m
private

Definition at line 254 of file Cyclotron.h.

Referenced by apply(), Cyclotron(), getRfPhi(), and setRfPhi().

◆ rfvc_m

std::vector< std::vector<double> > Cyclotron::rfvc_m
private

Definition at line 253 of file Cyclotron.h.

Referenced by apply(), and getFieldFromFile_Synchrocyclotron().

◆ RFVCoeff_fn_m

std::vector<std::string> Cyclotron::RFVCoeff_fn_m
private

Definition at line 293 of file Cyclotron.h.

Referenced by Cyclotron(), getFieldFromFile_Synchrocyclotron(), and setRFVCoeffFN().

◆ rfvrequ_m

std::vector<double> Cyclotron::rfvrequ_m
private

Definition at line 252 of file Cyclotron.h.

◆ rinit_m

double Cyclotron::rinit_m
private

Definition at line 260 of file Cyclotron.h.

Referenced by Cyclotron(), getRinit(), and setRinit().

◆ rotationZAxis_m

double ElementBase::rotationZAxis_m
protectedinherited

◆ shareFlag

bool ElementBase::shareFlag
mutableprotectedinherited

◆ spiralFlag_m

bool Cyclotron::spiralFlag_m
private

Definition at line 266 of file Cyclotron.h.

Referenced by Cyclotron(), getSpiralFlag(), and setSpiralFlag().

◆ superpose_m

std::vector<bool> Cyclotron::superpose_m
private

A flag for superpose electric fields

Definition at line 256 of file Cyclotron.h.

Referenced by apply(), Cyclotron(), getSuperpose(), and setSuperpose().

◆ symmetry_m

double Cyclotron::symmetry_m
private

Definition at line 258 of file Cyclotron.h.

Referenced by Cyclotron(), getSymmetry(), interpolate(), and setSymmetry().

◆ trimcoils_m

std::vector<TrimCoil*> Cyclotron::trimcoils_m
private

Trim coils

Definition at line 275 of file Cyclotron.h.

Referenced by applyTrimCoil_m(), Cyclotron(), getNumberOfTrimcoils(), and setTrimCoils().

◆ trimCoilThreshold_m

double Cyclotron::trimCoilThreshold_m
private

B-field threshold for applying trim coil

Definition at line 267 of file Cyclotron.h.

Referenced by applyTrimCoil(), Cyclotron(), getTrimCoilThreshold(), and setTrimCoilThreshold().

◆ typeName_m

std::string Cyclotron::typeName_m
private

Name of the TYPE parameter in cyclotron

Definition at line 269 of file Cyclotron.h.

Referenced by Cyclotron(), getCyclotronType(), read(), setBFieldType(), and setCyclotronType().

◆ userAttribs

AttributeSet ElementBase::userAttribs
privateinherited

Definition at line 386 of file ElementBase.h.

Referenced by ElementBase(), getChannel(), and removeAttribute().

◆ waitingGap_m

int Cyclotron::waitingGap_m = 1
private

Definition at line 298 of file Cyclotron.h.

Referenced by apply().

◆ wake_m

WakeFunction* ElementBase::wake_m
privateinherited

Definition at line 388 of file ElementBase.h.

Referenced by ElementBase(), getWake(), hasWake(), and setWake().

◆ zinit_m

double Cyclotron::zinit_m
private

Definition at line 263 of file Cyclotron.h.

Referenced by Cyclotron(), getZinit(), and setZinit().


The documentation for this class was generated from the following files: