OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Public Types | Public Member Functions | 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 Types

typedef Hamiltonian::series_t series_t
 
typedef MapAnalyser::fMatrix_t fMatrix_t
 
typedef MapAnalyser::cfMatrix_t cfMatrix_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
 
- Public Types inherited from AbstractTracker
enum  {
  X, PX, Y, PY,
  T, PT
}
 

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 visitAlignWrapper (const AlignWrapper &)
 Apply the algorithm to an align wrapper. More...
 
virtual void visitBeamBeam (const BeamBeam &)
 Apply the algorithm to a BeamBeam. More...
 
virtual void visitBeamStripping (const BeamStripping &)
 Apply the algorithm to a BeamStripping. More...
 
virtual void visitCCollimator (const CCollimator &)
 Apply the algorithm to a collimator. More...
 
virtual void visitCorrector (const Corrector &)
 Apply the algorithm to a Corrector. More...
 
virtual void visitDegrader (const Degrader &)
 Apply the algorithm to a Degrader. More...
 
virtual void visitDiagnostic (const Diagnostic &)
 Apply the algorithm to a Diagnostic. More...
 
virtual void visitDrift (const Drift &)
 Apply the algorithm to a Drift. More...
 
virtual void visitFlexibleCollimator (const FlexibleCollimator &)
 Apply the algorithm to a flexible collimator. More...
 
virtual void visitLambertson (const Lambertson &)
 Apply the algorithm to a Lambertson. More...
 
virtual void visitMarker (const Marker &)
 Apply the algorithm to a Marker. More...
 
virtual void visitMonitor (const Monitor &)
 Apply the algorithm to a 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 RBend. More...
 
virtual void visitRFCavity (const RFCavity &)
 Apply the algorithm to a RFCavity. More...
 
virtual void visitTravelingWave (const TravelingWave &)
 Apply the algorithm to a RFCavity. More...
 
virtual void visitRFQuadrupole (const RFQuadrupole &)
 Apply the algorithm to a RFQuadrupole. More...
 
virtual void visitSBend (const SBend &)
 Apply the algorithm to a SBend. More...
 
virtual void visitSeparator (const Separator &)
 Apply the algorithm to a Separator. 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 visitParallelPlate (const ParallelPlate &)
 Apply the algorithm to a ParallelPlate. More...
 
virtual void visitCyclotronValley (const CyclotronValley &)
 Apply the algorithm to a CyclotronValley. More...
 
virtual void visitBeamline (const Beamline &)
 Apply the algorithm to a beam line. More...
 
virtual void execute ()
 Apply the algorithm to the top-level beamline. 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 visitPatch (const Patch &pat)
 Apply the algorithm to a patch. More...
 
virtual void visitTrackIntegrator (const TrackIntegrator &)
 Apply the algorithm to an integrator capable of tracking. More...
 
virtual void visitMapIntegrator (const MapIntegrator &)
 Apply the algorithm to an integrator capable of mapping. More...
 
virtual void setNumBunch (int)
 set total number of tracked bunches More...
 
virtual int 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 visitCyclotron (const Cyclotron &)
 Apply the algorithm to an cyclotron. More...
 
virtual void visitRing (const Ring &)
 Apply the algorithm to an opal ring.. More...
 
virtual void visitMultipoleT (const MultipoleT &)
 Apply the algorithm to a multipoleT. More...
 
virtual void visitMultipoleTStraight (const MultipoleTStraight &)
 Apply the algorithm to a multipoleTStraight. More...
 
virtual void visitMultipoleTCurvedConstRadius (const MultipoleTCurvedConstRadius &)
 Apply the algorithm to a multipoleTCurvedConstRadius. More...
 
virtual void visitMultipoleTCurvedVarRadius (const MultipoleTCurvedVarRadius &)
 Apply the algorithm to a multipoleTCurvedVarRadius. More...
 
virtual void visitOffset (const Offset &)
 Apply the algorithm to an Offset. More...
 
virtual void visitRBend3D (const RBend3D &)
 Apply the algorithm to a rectangular bend. More...
 
virtual void visitVariableRFCavity (const VariableRFCavity &vcav)
 Apply the algorithm to a RF cavity. More...
 
virtual void visitVariableRFCavityFringeField (const VariableRFCavityFringeField &vcav)
 Apply the algorithm to a RF cavity. More...
 
virtual void visitSBend3D (const SBend3D &)
 Apply the algorithm to a sector bend. More...
 
virtual void visitScalingFFAMagnet (const ScalingFFAMagnet &)
 Apply the algorithm to a scaling FFA magnet. More...
 
virtual void visitVerticalFFAMagnet (const VerticalFFAMagnet &)
 Apply the algorithm to a RF cavity. More...
 
virtual void visitSource (const Source &)
 Apply the algorithm to a source. More...
 
virtual void visitStripper (const Stripper &)
 Apply the algorithm to a charge stripper. More...
 
virtual void visitFlaggedElmPtr (const FlaggedElmPtr &)
 Apply the algorithm to a FlaggedElmPtr. More...
 
