|
OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
|
Ring describes a ring type geometry for tracking. More...
#include <Ring.h>


Public Member Functions | |
| Ring (const std::string &ring) | |
| Constructor. More... | |
| Ring (const Ring &ring) | |
| Copy constructor. More... | |
| virtual | ~Ring () |
| Destructor - deletes lossDS_m if not nullptr. More... | |
| virtual bool | apply (const size_t &id, const double &t, Vector_t &E, Vector_t &B) override |
| Overwrite data in vector E and B with electric and magnetic field. More... | |
| virtual bool | apply (const Vector_t &R, const Vector_t &P, const double &t, Vector_t &E, Vector_t &B) override |
| Overwrite data in vector E and B with electromagnetic field at point R. More... | |
| virtual void | initialise (PartBunchBase< double, 3 > *bunch, double &startField, double &endField) override |
| Initialise the Ring. More... | |
| virtual void | initialise (PartBunchBase< double, 3 > *bunch) |
| Initialise the Ring - set the bunch and allocate a new LossDataSink. More... | |
| virtual void | finalise () override |
| Clean up the Ring. More... | |
| virtual bool | bends () const override |
| Returns true - Ring is assumed to bend particles, being a ring. More... | |
| virtual void | accept (BeamlineVisitor &visitor) const override |
| Accept the BeamlineVisitor. More... | |
| virtual void | getDimensions (double &zBegin, double &zEnd) const override |
| Not implemented - always throws an exception. More... | |
| virtual ElementBase * | clone () const override |
| Inherited copy constructor. More... | |
| void | appendElement (const Component &element) |
| Add element to the ring. More... | |
| virtual EMField & | getField () override |
| Not implemented, throws an exception. More... | |
| virtual const EMField & | getField () const override |
| Not implemented, throws an exception. More... | |
| virtual PlanarArcGeometry & | getGeometry () override |
| Not implemented. More... | |
| virtual const PlanarArcGeometry & | getGeometry () const override |
| Not implemented. More... | |
| void | setLossDataSink (LossDataSink *sink) |
| Set LossDataSink to sink. More... | |
| PartBunchBase< double, 3 > * | getLossDataSink () const |
| Get pointer to lossDataSink. More... | |
| void | setRefPartBunch (PartBunchBase< double, 3 > *bunch) |
| Set RefPartBunchBase<double, 3> to bunch. More... | |
| PartBunchBase< double, 3 > * | getRefPartBunch () const |
| Get pointer to RefPartBunchBase<double, 3> from the bunch. More... | |
| void | setHarmonicNumber (double cyclHarm) |
| Set the harmonic number for RF (number of bunches in the ring) More... | |
| double | getHarmonicNumber () |
| Get the harmonic number for RF (number of bunches in the ring) More... | |
| void | setRFFreq (double rfFreq) |
| Set the nominal RF frequency. More... | |
| double | getRFFreq () const |
| Get the nominal RF frequency. More... | |
| void | setBeamRInit (double rInit) |
| Set the initial beam radius. More... | |
| double | getBeamRInit () const |
| Get the initial beam radius. More... | |
| void | setBeamPhiInit (double phiInit) |
| Set the initial beam azimuthal angle. More... | |
| double | getBeamPhiInit () const |
| Get the initial beam azimuthal angle. More... | |
| void | setBeamThetaInit (double thetaInit) |
| Set the initial beam rotation relative to the tangent vector. More... | |
| double | getBeamThetaInit () const |
| Get the initial beam rotation relative to the tangent vector. More... | |
| void | setBeamPRInit (double pRInit) |
| Set the initial beam radial momentum. More... | |
| double | getBeamPRInit () const |
| Get the initial beam radial momentum. More... | |
| void | setLatticeRInit (double rInit) |
| Set the initial element's radius. More... | |
| double | getLatticeRInit () const |
| Get the initial element's radius. More... | |
| void | setLatticePhiInit (double phiInit) |
| Set the initial element's azimuthal angle. More... | |
| double | getLatticePhiInit () const |
| Get the initial element's azimuthal angle. More... | |
| Vector_t | getNextPosition () const |
| Get the initial element's start position in cartesian coordinates. More... | |
| Vector_t | getNextNormal () const |
| Get the initial element's start normal in cartesian coordinates. More... | |
| void | setLatticeThetaInit (double thetaInit) |
| Set the first element's horizontal angle. More... | |
| double | getLatticeThetaInit () const |
| Get the first element's horizontal angle. More... | |
| void | setSymmetry (double symmetry) |
| Set the rotational symmetry of the ring (number of cells) More... | |
| void | setScale (double scale) |
| Set the scaling factor for the fields. More... | |
| double | getSymmetry () const |
| Get the rotational symmetry of the ring (number of cells) More... | |
| void | setIsClosed (bool isClosed) |
| Set flag for closure checking. More... | |
| double | getIsClosed () const |
| Get flag for closure checking. More... | |
| void | setRingAperture (double minR, double maxR) |
| Set the ring aperture limits. More... | |
| double | getRingMinR () const |
| Get the ring minimum. More... | |
| double | getRingMaxR () const |
| Get the ring maximum. More... | |
| void | lockRing () |
| Lock the ring. More... | |
| RingSection * | getSection (int i) const |
| Return ith section. More... | |
| RingSection * | getLastSectionPlaced () const |
| Get the last section placed or nullptr if no sections were placed yet. More... | |
| size_t | getNumberOfRingSections () const |
| Get number of RingSections. More... | |
| std::vector< RingSection * > | getSectionsAt (const Vector_t &pos) |
| Get the list of sections at position pos. More... | |
| EVector | Efield (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) 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 &) |
| Calculate the four-potential at some position relative to the component. More... | |
| 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 &) |
| 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) |
| attach a boundary geometry field to the element More... | |
| 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 |
| int | addReference () const |
| Increment reference count. More... | |
| int | removeReference () const |
| Decrement the reference count. More... | |
| bool | isShared () const |
| Test for sharing. More... | |
| void | setElementPosition (double elemedge) |
| Access to ELEMEDGE attribute. More... | |
| double | getElementPosition () const |
| bool | isElementPositionSet () const |
Static Public Member Functions | |
| static Vector_t | convert (const Vector3D &vec) |
| Convert from a Vector3D to a Vector_t. More... | |
| static Vector3D | convert (const Vector_t &vec) |
| Convert from a Vector_t to a Vector3D. More... | |
| static std::string | getTypeString (ElementType type) |
Protected Member Functions | |
| bool | isInsideTransverse (const Vector_t &r) const |
Protected Attributes | |
| 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 | resetAzimuths () |
| void | checkAndClose () |
| void | buildRingSections () |
| void | rotateToCyclCoordinates (Euclid3D &euclid3d) const |
| Vector_t | getStartPosition () const |
| Vector_t | getStartNormal () const |
| Ring () | |
| Disabled. More... | |
| Ring & | operator= (const Ring &ring) |
| Disabled. More... | |
| 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 |
| std::string | elementID |
| AttributeSet | userAttribs |
| WakeFunction * | wake_m |
| BoundaryGeometry * | bgeometry_m |
| ParticleMatterInteractionHandler * | parmatint_m |
| bool | positionIsFixed |
| std::queue< std::pair< double, double > > | actionRange_m |
| std::string | outputfn_m |
| The name of the outputfile. More... | |
| bool | deleteOnTransverseExit_m = true |
| int | refCount |
| double | elementPosition_m |
| ELEMEDGE attribute. More... | |
| bool | elemedgeSet_m |
Static Private Attributes | |
| static const double | lengthTolerance_m = 1e-2 |
| static const double | angleTolerance_m = 1e-2 |
| static const std::map< ElementType, std::string > | elementTypeToString_s |
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().

