OPAL (Object Oriented Parallel Accelerator Library)  2024.1
OPAL
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
OutputPlane Class Reference

#include <OutputPlane.h>

Inheritance diagram for OutputPlane:
Inheritance graph
[legend]
Collaboration diagram for OutputPlane:
Collaboration graph
[legend]

Public Types

enum  algorithm { algorithm::RK4STEP, algorithm::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. More...
 
void recentre (Vector_t R, Vector_t P)
 
- Public Member Functions inherited from PluginElement
 PluginElement (const std::string &name)
 Constructor with given name. More...
 
 PluginElement ()
 
 PluginElement (const PluginElement &)
 
void operator= (const PluginElement &)=delete
 
virtual ~PluginElement ()
 
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)
 
int checkPoint (const double &x, const double &y) const
 Checks if coordinate is within element. More...
 
void save ()
 Save output. 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 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
 
- Public Member Functions inherited from Component
 Component (const std::string &name)
 Constructor with given name. More...
 
 Component ()
 
 Component (const Component &right)
 
virtual ~Component ()
 
EVector Efield (const Point3D &P) const
 Return the field in a point. More...
 
BVector Bfield (const Point3D &P) const
 Return the field in a point. More...
 
EVector Efield (const Point3D &P, double t) const
 Return the field in a point. More...
 
BVector Bfield (const Point3D &P, double t) const
 Return the field in a point. More...
 
EBVectors EBfield (const Point3D &P) const
 Return the field in a point. More...
 
EBVectors EBfield (const Point3D &P, double t) const
 Return the field in a point. More...
 
virtual bool apply (const Vector_t &R, const Vector_t &P, const double &t, Vector_t &E, Vector_t &B)
 
virtual bool getPotential (const Vector_t &, const double &, Vector_t &, double &)
 
virtual double getDesignEnergy () const
 
virtual void setDesignEnergy (const double &energy, bool changeable=true)
 
virtual void goOnline (const double &kineticEnergy)
 
virtual 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 &)
 
- Public Member Functions inherited from ElementBase
 ElementBase (const std::string &name)
 Constructor with given name. More...
 
 ElementBase ()
 
 ElementBase (const ElementBase &)
 
virtual ~ElementBase ()
 
virtual const std::string & getName () const
 Get element name. More...
 
virtual void setName (const std::string &name)
 Set element name. More...
 
std::string getTypeString () const
 
virtual double getArcLength () const
 Get arc length. More...
 
virtual double getElementLength () const
 Get design length. More...
 
virtual void setElementLength (double length)
 Set design length. More...
 
virtual void getElementDimensions (double &begin, double &end) const
 
virtual double getOrigin () const
 Get origin position. More...
 
virtual double getEntrance () const
 Get entrance position. More...
 
virtual double getExit () const
 Get exit position. More...
 
virtual Euclid3D getTransform (double fromS, double toS) const
 Get transform. More...
 
virtual Euclid3D getTransform (double s) const
 Get transform. More...
 
virtual Euclid3D getTotalTransform () const
 Get transform. More...
 
virtual Euclid3D getEntranceFrame () const
 Get transform. More...
 
virtual Euclid3D getExitFrame () const
 Get transform. More...
 
virtual Euclid3D getEntrancePatch () const
 Get patch. More...
 
virtual Euclid3D getExitPatch () const
 Get patch. More...
 
virtual double getAttribute (const std::string &aKey) const
 Get attribute value. More...
 
virtual bool hasAttribute (const std::string &aKey) const
 Test for existence of an attribute. More...
 
virtual void removeAttribute (const std::string &aKey)
 Remove an existing attribute. More...
 
virtual void setAttribute (const std::string &aKey, double val)
 Set value of an attribute. More...
 
virtual 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)
 
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
ParticleMatterInteractionHandler
getParticleMatterInteraction () const
 
virtual bool hasParticleMatterInteraction () const
 
void setCSTrafoGlobal2Local (const CoordinateSystemTrafo &ori)
 
CoordinateSystemTrafo getCSTrafoGlobal2Local () const
 
