OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
OutputPlane Class Reference

#include <OutputPlane.h>

Inheritance diagram for OutputPlane:
Collaboration diagram for OutputPlane:

Public Types

enum class  algorithm { RK4STEP , INTERPOLATION }

Public Member Functions

 OutputPlane (const std::string &name)
 OutputPlane ()
 OutputPlane (const OutputPlane &)
virtual ~OutputPlane ()
ElementBaseclone () const override
virtual void accept (BeamlineVisitor &) const override
ComponentgetGlobalFieldMap () const
void setGlobalFieldMap (Component *field)
Vector_t getNormal () const
void setNormal (Vector_t normal)
Vector_t getCentre () const
void setCentre (Vector_t centre)
double getTolerance () const
void setTolerance (double tolerance)
size_t getMaxIterations () const
void setMaxIterations (size_t max)
int getRecentre () const
void setRecentre (int willRecentre)
double getRadialExtent () const
void setRadialExtent (double r)
double getVerticalExtent () const
void setVerticalExtent (double z)
double getHorizontalExtent () const
void setHorizontalExtent (double width)
algorithm getAlgorithm () const
void setAlgorithm (algorithm alg)
int getVerboseLevel () const
void setVerboseLevel (int verbose)
bool checkOne (const int index, const double tstep, double chargeToMass, double &t, Vector_t &R, Vector_t &P)
NullFieldgetField () override
const NullFieldgetField () const override
StraightGeometrygetGeometry () override
const StraightGeometrygetGeometry () const override
void RK4Step (const double &tstep, const double &chargeToMass, const double &t, Vector_t &R, Vector_t &P) const
void operator= (const OutputPlane &)=delete
ElementType getType () const override
 Get element type std::string.
void recentre (Vector_t R, Vector_t P)
virtual bool apply (const Vector_t &R, const Vector_t &P, const double &t, Vector_t &E, Vector_t &B)
void setDimensions (double xstart, double xend, double ystart, double yend)
 Set dimensions and consistency checks.
bool check (PartBunchBase< double, 3 > *bunch, const int turnnumber, const double t, const double tstep)
int checkPoint (const double &x, const double &y) const
 Checks if coordinate is within element.
void save ()
 Save output.
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 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 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 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 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.
virtual void initialise (PartBunchBase< double, 3 > *bunch, double &startField, double &endField) override
 Pure virtual implementation of Component.
void initialise (PartBunchBase< double, 3 > *bunch)
virtual void finalise () final
virtual void goOffline () final
virtual bool bends () const override
virtual void getDimensions (double &zBegin, double &zEnd) const override
virtual bool apply (const size_t &i, const double &t, Vector_t &E, Vector_t &B) override
 Virtual implementation of Component.
virtual bool applyToReferenceParticle (const Vector_t &R, const Vector_t &P, const double &t, Vector_t &E, Vector_t &B) override
double getXStart () const
 Member variable access.
double getXEnd () const
double getYStart () const
double getYEnd () const
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 setGeom (const double dist)
 Sets geometry geom_m with element width dist.
void changeWidth (PartBunchBase< double, 3 > *bunch, int i, const double tstep, const double tangle)
 Change probe width depending on step size and angle of particle.
double calculateIncidentAngle (double xp, double yp) const
 Calculate angle of particle/bunch wrt to element.
bool isInsideTransverse (const Vector_t &r) const

Protected Attributes

double rmin_m
 radius closest to the origin
double A_m
double B_m
double R_m
double C_m
 Geometric lengths used in calculations.
std::unique_ptr< LossDataSinklossDs_m
 Pointer to Loss instance.
int numPassages_m = 0
 Number of turns (number of times save() method is called).
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
double xstart_m
 input geometry positions
double xend_m
double ystart_m
double yend_m
double rstart_m
double rend_m

Static Protected Attributes

static const std::vector< double > defaultAperture_m

Private Types

typedef std::function< bool(const double &, const size_t &, Vector_t &, Vector_t &)> function_t

Private Member Functions

virtual void doInitialise (PartBunchBase< double, 3 > *) override
 Initialise peakfinder file.
bool doPreCheck (PartBunchBase< double, 3 > *bunch) override
 Record probe hits when bunch particles pass.
virtual bool doCheck (PartBunchBase< double, 3 > *bunch, const int turnnumber, const double t, const double tstep) override
 Record probe hits when bunch particles pass.
virtual void doGoOffline () override
 Hook for goOffline.
