OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
MultiBunchHandler Class Reference

#include <MultiBunchHandler.h>

Collaboration diagram for MultiBunchHandler:

Classes

struct  injection_t
struct  beaminfo_t

Public Types

enum class  MultiBunchMode : unsigned short { FORCE = 0 , AUTO = 1 }
enum class  MultiBunchBinning : unsigned short { GAMMA = 0 , BUNCH = 1 }

Public Member Functions

 MultiBunchHandler (PartBunchBase< double, 3 > *beam, const int &numBunch, const double &eta, const double &para, const std::string &mode, const std::string &binning)
void saveBunch (PartBunchBase< double, 3 > *beam)
bool readBunch (PartBunchBase< double, 3 > *beam, const PartData &ref)
short injectBunch (PartBunchBase< double, 3 > *beam, const PartData &ref, bool &flagTransition)
void updateParticleBins (PartBunchBase< double, 3 > *beam)
void setMode (const std::string &mbmode)
void setBinning (const std::string &binning)
void setRadiusTurns (const double &radius)
void setNumBunch (short n)
short getNumBunch () const
bool isForceMode () const
bool calcBunchBeamParameters (PartBunchBase< double, 3 > *beam, short bunchNr)
beaminfo_tgetBunchInfo (short bunchNr)
const beaminfo_tgetBunchInfo (short bunchNr) const
injection_tgetInjectionValues ()
void updateTime (const double &dt)
void updatePathLength (const std::vector< double > &lpaths)

Private Attributes

std::string onebunch_m
short numBunch_m
 The number of bunches specified in TURNS of RUN command.
double eta_m
MultiBunchMode mode_m
MultiBunchBinning binning_m
double coeffDBunches_m
double radiusLastTurn_m
double radiusThisTurn_m
short bunchCount_m
std::vector< beaminfo_tbinfo_m
injection_t injection_m

Detailed Description

Definition at line 35 of file MultiBunchHandler.h.

Member Enumeration Documentation

◆ MultiBunchBinning

enum class MultiBunchHandler::MultiBunchBinning : unsigned short
strong
Enumerator
GAMMA 
BUNCH 

Definition at line 90 of file MultiBunchHandler.h.

◆ MultiBunchMode

enum class MultiBunchHandler::MultiBunchMode : unsigned short
strong
Enumerator
FORCE 
AUTO 

Definition at line 85 of file MultiBunchHandler.h.

Constructor & Destructor Documentation

◆ MultiBunchHandler()

MultiBunchHandler::MultiBunchHandler ( PartBunchBase< double, 3 > * beam,
const int & numBunch,
const double & eta,
const double & para,
const std::string & mode,
const std::string & binning )

Member Function Documentation

◆ calcBunchBeamParameters()

◆ getBunchInfo() [1/2]

MultiBunchHandler::beaminfo_t & MultiBunchHandler::getBunchInfo ( short bunchNr)
inline

◆ getBunchInfo() [2/2]

const MultiBunchHandler::beaminfo_t & MultiBunchHandler::getBunchInfo ( short bunchNr) const
inline

Definition at line 210 of file MultiBunchHandler.h.

References binfo_m, PAssert_GE, and PAssert_LT.

◆ getInjectionValues()

MultiBunchHandler::injection_t & MultiBunchHandler::getInjectionValues ( )
inline

Definition at line 217 of file MultiBunchHandler.h.

References injection_m.

◆ getNumBunch()

short MultiBunchHandler::getNumBunch ( ) const
inline

◆ injectBunch()

◆ isForceMode()

bool MultiBunchHandler::isForceMode ( ) const
inline

Definition at line 198 of file MultiBunchHandler.h.

References FORCE, and mode_m.

◆ readBunch()

◆ saveBunch()

void MultiBunchHandler::saveBunch ( PartBunchBase< double, 3 > * beam)

◆ setBinning()

void MultiBunchHandler::setBinning ( const std::string & binning)

Definition at line 385 of file MultiBunchHandler.cpp.