|
inlineinherited |
Increment reference count.
Definition at line 83 of file RCObject.h.
References RCObject::refCount.
Referenced by Pointer< Object >::operator=(), and Pointer< Object >::unique().
| void Ring::appendElement | ( | const Component & | element | ) |
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(), gmsg, RingSection::handleOffset(), isLocked_m, rotateToCyclCoordinates(), 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::visitOffset(), ParallelCyclotronTracker::visitSBend3D(), ParallelCyclotronTracker::visitScalingFFAMagnet(), ParallelCyclotronTracker::visitVariableRFCavity(), ParallelCyclotronTracker::visitVariableRFCavityFringeField(), 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(), apply(), PartBunchBase< T, Dim >::Bin, endl(), ElementBase::getName(), gmsgALL, level4(), lossDS_m, PartBunchBase< T, Dim >::M, PartBunchBase< T, Dim >::P, PartBunchBase< T, Dim >::Q, PartBunchBase< T, Dim >::R, and refPartBunch_m.
Referenced by apply().

|
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, Attrib::Distribution::R, refPartBunch_m, scale_m, and willDoAperture_m.

|
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(), ElementBase::isInsideTransverse(), and Attrib::Distribution::R.

|
inlineoverridevirtual |
Return the field in a point.
Definition at line 202 of file Component.h.
References EMField::Bfield(), and Component::getField().

Return the field in a point.
Definition at line 208 of file Component.h.
References EMField::Bfield(), and Component::getField().

|
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().

|
private |
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().

|
virtualinherited |
Make a structural copy.
Reimplemented in TBeamline< T >.
Definition at line 244 of file ElementBase.cpp.
References ElementBase::clone(), and ElementBase::isSharable().
Referenced by Sequence::copy(), Line::parse(), SequenceParser::parseMember(), and Replacer::visitFlaggedElmPtr().

Return the field in a point.
Definition at line 211 of file Component.h.
References EMField::EBfield(), and Component::getField().

Return the field in a point.
Definition at line 214 of file Component.h.
References EMField::EBfield(), and Component::getField().

Return the field in a point.
Definition at line 199 of file Component.h.
References EMField::Efield(), and Component::getField().

Return the field in a point.
Definition at line 205 of file Component.h.
References EMField::Efield(), and Component::getField().

|
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().

|
inlineinherited |
Definition at line 551 of file ElementBase.h.
References ElementBase::positionIsFixed.
Referenced by OpalElement::update(), OpalRBend::update(), OpalRBend3D::update(), and OpalSBend::update().
|
inlineinherited |
Definition at line 525 of file ElementBase.h.
References ElementBase::aperture_m.
Referenced by MeshGenerator::add(), and Offset::operator=().
|
inlinevirtualinherited |
Get arc length.
Reimplemented in MarkerRep, and TBeamline< T >.
Definition at line 411 of file ElementBase.h.
References BGeometryBase::getArcLength(), and ElementBase::getGeometry().
Referenced by BeamlineGeometry::getArcLength(), and TBeamline< T >::getTransform().

