OPAL (Object Oriented Parallel Accelerator Library)  2024.1
OPAL
Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
ParallelCyclotronTracker Class Reference

#include <ParallelCyclotronTracker.h>

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

Classes

struct  settings
 

Public Types

typedef std::vector< double > dvector_t
 
typedef std::vector< int > ivector_t
 
typedef std::pair< double[8],
Component * > 
element_pair
 
typedef std::pair< ElementType,
element_pair
type_pair
 
typedef std::list< type_pair * > beamline_list
 
- Public Types inherited from AbstractTracker
enum  {
  X, PX, Y, PY,
  T, PT
}
 

Public Member Functions

 ParallelCyclotronTracker (const Beamline &bl, PartBunchBase< double, 3 > *bunch, DataSink &ds, const PartData &data, bool revBeam, bool revTrack, int maxSTEPS, Steppers::TimeIntegrator timeintegrator, const int &numBunch, const double &mbEta, const double &mbPara, const std::string &mbMode, const std::string &mbBinning)
 Constructor. More...
 
virtual ~ParallelCyclotronTracker ()
 
virtual void execute ()
 Apply the algorithm to the top-level beamline. More...
 
bool computeExternalFields_m (const Vector_t &R, const Vector_t &P, const double &t, Vector_t &Efield, Vector_t &Bfield)
 Calculate the field map at an arbitrary point. 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 &cycl)
 Apply the algorithm to a 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 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 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 a offset (placement). More...
 
virtual void visitOutputPlane (const OutputPlane &)
 Apply the algorithm to a outputplane. 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 visitRing (const Ring &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 &bend)
 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 visitStripper (const Stripper &)
 Apply the algorithm to a particle stripper. More...
 
virtual void visitVacuum (const Vacuum &)
 Apply the algorithm to a vacuum space. More...
 
virtual void visitVariableRFCavity (const VariableRFCavity &cav)
 Apply the algorithm to a variabel RF cavity. More...
 
virtual void visitVariableRFCavityFringeField (const VariableRFCavityFringeField &cav)
 Apply the algorithm to a variable RF cavity with Fringe Field. More...
 
virtual void visitVerticalFFAMagnet (const VerticalFFAMagnet &bend)
 Apply the algorithm to a vertical FFA magnet. More...
 
void setLastDumpedStep (const int para)
 set last dumped step More...
 
void bgf_main_collision_test ()
 
void initializeBoundaryGeometry ()
 
RinggetRing () const
 
void setPr (double x)
 Method for restart. More...
 
void setPt (double x)
 
void setPz (double x)
 
void setR (double x)
 
void setTheta (double x)
 
void setZ (double x)
 
void setBeGa (double x)
 
void setPhi (double x)
 
void setPsi (double x)
 
void setPreviousH5Local (bool x)
 
- 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 visitFlaggedElmPtr (const FlaggedElmPtr &)
 Apply the algorithm to a FlaggedElmPtr. More...
 
virtual void visitRBend3D (const RBend3D &)
 Apply the algorithm to a rectangular bend. More...
 
virtual void visitSource (const Source &)
 Apply the algorithm to a source. More...
 
virtual void visitTravelingWave (const TravelingWave &)
 Apply the algorithm to a traveling wave. More...
 
- Public Member Functions inherited from BeamlineVisitor
 BeamlineVisitor ()
 
virtual ~BeamlineVisitor ()
 

Private Types

enum  TrackingMode : unsigned short { TrackingMode::UNDEFINED, TrackingMode::SINGLE, TrackingMode::SEO, TrackingMode::BUNCH }
 
typedef std::function< bool(const
double &, const size_t
&, Vector_t &, Vector_t &)> 
function_t
 

Private Member Functions

 ParallelCyclotronTracker ()
 
 ParallelCyclotronTracker (const ParallelCyclotronTracker &)
 
void operator= (const ParallelCyclotronTracker &)
 
void MtsTracker ()
 
void GenericTracker ()
 
bool getFieldsAtPoint (const double &t, const size_t &Pindex, Vector_t &Efield, Vector_t &Bfield)
 
void dumpAngle (const double &theta, double &prevAzimuth, double &azimuth, const short &bunchNr=0)
 
double computeRadius (const Vector_t &meanR) const
 
void computePathLengthUpdate (std::vector< double > &dl, const double &dt)
 
void openFiles (size_t numFiles, std::string fn)
 @ open / close output coordinate files More...
 
void closeFiles ()
 
void buildupFieldList (double BcParameter[], ElementType elementType, Component *elptr)
 
double calculateAngle (double x, double y)
 
double calculateAngle2 (double x, double y)
 
bool checkGapCross (Vector_t Rold, Vector_t Rnew, RFCavity *rfcavity, double &DistOld)
 
bool RFkick (RFCavity *rfcavity, const double t, const double dt, const int Pindex)
 
bool getTunes (dvector_t &t, dvector_t &r, dvector_t &z, int lastTurn, double &nur, double &nuz)
 
Vector_t calcMeanR (short bunchNr=-1) const
 
Vector_t calcMeanP () const
 
void repartition ()
 
void globalToLocal (ParticleAttrib< Vector_t > &vectorArray, double phi, Vector_t const translationToGlobal=0)
 
void localToGlobal (ParticleAttrib< Vector_t > &vectorArray, double phi, Vector_t const translationToGlobal=0)
 
void globalToLocal (ParticleAttrib< Vector_t > &vectorArray, Quaternion_t const quaternion, Vector_t const meanR=Vector_t(0.0))
 
void localToGlobal (ParticleAttrib< Vector_t > &vectorArray, Quaternion_t const quaternion, Vector_t const meanR=Vector_t(0.0))
 
void globalToLocal (ParticleAttrib< Vector_t > &particleVectors, double const phi, double const psi, Vector_t const meanR=Vector_t(0.0))
 
void localToGlobal (ParticleAttrib< Vector_t > &particleVectors, double const phi, double const psi, Vector_t const meanR=Vector_t(0.0))
 
void globalToLocal (Vector_t &myVector, double const phi, double const psi, Vector_t const meanR=Vector_t(0.0))
 
void localToGlobal (Vector_t &myVector, double const phi, double const psi, Vector_t const meanR=Vector_t(0.0))
 
void rotateWithQuaternion (ParticleAttrib< Vector_t > &vectorArray, Quaternion_t const quaternion)
 
