OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
Tracker Class Reference

#include <Tracker.h>

Inheritance diagram for Tracker:
Inheritance graph
Collaboration diagram for Tracker:
Collaboration graph

Public Types

enum  {
  X , PX , Y , PY ,
  T , PT
}
 

Public Member Functions

 Tracker (const Beamline &, bool backBeam, bool backTrack)
 Constructor.
 
 Tracker (const Beamline &, PartBunch_t &bunch, bool backBeam, bool backTrack)
 Construct a tracker that borrows an existing particle bunch.
 
virtual ~Tracker ()
 
PartBunch_tgetBunch () const
 Return the currently attached borrowed 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
 
void execute () override
 Apply the algorithm to the top-level beamline.
 
void visitBeamline (const Beamline &) override
 Apply the algorithm to a beam line.
 
void visitConstantEFieldCavity (const ConstantEFieldCavity &) override
 Apply the algorithm to a constant E-field cavity element.
 
void visitDrift (const Drift &) override
 Apply the algorithm to a drift space.
 
void visitLaser (const Laser &) override
 Apply the algorithm to a laser.
 
void visitFlaggedElmPtr (const FlaggedElmPtr &) override
 Apply the algorithm to a FlaggedElmPtr.
 
void visitMarker (const Marker &) override
 Apply the algorithm to a marker.
 
void visitMonitor (const Monitor &) override
 Apply the algorithm to a beam position monitor.
 
void visitMultipole (const Multipole &) override
 Apply the algorithm to a multipole.
 
void visitMultipoleT (const MultipoleT &) override
 Apply the algorithm to an arbitrary multipole.
 
void visitRBend (const RBend &) override
 Apply the algorithm to a rectangular bend.
 
void visitRing (const Ring &) override
 Apply the algorithm to a Ring.
 
void visitSBend (const SBend &) override
 Apply the algorithm to a sector bend.
 
void visitRFCavity (const RFCavity &) override
 Apply the algorithm to a RF cavity.
 
void visitSolenoid (const Solenoid &) override
 Apply the algorithm to a Solenoid.
 
void visitTravelingWave (const TravelingWave &) override
 Apply the algorithm to a traveling wave.
 
void visitScalingFFAMagnet (const ScalingFFAMagnet &spiral) override
 Apply the algorithm to a scaling FFA magnet.
 
void visitVerticalFFAMagnet (const VerticalFFAMagnet &) override
 Apply the algorithm to a vertical FFA magnet.
 
void visitVariableRFCavity (const VariableRFCavity &) override
 Apply the algorithm to a variable RF cavity.
 
void visitProbe (const Probe &prob) override
 Apply the algorithm to a Probe.
 

Public Attributes

FieldList cavities_m
 
const BeamlineitsBeamline_m
 

Protected Attributes

PartBunch_titsBunch_m
 The bunch of particles to be tracked. Borrowed; lifetime is managed by TrackRun.
 
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 &)
 
virtual void applyDefault (const ElementBase &)
 

Private Attributes

bool local_flip
 

Detailed Description

Definition at line 76 of file Tracker.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
inherited
Enumerator
PX 
PY 
PT 

Definition at line 36 of file AbstractTracker.h.

Constructor & Destructor Documentation

◆ Tracker() [1/4]

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

Constructor.

Definition at line 76 of file Tracker.cpp.

◆ Tracker() [2/4]

Tracker::Tracker ( const Beamline beamline,
PartBunch_t bunch,
bool  backBeam,
bool  backTrack 
)

Construct a tracker that borrows an existing particle bunch.

Parameters
bunchParticle bunch to track. Ownership remains with the caller.

Definition at line 81 of file Tracker.cpp.

◆ ~Tracker()

Tracker::~Tracker ( )
virtual

Definition at line 84 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 )

Add particle to bunch.

Definition at line 93 of file Tracker.cpp.

References gmsg.

◆ applyDefault()

◆ execute()