|
virtualinherited |
Get attribute value.
Definition at line 187 of file ElementBase.cpp.
References ElementBase::getConstChannel().

|
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().
|
inlinevirtualinherited |
return the attached boundary geometrt object if there is any
Definition at line 475 of file ElementBase.h.
References ElementBase::bgeometry_m.
|
virtualinherited |
Reimplemented in Bend2D.
Definition at line 313 of file ElementBase.cpp.
References ElementBase::aperture_m, ElementBase::csTrafoGlobal2Local_m, BoundingBox::getBoundingBox(), ElementBase::getEdgeToBegin(), ElementBase::getEdgeToEnd(), and CoordinateSystemTrafo::transformFrom().

|
virtualinherited |
Construct a read/write channel.
Reimplemented in CCollimatorRep, CorrectorRep, CyclotronRep, DegraderRep, DriftRep, FlexibleCollimatorRep, MonitorRep, MultipoleRep, ProbeRep, RBendRep, RFCavityRep, SBendRep, SeptumRep, SingleMultipole< order >, SolenoidRep, SourceRep, StripperRep, TravelingWaveRep, UndulatorRep, VacuumRep, XCorrectorRep, and YCorrectorRep.
Definition at line 228 of file ElementBase.cpp.
References AttributeSet::getChannel(), and ElementBase::userAttribs.
Referenced by CCollimatorRep::getChannel(), CorrectorRep::getChannel(), CyclotronRep::getChannel(), DegraderRep::getChannel(), DriftRep::getChannel(), FlexibleCollimatorRep::getChannel(), MonitorRep::getChannel(), MultipoleRep::getChannel(), ProbeRep::getChannel(), RBendRep::getChannel(), RFCavityRep::getChannel(), SBendRep::getChannel(), SeptumRep::getChannel(), SingleMultipole< order >::getChannel(), SolenoidRep::getChannel(), SourceRep::getChannel(), StripperRep::getChannel(), TravelingWaveRep::getChannel(), UndulatorRep::getChannel(), VacuumRep::getChannel(), XCorrectorRep::getChannel(), YCorrectorRep::getChannel(), ElementBase::getConstChannel(), and ElementBase::setAttribute().

|
virtualinherited |
Construct a read-only channel.
Definition at line 233 of file ElementBase.cpp.
References ElementBase::getChannel().
Referenced by ElementBase::getAttribute(), and ElementBase::hasAttribute().

|
inlineinherited |
Definition at line 498 of file ElementBase.h.
References ElementBase::csTrafoGlobal2Local_m.
Referenced by MeshGenerator::add(), ParallelTTracker::computeParticleMatterInteraction(), Monitor::driftToCorrectPositionAndSave(), OpalRBend::update(), OpalRBend3D::update(), and OpalSBend::update().
|
virtualinherited |
Return design element.
Definition at line 67 of file Component.cpp.
|
inlinevirtualinherited |
Reimplemented in BendBase, and RFCavity.
Definition at line 231 of file Component.h.
|
overridevirtual |
|
inlinevirtualinherited |
Reimplemented in RFCavity, Solenoid, and TravelingWave.
Definition at line 503 of file ElementBase.h.
Referenced by ElementBase::getBoundingBoxInLabCoords(), Bend2D::getBoundingBoxInLabCoords(), and ElementBase::isInsideTransverse().
|
inlinevirtualinherited |
Reimplemented in Bend2D, RFCavity, Solenoid, and TravelingWave.
Definition at line 511 of file ElementBase.h.
References ElementBase::getElementLength().
Referenced by ElementBase::getBoundingBoxInLabCoords().

|
inlinevirtualinherited |
Reimplemented in RFCavity, TravelingWave, and Solenoid.
Definition at line 174 of file ElementBase.h.
References begin(), end(), and ElementBase::getElementLength().
Referenced by MeshGenerator::add().

|
inlinevirtualinherited |
Get design length.
Reimplemented in MarkerRep, TBeamline< T >, and RFCavity.
Definition at line 415 of file ElementBase.h.
References BGeometryBase::getElementLength(), and ElementBase::getGeometry().
Referenced by ScatteringPhysics::addBackToBunch(), Undulator::apply(), Multipole::apply(), Component::apply(), Corrector::apply(), Solenoid::apply(), Component::applyToReferenceParticle(), Multipole::applyToReferenceParticle(), Solenoid::applyToReferenceParticle(), Vacuum::checkPoint(), ScatteringPhysics::copyFromBunch(), RBend::findChordLength(), SBend::findChordLength(), Corrector::getDimensions(), CCollimator::getDimensions(), Degrader::getDimensions(), Drift::getDimensions(), FlexibleCollimator::getDimensions(), Multipole::getDimensions(), RBend3D::getDimensions(), Solenoid::getDimensions(), Vacuum::getDimensions(), ElementBase::getEdgeToEnd(), Solenoid::getEdgeToEnd(), ElementBase::getElementDimensions(), Solenoid::getElementDimensions(), BeamlineGeometry::getElementLength(), RFCavity::getElementLength(), Corrector::initialise(), Degrader::initialise(), Drift::initialise(), FlexibleCollimator::initialise(), Multipole::initialise(), RBend3D::initialise(), Solenoid::initialise(), Source::initialise(), Vacuum::initialise(), ElementBase::isInside(), Degrader::isInside(), Monitor::isInside(), Multipole::isInside(), ElementBase::isInsideTransverse(), FlexibleCollimator::isStopped(), ScatteringPhysics::setTimeStepForLeavingParticles(), Bend2D::setupDefaultFieldMap(), ParallelCyclotronTracker::visitCorrector(), ParallelCyclotronTracker::visitDrift(), ThickTracker::visitDrift(), ParallelCyclotronTracker::visitMultipole(), ThickTracker::visitMultipole(), ParallelCyclotronTracker::visitRBend(), ParallelCyclotronTracker::visitSBend(), and ThickTracker::visitSBend().