void getQuaternionTwoVectors (Vector_t u, Vector_t v, Quaternion_t &quaternion)
 
void normalizeQuaternion (Quaternion_t &quaternion)
 
void normalizeVector (Vector_t &vector)
 
void rotateAroundZ (ParticleAttrib< Vector_t > &particleVectors, double const phi)
 
void rotateAroundX (ParticleAttrib< Vector_t > &particleVectors, double const psi)
 
void rotateAroundZ (Vector_t &myVector, double const phi)
 
void rotateAroundX (Vector_t &myVector, double const psi)
 
bool push (double h)
 
bool kick (double h)
 
void borisExternalFields (double h)
 
bool applyPluginElements (const double dt)
 
bool deleteParticle (bool=false)
 
void initTrackOrbitFile ()
 
void singleParticleDump ()
 
void bunchDumpStatData ()
 
void bunchDumpPhaseSpaceData ()
 
void evaluateSpaceChargeField ()
 
void initDistInGlobalFrame ()
 
void setTimeStep ()
 
void checkFileMomentum ()
 
void checkNumPart (std::string s)
 
double getHarmonicNumber () const
 
bool isTurnDone ()
 Check if turn done. More...
 
void update_m (double &t, const double &dt, const bool &finishedTurn)
 Update time and path length, write to output files. More...
 
std::tuple< double, double,
double > 
initializeTracking_m ()
 
void finalizeTracking_m (dvector_t &Ttime, dvector_t &Tdeltr, dvector_t &Tdeltz, ivector_t &TturnNumber)
 
void setTrackingMode ()
 
void seoMode_m (double &t, const double dt, bool &finishedTurn, dvector_t &Ttime, dvector_t &Tdeltr, dvector_t &Tdeltz, ivector_t &TturnNumber)
 
void singleMode_m (double &t, const double dt, bool &finishedTurn, double &oldReferenceTheta)
 
void bunchMode_m (double &t, const double dt, bool &finishedTurn)
 
void gapCrossKick_m (size_t i, double t, double dt, const Vector_t &Rold, const Vector_t &Pold)
 
void dumpAzimuthAngles_m (const double &t, const Vector_t &R, const Vector_t &P, const double &oldReferenceTheta, const double &temp_meanTheta)
 
void dumpThetaEachTurn_m (const double &t, const Vector_t &R, const Vector_t &P, const double &temp_meanTheta, bool &finishedTurn)
 
void computeSpaceChargeFields_m ()
 
bool computeExternalFields_m (const size_t &i, const double &t, Vector_t &Efield, Vector_t &Bfield)
 
void injectBunch (bool &flagTransition)
 
void saveInjectValues ()
 
bool isMultiBunch () const
 
bool hasMultiBunch () const
 
void updatePathLength (const double &dt)
 
void updateTime (const double &dt)
 
void updateAzimuthAndRadius ()
 
void initPathLength ()
 

Private Attributes

beamline_list FieldDimensions
 
std::list< Component * > myElements
 
BeamlineitsBeamline
 
std::vector< PluginElement * > pluginElements_m
 
std::vector< CavityCrossDatacavCrossDatas_m
 
DataSinkitsDataSink
 
BoundaryGeometrybgf_m
 
Cyclotroncycl_m
 
int maxSteps_m
 The maximal number of steps the system is integrated. More...
 
double bega
 The reference variables. More...
 
double referenceR
 
double referenceTheta
 
double beamInitialRotation = 0.0
 
double referenceZ = 0.0
 
double referencePr
 
double referencePt
 
double referencePz = 0.0
 
double referencePtot
 
double referencePsi
 
double referencePhi
 
bool spiral_flag = false
 
Vector_t PreviousMeanP
 
bool previousH5Local
 
double sinRefTheta_m
 
double cosRefTheta_m
 
std::unique_ptr
< MultiBunchHandler
mbHandler_m
 
int lastDumpedStep_m
 
double pathLength_m
 
long long step_m
 
long long restartStep0_m
 
int turnnumber_m
 
double azimuth_m
 
double prevAzimuth_m
 
Vector_t FDext_m [2]
 
Vector_t extE_m
 
Vector_t extB_m
 
const int myNode_m
 
const size_t initialLocalNum_m
 
const size_t initialTotalNum_m
 
std::vector< std::unique_ptr
< std::ofstream > > 
outfTheta_m
 output coordinates at different azimuthal angles and one after every turn More...
 
std::vector< double > azimuth_angle_m
 the different azimuthal angles for the outfTheta_m output files More...
 
std::ofstream outfTrackOrbit_m
 
IpplTimings::TimerRef IntegrationTimer_m
 
IpplTimings::TimerRef DumpTimer_m
 
IpplTimings::TimerRef TransformTimer_m
 
IpplTimings::TimerRef BinRepartTimer_m
 
IpplTimings::TimerRef PluginElemTimer_m
 
IpplTimings::TimerRef DelParticleTimer_m
 
RingopalRing_m
 
std::unique_ptr< LossDataSinklossDs_m
 
std::unique_ptr< Stepper
< function_t > > 
itsStepper_mp
 
struct
ParallelCyclotronTracker::settings 
setup_m
 
TrackingMode mode_m
 
Steppers::TimeIntegrator stepper_m
 
matrix_t rotation_m
 

Static Private Attributes

static Vector_t const xaxis = Vector_t(1.0, 0.0, 0.0)
 The positive axes unit vectors. More...
 
static Vector_t const yaxis = Vector_t(0.0, 1.0, 0.0)
 
static Vector_t const zaxis = Vector_t(0.0, 0.0, 1.0)
 

Additional Inherited Members

- 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

Definition at line 55 of file ParallelCyclotronTracker.h.

Member Typedef Documentation

Definition at line 62 of file ParallelCyclotronTracker.h.

typedef std::vector<double> ParallelCyclotronTracker::dvector_t

Definition at line 58 of file ParallelCyclotronTracker.h.

typedef std::pair<double[8], Component*> ParallelCyclotronTracker::element_pair

Definition at line 60 of file ParallelCyclotronTracker.h.

typedef std::function<bool(const double&, const size_t&, Vector_t&, Vector_t&)> ParallelCyclotronTracker::function_t
private

Definition at line 464 of file ParallelCyclotronTracker.h.

typedef std::vector<int> ParallelCyclotronTracker::ivector_t