virtual void visitCorrectorWrapper (const CorrectorWrapper &)
 Apply the algorithm to an corrector wrapper.. More...
 
virtual void visitCyclotronWrapper (const CyclotronWrapper &)
 Apply the algorithm to an cyclotron wrapper.. More...
 
virtual void visitMultipoleWrapper (const MultipoleWrapper &)
 Apply the algorithm to an multipole wrapper.. More...
 
virtual void visitRBendWrapper (const RBendWrapper &)
 Apply the algorithm to an RBend wrapper.. More...
 
virtual void visitSBendWrapper (const SBendWrapper &)
 Apply the algorithm to an SBend wrapper.. More...
 
virtual void visitIntegrator (const Integrator &)
 Apply the algorithm to a generic integrator. More...
 
- Public Member Functions inherited from BeamlineVisitor
 BeamlineVisitor ()
 
virtual ~BeamlineVisitor ()
 

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
 
MapAnalyser mapAnalyser_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 Attributes inherited from Tracker
FieldList cavities_m
 set multipacting flag More...
 
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 104 of file ThickTracker.h.

Member Typedef Documentation

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

Definition at line 113 of file ThickTracker.h.

Definition at line 109 of file ThickTracker.h.

Definition at line 108 of file ThickTracker.h.

typedef FVps<double, 6> ThickTracker::map_t

Definition at line 110 of file ThickTracker.h.

typedef FVector<double, 6> ThickTracker::particle_t

Definition at line 111 of file ThickTracker.h.

Definition at line 107 of file ThickTracker.h.

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

Definition at line 112 of file ThickTracker.h.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 38 of file ThickTracker.cpp.

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

Here is the call graph for this function:

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 61 of file ThickTracker.cpp.

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

Here is the call graph for this function:

ThickTracker::~ThickTracker ( )
virtual

Definition at line 97 of file ThickTracker.cpp.

ThickTracker::ThickTracker ( )
privatedelete
ThickTracker::ThickTracker ( const ThickTracker )
privatedelete

Member Function Documentation

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

void ThickTracker::advanceParticles_m ( const map_t map)
private

Advances itsBunch_m trough map

Parameters
mapMap of slice

Definition at line 423 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:

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

Tests the order of the elements in the beam line according to their position

Definition at line 234 of file ThickTracker.cpp.

References ElementBase::ANY, elements_m, OpalBeamline::getElementByType(), itsOpalBeamline_m, threshold_m, and zstart_m.

Referenced by execute().

Here is the call graph for this function:

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

void ThickTracker::dump_m ( )
private
void ThickTracker::execute ( )
virtual
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 264 of file ThickTracker.cpp.

References abs(), ElementBase::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:

void ThickTracker::operator= ( const ThickTracker )
privatedelete
ThickTracker::particle_t ThickTracker::particleToVector_m ( const Vector_t R,
const Vector_t P 
) const
private

Definition at line 374 of file ThickTracker.cpp.

References Attrib::Distribution::R.

Referenced by advanceParticles_m().

void ThickTracker::prepareSections ( )

Definition at line 120 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:

void ThickTracker::throwElementError_m ( std::string  element)
inlineprivate
void ThickTracker::track_m ( )
private
void ThickTracker::update_m ( const double &  spos,
const std::size_t &  step 
)
private
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 448 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:

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

Definition at line 386 of file ThickTracker.cpp.

References Attrib::Distribution::R.

Referenced by advanceParticles_m().

void ThickTracker::visitAlignWrapper ( const AlignWrapper wrap)
inlinevirtual

Apply the algorithm to an align wrapper.

Reimplemented from Tracker.

Definition at line 387 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitBeamBeam ( const BeamBeam bb)
inlinevirtual

Apply the algorithm to a BeamBeam.

Reimplemented from DefaultVisitor.

Definition at line 392 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitBeamline ( const Beamline bl)
virtual
void ThickTracker::visitBeamStripping ( const BeamStripping bstp)
inlinevirtual

Apply the algorithm to a BeamStripping.

Reimplemented from DefaultVisitor.

Definition at line 397 of file ThickTracker.h.

References Tracker::itsBunch_m, itsOpalBeamline_m, and OpalBeamline::visit().

Here is the call graph for this function:

void ThickTracker::visitCCollimator ( const CCollimator coll)
inlinevirtual

Apply the algorithm to a collimator.

Reimplemented from DefaultVisitor.

Definition at line 401 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitCorrector ( const Corrector corr)
inlinevirtual

Apply the algorithm to a Corrector.

Reimplemented from DefaultVisitor.

Definition at line 407 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitCyclotronValley ( const CyclotronValley cv)
inlinevirtual

Apply the algorithm to a CyclotronValley.

Reimplemented from DefaultVisitor.

Definition at line 586 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitDegrader ( const Degrader deg)
inlinevirtual

Apply the algorithm to a Degrader.

Reimplemented from DefaultVisitor.