|
inlineinherited |
Definition at line 589 of file ElementBase.h.
References ElementBase::elemedgeSet_m, ElementBase::elementPosition_m, and ElementBase::getName().

|
inlinevirtualinherited |
Get entrance position.
Reimplemented in TBeamline< T >.
Definition at line 427 of file ElementBase.h.
References BGeometryBase::getEntrance(), and ElementBase::getGeometry().
Referenced by BeamlineGeometry::getEntrance().

|
inlinevirtualinherited |
Get transform.
Reimplemented in TBeamline< T >.
Definition at line 447 of file ElementBase.h.
References BGeometryBase::getEntranceFrame(), and ElementBase::getGeometry().
Referenced by BeamlineGeometry::getEntranceFrame().

|
inlinevirtualinherited |
Get patch.
Definition at line 455 of file ElementBase.h.
References BGeometryBase::getEntrancePatch(), and ElementBase::getGeometry().

|
inlinevirtualinherited |
Get exit position.
Reimplemented in TBeamline< T >.
Definition at line 431 of file ElementBase.h.
References BGeometryBase::getExit(), and ElementBase::getGeometry().
Referenced by BeamlineGeometry::getExit().

|
inlinevirtualinherited |
Get transform.
Reimplemented in TBeamline< T >.
Definition at line 451 of file ElementBase.h.
References BGeometryBase::getExitFrame(), and ElementBase::getGeometry().
Referenced by BeamlineGeometry::getExitFrame().

|
inlinevirtualinherited |
Get patch.
Definition at line 459 of file ElementBase.h.
References BGeometryBase::getExitPatch(), and ElementBase::getGeometry().

|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineinherited |
Definition at line 614 of file ElementBase.h.
References ElementBase::deleteOnTransverseExit_m.
Referenced by Multipole::apply(), Corrector::apply(), Bend2D::apply(), MultipoleT::apply(), RFCavity::apply(), Solenoid::apply(), TravelingWave::apply(), and FlexibleCollimator::isStopped().
|
inlineoverridevirtual |
Not implemented.
Implements ElementBase.
Definition at line 178 of file Ring.h.
References planarArcGeometry_m.
|
inlineoverridevirtual |
Not implemented.
Implements ElementBase.
Definition at line 175 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.
|
inlineinherited |
Definition at line 541 of file ElementBase.h.
References ElementBase::misalignment_m.
|
inherited |
Referenced by ParallelTTracker::computeParticleMatterInteraction().
|
virtualinherited |
Get element name.
Definition at line 162 of file ElementBase.cpp.
References ElementBase::elementID.
Referenced by appendElement(), Cyclotron::apply(), apply(), Bend2D::calculateRefTrajectory(), OutputPlane::checkOne(), Vacuum::checkPressure(), Stripper::doCheck(), CCollimator::doFinalise(), Stripper::doFinalise(), OutputPlane::doGoOffline(), Probe::doGoOffline(), OutputPlane::doInitialise(), PlaceRep::enter(), Cyclotron::finalise(), Degrader::finalise(), FlexibleCollimator::finalise(), Vacuum::finalise(), PyOpal::Field::getElementName(), ElementBase::getElementPosition(), RFCavity::getMomentaKick(), BeamStrippingPhysics::getName(), ScatteringPhysics::getName(), Bend2D::getOutline(), ElementBase::getOutputFN(), CavityAutophaser::getPhaseAtMaxEnergy(), Selector::handleElement(), initialise(), Bend2D::initialise(), RBend3D::initialise(), RFCavity::initialise(), Solenoid::initialise(), CSRIGFWakeFunction::initialize(), CSRWakeFunction::initialize(), OpalWake::initWakefunction(), PlaceRep::leave(), operator<<(), Offset::operator=(), VariableRFCavity::operator=(), operator==(), Line::parse(), Vacuum::print(), BeamStrippingPhysics::print(), ScatteringPhysics::print(), Sequence::print(), ParticleMatterInteraction::print(), Bend2D::readFieldMap(), PyOpal::PyLine_< C >::registerObject(), Component::trackBunch(), Component::trackMap(), RBend3D::trackRefParticleThrough(), OpalRBend::update(), OpalRBend3D::update(), OpalSBend::update(), Sequence::updateList(), ParallelTTracker::updateRFElement(), ParallelCyclotronTracker::visitCCollimator(), Replacer::visitFlaggedElmPtr(), ParallelCyclotronTracker::visitProbe(), ParallelCyclotronTracker::visitRFCavity(), ParallelCyclotronTracker::visitSeptum(), ParallelCyclotronTracker::visitStripper(), and ParallelTTracker::writePhaseSpace().
| 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().
|
inlinevirtualinherited |
Get origin position.
Reimplemented in TBeamline< T >.
Definition at line 423 of file ElementBase.h.
References ElementBase::getGeometry(), and BGeometryBase::getOrigin().
Referenced by BeamlineGeometry::getOrigin().