Definition at line 59 of file ParallelCyclotronTracker.h.

Definition at line 61 of file ParallelCyclotronTracker.h.

Member Enumeration Documentation

enum ParallelCyclotronTracker::TrackingMode : unsigned short
strongprivate
Enumerator
UNDEFINED 
SINGLE 
SEO 
BUNCH 

Definition at line 211 of file ParallelCyclotronTracker.h.

Constructor & Destructor Documentation

ParallelCyclotronTracker::ParallelCyclotronTracker ( const Beamline beamline,
PartBunchBase< double, 3 > *  bunch,
DataSink ds,
const PartData reference,
bool  revBeam,
bool  revTrack,
int  maxSTEPS,
Steppers::TimeIntegrator  timeintegrator,
const int &  numBunch,
const double &  mbEta,
const double &  mbPara,
const std::string &  mbMode,
const std::string &  mbBinning 
)

Constructor.

Constructor ParallelCyclotronTracker

Parameters
beamline
bunch
ds
reference
revBeam
revTrack
maxSTEPS
timeIntegrator

Definition at line 113 of file ParallelCyclotronTracker.cpp.

References BinRepartTimer_m, ElementBase::clone(), DelParticleTimer_m, DumpTimer_m, IpplTimings::getTimer(), IntegrationTimer_m, itsBeamline, itsDataSink, mbHandler_m, PluginElemTimer_m, setTrackingMode(), and TransformTimer_m.

Here is the call graph for this function:

ParallelCyclotronTracker::~ParallelCyclotronTracker ( )
virtual

Destructor ParallelCyclotronTracker

Definition at line 162 of file ParallelCyclotronTracker.cpp.

References component(), FieldDimensions, itsBeamline, and myElements.

Here is the call graph for this function:

ParallelCyclotronTracker::ParallelCyclotronTracker ( )
private
ParallelCyclotronTracker::ParallelCyclotronTracker ( const ParallelCyclotronTracker )
private

Member Function Documentation

bool ParallelCyclotronTracker::applyPluginElements ( const double  dt)
private
void ParallelCyclotronTracker::bgf_main_collision_test ( )
void ParallelCyclotronTracker::borisExternalFields ( double  h)
private
void ParallelCyclotronTracker::buildupFieldList ( double  BcParameter[],
ElementType  elementType,
Component elptr 
)
private
Parameters
BcParameter
ElementType
elptr

Definition at line 1131 of file ParallelCyclotronTracker.cpp.

References CYCLOTRON, FieldDimensions, and RING.

Referenced by visitCCollimator(), visitCyclotron(), visitOutputPlane(), visitProbe(), visitRFCavity(), visitRing(), visitSeptum(), visitStripper(), and visitVacuum().

void ParallelCyclotronTracker::bunchDumpPhaseSpaceData ( )
private
void ParallelCyclotronTracker::bunchDumpStatData ( )
private
void ParallelCyclotronTracker::bunchMode_m ( double &  t,
const double  dt,
bool &  finishedTurn 
)
private
Vector_t ParallelCyclotronTracker::calcMeanP ( ) const
private
Vector_t ParallelCyclotronTracker::calcMeanR ( short  bunchNr = -1) const
private
double ParallelCyclotronTracker::calculateAngle ( double  x,
double  y 
)
inlineprivate
Parameters
x
y
Returns
angle range [0~2PI) degree

Definition at line 568 of file ParallelCyclotronTracker.h.

References atan2(), and Physics::two_pi.

Referenced by bunchDumpPhaseSpaceData(), bunchDumpStatData(), deleteParticle(), initDistInGlobalFrame(), MtsTracker(), saveInjectValues(), seoMode_m(), and updateAzimuthAndRadius().

Here is the call graph for this function:

double ParallelCyclotronTracker::calculateAngle2 ( double  x,
double  y 
)
inlineprivate
Parameters
x
y
Returns
angle range [-PI~PI) degree

Definition at line 582 of file ParallelCyclotronTracker.h.

References atan2().

Referenced by MtsTracker(), and singleMode_m().

Here is the call graph for this function:

void ParallelCyclotronTracker::checkFileMomentum ( )
private
bool ParallelCyclotronTracker::checkGapCross ( Vector_t  Rold,
Vector_t  Rnew,
RFCavity rfcavity,
double &  Dold 
)
private
Parameters
Rold
Rnew
elptr
Dold
Returns

Definition at line 1512 of file ParallelCyclotronTracker.cpp.

References RFCavity::getCosAzimuth(), RFCavity::getPerpenDistance(), and RFCavity::getSinAzimuth().

Referenced by gapCrossKick_m().

Here is the call graph for this function:

void ParallelCyclotronTracker::checkNumPart ( std::string  s)
private

Definition at line 1161 of file ParallelCyclotronTracker.cpp.

References endl(), PartBunchBase< T, Dim >::getLocalNum(), Tracker::itsBunch_m, and reduce().

Referenced by initDistInGlobalFrame().

Here is the call graph for this function:

void ParallelCyclotronTracker::closeFiles ( )
private

Close all files related to special output in the Cyclotron mode.

Definition at line 304 of file ParallelCyclotronTracker.cpp.

References outfTheta_m.

Referenced by finalizeTracking_m().

bool ParallelCyclotronTracker::computeExternalFields_m ( const Vector_t R,
const Vector_t P,
const double &  t,
Vector_t Efield,
Vector_t Bfield 
)

Calculate the field map at an arbitrary point.

Definition at line 3434 of file ParallelCyclotronTracker.cpp.

References FieldDimensions, Units::kG2T, Units::kV2V, and Units::mm2m.

Referenced by borisExternalFields(), PyOpal::Field::get_field_value_cyclotron(), and getFieldsAtPoint().

bool ParallelCyclotronTracker::computeExternalFields_m ( const size_t &  i,
const double &  t,
Vector_t Efield,
Vector_t Bfield 
)
private

Definition at line 3420 of file ParallelCyclotronTracker.cpp.

References FieldDimensions, Units::kG2T, Units::kV2V, and Units::mm2m.

void ParallelCyclotronTracker::computePathLengthUpdate ( std::vector< double > &  dl,
const double &  dt 
)
private
double ParallelCyclotronTracker::computeRadius ( const Vector_t meanR) const
private

Definition at line 230 of file ParallelCyclotronTracker.cpp.