void getDerivatives (const Vector_t &R, const Vector_t &P, const double &t, const double &chargeToMass, double *yp) const
double distanceToPlane (Vector_t point) const
void rk4Test (double tstep, double chargeToMass, double &t, Vector_t &R, Vector_t &P)
void interpolation (double &t, Vector_t &R, Vector_t &P)
bool getFieldsAtPoint (const Vector_t &R, const Vector_t &P, const double &t, Vector_t &Efield, Vector_t &Bfield)
bool preCheck (PartBunchBase< double, 3 > *bunch)
 Check if bunch is close to element.
bool finaliseCheck (PartBunchBase< double, 3 > *bunch, bool flagNeedUpdate)
 Finalise call after check.
virtual void doSetGeom ()
 Virtual hook for setGeom.
virtual bool doFinaliseCheck (PartBunchBase< double, 3 > *, bool flagNeedUpdate)
 Virtual hook for finaliseCheck.
virtual void doFinalise ()
 Virtual hook for finalise.

Private Attributes

Componentfield_m = NULL
Vector_t normal_m
Vector_t centre_m
double radialExtent_m = -1.0
double verticalExtent_m = -1.0
double horizontalExtent_m = -1.0
size_t maxIterations_m = 10
double tolerance_m = 1e-9
NullField nullfield_m
StraightGeometry geom_m
algorithm algorithm_m
int recentre_m = -1
int nHits_m = 0
int verbose_m = 0
std::unique_ptr< Stepper< function_t > > stepper_m
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

Class OutputPlane

Class OutputPlane defines an output plane, which enables output of tracking data at an arbitrary spatial plane. The crossing of the plane in a given time step is detected by (1) checking if the step is within c*dt of the plane and then (2) checking if an RK4 step crosses the plane.

If the track crosses, then we estimate the position of the track either by doing a linear interpolation between the initial position and the position of the test step; OR we do an iterative RK4 step, reducing the RK4 step size each time until we find crossing position to some tolerance or the maximum number of iterations is reached.

Additional features - we can recentre the plane on a particular track (for example, one might seek to make a plane perpendicular to a reference trajectory); we can limit the extent of the plane so only particles crossing within a certain distance are registered.

BUG: if the "Global" Opal tracking is not RK4, then there is a small possibility that the "Global" track and the OutputPlane step will be not perfectly aligned; tracks could register crossing twice or not crossing at all. An improved algorithm would be to use the "global" stepper or make some hack to consider e.g. two steps.

Definition at line 53 of file OutputPlane.h.

Member Typedef Documentation

◆ function_t

typedef std::function<bool(const double&, const size_t&, Vector_t&, Vector_t&)> OutputPlane::function_t
private

Definition at line 259 of file OutputPlane.h.

Member Enumeration Documentation

◆ algorithm

enum class OutputPlane::algorithm
strong
Enumerator
RK4STEP 
INTERPOLATION 

Definition at line 56 of file OutputPlane.h.

Constructor & Destructor Documentation

◆ OutputPlane() [1/3]

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

Constructor with given name.

Definition at line 29 of file OutputPlane.cpp.

References algorithm_m, maxIterations_m, name, PluginElement::PluginElement(), and verbose_m.

Referenced by operator=(), OutputPlane(), and OutputPlane().

Here is the call graph for this function:

◆ OutputPlane() [2/3]

OutputPlane::OutputPlane ( )

Default constructor (initialise to empty

Definition at line 26 of file OutputPlane.cpp.

References OutputPlane().

Referenced by clone().

Here is the call graph for this function:

◆ OutputPlane() [3/3]

OutputPlane::OutputPlane ( const OutputPlane & right)

Copy constructor

Definition at line 36 of file OutputPlane.cpp.

References algorithm_m, centre_m, field_m, geom_m, horizontalExtent_m, maxIterations_m, normal_m, nullfield_m, OutputPlane(), PluginElement::PluginElement(), radialExtent_m, recentre_m, tolerance_m, verbose_m, and verticalExtent_m.

Here is the call graph for this function:

◆ ~OutputPlane()

OutputPlane::~OutputPlane ( )
virtual

Destructor

Definition at line 55 of file OutputPlane.cpp.

Member Function Documentation

◆ accept()

void OutputPlane::accept ( BeamlineVisitor & visitor) const
overridevirtual

Apply visitor to output plane.

Implements ElementBase.

Definition at line 63 of file OutputPlane.cpp.

References BeamlineVisitor::visitOutputPlane().

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/2]

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

Reimplemented in Bend2D, Corrector, Cyclotron, Multipole, MultipoleT, RBend3D, RFCavity, Ring, SBend3D, ScalingFFAMagnet, Solenoid, TravelingWave, Undulator, VariableRFCavity, VariableRFCavityFringeField, and VerticalFFAMagnet.

