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

Track using thick-lens algorithm. More...

#include <ThickTracker.h>

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

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 ()
 
- Public Member Functions inherited from Tracker
 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...
 
- Public Member Functions inherited from AbstractTracker
 AbstractTracker (const Beamline &, const PartData &, bool backBeam, bool backTrack)
 Constructor. More...
 
virtual ~AbstractTracker ()
 
- Public Member Functions inherited from DefaultVisitor
 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...
 
- Public Member Functions inherited from BeamlineVisitor
 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_tbeamline_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
 
DataSinkitsDataSink_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

- Public Types inherited from AbstractTracker
enum  {
  X , PX , Y , PY ,
  T , PT
}
 
- Public Attributes inherited from Tracker
FieldList cavities_m
 
const BeamlineitsBeamline_m
 
- Protected Member Functions inherited from Tracker
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...
 
- Protected Attributes inherited from Tracker
PartBunchBase< double, 3 > * itsBunch_m
 The bunch of particles to be tracked. More...
 
- Protected Attributes inherited from AbstractTracker
const PartData itsReference
 The reference information. More...
 
- Protected Attributes inherited from DefaultVisitor
const BeamlineitsLine
 
bool back_beam
 
bool back_track
 
bool back_path
 
double flip_B
 
double flip_s
 

Detailed Description

Track using thick-lens algorithm.

Definition at line 86 of file ThickTracker.h.

Member Typedef Documentation

◆ beamline_t

typedef std::list<tuple_t> ThickTracker::beamline_t
private

Definition at line 93 of file ThickTracker.h.

◆ fMatrix_t

typedef FMatrix<double, 6, 6> ThickTracker::fMatrix_t
private

Definition at line 94 of file ThickTracker.h.

◆ map_t

typedef FVps<double, 6> ThickTracker::map_t
private

Definition at line 90 of file ThickTracker.h.

◆ particle_t

typedef FVector<double, 6> ThickTracker::particle_t
private

Definition at line 91 of file ThickTracker.h.

◆ series_t

Definition at line 89 of file ThickTracker.h.

◆ tuple_t

typedef std::tuple<series_t, std::size_t, double> ThickTracker::tuple_t
private

Definition at line 92 of file ThickTracker.h.

Constructor & Destructor Documentation

◆ ThickTracker() [1/4]

ThickTracker::ThickTracker ( const Beamline bl,
const PartData data,
bool  revBeam,
bool  revTrack 
)
explicit

Constructor.

Definition at line 41 of file ThickTracker.cpp.

References Beamline::getInitialDirection(), Beamline::getOrigin3D(), CoordinateSystemTrafo::inverted(), and referenceToLabCSTrafo_m.

Here is the call graph for this function:

◆ ThickTracker() [2/4]

ThickTracker::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 
)
explicit

Constructor.

Definition at line 64 of file ThickTracker.cpp.

References Beamline::getInitialDirection(), Beamline::getOrigin3D(), CoordinateSystemTrafo::inverted(), and referenceToLabCSTrafo_m.

Here is the call graph for this function:

◆ ~ThickTracker()

ThickTracker::~ThickTracker ( )
virtual

Definition at line 100 of file ThickTracker.cpp.

◆ ThickTracker() [3/4]

ThickTracker::ThickTracker ( )
privatedelete

◆ ThickTracker() [4/4]

ThickTracker::ThickTracker ( const ThickTracker )
privatedelete

Member Function Documentation

◆ advanceDispersion_m()

void ThickTracker::advanceDispersion_m ( fMatrix_t  tempMatrix,
FMatrix< double, 1, 4 >  initialVal,
double  pos 
)
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} \]

Parameters
tempMatrixaccumulated Transfer map \(R\) at pos
initialValinitial Dispersion { \(\eta_{x0},\, \eta_{p_x0},\, \eta_{y0},\, \eta_{p_y0} \)}
posposition 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().

Here is the call graph for this function:

◆ advanceParticles_m()

void ThickTracker::advanceParticles_m ( const map_t map)
private

Advances itsBunch_m trough map

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

Here is the call graph for this function:

◆ applyEntranceFringe()