References Units::m2mm, and sqrt().

Referenced by bunchDumpPhaseSpaceData(), saveInjectValues(), and updateAzimuthAndRadius().

Here is the call graph for this function:

void ParallelCyclotronTracker::computeSpaceChargeFields_m ( )
private
bool ParallelCyclotronTracker::deleteParticle ( bool  flagNeedUpdate = false)
private
void ParallelCyclotronTracker::dumpAngle ( const double &  theta,
double &  prevAzimuth,
double &  azimuth,
const short &  bunchNr = 0 
)
private

Definition at line 206 of file ParallelCyclotronTracker.cpp.

References OpalData::getInstance(), and turnnumber_m.

Referenced by bunchDumpStatData(), saveInjectValues(), and updateAzimuthAndRadius().

Here is the call graph for this function:

void ParallelCyclotronTracker::dumpAzimuthAngles_m ( const double &  t,
const Vector_t R,
const Vector_t P,
const double &  oldReferenceTheta,
const double &  temp_meanTheta 
)
inlineprivate
void ParallelCyclotronTracker::dumpThetaEachTurn_m ( const double &  t,
const Vector_t R,
const Vector_t P,
const double &  temp_meanTheta,
bool &  finishedTurn 
)
inlineprivate

Definition at line 3320 of file ParallelCyclotronTracker.cpp.

References cos(), Units::deg2rad, endl(), isTurnDone(), outfTheta_m, Attrib::Distribution::R, Units::s2ns, sin(), sqrt(), and turnnumber_m.

Referenced by MtsTracker(), and singleMode_m().

Here is the call graph for this function:

void ParallelCyclotronTracker::evaluateSpaceChargeField ( )
private
void ParallelCyclotronTracker::execute ( )
virtual
void ParallelCyclotronTracker::finalizeTracking_m ( dvector_t Ttime,
dvector_t Tdeltr,
dvector_t Tdeltz,
ivector_t TturnNumber 
)
private
void ParallelCyclotronTracker::gapCrossKick_m ( size_t  i,
double  t,
double  dt,
const Vector_t Rold,
const Vector_t Pold 
)
private
void ParallelCyclotronTracker::GenericTracker ( )
private
bool ParallelCyclotronTracker::getFieldsAtPoint ( const double &  t,
const size_t &  Pindex,
Vector_t Efield,
Vector_t Bfield 
)
private
double ParallelCyclotronTracker::getHarmonicNumber ( ) const
private

Definition at line 1636 of file ParallelCyclotronTracker.cpp.

References FieldDimensions, Cyclotron::getCyclHarm(), Ring::getHarmonicNumber(), and opalRing_m.

Referenced by bgf_main_collision_test(), and initializeTracking_m().

Here is the call graph for this function:

void ParallelCyclotronTracker::getQuaternionTwoVectors ( Vector_t  u,
Vector_t  v,
Quaternion_t quaternion 
)
inlineprivate

Definition at line 1956 of file ParallelCyclotronTracker.cpp.

References abs(), cos(), cross(), dot(), normalizeQuaternion(), normalizeVector(), Physics::pi, sin(), sqrt(), xaxis, and zaxis.

Referenced by bunchMode_m(), and computeSpaceChargeFields_m().

Here is the call graph for this function:

Ring* ParallelCyclotronTracker::getRing ( ) const
inline

Definition at line 209 of file ParallelCyclotronTracker.h.

References opalRing_m.

Referenced by PyOpal::Field::getRing().

bool ParallelCyclotronTracker::getTunes ( dvector_t t,
dvector_t r,
dvector_t z,
int  lastTurn,
double &  nur,
double &  nuz 
)
private
Parameters
t
r
z
lastTurn
nur
nuz
Returns

Definition at line 1569 of file ParallelCyclotronTracker.cpp.

References endl(), for_each(), TUNE_class::lombAnalysis(), sum(), and AbstractTracker::T.

Referenced by finalizeTracking_m().

Here is the call graph for this function:

void ParallelCyclotronTracker::globalToLocal ( ParticleAttrib< Vector_t > &  vectorArray,
double  phi,
Vector_t const  translationToGlobal = 0 
)
private
void ParallelCyclotronTracker::globalToLocal ( ParticleAttrib< Vector_t > &  vectorArray,
Quaternion_t const  quaternion,
Vector_t const  meanR = Vector_t(0.0) 
)
inlineprivate

Definition at line 1737 of file ParallelCyclotronTracker.cpp.