void releasePosition ()
 
void fixPosition ()
 
bool isPositioned () const
 
virtual CoordinateSystemTrafo getEdgeToBegin () const
 
virtual CoordinateSystemTrafo getEdgeToEnd () const
 
void setAperture (const ApertureType &type, const std::vector< double > &args)
 
std::pair< ApertureType,
std::vector< double > > 
getAperture () const
 
virtual bool isInside (const Vector_t &r) const
 
void setMisalignment (const CoordinateSystemTrafo &cst)
 
void getMisalignment (double &x, double &y, double &s) const
 
CoordinateSystemTrafo getMisalignment () const
 
void setActionRange (const std::queue< std::pair< double, double > > &range)
 
void setCurrentSCoordinate (double s)
 
void setRotationAboutZ (double rotation)
 Set rotation about z axis in bend frame. More...
 
double getRotationAboutZ () const
 
virtual BoundingBox getBoundingBoxInLabCoords () const
 
virtual int getRequiredNumberOfTimeSteps () const
 
void setOutputFN (std::string fn)
 Set output filename. More...
 
std::string getOutputFN () const
 Get output filename. More...
 
void setFlagDeleteOnTransverseExit (bool=true)
 
bool getFlagDeleteOnTransverseExit () const
 
void setElementPosition (double elemedge)
 Access to ELEMEDGE attribute. More...
 
double getElementPosition () const
 
bool isElementPositionSet () const
 
- Public Member Functions inherited from RCObject
int addReference () const
 Increment reference count. More...
 
int removeReference () const
 Decrement the reference count. More...
 
bool isShared () const
 Test for sharing. More...
 

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)
 

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
 

Additional Inherited Members

- Static Public Member Functions inherited from ElementBase
static std::string getTypeString (ElementType type)
 
- Protected Member Functions inherited from PluginElement
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...
 
- Protected Member Functions inherited from ElementBase
bool isInsideTransverse (const Vector_t &r) const
 
- Protected Member Functions inherited from RCObject
 RCObject ()
 Default constructor. More...
 
 RCObject (const RCObject &)
 Copy constructor. More...
 
virtual ~RCObject ()=0
 
RCObjectoperator= (const RCObject &right)
 
- Protected Attributes inherited from PluginElement
double rmin_m
 radius closest to the origin More...
 
Point geom_m [5]
 actual geometry positions with adaptive width such that each particle hits element once per turn 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 xstart_m
 input geometry positions More...
 
double xend_m
 
double ystart_m
 
double yend_m
 
double rstart_m
 
double rend_m
 
- Protected Attributes inherited from Component
double exit_face_slope_m
 
PartBunchBase< double, 3 > * RefPartBunch_m
 
bool online_m
 
- Protected Attributes inherited from ElementBase
bool shareFlag
 
CoordinateSystemTrafo csTrafoGlobal2Local_m
 
CoordinateSystemTrafo misalignment_m
 
std::pair< ApertureType,
std::vector< double > > 
aperture_m
 
double elementEdge_m
 
double rotationZAxis_m
 
- Static Protected Attributes inherited from Component
static const std::vector< double > defaultAperture_m
 

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

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

Enumerator
RK4STEP 
INTERPOLATION 

Definition at line 56 of file OutputPlane.h.

Constructor & Destructor Documentation

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

Constructor with given name.

Definition at line 29 of file OutputPlane.cpp.

OutputPlane::OutputPlane ( )

