OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Public Member Functions | Private Member Functions | List of all members
ThinTracker Class Reference

Track with thin lens algorithm. More...

#include <ThinTracker.h>

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

Public Member Functions

 ThinTracker (const Beamline &bl, const PartData &data, bool revBeam, bool revTrack)
 Constructor. More...
 
 ThinTracker (const Beamline &bl, PartBunchBase< double, 3 > *bunch, const PartData &data, bool revBeam, bool revTrack)
 Constructor. More...
 
virtual ~ThinTracker ()
 
virtual void visitBeamBeam (const BeamBeam &)
 Apply algorithm to BeamBeam. More...
 
virtual void visitBeamStripping (const BeamStripping &)
 Apply the algorithm to a beam stripping. More...
 
virtual void visitCCollimator (const CCollimator &)
 Apply algorithm to Collimator. More...
 
virtual void visitCorrector (const Corrector &)
 Apply algorithm to Corrector. More...
 
virtual void visitDegrader (const Degrader &)
 Apply the algorithm to a drift. More...
 
virtual void visitDiagnostic (const Diagnostic &)
 Apply algorithm to Diagnostic. More...
 
virtual void visitDrift (const Drift &)
 Apply algorithm to Drift. More...
 
virtual void visitFlexibleCollimator (const FlexibleCollimator &)
 Apply the algorithm to a flexible collimator. More...
 
virtual void visitLambertson (const Lambertson &)
 Apply algorithm to Lambertson. More...
 
virtual void visitMarker (const Marker &)
 Apply algorithm to Marker. More...
 
virtual void visitMonitor (const Monitor &)
 Apply algorithm to Monitor. More...
 
virtual void visitMultipole (const Multipole &)
 Apply algorithm to Multipole. More...
 
virtual void visitProbe (const Probe &)
 Apply algorithm to Probe. More...
 
virtual void visitRBend (const RBend &)
 Apply algorithm to RBend. More...
 
virtual void visitRFCavity (const RFCavity &)
 Apply algorithm to RFCavity. More...
 
virtual void visitRFQuadrupole (const RFQuadrupole &)
 Apply algorithm to RFQuadrupole. More...
 
virtual void visitSBend (const SBend &)
 Apply algorithm to SBend. More...
 
virtual void visitSeparator (const Separator &)
 Apply algorithm to Separator. More...
 
virtual void visitSeptum (const Septum &)
 Apply algorithm to Septum. More...
 
virtual void visitSolenoid (const Solenoid &)
 Apply algorithm to Solenoid. More...
 
virtual void visitParallelPlate (const ParallelPlate &)
 Apply algorithm to Solenoid. More...
 
virtual void visitCyclotronValley (const CyclotronValley &)
 Apply the algorithm to a CyclotronValley. More...
 
- 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 visitAlignWrapper (const AlignWrapper &)
 Apply the algorithm to an align wrapper. 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 execute ()
 Apply the algorithm to the top-level beamline. More...
 
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 visitTravelingWave (const TravelingWave &)
 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 visitBeamline (const Beamline &)
 Apply the algorithm to a beam line. 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

 ThinTracker ()
 
 ThinTracker (const ThinTracker &)
 
void operator= (const ThinTracker &)
 
void applyDrift (double length)
 

Additional Inherited Members

- Public Types inherited from AbstractTracker
enum  {
  X, PX, Y, PY,
  T, PT
}
 
- 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 with thin lens algorithm.

Definition at line 47 of file ThinTracker.h.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 66 of file ThinTracker.cpp.

ThinTracker::ThinTracker ( const Beamline bl,
PartBunchBase< double, 3 > *  bunch,
const PartData data,
bool  revBeam,
bool  revTrack 
)

Constructor.

Definition at line 72 of file ThinTracker.cpp.

ThinTracker::~ThinTracker ( )
virtual

Definition at line 80 of file ThinTracker.cpp.

ThinTracker::ThinTracker ( )
private
ThinTracker::ThinTracker ( const ThinTracker )
private

Member Function Documentation

void ThinTracker::applyDrift ( double  length)
private
void ThinTracker::operator= ( const ThinTracker )
private
void ThinTracker::visitBeamBeam ( const BeamBeam bb)
virtual
void ThinTracker::visitBeamStripping ( const BeamStripping bstp)
virtual

Apply the algorithm to a beam stripping.

Reimplemented from DefaultVisitor.

Definition at line 168 of file ThinTracker.cpp.