References rotateWithQuaternion(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and TransformTimer_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::globalToLocal ( ParticleAttrib< Vector_t > &  particleVectors,
double const  phi,
double const  psi,
Vector_t const  meanR = Vector_t(0.0) 
)
inlineprivate

Definition at line 1766 of file ParallelCyclotronTracker.cpp.

References rotateAroundX(), rotateAroundZ(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and TransformTimer_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::globalToLocal ( Vector_t myVector,
double const  phi,
double const  psi,
Vector_t const  meanR = Vector_t(0.0) 
)
inlineprivate

Definition at line 1787 of file ParallelCyclotronTracker.cpp.

References rotateAroundX(), rotateAroundZ(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and TransformTimer_m.

Here is the call graph for this function:

bool ParallelCyclotronTracker::hasMultiBunch ( ) const
inlineprivate

Definition at line 594 of file ParallelCyclotronTracker.h.

References isMultiBunch(), and mbHandler_m.

Referenced by computeSpaceChargeFields_m().

Here is the call graph for this function:

void ParallelCyclotronTracker::initDistInGlobalFrame ( )
private
void ParallelCyclotronTracker::initializeBoundaryGeometry ( )
std::tuple< double, double, double > ParallelCyclotronTracker::initializeTracking_m ( )
private
void ParallelCyclotronTracker::initPathLength ( )
private

multi-bunch mode: set the path length of each bunch in case of restart mode

At creation of DataSink the lines are rewinded properly –> the last entry of the path length is therefore the initial path length at restart.

Precondition
In order to work properly in restart mode, the lines in the multi-bunch *.smb files need to be rewinded first.

Definition at line 3557 of file ParallelCyclotronTracker.cpp.

References isMultiBunch(), itsDataSink, mbHandler_m, and DataSink::setMultiBunchInitialPathLengh().

Referenced by initializeTracking_m().

Here is the call graph for this function:

void ParallelCyclotronTracker::initTrackOrbitFile ( )
private
void ParallelCyclotronTracker::injectBunch ( bool &  flagTransition)
private
bool ParallelCyclotronTracker::isMultiBunch ( ) const
inlineprivate
bool ParallelCyclotronTracker::isTurnDone ( )
private
bool ParallelCyclotronTracker::kick ( double  h)
private
void ParallelCyclotronTracker::localToGlobal ( ParticleAttrib< Vector_t > &  vectorArray,
double  phi,
Vector_t const  translationToGlobal = 0 
)
private
void ParallelCyclotronTracker::localToGlobal ( ParticleAttrib< Vector_t > &  vectorArray,
Quaternion_t const  quaternion,
Vector_t const  meanR = Vector_t(0.0) 
)
inlineprivate

Definition at line 1750 of file ParallelCyclotronTracker.cpp.

References rotateWithQuaternion(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and TransformTimer_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::localToGlobal ( ParticleAttrib< Vector_t > &  particleVectors,
double const  phi,
double const  psi,
Vector_t const  meanR = Vector_t(0.0) 
)
inlineprivate

Definition at line 1808 of file ParallelCyclotronTracker.cpp.

References rotateAroundX(), rotateAroundZ(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and TransformTimer_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::localToGlobal ( Vector_t myVector,
double const  phi,
double const  psi,
Vector_t const  meanR = Vector_t(0.0) 
)
inlineprivate

Definition at line 1829 of file ParallelCyclotronTracker.cpp.

References rotateAroundX(), rotateAroundZ(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and TransformTimer_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::MtsTracker ( )
private
void ParallelCyclotronTracker::normalizeQuaternion ( Quaternion_t quaternion)
inlineprivate

Definition at line 1864 of file ParallelCyclotronTracker.cpp.

References abs(), dot(), and sqrt().

Referenced by getQuaternionTwoVectors().

Here is the call graph for this function:

void ParallelCyclotronTracker::normalizeVector ( Vector_t vector)
inlineprivate

Definition at line 1876 of file ParallelCyclotronTracker.cpp.

References abs(), dot(), and sqrt().

Referenced by getQuaternionTwoVectors().

Here is the call graph for this function:

void ParallelCyclotronTracker::openFiles ( size_t  numFiles,
std::string  SfileName 
)
private

@ open / close output coordinate files

Parameters
fnBase file name

Definition at line 278 of file ParallelCyclotronTracker.cpp.

References endl(), and outfTheta_m.

Referenced by initializeTracking_m().

Here is the call graph for this function:

void ParallelCyclotronTracker::operator= ( const ParallelCyclotronTracker )
private
bool ParallelCyclotronTracker::push ( double  h)
private
void ParallelCyclotronTracker::repartition ( )
private
bool ParallelCyclotronTracker::RFkick ( RFCavity rfcavity,
const double  t,
const double  dt,
const int  Pindex 
)
private
void ParallelCyclotronTracker::rotateAroundX ( ParticleAttrib< Vector_t > &  particleVectors,
double const  psi 
)
inlineprivate

Definition at line 1922 of file ParallelCyclotronTracker.cpp.

References cos(), PartBunchBase< T, Dim >::getLocalNum(), Tracker::itsBunch_m, prod_boost_vector(), rotation_m, and sin().

Referenced by globalToLocal(), and localToGlobal().

Here is the call graph for this function:

void ParallelCyclotronTracker::rotateAroundX ( Vector_t myVector,
double const  psi 
)
inlineprivate

Definition at line 1940 of file ParallelCyclotronTracker.cpp.

References cos(), prod_boost_vector(), rotation_m, and sin().

Here is the call graph for this function:

void ParallelCyclotronTracker::rotateAroundZ ( ParticleAttrib< Vector_t > &  particleVectors,
double const  phi 
)
inlineprivate

Definition at line 1888 of file ParallelCyclotronTracker.cpp.

References cos(), PartBunchBase< T, Dim >::getLocalNum(), Tracker::itsBunch_m, prod_boost_vector(), rotation_m, and sin().

Referenced by globalToLocal(), and localToGlobal().

Here is the call graph for this function:

void ParallelCyclotronTracker::rotateAroundZ ( Vector_t myVector,
double const  phi 
)
inlineprivate

Definition at line 1906 of file ParallelCyclotronTracker.cpp.

References cos(), prod_boost_vector(), rotation_m, and sin().

Here is the call graph for this function:

void ParallelCyclotronTracker::rotateWithQuaternion ( ParticleAttrib< Vector_t > &  vectorArray,
Quaternion_t const  quaternion 
)
inlineprivate

Definition at line 1850 of file ParallelCyclotronTracker.cpp.

References cross(), dot(), PartBunchBase< T, Dim >::getLocalNum(), and Tracker::itsBunch_m.

Referenced by globalToLocal(), and localToGlobal().

Here is the call graph for this function:

void ParallelCyclotronTracker::saveInjectValues ( )
private
void ParallelCyclotronTracker::seoMode_m ( double &  t,
const double  dt,
bool &  finishedTurn,
dvector_t Ttime,
dvector_t Tdeltr,
dvector_t Tdeltz,
ivector_t TturnNumber 
)
private
void ParallelCyclotronTracker::setBeGa ( double  x)
inline

Definition at line 201 of file ParallelCyclotronTracker.h.

References bega.

Referenced by TrackRun::setupCyclotronTracker().

void ParallelCyclotronTracker::setLastDumpedStep ( const int  para)
inline

set last dumped step

Definition at line 192 of file ParallelCyclotronTracker.h.

References lastDumpedStep_m.

Referenced by TrackRun::setupCyclotronTracker().

void ParallelCyclotronTracker::setPhi ( double  x)
inline

Definition at line 202 of file ParallelCyclotronTracker.h.

References referencePhi.

Referenced by TrackRun::setupCyclotronTracker().

void ParallelCyclotronTracker::setPr ( double  x)
inline

Method for restart.

Definition at line 195 of file ParallelCyclotronTracker.h.

References referencePr.

Referenced by TrackRun::setupCyclotronTracker().

void ParallelCyclotronTracker::setPreviousH5Local ( bool  x)
inline

Definition at line 204 of file ParallelCyclotronTracker.h.

References previousH5Local.

Referenced by TrackRun::setupCyclotronTracker().

void ParallelCyclotronTracker::setPsi ( double  x)
inline

Definition at line 203 of file ParallelCyclotronTracker.h.

References referencePsi.

Referenced by TrackRun::setupCyclotronTracker().

void ParallelCyclotronTracker::setPt ( double  x)
inline

Definition at line 196 of file ParallelCyclotronTracker.h.

References referencePt.

Referenced by TrackRun::setupCyclotronTracker().

void ParallelCyclotronTracker::setPz ( double  x)
inline

Definition at line 197 of file ParallelCyclotronTracker.h.

References referencePz.

Referenced by TrackRun::setupCyclotronTracker().

void ParallelCyclotronTracker::setR ( double  x)
inline

Definition at line 198 of file ParallelCyclotronTracker.h.

References referenceR.

Referenced by TrackRun::setupCyclotronTracker().

void ParallelCyclotronTracker::setTheta ( double  x)
inline

Definition at line 199 of file ParallelCyclotronTracker.h.

References referenceTheta.

Referenced by TrackRun::setupCyclotronTracker().

void ParallelCyclotronTracker::setTimeStep ( )
private

Definition at line 2414 of file ParallelCyclotronTracker.cpp.

References PartBunchBase< T, Dim >::dt, PartBunchBase< T, Dim >::getdT(), initialLocalNum_m, and Tracker::itsBunch_m.

Referenced by initDistInGlobalFrame().

Here is the call graph for this function:

void ParallelCyclotronTracker::setTrackingMode ( )
private

Definition at line 3032 of file ParallelCyclotronTracker.cpp.

References BUNCH, initialTotalNum_m, mode_m, SEO, SINGLE, and UNDEFINED.

Referenced by ParallelCyclotronTracker().

void ParallelCyclotronTracker::setZ ( double  x)
inline

Definition at line 200 of file ParallelCyclotronTracker.h.

References referenceZ.

Referenced by TrackRun::setupCyclotronTracker().

void ParallelCyclotronTracker::singleMode_m ( double &  t,
const double  dt,
bool &  finishedTurn,
double &  oldReferenceTheta 
)
private
void ParallelCyclotronTracker::singleParticleDump ( )
private
void ParallelCyclotronTracker::update_m ( double &  t,
const double &  dt,
const bool &  finishedTurn 
)
private
void ParallelCyclotronTracker::updateAzimuthAndRadius ( )
private
void ParallelCyclotronTracker::updatePathLength ( const double &  dt)
private

Definition at line 3509 of file ParallelCyclotronTracker.cpp.

References computePathLengthUpdate(), isMultiBunch(), Tracker::itsBunch_m, mbHandler_m, pathLength_m, and PartBunchBase< T, Dim >::set_sPos().

Referenced by update_m().

Here is the call graph for this function:

void ParallelCyclotronTracker::updateTime ( const double &  dt)
private

Definition at line 3530 of file ParallelCyclotronTracker.cpp.

References PartBunchBase< T, Dim >::getT(), isMultiBunch(), Tracker::itsBunch_m, mbHandler_m, and PartBunchBase< T, Dim >::setT().

Referenced by update_m().

Here is the call graph for this function:

void ParallelCyclotronTracker::visitBeamline ( const Beamline bl)
virtual

Apply the algorithm to a beam line.

Parameters
bl

Reimplemented from DefaultVisitor.

Definition at line 1156 of file ParallelCyclotronTracker.cpp.

References TBeamline< T >::iterate().

Here is the call graph for this function:

void ParallelCyclotronTracker::visitCCollimator ( const CCollimator coll)
virtual
void ParallelCyclotronTracker::visitCorrector ( const Corrector corr)
virtual

Apply the algorithm to a closed orbit corrector.

Parameters
corr

Reimplemented from DefaultVisitor.

Definition at line 528 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), endl(), ElementBase::getElementLength(), and myElements.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitCyclotron ( const Cyclotron cycl)
virtual
void ParallelCyclotronTracker::visitDegrader ( const Degrader deg)
virtual

Apply the algorithm to a degrader.

Parameters
degrader

Reimplemented from DefaultVisitor.

Definition at line 538 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), endl(), ElementBase::getElementLength(), and myElements.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitDrift ( const Drift drift)
virtual

Apply the algorithm to a drift space.

Parameters
drift

Reimplemented from DefaultVisitor.

Definition at line 549 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), endl(), ElementBase::getElementLength(), and myElements.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitFlexibleCollimator ( const FlexibleCollimator )
virtual

Apply the algorithm to a flexible collimator.

Parameters

Reimplemented from DefaultVisitor.

Definition at line 559 of file ParallelCyclotronTracker.cpp.

void ParallelCyclotronTracker::visitMarker ( const Marker marker)
virtual

Apply the algorithm to a marker.

Parameters
marker

Reimplemented from DefaultVisitor.

Definition at line 581 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), and myElements.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitMonitor ( const Monitor corr)
virtual

Apply the algorithm to a beam position monitor.

Parameters
corr

Reimplemented from DefaultVisitor.

Definition at line 592 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), and myElements.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitMultipole ( const Multipole mult)
virtual

Apply the algorithm to a multipole.

Parameters
mult

Reimplemented from DefaultVisitor.

Definition at line 603 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), endl(), ElementBase::getElementLength(), and myElements.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitMultipoleT ( const MultipoleT multT)
virtual