|
inherited |
Get output filename.
Definition at line 177 of file ElementBase.cpp.
References ElementBase::getName(), and ElementBase::outputfn_m.
Referenced by Probe::doInitialise(), PluginElement::initialise(), Cyclotron::initialise(), FlexibleCollimator::initialise(), Monitor::initialise(), and Source::initialise().

|
inlinevirtualinherited |
Definition at line 483 of file ElementBase.h.
References ElementBase::parmatint_m.
Referenced by Degrader::applyToReferenceParticle(), CCollimator::doInitialise(), Vacuum::initialise(), and FlexibleCollimator::initialise().
|
inlinevirtualinherited |
Calculate the four-potential at some position relative to the component.
| R | position in the local coordinate system of the component |
| t | time |
| A | filled with the calculated magnetic vector potential |
| phi | filled with the calculated electric potential Note that any existing values in A and phi may be overwritten by this method. |
Definition at line 130 of file Component.h.
| 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).
|
inlinevirtualinherited |
|
inline |
|
inline |
|
inline |
|
inlineinherited |
Definition at line 574 of file ElementBase.h.
References ElementBase::rotationZAxis_m.
Referenced by OpalBeamline::compute3DLattice(), and Bend2D::setFieldCalcParam().
|
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().
|
inlinevirtualinherited |
Get transform.
Reimplemented in TBeamline< T >.
Definition at line 439 of file ElementBase.h.
References ElementBase::getGeometry(), and BGeometryBase::getTotalTransform().
Referenced by BeamlineGeometry::getTotalTransform().

|
inlinevirtualinherited |
Get transform.
Reimplemented in TBeamline< T >.
Definition at line 435 of file ElementBase.h.
References ElementBase::getGeometry(), and BGeometryBase::getTransform().
Referenced by BeamlineGeometry::getTransform(), and TBeamline< T >::getTransform().

|
inlinevirtualinherited |
Get transform.
Reimplemented in TBeamline< T >.
Definition at line 443 of file ElementBase.h.
References ElementBase::getGeometry(), and BGeometryBase::getTransform().

|
overridevirtualinherited |
Get element type std::string.
Implements ElementBase.
Reimplemented in Corrector, Cyclotron, Undulator, CCollimator, Degrader, Drift, FlexibleCollimator, Marker, Monitor, Multipole, OutputPlane, Probe, RBend, RBend3D, RFCavity, SBend, Septum, Solenoid, Source, Stripper, TravelingWave, Vacuum, and Bend2D.
Definition at line 95 of file Component.cpp.
References ANY.
|
inlineinherited |
Definition at line 579 of file ElementBase.h.
References ElementBase::getType(), and ElementBase::getTypeString().
Referenced by ParallelCyclotronTracker::execute(), ElementBase::getTypeString(), Vacuum::print(), and OpalBeamline::visit().

|
staticinherited |
Definition at line 240 of file ElementBase.cpp.
References ElementBase::elementTypeToString_s.
|
inlinevirtualinherited |
return the attached wake object if there is any
Definition at line 467 of file ElementBase.h.
References ElementBase::wake_m.
|
virtualinherited |
Reimplemented in PluginElement, Degrader, FlexibleCollimator, Monitor, RBend3D, RFCavity, Solenoid, Source, TravelingWave, and Vacuum.
Definition at line 87 of file Component.cpp.
References Component::online_m.
|
virtualinherited |
Reimplemented in Corrector, Bend2D, CCollimator, Degrader, FlexibleCollimator, Monitor, RBend3D, RFCavity, Solenoid, Source, TravelingWave, and Vacuum.
Definition at line 83 of file Component.cpp.
References Component::online_m.
Referenced by PluginElement::initialise().
|
virtualinherited |
Test for existence of an attribute.
Definition at line 200 of file ElementBase.cpp.
References ElementBase::getConstChannel().
Referenced by ParallelCyclotronTracker::visitSolenoid().

|
inlinevirtualinherited |
Definition at line 479 of file ElementBase.h.
References ElementBase::bgeometry_m.
|
inlinevirtualinherited |
Definition at line 487 of file ElementBase.h.
References ElementBase::parmatint_m.
|
inlinevirtualinherited |
Definition at line 471 of file ElementBase.h.
References ElementBase::wake_m.
|
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().

|
overridevirtual |
Initialise the Ring.
| bunch | the particle bunch. Ring borrows this pointer (caller owns memory) |
| startField | - not used |
| endField | - not used |
| scaleFactor | - not used |
Implements Component.
Definition at line 156 of file Ring.cpp.
References initialise().
Referenced by initialise(), and ParallelCyclotronTracker::visitRing().

|
inlineinherited |
Definition at line 598 of file ElementBase.h.
References ElementBase::elemedgeSet_m.
|
inlinevirtualinherited |
Reimplemented in Bend2D, Degrader, Monitor, Multipole, RBend3D, RFCavity, Solenoid, and TravelingWave.
Definition at line 530 of file ElementBase.h.
References ElementBase::getElementLength(), and ElementBase::isInsideTransverse().