Definition at line 110 of file Component.cpp.

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

Here is the call graph for this function:

◆ apply() [2/2]

bool PluginElement::apply ( const size_t & i,
const double & t,
Vector_t & E,
Vector_t & B )
overridevirtualinherited

Virtual implementation of Component.

Reimplemented from Component.

Definition at line 78 of file PluginElement.cpp.

Referenced by operator=().

◆ applyToReferenceParticle()

bool PluginElement::applyToReferenceParticle ( const Vector_t & R,
const Vector_t & P,
const double & t,
Vector_t & E,
Vector_t & B )
overridevirtualinherited

Reimplemented from Component.

Definition at line 82 of file PluginElement.cpp.

Referenced by operator=().

◆ bends()

bool PluginElement::bends ( ) const
overridevirtualinherited

Implements Component.

Definition at line 74 of file PluginElement.cpp.

Referenced by operator=().

◆ 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:

◆ calculateIncidentAngle()

double PluginElement::calculateIncidentAngle ( double xp,
double yp ) const
protectedinherited

Calculate angle of particle/bunch wrt to element.

Definition at line 151 of file PluginElement.cpp.

References A_m, and B_m.

Referenced by Probe::doCheck(), Stripper::doCheck(), and operator=().

◆ changeWidth()

void PluginElement::changeWidth ( PartBunchBase< double, 3 > * bunch,
int i,
const double tstep,
const double tangle )
protectedinherited

Change probe width depending on step size and angle of particle.

Definition at line 145 of file PluginElement.cpp.

References Physics::c, euclidean_norm(), Util::getGamma(), PartBunchBase< T, Dim >::P, and setGeom().

Referenced by Probe::doCheck(), Stripper::doCheck(), and operator=().

Here is the call graph for this function:

◆ check()

bool PluginElement::check ( PartBunchBase< double, 3 > * bunch,
const int turnnumber,
const double t,
const double tstep )
inherited

Check if bunch particles are lost

Definition at line 192 of file PluginElement.cpp.

References doCheck(), finaliseCheck(), and preCheck().

Referenced by operator=().

Here is the call graph for this function:

◆ checkOne()

bool OutputPlane::checkOne ( const int index,
const double tstep,
double chargeToMass,
double & t,
Vector_t & R,
Vector_t & P )

Check for plane crossing. If crossed fill t, R, P with the intercept.

  • index: Particle number of the particle crossing
  • tstep: Time step used by the global tracking
  • chargeToMass: charge to mass ratio of the particle, in units of (positron charge)/GeV/c^2
  • t: time of the initial particle [s]. Unchanged if no crossing is found, else filled with the estimated time of the particle at the plane crossing point.
  • R: position three-vector of the initial particle [m]. Unchanged if no crossing is found, else filled with the estimated position of the particle at the plane crossing point.
  • P: (gamma beta) three-vector of the initial particle []. Unchanged if no crossing is found, else filled with the estimated position of the particle at the plane crossing point.

The routine checks for crossing by performing a full RK4 step using the user-supplied time step. The distance to the plane is calculated. If the distance changes sign, the particle is assumed to cross; if the distance does not change sign, the particle is assumed to stay on the same side. Note that particles that step across the boundary and back again will not be registered as a crossing.

The intercept is found by iteratively doing RK4 steps. Successive step sizes are found by linear interpolation based on the distance from the plane and the time step. I could use the Steppers/RK4.h routines but these automatically update the global particle information and I don't want to do that, I just want a local stepping.

If recentre_m is positive then centre_m is set to the position of the n^th crossing particle and normal_m is set to be parallel to the momentum vector. recentre_m is set to -1. The idea is to generate output planes in the coordinate system of some trajectory (e.g. for studying beam transport/transfer matrix). Normally this will be the reference trajectory but it is possible to make it another trajectory if required.

If radialExtent_m is > 0, crossings more than radialExtent_m from the centre are ignored. If horizontalExtent_m is > 0, crossings more than horizontalExtent_m from the centre, in global x-y plane, are ignored. If verticalExtent_m is > 0, crossings more than verticalExtent_m in direction parallel to global z axis, are ignored.

Returns
True if the particle crosses the plane; else false.

Definition at line 167 of file OutputPlane.cpp.

References abs(), algorithm_m, Physics::c, centre_m, dot(), endl(), euclidean_norm(), ElementBase::getName(), gmsg, horizontalExtent_m, INTERPOLATION, normal_m, radialExtent_m, recentre(), recentre_m, RK4STEP, RK4Step(), rk4Test(), verbose_m, and verticalExtent_m.

