OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
Tracker Class Reference

#include <Tracker.h>

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

Public Member Functions

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

Public Attributes

FieldList cavities_m
 
const BeamlineitsBeamline_m
 

Protected Member Functions

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

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
 

Private Member Functions

 Tracker ()
 
 Tracker (const Tracker &)
 
void operator= (const Tracker &)
 

Additional Inherited Members

- Public Types inherited from AbstractTracker
enum  {
  X , PX , Y , PY ,
  T , PT
}
 

Detailed Description

Definition at line 76 of file Tracker.h.

Constructor & Destructor Documentation

◆ Tracker() [1/4]

Tracker::Tracker ( const Beamline beamline,
const PartData reference,
bool  backBeam,
bool  backTrack 
)

Constructor.

Definition at line 82 of file Tracker.cpp.

◆ Tracker() [2/4]

Tracker::Tracker ( const Beamline beamline,
PartBunchBase< double, 3 > *  bunch,
const PartData reference,
bool  backBeam,
bool  backTrack 
)

Constructor.

Definition at line 88 of file Tracker.cpp.

◆ ~Tracker()

Tracker::~Tracker ( )
virtual

Definition at line 98 of file Tracker.cpp.

◆ Tracker() [3/4]

Tracker::Tracker ( )
private

◆ Tracker() [4/4]

Tracker::Tracker ( const Tracker )
private

Member Function Documentation

◆ addToBunch()

void Tracker::addToBunch ( const OpalParticle part)

Add particle to bunch.

Definition at line 107 of file Tracker.cpp.

References itsBunch_m, and PartBunchBase< T, Dim >::push_back().

Here is the call graph for this function:

◆ applyDrift()

void Tracker::applyDrift ( double  length)
protected

◆ applyThinMultipole()

void Tracker::applyThinMultipole ( const BMultipoleField field,
double  factor 
)
protected

◆ applyThinSBend()

void Tracker::applyThinSBend ( const BMultipoleField field,
double  scale,
double  h 
)
protected

◆ applyTransform()

void Tracker::applyTransform ( const Euclid3D euclid,
double  refLength = 0.0 
)
protected

◆ buildMultipoleVectorPotential()

Series Tracker::buildMultipoleVectorPotential ( const BMultipoleField field)
protected

◆ buildMultipoleVectorPotential2D()

Series2 Tracker::buildMultipoleVectorPotential2D ( const BMultipoleField field)
protected

Construct vector potential for a Multipole.

Definition at line 225 of file Tracker.cpp.

References FTps< T, N >::getMaxOrder(), FTps< T, N >::makeVariable(), BMultipoleField::normal(), BMultipoleField::order(), FTps< T, N >::setTruncOrder(), and BMultipoleField::skew().

Here is the call graph for this function:

◆ buildSBendVectorPotential()

Series Tracker::buildSBendVectorPotential ( const BMultipoleField field,
double  h 
)
protected

◆ buildSBendVectorPotential2D()

Series2 Tracker::buildSBendVectorPotential2D ( const BMultipoleField field,
double  h 
)
protected

◆ getBunch()

const PartBunchBase< double, 3 > * Tracker::getBunch ( ) const

Return the current bunch.

Definition at line 102 of file Tracker.cpp.

References itsBunch_m.

◆ getNumBunch()

virtual short Tracker::getNumBunch ( )
inlinevirtual

get total number of tracked bunches

Definition at line 117 of file Tracker.h.

◆ operator=()

void Tracker::operator= ( const Tracker )
private

◆ setNumBunch()

virtual void Tracker::setNumBunch ( short  )
inlinevirtual

set total number of tracked bunches

Definition at line 114 of file Tracker.h.

◆ visitComponent()

void Tracker::visitComponent ( const Component comp)
virtual

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

Here is the call graph for this function:

Member Data Documentation

◆ cavities_m

FieldList Tracker::cavities_m

Definition at line 120 of file Tracker.h.

◆ itsBeamline_m

const Beamline& Tracker::itsBeamline_m

Definition at line 122 of file Tracker.h.

Referenced by ParallelTTracker::prepareSections(), and ThickTracker::prepareSections().

◆ itsBunch_m

PartBunchBase<double, 3>* Tracker::itsBunch_m
protected

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::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(), 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::singleMode_m(), ParallelCyclotronTracker::singleParticleDump(), ParallelTTracker::timeIntegration2(), ThickTracker::track_m(), ParallelTTracker::transformBunch(), ThickTracker::update_m(), ParallelCyclotronTracker::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::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(), ThickTracker::visitVacuum(), and ParallelTTracker::writePhaseSpace().


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