|
protectedinherited |
Definition at line 287 of file ElementBase.cpp.
References abs(), ElementBase::aperture_m, CONIC_ELLIPTICAL, CONIC_RECTANGULAR, ELLIPTICAL, ElementBase::getEdgeToBegin(), ElementBase::getElementLength(), pow(), RECTANGULAR, and CoordinateSystemTrafo::transformTo().
Referenced by Undulator::apply(), Multipole::apply(), Component::apply(), Corrector::apply(), Component::applyToReferenceParticle(), Multipole::applyToReferenceParticle(), ElementBase::isInside(), Monitor::isInside(), Multipole::isInside(), RFCavity::isInside(), Solenoid::isInside(), TravelingWave::isInside(), and FlexibleCollimator::isStopped().

|
inlineinherited |
Definition at line 556 of file ElementBase.h.
References ElementBase::positionIsFixed.
Referenced by OpalRBend::update(), OpalRBend3D::update(), and OpalSBend::update().
|
inlineinherited |
Test if the element can be shared.
Definition at line 463 of file ElementBase.h.
References ElementBase::shareFlag.
Referenced by ElementBase::copyStructure(), and Sequence::updateList().
|
inlineinherited |
| 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(), gmsg, isClosed_m, isLocked_m, section_list_m, and symmetry_m.
Referenced by ParallelCyclotronTracker::execute().

|
virtualinherited |
Set sharable flag.
Reimplemented in TBeamline< T >.
Definition at line 253 of file ElementBase.cpp.
References ElementBase::shareFlag.
Referenced by OpalMarker::OpalMarker(), and Element::setShared().
|
virtualinherited |
Definition at line 91 of file Component.cpp.
References Component::online_m.
|
inlineinherited |
Definition at line 546 of file ElementBase.h.
References ElementBase::positionIsFixed.
Referenced by OpalRBend::update(), OpalRBend3D::update(), and OpalSBend::update().
|
virtualinherited |
Remove an existing attribute.
Definition at line 212 of file ElementBase.cpp.
References AttributeSet::removeAttribute(), and ElementBase::userAttribs.

|
inlineinherited |
Decrement the reference count.
Definition at line 88 of file RCObject.h.
References RCObject::refCount.
|
private |
Definition at line 321 of file Ring.cpp.
References section_list_m.
|
private |
Definition at line 197 of file Ring.cpp.
References Rotation3D::getAxis(), Euclid3D::getRotation(), and Euclid3D::getVector().
Referenced by appendElement().

|
staticprivate |
|
inlineinherited |
Definition at line 561 of file ElementBase.h.
References ElementBase::actionRange_m, and ElementBase::elementEdge_m.
|
inlineinherited |
Definition at line 519 of file ElementBase.h.
References ElementBase::aperture_m.
Referenced by Component::Component(), Offset::operator=(), OpalElement::update(), OpalRBend::update(), OpalRBend3D::update(), OpalSBend::update(), and OpalSlit::update().
|
virtualinherited |
Set value of an attribute.
Definition at line 217 of file ElementBase.cpp.
References endl(), ElementBase::getChannel(), and Channel::isSettable().
Referenced by ElementBase::update(), and OpalElement::updateUnknown().

|
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().
|
virtualinherited |
attach a boundary geometry field to the element
Definition at line 270 of file ElementBase.cpp.
References ElementBase::bgeometry_m.
Referenced by OpalCavity::update(), OpalCyclotron::update(), and OpalDrift::update().
|
inlineinherited |
Definition at line 491 of file ElementBase.h.
References ElementBase::csTrafoGlobal2Local_m, and ElementBase::positionIsFixed.
Referenced by OpalElement::update(), OpalRBend::update(), OpalRBend3D::update(), and OpalSBend::update().
|
inherited |
Definition at line 278 of file ElementBase.cpp.
References ElementBase::actionRange_m, and ElementBase::elementEdge_m.
|
inlinevirtualinherited |
Reimplemented in Corrector, RFCavity, and BendBase.
Definition at line 228 of file Component.h.
|
inlinevirtualinherited |
Set design length.
Reimplemented in MultipoleT.
Definition at line 419 of file ElementBase.h.
References ElementBase::getGeometry(), and BGeometryBase::setElementLength().
Referenced by Bend2D::initialise(), RBend3D::initialise(), RFCavity::initialise(), Solenoid::initialise(), TravelingWave::initialise(), MultipoleT::setElementLength(), SequenceMember::setLength(), OpalCavity::update(), OpalCCollimator::update(), OpalDrift::update(), OpalECollimator::update(), OpalFlexibleCollimator::update(), OpalHKicker::update(), OpalKicker::update(), OpalMonitor::update(), OpalMultipole::update(), OpalOctupole::update(), OpalPepperPot::update(), OpalProbe::update(), OpalQuadrupole::update(), OpalRBend3D::update(), OpalRCollimator::update(), OpalSeptum::update(), OpalSextupole::update(), OpalSlit::update(), OpalSolenoid::update(), OpalSource::update(), OpalStripper::update(), OpalTravelingWave::update(), OpalUndulator::update(), OpalVacuum::update(), and OpalVKicker::update().