Referenced by doCheck().

Here is the call graph for this function:

◆ checkPoint()

int PluginElement::checkPoint ( const double & x,
const double & y ) const
inherited

Checks if coordinate is within element.

Definition at line 211 of file PluginElement.cpp.

References geom_m.

Referenced by CCollimator::doCheck(), Probe::doCheck(), Stripper::doCheck(), and operator=().

◆ clone()

ElementBase * OutputPlane::clone ( ) const
overridevirtual

Inheritable copy operation

Implements ElementBase.

Definition at line 58 of file OutputPlane.cpp.

References ElementBase::ElementBase(), and OutputPlane().

Referenced by ParallelCyclotronTracker::visitOutputPlane().

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:

◆ distanceToPlane()

double OutputPlane::distanceToPlane ( Vector_t point) const
private

◆ doCheck()

bool OutputPlane::doCheck ( PartBunchBase< double, 3 > * bunch,
const int turnnumber,
const double t,
const double tstep )
overrideprivatevirtual

Record probe hits when bunch particles pass.

Implements PluginElement.

Definition at line 290 of file OutputPlane.cpp.

References PartBunchBase< T, Dim >::bunchNum, Physics::c, checkOne(), endl(), PartBunchBase< T, Dim >::getLocalNum(), Units::GeV2eV, gmsg, PartBunchBase< T, Dim >::ID, PluginElement::lossDs_m, PartBunchBase< T, Dim >::M, nHits_m, PartBunchBase< T, Dim >::P, PartBunchBase< T, Dim >::Q, Physics::q_e, PartBunchBase< T, Dim >::R, and verbose_m.

Here is the call graph for this function:

◆ doFinalise()

virtual void PluginElement::doFinalise ( )
inlineprivatevirtualinherited

Virtual hook for finalise.

Reimplemented in CCollimator, and Stripper.

Definition at line 102 of file PluginElement.h.

Referenced by finalise().

◆ doFinaliseCheck()

virtual bool PluginElement::doFinaliseCheck ( PartBunchBase< double, 3 > * ,
bool flagNeedUpdate )
inlineprivatevirtualinherited

Virtual hook for finaliseCheck.

Reimplemented in CCollimator, and Stripper.

Definition at line 100 of file PluginElement.h.

Referenced by finaliseCheck().

◆ doGoOffline()

void OutputPlane::doGoOffline ( )
overrideprivatevirtual

Hook for goOffline.

Reimplemented from PluginElement.

Definition at line 90 of file OutputPlane.cpp.

References endl(), ElementBase::getName(), and gmsg.

Here is the call graph for this function:

◆ doInitialise()

void OutputPlane::doInitialise ( PartBunchBase< double, 3 > * )
overrideprivatevirtual

Initialise peakfinder file.

Reimplemented from PluginElement.

Definition at line 67 of file OutputPlane.cpp.

References centre_m, endl(), field_m, gmsg, horizontalExtent_m, normal_m, radialExtent_m, recentre_m, and verticalExtent_m.

Here is the call graph for this function:

◆ doPreCheck()

bool OutputPlane::doPreCheck ( PartBunchBase< double, 3 > * bunch)
inlineoverrideprivatevirtual

Record probe hits when bunch particles pass.

Reimplemented from PluginElement.

Definition at line 344 of file OutputPlane.h.

◆ doSetGeom()

virtual void PluginElement::doSetGeom ( )
inlineprivatevirtualinherited

Virtual hook for setGeom.

Reimplemented in CCollimator.

Definition at line 96 of file PluginElement.h.

Referenced by setGeom().

◆ 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 PluginElement::finalise ( )
finalvirtualinherited

Implements Component.

Definition at line 60 of file PluginElement.cpp.

References doFinalise(), and Component::online_m.

Here is the call graph for this function:

◆ finaliseCheck()

bool PluginElement::finaliseCheck ( PartBunchBase< double, 3 > * bunch,
bool flagNeedUpdate )
inlineprivateinherited

Finalise call after check.

Definition at line 90 of file PluginElement.h.

References doFinaliseCheck().

Referenced by check().

Here is the call graph for this function:

◆ fixPosition()

void ElementBase::fixPosition ( )
inlineinherited

◆ getAlgorithm()

OutputPlane::algorithm OutputPlane::getAlgorithm ( ) const
inline

Get the algorithm used to interpolate from step to the plane

Definition at line 336 of file OutputPlane.h.

References algorithm_m.

◆ 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:

◆ 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:

◆ getCentre()

Vector_t OutputPlane::getCentre ( ) const
inline

Get the centre of the plane