void ThickTracker::applyEntranceFringe ( double  edge,
double  curve,
const BMultipoleField field,
double  scale 
)
private

:TODO: Fringe fields for entrance of SBEND.

Parameters
edge
curve
field
scale

◆ applyExitFringe()

void ThickTracker::applyExitFringe ( double  edge,
double  curve,
const BMultipoleField field,
double  scale 
)
private

:TODO: Fringe fields for exit of SBEND.

Parameters
edge
curve
field
scale

◆ checkElementOrder_m()

void ThickTracker::checkElementOrder_m ( )
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().

Here is the call graph for this function:

◆ concatenateMaps_m()

void ThickTracker::concatenateMaps_m ( const map_t x,
map_t y 
)
private

Concatenate map x and y

\[ y = x \circ y \]

Parameters
x
yis 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().

Here is the call graph for this function:

◆ dump_m()

void ThickTracker::dump_m ( )
private

◆ execute()

void ThickTracker::execute ( )
virtual

◆ fillGaps_m()

void ThickTracker::fillGaps_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().

Here is the call graph for this function:

◆ operator=()

void ThickTracker::operator= ( const ThickTracker )
privatedelete

◆ particleToVector_m()

ThickTracker::particle_t ThickTracker::particleToVector_m ( const Vector_t R,
const Vector_t P 
) const
private

Definition at line 377 of file ThickTracker.cpp.

References Attrib::Distribution::R.

Referenced by advanceParticles_m().

◆ prepareSections()

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

Here is the call graph for this function:

◆ throwElementError_m()

void ThickTracker::throwElementError_m ( std::string  element)
inlineprivate

◆ track_m()

void ThickTracker::track_m ( )
private

◆ update_m()

void ThickTracker::update_m ( const double &  spos,
const std::size_t &  step 
)
private

◆ updateParticle_m()

void ThickTracker::updateParticle_m ( particle_t particle,
const map_t map 
)
private

Applies map on particle

Parameters
particletracked particle
mapMap 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().

Here is the call graph for this function:

◆ vectorToParticle_m()

void ThickTracker::vectorToParticle_m ( const particle_t particle,
Vector_t R,
Vector_t P 
) const
private

Definition at line 389 of file ThickTracker.cpp.

References Attrib::Distribution::R.

Referenced by advanceParticles_m().

◆ visitBeamline()

void ThickTracker::visitBeamline ( const Beamline bl)
virtual

◆ visitCCollimator()

void ThickTracker::visitCCollimator ( const CCollimator )
inlinevirtual

Apply the algorithm to a collimator.

Reimplemented from DefaultVisitor.

Definition at line 338 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

◆ visitCorrector()

void ThickTracker::visitCorrector ( const Corrector )
inlinevirtual

Apply the algorithm to a closed orbit corrector.

Reimplemented from DefaultVisitor.

Definition at line 344 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

◆ visitDegrader()

void ThickTracker::visitDegrader ( const Degrader )
inlinevirtual

Apply the algorithm to a degrader.

Reimplemented from DefaultVisitor.

Definition at line 350 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

◆ visitDrift()

void ThickTracker::visitDrift ( const Drift drift)
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().

Here is the call graph for this function:

◆ visitFlexibleCollimator()

void ThickTracker::visitFlexibleCollimator ( const FlexibleCollimator )
inlinevirtual

Apply the algorithm to a flexible collimator.

Reimplemented from DefaultVisitor.

Definition at line 369 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

◆ visitMarker()

void ThickTracker::visitMarker ( const Marker )
inlinevirtual

Apply the algorithm to a marker.

Reimplemented from DefaultVisitor.

Definition at line 375 of file ThickTracker.h.

◆ visitMonitor()

void ThickTracker::visitMonitor ( const Monitor )
inlinevirtual

Apply the algorithm to a beam position monitor.

Reimplemented from DefaultVisitor.

Definition at line 381 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

◆ visitMultipole()

void ThickTracker::visitMultipole ( const Multipole mult)
inlinevirtual

◆ visitProbe()

void ThickTracker::visitProbe ( const Probe )
inlinevirtual

Apply the algorithm to a probe.

Reimplemented from DefaultVisitor.

Definition at line 407 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

◆ visitRBend()