void DefaultVisitor::execute ( )
overridevirtualinherited

Apply the algorithm to the top-level beamline.

Implements BeamlineVisitor.

Reimplemented in ParallelTracker, RangeSelector, and Selector.

Definition at line 54 of file DefaultVisitor.cpp.

References ElementBase::accept(), DefaultVisitor::back_beam, DefaultVisitor::back_track, DefaultVisitor::itsLine, and DefaultVisitor::local_flip.

Referenced by RangeSelector::execute(), Line::replace(), Sequence::replace(), and Select::select().

Here is the call graph for this function:

◆ getBunch()

PartBunch_t & Tracker::getBunch ( ) const

Return the currently attached borrowed bunch.

Definition at line 86 of file Tracker.cpp.

References itsBunch_m.

◆ getNumBunch()

virtual short Tracker::getNumBunch ( )
inlinevirtual

get total number of tracked bunches

Definition at line 110 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 107 of file Tracker.h.

◆ visitBeamline()

void DefaultVisitor::visitBeamline ( const Beamline bl)
overridevirtualinherited

Apply the algorithm to a beam line.

Implements BeamlineVisitor.

Reimplemented in ParallelTracker.

Definition at line 97 of file DefaultVisitor.cpp.

References Beamline::iterate(), and DefaultVisitor::local_flip.

Here is the call graph for this function:

◆ visitComponent()

void Tracker::visitComponent ( const Component comp)
virtual

Store the bunch.

Apply the algorithm to an arbitrary component.

Reimplemented from DefaultVisitor.

Reimplemented in ParallelTracker.

Definition at line 101 of file Tracker.cpp.

References DefaultVisitor::back_beam, DefaultVisitor::back_track, PartBunch< T, Dim >::getReference(), itsBunch_m, and Component::trackBunch().

Referenced by ParallelTracker::visitComponent().

Here is the call graph for this function:

◆ visitConstantEFieldCavity()

void DefaultVisitor::visitConstantEFieldCavity ( const ConstantEFieldCavity cav)
overridevirtualinherited

Apply the algorithm to a constant E-field cavity element.

Implements BeamlineVisitor.

Reimplemented in ParallelTracker.

Definition at line 61 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitDrift()

void DefaultVisitor::visitDrift ( const Drift drf)
overridevirtualinherited

Apply the algorithm to a drift space.

Implements BeamlineVisitor.

Reimplemented in ParallelTracker.

Definition at line 65 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitFlaggedElmPtr()

void DefaultVisitor::visitFlaggedElmPtr ( const FlaggedElmPtr fep)
overridevirtualinherited

◆ visitLaser()

void DefaultVisitor::visitLaser ( const Laser laser)
overridevirtualinherited

Apply the algorithm to a laser.

Implements BeamlineVisitor.

Reimplemented in ParallelTracker.

Definition at line 67 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitMarker()

void DefaultVisitor::visitMarker ( const Marker mark)
overridevirtualinherited

Apply the algorithm to a marker.

Implements BeamlineVisitor.

Reimplemented in ParallelTracker.

Definition at line 69 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitMonitor()

void DefaultVisitor::visitMonitor ( const Monitor mon)
overridevirtualinherited

Apply the algorithm to a beam position monitor.

Implements BeamlineVisitor.

Reimplemented in ParallelTracker.

Definition at line 71 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitMultipole()

void DefaultVisitor::visitMultipole ( const Multipole mult)
overridevirtualinherited

Apply the algorithm to a multipole.

Implements BeamlineVisitor.

Reimplemented in ParallelTracker.

Definition at line 73 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitMultipoleT()

void DefaultVisitor::visitMultipoleT ( const MultipoleT multT)
overridevirtualinherited

Apply the algorithm to an arbitrary multipole.

Implements BeamlineVisitor.

Reimplemented in ParallelTracker.

Definition at line 75 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitProbe()