Definition at line 280 of file OutputPlane.h.

References centre_m.

Referenced by ParallelCyclotronTracker::visitOutputPlane().

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

◆ getDerivatives()

void OutputPlane::getDerivatives ( const Vector_t & R,
const Vector_t & P,
const double & t,
const double & chargeToMass,
double * yp ) const
private

Definition at line 135 of file OutputPlane.cpp.

References Physics::c, field_m, Units::kG2T, Units::kV2V, and Units::mm2m.

Referenced by RK4Step().

◆ 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.

◆ getDimensions()

void PluginElement::getDimensions ( double & zBegin,
double & zEnd ) const
overridevirtualinherited

Implements Component.

Reimplemented in CCollimator.

Definition at line 206 of file PluginElement.cpp.

Referenced by operator=().

◆ 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:

◆ 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]

const NullField & OutputPlane::getField ( ) const
inlineoverridevirtual

Returns empty field

Implements Component.

Definition at line 190 of file OutputPlane.h.

References nullfield_m.

◆ getField() [2/2]

NullField & OutputPlane::getField ( )
inlineoverridevirtual

Returns empty field

Implements Component.

Definition at line 188 of file OutputPlane.h.

References nullfield_m.

◆ getFieldsAtPoint()

bool OutputPlane::getFieldsAtPoint ( const Vector_t & R,
const Vector_t & P,
const double & t,
Vector_t & Efield,
Vector_t & Bfield )
private

References Component::Bfield(), and Component::Efield().

Here is the call graph for this function:

◆ getFlagDeleteOnTransverseExit()

bool ElementBase::getFlagDeleteOnTransverseExit ( ) const
inlineinherited

◆ getGeometry() [1/2]

const StraightGeometry & OutputPlane::getGeometry ( ) const
inlineoverridevirtual

Returns empty geometry

Implements ElementBase.

Definition at line 195 of file OutputPlane.h.

References geom_m.

◆ getGeometry() [2/2]

StraightGeometry & OutputPlane::getGeometry ( )
inlineoverridevirtual

Returns empty geometry

Implements ElementBase.

Definition at line 193 of file OutputPlane.h.

References geom_m.

◆ getGlobalFieldMap()

Component * OutputPlane::getGlobalFieldMap ( ) const
inline

Get the field map

Definition at line 263 of file OutputPlane.h.

References Component::Component(), and field_m.

Here is the call graph for this function:

◆ getHorizontalExtent()

double OutputPlane::getHorizontalExtent ( ) const
inline

Get the horizontal extent from the plane centre

Definition at line 304 of file OutputPlane.h.

References horizontalExtent_m.

Referenced by ParallelCyclotronTracker::visitOutputPlane().

◆ getMaxIterations()

size_t OutputPlane::getMaxIterations ( ) const
inline

Get the maximum allowed iteratiosn when finding intersection

Definition at line 296 of file OutputPlane.h.

References maxIterations_m.

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

◆ getNormal()

Vector_t OutputPlane::getNormal ( ) const
inline

Get the normal to the plane

Definition at line 271 of file OutputPlane.h.

References normal_m.

Referenced by ParallelCyclotronTracker::visitOutputPlane().

◆ 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

◆ 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.

◆ getRadialExtent()

double OutputPlane::getRadialExtent ( ) const
inline

Get the radial extent from the plane centre

Definition at line 320 of file OutputPlane.h.

References radialExtent_m.

◆ getRecentre()

int OutputPlane::getRecentre ( ) const
inline

Return the index of the recentring particle

Definition at line 328 of file OutputPlane.h.

References recentre_m.

◆ getRequiredNumberOfTimeSteps()

int ElementBase::getRequiredNumberOfTimeSteps ( ) const
inlinevirtualinherited

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

Definition at line 603 of file ElementBase.h.

◆ getRotationAboutZ()

double ElementBase::getRotationAboutZ ( ) const
inlineinherited

Definition at line 574 of file ElementBase.h.

References rotationZAxis_m.

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

◆ getTolerance()

double OutputPlane::getTolerance ( ) const
inline

Get the tolerance, used when finding intersection with the plane

Definition at line 288 of file OutputPlane.h.

References tolerance_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:

◆ getType()

ElementType OutputPlane::getType ( ) const
overridevirtual

Get element type std::string.

Reimplemented from Component.

Definition at line 320 of file OutputPlane.cpp.

References OUTPUTPLANE.

◆ 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.

◆ getVerboseLevel()

int OutputPlane::getVerboseLevel ( ) const
inline

Get the horizontal extent from the plane centre

Definition at line 348 of file OutputPlane.h.

References verbose_m.

