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

#include <OutputPlane.h>

Inheritance diagram for OutputPlane:
Inheritance graph
Collaboration diagram for OutputPlane:
Collaboration graph

Public Types

enum class  algorithm { RK4STEP , INTERPOLATION }
 

Public Member Functions

 OutputPlane (const std::string &name)
 Constructor with given name. More...
 
 OutputPlane ()
 Default constructor (initialise to empty. More...
 
 OutputPlane (const OutputPlane &)
 Copy constructor. More...
 
virtual ~OutputPlane ()
 Destructor. More...
 
ElementBaseclone () const override
 Inheritable copy operation. More...
 
virtual void accept (BeamlineVisitor &) const override
 Apply visitor to output plane. More...
 
ComponentgetGlobalFieldMap () const
 Get the field map. More...
 
void setGlobalFieldMap (Component *field)
 Set the field map. More...
 
Vector_t getNormal () const
 Get the normal to the plane. More...
 
void setNormal (Vector_t normal)
 Set the normal to the plane. More...
 
Vector_t getCentre () const
 Get the centre of the plane. More...
 
void setCentre (Vector_t centre)
 Set the centre of the plane. More...
 
double getTolerance () const
 Get the tolerance, used when finding intersection with the plane. More...
 
void setTolerance (double tolerance)
 Set the tolerance, used when finding intersection with the plane. More...
 
size_t getMaxIterations () const
 Get the maximum allowed iteratiosn when finding intersection. More...
 
void setMaxIterations (size_t max)
 Set the maximum allowed iteratiosn when finding intersection. More...
 
int getRecentre () const
 Return the index of the recentring particle. More...
 
void setRecentre (int willRecentre)
 Set the index of the recentring particle. More...
 
double getRadialExtent () const
 Get the radial extent from the plane centre. More...
 
void setRadialExtent (double r)
 Set the radial extent from the centre. More...
 
double getVerticalExtent () const
 Get the vertical extent from the plane centre. More...
 
void setVerticalExtent (double z)
 Set the vertical extent from the plane centre. More...
 
double getHorizontalExtent () const
 Get the horizontal extent from the plane centre. More...
 
void setHorizontalExtent (double width)
 Set the horizontal extent from the plane centre. More...
 
algorithm getAlgorithm () const
 Get the algorithm used to interpolate from step to the plane. More...
 
void setAlgorithm (algorithm alg)
 Set the algorithm used to interpolate from step to the plane. More...
 
int getVerboseLevel () const
 Get the horizontal extent from the plane centre. More...
 
void setVerboseLevel (int verbose)
 Set the verbose level. More...
 
bool checkOne (const int index, const double tstep, double chargeToMass, double &t, Vector_t &R, Vector_t &P)
 Check for plane crossing. More...
 
NullFieldgetField () override
 Returns empty field. More...
 
const NullFieldgetField () const override
 Returns empty field. More...
 
StraightGeometrygetGeometry () override
 Returns empty geometry. More...
 
const StraightGeometrygetGeometry () const override
 Returns empty geometry. More...
 
void RK4Step (const double &tstep, const double &chargeToMass, const double &t, Vector_t &R, Vector_t &P) const
 Make an RK4Step. More...
 
void operator= (const OutputPlane &)=delete
 
ElementType getType () const override
 Get element type std::string. More...
 
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. More...
 
bool check (PartBunchBase< double, 3 > *bunch, const int turnnumber, const double t, const double tstep)
 Check if bunch particles are lost. More...
 
int checkPoint (const double &x, const double &y) const
 Checks if coordinate is within element. More...
 
void save ()
 Save output. 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 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 bool Online ()
 
virtual const ElementBasegetDesign () 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 ChannelgetChannel (const std::string &aKey, bool create=false)
 Construct a read/write channel. More...
 
virtual const ConstChannelgetConstChannel (const std::string &aKey) const
 Construct a read-only channel. More...
 
virtual ElementBasecopyStructure ()
 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 BoundaryGeometrygetBoundaryGeometry () 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 WakeFunctiongetWake () const
 return the attached wake object if there is any More...
 
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. 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...
 
virtual void initialise (PartBunchBase< double, 3 > *bunch, double &startField, double &endField) override
 Pure virtual implementation of Component. More...
 
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. More...
 
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. More...
 
double getXEnd () const
 
double getYStart () const
 
double getYEnd () const
 
void setElementPosition (double elemedge)
 Access to ELEMEDGE attribute. More...
 
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. More...
 
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. More...
 
double calculateIncidentAngle (double xp, double yp) const
 Calculate angle of particle/bunch wrt to element. More...
 
bool isInsideTransverse (const Vector_t &r) const
 

Protected Attributes

double rmin_m
 radius closest to the origin More...
 
double A_m
 
double B_m
 
double R_m
 
double C_m
 Geometric lengths used in calculations. More...
 
std::unique_ptr< LossDataSinklossDs_m
 Pointer to Loss instance. More...
 
int numPassages_m = 0
 Number of turns (number of times save() method is called) More...
 
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 More...
 
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. More...
 
bool doPreCheck (PartBunchBase< double, 3 > *bunch) override
 Record probe hits when bunch particles pass. More...
 
virtual bool doCheck (PartBunchBase< double, 3 > *bunch, const int turnnumber, const double t, const double tstep) override
 Record probe hits when bunch particles pass. More...
 
virtual void doGoOffline () override
 Hook for goOffline. More...
 
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. More...
 
bool finaliseCheck (PartBunchBase< double, 3 > *bunch, bool flagNeedUpdate)
 Finalise call after check. More...
 
virtual void doSetGeom ()
 Virtual hook for setGeom. More...
 
virtual bool doFinaliseCheck (PartBunchBase< double, 3 > *, bool flagNeedUpdate)
 Virtual hook for finaliseCheck. More...
 
virtual void doFinalise ()
 Virtual hook for finalise. More...
 

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

◆ OutputPlane() [2/3]

OutputPlane::OutputPlane ( )

Default constructor (initialise to empty.

Definition at line 26 of file OutputPlane.cpp.

Referenced by clone().

◆ OutputPlane() [3/3]

OutputPlane::OutputPlane ( const OutputPlane right)

◆ ~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 RCObject::refCount.

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

◆ apply() [1/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.

◆ apply() [2/2]

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

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

◆ bends()

bool PluginElement::bends ( ) const
overridevirtualinherited

Implements Component.

Definition at line 74 of file PluginElement.cpp.

◆ Bfield() [1/2]

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

Return the field in a point.

Definition at line 202 of file Component.h.

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

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 Component::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 PluginElement::A_m, abs(), and PluginElement::B_m.

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

Here is the call graph for this function:

◆ 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, PluginElement::setGeom(), and sqrt().

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

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 PluginElement::doCheck(), PluginElement::finaliseCheck(), and PluginElement::preCheck().

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, interpolation(), normal_m, Attrib::Distribution::R, 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 PluginElement::geom_m, and Point::y.

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

◆ clone()

ElementBase * OutputPlane::clone ( ) const
overridevirtual

Inheritable copy operation.

Implements ElementBase.

Definition at line 58 of file OutputPlane.cpp.

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

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

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

◆ 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 PluginElement::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 PluginElement::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, ElementBase::getName(), 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 PluginElement::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 Component::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 Component::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 Component::getField().

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 Component::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 PluginElement::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 PluginElement::doFinaliseCheck().

Referenced by PluginElement::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 ElementBase::aperture_m.

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

◆ getArcLength()

double ElementBase::getArcLength ( ) const
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().

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 ElementBase::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 ElementBase::bgeometry_m.

◆ getBoundingBoxInLabCoords()

BoundingBox ElementBase::getBoundingBoxInLabCoords ( ) const
virtualinherited

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

Referenced by ElementBase::getAttribute(), and ElementBase::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 Component::apply(), Physics::c, field_m, Units::kG2T, Units::kV2V, Units::mm2m, Attrib::Distribution::R, and sqrt().

Referenced by RK4Step().

Here is the call graph for this function:

◆ getDesign()

const ElementBase & Component::getDesign ( ) const
virtualinherited

Return design element.

Definition at line 67 of file Component.cpp.

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

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

Referenced by ElementBase::getBoundingBoxInLabCoords().

Here is the call graph for this function:

◆ getElementDimensions()

virtual void ElementBase::getElementDimensions ( double &  begin,
double &  end 
) const
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().

Here is the call graph for this function:

◆ getElementLength()

double ElementBase::getElementLength ( ) const
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().

Here is the call graph for this function:

◆ getElementPosition()

double ElementBase::getElementPosition ( ) const
inlineinherited

Definition at line 589 of file ElementBase.h.

References ElementBase::elemedgeSet_m, ElementBase::elementPosition_m, and ElementBase::getName().

Here is the call graph for this function:

◆ getEntrance()

double ElementBase::getEntrance ( ) const
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().

Here is the call graph for this function:

◆ getEntranceFrame()

Euclid3D ElementBase::getEntranceFrame ( ) const
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().

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 ElementBase::getGeometry().

Here is the call graph for this function:

◆ getExit()

double ElementBase::getExit ( ) const
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().

Here is the call graph for this function:

◆ getExitFrame()

Euclid3D ElementBase::getExitFrame ( ) const
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().

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

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

◆ 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 ElementBase::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 ElementBase::elementID.

Referenced by Ring::appendElement(), Cyclotron::apply(), Ring::apply(), Bend2D::calculateRefTrajectory(), checkOne(), Vacuum::checkPressure(), Stripper::doCheck(), CCollimator::doFinalise(), Stripper::doFinalise(), doGoOffline(), Probe::doGoOffline(), 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(), Ring::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().

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

Definition at line 423 of file ElementBase.h.

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

Referenced by BeamlineGeometry::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 ElementBase::getName(), and ElementBase::outputfn_m.

Referenced by Probe::doInitialise(), PluginElement::initialise(), Cyclotron::initialise(), FlexibleCollimator::initialise(), Monitor::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

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

Definition at line 439 of file ElementBase.h.

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

Referenced by BeamlineGeometry::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 >.

Definition at line 435 of file ElementBase.h.

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

Referenced by BeamlineGeometry::getTransform(), and 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 >.

Definition at line 443 of file ElementBase.h.

References ElementBase::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 ElementBase::getType(), and ElementBase::getTypeString().

Referenced by ParallelCyclotronTracker::execute(), ElementBase::getTypeString(), Vacuum::print(), 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 ElementBase::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 ElementBase::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 PluginElement::doGoOffline(), PluginElement::lossDs_m, and Component::online_m.

Referenced by Septum::initialise().

Here is the call graph for this function:

◆ goOnline()

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

◆ 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 ElementBase::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 ElementBase::bgeometry_m.

◆ hasParticleMatterInteraction()

bool ElementBase::hasParticleMatterInteraction ( ) const
inlinevirtualinherited

Definition at line 487 of file ElementBase.h.

References ElementBase::parmatint_m.

◆ hasWake()

bool ElementBase::hasWake ( ) const
inlinevirtualinherited

Definition at line 471 of file ElementBase.h.

References ElementBase::wake_m.

◆ initialise() [1/2]

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

◆ 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, and Septum.

Definition at line 48 of file PluginElement.cpp.

References PluginElement::initialise().

Referenced by PluginElement::initialise(), 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(), normal_m, Attrib::Distribution::R, and sqrt().

Referenced by checkOne().

Here is the call graph for this function:

◆ isElementPositionSet()

bool ElementBase::isElementPositionSet ( ) const
inlineinherited

Definition at line 598 of file ElementBase.h.

References ElementBase::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 ElementBase::getElementLength(), and ElementBase::isInsideTransverse().

Here is the call graph for this function:

◆ isInsideTransverse()

◆ isPositioned()

bool ElementBase::isPositioned ( ) const
inlineinherited

◆ isSharable()

bool ElementBase::isSharable ( ) const
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().

◆ isShared()

bool RCObject::isShared ( ) const
inlineinherited

Test for sharing.

Definition at line 93 of file RCObject.h.

References RCObject::refCount.

◆ makeSharable()

void ElementBase::makeSharable ( )
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().

◆ Online()

bool Component::Online ( )
virtualinherited

Definition at line 91 of file Component.cpp.

References Component::online_m.

◆ operator=()

void OutputPlane::operator= ( const OutputPlane )
delete

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

Referenced by PluginElement::check().

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 Attrib::Distribution::R, recentre_m, setCentre(), and setNormal().

Referenced by checkOne(), and setRecentre().

Here is the call graph for this function:

◆ releasePosition()

void ElementBase::releasePosition ( )
inlineinherited

◆ removeAttribute()

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

Remove an existing attribute.

Definition at line 212 of file ElementBase.cpp.

References AttributeSet::removeAttribute(), and ElementBase::userAttribs.

Here is the call graph for this function:

◆ removeReference()

int RCObject::removeReference ( ) const
inlineinherited

Decrement the reference count.

Definition at line 88 of file RCObject.h.

References RCObject::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(), Component::apply(), centre_m, dot(), endl(), field_m, gmsg, maxIterations_m, normal_m, Attrib::Distribution::R, 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(), PluginElement::lossDs_m, and PluginElement::numPassages_m.

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 ElementBase::actionRange_m, and ElementBase::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 endl(), ElementBase::getChannel(), and Channel::isSettable().

Referenced by ElementBase::update(), 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 ElementBase::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.

References ElementBase::actionRange_m, and ElementBase::elementEdge_m.

◆ setDesignEnergy()

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

Reimplemented in Corrector, RFCavity, and BendBase.

Definition at line 228 of file Component.h.

◆ setDimensions()

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

◆ setElementLength()

◆ setElementPosition()

void ElementBase::setElementPosition ( double  elemedge)
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().

◆ setExitFaceSlope()

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

Definition at line 225 of file Component.h.

References Component::exit_face_slope_m.

◆ setFlagDeleteOnTransverseExit()

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

Definition at line 608 of file ElementBase.h.

References ElementBase::deleteOnTransverseExit_m.

Referenced by OpalElement::update().

◆ setGeom()

void PluginElement::setGeom ( const double  dist)
protectedinherited

◆ setGlobalFieldMap()

void OutputPlane::setGlobalFieldMap ( Component field)
inline

Set the field map.

Definition at line 267 of file OutputPlane.h.

References field_m.

Referenced by ParallelCyclotronTracker::visitOutputPlane().

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

References AttributeSet::begin(), AttributeSet::end(), and ElementBase::setAttribute().

Referenced by Monitor::driftToCorrectPositionAndSave().

Here is the call graph for this function:

Member Data Documentation

◆ A_m

double PluginElement::A_m
protectedinherited

◆ actionRange_m

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

◆ algorithm_m

algorithm OutputPlane::algorithm_m
private

Definition at line 251 of file OutputPlane.h.

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

◆ aperture_m

◆ B_m

double PluginElement::B_m
protectedinherited

◆ bgeometry_m

◆ 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 PluginElement::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::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 ElementBase::setName().

◆ elementPosition_m

double ElementBase::elementPosition_m
privateinherited

ELEMEDGE attribute.

Definition at line 396 of file ElementBase.h.

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

◆ elementTypeToString_s

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

Definition at line 383 of file ElementBase.h.

Referenced by ElementBase::getTypeString().

◆ exit_face_slope_m

double Component::exit_face_slope_m
protectedinherited

Definition at line 189 of file Component.h.

Referenced by Component::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(), 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(), rk4Test(), and setMaxIterations().

◆ misalignment_m

CoordinateSystemTrafo ElementBase::misalignment_m
protectedinherited

Definition at line 367 of file ElementBase.h.

Referenced by ElementBase::getMisalignment(), and ElementBase::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(), 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 PluginElement::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 ElementBase::setOutputFN().

◆ parmatint_m

◆ positionIsFixed

bool ElementBase::positionIsFixed
privateinherited

◆ R_m

double PluginElement::R_m
protectedinherited

◆ 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

◆ RefPartBunch_m

PartBunchBase<double, 3>* Component::RefPartBunch_m
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(), Ring::setRefPartBunch(), Bend2D::setupPusher(), RFCavity::trackOnAxisParticle(), RBend3D::trackRefParticleThrough(), Vacuum::updateParticleAttributes(), and VerticalFFAMagnet::VerticalFFAMagnet().

◆ rend_m

double PluginElement::rend_m
protectedinherited

◆ rmin_m

double PluginElement::rmin_m
protectedinherited

◆ 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 PluginElement::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 ElementBase::removeAttribute().

◆ verbose_m

int OutputPlane::verbose_m = 0
private

Definition at line 254 of file OutputPlane.h.

Referenced by checkOne(), doCheck(), getVerboseLevel(), OutputPlane(), rk4Test(), and setVerboseLevel().

◆ 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(), ElementBase::hasWake(), and ElementBase::setWake().

◆ xend_m

◆ xstart_m

double PluginElement::xstart_m
protectedinherited

◆ yend_m

◆ ystart_m


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