OPAL (Object Oriented Parallel Accelerator Library)
2024.1
OPAL
|
Ring describes a ring type geometry for tracking. More...
#include <Ring.h>
Public Member Functions | |
Ring (const std::string &ring) | |
Ring (const Ring &ring) | |
virtual | ~Ring () |
virtual bool | apply (const size_t &id, const double &t, Vector_t &E, Vector_t &B) override |
virtual bool | apply (const Vector_t &R, const Vector_t &P, const double &t, Vector_t &E, Vector_t &B) override |
virtual void | initialise (PartBunchBase< double, 3 > *bunch, double &startField, double &endField) override |
virtual void | initialise (PartBunchBase< double, 3 > *bunch) |
virtual void | finalise () override |
virtual bool | bends () const override |
virtual void | accept (BeamlineVisitor &visitor) const override |
virtual void | getDimensions (double &zBegin, double &zEnd) const override |
virtual ElementBase * | clone () const override |
void | appendElement (const Component &element) |
virtual EMField & | getField () override |
virtual const EMField & | getField () const override |
virtual PlanarArcGeometry & | getGeometry () override |
virtual const PlanarArcGeometry & | getGeometry () const override |
void | setLossDataSink (LossDataSink *sink) |
PartBunchBase< double, 3 > * | getLossDataSink () const |
void | setRefPartBunch (PartBunchBase< double, 3 > *bunch) |
PartBunchBase< double, 3 > * | getRefPartBunch () const |
void | setHarmonicNumber (double cyclHarm) |
double | getHarmonicNumber () |
void | setRFFreq (double rfFreq) |
double | getRFFreq () const |
void | setBeamRInit (double rInit) |
double | getBeamRInit () const |
void | setBeamPhiInit (double phiInit) |
double | getBeamPhiInit () const |
void | setBeamThetaInit (double thetaInit) |
double | getBeamThetaInit () const |
void | setBeamPRInit (double pRInit) |
double | getBeamPRInit () const |
void | setLatticeRInit (double rInit) |
double | getLatticeRInit () const |
void | setLatticePhiInit (double phiInit) |
double | getLatticePhiInit () const |
Vector_t | getNextPosition () const |
Vector_t | getNextNormal () const |
void | setLatticeThetaInit (double thetaInit) |
double | getLatticeThetaInit () const |
void | setSymmetry (double symmetry) |
void | setScale (double scale) |
double | getSymmetry () const |
void | setIsClosed (bool isClosed) |
double | getIsClosed () const |
void | setRingAperture (double minR, double maxR) |
double | getRingMinR () const |
double | getRingMaxR () const |
void | lockRing () |
RingSection * | getSection (int i) const |
RingSection * | getLastSectionPlaced () const |
size_t | getNumberOfRingSections () const |
std::vector< RingSection * > | getSectionsAt (const Vector_t &pos) |
![]() | |
Component (const std::string &name) | |
Constructor with given name. More... | |
Component () | |
Component (const Component &right) | |
virtual | ~Component () |
EVector | Efield (const Point3D &P) const |
Return the field in a point. More... | |
BVector | Bfield (const Point3D &P) const |
Return the field in a point. More... | |
EVector | Efield (const Point3D &P, double t) const |
Return the field in a point. More... | |
BVector | Bfield (const Point3D &P, double t) const |
Return the field in a point. More... | |
EBVectors | EBfield (const Point3D &P) const |
Return the field in a point. More... | |
EBVectors | EBfield (const Point3D &P, double t) const |
Return the field in a point. More... | |
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 ElementType | getType () const override |
Get element type std::string. More... | |
virtual const ElementBase & | getDesign () const |
Return design element. More... | |
virtual void | trackBunch (PartBunchBase< double, 3 > *bunch, const PartData &, bool revBeam, bool revTrack) const |
Track particle bunch. More... | |
virtual void | trackMap (FVps< double, 6 > &map, const PartData &, bool revBeam, bool revTrack) const |
Track a map. More... | |
void | setExitFaceSlope (const double &) |
![]() | |
ElementBase (const std::string &name) | |
Constructor with given name. More... | |
ElementBase () | |
ElementBase (const ElementBase &) | |
virtual | ~ElementBase () |
virtual const std::string & | getName () const |
Get element name. More... | |
virtual void | setName (const std::string &name) |
Set element name. More... | |
std::string | getTypeString () const |
virtual double | getArcLength () const |
Get arc length. More... | |
virtual double | getElementLength () const |
Get design length. More... | |
virtual void | setElementLength (double length) |
Set design length. More... | |
virtual void | getElementDimensions (double &begin, double &end) const |
virtual double | getOrigin () const |
Get origin position. More... | |
virtual double | getEntrance () const |
Get entrance position. More... | |
virtual double | getExit () const |
Get exit position. More... | |
virtual Euclid3D | getTransform (double fromS, double toS) const |
Get transform. More... | |
virtual Euclid3D | getTransform (double s) const |
Get transform. More... | |
virtual Euclid3D | getTotalTransform () const |
Get transform. More... | |
virtual Euclid3D | getEntranceFrame () const |
Get transform. More... | |
virtual Euclid3D | getExitFrame () const |
Get transform. More... | |
virtual Euclid3D | getEntrancePatch () const |
Get patch. More... | |
virtual Euclid3D | getExitPatch () const |
Get patch. More... | |
virtual double | getAttribute (const std::string &aKey) const |
Get attribute value. More... | |
virtual bool | hasAttribute (const std::string &aKey) const |
Test for existence of an attribute. More... | |
virtual void | removeAttribute (const std::string &aKey) |
Remove an existing attribute. More... | |
virtual void | setAttribute (const std::string &aKey, double val) |
Set value of an attribute. More... | |
virtual Channel * | getChannel (const std::string &aKey, bool create=false) |
Construct a read/write channel. More... | |
virtual const ConstChannel * | getConstChannel (const std::string &aKey) const |
Construct a read-only channel. More... | |
virtual ElementBase * | copyStructure () |
Make a structural copy. More... | |
bool | isSharable () const |
Test if the element can be shared. More... | |
virtual void | makeSharable () |
Set sharable flag. More... | |
bool | update (const AttributeSet &) |
Update element. More... | |
virtual void | setBoundaryGeometry (BoundaryGeometry *geo) |
virtual BoundaryGeometry * | getBoundaryGeometry () const |
return the attached boundary geometrt object if there is any More... | |
virtual bool | hasBoundaryGeometry () const |
virtual void | setWake (WakeFunction *wf) |
attach a wake field to the element More... | |
virtual WakeFunction * | getWake () const |
return the attached wake object if there is any More... | |
virtual bool | hasWake () const |
virtual void | setParticleMatterInteraction (ParticleMatterInteractionHandler *spys) |
virtual ParticleMatterInteractionHandler * | getParticleMatterInteraction () 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. More... | |
double | getRotationAboutZ () const |
virtual BoundingBox | getBoundingBoxInLabCoords () const |
virtual int | getRequiredNumberOfTimeSteps () const |
void | setOutputFN (std::string fn) |
Set output filename. More... | |
std::string | getOutputFN () const |
Get output filename. More... | |
void | setFlagDeleteOnTransverseExit (bool=true) |
bool | getFlagDeleteOnTransverseExit () const |
void | setElementPosition (double elemedge) |
Access to ELEMEDGE attribute. More... | |
double | getElementPosition () const |
bool | isElementPositionSet () const |
![]() | |
int | addReference () const |
Increment reference count. More... | |
int | removeReference () const |
Decrement the reference count. More... | |
bool | isShared () const |
Test for sharing. More... | |
Static Public Member Functions | |
static Vector_t | convert (const Vector3D &vec) |
static Vector3D | convert (const Vector_t &vec) |
![]() | |
static std::string | getTypeString (ElementType type) |
Private Member Functions | |
void | resetAzimuths () |
void | checkAndClose () |
void | buildRingSections () |
void | rotateToCyclCoordinates (Euclid3D &euclid3d) const |
Vector_t | getStartPosition () const |
Vector_t | getStartNormal () const |
Ring () | |
Ring & | operator= (const Ring &ring) |
void | checkMidplane (Euclid3D delta) const |
Rotation3D | getRotationStartToEnd (Euclid3D delta) const |
Static Private Member Functions | |
static bool | sectionCompare (RingSection const *const sec1, RingSection const *const sec2) |
Private Attributes | |
PlanarArcGeometry | planarArcGeometry_m |
PartBunchBase< double, 3 > * | refPartBunch_m |
LossDataSink * | lossDS_m |
double | beamRInit_m |
double | beamPRInit_m |
double | beamPhiInit_m |
double | beamThetaInit_m |
double | latticeRInit_m |
double | latticePhiInit_m |
double | latticeThetaInit_m |
bool | willDoAperture_m = false |
double | minR2_m |
double | maxR2_m |
bool | isLocked_m |
bool | isClosed_m |
int | symmetry_m |
double | scale_m = 1. |
double | cyclHarm_m |
double | rfFreq_m |
double | phiStep_m |
std::vector< RingSectionList > | ringSections_m |
RingSectionList | section_list_m |
Static Private Attributes | |
static const double | lengthTolerance_m = 1e-2 |
static const double | angleTolerance_m = 1e-2 |
Additional Inherited Members | |
![]() | |
bool | isInsideTransverse (const Vector_t &r) const |
![]() | |
RCObject () | |
Default constructor. More... | |
RCObject (const RCObject &) | |
Copy constructor. More... | |
virtual | ~RCObject ()=0 |
RCObject & | operator= (const RCObject &right) |
![]() | |
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 const std::vector< double > | defaultAperture_m |
Ring describes a ring type geometry for tracking.
Ring describes a ring type geometry for tracking. Ring provides the necessary interfaces for e.g. OPAL-CYCL to track through the ring geometry, while enabling the user to add arbitrary field elements in a closed geometry.
Ring uses similar routines to OPAL-T OpalBeamline class to set up geometry; note that as OPAL-CYCL places the beam in an x-y geometry we place in an x-y geometry for Ring (i.e. the axis of the ring is by default the z-axis). So far only placement of elements in the midplane is supported. It is not possible to give vertical displacements or rotations, or add elements that might create vertical displacements and rotations.
Also aim to maintain backwards compatibility with Cyclotron (i.e. use ParallelCyclotronTracker)
Ring::Ring | ( | const std::string & | ring | ) |
Constructor
ring | Name of the ring as defined in the input file |
Definition at line 41 of file Ring.cpp.
References setRefPartBunch().
Ring::Ring | ( | const Ring & | ring | ) |
Copy constructor
Can't copy LossDataSink so throw exception if this is set
Definition at line 59 of file Ring.cpp.
References buildRingSections(), lossDS_m, refPartBunch_m, section_list_m, and setRefPartBunch().
|
virtual |
Destructor - deletes lossDS_m if not nullptr
Definition at line 90 of file Ring.cpp.
References section_list_m.
|
private |
Disabled
Referenced by clone().
|
overridevirtual |
Accept the BeamlineVisitor
Just calls visitRing function on the visitor. I guess the point of this function is that it enables us to store a pointer to the visitor object or something
Implements ElementBase.
Definition at line 55 of file Ring.cpp.
References BeamlineVisitor::visitRing().
Add element to the ring
Add element to the ring. Elements are assumed to occupy a region of space defined by a (flat) plane at the start and a plane at the end, both infinite in extent. The position and rotation of these planes are defined according to the Component geometry given by element.getGeometry().
Caller owns memory allocated to element - Ring makes a copy.
Throws an exception if the geometry would bend the element out of the midplane (elements out of midplane are not yet supported). Note that BeamlineGeometry considers midplane to be x-z, whereas Ring considers midplane to be x-y; we apply a rotation during set up.
The element is assumed to extend not beyond the element geometry; Ring applies a bounding box based on the element geometry, if there are field maps expanding outside this region they may get cut.
Definition at line 234 of file Ring.cpp.
References atan2(), checkMidplane(), ElementBase::clone(), cos(), endl(), Rotation3D::getAxis(), RingSection::getComponent(), RingSection::getEndNormal(), RingSection::getEndPosition(), ElementBase::getGeometry(), ElementBase::getName(), getNextNormal(), getNextPosition(), Euclid3D::getRotation(), RingSection::getStartNormal(), RingSection::getStartPosition(), BGeometryBase::getTotalTransform(), Euclid3D::getVector(), RingSection::handleOffset(), isLocked_m, rotateToCyclCoordinates(), section, section_list_m, RingSection::setComponent(), RingSection::setComponentOrientation(), RingSection::setComponentPosition(), RingSection::setEndNormal(), RingSection::setEndPosition(), RingSection::setStartNormal(), RingSection::setStartPosition(), and sin().
Referenced by lockRing(), ParallelCyclotronTracker::visitMultipoleT(), ParallelCyclotronTracker::visitMultipoleTCurvedConstRadius(), ParallelCyclotronTracker::visitMultipoleTCurvedVarRadius(), ParallelCyclotronTracker::visitMultipoleTStraight(), ParallelCyclotronTracker::visitOffset(), ParallelCyclotronTracker::visitSBend3D(), ParallelCyclotronTracker::visitScalingFFAMagnet(), ParallelCyclotronTracker::visitVariableRFCavity(), and ParallelCyclotronTracker::visitVerticalFFAMagnet().
|
overridevirtual |
Overwrite data in vector E and B with electric and magnetic field
i | index of item in RefPartBunch_m - particle bunch |
t | time |
E | array where electric field vector is stored - any existing data is overwritten |
B | array where magnetic field vector is stored - any existing data is overwritten |
Reimplemented from Component.
Definition at line 95 of file Ring.cpp.
References LossDataSink::addParticle(), PartBunchBase< T, Dim >::Bin, endl(), ElementBase::getName(), level4(), lossDS_m, PartBunchBase< T, Dim >::M, PartBunchBase< T, Dim >::P, PartBunchBase< T, Dim >::Q, PartBunchBase< T, Dim >::R, and refPartBunch_m.
|
overridevirtual |
Overwrite data in vector E and B with electromagnetic field at point R
R | 3 vector position at which the field is found in Cartesian coordinates (i.e. x, y, z with z=vertical) |
P | 3 vector momentum |
centroid | unknown, but not used - bunch mean maybe? |
t | time |
E | vector where electric field vector will be stored - any existing data is overwritten |
B | vector where magnetic field vector will be stored - any existing data is overwritten |
Reimplemented from Component.
Definition at line 116 of file Ring.cpp.
References PartBunchBase< T, Dim >::get_centroid(), getSectionsAt(), maxR2_m, refPartBunch_m, scale_m, and willDoAperture_m.
|
inlineoverridevirtual |
|
private |
Definition at line 351 of file Ring.cpp.
References phiStep_m, ringSections_m, section_list_m, and Physics::two_pi.
Referenced by lockRing(), and Ring().
|
private |
Definition at line 336 of file Ring.cpp.
References abs(), angleTolerance_m, lengthTolerance_m, and section_list_m.
Referenced by lockRing().
Definition at line 187 of file Ring.cpp.
References abs(), angleTolerance_m, Rotation3D::getAxis(), Euclid3D::getRotation(), Euclid3D::getVector(), and lengthTolerance_m.
Referenced by appendElement().
|
inlineoverridevirtual |
Inherited copy constructor
Implements ElementBase.
Definition at line 145 of file Ring.h.
References Ring().
Referenced by ParallelCyclotronTracker::visitRing().
|
overridevirtual |
Clean up the Ring
Ring relinquishes RefPartBunchBase<double, 3> pointer and deletes LossDataSink
Implements Component.
Definition at line 161 of file Ring.cpp.
References lossDS_m, Component::online_m, LossDataSink::save(), and setLossDataSink().
|
inline |
Get the initial beam azimuthal angle
Definition at line 231 of file Ring.h.
References beamPhiInit_m.
Referenced by ParallelCyclotronTracker::visitRing().
|
inline |
Get the initial beam radial momentum
Definition at line 243 of file Ring.h.
References beamPRInit_m.
Referenced by ParallelCyclotronTracker::visitRing().
|
inline |
Get the initial beam radius
Definition at line 225 of file Ring.h.
References beamRInit_m.
Referenced by ParallelCyclotronTracker::visitRing().
|
inline |
Get the initial beam rotation relative to the tangent vector
Definition at line 237 of file Ring.h.
References beamThetaInit_m.
Referenced by ParallelCyclotronTracker::visitRing().
|
overridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Not implemented
Implements ElementBase.
Definition at line 175 of file Ring.h.
References planarArcGeometry_m.
|
inlineoverridevirtual |
Not implemented
Implements ElementBase.
Definition at line 178 of file Ring.h.
References planarArcGeometry_m.
|
inline |
Get the harmonic number for RF (number of bunches in the ring)
Definition at line 212 of file Ring.h.
References cyclHarm_m.
Referenced by ParallelCyclotronTracker::getHarmonicNumber(), and ParallelCyclotronTracker::visitRing().
|
inline |
RingSection * Ring::getLastSectionPlaced | ( | ) | const |
Get the last section placed or nullptr if no sections were placed yet
Definition at line 364 of file Ring.cpp.
References section_list_m.
|
inline |
Get the initial element's azimuthal angle
Definition at line 255 of file Ring.h.
References latticePhiInit_m.
|
inline |
|
inline |
Get the first element's horizontal angle
Get the angle in the ring plane with respect to the tangent vector
Definition at line 273 of file Ring.h.
References latticeThetaInit_m.
PartBunchBase<double, 3>* Ring::getLossDataSink | ( | ) | const |
Get pointer to lossDataSink.
Ring still owns the memory to which lossDataSink points.
Vector_t Ring::getNextNormal | ( | ) | const |
Get the initial element's start normal in cartesian coordinates
Definition at line 220 of file Ring.cpp.
References getStartNormal(), and section_list_m.
Referenced by appendElement().
Vector_t Ring::getNextPosition | ( | ) | const |
Get the initial element's start position in cartesian coordinates
Definition at line 206 of file Ring.cpp.
References getStartPosition(), and section_list_m.
Referenced by appendElement().
size_t Ring::getNumberOfRingSections | ( | ) | const |
Get number of RingSections
Definition at line 402 of file Ring.cpp.
References section_list_m.
Referenced by PyOpal::Field::getNumberOfElements(), and getSection().
PartBunchBase<double, 3>* Ring::getRefPartBunch | ( | ) | const |
Get pointer to RefPartBunchBase<double, 3> from the bunch.
Ring does not own this memory (so neither does caller).
|
inline |
|
inline |
|
inline |
|
private |
Definition at line 176 of file Ring.cpp.
References atan2(), Euclid3D::getRotation(), and Rotation3D::ZRotation().
RingSection * Ring::getSection | ( | int | i | ) | const |
Return ith section. Throw a readable exception if i is not valid
Definition at line 387 of file Ring.cpp.
References getNumberOfRingSections(), sec(), and section_list_m.
Referenced by PyOpal::Field::getElementEndNormal(), PyOpal::Field::getElementEndPosition(), PyOpal::Field::getElementName(), PyOpal::Field::getElementStartNormal(), and PyOpal::Field::getElementStartPosition().
std::vector< RingSection * > Ring::getSectionsAt | ( | const Vector_t & | pos | ) |
Get the list of sections at position pos
Definition at line 172 of file Ring.cpp.
References section_list_m.
Referenced by apply().
|
private |
Definition at line 228 of file Ring.cpp.
References cos(), latticePhiInit_m, latticeThetaInit_m, and sin().
Referenced by getNextNormal().
|
private |
Definition at line 214 of file Ring.cpp.
References cos(), latticePhiInit_m, latticeRInit_m, and sin().
Referenced by getNextPosition().
|
inline |
Get the rotational symmetry of the ring (number of cells)
Definition at line 282 of file Ring.h.
References symmetry_m.
Referenced by ParallelCyclotronTracker::visitRing().
|
overridevirtual |
|
virtual |
Initialise the Ring - set the bunch and allocate a new LossDataSink
bunch | the particle bunch. Ring borrows this pointer (caller owns memory) |
Definition at line 150 of file Ring.cpp.
References ElementBase::getName(), Component::online_m, setLossDataSink(), and setRefPartBunch().
void Ring::lockRing | ( | ) |
Lock the ring
Lock the ring; apply closure checks and symmetry properties as required. Impose rule that start must be before end and switch objects around if this is not the case. Sort by startPosition azimuthal angle.
Sets isLocked_m to true. New elements can no longer be added (as it may break the symmetry/bound checking)
Definition at line 291 of file Ring.cpp.
References appendElement(), buildRingSections(), checkAndClose(), endl(), isClosed_m, isLocked_m, section_list_m, and symmetry_m.
Referenced by ParallelCyclotronTracker::execute().
|
private |
Definition at line 321 of file Ring.cpp.
References section_list_m.
Definition at line 197 of file Ring.cpp.
References Rotation3D::getAxis(), Euclid3D::getRotation(), and Euclid3D::getVector().
Referenced by appendElement().
|
staticprivate |
|
inline |
Set the initial beam azimuthal angle
Definition at line 228 of file Ring.h.
References beamPhiInit_m.
Referenced by OpalRingDefinition::update().
|
inline |
Set the initial beam radial momentum
Definition at line 240 of file Ring.h.
References beamPRInit_m.
Referenced by OpalRingDefinition::update().
|
inline |
Set the initial beam radius
Definition at line 222 of file Ring.h.
References beamRInit_m.
Referenced by OpalRingDefinition::update().
|
inline |
Set the initial beam rotation relative to the tangent vector
Definition at line 234 of file Ring.h.
References beamThetaInit_m.
Referenced by OpalRingDefinition::update().
|
inline |
Set the harmonic number for RF (number of bunches in the ring)
Definition at line 209 of file Ring.h.
References cyclHarm_m.
Referenced by OpalRingDefinition::update().
|
inline |
Set flag for closure checking
Definition at line 285 of file Ring.h.
References isClosed_m.
Referenced by OpalRingDefinition::update().
|
inline |
Set the initial element's azimuthal angle
Definition at line 252 of file Ring.h.
References latticePhiInit_m.
Referenced by OpalRingDefinition::update().
|
inline |
Set the initial element's radius
Definition at line 246 of file Ring.h.
References latticeRInit_m.
Referenced by OpalRingDefinition::update().
|
inline |
Set the first element's horizontal angle
Set the angle in the ring plane with respect to the tangent vector
Definition at line 267 of file Ring.h.
References latticeThetaInit_m.
Referenced by OpalRingDefinition::update().
void Ring::setLossDataSink | ( | LossDataSink * | sink | ) |
Set LossDataSink to sink.
sink | The LossDataSink. Ring takes ownership of memory allocated to sink |
Definition at line 140 of file Ring.cpp.
References lossDS_m.
Referenced by finalise(), and initialise().
void Ring::setRefPartBunch | ( | PartBunchBase< double, 3 > * | bunch | ) |
Set RefPartBunchBase<double, 3> to bunch.
sink | The Bunch. Ring borrows memory allocated to bunch. |
Note for compliance with style guide and compatibility with parent two pointer to RefPartBunchBase<double, 3> are stored; this keeps them aligned
Definition at line 167 of file Ring.cpp.
References Component::RefPartBunch_m, and refPartBunch_m.
Referenced by initialise(), and Ring().
|
inline |
Set the nominal RF frequency
Definition at line 216 of file Ring.h.
References rfFreq_m.
Referenced by OpalRingDefinition::update().
void Ring::setRingAperture | ( | double | minR, |
double | maxR | ||
) |
Set the ring aperture limits
Definition at line 376 of file Ring.cpp.
References maxR2_m, minR2_m, and willDoAperture_m.
Referenced by OpalRingDefinition::update().
|
inline |
Set the scaling factor for the fields
Definition at line 279 of file Ring.h.
References scale_m.
Referenced by OpalRingDefinition::update().
|
inline |
Set the rotational symmetry of the ring (number of cells)
Definition at line 276 of file Ring.h.
References symmetry_m.
Referenced by OpalRingDefinition::update().
|
staticprivate |
Definition at line 418 of file Ring.h.
Referenced by checkAndClose(), and checkMidplane().
|
private |
Definition at line 379 of file Ring.h.
Referenced by getBeamPhiInit(), and setBeamPhiInit().
|
private |
Definition at line 378 of file Ring.h.
Referenced by getBeamPRInit(), and setBeamPRInit().
|
private |
Definition at line 377 of file Ring.h.
Referenced by getBeamRInit(), and setBeamRInit().
|
private |
Definition at line 380 of file Ring.h.
Referenced by getBeamThetaInit(), and setBeamThetaInit().
|
private |
Definition at line 406 of file Ring.h.
Referenced by getHarmonicNumber(), and setHarmonicNumber().
|
private |
Definition at line 398 of file Ring.h.
Referenced by getIsClosed(), lockRing(), and setIsClosed().
|
private |
Definition at line 394 of file Ring.h.
Referenced by appendElement(), and lockRing().
|
private |
Definition at line 384 of file Ring.h.
Referenced by getLatticePhiInit(), getStartNormal(), getStartPosition(), and setLatticePhiInit().
|
private |
Definition at line 383 of file Ring.h.
Referenced by getLatticeRInit(), getStartPosition(), and setLatticeRInit().
|
private |
Definition at line 385 of file Ring.h.
Referenced by getLatticeThetaInit(), getStartNormal(), and setLatticeThetaInit().
|
staticprivate |
Definition at line 417 of file Ring.h.
Referenced by checkAndClose(), and checkMidplane().
|
private |
Definition at line 374 of file Ring.h.
Referenced by apply(), finalise(), Ring(), and setLossDataSink().
|
private |
Definition at line 391 of file Ring.h.
Referenced by apply(), getRingMaxR(), and setRingAperture().
|
private |
Definition at line 390 of file Ring.h.
Referenced by getRingMinR(), and setRingAperture().
|
private |
Definition at line 412 of file Ring.h.
Referenced by buildRingSections().
|
private |
Definition at line 363 of file Ring.h.
Referenced by getGeometry().
|
private |
Definition at line 369 of file Ring.h.
Referenced by apply(), Ring(), and setRefPartBunch().
|
private |
Definition at line 409 of file Ring.h.
Referenced by getRFFreq(), and setRFFreq().
|
private |
Definition at line 413 of file Ring.h.
Referenced by buildRingSections().
|
private |
Definition at line 403 of file Ring.h.
Referenced by apply(), and setScale().
|
private |
Definition at line 414 of file Ring.h.
Referenced by appendElement(), buildRingSections(), checkAndClose(), getLastSectionPlaced(), getNextNormal(), getNextPosition(), getNumberOfRingSections(), getSection(), getSectionsAt(), lockRing(), resetAzimuths(), Ring(), and ~Ring().
|
private |
Definition at line 401 of file Ring.h.
Referenced by getSymmetry(), lockRing(), and setSymmetry().
|
private |
Definition at line 389 of file Ring.h.
Referenced by apply(), and setRingAperture().