Default constructor (initialise to empty

Definition at line 26 of file OutputPlane.cpp.

Referenced by clone().

OutputPlane::OutputPlane ( const OutputPlane right)
OutputPlane::~OutputPlane ( )
virtual

Destructor

Definition at line 55 of file OutputPlane.cpp.

Member Function Documentation

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:

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(), horizontalExtent_m, INTERPOLATION, 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:

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:

double OutputPlane::distanceToPlane ( Vector_t  point) const
private
bool OutputPlane::doCheck ( PartBunchBase< double, 3 > *  bunch,
const int  turnnumber,
const double  t,
const double  tstep 
)
overrideprivatevirtual
void OutputPlane::doGoOffline ( )
overrideprivatevirtual

Hook for goOffline.

Reimplemented from PluginElement.

Definition at line 90 of file OutputPlane.cpp.

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

Here is the call graph for this function:

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(), horizontalExtent_m, normal_m, radialExtent_m, recentre_m, and verticalExtent_m.

Here is the call graph for this function:

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.

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.

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

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, and sqrt().

Referenced by RK4Step().

Here is the call graph for this function:

NullField& OutputPlane::getField ( )
inlineoverridevirtual

Returns empty field

Implements Component.

Definition at line 188 of file OutputPlane.h.

References nullfield_m.

const NullField& OutputPlane::getField ( ) const
inlineoverridevirtual

Returns empty field

Implements Component.

Definition at line 190 of file OutputPlane.h.

References nullfield_m.

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

Returns empty geometry

Implements ElementBase.

Definition at line 193 of file OutputPlane.h.

References geom_m.

const StraightGeometry& OutputPlane::getGeometry ( ) const
inlineoverridevirtual

Returns empty geometry

Implements ElementBase.

Definition at line 195 of file OutputPlane.h.

References geom_m.

Component * OutputPlane::getGlobalFieldMap ( ) const
inline

Get the field map

Definition at line 263 of file OutputPlane.h.

References field_m.

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

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.

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

double OutputPlane::getRadialExtent ( ) const
inline

Get the radial extent from the plane centre

Definition at line 320 of file OutputPlane.h.

References radialExtent_m.

int OutputPlane::getRecentre ( ) const
inline

Return the index of the recentring particle

Definition at line 328 of file OutputPlane.h.

References recentre_m.

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.

ElementType OutputPlane::getType ( ) const
overridevirtual

Get element type std::string.

Reimplemented from Component.

Definition at line 320 of file OutputPlane.cpp.

References OUTPUTPLANE.

int OutputPlane::getVerboseLevel ( ) const
inline

Get the horizontal extent from the plane centre

Definition at line 348 of file OutputPlane.h.

References verbose_m.

double OutputPlane::getVerticalExtent ( ) const
inline

Get the vertical extent from the plane centre

Definition at line 312 of file OutputPlane.h.

References verticalExtent_m.

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, and sqrt().

Referenced by checkOne().

Here is the call graph for this function:

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

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:

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, maxIterations_m, normal_m, RK4Step(), tolerance_m, and verbose_m.

Referenced by checkOne().

Here is the call graph for this function:

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

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

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

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

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:

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:

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

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:

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

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

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

Member Data Documentation

algorithm OutputPlane::algorithm_m
private

Definition at line 251 of file OutputPlane.h.

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

Vector_t OutputPlane::centre_m
private
Component* OutputPlane::field_m = NULL
private
StraightGeometry OutputPlane::geom_m
private

Definition at line 250 of file OutputPlane.h.

Referenced by getGeometry(), and OutputPlane().

double OutputPlane::horizontalExtent_m = -1.0
private
size_t OutputPlane::maxIterations_m = 10
private

Definition at line 247 of file OutputPlane.h.

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

int OutputPlane::nHits_m = 0
private

Definition at line 253 of file OutputPlane.h.

Referenced by doCheck().

Vector_t OutputPlane::normal_m
private
NullField OutputPlane::nullfield_m
private

Definition at line 249 of file OutputPlane.h.

Referenced by getField(), and OutputPlane().

double OutputPlane::radialExtent_m = -1.0
private

Definition at line 244 of file OutputPlane.h.

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

int OutputPlane::recentre_m = -1
private

Definition at line 252 of file OutputPlane.h.

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

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

Definition at line 260 of file OutputPlane.h.

double OutputPlane::tolerance_m = 1e-9
private

Definition at line 248 of file OutputPlane.h.

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

int OutputPlane::verbose_m = 0
private

Definition at line 254 of file OutputPlane.h.

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

double OutputPlane::verticalExtent_m = -1.0
private

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