Apply the algorithm to an arbitrary multipole.

Parameters
multT

Reimplemented from DefaultVisitor.

Definition at line 613 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), MultipoleT::clone(), endl(), myElements, and opalRing_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitMultipoleTCurvedConstRadius ( const MultipoleTCurvedConstRadius multTccurv)
virtual

Apply the algorithm to an arbitrary curved multipole of constant radius.

Parameters
multTccurv

Reimplemented from DefaultVisitor.

Definition at line 645 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), MultipoleTCurvedConstRadius::clone(), endl(), myElements, and opalRing_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitMultipoleTCurvedVarRadius ( const MultipoleTCurvedVarRadius multTvcurv)
virtual

Apply the algorithm to an arbitrary curved multipole of variable radius.

Parameters
multTvcurv

Reimplemented from DefaultVisitor.

Definition at line 661 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), MultipoleTCurvedVarRadius::clone(), endl(), myElements, and opalRing_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitMultipoleTStraight ( const MultipoleTStraight multTstraight)
virtual

Apply the algorithm to an arbitrary straight multipole.

Parameters
multTstraight

Reimplemented from DefaultVisitor.

Definition at line 629 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), MultipoleTStraight::clone(), endl(), myElements, and opalRing_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitOffset ( const Offset off)
virtual