◆ getVerticalExtent()

double OutputPlane::getVerticalExtent ( ) const
inline

Get the vertical extent from the plane centre

Definition at line 312 of file OutputPlane.h.

References verticalExtent_m.

◆ 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.

◆ getXEnd()

◆ getXStart()

double PluginElement::getXStart ( ) const
inherited

◆ getYEnd()

◆ getYStart()

◆ goOffline()

void PluginElement::goOffline ( )
finalvirtualinherited

Reimplemented from Component.

Definition at line 66 of file PluginElement.cpp.

References doGoOffline(), lossDs_m, and Component::online_m.

Referenced by Septum::initialise(), and operator=().

Here is the call graph for this function:

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

◆ 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.

◆ initialise() [1/2]

void PluginElement::initialise ( PartBunchBase< double, 3 > * bunch)
inherited

Definition at line 52 of file PluginElement.cpp.

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

Here is the call graph for this function:

◆ initialise() [2/2]

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

Pure virtual implementation of Component.

Implements Component.

Reimplemented in Septum.

Definition at line 48 of file PluginElement.cpp.

References initialise().

Referenced by initialise(), Septum::operator=(), ParallelCyclotronTracker::visitCCollimator(), ParallelCyclotronTracker::visitOutputPlane(), ParallelCyclotronTracker::visitProbe(), and ParallelCyclotronTracker::visitStripper().

Here is the call graph for this function:

◆ interpolation()

void OutputPlane::interpolation ( double & t,
Vector_t & R,
Vector_t & P )
private

Definition at line 276 of file OutputPlane.cpp.

References Physics::c, centre_m, dot(), and normal_m.

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 OutputPlane::operator= ( const OutputPlane & )
delete

References OutputPlane().

Here is the call graph for this function:

◆ preCheck()

bool PluginElement::preCheck ( PartBunchBase< double, 3 > * bunch)
inlineprivateinherited

Check if bunch is close to element.

Definition at line 88 of file PluginElement.h.

References doPreCheck(), and preCheck().

Referenced by check(), and preCheck().

Here is the call graph for this function:

◆ recentre()

void OutputPlane::recentre ( Vector_t R,
Vector_t P )

Definition at line 314 of file OutputPlane.cpp.

References recentre_m, setCentre(), and setNormal().

Referenced by checkOne(), and setRecentre().

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.

◆ RK4Step()

void OutputPlane::RK4Step ( const double & tstep,
const double & chargeToMass,
const double & t,
Vector_t & R,
Vector_t & P ) const

Make an RK4Step

  • tstep: time step [s]
  • chargeToMass: chargeToMass ratio [m^2/s^2/GV]
  • t: t [s]
  • R: R [m]
  • P: beta gamma [] - note dimensionless

Definition at line 94 of file OutputPlane.cpp.

References getDerivatives().

Referenced by checkOne(), and rk4Test().

Here is the call graph for this function:

◆ rk4Test()

void OutputPlane::rk4Test ( double tstep,
double chargeToMass,
double & t,
Vector_t & R,
Vector_t & P )
private

Definition at line 247 of file OutputPlane.cpp.

References abs(), centre_m, dot(), endl(), field_m, gmsg, maxIterations_m, normal_m, RK4Step(), tolerance_m, and verbose_m.

Referenced by checkOne().

Here is the call graph for this function:

◆ save()

void PluginElement::save ( )
inherited

Save output.

Definition at line 225 of file PluginElement.cpp.

References OpalData::APPEND, OpalData::getInstance(), OpalData::getOpenMode(), lossDs_m, and numPassages_m.

Referenced by operator=().

Here is the call graph for this function:

◆ 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.

◆ setAlgorithm()

void OutputPlane::setAlgorithm ( OutputPlane::algorithm alg)
inline

Set the algorithm used to interpolate from step to the plane

Definition at line 340 of file OutputPlane.h.

References algorithm_m.

Referenced by OpalOutputPlane::update().

◆ 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:

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

◆ setCentre()

void OutputPlane::setCentre ( Vector_t centre)
inline

Set the centre of the plane

Definition at line 284 of file OutputPlane.h.

References centre_m.

Referenced by recentre(), and OpalOutputPlane::update().

◆ setCSTrafoGlobal2Local()

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

◆ setCurrentSCoordinate()

void ElementBase::setCurrentSCoordinate ( double s)
inherited

Definition at line 278 of file ElementBase.cpp.

◆ 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.

◆ setDimensions()

void PluginElement::setDimensions ( double xstart,
double xend,
double ystart,
double yend )
inherited

Set dimensions and consistency checks.

