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

#include <MultiBunchHandler.h>

Collaboration diagram for MultiBunchHandler:
Collaboration graph
[legend]

Classes

struct  beaminfo_t
 
struct  injection_t
 

Public Types

enum  MultiBunchMode : unsigned short { MultiBunchMode::FORCE = 0, MultiBunchMode::AUTO = 1 }
 
enum  MultiBunchBinning : unsigned short { MultiBunchBinning::GAMMA = 0, MultiBunchBinning::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. More...
 
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

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

Definition at line 90 of file MultiBunchHandler.h.

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

Definition at line 85 of file MultiBunchHandler.h.

Constructor & Destructor Documentation

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

bool MultiBunchHandler::calcBunchBeamParameters ( PartBunchBase< double, 3 > *  beam,
short  bunchNr 
)
MultiBunchHandler::beaminfo_t & MultiBunchHandler::getBunchInfo ( short  bunchNr)
inline
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.

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

Definition at line 217 of file MultiBunchHandler.h.

References injection_m.

short MultiBunchHandler::getNumBunch ( ) const
inline
short MultiBunchHandler::injectBunch ( PartBunchBase< double, 3 > *  beam,
const PartData ref,
bool &  flagTransition 
)
bool MultiBunchHandler::isForceMode ( ) const
inline

Definition at line 198 of file MultiBunchHandler.h.

References FORCE, and mode_m.

bool MultiBunchHandler::readBunch ( PartBunchBase< double, 3 > *  beam,
const PartData ref 
)
void MultiBunchHandler::saveBunch ( PartBunchBase< double, 3 > *  beam)
void MultiBunchHandler::setBinning ( const std::string &  binning)

Definition at line 385 of file MultiBunchHandler.cpp.

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

Referenced by MultiBunchHandler().

Here is the call graph for this function:

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

Definition at line 359 of file MultiBunchHandler.cpp.

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

Referenced by MultiBunchHandler().

Here is the call graph for this function:

void MultiBunchHandler::setNumBunch ( short  n)
inline

Definition at line 188 of file MultiBunchHandler.h.

References bunchCount_m, and Hypervolume::n.

void MultiBunchHandler::setRadiusTurns ( const double &  radius)

Definition at line 407 of file MultiBunchHandler.cpp.

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

Here is the call graph for this function:

void MultiBunchHandler::updateParticleBins ( PartBunchBase< double, 3 > *  beam)
void MultiBunchHandler::updatePathLength ( const std::vector< double > &  lpaths)

Definition at line 577 of file MultiBunchHandler.cpp.

References binfo_m, bunchCount_m, and PAssert_EQ.

void MultiBunchHandler::updateTime ( const double &  dt)

Definition at line 570 of file MultiBunchHandler.cpp.

References binfo_m, and bunchCount_m.

Member Data Documentation

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

Definition at line 167 of file MultiBunchHandler.h.

Referenced by setBinning(), and updateParticleBins().

short MultiBunchHandler::bunchCount_m
private
double MultiBunchHandler::coeffDBunches_m
private

Definition at line 170 of file MultiBunchHandler.h.

Referenced by injectBunch(), and setMode().

double MultiBunchHandler::eta_m
private

Definition at line 158 of file MultiBunchHandler.h.

Referenced by updateParticleBins().

injection_t MultiBunchHandler::injection_m
private

Definition at line 183 of file MultiBunchHandler.h.

Referenced by getInjectionValues(), and readBunch().

MultiBunchMode MultiBunchHandler::mode_m
private
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().

std::string MultiBunchHandler::onebunch_m
private

Definition at line 152 of file MultiBunchHandler.h.

Referenced by readBunch(), and saveBunch().

double MultiBunchHandler::radiusLastTurn_m
private

Definition at line 173 of file MultiBunchHandler.h.

Referenced by injectBunch(), and setRadiusTurns().

double MultiBunchHandler::radiusThisTurn_m
private

Definition at line 174 of file MultiBunchHandler.h.

Referenced by injectBunch(), and setRadiusTurns().


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