|
OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
|
Track using thick-lens algorithm. More...
#include <ThickTracker.h>
Public Types | |
| enum | { X , PX , Y , PY , T , PT } |
Public Member Functions | |
| ThickTracker (const Beamline &bl, const PartData &data, bool revBeam, bool revTrack) | |
| Constructor. | |
| 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. | |
| virtual | ~ThickTracker () |
| virtual void | execute () |
| Apply the algorithm to the top-level beamline. | |
| virtual void | visitBeamline (const Beamline &) |
| Apply the algorithm to a beam line. | |
| virtual void | visitCCollimator (const CCollimator &) |
| Apply the algorithm to a collimator. | |
| virtual void | visitCorrector (const Corrector &) |
| Apply the algorithm to a closed orbit corrector. | |
| virtual void | visitDegrader (const Degrader &) |
| Apply the algorithm to a degrader. | |
| virtual void | visitDrift (const Drift &) |
| Apply the algorithm to a drift space. | |
| virtual void | visitFlexibleCollimator (const FlexibleCollimator &) |
| Apply the algorithm to a flexible collimator. | |
| virtual void | visitMarker (const Marker &) |
| Apply the algorithm to a marker. | |
| virtual void | visitMonitor (const Monitor &) |
| Apply the algorithm to a beam position monitor. | |
| virtual void | visitMultipole (const Multipole &) |
| Apply the algorithm to a multipole. | |
| virtual void | visitProbe (const Probe &) |
| Apply the algorithm to a probe. | |
| virtual void | visitRBend (const RBend &) |
| Apply the algorithm to a rectangular bend. | |
| virtual void | visitRFCavity (const RFCavity &) |
| Apply the algorithm to a RF cavity. | |
| virtual void | visitSBend (const SBend &) |
| Apply the algorithm to a sector bend. | |
| virtual void | visitSeptum (const Septum &) |
| Apply the algorithm to a septum. | |
| virtual void | visitSolenoid (const Solenoid &) |
| Apply the algorithm to a solenoid. | |
| virtual void | visitTravelingWave (const TravelingWave &) |
| Apply the algorithm to a traveling wave. | |
| virtual void | visitVacuum (const Vacuum &) |
| Apply the algorithm to a vacuum space. | |
| void | prepareSections () |
| const PartBunchBase< double, 3 > * | getBunch () const |
| Return the current bunch. | |
| void | addToBunch (const OpalParticle &) |
| Add particle to bunch. | |
| virtual void | visitComponent (const Component &) |
| Store the bunch. | |
| virtual void | setNumBunch (short) |
| set total number of tracked bunches | |
| virtual short | getNumBunch () |
| get total number of tracked bunches | |
| virtual void | visitCyclotron (const Cyclotron &) |
| Apply the algorithm to an cyclotron. | |
| virtual void | visitFlaggedElmPtr (const FlaggedElmPtr &) |
| Apply the algorithm to a FlaggedElmPtr. | |
| virtual void | visitMultipoleT (const MultipoleT &) |
| Apply the algorithm to to an arbitrary multipole. | |
| virtual void | visitOffset (const Offset &) |
| Apply the algorithm to an offset (placement). | |
| virtual void | visitOutputPlane (const OutputPlane &) |
| Apply the algorithm to an output plane. | |
| virtual void | visitRBend3D (const RBend3D &) |
| Apply the algorithm to a rectangular bend. | |
| virtual void | visitRing (const Ring &) |
| Apply the algorithm to a ring. | |
| virtual void | visitSBend3D (const SBend3D &) |
| Apply the algorithm to a sector bend with 3D field map. | |
| virtual void | visitScalingFFAMagnet (const ScalingFFAMagnet &) |
| Apply the algorithm to a scaling FFA magnet. | |
| virtual void | visitSource (const Source &) |
| Apply the algorithm to a source. | |
| virtual void | visitStripper (const Stripper &) |
| Apply the algorithm to a particle stripper. | |
| virtual void | visitVariableRFCavity (const VariableRFCavity &vcav) |
| Apply the algorithm to a a variable RF cavity. | |
| virtual void | visitVariableRFCavityFringeField (const VariableRFCavityFringeField &vcav) |
| Apply the algorithm to a a variable RF cavity with Fringe Field. | |
| virtual void | visitVerticalFFAMagnet (const VerticalFFAMagnet &) |
| Apply the algorithm to a vertical FFA magnet. | |
Public Attributes | |
| FieldList | cavities_m |
| const Beamline & | itsBeamline_m |
Protected Member Functions | |
| void | applyDrift (double length) |
| Apply a drift length. | |
| 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. | |
| FTps< double, 2 > | buildMultipoleVectorPotential2D (const BMultipoleField &) |
| Construct vector potential for a Multipole. | |
| FTps< double, 6 > | buildMultipoleVectorPotential (const BMultipoleField &) |
| Construct vector potential for a Multipole. | |
| FTps< double, 2 > | buildSBendVectorPotential2D (const BMultipoleField &, double h) |
| Construct vector potential for a SBend. | |
| FTps< double, 6 > | buildSBendVectorPotential (const BMultipoleField &, double h) |
| Construct vector potential for a SBend. | |
Protected Attributes | |
| PartBunchBase< double, 3 > * | itsBunch_m |
| The bunch of particles to be tracked. | |
| const PartData | itsReference |
| The reference information. | |
| const Beamline & | itsLine |
| bool | back_beam |
| bool | back_track |
| bool | back_path |
| double | flip_B |
| double | flip_s |
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. | |
| 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. | |
| void | applyEntranceFringe (double edge, double curve, const BMultipoleField &field, double scale) |
| void | applyExitFringe (double edge, double curve, const BMultipoleField &field, double scale) |
| virtual void | applyDefault (const ElementBase &) |
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. | |
| double | zstop_m |
| End of beam line. | |
| double | threshold_m |
| Threshold for element overlaps and gaps. | |
| beamline_t | elements_m |
| elements in beam line | |
| CoordinateSystemTrafo | referenceToLabCSTrafo_m |
| int | truncOrder_m |
| truncation order of map tracking | |
| IpplTimings::TimerRef | mapCreation_m |
| creation of elements_m | |
| IpplTimings::TimerRef | mapCombination_m |
| map accumulation along elements_m -> Transfermap | |
| IpplTimings::TimerRef | mapTracking_m |
| track particles trough maps of elements_m | |
| bool | local_flip |
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.
|
inherited |
| Enumerator | |
|---|---|
| X | |
| PX | |
| Y | |
| PY | |
| T | |
| PT | |
Definition at line 39 of file AbstractTracker.h.
|
explicit |
Constructor.
Definition at line 41 of file ThickTracker.cpp.
References Beamline::getInitialDirection(), Beamline::getOrigin3D(), hamiltonian_m, CoordinateSystemTrafo::inverted(), itsDataSink_m, itsOpalBeamline_m, mapCombination_m, mapCreation_m, mapTracking_m, referenceToLabCSTrafo_m, RefPartP_m, RefPartR_m, threshold_m, Tracker::Tracker(), truncOrder_m, zstart_m, and zstop_m.
Referenced by operator=(), and ThickTracker().
|
explicit |
Constructor.
Definition at line 64 of file ThickTracker.cpp.
References Beamline::getInitialDirection(), Beamline::getOrigin3D(), hamiltonian_m, CoordinateSystemTrafo::inverted(), itsDataSink_m, itsOpalBeamline_m, mapCombination_m, mapCreation_m, mapTracking_m, referenceToLabCSTrafo_m, RefPartP_m, RefPartR_m, threshold_m, Tps< T >::truncOrder, Tracker::Tracker(), truncOrder_m, zstart_m, and zstop_m.
|
virtual |
Definition at line 100 of file ThickTracker.cpp.
|
privatedelete |
|
privatedelete |
|
inherited |
|
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 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 Tracker::itsBunch_m, particleToVector_m(), RefPartP_m, RefPartR_m, updateParticle_m(), and vectorToParticle_m().
Referenced by track_m().
|
privatevirtualinherited |
Definition at line 231 of file DefaultVisitor.cpp.
Referenced by visitCCollimator(), visitComponent(), visitCorrector(), visitCyclotron(), visitDegrader(), visitDrift(), visitFlexibleCollimator(), visitMarker(), visitMonitor(), visitMultipole(), visitMultipoleT(), visitOffset(), visitOutputPlane(), visitProbe(), visitRBend(), visitRBend3D(), visitRFCavity(), visitRing(), visitSBend(), visitSBend3D(), visitScalingFFAMagnet(), visitSeptum(), visitSolenoid(), visitSource(), visitStripper(), visitTravelingWave(), visitVacuum(), visitVariableRFCavity(), visitVariableRFCavityFringeField(), and visitVerticalFFAMagnet().
|
protectedinherited |
Apply a drift length.
Definition at line 122 of file Tracker.cpp.
References dot(), OpalParticle::getP(), OpalParticle::getX(), OpalParticle::getY(), OpalParticle::getZ(), itsBunch_m, AbstractTracker::itsReference, OpalParticle::setX(), OpalParticle::setY(), and OpalParticle::setZ().
|
private |
:TODO: Fringe fields for entrance of SBEND.
| edge | |
| curve | |
| field | |
| scale |
|
private |
:TODO: Fringe fields for exit of SBEND.
| edge | |
| curve | |
| field | |
| scale |
|
protectedinherited |
Definition at line 140 of file Tracker.cpp.
References OpalParticle::getPx(), OpalParticle::getPy(), OpalParticle::getX(), OpalParticle::getY(), itsBunch_m, BMultipoleField::normal(), BMultipoleField::order(), OpalParticle::setPx(), OpalParticle::setPy(), and BMultipoleField::skew().
|
protectedinherited |
Definition at line 169 of file Tracker.cpp.
References buildSBendVectorPotential2D(), FTps< T, N >::derivative(), FTps< T, N >::evaluate(), OpalParticle::getPx(), OpalParticle::getPy(), OpalParticle::getX(), OpalParticle::getY(), itsBunch_m, OpalParticle::setPx(), and OpalParticle::setPy().
|
protectedinherited |
Apply a geometric transformation.
Definition at line 189 of file Tracker.cpp.
References OpalParticle::getPx(), OpalParticle::getPy(), OpalParticle::getPz(), Euclid3D::getX(), OpalParticle::getX(), Euclid3D::getY(), OpalParticle::getY(), Euclid3D::getZ(), OpalParticle::getZ(), Euclid3D::isIdentity(), itsBunch_m, AbstractTracker::itsReference, Euclid3D::M(), OpalParticle::setPx(), OpalParticle::setPy(), OpalParticle::setX(), OpalParticle::setY(), and OpalParticle::setZ().
|
protectedinherited |
Construct vector potential for a Multipole.
Definition at line 252 of file Tracker.cpp.
References FTps< T, N >::getMaxOrder(), FTps< double, 6 >::makeVariable(), BMultipoleField::normal(), BMultipoleField::order(), FTps< T, N >::setTruncOrder(), BMultipoleField::skew(), AbstractTracker::X, and AbstractTracker::Y.
|
protectedinherited |
Construct vector potential for a Multipole.
Definition at line 225 of file Tracker.cpp.
References FTps< T, N >::getMaxOrder(), FTps< double, 2 >::makeVariable(), BMultipoleField::normal(), BMultipoleField::order(), FTps< T, N >::setTruncOrder(), and BMultipoleField::skew().
|
protectedinherited |
Construct vector potential for a SBend.
Definition at line 332 of file Tracker.cpp.
References FTps< T, N >::derivative(), FTps< T, N >::getMaxOrder(), FTps< double, 6 >::makeVariable(), BMultipoleField::normal(), BMultipoleField::order(), FTps< T, N >::setTruncOrder(), BMultipoleField::skew(), AbstractTracker::X, and AbstractTracker::Y.
|
protectedinherited |
Construct vector potential for a SBend.
Definition at line 280 of file Tracker.cpp.
References FTps< T, N >::derivative(), FTps< T, N >::getMaxOrder(), FTps< double, 2 >::makeVariable(), BMultipoleField::normal(), BMultipoleField::order(), FTps< T, N >::setTruncOrder(), BMultipoleField::skew(), and AbstractTracker::X.
Referenced by applyThinSBend().
|
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, 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 endl(), gmsg, Tracker::itsBunch_m, itsDataSink_m, itsOpalBeamline_m, Options::psDumpFreq, referenceToLabCSTrafo_m, RefPartP_m, RefPartR_m, Options::statDumpFreq, 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(), OpalData::getInstance(), gmsg, Tracker::itsBunch_m, prepareSections(), RefPartP_m, RefPartR_m, 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 ANY, elements_m, hamiltonian_m, itsOpalBeamline_m, AbstractTracker::itsReference, threshold_m, zstart_m, and zstop_m.
Referenced by execute().
|
inherited |
|
inlinevirtualinherited |
|
privatedelete |
|
private |
Definition at line 377 of file ThickTracker.cpp.
Referenced by advanceParticles_m().
| void ThickTracker::prepareSections | ( | ) |
Definition at line 123 of file ThickTracker.cpp.
References Tracker::itsBeamline_m, and itsOpalBeamline_m.
Referenced by execute().
|
inlinevirtualinherited |
|
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(), 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, and Tracker::itsBunch_m.
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 Tracker::itsBunch_m.
Referenced by advanceParticles_m().
|
private |
Definition at line 389 of file ThickTracker.cpp.
Referenced by advanceParticles_m().
|
virtual |
Apply the algorithm to a beam line.
Reimplemented from DefaultVisitor.
Definition at line 105 of file ThickTracker.cpp.
References endl(), TBeamline< T >::getInitialDirection(), TBeamline< T >::getOrigin3D(), TBeamline< T >::getRelativeFlag(), gmsg, TBeamline< T >::iterate(), itsOpalBeamline_m, OpalBeamline::merge(), and OpalBeamline::swap().
|
inlinevirtual |
Apply the algorithm to a collimator.
Reimplemented from DefaultVisitor.
Definition at line 338 of file ThickTracker.h.
References throwElementError_m().
|
virtualinherited |
Store the bunch.
Apply the algorithm to an arbitrary component.
Reimplemented from DefaultVisitor.
Definition at line 117 of file Tracker.cpp.
References DefaultVisitor::back_beam, DefaultVisitor::back_track, itsBunch_m, AbstractTracker::itsReference, and Component::trackBunch().
|
inlinevirtual |
Apply the algorithm to a closed orbit corrector.
Reimplemented from DefaultVisitor.
Definition at line 344 of file ThickTracker.h.
References throwElementError_m().
|
virtualinherited |
Apply the algorithm to an cyclotron.
Implements BeamlineVisitor.
Reimplemented in ParallelCyclotronTracker.
Definition at line 97 of file DefaultVisitor.cpp.
References applyDefault().
|
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 elements_m, ElementBase::getElementLength(), Drift::getNSlices(), hamiltonian_m, Tracker::itsBunch_m, itsOpalBeamline_m, and AbstractTracker::itsReference.
|
virtualinherited |
Apply the algorithm to a FlaggedElmPtr.
Implements BeamlineVisitor.
Reimplemented in Flagger, RangeSelector, and Replacer.
Definition at line 220 of file DefaultVisitor.cpp.
References ElementBase::accept(), ElmPtr::getElement(), FlaggedElmPtr::getReflectionFlag(), and local_flip.
Referenced by RangeSelector::handleBeamline(), RangeSelector::handleElement(), Flagger::visitFlaggedElmPtr(), and Replacer::visitFlaggedElmPtr().
|
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, elements_m, ElementBase::getElementLength(), Multipole::getField(), BMultipoleField::getNormalComponent(), Multipole::getNSlices(), hamiltonian_m, Tracker::itsBunch_m, itsOpalBeamline_m, and AbstractTracker::itsReference.
|
virtualinherited |
Apply the algorithm to to an arbitrary multipole.
Implements BeamlineVisitor.
Reimplemented in ParallelCyclotronTracker, and ParallelTTracker.
Definition at line 125 of file DefaultVisitor.cpp.
References applyDefault().
|
virtualinherited |
Apply the algorithm to an offset (placement).
Implements BeamlineVisitor.
Reimplemented in ParallelCyclotronTracker.
Definition at line 129 of file DefaultVisitor.cpp.
References applyDefault().
|
virtualinherited |
Apply the algorithm to an output plane.
Implements BeamlineVisitor.
Reimplemented in ParallelCyclotronTracker.
Definition at line 133 of file DefaultVisitor.cpp.
References applyDefault().
|
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().
|
virtualinherited |
Apply the algorithm to a rectangular bend.
Reimplemented from BeamlineVisitor.
Reimplemented in ParallelTTracker.
Definition at line 145 of file DefaultVisitor.cpp.
References applyDefault().
|
inlinevirtual |
Apply the algorithm to a RF cavity.
Reimplemented from DefaultVisitor.
Definition at line 419 of file ThickTracker.h.
References throwElementError_m().
|
virtualinherited |
Apply the algorithm to a ring.
Implements BeamlineVisitor.
Reimplemented in ParallelCyclotronTracker.
Definition at line 153 of file DefaultVisitor.cpp.
References applyDefault().
|
inlinevirtual |
Apply the algorithm to a sector bend.
Reimplemented from DefaultVisitor.
Definition at line 425 of file ThickTracker.h.
References Physics::c, elements_m, SBend::getB(), BendBase::getDesignEnergy(), ElementBase::getElementLength(), BendBase::getEntranceAngle(), Bend2D::getExitAngle(), Bend2D::getNSlices(), hamiltonian_m, Tracker::itsBunch_m, itsOpalBeamline_m, and AbstractTracker::itsReference.
|
virtualinherited |
Apply the algorithm to a sector bend with 3D field map.
Implements BeamlineVisitor.
Reimplemented in ParallelCyclotronTracker.
Definition at line 161 of file DefaultVisitor.cpp.
References applyDefault().
|
virtualinherited |
Apply the algorithm to a scaling FFA magnet.
Implements BeamlineVisitor.
Reimplemented in ParallelCyclotronTracker.
Definition at line 165 of file DefaultVisitor.cpp.
References applyDefault().
|
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().
|
virtualinherited |
Apply the algorithm to a source.
Implements BeamlineVisitor.
Reimplemented in ParallelTTracker.
Definition at line 177 of file DefaultVisitor.cpp.
References applyDefault().
|
virtualinherited |
Apply the algorithm to a particle stripper.
Implements BeamlineVisitor.
Reimplemented in ParallelCyclotronTracker.
Definition at line 181 of file DefaultVisitor.cpp.
References applyDefault().
|
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().
|
virtualinherited |
Apply the algorithm to a a variable RF cavity.
Implements BeamlineVisitor.
Reimplemented in ParallelCyclotronTracker.
Definition at line 199 of file DefaultVisitor.cpp.
References applyDefault().
|
virtualinherited |
Apply the algorithm to a a variable RF cavity with Fringe Field.
Implements BeamlineVisitor.
Reimplemented in ParallelCyclotronTracker.
Definition at line 203 of file DefaultVisitor.cpp.
References applyDefault().
|
virtualinherited |
Apply the algorithm to a vertical FFA magnet.
Implements BeamlineVisitor.
Reimplemented in ParallelCyclotronTracker.
Definition at line 208 of file DefaultVisitor.cpp.
References applyDefault().
|
private |
Writes map (Transfermap) in .map file @map text for .map file
Definition at line 400 of file ThickTracker.cpp.
References OpalData::getInputBasename(), OpalData::getInstance(), and IpplInfo::myNode().
Referenced by track_m().
|
protectedinherited |
Definition at line 155 of file DefaultVisitor.h.
Referenced by DefaultVisitor(), execute(), and Tracker::visitComponent().
|
protectedinherited |
Definition at line 157 of file DefaultVisitor.h.
Referenced by DefaultVisitor().
|
protectedinherited |
Definition at line 156 of file DefaultVisitor.h.
Referenced by DefaultVisitor(), execute(), ParallelTTracker::execute(), ParallelTTracker::findStartPosition(), ParallelTTracker::updateReferenceParticle(), and Tracker::visitComponent().
|
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().
|
protectedinherited |
Definition at line 160 of file DefaultVisitor.h.
Referenced by DefaultVisitor().
|
protectedinherited |
Definition at line 161 of file DefaultVisitor.h.
Referenced by DefaultVisitor().
|
private |
Definition at line 314 of file ThickTracker.h.
Referenced by fillGaps_m(), ThickTracker(), ThickTracker(), visitDrift(), visitMultipole(), and visitSBend().
|
inherited |
Definition at line 122 of file Tracker.h.
Referenced by ParallelTTracker::prepareSections(), ThickTracker::prepareSections(), and Tracker().
|
protectedinherited |
The bunch of particles to be tracked.
Definition at line 151 of file Tracker.h.
Referenced by addToBunch(), ThickTracker::advanceDispersion_m(), ThickTracker::advanceParticles_m(), applyDrift(), ParallelTTracker::applyFractionalStep(), ParallelCyclotronTracker::applyPluginElements(), applyThinMultipole(), applyThinSBend(), applyTransform(), ParallelTTracker::autophaseCavities(), ParallelCyclotronTracker::bgf_main_collision_test(), ParallelCyclotronTracker::borisExternalFields(), ParallelCyclotronTracker::bunchDumpPhaseSpaceData(), ParallelCyclotronTracker::bunchDumpStatData(), ParallelCyclotronTracker::bunchMode_m(), ParallelCyclotronTracker::calcMeanP(), ParallelCyclotronTracker::calcMeanR(), ParallelTTracker::changeDT(), ParallelCyclotronTracker::checkFileMomentum(), ParallelCyclotronTracker::checkNumPart(), ParallelTTracker::computeExternalFields(), ParallelTTracker::computeParticleMatterInteraction(), ParallelCyclotronTracker::computePathLengthUpdate(), ParallelTTracker::computeSpaceChargeFields(), ParallelCyclotronTracker::computeSpaceChargeFields_m(), ParallelTTracker::computeWakefield(), ParallelCyclotronTracker::deleteParticle(), ParallelTTracker::doBinaryRepartition(), ThickTracker::dump_m(), ParallelTTracker::dumpStats(), ParallelTTracker::emitParticles(), ParallelTTracker::evenlyDistributeParticles(), ParallelCyclotronTracker::execute(), ParallelTTracker::execute(), ThickTracker::execute(), ParallelCyclotronTracker::finalizeTracking_m(), ParallelTTracker::findStartPosition(), ParallelCyclotronTracker::gapCrossKick_m(), ParallelCyclotronTracker::GenericTracker(), getBunch(), ParallelCyclotronTracker::getFieldsAtPoint(), ParallelCyclotronTracker::globalToLocal(), ParallelTTracker::hasEndOfLineReached(), ParallelCyclotronTracker::initDistInGlobalFrame(), ParallelCyclotronTracker::initializeTracking_m(), ParallelCyclotronTracker::initTrackOrbitFile(), ParallelCyclotronTracker::injectBunch(), ParallelCyclotronTracker::isMultiBunch(), ParallelCyclotronTracker::kick(), ParallelTTracker::kickParticles(), ParallelCyclotronTracker::localToGlobal(), ParallelCyclotronTracker::MtsTracker(), ParallelTTracker::prepareEmission(), ParallelCyclotronTracker::push(), ParallelTTracker::pushParticles(), ParallelCyclotronTracker::repartition(), ParallelCyclotronTracker::RFkick(), ParallelCyclotronTracker::rotateAroundX(), ParallelCyclotronTracker::rotateAroundZ(), ParallelCyclotronTracker::rotateWithQuaternion(), ParallelCyclotronTracker::saveInjectValues(), ParallelTTracker::selectDT(), ParallelCyclotronTracker::seoMode_m(), ParallelTTracker::setTime(), ParallelCyclotronTracker::setTimeStep(), ParallelCyclotronTracker::singleMode_m(), ParallelCyclotronTracker::singleParticleDump(), ParallelTTracker::timeIntegration2(), ThickTracker::track_m(), Tracker(), ParallelTTracker::transformBunch(), ParallelCyclotronTracker::update_m(), ThickTracker::update_m(), ThickTracker::updateParticle_m(), ParallelCyclotronTracker::updatePathLength(), ParallelTTracker::updateReferenceParticle(), ParallelTTracker::updateRefToLabCSTrafo(), ParallelCyclotronTracker::updateTime(), ParallelCyclotronTracker::visitCCollimator(), ParallelTTracker::visitCCollimator(), visitComponent(), ParallelTTracker::visitCorrector(), ParallelCyclotronTracker::visitCyclotron(), ParallelTTracker::visitDegrader(), ParallelTTracker::visitDrift(), ThickTracker::visitDrift(), ParallelTTracker::visitFlexibleCollimator(), ParallelTTracker::visitMarker(), ParallelTTracker::visitMonitor(), ParallelTTracker::visitMultipole(), ThickTracker::visitMultipole(), ParallelTTracker::visitMultipoleT(), ParallelCyclotronTracker::visitOutputPlane(), ParallelCyclotronTracker::visitProbe(), ParallelTTracker::visitProbe(), ParallelTTracker::visitRBend(), ParallelTTracker::visitRBend3D(), ParallelCyclotronTracker::visitRFCavity(), ParallelTTracker::visitRFCavity(), ParallelCyclotronTracker::visitRing(), ParallelTTracker::visitSBend(), ThickTracker::visitSBend(), ParallelCyclotronTracker::visitSeptum(), ParallelTTracker::visitSeptum(), ParallelTTracker::visitSolenoid(), ParallelTTracker::visitSource(), ParallelCyclotronTracker::visitStripper(), ParallelTTracker::visitTravelingWave(), ParallelCyclotronTracker::visitVacuum(), ParallelTTracker::visitVacuum(), and ParallelTTracker::writePhaseSpace().
|
private |
Definition at line 319 of file ThickTracker.h.
Referenced by dump_m(), ThickTracker(), and ThickTracker().
|
protectedinherited |
Definition at line 152 of file DefaultVisitor.h.
Referenced by DefaultVisitor(), and execute().
|
private |
Definition at line 321 of file ThickTracker.h.
Referenced by checkElementOrder_m(), dump_m(), fillGaps_m(), prepareSections(), ThickTracker(), ThickTracker(), visitBeamline(), visitDrift(), visitMultipole(), and visitSBend().
|
protectedinherited |
The reference information.
Definition at line 54 of file AbstractTracker.h.
Referenced by AbstractTracker(), Tracker::applyDrift(), Tracker::applyTransform(), ParallelTTracker::autophaseCavities(), ParallelTTracker::computeParticleMatterInteraction(), ParallelTTracker::execute(), ThickTracker::fillGaps_m(), ParallelCyclotronTracker::injectBunch(), Tracker::visitComponent(), ParallelCyclotronTracker::visitCyclotron(), ThickTracker::visitDrift(), ThickTracker::visitMultipole(), ParallelCyclotronTracker::visitRing(), and ThickTracker::visitSBend().
|
privateinherited |
Definition at line 176 of file DefaultVisitor.h.
Referenced by DefaultVisitor(), execute(), visitBeamline(), and visitFlaggedElmPtr().
|
private |
map accumulation along elements_m -> Transfermap
Definition at line 333 of file ThickTracker.h.
Referenced by concatenateMaps_m(), ThickTracker(), and ThickTracker().
|
private |
creation of elements_m
Definition at line 332 of file ThickTracker.h.
Referenced by ThickTracker(), and ThickTracker().
|
private |
track particles trough maps of elements_m
Definition at line 334 of file ThickTracker.h.
Referenced by ThickTracker(), ThickTracker(), and track_m().
|
private |
Definition at line 328 of file ThickTracker.h.
Referenced by dump_m(), ThickTracker(), and ThickTracker().
|
private |
Definition at line 317 of file ThickTracker.h.
Referenced by advanceParticles_m(), dump_m(), execute(), ThickTracker(), and ThickTracker().
|
private |
Definition at line 316 of file ThickTracker.h.
Referenced by advanceParticles_m(), dump_m(), execute(), ThickTracker(), and ThickTracker().
|
private |
Threshold for element overlaps and gaps.
Definition at line 325 of file ThickTracker.h.
Referenced by checkElementOrder_m(), fillGaps_m(), ThickTracker(), and ThickTracker().
|
private |
truncation order of map tracking
Definition at line 330 of file ThickTracker.h.
Referenced by concatenateMaps_m(), execute(), ThickTracker(), ThickTracker(), and track_m().
|
private |
Start of beam line.
Definition at line 323 of file ThickTracker.h.
Referenced by checkElementOrder_m(), execute(), fillGaps_m(), ThickTracker(), ThickTracker(), and track_m().
|
private |
End of beam line.
Definition at line 324 of file ThickTracker.h.
Referenced by fillGaps_m(), ThickTracker(), and ThickTracker().