Apply the algorithm to a offset (placement).

Parameters
off

Reimplemented from DefaultVisitor.

Definition at line 568 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), and opalRing_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitOutputPlane ( const OutputPlane plane)
virtual
void ParallelCyclotronTracker::visitProbe ( const Probe prob)
virtual
void ParallelCyclotronTracker::visitRBend ( const RBend bend)
virtual

Apply the algorithm to a rectangular bend.

Parameters
bend

Reimplemented from DefaultVisitor.

Definition at line 747 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), endl(), ElementBase::getElementLength(), and myElements.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitRFCavity ( const RFCavity as)
virtual
void ParallelCyclotronTracker::visitRing ( const Ring ring)
virtual
void ParallelCyclotronTracker::visitSBend ( const SBend bend)
virtual

Apply the algorithm to a sector bend.

Parameters
bend

Reimplemented from DefaultVisitor.

Definition at line 904 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), endl(), ElementBase::getElementLength(), and myElements.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitSBend3D ( const SBend3D bend)
virtual

Apply the algorithm to a sector bend with 3D field map.

Reimplemented from DefaultVisitor.

Definition at line 909 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), endl(), and opalRing_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitScalingFFAMagnet ( const ScalingFFAMagnet bend)
virtual

Apply the algorithm to a scaling FFA magnet.

Reimplemented from DefaultVisitor.

Definition at line 918 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), ScalingFFAMagnet::clone(), endl(), opalRing_m, and ScalingFFAMagnet::setupEndField().

Here is the call graph for this function:

void ParallelCyclotronTracker::visitSeptum ( const Septum sept)
virtual
void ParallelCyclotronTracker::visitSolenoid ( const Solenoid solenoid)
virtual

Apply the algorithm to a solenoid.

Parameters
solenoid

Reimplemented from DefaultVisitor.

Definition at line 977 of file ParallelCyclotronTracker.cpp.

References ElementBase::clone(), endl(), ElementBase::hasAttribute(), and myElements.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitStripper ( const Stripper stripper)
virtual
void ParallelCyclotronTracker::visitVacuum ( const Vacuum vac)
virtual

Apply the algorithm to a vacuum space.

Parameters
vac

Reimplemented from DefaultVisitor.

Definition at line 1042 of file ParallelCyclotronTracker.cpp.

References buildupFieldList(), ElementBase::clone(), endl(), Vacuum::getPressure(), Vacuum::getPressureMapFN(), Vacuum::getPScale(), Vacuum::getResidualGasName(), Vacuum::getStop(), Vacuum::getTemperature(), Vacuum::initialise(), Tracker::itsBunch_m, myElements, and VACUUM.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitVariableRFCavity ( const VariableRFCavity cav)
virtual

Apply the algorithm to a variabel RF cavity.

Parameters
cav

Reimplemented from DefaultVisitor.

Definition at line 1085 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), endl(), and opalRing_m.

Here is the call graph for this function:

void ParallelCyclotronTracker::visitVariableRFCavityFringeField ( const VariableRFCavityFringeField cav)
virtual

Apply the algorithm to a variable RF cavity with Fringe Field.

Parameters
cav

Reimplemented from DefaultVisitor.

Definition at line 1100 of file ParallelCyclotronTracker.cpp.

References endl().

Here is the call graph for this function:

void ParallelCyclotronTracker::visitVerticalFFAMagnet ( const VerticalFFAMagnet mag)
virtual

Apply the algorithm to a vertical FFA magnet.

Parameters
mag

Reimplemented from DefaultVisitor.

Definition at line 1114 of file ParallelCyclotronTracker.cpp.

References Ring::appendElement(), endl(), and opalRing_m.

Here is the call graph for this function:

Member Data Documentation

std::vector<double> ParallelCyclotronTracker::azimuth_angle_m
private

the different azimuthal angles for the outfTheta_m output files

Definition at line 318 of file ParallelCyclotronTracker.h.

Referenced by dumpAzimuthAngles_m(), and initializeTracking_m().

double ParallelCyclotronTracker::azimuth_m
private

Definition at line 290 of file ParallelCyclotronTracker.h.

Referenced by bunchDumpStatData(), execute(), and saveInjectValues().

double ParallelCyclotronTracker::beamInitialRotation = 0.0
private

Definition at line 247 of file ParallelCyclotronTracker.h.

Referenced by initDistInGlobalFrame(), and visitRing().

double ParallelCyclotronTracker::bega
private

The reference variables.

Definition at line 244 of file ParallelCyclotronTracker.h.

Referenced by setBeGa(), and visitCyclotron().

BoundaryGeometry* ParallelCyclotronTracker::bgf_m
private

Definition at line 231 of file ParallelCyclotronTracker.h.

Referenced by bgf_main_collision_test(), and execute().

IpplTimings::TimerRef ParallelCyclotronTracker::BinRepartTimer_m
private

Definition at line 341 of file ParallelCyclotronTracker.h.

Referenced by ParallelCyclotronTracker(), and repartition().

std::vector<CavityCrossData> ParallelCyclotronTracker::cavCrossDatas_m
private

Definition at line 227 of file ParallelCyclotronTracker.h.

Referenced by execute(), and push().

double ParallelCyclotronTracker::cosRefTheta_m
private

Definition at line 265 of file ParallelCyclotronTracker.h.

Referenced by initDistInGlobalFrame(), visitCyclotron(), and visitRing().

Cyclotron* ParallelCyclotronTracker::cycl_m
private

Definition at line 233 of file ParallelCyclotronTracker.h.

Referenced by applyPluginElements(), and visitCyclotron().

IpplTimings::TimerRef ParallelCyclotronTracker::DelParticleTimer_m
private

Definition at line 343 of file ParallelCyclotronTracker.h.

Referenced by deleteParticle(), and ParallelCyclotronTracker().

IpplTimings::TimerRef ParallelCyclotronTracker::DumpTimer_m
private
Vector_t ParallelCyclotronTracker::extB_m
private

Definition at line 309 of file ParallelCyclotronTracker.h.

Referenced by bunchDumpPhaseSpaceData(), bunchDumpStatData(), and execute().