|
inlineinherited |
Access to ELEMEDGE attribute.
Definition at line 583 of file ElementBase.h.
References ElementBase::elemedgeSet_m, and ElementBase::elementPosition_m.
Referenced by OpalElement::update().
|
inlineinherited |
Definition at line 225 of file Component.h.
References Component::exit_face_slope_m.
|
inlineinherited |
Definition at line 608 of file ElementBase.h.
References ElementBase::deleteOnTransverseExit_m.
Referenced by OpalElement::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().
|
inlineinherited |
Definition at line 536 of file ElementBase.h.
References ElementBase::misalignment_m.
Referenced by OpalElement::update().
|
virtualinherited |
Set element name.
Definition at line 167 of file ElementBase.cpp.
References ElementBase::elementID, and name.
Referenced by Sequence::insertDrifts(), Offset::operator=(), and VariableRFCavity::operator=().
|
inherited |
Set output filename.
Definition at line 172 of file ElementBase.cpp.
References ElementBase::outputfn_m.
Referenced by OpalCCollimator::update(), OpalCyclotron::update(), OpalECollimator::update(), OpalFlexibleCollimator::update(), OpalMonitor::update(), OpalOutputPlane::update(), OpalPepperPot::update(), OpalProbe::update(), OpalRCollimator::update(), OpalSeptum::update(), OpalSlit::update(), OpalSource::update(), and OpalStripper::update().
|
virtualinherited |
Definition at line 274 of file ElementBase.cpp.
References ElementBase::parmatint_m.
Referenced by OpalCCollimator::update(), OpalDrift::update(), OpalECollimator::update(), OpalFlexibleCollimator::update(), OpalPepperPot::update(), OpalQuadrupole::update(), OpalRBend::update(), OpalRBend3D::update(), OpalRCollimator::update(), OpalSBend::update(), OpalSlit::update(), and OpalVacuum::update().
| 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().
|
inlineinherited |
Set rotation about z axis in bend frame.
Definition at line 569 of file ElementBase.h.
References ElementBase::rotationZAxis_m.
Referenced by OpalElement::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().
|
virtualinherited |
attach a wake field to the element
Definition at line 266 of file ElementBase.cpp.
References ElementBase::wake_m.
Referenced by OpalCavity::update(), OpalDrift::update(), OpalProbe::update(), OpalRBend::update(), OpalRBend3D::update(), OpalSBend::update(), OpalSeptum::update(), and OpalTravelingWave::update().
|
virtualinherited |
Track particle bunch.
Definition at line 71 of file Component.cpp.
References ElementBase::getName().
Referenced by Tracker::visitComponent().

|
virtualinherited |
Track a map.
Definition at line 77 of file Component.cpp.
References ElementBase::getName().

|
inherited |
Update element.
Definition at line 258 of file ElementBase.cpp.
References AttributeSet::begin(), AttributeSet::end(), and ElementBase::setAttribute().
Referenced by Monitor::driftToCorrectPositionAndSave().