void ThickTracker::visitRBend ( const RBend )
inlinevirtual

Apply the algorithm to a rectangular bend.

Reimplemented from DefaultVisitor.

Definition at line 413 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

◆ visitRFCavity()

void ThickTracker::visitRFCavity ( const RFCavity )
inlinevirtual

Apply the algorithm to a RF cavity.

Reimplemented from DefaultVisitor.

Definition at line 419 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

◆ visitSBend()

void ThickTracker::visitSBend ( const SBend bend)
inlinevirtual

◆ visitSeptum()

void ThickTracker::visitSeptum ( const Septum )
inlinevirtual

Apply the algorithm to a septum.

Reimplemented from DefaultVisitor.

Definition at line 477 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

◆ visitSolenoid()

void ThickTracker::visitSolenoid ( const Solenoid )
inlinevirtual

Apply the algorithm to a solenoid.

Reimplemented from DefaultVisitor.

Definition at line 483 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

◆ visitTravelingWave()

void ThickTracker::visitTravelingWave ( const TravelingWave )
inlinevirtual

Apply the algorithm to a traveling wave.

Reimplemented from DefaultVisitor.

Definition at line 489 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

◆ visitVacuum()

void ThickTracker::visitVacuum ( const Vacuum )
inlinevirtual

Apply the algorithm to a vacuum space.

Reimplemented from DefaultVisitor.

Definition at line 495 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

◆ write_m()

void ThickTracker::write_m ( const map_t map)
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().

Here is the call graph for this function:

Member Data Documentation

◆ elements_m

beamline_t ThickTracker::elements_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().

◆ hamiltonian_m

Hamiltonian ThickTracker::hamiltonian_m
private

Definition at line 314 of file ThickTracker.h.

Referenced by fillGaps_m(), visitDrift(), visitMultipole(), and visitSBend().

◆ itsDataSink_m

DataSink* ThickTracker::itsDataSink_m
private

Definition at line 319 of file ThickTracker.h.

Referenced by dump_m().

◆ itsOpalBeamline_m

OpalBeamline ThickTracker::itsOpalBeamline_m
private

◆ mapCombination_m

IpplTimings::TimerRef ThickTracker::mapCombination_m
private

map accumulation along elements_m -> Transfermap

Definition at line 333 of file ThickTracker.h.

Referenced by concatenateMaps_m().

◆ mapCreation_m

IpplTimings::TimerRef ThickTracker::mapCreation_m
private

creation of elements_m

Definition at line 332 of file ThickTracker.h.

◆ mapTracking_m

IpplTimings::TimerRef ThickTracker::mapTracking_m
private

track particles trough maps of elements_m

Definition at line 334 of file ThickTracker.h.

Referenced by track_m().

◆ referenceToLabCSTrafo_m

CoordinateSystemTrafo ThickTracker::referenceToLabCSTrafo_m
private

Definition at line 328 of file ThickTracker.h.

Referenced by dump_m(), and ThickTracker().

◆ RefPartP_m

Vector_t ThickTracker::RefPartP_m
private

Definition at line 317 of file ThickTracker.h.

Referenced by advanceParticles_m(), dump_m(), and execute().

◆ RefPartR_m

Vector_t ThickTracker::RefPartR_m
private

Definition at line 316 of file ThickTracker.h.

Referenced by advanceParticles_m(), dump_m(), and execute().

◆ threshold_m

double ThickTracker::threshold_m
private

Threshold for element overlaps and gaps.

Definition at line 325 of file ThickTracker.h.

Referenced by checkElementOrder_m(), and fillGaps_m().

◆ truncOrder_m

int ThickTracker::truncOrder_m
private

truncation order of map tracking

Definition at line 330 of file ThickTracker.h.

Referenced by concatenateMaps_m(), execute(), and track_m().

◆ zstart_m

double ThickTracker::zstart_m
private

Start of beam line.

Definition at line 323 of file ThickTracker.h.

Referenced by checkElementOrder_m(), execute(), fillGaps_m(), and track_m().

◆ zstop_m

double ThickTracker::zstop_m
private

End of beam line.

Definition at line 324 of file ThickTracker.h.

Referenced by fillGaps_m().


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