Vector_t ParallelCyclotronTracker::extE_m
private

Definition at line 309 of file ParallelCyclotronTracker.h.

Referenced by bunchDumpPhaseSpaceData(), bunchDumpStatData(), and execute().

Vector_t ParallelCyclotronTracker::FDext_m[2]
private

Definition at line 309 of file ParallelCyclotronTracker.h.

Referenced by bunchDumpPhaseSpaceData(), bunchDumpStatData(), and execute().

beamline_list ParallelCyclotronTracker::FieldDimensions
private
const size_t ParallelCyclotronTracker::initialLocalNum_m
private
const size_t ParallelCyclotronTracker::initialTotalNum_m
private
IpplTimings::TimerRef ParallelCyclotronTracker::IntegrationTimer_m
private
Beamline* ParallelCyclotronTracker::itsBeamline
private
DataSink* ParallelCyclotronTracker::itsDataSink
private
std::unique_ptr< Stepper<function_t> > ParallelCyclotronTracker::itsStepper_mp
private
int ParallelCyclotronTracker::lastDumpedStep_m
private
std::unique_ptr<LossDataSink> ParallelCyclotronTracker::lossDs_m
private

Definition at line 455 of file ParallelCyclotronTracker.h.

Referenced by bgf_main_collision_test(), and execute().

int ParallelCyclotronTracker::maxSteps_m
private

The maximal number of steps the system is integrated.

Definition at line 236 of file ParallelCyclotronTracker.h.

Referenced by GenericTracker(), and MtsTracker().

std::unique_ptr<MultiBunchHandler> ParallelCyclotronTracker::mbHandler_m
private
TrackingMode ParallelCyclotronTracker::mode_m
private
std::list<Component*> ParallelCyclotronTracker::myElements
private
const int ParallelCyclotronTracker::myNode_m
private
Ring* ParallelCyclotronTracker::opalRing_m
private
std::vector<std::unique_ptr<std::ofstream> > ParallelCyclotronTracker::outfTheta_m
private

output coordinates at different azimuthal angles and one after every turn

Definition at line 316 of file ParallelCyclotronTracker.h.

Referenced by closeFiles(), dumpAzimuthAngles_m(), dumpThetaEachTurn_m(), and openFiles().

std::ofstream ParallelCyclotronTracker::outfTrackOrbit_m
private

output file for six dimensional phase space

Definition at line 324 of file ParallelCyclotronTracker.h.

Referenced by finalizeTracking_m(), initTrackOrbitFile(), seoMode_m(), singleMode_m(), and singleParticleDump().

double ParallelCyclotronTracker::pathLength_m
private

Definition at line 273 of file ParallelCyclotronTracker.h.

Referenced by initDistInGlobalFrame(), and updatePathLength().

std::vector<PluginElement*> ParallelCyclotronTracker::pluginElements_m
private

Definition at line 226 of file ParallelCyclotronTracker.h.

Referenced by applyPluginElements(), execute(), and update_m().

IpplTimings::TimerRef ParallelCyclotronTracker::PluginElemTimer_m
private

Definition at line 342 of file ParallelCyclotronTracker.h.

Referenced by applyPluginElements(), and ParallelCyclotronTracker().

double ParallelCyclotronTracker::prevAzimuth_m
private

Definition at line 291 of file ParallelCyclotronTracker.h.

Referenced by bunchDumpStatData(), execute(), and saveInjectValues().

bool ParallelCyclotronTracker::previousH5Local
private

Definition at line 262 of file ParallelCyclotronTracker.h.

Referenced by setPreviousH5Local(), and visitCyclotron().

Vector_t ParallelCyclotronTracker::PreviousMeanP
private

Definition at line 260 of file ParallelCyclotronTracker.h.

Referenced by bunchMode_m(), and computeSpaceChargeFields_m().

double ParallelCyclotronTracker::referencePhi
private

Definition at line 256 of file ParallelCyclotronTracker.h.

Referenced by initDistInGlobalFrame(), setPhi(), and visitCyclotron().

double ParallelCyclotronTracker::referencePr
private
double ParallelCyclotronTracker::referencePsi
private

Definition at line 255 of file ParallelCyclotronTracker.h.

Referenced by initDistInGlobalFrame(), setPsi(), and visitCyclotron().

double ParallelCyclotronTracker::referencePt
private
double ParallelCyclotronTracker::referencePtot
private
double ParallelCyclotronTracker::referencePz = 0.0
private
double ParallelCyclotronTracker::referenceR
private
double ParallelCyclotronTracker::referenceTheta
private
double ParallelCyclotronTracker::referenceZ = 0.0
private
long long ParallelCyclotronTracker::restartStep0_m
private

Definition at line 285 of file ParallelCyclotronTracker.h.

Referenced by execute(), and initializeTracking_m().

matrix_t ParallelCyclotronTracker::rotation_m
private
struct ParallelCyclotronTracker::settings ParallelCyclotronTracker::setup_m
private
double ParallelCyclotronTracker::sinRefTheta_m
private

Definition at line 264 of file ParallelCyclotronTracker.h.

Referenced by initDistInGlobalFrame(), visitCyclotron(), and visitRing().

bool ParallelCyclotronTracker::spiral_flag = false
private
long long ParallelCyclotronTracker::step_m
private
Steppers::TimeIntegrator ParallelCyclotronTracker::stepper_m
private

Definition at line 477 of file ParallelCyclotronTracker.h.

Referenced by execute().

IpplTimings::TimerRef ParallelCyclotronTracker::TransformTimer_m
private
int ParallelCyclotronTracker::turnnumber_m
private
Vector_t const ParallelCyclotronTracker::xaxis = Vector_t(1.0, 0.0, 0.0)
staticprivate

The positive axes unit vectors.

Definition at line 239 of file ParallelCyclotronTracker.h.

Referenced by getQuaternionTwoVectors().

Vector_t const ParallelCyclotronTracker::yaxis = Vector_t(0.0, 1.0, 0.0)
staticprivate

Definition at line 240 of file ParallelCyclotronTracker.h.

Referenced by computeSpaceChargeFields_m().

Vector_t const ParallelCyclotronTracker::zaxis = Vector_t(0.0, 0.0, 1.0)
staticprivate

Definition at line 241 of file ParallelCyclotronTracker.h.

Referenced by getQuaternionTwoVectors().


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