OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
|
Track using thick-lens algorithm. More...
#include <ThickTracker.h>
Public Member Functions | |
ThickTracker (const Beamline &bl, const PartData &data, bool revBeam, bool revTrack) | |
Constructor. More... | |
ThickTracker (const Beamline &bl, PartBunchBase< double, 3 > *bunch, Beam &beam, DataSink &ds, const PartData &data, bool revBeam, bool revTrack, const std::vector< unsigned long long > &maxSTEPS, double zstart, const std::vector< double > &zstop, const std::vector< double > &dt, const int &truncOrder) | |
Constructor. More... | |
virtual | ~ThickTracker () |
virtual void | execute () |
Apply the algorithm to the top-level beamline. More... | |
virtual void | visitBeamline (const Beamline &) |
Apply the algorithm to a beam line. More... | |
virtual void | visitCCollimator (const CCollimator &) |
Apply the algorithm to a collimator. More... | |
virtual void | visitCorrector (const Corrector &) |
Apply the algorithm to a closed orbit corrector. More... | |
virtual void | visitDegrader (const Degrader &) |
Apply the algorithm to a degrader. More... | |
virtual void | visitDrift (const Drift &) |
Apply the algorithm to a drift space. More... | |
virtual void | visitFlexibleCollimator (const FlexibleCollimator &) |
Apply the algorithm to a flexible collimator. More... | |
virtual void | visitMarker (const Marker &) |
Apply the algorithm to a marker. More... | |
virtual void | visitMonitor (const Monitor &) |
Apply the algorithm to a beam position monitor. More... | |
virtual void | visitMultipole (const Multipole &) |
Apply the algorithm to a multipole. More... | |
virtual void | visitProbe (const Probe &) |
Apply the algorithm to a probe. More... | |
virtual void | visitRBend (const RBend &) |
Apply the algorithm to a rectangular bend. More... | |
virtual void | visitRFCavity (const RFCavity &) |
Apply the algorithm to a RF cavity. More... | |
virtual void | visitSBend (const SBend &) |
Apply the algorithm to a sector bend. More... | |
virtual void | visitSeptum (const Septum &) |
Apply the algorithm to a septum. More... | |
virtual void | visitSolenoid (const Solenoid &) |
Apply the algorithm to a solenoid. More... | |
virtual void | visitTravelingWave (const TravelingWave &) |
Apply the algorithm to a traveling wave. More... | |
virtual void | visitVacuum (const Vacuum &) |
Apply the algorithm to a vacuum space. More... | |
void | prepareSections () |
![]() | |
Tracker (const Beamline &, const PartData &, bool backBeam, bool backTrack) | |
Constructor. More... | |
Tracker (const Beamline &, PartBunchBase< double, 3 > *bunch, const PartData &, bool backBeam, bool backTrack) | |
Constructor. More... | |
virtual | ~Tracker () |
const PartBunchBase< double, 3 > * | getBunch () const |
Return the current bunch. More... | |
void | addToBunch (const OpalParticle &) |
Add particle to bunch. More... | |
virtual void | visitComponent (const Component &) |
Store the bunch. More... | |
virtual void | setNumBunch (short) |
set total number of tracked bunches More... | |
virtual short | getNumBunch () |
get total number of tracked bunches More... | |
![]() | |
AbstractTracker (const Beamline &, const PartData &, bool backBeam, bool backTrack) | |
Constructor. More... | |
virtual | ~AbstractTracker () |
![]() | |
DefaultVisitor (const Beamline &beamline, bool backBeam, bool backTrack) | |
Constructor. More... | |
virtual | ~DefaultVisitor ()=0 |
virtual void | execute () |
Apply the algorithm to the top-level beamline. More... | |
virtual void | visitBeamline (const Beamline &) |
Apply the algorithm to a beam line. More... | |
virtual void | visitCCollimator (const CCollimator &) |
Apply the algorithm to a collimator. More... | |
virtual void | visitComponent (const Component &) |
Apply the algorithm to an arbitrary component. More... | |
virtual void | visitCorrector (const Corrector &) |
Apply the algorithm to a closed orbit corrector. More... | |
virtual void | visitCyclotron (const Cyclotron &) |
Apply the algorithm to an cyclotron. More... | |
virtual void | visitDegrader (const Degrader &) |
Apply the algorithm to a degrader. More... | |
virtual void | visitDrift (const Drift &) |
Apply the algorithm to a drift space. More... | |
virtual void | visitFlaggedElmPtr (const FlaggedElmPtr &) |
Apply the algorithm to a FlaggedElmPtr. More... | |
virtual void | visitFlexibleCollimator (const FlexibleCollimator &) |
Apply the algorithm to a flexible collimator. More... | |
virtual void | visitMarker (const Marker &) |
Apply the algorithm to a marker. More... | |
virtual void | visitMonitor (const Monitor &) |
Apply the algorithm to a beam position monitor. More... | |
virtual void | visitMultipole (const Multipole &) |
Apply the algorithm to a multipole. More... | |
virtual void | visitMultipoleT (const MultipoleT &) |
Apply the algorithm to to an arbitrary multipole. More... | |
virtual void | visitMultipoleTStraight (const MultipoleTStraight &) |
Apply the algorithm to an arbitrary straight multipole. More... | |
virtual void | visitMultipoleTCurvedConstRadius (const MultipoleTCurvedConstRadius &) |
Apply the algorithm to an arbitrary curved multipole of constant radius. More... | |
virtual void | visitMultipoleTCurvedVarRadius (const MultipoleTCurvedVarRadius &) |
Apply the algorithm to an arbitrary curved multipole of variable radius. More... | |
virtual void | visitOffset (const Offset &) |
Apply the algorithm to an offset (placement). More... | |
virtual void | visitProbe (const Probe &prob) |
Apply the algorithm to a probe. More... | |
virtual void | visitRBend (const RBend &) |
Apply the algorithm to a rectangular bend. More... | |
virtual void | visitRBend3D (const RBend3D &) |
Apply the algorithm to a rectangular bend. More... | |
virtual void | visitRFCavity (const RFCavity &) |
Apply the algorithm to a RF cavity. More... | |
virtual void | visitRing (const Ring &) |
Apply the algorithm to a ring. More... | |
virtual void | visitSBend (const SBend &) |
Apply the algorithm to a sector bend. More... | |
virtual void | visitSBend3D (const SBend3D &) |
Apply the algorithm to a sector bend with 3D field map. More... | |
virtual void | visitScalingFFAMagnet (const ScalingFFAMagnet &) |
Apply the algorithm to a scaling FFA magnet. More... | |
virtual void | visitSeptum (const Septum &) |
Apply the algorithm to a septum. More... | |
virtual void | visitSolenoid (const Solenoid &) |
Apply the algorithm to a solenoid. More... | |
virtual void | visitSource (const Source &) |
Apply the algorithm to a source. More... | |
virtual void | visitStripper (const Stripper &) |
Apply the algorithm to a particle stripper. More... | |
virtual void | visitTravelingWave (const TravelingWave &) |
Apply the algorithm to a traveling wave. More... | |
virtual void | visitVacuum (const Vacuum &) |
Apply the algorithm to a vacuum space. More... | |
virtual void | visitVariableRFCavity (const VariableRFCavity &vcav) |
Apply the algorithm to a a variable RF cavity. More... | |
virtual void | visitVariableRFCavityFringeField (const VariableRFCavityFringeField &vcav) |
Apply the algorithm to a a variable RF cavity with Fringe Field. More... | |
virtual void | visitVerticalFFAMagnet (const VerticalFFAMagnet &) |
Apply the algorithm to a vertical FFA magnet. More... | |
![]() | |
BeamlineVisitor () | |
virtual | ~BeamlineVisitor () |
virtual void | execute ()=0 |
Execute the algorithm on the attached beam line. More... | |
virtual void | visitBeamline (const Beamline &)=0 |
Apply the algorithm to a beam line. More... | |
virtual void | visitCCollimator (const CCollimator &)=0 |
Apply the algorithm to a collimator. More... | |
virtual void | visitComponent (const Component &)=0 |
Apply the algorithm to an arbitrary component. More... | |
virtual void | visitCorrector (const Corrector &)=0 |
Apply the algorithm to a closed orbit corrector. More... | |
virtual void | visitCyclotron (const Cyclotron &)=0 |
Apply the algorithm to a cyclotron. More... | |
virtual void | visitDegrader (const Degrader &)=0 |
Apply the algorithm to a degrader. More... | |
virtual void | visitDrift (const Drift &)=0 |
Apply the algorithm to a drift space. More... | |
virtual void | visitFlaggedElmPtr (const FlaggedElmPtr &)=0 |
Apply the algorithm to a FlaggedElmPtr. More... | |
virtual void | visitFlexibleCollimator (const FlexibleCollimator &)=0 |
Apply the algorithm to a flexible collimator. More... | |
virtual void | visitMarker (const Marker &)=0 |
Apply the algorithm to a marker. More... | |
virtual void | visitMonitor (const Monitor &)=0 |
Apply the algorithm to a beam position monitor. More... | |
virtual void | visitMultipole (const Multipole &)=0 |
Apply the algorithm to a multipole. More... | |
virtual void | visitMultipoleT (const MultipoleT &)=0 |
Apply the algorithm to an arbitrary multipole. More... | |
virtual void | visitMultipoleTStraight (const MultipoleTStraight &)=0 |
Apply the algorithm to an arbitrary straight multipole. More... | |
virtual void | visitMultipoleTCurvedConstRadius (const MultipoleTCurvedConstRadius &)=0 |
Apply the algorithm to an arbitrary curved multipole of constant radius. More... | |
virtual void | visitMultipoleTCurvedVarRadius (const MultipoleTCurvedVarRadius &)=0 |
Apply the algorithm to an arbitrary curved multipole of variable radius. More... | |
virtual void | visitOffset (const Offset &)=0 |
Apply the algorithm to an offset (placement). More... | |
virtual void | visitProbe (const Probe &)=0 |
Apply the algorithm to a probe. More... | |
virtual void | visitRBend (const RBend &)=0 |
Apply the algorithm to a rectangular bend. More... | |
virtual void | visitRBend3D (const RBend3D &) |
Apply the algorithm to a rectangular bend. More... | |
virtual void | visitRFCavity (const RFCavity &)=0 |
Apply the algorithm to a RF cavity. More... | |
virtual void | visitRing (const Ring &)=0 |
Apply the algorithm to a ring. More... | |
virtual void | visitSBend (const SBend &)=0 |
Apply the algorithm to a sector bend. More... | |
virtual void | visitSBend3D (const SBend3D &)=0 |
Apply the algorithm to a sector bend with 3D field map. More... | |
virtual void | visitScalingFFAMagnet (const ScalingFFAMagnet &)=0 |
Apply the algorithm to a scaling FFA magnet. More... | |
virtual void | visitSeptum (const Septum &)=0 |
Apply the algorithm to a septum magnet. More... | |
virtual void | visitSolenoid (const Solenoid &)=0 |
Apply the algorithm to a solenoid. More... | |
virtual void | visitSource (const Source &)=0 |
Apply the algorithm to a source. More... | |
virtual void | visitStripper (const Stripper &)=0 |
Apply the algorithm to a particle stripper. More... | |
virtual void | visitTravelingWave (const TravelingWave &)=0 |
Apply the algorithm to a traveling wave. More... | |
virtual void | visitVacuum (const Vacuum &)=0 |
Apply the algorithm to a vacuum space. More... | |
virtual void | visitVariableRFCavity (const VariableRFCavity &)=0 |
Apply the algorithm to a variable RF cavity. More... | |
virtual void | visitVariableRFCavityFringeField (const VariableRFCavityFringeField &)=0 |
Apply the algorithm to a variable RF cavity with Fringe Field. More... | |
virtual void | visitVerticalFFAMagnet (const VerticalFFAMagnet &)=0 |
Apply the algorithm to a vertical FFA magnet. More... | |
Private Types | |
typedef Hamiltonian::series_t | series_t |
typedef FVps< double, 6 > | map_t |
typedef FVector< double, 6 > | particle_t |
typedef std::tuple< series_t, std::size_t, double > | tuple_t |
typedef std::list< tuple_t > | beamline_t |
typedef FMatrix< double, 6, 6 > | fMatrix_t |
Private Member Functions | |
ThickTracker ()=delete | |
ThickTracker (const ThickTracker &)=delete | |
void | operator= (const ThickTracker &)=delete |
void | throwElementError_m (std::string element) |
void | checkElementOrder_m () |
void | fillGaps_m () |
Fills undefined beam path with a Drift Space. More... | |
void | track_m () |
particle_t | particleToVector_m (const Vector_t &R, const Vector_t &P) const |
void | vectorToParticle_m (const particle_t &particle, Vector_t &R, Vector_t &P) const |
void | advanceParticles_m (const map_t &map) |
void | updateParticle_m (particle_t &particle, const map_t &map) |
void | dump_m () |
void | update_m (const double &spos, const std::size_t &step) |
void | write_m (const map_t &map) |
void | concatenateMaps_m (const map_t &x, map_t &y) |
void | advanceDispersion_m (fMatrix_t tempMatrix, FMatrix< double, 1, 4 > initialVal, double pos) |
Writes Dispersion in X and Y plane. More... | |
void | applyEntranceFringe (double edge, double curve, const BMultipoleField &field, double scale) |
void | applyExitFringe (double edge, double curve, const BMultipoleField &field, double scale) |
Private Attributes | |
Hamiltonian | hamiltonian_m |
Vector_t | RefPartR_m |
Vector_t | RefPartP_m |
DataSink * | itsDataSink_m |
OpalBeamline | itsOpalBeamline_m |
double | zstart_m |
Start of beam line. More... | |
double | zstop_m |
End of beam line. More... | |
double | threshold_m |
Threshold for element overlaps and gaps. More... | |
beamline_t | elements_m |
elements in beam line More... | |
CoordinateSystemTrafo | referenceToLabCSTrafo_m |
int | truncOrder_m |
truncation order of map tracking More... | |
IpplTimings::TimerRef | mapCreation_m |
creation of elements_m More... | |
IpplTimings::TimerRef | mapCombination_m |
map accumulation along elements_m -> Transfermap More... | |
IpplTimings::TimerRef | mapTracking_m |
track particles trough maps of elements_m More... | |
Additional Inherited Members | |
![]() | |
enum | { X , PX , Y , PY , T , PT } |
![]() | |
FieldList | cavities_m |
const Beamline & | itsBeamline_m |
![]() | |
void | applyDrift (double length) |
Apply a drift length. More... | |
void | applyThinMultipole (const BMultipoleField &field, double factor) |
void | applyThinSBend (const BMultipoleField &field, double scale, double h) |
void | applyTransform (const Euclid3D &, double refLength=0.0) |
Apply a geometric transformation. More... | |
FTps< double, 2 > | buildMultipoleVectorPotential2D (const BMultipoleField &) |
Construct vector potential for a Multipole. More... | |
FTps< double, 6 > | buildMultipoleVectorPotential (const BMultipoleField &) |
Construct vector potential for a Multipole. More... | |
FTps< double, 2 > | buildSBendVectorPotential2D (const BMultipoleField &, double h) |
Construct vector potential for a SBend. More... | |
FTps< double, 6 > | buildSBendVectorPotential (const BMultipoleField &, double h) |
Construct vector potential for a SBend. More... | |
![]() | |
PartBunchBase< double, 3 > * | itsBunch_m |
The bunch of particles to be tracked. More... | |
![]() | |
const PartData | itsReference |
The reference information. More... | |
![]() | |
const Beamline & | itsLine |
bool | back_beam |
bool | back_track |
bool | back_path |
double | flip_B |
double | flip_s |
Track using thick-lens algorithm.
Definition at line 86 of file ThickTracker.h.
|
private |
Definition at line 93 of file ThickTracker.h.
|
private |
Definition at line 94 of file ThickTracker.h.
|
private |
Definition at line 90 of file ThickTracker.h.
|
private |
Definition at line 91 of file ThickTracker.h.
|
private |
Definition at line 89 of file ThickTracker.h.
|
private |
Definition at line 92 of file ThickTracker.h.
|
explicit |
Constructor.
Definition at line 41 of file ThickTracker.cpp.
References Beamline::getInitialDirection(), Beamline::getOrigin3D(), CoordinateSystemTrafo::inverted(), and referenceToLabCSTrafo_m.
|
explicit |
Constructor.
Definition at line 64 of file ThickTracker.cpp.
References Beamline::getInitialDirection(), Beamline::getOrigin3D(), CoordinateSystemTrafo::inverted(), and referenceToLabCSTrafo_m.
|
virtual |
Definition at line 100 of file ThickTracker.cpp.
|
privatedelete |
|
privatedelete |
|
private |
Writes Dispersion in X and Y plane.
Tracks Dispersion along beam line writes it in .dispersion file.
\[ \begin{pmatrix} \eta_{x} \\ \eta_{p_x} \end{pmatrix}_{s_1} = \begin{pmatrix} R_{11} & R_{12} \\ R_{21} & R_{22} \end{pmatrix} \cdot \begin{pmatrix} \eta_{x} \\ \eta_{p_x} \end{pmatrix}_{s_0} + \begin{pmatrix} R_{16} \\ R_{26} \end{pmatrix} \]
tempMatrix | accumulated Transfer map \(R\) at pos |
initialVal | initial Dispersion { \(\eta_{x0},\, \eta_{p_x0},\, \eta_{y0},\, \eta_{p_y0} \)} |
pos | position of tracking |
used formula:
\[\begin{pmatrix}\eta_{x} \\ \eta_{p_x}\end{pmatrix}_{s_1} = \begin{pmatrix} R_{11} & R_{12} \\ R_{21} & R_{22} \end{pmatrix} \cdot \begin{pmatrix} \eta_{x} \\ \eta_{p_x} \end{pmatrix}_{s_0} + \begin{pmatrix} R_{16} \\ R_{26} \end{pmatrix}\]
Definition at line 502 of file ThickTracker.cpp.
References endl(), PartBunchBase< T, Dim >::getInitialBeta(), OpalData::getInputBasename(), OpalData::getInstance(), Tracker::itsBunch_m, and IpplInfo::myNode().
Referenced by track_m().
|
private |
Advances itsBunch_m trough map
map | Map of slice |
Definition at line 426 of file ThickTracker.cpp.
References PartBunchBase< T, Dim >::getLocalNum(), Tracker::itsBunch_m, PartBunchBase< T, Dim >::P, particleToVector_m(), PartBunchBase< T, Dim >::R, RefPartP_m, RefPartR_m, updateParticle_m(), and vectorToParticle_m().
Referenced by track_m().
|
private |
:TODO: Fringe fields for entrance of SBEND.
edge | |
curve | |
field | |
scale |
|
private |
:TODO: Fringe fields for exit of SBEND.
edge | |
curve | |
field | |
scale |
|
private |
Tests the order of the elements in the beam line according to their position
Definition at line 237 of file ThickTracker.cpp.
References ANY, elements_m, OpalBeamline::getElementByType(), itsOpalBeamline_m, threshold_m, and zstart_m.
Referenced by execute().
Concatenate map x and y
\[ y = x \circ y \]
x | |
y | is result |
Definition at line 485 of file ThickTracker.cpp.
References mapCombination_m, IpplTimings::startTimer(), IpplTimings::stopTimer(), FVps< T, N >::truncate(), and truncOrder_m.
Referenced by track_m().
|
private |
Dumps bunch in .stat or .h5 files
Definition at line 551 of file ThickTracker.cpp.
References DataSink::dumpH5(), DataSink::dumpSDDS(), endl(), PartBunchBase< T, Dim >::get_bounds(), PartBunchBase< T, Dim >::getdT(), OpalBeamline::getFieldAt(), PartBunchBase< T, Dim >::getGlobalTrackStep(), PartBunchBase< T, Dim >::getT(), PartBunchBase< T, Dim >::getTotalNum(), gmsg, Tracker::itsBunch_m, itsDataSink_m, itsOpalBeamline_m, Options::psDumpFreq, referenceToLabCSTrafo_m, RefPartP_m, RefPartR_m, CoordinateSystemTrafo::rotateFrom(), CoordinateSystemTrafo::rotateTo(), Options::statDumpFreq, CoordinateSystemTrafo::transformTo(), and Units::Vpm2MVpm.
Referenced by track_m().
|
virtual |
Apply the algorithm to the top-level beamline.
Algorithm for Thick Map-Tracking.
Reimplemented from DefaultVisitor.
Definition at line 191 of file ThickTracker.cpp.
References OpalData::APPEND, checkElementOrder_m(), endl(), euclidean_norm(), fillGaps_m(), PartBunchBase< T, Dim >::get_pmean_Distribution(), OpalData::getInstance(), gmsg, Tracker::itsBunch_m, prepareSections(), RefPartP_m, RefPartR_m, PartBunchBase< T, Dim >::set_sPos(), OpalData::setGlobalPhaseShift(), OpalData::setInPrepState(), OpalData::setOpenMode(), track_m(), truncOrder_m, and zstart_m.
|
private |
Fills undefined beam path with a Drift Space.
Inserts Drift maps in undefined beam line sections
\[H_{Drift}= \frac{\delta}{\beta_0} - \sqrt{\left(\frac{1}{\beta_0} + \delta \right)^2 -p_x^2 -p_y^2 - \frac{1}{\left(\beta_0 \gamma_0\right)^2 } } \]
Definition at line 267 of file ThickTracker.cpp.
References abs(), ANY, Hamiltonian::drift(), elements_m, OpalBeamline::getElementByType(), PartData::getGamma(), hamiltonian_m, itsOpalBeamline_m, AbstractTracker::itsReference, threshold_m, zstart_m, and zstop_m.
Referenced by execute().
|
privatedelete |
|
private |
Definition at line 377 of file ThickTracker.cpp.
References Attrib::Distribution::R.
Referenced by advanceParticles_m().
void ThickTracker::prepareSections | ( | ) |
Definition at line 123 of file ThickTracker.cpp.
References ElementBase::accept(), Tracker::itsBeamline_m, itsOpalBeamline_m, and OpalBeamline::prepareSections().
Referenced by execute().
|
inlineprivate |
Definition at line 197 of file ThickTracker.h.
Referenced by visitCCollimator(), visitCorrector(), visitDegrader(), visitFlexibleCollimator(), visitMonitor(), visitProbe(), visitRBend(), visitRFCavity(), visitSeptum(), visitSolenoid(), visitTravelingWave(), and visitVacuum().
|
private |
Tracks itsBunch_m trough beam line
Definition at line 303 of file ThickTracker.cpp.
References advanceDispersion_m(), advanceParticles_m(), concatenateMaps_m(), dump_m(), elements_m, ExpMap(), PartBunchBase< T, Dim >::getSigmaMatrix(), Tracker::itsBunch_m, FVps< T, N >::linearTerms(), mapTracking_m, IpplTimings::startTimer(), IpplTimings::stopTimer(), FVps< T, N >::truncate(), truncOrder_m, update_m(), write_m(), and zstart_m.
Referenced by execute().
|
private |
Updates itsBunch_m
spos | position of tracking |
step | stepsize of applied map |
Definition at line 601 of file ThickTracker.cpp.
References Physics::c, PartBunchBase< T, Dim >::calcBeamParameters(), PartBunchBase< T, Dim >::calcEMean(), PartBunchBase< T, Dim >::dt, PartBunchBase< T, Dim >::get_gamma(), PartBunchBase< T, Dim >::get_sPos(), PartBunchBase< T, Dim >::getLocalNum(), PartBunchBase< T, Dim >::getT(), Tracker::itsBunch_m, PartBunchBase< T, Dim >::set_sPos(), PartBunchBase< T, Dim >::setdT(), PartBunchBase< T, Dim >::setGlobalTrackStep(), PartBunchBase< T, Dim >::setT(), and sqrt().
Referenced by track_m().
|
private |
Applies map on particle
particle | tracked particle |
map | Map of slice |
Definition at line 451 of file ThickTracker.cpp.
References PartBunchBase< T, Dim >::getInitialBeta(), PartBunchBase< T, Dim >::getInitialGamma(), Tracker::itsBunch_m, and sqrt().
Referenced by advanceParticles_m().
|
private |
Definition at line 389 of file ThickTracker.cpp.
References Attrib::Distribution::R.
Referenced by advanceParticles_m().
|
virtual |
Apply the algorithm to a beam line.
Reimplemented from DefaultVisitor.
Definition at line 105 of file ThickTracker.cpp.
References OpalBeamline::compute3DLattice(), endl(), TBeamline< T >::getInitialDirection(), TBeamline< T >::getOrigin3D(), TBeamline< T >::getRelativeFlag(), gmsg, TBeamline< T >::iterate(), itsOpalBeamline_m, OpalBeamline::merge(), OpalBeamline::prepareSections(), and OpalBeamline::swap().
|
inlinevirtual |
Apply the algorithm to a collimator.
Reimplemented from DefaultVisitor.
Definition at line 338 of file ThickTracker.h.
References throwElementError_m().
|
inlinevirtual |
Apply the algorithm to a closed orbit corrector.
Reimplemented from DefaultVisitor.
Definition at line 344 of file ThickTracker.h.
References throwElementError_m().
|
inlinevirtual |
Apply the algorithm to a degrader.
Reimplemented from DefaultVisitor.
Definition at line 350 of file ThickTracker.h.
References throwElementError_m().
|
inlinevirtual |
Apply the algorithm to a drift space.
Reimplemented from DefaultVisitor.
Definition at line 356 of file ThickTracker.h.
References Hamiltonian::drift(), elements_m, ElementBase::getElementLength(), PartData::getGamma(), Drift::getNSlices(), hamiltonian_m, Tracker::itsBunch_m, itsOpalBeamline_m, AbstractTracker::itsReference, and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a flexible collimator.
Reimplemented from DefaultVisitor.
Definition at line 369 of file ThickTracker.h.
References throwElementError_m().
|
inlinevirtual |
Apply the algorithm to a marker.
Reimplemented from DefaultVisitor.
Definition at line 375 of file ThickTracker.h.
|
inlinevirtual |
Apply the algorithm to a beam position monitor.
Reimplemented from DefaultVisitor.
Definition at line 381 of file ThickTracker.h.
References throwElementError_m().
|
inlinevirtual |
Apply the algorithm to a multipole.
Reimplemented from DefaultVisitor.
Definition at line 387 of file ThickTracker.h.
References Physics::c, Physics::e, elements_m, ElementBase::getElementLength(), Multipole::getField(), PartData::getGamma(), BMultipoleField::getNormalComponent(), Multipole::getNSlices(), PartData::getP(), PartData::getQ(), hamiltonian_m, Tracker::itsBunch_m, itsOpalBeamline_m, AbstractTracker::itsReference, Hamiltonian::quadrupole(), and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a probe.
Reimplemented from DefaultVisitor.
Definition at line 407 of file ThickTracker.h.
References throwElementError_m().
|
inlinevirtual |
Apply the algorithm to a rectangular bend.
Reimplemented from DefaultVisitor.
Definition at line 413 of file ThickTracker.h.
References throwElementError_m().
|
inlinevirtual |
Apply the algorithm to a RF cavity.
Reimplemented from DefaultVisitor.
Definition at line 419 of file ThickTracker.h.
References throwElementError_m().
|
inlinevirtual |
Apply the algorithm to a sector bend.
Reimplemented from DefaultVisitor.
Definition at line 425 of file ThickTracker.h.
References abs(), asin(), Physics::c, Physics::e, elements_m, Hamiltonian::fringeField(), SBend::getB(), BendBase::getDesignEnergy(), ElementBase::getElementLength(), BendBase::getEntranceAngle(), Bend2D::getExitAngle(), PartData::getM(), Bend2D::getNSlices(), PartData::getQ(), hamiltonian_m, Tracker::itsBunch_m, itsOpalBeamline_m, AbstractTracker::itsReference, Hamiltonian::sbend(), sqrt(), and OpalBeamline::visit().
|
inlinevirtual |
Apply the algorithm to a septum.
Reimplemented from DefaultVisitor.
Definition at line 477 of file ThickTracker.h.
References throwElementError_m().
|
inlinevirtual |
Apply the algorithm to a solenoid.
Reimplemented from DefaultVisitor.
Definition at line 483 of file ThickTracker.h.
References throwElementError_m().
|
inlinevirtual |
Apply the algorithm to a traveling wave.
Reimplemented from DefaultVisitor.
Definition at line 489 of file ThickTracker.h.
References throwElementError_m().
|
inlinevirtual |
Apply the algorithm to a vacuum space.
Reimplemented from DefaultVisitor.
Definition at line 495 of file ThickTracker.h.
References throwElementError_m().
|
private |
Writes map (Transfermap) in .map file @map text for .map file
Definition at line 400 of file ThickTracker.cpp.
References endl(), OpalData::getInputBasename(), OpalData::getInstance(), and IpplInfo::myNode().
Referenced by track_m().
|
private |
elements in beam line
Definition at line 326 of file ThickTracker.h.
Referenced by checkElementOrder_m(), fillGaps_m(), track_m(), visitDrift(), visitMultipole(), and visitSBend().
|
private |
Definition at line 314 of file ThickTracker.h.
Referenced by fillGaps_m(), visitDrift(), visitMultipole(), and visitSBend().
|
private |
Definition at line 319 of file ThickTracker.h.
Referenced by dump_m().
|
private |
Definition at line 321 of file ThickTracker.h.
Referenced by checkElementOrder_m(), dump_m(), fillGaps_m(), prepareSections(), visitBeamline(), visitDrift(), visitMultipole(), and visitSBend().
|
private |
map accumulation along elements_m -> Transfermap
Definition at line 333 of file ThickTracker.h.
Referenced by concatenateMaps_m().
|
private |
creation of elements_m
Definition at line 332 of file ThickTracker.h.
|
private |
track particles trough maps of elements_m
Definition at line 334 of file ThickTracker.h.
Referenced by track_m().
|
private |
Definition at line 328 of file ThickTracker.h.
Referenced by dump_m(), and ThickTracker().
|
private |
Definition at line 317 of file ThickTracker.h.
Referenced by advanceParticles_m(), dump_m(), and execute().
|
private |
Definition at line 316 of file ThickTracker.h.
Referenced by advanceParticles_m(), dump_m(), and execute().
|
private |
Threshold for element overlaps and gaps.
Definition at line 325 of file ThickTracker.h.
Referenced by checkElementOrder_m(), and fillGaps_m().
|
private |
truncation order of map tracking
Definition at line 330 of file ThickTracker.h.
Referenced by concatenateMaps_m(), execute(), and track_m().
|
private |
Start of beam line.
Definition at line 323 of file ThickTracker.h.
Referenced by checkElementOrder_m(), execute(), fillGaps_m(), and track_m().
|
private |