Definition at line 413 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitDiagnostic ( const Diagnostic diag)
inlinevirtual

Apply the algorithm to a Diagnostic.

Reimplemented from DefaultVisitor.

Definition at line 419 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitDrift ( const Drift drift)
inlinevirtual
void ThickTracker::visitFlexibleCollimator ( const FlexibleCollimator coll)
inlinevirtual

Apply the algorithm to a flexible collimator.

Reimplemented from DefaultVisitor.

Definition at line 439 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitLambertson ( const Lambertson lamb)
inlinevirtual

Apply the algorithm to a Lambertson.

Reimplemented from DefaultVisitor.

Definition at line 445 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitMarker ( const Marker marker)
inlinevirtual

Apply the algorithm to a Marker.

Reimplemented from DefaultVisitor.

Definition at line 451 of file ThickTracker.h.

void ThickTracker::visitMonitor ( const Monitor mon)
inlinevirtual

Apply the algorithm to a Monitor.

Reimplemented from DefaultVisitor.

Definition at line 457 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitMultipole ( const Multipole mult)
inlinevirtual
void ThickTracker::visitParallelPlate ( const ParallelPlate pplate)
inlinevirtual

Apply the algorithm to a ParallelPlate.

Reimplemented from DefaultVisitor.

Definition at line 581 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitProbe ( const Probe prob)
inlinevirtual

Apply the algorithm to a Probe.

Reimplemented from DefaultVisitor.

Definition at line 482 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitRBend ( const RBend bend)
inlinevirtual

Apply the algorithm to a RBend.

Reimplemented from DefaultVisitor.

Definition at line 488 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitRFCavity ( const RFCavity as)
inlinevirtual

Apply the algorithm to a RFCavity.

Reimplemented from DefaultVisitor.

Definition at line 494 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitRFQuadrupole ( const RFQuadrupole rfq)
inlinevirtual

Apply the algorithm to a RFQuadrupole.

Reimplemented from DefaultVisitor.

Definition at line 505 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitSBend ( const SBend bend)
inlinevirtual
void ThickTracker::visitSeparator ( const Separator sep)
inlinevirtual

Apply the algorithm to a Separator.

Reimplemented from DefaultVisitor.

Definition at line 563 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitSeptum ( const Septum sept)
inlinevirtual

Apply the algorithm to a Septum.

Reimplemented from DefaultVisitor.

Definition at line 569 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitSolenoid ( const Solenoid solenoid)
inlinevirtual

Apply the algorithm to a Solenoid.

Reimplemented from DefaultVisitor.

Definition at line 575 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::visitTravelingWave ( const TravelingWave as)
inlinevirtual

Apply the algorithm to a RFCavity.

Reimplemented from DefaultVisitor.

Definition at line 499 of file ThickTracker.h.

References throwElementError_m().

Here is the call graph for this function:

void ThickTracker::write_m ( const map_t map)
private

Writes map (Transfermap) in .map file text for .map file

Definition at line 397 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

beamline_t ThickTracker::elements_m
private

elements in beam line

Definition at line 375 of file ThickTracker.h.

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

Hamiltonian ThickTracker::hamiltonian_m
private

Definition at line 361 of file ThickTracker.h.

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

DataSink* ThickTracker::itsDataSink_m
private

Definition at line 368 of file ThickTracker.h.

Referenced by dump_m().

OpalBeamline ThickTracker::itsOpalBeamline_m
private
MapAnalyser ThickTracker::mapAnalyser_m
private

Definition at line 362 of file ThickTracker.h.

IpplTimings::TimerRef ThickTracker::mapCombination_m
private

map accumulation along elements_m -> Transfermap

Definition at line 383 of file ThickTracker.h.

Referenced by concatenateMaps_m().

IpplTimings::TimerRef ThickTracker::mapCreation_m
private

creation of elements_m

Definition at line 382 of file ThickTracker.h.

IpplTimings::TimerRef ThickTracker::mapTracking_m
private

track particles trough maps of elements_m

Definition at line 384 of file ThickTracker.h.

Referenced by track_m().

CoordinateSystemTrafo ThickTracker::referenceToLabCSTrafo_m
private

Definition at line 377 of file ThickTracker.h.

Referenced by dump_m(), and ThickTracker().

Vector_t ThickTracker::RefPartP_m
private

Definition at line 366 of file ThickTracker.h.

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

Vector_t ThickTracker::RefPartR_m
private

Definition at line 365 of file ThickTracker.h.

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

double ThickTracker::threshold_m
private

Threshold for element overlaps and gaps.

Definition at line 374 of file ThickTracker.h.

Referenced by checkElementOrder_m(), and fillGaps_m().

int ThickTracker::truncOrder_m
private

truncation order of map tracking

Definition at line 380 of file ThickTracker.h.

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

double ThickTracker::zstart_m
private

Start of beam line.

Definition at line 372 of file ThickTracker.h.

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

double ThickTracker::zstop_m
private

End of beam line.

Definition at line 373 of file ThickTracker.h.

Referenced by fillGaps_m().


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