void DefaultVisitor::visitProbe ( const Probe prob)
overridevirtualinherited

Apply the algorithm to a Probe.

Implements BeamlineVisitor.

Definition at line 95 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitRBend()

void DefaultVisitor::visitRBend ( const RBend bend)
overridevirtualinherited

Apply the algorithm to a rectangular bend.

Implements BeamlineVisitor.

Reimplemented in ParallelTracker.

Definition at line 77 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitRFCavity()

void DefaultVisitor::visitRFCavity ( const RFCavity cav)
overridevirtualinherited

Apply the algorithm to a RF cavity.

Implements BeamlineVisitor.

Reimplemented in ParallelTracker.

Definition at line 81 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitRing()

void DefaultVisitor::visitRing ( const Ring ring)
overridevirtualinherited

Apply the algorithm to a Ring.

Implements BeamlineVisitor.

Definition at line 79 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitSBend()

void DefaultVisitor::visitSBend ( const SBend bend)
overridevirtualinherited

Apply the algorithm to a sector bend.

Implements BeamlineVisitor.

Reimplemented in ParallelTracker.

Definition at line 83 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitScalingFFAMagnet()

void DefaultVisitor::visitScalingFFAMagnet ( const ScalingFFAMagnet spiral)
overridevirtualinherited

Apply the algorithm to a scaling FFA magnet.

Implements BeamlineVisitor.

Definition at line 89 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitSolenoid()

void DefaultVisitor::visitSolenoid ( const Solenoid so)
overridevirtualinherited

Apply the algorithm to a Solenoid.

Implements BeamlineVisitor.

Reimplemented in ParallelTracker.

Definition at line 85 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitTravelingWave()

void DefaultVisitor::visitTravelingWave ( const TravelingWave trw)
overridevirtualinherited

Apply the algorithm to a traveling wave.

Implements BeamlineVisitor.

Reimplemented in ParallelTracker.

Definition at line 87 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitVariableRFCavity()

void DefaultVisitor::visitVariableRFCavity ( const VariableRFCavity cavity)
overridevirtualinherited

Apply the algorithm to a variable RF cavity.

Implements BeamlineVisitor.

Definition at line 93 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

◆ visitVerticalFFAMagnet()

void DefaultVisitor::visitVerticalFFAMagnet ( const VerticalFFAMagnet mag)
overridevirtualinherited

Apply the algorithm to a vertical FFA magnet.

Implements BeamlineVisitor.

Definition at line 91 of file DefaultVisitor.cpp.

References DefaultVisitor::applyDefault().

Here is the call graph for this function:

Member Data Documentation

◆ back_beam

bool DefaultVisitor::back_beam
protectedinherited

◆ back_path

bool DefaultVisitor::back_path
protectedinherited

Definition at line 112 of file DefaultVisitor.h.

Referenced by DefaultVisitor::DefaultVisitor().

◆ back_track

bool DefaultVisitor::back_track
protectedinherited

◆ cavities_m

FieldList Tracker::cavities_m

Definition at line 113 of file Tracker.h.

◆ flip_B

double DefaultVisitor::flip_B
protectedinherited

Definition at line 115 of file DefaultVisitor.h.

Referenced by DefaultVisitor::DefaultVisitor().

◆ flip_s

double DefaultVisitor::flip_s
protectedinherited

Definition at line 116 of file DefaultVisitor.h.

Referenced by DefaultVisitor::DefaultVisitor().

◆ itsBeamline_m

const Beamline& Tracker::itsBeamline_m

Definition at line 115 of file Tracker.h.

Referenced by ParallelTracker::prepareSections().

◆ itsBunch_m

PartBunch_t* Tracker::itsBunch_m
protected

◆ itsLine

const Beamline& DefaultVisitor::itsLine
protectedinherited

Definition at line 107 of file DefaultVisitor.h.

Referenced by DefaultVisitor::execute().

◆ local_flip

bool DefaultVisitor::local_flip
privateinherited

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