Definition at line 86 of file PluginElement.cpp.

References A_m, B_m, C_m, R_m, rend_m, rmin_m, rstart_m, xend_m, xstart_m, yend_m, and ystart_m.

Referenced by CCollimator::operator=(), operator=(), PluginElement(), PluginElement(), OpalProbe::update(), OpalSeptum::update(), and OpalStripper::update().

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

◆ setExitFaceSlope()

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

Definition at line 225 of file Component.h.

References exit_face_slope_m.

◆ setFlagDeleteOnTransverseExit()

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

Definition at line 608 of file ElementBase.h.

References deleteOnTransverseExit_m.

Referenced by OpalElement::update().

◆ setGeom()

void PluginElement::setGeom ( const double dist)
protectedinherited

Sets geometry geom_m with element width dist.

Definition at line 116 of file PluginElement.cpp.

References doSetGeom(), geom_m, xend_m, xstart_m, yend_m, and ystart_m.

Referenced by CCollimator::CCollimator(), CCollimator::CCollimator(), changeWidth(), operator=(), Septum::Septum(), CCollimator::setDimensions(), and Septum::setWidth().

Here is the call graph for this function:

◆ setGlobalFieldMap()

void OutputPlane::setGlobalFieldMap ( Component * field)
inline

Set the field map

Definition at line 267 of file OutputPlane.h.

References Component::Component(), and field_m.

Referenced by ParallelCyclotronTracker::visitOutputPlane().

Here is the call graph for this function:

◆ setHorizontalExtent()

void OutputPlane::setHorizontalExtent ( double width)
inline

Set the horizontal extent from the plane centre

Definition at line 308 of file OutputPlane.h.

References horizontalExtent_m.

Referenced by OpalOutputPlane::update().

◆ setMaxIterations()

void OutputPlane::setMaxIterations ( size_t max)
inline

Set the maximum allowed iteratiosn when finding intersection

Definition at line 300 of file OutputPlane.h.

References max(), and maxIterations_m.

Here is the call graph for this function:

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

◆ setNormal()

void OutputPlane::setNormal ( Vector_t normal)
inline

Set the normal to the plane

Definition at line 275 of file OutputPlane.h.

References euclidean_norm(), and normal_m.

Referenced by recentre(), and OpalOutputPlane::update().

Here is the call graph for this function:

◆ setOutputFN()

◆ setParticleMatterInteraction()

◆ setRadialExtent()

void OutputPlane::setRadialExtent ( double r)
inline

Set the radial extent from the centre

Definition at line 324 of file OutputPlane.h.

References radialExtent_m.

Referenced by OpalOutputPlane::update().

◆ setRecentre()

void OutputPlane::setRecentre ( int willRecentre)
inline

Set the index of the recentring particle

Definition at line 332 of file OutputPlane.h.

References recentre(), and recentre_m.

Referenced by OpalOutputPlane::update().

Here is the call graph for this function:

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

◆ setTolerance()

void OutputPlane::setTolerance ( double tolerance)
inline

Set the tolerance, used when finding intersection with the plane

Definition at line 292 of file OutputPlane.h.

References tolerance_m.

Referenced by OpalOutputPlane::update().

◆ setVerboseLevel()

void OutputPlane::setVerboseLevel ( int verbose)
inline

Set the verbose level

set to 0 for silent running; 1 when hit detected; 2 when second check passes; 3 when first check passes; 4 to output every step

Definition at line 352 of file OutputPlane.h.

References verbose_m.

Referenced by OpalOutputPlane::update().

◆ setVerticalExtent()

void OutputPlane::setVerticalExtent ( double z)
inline

Set the vertical extent from the plane centre

Definition at line 316 of file OutputPlane.h.

References verticalExtent_m.

Referenced by OpalOutputPlane::update().

◆ setWake()

void ElementBase::setWake ( WakeFunction * wf)
virtualinherited

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

Member Data Documentation

◆ A_m

double PluginElement::A_m
protectedinherited

◆ actionRange_m

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

Definition at line 399 of file ElementBase.h.

Referenced by setActionRange().

◆ algorithm_m

algorithm OutputPlane::algorithm_m
private

Definition at line 251 of file OutputPlane.h.

Referenced by checkOne(), getAlgorithm(), OutputPlane(), OutputPlane(), and setAlgorithm().

◆ aperture_m

◆ B_m

double PluginElement::B_m
protectedinherited

◆ bgeometry_m

BoundaryGeometry* ElementBase::bgeometry_m
privateinherited

◆ C_m

double PluginElement::C_m
protectedinherited

Geometric lengths used in calculations.

Definition at line 118 of file PluginElement.h.