References binning_m, BUNCH, endl(), GAMMA, and gmsg.

Referenced by MultiBunchHandler().

Here is the call graph for this function:

◆ setMode()

void MultiBunchHandler::setMode ( const std::string & mbmode)

Definition at line 359 of file MultiBunchHandler.cpp.

References AUTO, coeffDBunches_m, endl(), FORCE, gmsg, and mode_m.

Referenced by MultiBunchHandler().

Here is the call graph for this function:

◆ setNumBunch()

void MultiBunchHandler::setNumBunch ( short n)
inline

Definition at line 188 of file MultiBunchHandler.h.

References bunchCount_m.

◆ setRadiusTurns()

void MultiBunchHandler::setRadiusTurns ( const double & radius)

Definition at line 407 of file MultiBunchHandler.cpp.

References AUTO, endl(), OpalData::getInstance(), gmsg, mode_m, radiusLastTurn_m, and radiusThisTurn_m.

Here is the call graph for this function:

◆ updateParticleBins()

void MultiBunchHandler::updateParticleBins ( PartBunchBase< double, 3 > * beam)

Definition at line 339 of file MultiBunchHandler.cpp.

References binning_m, BUNCH, bunchCount_m, eta_m, GAMMA, IpplTimings::getTimer(), PartBunchBase< T, Dim >::resetPartBinBunch(), PartBunchBase< T, Dim >::resetPartBinID2(), IpplTimings::startTimer(), and IpplTimings::stopTimer().

Referenced by injectBunch().

Here is the call graph for this function:

◆ updatePathLength()

void MultiBunchHandler::updatePathLength ( const std::vector< double > & lpaths)

Definition at line 577 of file MultiBunchHandler.cpp.

References binfo_m, bunchCount_m, and PAssert_EQ.

◆ updateTime()

void MultiBunchHandler::updateTime ( const double & dt)

Definition at line 570 of file MultiBunchHandler.cpp.

References binfo_m, and bunchCount_m.

Member Data Documentation

◆ binfo_m

std::vector<beaminfo_t> MultiBunchHandler::binfo_m
private

◆ binning_m

MultiBunchBinning MultiBunchHandler::binning_m
private

Definition at line 167 of file MultiBunchHandler.h.

Referenced by setBinning(), and updateParticleBins().

◆ bunchCount_m

short MultiBunchHandler::bunchCount_m
private

◆ coeffDBunches_m

double MultiBunchHandler::coeffDBunches_m
private

Definition at line 170 of file MultiBunchHandler.h.

Referenced by injectBunch(), MultiBunchHandler(), and setMode().

◆ eta_m

double MultiBunchHandler::eta_m
private

Definition at line 158 of file MultiBunchHandler.h.

Referenced by MultiBunchHandler(), and updateParticleBins().

◆ injection_m

injection_t MultiBunchHandler::injection_m
private

Definition at line 183 of file MultiBunchHandler.h.

Referenced by getInjectionValues(), and readBunch().

◆ mode_m

MultiBunchMode MultiBunchHandler::mode_m
private

◆ numBunch_m

short MultiBunchHandler::numBunch_m
private

The number of bunches specified in TURNS of RUN command.

Definition at line 155 of file MultiBunchHandler.h.

Referenced by injectBunch(), and MultiBunchHandler().

◆ onebunch_m

std::string MultiBunchHandler::onebunch_m
private

Definition at line 152 of file MultiBunchHandler.h.

Referenced by MultiBunchHandler(), readBunch(), and saveBunch().

◆ radiusLastTurn_m

double MultiBunchHandler::radiusLastTurn_m
private

Definition at line 173 of file MultiBunchHandler.h.

Referenced by injectBunch(), MultiBunchHandler(), and setRadiusTurns().

◆ radiusThisTurn_m

double MultiBunchHandler::radiusThisTurn_m
private

Definition at line 174 of file MultiBunchHandler.h.

Referenced by injectBunch(), MultiBunchHandler(), and setRadiusTurns().


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