OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
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  MB_MODE { MB_MODE::FORCE = 0, MB_MODE::AUTO = 1 }
 
enum  MB_BINNING { MB_BINNING::GAMMA = 0, MB_BINNING::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)
 set the working sub-mode for multi-bunch mode: "FORCE" or "AUTO" More...
 
void setBinning (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 commond. More...
 
double eta_m
 
MB_MODE mode_m
 
MB_BINNING 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 12 of file MultiBunchHandler.h.

Member Enumeration Documentation

Enumerator
GAMMA 
BUNCH 

Definition at line 69 of file MultiBunchHandler.h.

Enumerator
FORCE 
AUTO 

Definition at line 63 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 195 of file MultiBunchHandler.h.

References binfo_m, PAssert_GE, and PAssert_LT.

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

Definition at line 203 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 181 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 ( std::string  binning)

Definition at line 350 of file MultiBunchHandler.cpp.

References binning_m, BUNCH, endl(), GAMMA, and Util::toUpper().

Referenced by MultiBunchHandler().

Here is the call graph for this function:

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

set the working sub-mode for multi-bunch mode: "FORCE" or "AUTO"

Definition at line 333 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 169 of file MultiBunchHandler.h.

References bunchCount_m, and Hypervolume::n.

void MultiBunchHandler::setRadiusTurns ( const double &  radius)

Definition at line 367 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 537 of file MultiBunchHandler.cpp.

References binfo_m, bunchCount_m, and PAssert_EQ.

void MultiBunchHandler::updateTime ( const double &  dt)

Definition at line 530 of file MultiBunchHandler.cpp.

References binfo_m, and bunchCount_m.

Member Data Documentation

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

Definition at line 148 of file MultiBunchHandler.h.

Referenced by setBinning(), and updateParticleBins().

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

Definition at line 151 of file MultiBunchHandler.h.

Referenced by injectBunch(), and setMode().

double MultiBunchHandler::eta_m
private

Definition at line 139 of file MultiBunchHandler.h.

Referenced by updateParticleBins().

injection_t MultiBunchHandler::injection_m
private

Definition at line 164 of file MultiBunchHandler.h.

Referenced by getInjectionValues(), and readBunch().

MB_MODE MultiBunchHandler::mode_m
private
short MultiBunchHandler::numBunch_m
private

The number of bunches specified in TURNS of RUN commond.

Definition at line 136 of file MultiBunchHandler.h.

Referenced by injectBunch().

std::string MultiBunchHandler::onebunch_m
private

Definition at line 133 of file MultiBunchHandler.h.

Referenced by readBunch(), and saveBunch().

double MultiBunchHandler::radiusLastTurn_m
private

Definition at line 154 of file MultiBunchHandler.h.

Referenced by injectBunch(), and setRadiusTurns().

double MultiBunchHandler::radiusThisTurn_m
private

Definition at line 155 of file MultiBunchHandler.h.

Referenced by injectBunch(), and setRadiusTurns().


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