void ThinTracker::visitCCollimator ( const CCollimator coll)
virtual

Apply algorithm to Collimator.

Reimplemented from DefaultVisitor.

Definition at line 172 of file ThinTracker.cpp.

References applyDrift(), DefaultVisitor::flip_s, and ElementBase::getElementLength().

Here is the call graph for this function:

void ThinTracker::visitCorrector ( const Corrector corr)
virtual
void ThinTracker::visitCyclotronValley ( const CyclotronValley cv)
virtual

Apply the algorithm to a CyclotronValley.

Reimplemented from DefaultVisitor.

Definition at line 185 of file ThinTracker.cpp.

void ThinTracker::visitDegrader ( const Degrader deg)
virtual

Apply the algorithm to a drift.

Reimplemented from DefaultVisitor.

Definition at line 176 of file ThinTracker.cpp.

References applyDrift(), DefaultVisitor::flip_s, and ElementBase::getElementLength().

Here is the call graph for this function:

void ThinTracker::visitDiagnostic ( const Diagnostic diag)
virtual

Apply algorithm to Diagnostic.

Reimplemented from DefaultVisitor.

Definition at line 212 of file ThinTracker.cpp.

References applyDrift(), DefaultVisitor::flip_s, and ElementBase::getElementLength().

Here is the call graph for this function:

void ThinTracker::visitDrift ( const Drift drift)
virtual

Apply algorithm to Drift.

Reimplemented from DefaultVisitor.

Definition at line 218 of file ThinTracker.cpp.

References applyDrift(), DefaultVisitor::flip_s, and ElementBase::getElementLength().

Here is the call graph for this function:

void ThinTracker::visitFlexibleCollimator ( const FlexibleCollimator coll)
virtual

Apply the algorithm to a flexible collimator.

Reimplemented from DefaultVisitor.

Definition at line 222 of file ThinTracker.cpp.

References applyDrift(), DefaultVisitor::flip_s, and ElementBase::getElementLength().

Here is the call graph for this function:

void ThinTracker::visitLambertson ( const Lambertson lamb)
virtual

Apply algorithm to Lambertson.

Reimplemented from DefaultVisitor.

Definition at line 226 of file ThinTracker.cpp.

References applyDrift(), DefaultVisitor::flip_s, and ElementBase::getElementLength().

Here is the call graph for this function:

void ThinTracker::visitMarker ( const Marker )
virtual

Apply algorithm to Marker.

Reimplemented from DefaultVisitor.

Definition at line 232 of file ThinTracker.cpp.

void ThinTracker::visitMonitor ( const Monitor corr)
virtual

Apply algorithm to Monitor.

Reimplemented from DefaultVisitor.

Definition at line 237 of file ThinTracker.cpp.

References applyDrift(), DefaultVisitor::flip_s, and ElementBase::getElementLength().

Here is the call graph for this function:

void ThinTracker::visitMultipole ( const Multipole mult)
virtual
void ThinTracker::visitParallelPlate ( const ParallelPlate pplate)
virtual

Apply algorithm to Solenoid.

Reimplemented from DefaultVisitor.

Definition at line 180 of file ThinTracker.cpp.

void ThinTracker::visitProbe ( const Probe )
virtual

Apply algorithm to Probe.

Reimplemented from DefaultVisitor.

Definition at line 265 of file ThinTracker.cpp.

void ThinTracker::visitRBend ( const RBend bend)
virtual
void ThinTracker::visitRFCavity ( const RFCavity as)
virtual
void ThinTracker::visitRFQuadrupole ( const RFQuadrupole rfq)
virtual

Apply algorithm to RFQuadrupole.

Reimplemented from DefaultVisitor.

Definition at line 338 of file ThinTracker.cpp.

References applyDrift(), DefaultVisitor::flip_s, and ElementBase::getElementLength().

Here is the call graph for this function:

void ThinTracker::visitSBend ( const SBend bend)
virtual
void ThinTracker::visitSeparator ( const Separator sep)
virtual
void ThinTracker::visitSeptum ( const Septum sept)
virtual

Apply algorithm to Septum.

Reimplemented from DefaultVisitor.

Definition at line 411 of file ThinTracker.cpp.

References applyDrift(), DefaultVisitor::flip_s, and ElementBase::getElementLength().

Here is the call graph for this function:

void ThinTracker::visitSolenoid ( const Solenoid solenoid)
virtual

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