Referenced by Probe::doCheck(), Stripper::doCheck(), and setDimensions().

◆ centre_m

Vector_t OutputPlane::centre_m
private

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

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

◆ field_m

Component* OutputPlane::field_m = NULL
private

◆ geom_m

StraightGeometry OutputPlane::geom_m
private

Definition at line 250 of file OutputPlane.h.

Referenced by getGeometry(), getGeometry(), and OutputPlane().

◆ horizontalExtent_m

double OutputPlane::horizontalExtent_m = -1.0
private

◆ lossDs_m

std::unique_ptr<LossDataSink> PluginElement::lossDs_m
protectedinherited

◆ maxIterations_m

size_t OutputPlane::maxIterations_m = 10
private

Definition at line 247 of file OutputPlane.h.

Referenced by getMaxIterations(), OutputPlane(), OutputPlane(), rk4Test(), and setMaxIterations().

◆ misalignment_m

CoordinateSystemTrafo ElementBase::misalignment_m
protectedinherited

Definition at line 367 of file ElementBase.h.

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

◆ nHits_m

int OutputPlane::nHits_m = 0
private

Definition at line 253 of file OutputPlane.h.

Referenced by doCheck().

◆ normal_m

Vector_t OutputPlane::normal_m
private

◆ nullfield_m

NullField OutputPlane::nullfield_m
private

Definition at line 249 of file OutputPlane.h.

Referenced by getField(), getField(), and OutputPlane().

◆ numPassages_m

int PluginElement::numPassages_m = 0
protectedinherited

Number of turns (number of times save() method is called).

Definition at line 121 of file PluginElement.h.

Referenced by save().

◆ 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

◆ positionIsFixed

bool ElementBase::positionIsFixed
privateinherited

◆ R_m

double PluginElement::R_m
protectedinherited

Definition at line 118 of file PluginElement.h.

Referenced by Probe::doCheck(), Stripper::doCheck(), and setDimensions().

◆ radialExtent_m

double OutputPlane::radialExtent_m = -1.0
private

Definition at line 244 of file OutputPlane.h.

Referenced by checkOne(), doInitialise(), getRadialExtent(), OutputPlane(), and setRadialExtent().

◆ recentre_m

int OutputPlane::recentre_m = -1
private

Definition at line 252 of file OutputPlane.h.

Referenced by checkOne(), doInitialise(), getRecentre(), OutputPlane(), recentre(), and setRecentre().

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

◆ rend_m

double PluginElement::rend_m
protectedinherited

Definition at line 114 of file PluginElement.h.

Referenced by Probe::doInitialise(), Probe::doPreCheck(), and setDimensions().

◆ rmin_m

double PluginElement::rmin_m
protectedinherited

radius closest to the origin

Definition at line 116 of file PluginElement.h.

Referenced by Probe::doInitialise(), CCollimator::doPreCheck(), Probe::doPreCheck(), Stripper::doPreCheck(), and setDimensions().

◆ rotationZAxis_m

double ElementBase::rotationZAxis_m
protectedinherited

◆ rstart_m

double PluginElement::rstart_m
protectedinherited

Definition at line 113 of file PluginElement.h.

Referenced by Septum::doPreCheck(), and setDimensions().

◆ shareFlag

bool ElementBase::shareFlag
mutableprotectedinherited

◆ stepper_m

std::unique_ptr<Stepper<function_t> > OutputPlane::stepper_m
private

Definition at line 260 of file OutputPlane.h.

◆ tolerance_m

double OutputPlane::tolerance_m = 1e-9
private

Definition at line 248 of file OutputPlane.h.

Referenced by getTolerance(), OutputPlane(), rk4Test(), and setTolerance().

◆ userAttribs

AttributeSet ElementBase::userAttribs
privateinherited

Definition at line 386 of file ElementBase.h.

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

◆ verbose_m

int OutputPlane::verbose_m = 0
private

◆ verticalExtent_m

double OutputPlane::verticalExtent_m = -1.0
private

◆ wake_m

WakeFunction* ElementBase::wake_m
privateinherited

Definition at line 388 of file ElementBase.h.

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

◆ xend_m

double PluginElement::xend_m
protectedinherited

◆ xstart_m

double PluginElement::xstart_m
protectedinherited

input geometry positions

Definition at line 109 of file PluginElement.h.

Referenced by CCollimator::CCollimator(), Septum::doCheck(), getXStart(), PluginElement(), setDimensions(), and setGeom().

◆ yend_m

double PluginElement::yend_m
protectedinherited

◆ ystart_m

double PluginElement::ystart_m
protectedinherited

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