|
privateinherited |
Definition at line 399 of file ElementBase.h.
Referenced by ElementBase::setActionRange(), and ElementBase::setCurrentSCoordinate().
|
staticprivate |
Definition at line 418 of file Ring.h.
Referenced by checkAndClose(), and checkMidplane().
|
protectedinherited |
Definition at line 369 of file ElementBase.h.
Referenced by ElementBase::getAperture(), ElementBase::getBoundingBoxInLabCoords(), Bend2D::getOutline(), Bend2D::getSurfaceMesh(), Bend2D::inMagnetCentralRegion(), Bend2D::inMagnetEntranceRegion(), Bend2D::inMagnetExitRegion(), ElementBase::isInsideTransverse(), ElementBase::setAperture(), Bend2D::setFieldCalcParam(), Bend2D::setupBendGeometry(), and Bend2D::setupFringeWidths().
|
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().
|
privateinherited |
Definition at line 390 of file ElementBase.h.
Referenced by ElementBase::ElementBase(), ElementBase::getBoundaryGeometry(), ElementBase::hasBoundaryGeometry(), and ElementBase::setBoundaryGeometry().
|
protectedinherited |
Definition at line 366 of file ElementBase.h.
Referenced by Monitor::applyToReferenceParticle(), ElementBase::getBoundingBoxInLabCoords(), Bend2D::getBoundingBoxInLabCoords(), ElementBase::getCSTrafoGlobal2Local(), and ElementBase::setCSTrafoGlobal2Local().
|
private |
Definition at line 406 of file Ring.h.
Referenced by getHarmonicNumber(), and setHarmonicNumber().
|
staticprotectedinherited |
Definition at line 187 of file Component.h.
Referenced by Component::Component().
|
privateinherited |
Definition at line 403 of file ElementBase.h.
Referenced by ElementBase::getFlagDeleteOnTransverseExit(), and ElementBase::setFlagDeleteOnTransverseExit().
|
privateinherited |
Definition at line 397 of file ElementBase.h.
Referenced by ElementBase::getElementPosition(), ElementBase::isElementPositionSet(), and ElementBase::setElementPosition().
|
protectedinherited |
Definition at line 371 of file ElementBase.h.
Referenced by Bend2D::getEffectiveCenter(), Bend2D::initialise(), Bend2D::print(), ElementBase::setActionRange(), ElementBase::setCurrentSCoordinate(), and Bend2D::setupBendGeometry().
|
privateinherited |
Definition at line 381 of file ElementBase.h.
Referenced by ElementBase::getName(), and ElementBase::setName().
|
privateinherited |
ELEMEDGE attribute.
Definition at line 396 of file ElementBase.h.
Referenced by ElementBase::getElementPosition(), and ElementBase::setElementPosition().
|
staticprivateinherited |
Definition at line 383 of file ElementBase.h.
Referenced by ElementBase::getTypeString().
|
protectedinherited |
Definition at line 189 of file Component.h.
Referenced by Component::setExitFaceSlope().
|
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().
|
protectedinherited |
Definition at line 367 of file ElementBase.h.
Referenced by ElementBase::getMisalignment(), and ElementBase::setMisalignment().
|
protectedinherited |
Definition at line 192 of file Component.h.
Referenced by Monitor::apply(), Source::apply(), Probe::doGoOffline(), Cyclotron::finalise(), PluginElement::finalise(), Bend2D::finalise(), FlexibleCollimator::finalise(), Multipole::finalise(), finalise(), Vacuum::finalise(), Component::goOffline(), PluginElement::goOffline(), Degrader::goOffline(), FlexibleCollimator::goOffline(), RBend3D::goOffline(), RFCavity::goOffline(), Solenoid::goOffline(), Source::goOffline(), Vacuum::goOffline(), Component::goOnline(), Corrector::goOnline(), Bend2D::goOnline(), CCollimator::goOnline(), Degrader::goOnline(), FlexibleCollimator::goOnline(), Monitor::goOnline(), RBend3D::goOnline(), RFCavity::goOnline(), Solenoid::goOnline(), Source::goOnline(), TravelingWave::goOnline(), Vacuum::goOnline(), initialise(), Septum::initialise(), Cyclotron::initialise(), Multipole::initialise(), Component::Online(), Degrader::~Degrader(), FlexibleCollimator::~FlexibleCollimator(), and Vacuum::~Vacuum().
|
privateinherited |
The name of the outputfile.
Definition at line 401 of file ElementBase.h.
Referenced by ElementBase::getOutputFN(), and ElementBase::setOutputFN().
|
privateinherited |
Definition at line 392 of file ElementBase.h.
Referenced by ElementBase::ElementBase(), ElementBase::getParticleMatterInteraction(), ElementBase::hasParticleMatterInteraction(), and ElementBase::setParticleMatterInteraction().
|
private |
Definition at line 412 of file Ring.h.
Referenced by buildRingSections().
|
private |
Definition at line 363 of file Ring.h.
Referenced by getGeometry().
|
privateinherited |
Definition at line 394 of file ElementBase.h.
Referenced by ElementBase::fixPosition(), ElementBase::isPositioned(), ElementBase::releasePosition(), and ElementBase::setCSTrafoGlobal2Local().
|
mutableprivateinherited |
Definition at line 76 of file RCObject.h.
Referenced by RCObject::addReference(), RCObject::isShared(), and RCObject::removeReference().
|
protectedinherited |
Definition at line 191 of file Component.h.
Referenced by Corrector::apply(), Undulator::apply(), VerticalFFAMagnet::apply(), Bend2D::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(), VariableRFCavity::apply(), VariableRFCavityFringeField::apply(), Cyclotron::apply(), Degrader::applyToReferenceParticle(), Monitor::applyToReferenceParticle(), BendBase::calcDesignRadius(), BendBase::calcFieldAmplitude(), BendBase::calcGamma(), Bend2D::calculateBendAngle(), Bend2D::calculateRefTrajectory(), Monitor::driftToCorrectPositionAndSave(), VerticalFFAMagnet::finalise(), MultipoleT::finalise(), Offset::finalise(), SBend3D::finalise(), ScalingFFAMagnet::finalise(), VariableRFCavity::finalise(), RBend::findChordLength(), Bend2D::findIdealBendParameters(), Corrector::goOnline(), Degrader::goOnline(), Degrader::initialise(), PluginElement::initialise(), Vacuum::initialise(), Corrector::initialise(), Cyclotron::initialise(), Undulator::initialise(), VerticalFFAMagnet::initialise(), Drift::initialise(), FlexibleCollimator::initialise(), Marker::initialise(), Monitor::initialise(), Multipole::initialise(), MultipoleT::initialise(), Offset::initialise(), RBend3D::initialise(), RFCavity::initialise(), SBend3D::initialise(), ScalingFFAMagnet::initialise(), Solenoid::initialise(), Source::initialise(), TravelingWave::initialise(), VariableRFCavity::initialise(), VariableRFCavity::initNull(), Multipole::isFocusing(), MultipoleT::MultipoleT(), CCollimator::print(), FlexibleCollimator::print(), SBend3D::SBend3D(), ScalingFFAMagnet::ScalingFFAMagnet(), Corrector::setDesignEnergy(), setRefPartBunch(), Bend2D::setupPusher(), RFCavity::trackOnAxisParticle(), RBend3D::trackRefParticleThrough(), Vacuum::updateParticleAttributes(), and VerticalFFAMagnet::VerticalFFAMagnet().
|
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().
|
protectedinherited |
Definition at line 373 of file ElementBase.h.
Referenced by Bend2D::findIdealBendParameters(), ElementBase::getRotationAboutZ(), RBend3D::initialise(), Bend2D::print(), and ElementBase::setRotationAboutZ().
|
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().
|
mutableprotectedinherited |
Definition at line 364 of file ElementBase.h.
Referenced by Beamline::Beamline(), ElementBase::isSharable(), and ElementBase::makeSharable().
|
private |
Definition at line 401 of file Ring.h.
Referenced by getSymmetry(), lockRing(), and setSymmetry().
|
privateinherited |
Definition at line 386 of file ElementBase.h.
Referenced by ElementBase::getChannel(), and ElementBase::removeAttribute().
|
privateinherited |
Definition at line 388 of file ElementBase.h.
Referenced by ElementBase::getWake(), ElementBase::hasWake(), and ElementBase::setWake().
|
private |
Definition at line 389 of file Ring.h.
Referenced by apply(), and setRingAperture().