OPAL (Object Oriented Parallel Accelerator Library)
2021.1.99
OPAL
|
#include <Distribution.h>
Classes | |
class | BinomialBehaviorSplitter |
class | GaussianLikeBehavior |
class | MDependentBehavior |
Public Member Functions | |
Distribution () | |
virtual | ~Distribution () |
virtual bool | canReplaceBy (Object *object) |
Distribution can only be replaced by another distribution. More... | |
virtual Distribution * | clone (const std::string &name) |
Return a clone. More... | |
virtual void | execute () |
Execute the command. More... | |
virtual void | update () |
Update this object. More... | |
size_t | getNumOfLocalParticlesToCreate (size_t n) |
void | createOpalCycl (PartBunchBase< double, 3 > *beam, size_t numberOfParticles, double current, const Beamline &bl) |
void | createOpalT (PartBunchBase< double, 3 > *beam, std::vector< Distribution * > addedDistributions, size_t &numberOfParticles) |
void | createOpalT (PartBunchBase< double, 3 > *beam, size_t &numberOfParticles) |
void | doRestartOpalT (PartBunchBase< double, 3 > *p, size_t Np, int restartStep, H5PartWrapper *h5wrapper) |
void | doRestartOpalCycl (PartBunchBase< double, 3 > *p, size_t Np, int restartStep, const int specifiedNumBunch, H5PartWrapper *h5wrapper) |
size_t | emitParticles (PartBunchBase< double, 3 > *beam, double eZ) |
double | getPercentageEmitted () const |
bool | getIfDistEmitting () |
int | getLastEmittedEnergyBin () |
double | getMaxTOrZ () |
double | getMinTOrZ () |
size_t | getNumberOfEmissionSteps () |
int | getNumberOfEnergyBins () |
double | getEmissionDeltaT () |
double | getEnergyBinDeltaT () |
double | getWeight () |
double | getTEmission () |
Vector_t | get_pmean () const |
std::string | getTypeofDistribution () |
Inform & | printInfo (Inform &os) const |
bool | Rebin () |
void | setDistToEmitted (bool emitted) |
void | setDistType () |
void | setSigmaR_m () |
void | setSigmaP_m (double massIneV) |
void | shiftBeam (double &maxTOrZ, double &minTOrZ) |
double | getEmissionTimeShift () const |
void | setNumberOfDistributions (unsigned int n) |
DistrTypeT::DistrTypeT | getType () const |
Public Member Functions inherited from Definition | |
virtual | ~Definition () |
virtual const std::string | getCategory () const |
Return the object category as a string. More... | |
virtual bool | shouldTrace () const |
Trace flag. More... | |
virtual bool | shouldUpdate () const |
Update flag. More... | |
Public Member Functions inherited from Object | |
virtual | ~Object () |
void | copyAttributes (const Object &) |
Copy attributes from another object. More... | |
virtual Attribute * | findAttribute (const std::string &name) |
Find an attribute by name. More... | |
virtual const Attribute * | findAttribute (const std::string &name) const |
Find an attribute by name. More... | |
virtual Object * | makeTemplate (const std::string &, TokenStream &, Statement &) |
Macro handler function. More... | |
virtual Object * | makeInstance (const std::string &name, Statement &, const Parser *) |
Macro handler function. More... | |
virtual void | parse (Statement &) |
Parse the object. More... | |
virtual void | parseShortcut (Statement &, bool eval=true) |
Parser for single-attribute commands. More... | |
virtual void | print (std::ostream &) const |
Print the object. More... | |
virtual void | printValue (std::ostream &) const |
virtual void | printHelp (std::ostream &) const |
Print help. More... | |
virtual void | replace (Object *oldObject, Object *newObject) |
Replace references. More... | |
bool | isBuiltin () const |
True, if [b]this[/b] is a built-in object. More... | |
virtual bool | isShared () const |
Shared flag. More... | |
virtual void | setShared (bool) |
Set/reset shared flag. More... | |
void | setDirty (bool) |
Set/reset the [b]modified[/b] flag. More... | |
bool | isDirty () const |
True, if the [b]modified[/b] flag is set. More... | |
void | setFlag (bool) |
Flag/unflag this object, e. g. to control output of objects for. More... | |
bool | isFlagged () const |
True, if [b]this[/b] is flagged by setFlag(true). More... | |
const Object * | getBaseObject () const |
Return the object's base type object. More... | |
const std::string & | getOpalName () const |
Return object name. More... | |
Object * | getParent () const |
Return parent pointer. More... | |
bool | isTreeMember (const Object *subTree) const |
Test for tree membership. More... | |
void | setOpalName (const std::string &name) |
Set object name. More... | |
void | setParent (Object *) |
Set parent object. More... | |
void | clear () |
Clear the occurrence counter. More... | |
int | increment () |
Increment and return the occurrence counter. More... | |
int | occurrenceCount () |
Return the occurrence counter. More... | |
void | registerReference (Invalidator *a) |
Register a reference to this object. More... | |
void | unregisterReference (Invalidator *a) |
Unegister a reference to this object. More... | |
void | registerOwnership (const AttributeHandler::OwnerType &itsClass) const |
Public Member Functions inherited from RCObject | |
int | addReference () const |
Increment reference count. More... | |
int | removeReference () const |
Decrement the reference count. More... | |
bool | isShared () const |
Test for sharing. More... | |
Static Public Member Functions | |
static Distribution * | find (const std::string &name) |
Private Member Functions | |
Distribution (const std::string &name, Distribution *parent) | |
Distribution (const Distribution &)=delete | |
void | operator= (const Distribution &)=delete |
std::vector< double > & | getXDist () |
std::vector< double > & | getBGxDist () |
std::vector< double > & | getYDist () |
std::vector< double > & | getBGyDist () |
std::vector< double > & | getTOrZDist () |
std::vector< double > & | getBGzDist () |
void | eraseXDist () |
void | eraseBGxDist () |
void | eraseYDist () |
void | eraseBGyDist () |
void | eraseTOrZDist () |
void | eraseBGzDist () |
void | addDistributions () |
void | applyEmissionModel (double lowEnergyLimit, double &px, double &py, double &pz, std::vector< double > &additionalRNs) |
void | applyEmissModelAstra (double &px, double &py, double &pz, std::vector< double > &additionalRNs) |
void | applyEmissModelNone (double &pz) |
void | applyEmissModelNonEquil (double eZ, double &px, double &py, double &pz, std::vector< double > &additionalRNs) |
void | create (size_t &numberOfParticles, double massIneV, double charge) |
void | calcPartPerDist (size_t numberOfParticles) |
void | checkEmissionParameters () |
void | checkIfEmitted () |
void | checkParticleNumber (size_t &numberOfParticles) |
void | chooseInputMomentumUnits (InputMomentumUnitsT::InputMomentumUnitsT inputMoUnits) |
size_t | getNumberOfParticlesInFile (std::ifstream &inputFile) |
void | createDistributionBinomial (size_t numberOfParticles, double massIneV) |
void | createDistributionFlattop (size_t numberOfParticles, double massIneV) |
void | createDistributionMultiGauss (size_t numberOfParticles, double massIneV) |
void | createDistributionFromFile (size_t numberOfParticles, double massIneV) |
void | createDistributionGauss (size_t numberOfParticles, double massIneV) |
void | createMatchedGaussDistribution (size_t numberOfParticles, double massIneV, double charge) |
void | sampleUniformDisk (gsl_qrng *quasiRandGen2D, double &x1, double &x2) |
void | fillEBinHistogram () |
void | fillParticleBins () |
size_t | findEBin (double tOrZ) |
void | generateAstraFlattopT (size_t numberOfParticles) |
void | generateBinomial (size_t numberOfParticles) |
void | generateFlattopLaserProfile (size_t numberOfParticles) |
void | generateFlattopT (size_t numberOfParticles) |
void | generateFlattopZ (size_t numberOfParticles) |
void | generateGaussZ (size_t numberOfParticles) |
void | generateMatchedGauss (const SigmaGenerator::matrix_t &, size_t numberOfParticles, double massIneV) |
void | generateLongFlattopT (size_t numberOfParticles) |
void | generateTransverseGauss (size_t numberOfParticles) |
void | initializeBeam (PartBunchBase< double, 3 > *beam) |
void | injectBeam (PartBunchBase< double, 3 > *beam) |
void | printDist (Inform &os, size_t numberOfParticles) const |
void | printDistBinomial (Inform &os) const |
void | printDistFlattop (Inform &os) const |
void | printDistMultiGauss (Inform &os) const |
void | printDistFromFile (Inform &os) const |
void | printDistGauss (Inform &os) const |
void | printDistMatchedGauss (Inform &os) const |
void | printEmissionModel (Inform &os) const |
void | printEmissionModelAstra (Inform &os) const |
void | printEmissionModelNone (Inform &os) const |
void | printEmissionModelNonEquil (Inform &os) const |
void | printEnergyBins (Inform &os) const |
void | adjustPhaseSpace (double massIneV) |
void | reflectDistribution (size_t &numberOfParticles) |
void | scaleDistCoordinates () |
gsl_qrng * | selectRandomGenerator (std::string, unsigned int dimension) |
Select and allocate gsl random number generator. More... | |
void | setAttributes () |
void | setDistParametersBinomial (double massIneV) |
void | setDistParametersFlattop (double massIneV) |
void | setDistParametersMultiGauss (double massIneV) |
void | setDistParametersGauss (double massIneV) |
void | setEmissionTime (double &maxT, double &minT) |
void | setupEmissionModel (PartBunchBase< double, 3 > *beam) |
void | setupEmissionModelAstra (PartBunchBase< double, 3 > *beam) |
void | setupEmissionModelNone (PartBunchBase< double, 3 > *beam) |
void | setupEmissionModelNonEquil () |
void | setupEnergyBins (double maxTOrZ, double minTOrZ) |
void | setupParticleBins (double massIneV, PartBunchBase< double, 3 > *beam) |
void | shiftDistCoordinates (double massIneV) |
void | writeOutFileHeader () |
void | writeOutFileEmission () |
void | writeOutFileInjection () |
Private Attributes | |
std::string | distT_m |
DistrTypeT::DistrTypeT | distrTypeT_m |
Distribution type. Declared as string. More... | |
unsigned int | numberOfDistributions_m |
and list type for switch statements. More... | |
bool | emitting_m |
PartData | particleRefData_m |
std::vector< Distribution * > | addedDistributions_m |
Vector of distributions to be added to this distribution. More... | |
std::vector< size_t > | particlesPerDist_m |
EmissionModelT::EmissionModelT | emissionModel_m |
Emission Model. More... | |
double | tEmission_m |
Emission parameters. More... | |
double | tBin_m |
double | currentEmissionTime_m |
int | currentEnergyBin_m |
int | currentSampleBin_m |
int | numberOfEnergyBins_m |
int | numberOfSampleBins_m |
PartBins * | energyBins_m |
gsl_histogram * | energyBinHist_m |
Distribution energy bins. More... | |
gsl_rng * | randGen_m |
double | pTotThermal_m |
Random number generator. More... | |
Vector_t | pmean_m |
Total thermal momentum. More... | |
double | cathodeWorkFunc_m |
double | laserEnergy_m |
Cathode material work function (eV). More... | |
double | cathodeFermiEnergy_m |
Laser photon energy (eV). More... | |
double | cathodeTemp_m |
Cathode material Fermi energy (eV). More... | |
double | emitEnergyUpperLimit_m |
Cathode temperature (K). More... | |
std::vector< std::vector< double > > | additionalRNs_m |
Upper limit on emission energy distribution (eV). More... | |
size_t | totalNumberParticles_m |
size_t | totalNumberEmittedParticles_m |
std::vector< double > | xDist_m |
std::vector< double > | pxDist_m |
std::vector< double > | yDist_m |
std::vector< double > | pyDist_m |
std::vector< double > | tOrZDist_m |
std::vector< double > | pzDist_m |
std::vector< double > | xWrite_m |
std::vector< double > | pxWrite_m |
std::vector< double > | yWrite_m |
std::vector< double > | pyWrite_m |
std::vector< double > | tOrZWrite_m |
std::vector< double > | pzWrite_m |
std::vector< size_t > | binWrite_m |
double | avrgpz_m |
InputMomentumUnitsT::InputMomentumUnitsT | inputMoUnits_m |
double | sigmaTRise_m |
double | sigmaTFall_m |
double | tPulseLengthFWHM_m |
Vector_t | sigmaR_m |
Vector_t | sigmaP_m |
Vector_t | cutoffR_m |
Vector_t | cutoffP_m |
Vector_t | mBinomial_m |
SymTenzor< double, 6 > | correlationMatrix_m |
double | sepPeaks_m |
unsigned | nPeaks_m |
std::string | laserProfileFileName_m |
std::string | laserImageName_m |
double | laserIntensityCut_m |
LaserProfile * | laserProfile_m |
double | I_m |
double | E_m |
double | tRise_m |
time binned distribution with thermal energy More... | |
double | tFall_m |
double | sigmaRise_m |
double | sigmaFall_m |
double | cutoff_m |
Static Private Attributes | |
static const double | percentTEmission_m = 0.0005 |
Additional Inherited Members | |
Public Attributes inherited from Object | |
std::vector< Attribute > | itsAttr |
The object attributes. More... | |
Protected Member Functions inherited from Definition | |
Definition (int size, const char *name, const char *help) | |
Constructor for exemplars. More... | |
Definition (const std::string &name, Definition *parent) | |
Constructor for clones. More... | |
Protected Member Functions inherited from Object | |
Object (int size, const char *name, const char *help) | |
Constructor for exemplars. More... | |
Object (const std::string &name, Object *parent) | |
Constructor for clones. More... | |
Protected Member Functions inherited from RCObject | |
RCObject () | |
Default constructor. More... | |
RCObject (const RCObject &) | |
Copy constructor. More... | |
virtual | ~RCObject ()=0 |
RCObject & | operator= (const RCObject &right) |
Protected Attributes inherited from Object | |
bool | builtin |
Built-in flag. More... | |
bool | modified |
Dirty flag. More... | |
bool | flagged |
Object flag. More... | |
Definition at line 206 of file Distribution.h.
Distribution::Distribution | ( | ) |
Definition at line 82 of file Distribution.cpp.
References Object::builtin, clone(), OpalData::define(), OpalData::getInstance(), randGen_m, and setAttributes().
Referenced by clone().
|
virtual |
Definition at line 212 of file Distribution.cpp.
References energyBinHist_m, energyBins_m, laserProfile_m, and randGen_m.
|
private |
|
privatedelete |
|
private |
Definition at line 599 of file Distribution.cpp.
References addedDistributions_m, particlesPerDist_m, pxDist_m, pyDist_m, pzDist_m, tOrZDist_m, xDist_m, and yDist_m.
Referenced by createOpalT().
|
private |
Definition at line 4397 of file Distribution.cpp.
References allreduce(), avrgpz_m, Util::convertMomentumEVoverCToBetaGamma(), distrTypeT_m, emitting_m, InputMomentumUnitsT::EVOVERC, DistrTypeT::FROMFILE, OpalData::getInstance(), Attributes::getReal(), inputMoUnits_m, Object::itsAttr, Attrib::Distribution::OFFSETPX, Attrib::Distribution::OFFSETPY, pow(), pxDist_m, pyDist_m, pzDist_m, tOrZDist_m, totalNumberParticles_m, xDist_m, and yDist_m.
Referenced by create().
|
private |
Definition at line 643 of file Distribution.cpp.
References applyEmissModelAstra(), applyEmissModelNone(), applyEmissModelNonEquil(), EmissionModelT::ASTRA, emissionModel_m, EmissionModelT::NONE, and EmissionModelT::NONEQUIL.
Referenced by emitParticles().
|
private |
Definition at line 661 of file Distribution.cpp.
References abs(), acos(), cos(), pTotThermal_m, sin(), sqrt(), and Physics::two_pi.
Referenced by applyEmissionModel().
|
private |
Definition at line 672 of file Distribution.cpp.
References pTotThermal_m.
Referenced by applyEmissionModel().
|
private |
Definition at line 676 of file Distribution.cpp.
References acos(), cathodeFermiEnergy_m, cathodeTemp_m, cos(), emitEnergyUpperLimit_m, exp(), laserEnergy_m, Physics::m_e, pow(), randGen_m, sin(), sqrt(), and Physics::two_pi.
Referenced by applyEmissionModel().
|
private |
Definition at line 733 of file Distribution.cpp.
References addedDistributions_m, distrTypeT_m, Attrib::Distribution::FNAME, DistrTypeT::FROMFILE, getNumberOfParticlesInFile(), Attributes::getString(), getWeight(), Object::itsAttr, IpplInfo::myNode(), numberOfDistributions_m, and particlesPerDist_m.
Referenced by createOpalCycl(), and createOpalT().
|
virtual |
Distribution can only be replaced by another distribution.
Reimplemented from Object.
Definition at line 243 of file Distribution.cpp.
|
private |
Definition at line 802 of file Distribution.cpp.
References abs(), ceil(), currentEnergyBin_m, currentSampleBin_m, Attrib::Distribution::EMISSIONSTEPS, Attributes::getReal(), Object::itsAttr, Attrib::Distribution::NBIN, numberOfEnergyBins_m, and numberOfSampleBins_m.
Referenced by createOpalT(), and generateAstraFlattopT().
|
private |
Definition at line 827 of file Distribution.cpp.
References DistrTypeT::ASTRAFLATTOPTH, distrTypeT_m, Attrib::Distribution::EMITTED, emitting_m, Attributes::getBool(), DistrTypeT::GUNGAUSSFLATTOPTH, and Object::itsAttr.
Referenced by createOpalT().
|
private |
Definition at line 842 of file Distribution.cpp.
References reduce(), and tOrZDist_m.
Referenced by createOpalCycl(), and createOpalT().
|
private |
Definition at line 868 of file Distribution.cpp.
References endl(), InputMomentumUnitsT::EVOVERC, Attributes::getString(), gmsg, Attrib::Distribution::INPUTMOUNITS, inputMoUnits_m, Object::itsAttr, and InputMomentumUnitsT::NONE.
Referenced by createOpalCycl(), and createOpalT().
|
virtual |
Return a clone.
Implements Object.
Definition at line 247 of file Distribution.cpp.
References Distribution(), and name.
Referenced by Distribution().
|
private |
Create the particle distribution.
numberOfParticles | to create |
massIneV | particle charge in eV |
charge | of the particle type in elementary charge |
Definition at line 257 of file Distribution.cpp.
References additionalRNs_m, adjustPhaseSpace(), EmissionModelT::ASTRA, DistrTypeT::ASTRAFLATTOPTH, DistrTypeT::BINOMIAL, createDistributionBinomial(), createDistributionFlattop(), createDistributionFromFile(), createDistributionGauss(), createDistributionMultiGauss(), createMatchedGaussDistribution(), Options::cZero, distrTypeT_m, emissionModel_m, emitting_m, endl(), DistrTypeT::FLATTOP, DistrTypeT::FROMFILE, DistrTypeT::GAUSS, Attributes::getBool(), IpplInfo::getNodes(), getNumOfLocalParticlesToCreate(), gmsg, DistrTypeT::GUNGAUSSFLATTOPTH, INFOMSG, Object::itsAttr, level2(), DistrTypeT::MATCHEDGAUSS, DistrTypeT::MULTIGAUSS, IpplInfo::myNode(), EmissionModelT::NONEQUIL, particlesPerDist_m, randGen_m, reflectDistribution(), Attrib::Distribution::SCALABLE, scaleDistCoordinates(), Options::seed, and tOrZDist_m.
Referenced by createOpalCycl(), and createOpalT().
|
private |
Definition at line 884 of file Distribution.cpp.
References generateBinomial(), and setDistParametersBinomial().
Referenced by create().
|
private |
Definition at line 890 of file Distribution.cpp.
References emitting_m, generateFlattopLaserProfile(), generateFlattopT(), generateFlattopZ(), laserProfile_m, and setDistParametersFlattop().
Referenced by create().
|
private |
Definition at line 1010 of file Distribution.cpp.
References Util::convertMomentumEVoverCToBetaGamma(), InputMomentumUnitsT::EVOVERC, Attrib::Distribution::FNAME, IpplInfo::getComm(), IpplInfo::getNodes(), getNumberOfParticlesInFile(), Attributes::getString(), inputMoUnits_m, Object::itsAttr, max(), IpplInfo::myNode(), pmean_m, pxDist_m, pyDist_m, pzDist_m, Attrib::Distribution::R, reduce(), tOrZDist_m, xDist_m, and yDist_m.
Referenced by create().
|
private |
Definition at line 1313 of file Distribution.cpp.
References emitting_m, generateGaussZ(), generateLongFlattopT(), generateTransverseGauss(), and setDistParametersGauss().
Referenced by create().
|
private |
Definition at line 903 of file Distribution.cpp.
References abs(), avrgpz_m, cutoffP_m, cutoffR_m, emitting_m, exp(), Attributes::getBool(), IpplInfo::getNodes(), Object::itsAttr, IpplInfo::myNode(), nPeaks_m, pow(), pxDist_m, pyDist_m, pzDist_m, randGen_m, Options::rngtype, sampleUniformDisk(), Attrib::Distribution::SCALABLE, selectRandomGenerator(), sepPeaks_m, setDistParametersMultiGauss(), sigmaP_m, sigmaR_m, tOrZDist_m, xDist_m, and yDist_m.
Referenced by create().
|
private |
Definition at line 1143 of file Distribution.cpp.
References abs(), Options::cloTuneOnly, Attrib::Distribution::DENERGY, E_m, endl(), Attrib::Distribution::ET, Attrib::Distribution::EX, SpecificElementVisitor< ELEM >::execute(), Attrib::Distribution::EY, BeamSequence::fetchLine(), BeamSequence::find(), SpecificElementVisitor< ELEM >::front(), generateMatchedGauss(), Attributes::getBool(), Cyclotron::getCyclHarm(), Cyclotron::getFieldMapFN(), Cyclotron::getFMHighE(), Cyclotron::getFMLowE(), Cyclotron::getPHIinit(), Attributes::getReal(), Attributes::getString(), gmsg, I_m, Object::itsAttr, Attrib::Distribution::LINE, Attrib::Distribution::MAXSTEPSCO, Attrib::Distribution::MAXSTEPSSI, Attrib::Distribution::NSECTORS, Attrib::Distribution::NSTEPS, Attrib::Distribution::ORDERMAPS, Attrib::Distribution::RESIDUUM, Attrib::Distribution::RGUESS, Attrib::Distribution::SECTOR, Cyclotron::setPRinit(), Cyclotron::setRinit(), and SpecificElementVisitor< ELEM >::size().
Referenced by create().
void Distribution::createOpalCycl | ( | PartBunchBase< double, 3 > * | beam, |
size_t | numberOfParticles, | ||
double | current, | ||
const Beamline & | bl | ||
) |
Definition at line 1325 of file Distribution.cpp.
References OpalData::addProblemCharacteristicValue(), calcPartPerDist(), checkParticleNumber(), chooseInputMomentumUnits(), create(), E_m, emitting_m, energyBins_m, InputMomentumUnitsT::EVOVERC, fillParticleBins(), PartBunchBase< T, Dim >::getInitialGamma(), OpalData::getInstance(), PartBunchBase< T, Dim >::getLocalNum(), PartBunchBase< T, Dim >::getM(), PartBunchBase< T, Dim >::getQ(), PartBunchBase< T, Dim >::getTotalNum(), I_m, initializeBeam(), injectBeam(), numberOfEnergyBins_m, particlesPerDist_m, setDistType(), PartBunchBase< T, Dim >::setPBins(), setupParticleBins(), shiftDistCoordinates(), tOrZDist_m, totalNumberParticles_m, and writeOutFileHeader().
Referenced by TrackRun::setupCyclotronTracker().
void Distribution::createOpalT | ( | PartBunchBase< double, 3 > * | beam, |
size_t & | numberOfParticles | ||
) |
Definition at line 1401 of file Distribution.cpp.
References addDistributions(), addedDistributions_m, additionalRNs_m, OpalData::addProblemCharacteristicValue(), EmissionModelT::ASTRA, DistrTypeT::ASTRAFLATTOPTH, avrgpz_m, calcPartPerDist(), checkEmissionParameters(), checkIfEmitted(), checkParticleNumber(), chooseInputMomentumUnits(), Util::convertMomentumEVoverCToBetaGamma(), create(), Options::cZero, PartBunchBase< T, Dim >::distrCreate_m, distrTypeT_m, emissionModel_m, emitting_m, end(), InputMomentumUnitsT::EVOVERC, fillEBinHistogram(), DistrTypeT::FROMFILE, OpalData::getInstance(), PartBunchBase< T, Dim >::getM(), getMaxTOrZ(), getMinTOrZ(), PartBunchBase< T, Dim >::getP(), PartBunchBase< T, Dim >::getQ(), Attributes::getReal(), DistrTypeT::GUNGAUSSFLATTOPTH, initializeBeam(), injectBeam(), inputMoUnits_m, Object::itsAttr, EmissionModelT::NONE, InputMomentumUnitsT::NONE, numberOfEnergyBins_m, Attrib::Distribution::OFFSETP, particlesPerDist_m, pmean_m, setDistType(), setEmissionTime(), setupEmissionModel(), setupEmissionModelNone(), setupEnergyBins(), shiftBeam(), shiftDistCoordinates(), IpplTimings::startTimer(), IpplTimings::stopTimer(), totalNumberParticles_m, and writeOutFileHeader().
void Distribution::createOpalT | ( | PartBunchBase< double, 3 > * | beam, |
std::vector< Distribution * > | addedDistributions, | ||
size_t & | numberOfParticles | ||
) |
Definition at line 1393 of file Distribution.cpp.
References addedDistributions_m.
void Distribution::doRestartOpalCycl | ( | PartBunchBase< double, 3 > * | p, |
size_t | Np, | ||
int | restartStep, | ||
const int | specifiedNumBunch, | ||
H5PartWrapper * | h5wrapper | ||
) |
Definition at line 413 of file Distribution.cpp.
References OpalData::addProblemCharacteristicValue(), PartBunchBase< T, Dim >::boundp(), PartBunchBase< T, Dim >::create(), PartBunchBase< T, Dim >::distrReload_m, endl(), energyBins_m, PartBunchBase< T, Dim >::get_sPos(), PartBunchBase< T, Dim >::getChargePerParticle(), OpalData::getInstance(), PartBunchBase< T, Dim >::getLocalNum(), PartBunchBase< T, Dim >::getM(), IpplInfo::getNodes(), PartBunchBase< T, Dim >::getNumBunch(), H5PartWrapper::getNumParticles(), PartBunchBase< T, Dim >::getSteptoLastInj(), PartBunchBase< T, Dim >::getTotalNum(), INFOMSG, IpplInfo::myNode(), PartBunchBase< T, Dim >::P, PAssert_GE, pow(), H5PartWrapper::predecessorIsSameFlavour(), PartBunchBase< T, Dim >::Q, PartBunchBase< T, Dim >::R, H5PartWrapper::readHeader(), H5PartWrapper::readStep(), reduce(), PartBunchBase< T, Dim >::setPBins(), sqrt(), IpplTimings::startTimer(), and IpplTimings::stopTimer().
Referenced by TrackRun::setupCyclotronTracker().
void Distribution::doRestartOpalT | ( | PartBunchBase< double, 3 > * | p, |
size_t | Np, | ||
int | restartStep, | ||
H5PartWrapper * | h5wrapper | ||
) |
Definition at line 378 of file Distribution.cpp.
References OpalData::addProblemCharacteristicValue(), PartBunchBase< T, Dim >::boundp(), PartBunchBase< T, Dim >::create(), PartBunchBase< T, Dim >::distrReload_m, endl(), OpalData::getGlobalPhaseShift(), PartBunchBase< T, Dim >::getGlobalTrackStep(), OpalData::getInstance(), PartBunchBase< T, Dim >::getLocalTrackStep(), IpplInfo::getNodes(), H5PartWrapper::getNumParticles(), PartBunchBase< T, Dim >::getT(), PartBunchBase< T, Dim >::getTotalNum(), gmsg, IpplInfo::myNode(), PAssert_GE, H5PartWrapper::readHeader(), H5PartWrapper::readStep(), IpplTimings::startTimer(), and IpplTimings::stopTimer().
Referenced by TrackRun::setDistributionParallelT().
size_t Distribution::emitParticles | ( | PartBunchBase< double, 3 > * | beam, |
double | eZ | ||
) |
Here we emit particles from the cathode.
A typical integration time step, \(\Delta t\), is broken down into 3 sub-steps:
1) Drift particles for \(\frac{\Delta t}{2}\).
2) Calculate fields and advance momentum.
3) Drift particles for \(\frac{\Delta t}{2}\) at the new momentum to complete the full time step.
The difficulty for emission is that at the cathode position there is a step function discontinuity in the fields. If we apply the typical integration time step across this boundary, we get an artificial numerical bunching of the beam, especially at very high accelerating fields. This function takes the cathode position boundary into account in order to achieve smoother particle emission.
During an emission step, an integral number of time bins from the distribution histogram are emitted. However, each particle contained in those time bins will actually be emitted from the cathode at a different time, so will only spend some fraction of the total time step, \(\Delta t_{full-timestep}\), in the simulation. The trick to emission is to give each particle a unique time step, \(Delta t_{temp}\), that is equal to the actual time during the emission step that the particle exists in the simulation. For the next integration time step, the particle's time step is set back to the global time step, \(\Delta t_{full-timestep}\).
Definition at line 1565 of file Distribution.cpp.
References additionalRNs_m, applyEmissionModel(), PartBunchBase< T, Dim >::Bf, PartBunchBase< T, Dim >::Bin, binWrite_m, Physics::c, cathodeFermiEnergy_m, cathodeWorkFunc_m, PartBunchBase< T, Dim >::create(), currentEmissionTime_m, currentEnergyBin_m, currentSampleBin_m, PartBunchBase< T, Dim >::dt, PartBunchBase< T, Dim >::Ef, emitting_m, endl(), Physics::epsilon_0, PartBunchBase< T, Dim >::getChargePerParticle(), PartBunchBase< T, Dim >::getdT(), PartBunchBase< T, Dim >::getLocalNum(), PartBunchBase< T, Dim >::getMassPerParticle(), PartBunchBase< T, Dim >::getPType(), PartBunchBase< T, Dim >::getQ(), INFOMSG, PartBunchBase< T, Dim >::iterateEmittedBin(), laserEnergy_m, level3(), PartBunchBase< T, Dim >::M, max(), numberOfEnergyBins_m, numberOfSampleBins_m, PartBunchBase< T, Dim >::P, Physics::pi, PartBunchBase< T, Dim >::POrigin, pow(), PartBunchBase< T, Dim >::PType, pxDist_m, pxWrite_m, pyDist_m, pyWrite_m, pzDist_m, pzWrite_m, PartBunchBase< T, Dim >::Q, Physics::q_e, PartBunchBase< T, Dim >::R, reduce(), REGULAR, sqrt(), tOrZDist_m, tOrZWrite_m, totalNumberEmittedParticles_m, PartBunchBase< T, Dim >::TriID, writeOutFileEmission(), xDist_m, xWrite_m, yDist_m, and yWrite_m.
|
private |
Definition at line 1732 of file Distribution.cpp.
References pxDist_m.
|
private |
Definition at line 1740 of file Distribution.cpp.
References pyDist_m.
|
private |
Definition at line 1748 of file Distribution.cpp.
References pzDist_m.
|
private |
Definition at line 1744 of file Distribution.cpp.
References tOrZDist_m.
|
private |
Definition at line 1728 of file Distribution.cpp.
References xDist_m.
|
private |
Definition at line 1736 of file Distribution.cpp.
References yDist_m.
|
virtual |
|
private |
Definition at line 1770 of file Distribution.cpp.
References energyBinHist_m, reduce(), and tOrZDist_m.
Referenced by createOpalT().
|
private |
Definition at line 1789 of file Distribution.cpp.
References energyBins_m, PartBins::fill(), pxDist_m, pyDist_m, pzDist_m, PartBins::sortArray(), tOrZDist_m, xDist_m, and yDist_m.
Referenced by createOpalCycl().
|
static |
Definition at line 494 of file Distribution.cpp.
References OpalData::find(), OpalData::getInstance(), and name.
Referenced by TrackRun::setDistributionParallelT(), and TrackRun::setupCyclotronTracker().
|
private |
Definition at line 1810 of file Distribution.cpp.
References energyBinHist_m, numberOfEnergyBins_m, and numberOfSampleBins_m.
Referenced by injectBeam(), and writeOutFileInjection().
|
private |
Definition at line 1823 of file Distribution.cpp.
References a, abs(), checkEmissionParameters(), Attributes::getBool(), IpplInfo::getNodes(), Attributes::getReal(), Object::itsAttr, IpplInfo::myNode(), Attrib::Distribution::NBIN, pzDist_m, randGen_m, Attrib::Legacy::Distribution::SBIN, Attrib::Distribution::SCALABLE, sqrt(), tBin_m, tEmission_m, tOrZDist_m, tPulseLengthFWHM_m, and tRise_m.
Referenced by generateFlattopLaserProfile(), and generateFlattopT().
|
private |
Following W. Johos for his report TM-11-14
For the \(x,p_x\) phase space we have:
\[ \epsilon_x = \sigma_x \sigma_{p_x} \cos{( \arcsin{(\sigma_{12}) }) } \]
\begin{eqnarray*} \beta_x &=& \frac{\sigma_x^2}{\epsilon_x} \\ \gamma_x &=& \frac{\sigma_{p_x}^2}{\epsilon_x} \\ \alpha_x &=& -\sigma_{12} \sqrt{(\beta_x \gamma_x)} \\ \end{eqnarray*}
This holds similar for the other dimensions.
Definition at line 1934 of file Distribution.cpp.
References abs(), Physics::alpha, asin(), atan2(), avrgpz_m, copysign(), correlationMatrix_m, cos(), Attributes::getBool(), IpplInfo::getNodes(), Object::itsAttr, max(), mBinomial_m, IpplInfo::myNode(), PM, pow(), pxDist_m, pyDist_m, pzDist_m, randGen_m, Attrib::Distribution::SCALABLE, sigmaP_m, sigmaR_m, sin(), sqrt(), tOrZDist_m, Physics::two_pi, X, xDist_m, and yDist_m.
Referenced by createDistributionBinomial().
|
private |
Definition at line 2069 of file Distribution.cpp.
References DistrTypeT::ASTRAFLATTOPTH, distrTypeT_m, generateAstraFlattopT(), generateLongFlattopT(), Attributes::getBool(), IpplInfo::getNodes(), LaserProfile::getXY(), Object::itsAttr, laserProfile_m, IpplInfo::myNode(), pxDist_m, pyDist_m, Attrib::Distribution::SCALABLE, sigmaR_m, xDist_m, and yDist_m.
Referenced by createDistributionFlattop().
|
private |
Definition at line 2105 of file Distribution.cpp.
References DistrTypeT::ASTRAFLATTOPTH, distrTypeT_m, generateAstraFlattopT(), generateLongFlattopT(), Attributes::getBool(), IpplInfo::getNodes(), Object::itsAttr, IpplInfo::myNode(), pxDist_m, pyDist_m, Options::rngtype, sampleUniformDisk(), Attrib::Distribution::SCALABLE, selectRandomGenerator(), sigmaR_m, xDist_m, and yDist_m.
Referenced by createDistributionFlattop().
|
private |
Definition at line 2147 of file Distribution.cpp.
References avrgpz_m, Attributes::getBool(), IpplInfo::getNodes(), Object::itsAttr, IpplInfo::myNode(), pxDist_m, pyDist_m, pzDist_m, randGen_m, Options::rngtype, sampleUniformDisk(), Attrib::Distribution::SCALABLE, selectRandomGenerator(), sigmaR_m, tOrZDist_m, xDist_m, and yDist_m.
Referenced by createDistributionFlattop().
|
private |
Definition at line 2196 of file Distribution.cpp.
References abs(), avrgpz_m, correlationMatrix_m, cutoffP_m, cutoffR_m, endl(), Attributes::getBool(), IpplInfo::getNodes(), gmsg, Object::itsAttr, IpplInfo::myNode(), pow(), pxDist_m, pyDist_m, pzDist_m, randGen_m, Attrib::Distribution::SCALABLE, sigmaP_m, sigmaR_m, tOrZDist_m, xDist_m, and yDist_m.
Referenced by createDistributionGauss().
|
private |
Definition at line 2482 of file Distribution.cpp.
References abs(), cutoffR_m, Attrib::Distribution::FTOSCAMPLITUDE, Attrib::Distribution::FTOSCPERIODS, Attributes::getBool(), IpplInfo::getNodes(), Attributes::getReal(), Object::itsAttr, log(), IpplInfo::myNode(), pzDist_m, randGen_m, Options::rngtype, Attrib::Distribution::SCALABLE, selectRandomGenerator(), sigmaTFall_m, sigmaTRise_m, sin(), sqrt(), tOrZDist_m, tPulseLengthFWHM_m, and Physics::two_pi.
Referenced by createDistributionGauss(), generateFlattopLaserProfile(), and generateFlattopT().
|
private |
Definition at line 2352 of file Distribution.cpp.
References correlationMatrix_m, RealDiracMatrix::diagonalize(), E_m, Util::getBetaGamma(), Attributes::getBool(), IpplInfo::getNodes(), inputMoUnits_m, Object::itsAttr, IpplInfo::myNode(), InputMomentumUnitsT::NONE, prod(), pxDist_m, pyDist_m, pzDist_m, randGen_m, Attrib::Distribution::SCALABLE, sigmaP_m, sigmaR_m, sqrt(), tOrZDist_m, xDist_m, and yDist_m.
Referenced by createMatchedGaussDistribution().
|
private |
Definition at line 2624 of file Distribution.cpp.
References correlationMatrix_m, cutoffP_m, cutoffR_m, Attributes::getBool(), IpplInfo::getNodes(), Object::itsAttr, IpplInfo::myNode(), pow(), pxDist_m, pyDist_m, randGen_m, Attrib::Distribution::SCALABLE, sigmaP_m, sigmaR_m, xDist_m, and yDist_m.
Referenced by createDistributionGauss().
|
inline |
Definition at line 504 of file Distribution.h.
References pmean_m.
|
private |
Definition at line 2843 of file Distribution.cpp.
References pxDist_m.
|
private |
Definition at line 2851 of file Distribution.cpp.
References pyDist_m.
|
private |
Definition at line 2859 of file Distribution.cpp.
References pzDist_m.
double Distribution::getEmissionDeltaT | ( | ) |
Definition at line 2827 of file Distribution.cpp.
References numberOfSampleBins_m, and tBin_m.
double Distribution::getEmissionTimeShift | ( | ) | const |
Definition at line 4081 of file Distribution.cpp.
References emitting_m, Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::OFFSETT.
Referenced by TrackRun::setDistributionParallelT().
double Distribution::getEnergyBinDeltaT | ( | ) |
Definition at line 2831 of file Distribution.cpp.
References tBin_m.
bool Distribution::getIfDistEmitting | ( | ) |
Definition at line 2785 of file Distribution.cpp.
References emitting_m.
int Distribution::getLastEmittedEnergyBin | ( | ) |
Definition at line 2789 of file Distribution.cpp.
References currentEnergyBin_m.
double Distribution::getMaxTOrZ | ( | ) |
Definition at line 2793 of file Distribution.cpp.
References min(), reduce(), and tOrZDist_m.
Referenced by createOpalT().
double Distribution::getMinTOrZ | ( | ) |
Definition at line 2806 of file Distribution.cpp.
References max(), reduce(), and tOrZDist_m.
Referenced by createOpalT().
size_t Distribution::getNumberOfEmissionSteps | ( | ) |
Definition at line 2819 of file Distribution.cpp.
References numberOfEnergyBins_m, and numberOfSampleBins_m.
int Distribution::getNumberOfEnergyBins | ( | ) |
Definition at line 2823 of file Distribution.cpp.
References numberOfEnergyBins_m.
|
private |
Definition at line 980 of file Distribution.cpp.
References Attrib::Distribution::FNAME, Attributes::getString(), Object::itsAttr, IpplInfo::myNode(), and reduce().
Referenced by calcPartPerDist(), and createDistributionFromFile().
size_t Distribution::getNumOfLocalParticlesToCreate | ( | size_t | n | ) |
Calculate the local number of particles evenly and adjust node 0 such that n is matched exactly.
n | total number of particles |
Definition at line 229 of file Distribution.cpp.
References IpplInfo::getNodes(), IpplInfo::myNode(), and Hypervolume::n.
Referenced by create().
|
inline |
Definition at line 514 of file Distribution.h.
References totalNumberEmittedParticles_m, and totalNumberParticles_m.
double Distribution::getTEmission | ( | ) |
Definition at line 504 of file Distribution.cpp.
References a, DistrTypeT::ASTRAFLATTOPTH, Attrib::Legacy::Distribution::CUTOFF, cutoff_m, distrTypeT_m, Attributes::getReal(), DistrTypeT::GUNGAUSSFLATTOPTH, Object::itsAttr, log(), setDistType(), sigmaFall_m, sigmaRise_m, sqrt(), tEmission_m, Attrib::Distribution::TFALL, tFall_m, Attrib::Distribution::TPULSEFWHM, tPulseLengthFWHM_m, Attrib::Distribution::TRISE, and tRise_m.
Referenced by TrackRun::setDistributionParallelT().
|
private |
Definition at line 2855 of file Distribution.cpp.
References tOrZDist_m.
|
inline |
Definition at line 509 of file Distribution.h.
References distrTypeT_m.
|
inline |
Definition at line 519 of file Distribution.h.
References Attributes::getString(), Object::itsAttr, and Attrib::Distribution::TYPE.
double Distribution::getWeight | ( | ) |
Definition at line 2835 of file Distribution.cpp.
References abs(), Attributes::getReal(), Object::itsAttr, and Attrib::Distribution::WEIGHT.
Referenced by calcPartPerDist().
|
private |
Definition at line 2839 of file Distribution.cpp.
References xDist_m.
|
private |
Definition at line 2847 of file Distribution.cpp.
References yDist_m.
|
private |
Definition at line 2707 of file Distribution.cpp.
References numberOfEnergyBins_m, PartBunchBase< T, Dim >::setEnergyBins(), PartBunchBase< T, Dim >::setNumBunch(), PartBunchBase< T, Dim >::setTEmission(), and tEmission_m.
Referenced by createOpalCycl(), and createOpalT().
|
private |
Definition at line 2719 of file Distribution.cpp.
References PartBunchBase< T, Dim >::Bf, PartBunchBase< T, Dim >::Bin, PartBunchBase< T, Dim >::boundp(), PartBunchBase< T, Dim >::calcEMean(), PartBunchBase< T, Dim >::create(), PartBunchBase< T, Dim >::Ef, endl(), findEBin(), PartBunchBase< T, Dim >::getChargePerParticle(), PartBunchBase< T, Dim >::getMassPerParticle(), PartBunchBase< T, Dim >::getPType(), Attributes::getRealArray(), gmsg, PartBunchBase< T, Dim >::ID, Attrib::Distribution::ID1, Attrib::Distribution::ID2, PartBunchBase< T, Dim >::iterateEmittedBin(), Object::itsAttr, PartBunchBase< T, Dim >::M, numberOfEnergyBins_m, PartBunchBase< T, Dim >::P, PartBunchBase< T, Dim >::POrigin, PartBunchBase< T, Dim >::PType, pxDist_m, pyDist_m, pzDist_m, PartBunchBase< T, Dim >::Q, PartBunchBase< T, Dim >::R, REGULAR, tOrZDist_m, PartBunchBase< T, Dim >::TriID, writeOutFileInjection(), xDist_m, and yDist_m.
Referenced by createOpalCycl(), and createOpalT().
|
privatedelete |
|
private |
Definition at line 2863 of file Distribution.cpp.
References DistrTypeT::ASTRAFLATTOPTH, DistrTypeT::BINOMIAL, Options::cZero, distrTypeT_m, endl(), DistrTypeT::FLATTOP, DistrTypeT::FROMFILE, DistrTypeT::GAUSS, DistrTypeT::GUNGAUSSFLATTOPTH, INFOMSG, DistrTypeT::MATCHEDGAUSS, DistrTypeT::MULTIGAUSS, printDistBinomial(), printDistFlattop(), printDistFromFile(), printDistGauss(), printDistMatchedGauss(), printDistMultiGauss(), and reduce().
Referenced by printInfo().
|
private |
Definition at line 2903 of file Distribution.cpp.
References correlationMatrix_m, emitting_m, endl(), mBinomial_m, sigmaP_m, and sigmaR_m.
Referenced by printDist().
|
private |
Definition at line 2931 of file Distribution.cpp.
References abs(), DistrTypeT::ASTRAFLATTOPTH, cutoffR_m, distrTypeT_m, emitting_m, endl(), Attrib::Distribution::FTOSCAMPLITUDE, Attrib::Distribution::FTOSCPERIODS, Attributes::getReal(), DistrTypeT::GUNGAUSSFLATTOPTH, Object::itsAttr, laserImageName_m, laserIntensityCut_m, laserProfile_m, laserProfileFileName_m, sigmaR_m, sigmaTFall_m, sigmaTRise_m, tPulseLengthFWHM_m, and tRise_m.
Referenced by printDist().
|
private |
Definition at line 3026 of file Distribution.cpp.
References endl(), Attrib::Distribution::FNAME, Attributes::getString(), and Object::itsAttr.
Referenced by printDist().
|
private |
Definition at line 3059 of file Distribution.cpp.
References abs(), avrgpz_m, correlationMatrix_m, cutoffP_m, cutoffR_m, emitting_m, endl(), Attrib::Distribution::FTOSCAMPLITUDE, Attrib::Distribution::FTOSCPERIODS, Attributes::getReal(), Object::itsAttr, sigmaP_m, sigmaR_m, sigmaTFall_m, sigmaTRise_m, and tPulseLengthFWHM_m.
Referenced by printDist().
|
private |
Definition at line 3034 of file Distribution.cpp.
References correlationMatrix_m, endl(), sigmaP_m, and sigmaR_m.
Referenced by printDist().
|
private |
Definition at line 2996 of file Distribution.cpp.
References cutoffP_m, cutoffR_m, emitting_m, endl(), nPeaks_m, sepPeaks_m, sigmaP_m, and sigmaR_m.
Referenced by printDist().
|
private |
Definition at line 3118 of file Distribution.cpp.
References EmissionModelT::ASTRA, emissionModel_m, endl(), EmissionModelT::NONE, EmissionModelT::NONEQUIL, printEmissionModelAstra(), printEmissionModelNone(), and printEmissionModelNonEquil().
Referenced by printInfo().
|
private |
Definition at line 3141 of file Distribution.cpp.
References abs(), Attrib::Distribution::EKIN, endl(), Attributes::getReal(), and Object::itsAttr.
Referenced by printEmissionModel().
|
private |
Definition at line 3148 of file Distribution.cpp.
References abs(), Attrib::Distribution::EKIN, endl(), Attributes::getReal(), and Object::itsAttr.
Referenced by printEmissionModel().
|
private |
Definition at line 3155 of file Distribution.cpp.
References cathodeFermiEnergy_m, cathodeTemp_m, cathodeWorkFunc_m, endl(), Physics::kB, and laserEnergy_m.
Referenced by printEmissionModel().
|
private |
Definition at line 3163 of file Distribution.cpp.
References endl(), energyBinHist_m, numberOfEnergyBins_m, numberOfSampleBins_m, and sum().
Definition at line 548 of file Distribution.cpp.
References addedDistributions_m, emitting_m, endl(), OpalData::getInstance(), numberOfEnergyBins_m, numberOfSampleBins_m, particlesPerDist_m, printDist(), printEmissionModel(), tBin_m, and tEmission_m.
Referenced by operator<<().
bool Distribution::Rebin | ( | ) |
Definition at line 3179 of file Distribution.cpp.
References emitting_m, and numberOfEnergyBins_m.
|
private |
Definition at line 3192 of file Distribution.cpp.
References Options::cZero, distrTypeT_m, DistrTypeT::FROMFILE, IpplInfo::myNode(), pxDist_m, pyDist_m, pzDist_m, reduce(), tOrZDist_m, xDist_m, and yDist_m.
Referenced by create().
|
private |
Definition at line 1752 of file Distribution.cpp.
References pow(), and randGen_m.
Referenced by createDistributionMultiGauss(), generateFlattopT(), and generateFlattopZ().
|
private |
Definition at line 3221 of file Distribution.cpp.
References emitting_m, Attributes::getReal(), Object::itsAttr, pxDist_m, Attrib::Distribution::PXMULT, pyDist_m, Attrib::Distribution::PYMULT, pzDist_m, Attrib::Distribution::PZMULT, Attrib::Distribution::TMULT, tOrZDist_m, xDist_m, Attrib::Distribution::XMULT, yDist_m, Attrib::Distribution::YMULT, and Attrib::Distribution::ZMULT.
Referenced by create().
|
private |
Select and allocate gsl random number generator.
Definition at line 3243 of file Distribution.cpp.
References endl(), INFOMSG, and Options::rngtype.
Referenced by createDistributionMultiGauss(), generateFlattopT(), generateFlattopZ(), and generateLongFlattopT().
|
private |
Definition at line 3262 of file Distribution.cpp.
References Attrib::Distribution::CATHTEMP, Attrib::Distribution::CORRT, Attrib::Distribution::CORRX, Attrib::Distribution::CORRY, Attrib::Distribution::CORRZ, Attrib::Legacy::Distribution::CUTOFF, Attrib::Distribution::CUTOFFLONG, Attrib::Distribution::CUTOFFPX, Attrib::Distribution::CUTOFFPY, Attrib::Distribution::CUTOFFPZ, Attrib::Distribution::CUTOFFR, Attrib::Distribution::CUTOFFX, Attrib::Distribution::CUTOFFY, Attrib::Distribution::DENERGY, Attrib::Legacy::Distribution::DISTRIBUTION, Physics::e, Attrib::Distribution::EKIN, Attrib::Distribution::ELASER, Attrib::Distribution::EMISSIONMODEL, Attrib::Distribution::EMISSIONSTEPS, Attrib::Distribution::EMITTED, Attrib::Distribution::ET, Attrib::Distribution::EX, Attrib::Distribution::EY, Attrib::Distribution::FE, Attrib::Distribution::FLIPX, Attrib::Distribution::FLIPY, Attrib::Distribution::FNAME, Attrib::Distribution::FTOSCAMPLITUDE, Attrib::Distribution::FTOSCPERIODS, Attrib::Distribution::ID1, Attrib::Distribution::ID2, Attrib::Distribution::IMAGENAME, Attrib::Distribution::INPUTMOUNITS, Attrib::Distribution::INTENSITYCUT, Object::itsAttr, Attrib::Distribution::LASERPROFFN, Attrib::Distribution::LINE, Attributes::makeBool(), Attributes::makePredefinedString(), Attributes::makeReal(), Attributes::makeRealArray(), Attributes::makeString(), Attrib::Distribution::MAXSTEPSCO, Attrib::Distribution::MAXSTEPSSI, Attrib::Distribution::MT, Attrib::Distribution::MX, Attrib::Distribution::MY, Attrib::Distribution::MZ, Attrib::Distribution::NBIN, Attrib::Distribution::NPEAKS, Attrib::Distribution::NSECTORS, Attrib::Distribution::NSTEPS, Attrib::Distribution::OFFSETP, Attrib::Distribution::OFFSETPX, Attrib::Distribution::OFFSETPY, Attrib::Distribution::OFFSETPZ, Attrib::Distribution::OFFSETT, Attrib::Distribution::OFFSETX, Attrib::Distribution::OFFSETY, Attrib::Distribution::OFFSETZ, Attrib::Distribution::ORDERMAPS, Attrib::Legacy::Distribution::PT, Attrib::Distribution::PXMULT, Attrib::Distribution::PYMULT, Attrib::Distribution::PZMULT, Attrib::Distribution::R, Attrib::Distribution::R51, Attrib::Distribution::R52, Attrib::Distribution::R61, Attrib::Distribution::R62, Object::registerOwnership(), Attrib::Distribution::RESIDUUM, Attrib::Distribution::RGUESS, Attrib::Distribution::ROTATE180, Attrib::Distribution::ROTATE270, Attrib::Distribution::ROTATE90, Attrib::Legacy::Distribution::SBIN, Attrib::Distribution::SCALABLE, Attrib::Distribution::SECTOR, Attrib::Distribution::SEPPEAKS, Attrib::Legacy::Distribution::SIGMAPT, Attrib::Distribution::SIGMAPX, Attrib::Distribution::SIGMAPY, Attrib::Distribution::SIGMAPZ, Attrib::Distribution::SIGMAR, Attrib::Distribution::SIGMAT, Attrib::Distribution::SIGMAX, Attrib::Distribution::SIGMAY, Attrib::Distribution::SIGMAZ, AttributeHandler::STATEMENT, Attrib::Legacy::Distribution::T, Attrib::Distribution::TFALL, Attrib::Distribution::TMULT, Attrib::Distribution::TPULSEFWHM, Attrib::Distribution::TRISE, Attrib::Distribution::TYPE, Attrib::Distribution::W, Attrib::Distribution::WEIGHT, Attrib::Distribution::WRITETOFILE, Attrib::Distribution::XMULT, Attrib::Distribution::YMULT, and Attrib::Distribution::ZMULT.
Referenced by Distribution().
|
private |
Definition at line 3680 of file Distribution.cpp.
References abs(), correlationMatrix_m, Attrib::Distribution::CORRT, Attrib::Distribution::CORRX, Attrib::Distribution::CORRY, Attrib::Distribution::CORRZ, Attrib::Distribution::CUTOFFLONG, cutoffP_m, Attrib::Distribution::CUTOFFPX, Attrib::Distribution::CUTOFFPY, Attrib::Distribution::CUTOFFPZ, cutoffR_m, Attrib::Distribution::CUTOFFX, Attrib::Distribution::CUTOFFY, emitting_m, Attributes::getReal(), Attributes::getRealArray(), Object::itsAttr, mBinomial_m, Attrib::Distribution::MT, Attrib::Distribution::MX, Attrib::Distribution::MY, Attrib::Distribution::MZ, Attrib::Distribution::R, Attrib::Distribution::R51, Attrib::Distribution::R52, Attrib::Distribution::R61, Attrib::Distribution::R62, setSigmaP_m(), and setSigmaR_m().
Referenced by createDistributionBinomial().
|
private |
Definition at line 3731 of file Distribution.cpp.
References abs(), DistrTypeT::ASTRAFLATTOPTH, correlationMatrix_m, Attrib::Distribution::CORRT, Attrib::Distribution::CORRX, Attrib::Distribution::CORRY, Attrib::Distribution::CORRZ, Attrib::Distribution::CUTOFFLONG, cutoffR_m, Attrib::Distribution::CUTOFFX, Attrib::Distribution::CUTOFFY, distrTypeT_m, emitting_m, Attrib::Distribution::FLIPX, LaserProfile::FLIPX, Attrib::Distribution::FLIPY, LaserProfile::FLIPY, Attributes::getBool(), Attributes::getReal(), Attributes::getString(), Attrib::Distribution::IMAGENAME, Attrib::Distribution::INTENSITYCUT, Object::itsAttr, laserImageName_m, laserIntensityCut_m, Attrib::Distribution::LASERPROFFN, laserProfile_m, laserProfileFileName_m, log(), Attrib::Distribution::ROTATE180, LaserProfile::ROTATE180, Attrib::Distribution::ROTATE270, LaserProfile::ROTATE270, Attrib::Distribution::ROTATE90, LaserProfile::ROTATE90, setSigmaP_m(), setSigmaR_m(), sigmaR_m, Attrib::Distribution::SIGMAT, sigmaTFall_m, sigmaTRise_m, sqrt(), Attrib::Distribution::TFALL, Attrib::Distribution::TPULSEFWHM, tPulseLengthFWHM_m, Attrib::Distribution::TRISE, and tRise_m.
Referenced by createDistributionFlattop().
|
private |
Definition at line 3823 of file Distribution.cpp.
References abs(), correlationMatrix_m, Attrib::Distribution::CORRT, Attrib::Distribution::CORRX, Attrib::Distribution::CORRY, Attrib::Distribution::CORRZ, Attrib::Distribution::CUTOFFLONG, cutoffP_m, Attrib::Distribution::CUTOFFPX, Attrib::Distribution::CUTOFFPY, Attrib::Distribution::CUTOFFPZ, Attrib::Distribution::CUTOFFR, cutoffR_m, Attrib::Distribution::CUTOFFX, Attrib::Distribution::CUTOFFY, distrTypeT_m, emitting_m, endl(), Attributes::getReal(), Attributes::getRealArray(), gmsg, Object::itsAttr, log(), DistrTypeT::MATCHEDGAUSS, max(), Attrib::Distribution::R, Attrib::Distribution::R51, Attrib::Distribution::R52, Attrib::Distribution::R61, Attrib::Distribution::R62, setSigmaP_m(), setSigmaR_m(), Attrib::Distribution::SIGMAR, sigmaR_m, Attrib::Distribution::SIGMAT, sigmaTFall_m, sigmaTRise_m, SMALLESTCUTOFF, sqrt(), Attrib::Distribution::TFALL, Attrib::Distribution::TPULSEFWHM, tPulseLengthFWHM_m, and Attrib::Distribution::TRISE.
Referenced by createDistributionGauss().
|
private |
Definition at line 3807 of file Distribution.cpp.
References abs(), Attrib::Distribution::CUTOFFLONG, cutoffP_m, Attrib::Distribution::CUTOFFPX, Attrib::Distribution::CUTOFFPY, Attrib::Distribution::CUTOFFPZ, cutoffR_m, emitting_m, Attributes::getReal(), Object::itsAttr, Attrib::Distribution::NPEAKS, nPeaks_m, Attrib::Distribution::SEPPEAKS, sepPeaks_m, setSigmaP_m(), and setSigmaR_m().
Referenced by createDistributionMultiGauss().
void Distribution::setDistToEmitted | ( | bool | emitted | ) |
Definition at line 3569 of file Distribution.cpp.
References emitting_m.
void Distribution::setDistType | ( | ) |
Definition at line 3573 of file Distribution.cpp.
References DistrTypeT::ASTRAFLATTOPTH, DistrTypeT::BINOMIAL, Attrib::Legacy::Distribution::DISTRIBUTION, distrTypeT_m, distT_m, DistrTypeT::FLATTOP, DistrTypeT::FROMFILE, DistrTypeT::GAUSS, Attributes::getString(), DistrTypeT::GUNGAUSSFLATTOPTH, Object::itsAttr, DistrTypeT::MATCHEDGAUSS, DistrTypeT::MULTIGAUSS, and Attrib::Distribution::TYPE.
Referenced by createOpalCycl(), createOpalT(), and getTEmission().
|
private |
Definition at line 3632 of file Distribution.cpp.
References addedDistributions_m, DistrTypeT::ASTRAFLATTOPTH, cutoffR_m, distrTypeT_m, DistrTypeT::FLATTOP, DistrTypeT::GAUSS, DistrTypeT::GUNGAUSSFLATTOPTH, log(), numberOfEnergyBins_m, percentTEmission_m, sigmaTFall_m, sigmaTRise_m, sqrt(), tBin_m, tEmission_m, and tPulseLengthFWHM_m.
Referenced by createOpalT().
|
inline |
Definition at line 258 of file Distribution.h.
References Hypervolume::n, and numberOfDistributions_m.
Referenced by TrackRun::setDistributionParallelT().
void Distribution::setSigmaP_m | ( | double | massIneV | ) |
Definition at line 3612 of file Distribution.cpp.
References abs(), Util::convertMomentumEVoverCToBetaGamma(), endl(), InputMomentumUnitsT::EVOVERC, Attributes::getReal(), inputMoUnits_m, Object::itsAttr, sigmaP_m, Attrib::Legacy::Distribution::SIGMAPT, Attrib::Distribution::SIGMAPX, Attrib::Distribution::SIGMAPY, Attrib::Distribution::SIGMAPZ, and WARNMSG.
Referenced by setDistParametersBinomial(), setDistParametersFlattop(), setDistParametersGauss(), and setDistParametersMultiGauss().
void Distribution::setSigmaR_m | ( | ) |
Definition at line 3598 of file Distribution.cpp.
References abs(), Attributes::getReal(), Object::itsAttr, Attrib::Distribution::SIGMAR, sigmaR_m, Attrib::Distribution::SIGMAT, Attrib::Distribution::SIGMAX, Attrib::Distribution::SIGMAY, and Attrib::Distribution::SIGMAZ.
Referenced by setDistParametersBinomial(), setDistParametersFlattop(), setDistParametersGauss(), and setDistParametersMultiGauss().
|
private |
Definition at line 3926 of file Distribution.cpp.
References EmissionModelT::ASTRA, DistrTypeT::ASTRAFLATTOPTH, distrTypeT_m, Attrib::Distribution::EMISSIONMODEL, emissionModel_m, Attributes::getString(), DistrTypeT::GUNGAUSSFLATTOPTH, Object::itsAttr, EmissionModelT::NONE, EmissionModelT::NONEQUIL, setupEmissionModelAstra(), and setupEmissionModelNonEquil().
Referenced by createOpalT().
|
private |
Definition at line 3958 of file Distribution.cpp.
References abs(), Attrib::Distribution::EKIN, Util::getBetaGamma(), PartBunchBase< T, Dim >::getM(), Attributes::getReal(), Object::itsAttr, pmean_m, and pTotThermal_m.
Referenced by setupEmissionModel().
|
private |
Definition at line 3965 of file Distribution.cpp.
References abs(), Attrib::Distribution::EKIN, Util::getBetaGamma(), PartBunchBase< T, Dim >::getM(), Attributes::getReal(), Object::itsAttr, pmean_m, pTotThermal_m, pzDist_m, and reduce().
Referenced by createOpalT().
|
private |
Definition at line 3978 of file Distribution.cpp.
References abs(), cathodeFermiEnergy_m, cathodeTemp_m, cathodeWorkFunc_m, Attrib::Distribution::CATHTEMP, Attrib::Distribution::ELASER, emitEnergyUpperLimit_m, Attrib::Distribution::FE, Attributes::getReal(), Object::itsAttr, Physics::kB, laserEnergy_m, log(), Physics::m_e, pmean_m, pow(), sqrt(), and Attrib::Distribution::W.
Referenced by setupEmissionModel().
|
private |
Definition at line 3996 of file Distribution.cpp.
References emitting_m, energyBinHist_m, numberOfEnergyBins_m, numberOfSampleBins_m, and tEmission_m.
Referenced by createOpalT().
|
private |
Definition at line 4007 of file Distribution.cpp.
References abs(), energyBins_m, PartBunchBase< T, Dim >::getM(), PartBunchBase< T, Dim >::getP(), Attributes::getReal(), Object::itsAttr, Attrib::Distribution::NBIN, numberOfEnergyBins_m, Attrib::Legacy::Distribution::PT, Attrib::Legacy::Distribution::SBIN, and PartBins::setGamma().
Referenced by createOpalCycl().
void Distribution::shiftBeam | ( | double & | maxTOrZ, |
double & | minTOrZ | ||
) |
Definition at line 4032 of file Distribution.cpp.
References addedDistributions_m, DistrTypeT::ASTRAFLATTOPTH, distrTypeT_m, emitting_m, DistrTypeT::FLATTOP, DistrTypeT::FROMFILE, DistrTypeT::GAUSS, DistrTypeT::GUNGAUSSFLATTOPTH, reduce(), tEmission_m, and tOrZDist_m.
Referenced by createOpalT().
|
private |
Definition at line 4088 of file Distribution.cpp.
References addedDistributions_m, Util::convertMomentumEVoverCToBetaGamma(), emitting_m, endl(), InputMomentumUnitsT::EVOVERC, Attributes::getReal(), inputMoUnits_m, Object::itsAttr, Attrib::Distribution::OFFSETPX, Attrib::Distribution::OFFSETPY, Attrib::Distribution::OFFSETPZ, Attrib::Distribution::OFFSETX, Attrib::Distribution::OFFSETY, Attrib::Distribution::OFFSETZ, particlesPerDist_m, Attrib::Legacy::Distribution::PT, pxDist_m, pyDist_m, pzDist_m, Attrib::Legacy::Distribution::T, tOrZDist_m, WARNMSG, xDist_m, and yDist_m.
Referenced by createOpalCycl(), and createOpalT().
|
virtual |
|
private |
Definition at line 4201 of file Distribution.cpp.
References Communicate::barrier(), binWrite_m, Util::combineFilePath(), IpplInfo::Comm, Communicate::COMM_ANY_NODE, endl(), ERRORMSG, OpalData::getAuxiliaryOutputDirectory(), Attributes::getBool(), IpplInfo::getComm(), OpalData::getInputBasename(), OpalData::getInstance(), IpplInfo::getNodes(), Object::getOpalName(), IPPL_APP_CYCLE, IPPL_APP_TAG2, Object::itsAttr, level1(), IpplInfo::myNode(), TagMaker::next_tag(), pxWrite_m, pyWrite_m, pzWrite_m, Communicate::raw_probe_receive(), Communicate::raw_receive(), Communicate::raw_send(), tOrZWrite_m, Attrib::Distribution::WRITETOFILE, xWrite_m, and yWrite_m.
Referenced by emitParticles().
|
private |
Definition at line 4141 of file Distribution.cpp.
References Util::combineFilePath(), emitting_m, endl(), OpalData::getAuxiliaryOutputDirectory(), Attributes::getBool(), OpalData::getInputBasename(), OpalData::getInstance(), Object::getOpalName(), gmsg, Object::itsAttr, IpplInfo::myNode(), numberOfEnergyBins_m, reduce(), Inform::setf(), tOrZDist_m, Inform::width(), and Attrib::Distribution::WRITETOFILE.
Referenced by createOpalCycl(), and createOpalT().
|
private |
Definition at line 4332 of file Distribution.cpp.
References Util::combineFilePath(), endl(), findEBin(), OpalData::getAuxiliaryOutputDirectory(), Attributes::getBool(), OpalData::getInputBasename(), OpalData::getInstance(), IpplInfo::getNodes(), Object::getOpalName(), gmsg, Object::itsAttr, IpplInfo::myNode(), numberOfEnergyBins_m, Inform::precision(), pxDist_m, pyDist_m, pzDist_m, reduce(), tOrZDist_m, Attrib::Distribution::WRITETOFILE, xDist_m, and yDist_m.
Referenced by injectBeam().
|
private |
Vector of distributions to be added to this distribution.
Reference data for particle type (charge, mass etc.)
Definition at line 403 of file Distribution.h.
Referenced by addDistributions(), calcPartPerDist(), createOpalT(), printInfo(), setEmissionTime(), shiftBeam(), and shiftDistCoordinates().
|
private |
Upper limit on emission energy distribution (eV).
Definition at line 440 of file Distribution.h.
Referenced by create(), createOpalT(), and emitParticles().
|
private |
Definition at line 463 of file Distribution.h.
Referenced by adjustPhaseSpace(), createDistributionMultiGauss(), createOpalT(), generateBinomial(), generateFlattopZ(), generateGaussZ(), and printDistGauss().
|
private |
Definition at line 460 of file Distribution.h.
Referenced by emitParticles(), and writeOutFileEmission().
|
private |
Laser photon energy (eV).
Definition at line 436 of file Distribution.h.
Referenced by applyEmissModelNonEquil(), emitParticles(), printEmissionModelNonEquil(), and setupEmissionModelNonEquil().
|
private |
Cathode material Fermi energy (eV).
Definition at line 437 of file Distribution.h.
Referenced by applyEmissModelNonEquil(), printEmissionModelNonEquil(), and setupEmissionModelNonEquil().
|
private |
Definition at line 434 of file Distribution.h.
Referenced by emitParticles(), printEmissionModelNonEquil(), and setupEmissionModelNonEquil().
|
private |
Definition at line 475 of file Distribution.h.
Referenced by generateBinomial(), generateGaussZ(), generateMatchedGauss(), generateTransverseGauss(), printDistBinomial(), printDistGauss(), printDistMatchedGauss(), setDistParametersBinomial(), setDistParametersFlattop(), and setDistParametersGauss().
|
private |
Definition at line 416 of file Distribution.h.
Referenced by emitParticles().
|
private |
Definition at line 417 of file Distribution.h.
Referenced by checkEmissionParameters(), emitParticles(), and getLastEmittedEnergyBin().
|
private |
Definition at line 418 of file Distribution.h.
Referenced by checkEmissionParameters(), and emitParticles().
|
private |
Definition at line 496 of file Distribution.h.
Referenced by getTEmission().
|
private |
Definition at line 473 of file Distribution.h.
Referenced by createDistributionMultiGauss(), generateGaussZ(), generateTransverseGauss(), printDistGauss(), printDistMultiGauss(), setDistParametersBinomial(), setDistParametersGauss(), and setDistParametersMultiGauss().
|
private |
Definition at line 472 of file Distribution.h.
Referenced by createDistributionMultiGauss(), generateGaussZ(), generateLongFlattopT(), generateTransverseGauss(), printDistFlattop(), printDistGauss(), printDistMultiGauss(), setDistParametersBinomial(), setDistParametersFlattop(), setDistParametersGauss(), setDistParametersMultiGauss(), and setEmissionTime().
|
private |
Distribution type. Declared as string.
Definition at line 392 of file Distribution.h.
Referenced by adjustPhaseSpace(), calcPartPerDist(), checkIfEmitted(), create(), createOpalT(), generateFlattopLaserProfile(), generateFlattopT(), getTEmission(), getType(), printDist(), printDistFlattop(), reflectDistribution(), setDistParametersFlattop(), setDistParametersGauss(), setDistType(), setEmissionTime(), setupEmissionModel(), and shiftBeam().
|
private |
Definition at line 391 of file Distribution.h.
Referenced by setDistType().
|
private |
Definition at line 489 of file Distribution.h.
Referenced by createMatchedGaussDistribution(), createOpalCycl(), and generateMatchedGauss().
|
private |
Emission Model.
Definition at line 407 of file Distribution.h.
Referenced by applyEmissionModel(), create(), createOpalT(), printEmissionModel(), and setupEmissionModel().
|
private |
Cathode temperature (K).
Definition at line 438 of file Distribution.h.
Referenced by applyEmissModelNonEquil(), and setupEmissionModelNonEquil().
|
private |
Definition at line 396 of file Distribution.h.
Referenced by adjustPhaseSpace(), checkIfEmitted(), create(), createDistributionFlattop(), createDistributionGauss(), createDistributionMultiGauss(), createOpalCycl(), createOpalT(), emitParticles(), getEmissionTimeShift(), getIfDistEmitting(), printDistBinomial(), printDistFlattop(), printDistGauss(), printDistMultiGauss(), printInfo(), Rebin(), scaleDistCoordinates(), setDistParametersBinomial(), setDistParametersFlattop(), setDistParametersGauss(), setDistParametersMultiGauss(), setDistToEmitted(), setupEnergyBins(), shiftBeam(), shiftDistCoordinates(), and writeOutFileHeader().
|
private |
Distribution energy bins.
Definition at line 424 of file Distribution.h.
Referenced by fillEBinHistogram(), findEBin(), printEnergyBins(), setupEnergyBins(), and ~Distribution().
|
private |
Number of samples to use per energy bin when emitting beam.
Definition at line 423 of file Distribution.h.
Referenced by createOpalCycl(), doRestartOpalCycl(), fillParticleBins(), setupParticleBins(), and ~Distribution().
|
private |
Definition at line 488 of file Distribution.h.
Referenced by createMatchedGaussDistribution(), and createOpalCycl().
|
private |
Definition at line 466 of file Distribution.h.
Referenced by adjustPhaseSpace(), chooseInputMomentumUnits(), createDistributionFromFile(), createOpalT(), generateMatchedGauss(), setSigmaP_m(), and shiftDistCoordinates().
|
private |
Cathode material work function (eV).
Definition at line 435 of file Distribution.h.
Referenced by applyEmissModelNonEquil(), emitParticles(), printEmissionModelNonEquil(), and setupEmissionModelNonEquil().
|
private |
Definition at line 483 of file Distribution.h.
Referenced by printDistFlattop(), and setDistParametersFlattop().
|
private |
Definition at line 484 of file Distribution.h.
Referenced by printDistFlattop(), and setDistParametersFlattop().
|
private |
Definition at line 485 of file Distribution.h.
Referenced by createDistributionFlattop(), generateFlattopLaserProfile(), printDistFlattop(), setDistParametersFlattop(), and ~Distribution().
|
private |
Definition at line 482 of file Distribution.h.
Referenced by printDistFlattop(), and setDistParametersFlattop().
|
private |
Definition at line 474 of file Distribution.h.
Referenced by generateBinomial(), printDistBinomial(), and setDistParametersBinomial().
|
private |
Definition at line 479 of file Distribution.h.
Referenced by createDistributionMultiGauss(), printDistMultiGauss(), and setDistParametersMultiGauss().
|
private |
and list type for switch statements.
Definition at line 394 of file Distribution.h.
Referenced by calcPartPerDist(), and setNumberOfDistributions().
|
private |
Definition at line 419 of file Distribution.h.
Referenced by checkEmissionParameters(), createOpalCycl(), createOpalT(), emitParticles(), findEBin(), getNumberOfEmissionSteps(), getNumberOfEnergyBins(), initializeBeam(), injectBeam(), printEnergyBins(), printInfo(), Rebin(), setEmissionTime(), setupEnergyBins(), setupParticleBins(), writeOutFileHeader(), and writeOutFileInjection().
|
private |
Number of energy bins the distribution is broken into. Used for an emitted beam.
Definition at line 421 of file Distribution.h.
Referenced by checkEmissionParameters(), emitParticles(), findEBin(), getEmissionDeltaT(), getNumberOfEmissionSteps(), printEnergyBins(), printInfo(), and setupEnergyBins().
|
private |
Distribution is an emitted, and is currently emitting, rather than an injected, beam.
Definition at line 399 of file Distribution.h.
|
private |
Definition at line 404 of file Distribution.h.
Referenced by addDistributions(), calcPartPerDist(), create(), createOpalCycl(), createOpalT(), printInfo(), and shiftDistCoordinates().
|
staticprivate |
Definition at line 411 of file Distribution.h.
Referenced by setEmissionTime().
|
private |
Total thermal momentum.
Definition at line 431 of file Distribution.h.
Referenced by createDistributionFromFile(), createOpalT(), get_pmean(), setupEmissionModelAstra(), setupEmissionModelNone(), and setupEmissionModelNonEquil().
|
private |
Random number generator.
Definition at line 430 of file Distribution.h.
Referenced by applyEmissModelAstra(), applyEmissModelNone(), setupEmissionModelAstra(), and setupEmissionModelNone().
|
private |
Definition at line 447 of file Distribution.h.
Referenced by addDistributions(), adjustPhaseSpace(), createDistributionFromFile(), createDistributionMultiGauss(), emitParticles(), eraseBGxDist(), fillParticleBins(), generateBinomial(), generateFlattopLaserProfile(), generateFlattopT(), generateFlattopZ(), generateGaussZ(), generateMatchedGauss(), generateTransverseGauss(), getBGxDist(), injectBeam(), reflectDistribution(), scaleDistCoordinates(), shiftDistCoordinates(), and writeOutFileInjection().
|
private |
Definition at line 455 of file Distribution.h.
Referenced by emitParticles(), and writeOutFileEmission().
|
private |
Definition at line 449 of file Distribution.h.
Referenced by addDistributions(), adjustPhaseSpace(), createDistributionFromFile(), createDistributionMultiGauss(), emitParticles(), eraseBGyDist(), fillParticleBins(), generateBinomial(), generateFlattopLaserProfile(), generateFlattopT(), generateFlattopZ(), generateGaussZ(), generateMatchedGauss(), generateTransverseGauss(), getBGyDist(), injectBeam(), reflectDistribution(), scaleDistCoordinates(), shiftDistCoordinates(), and writeOutFileInjection().
|
private |
Definition at line 457 of file Distribution.h.
Referenced by emitParticles(), and writeOutFileEmission().
|
private |
Definition at line 451 of file Distribution.h.
Referenced by addDistributions(), adjustPhaseSpace(), createDistributionFromFile(), createDistributionMultiGauss(), emitParticles(), eraseBGzDist(), fillParticleBins(), generateAstraFlattopT(), generateBinomial(), generateFlattopZ(), generateGaussZ(), generateLongFlattopT(), generateMatchedGauss(), getBGzDist(), injectBeam(), reflectDistribution(), scaleDistCoordinates(), setupEmissionModelNone(), shiftDistCoordinates(), and writeOutFileInjection().
|
private |
Definition at line 459 of file Distribution.h.
Referenced by emitParticles(), and writeOutFileEmission().
|
private |
GSL histogram used to define energy bin structure.
Definition at line 427 of file Distribution.h.
Referenced by applyEmissModelNonEquil(), create(), createDistributionMultiGauss(), Distribution(), generateAstraFlattopT(), generateBinomial(), generateFlattopZ(), generateGaussZ(), generateLongFlattopT(), generateMatchedGauss(), generateTransverseGauss(), sampleUniformDisk(), and ~Distribution().
|
private |
Definition at line 478 of file Distribution.h.
Referenced by createDistributionMultiGauss(), printDistMultiGauss(), and setDistParametersMultiGauss().
|
private |
Definition at line 495 of file Distribution.h.
Referenced by getTEmission().
|
private |
Definition at line 471 of file Distribution.h.
Referenced by createDistributionMultiGauss(), generateBinomial(), generateGaussZ(), generateMatchedGauss(), generateTransverseGauss(), printDistBinomial(), printDistGauss(), printDistMatchedGauss(), printDistMultiGauss(), and setSigmaP_m().
|
private |
Definition at line 470 of file Distribution.h.
Referenced by createDistributionMultiGauss(), generateBinomial(), generateFlattopLaserProfile(), generateFlattopT(), generateFlattopZ(), generateGaussZ(), generateMatchedGauss(), generateTransverseGauss(), printDistBinomial(), printDistFlattop(), printDistGauss(), printDistMatchedGauss(), printDistMultiGauss(), setDistParametersFlattop(), setDistParametersGauss(), and setSigmaR_m().
|
private |
Definition at line 494 of file Distribution.h.
Referenced by getTEmission().
|
private |
Definition at line 468 of file Distribution.h.
Referenced by generateLongFlattopT(), printDistFlattop(), printDistGauss(), setDistParametersFlattop(), setDistParametersGauss(), and setEmissionTime().
|
private |
Definition at line 467 of file Distribution.h.
Referenced by generateLongFlattopT(), printDistFlattop(), printDistGauss(), setDistParametersFlattop(), setDistParametersGauss(), and setEmissionTime().
|
private |
Increase tEmission_m by twice this percentage to ensure that no particles fall on the leading edge of the first emission time step or the trailing edge of the last emission time step.
Definition at line 415 of file Distribution.h.
Referenced by generateAstraFlattopT(), getEmissionDeltaT(), getEnergyBinDeltaT(), printInfo(), and setEmissionTime().
|
private |
Emission parameters.
Definition at line 410 of file Distribution.h.
Referenced by generateAstraFlattopT(), getTEmission(), initializeBeam(), printInfo(), setEmissionTime(), setupEnergyBins(), and shiftBeam().
|
private |
Definition at line 493 of file Distribution.h.
Referenced by getTEmission().
|
private |
Definition at line 450 of file Distribution.h.
Referenced by addDistributions(), adjustPhaseSpace(), checkParticleNumber(), create(), createDistributionFromFile(), createDistributionMultiGauss(), createOpalCycl(), emitParticles(), eraseTOrZDist(), fillEBinHistogram(), fillParticleBins(), generateAstraFlattopT(), generateBinomial(), generateFlattopZ(), generateGaussZ(), generateLongFlattopT(), generateMatchedGauss(), getMaxTOrZ(), getMinTOrZ(), getTOrZDist(), injectBeam(), reflectDistribution(), scaleDistCoordinates(), shiftBeam(), shiftDistCoordinates(), writeOutFileHeader(), and writeOutFileInjection().
|
private |
Definition at line 458 of file Distribution.h.
Referenced by emitParticles(), and writeOutFileEmission().
|
private |
Definition at line 443 of file Distribution.h.
Referenced by emitParticles(), and getPercentageEmitted().
|
private |
Definition at line 442 of file Distribution.h.
Referenced by adjustPhaseSpace(), createOpalCycl(), createOpalT(), and getPercentageEmitted().
|
private |
Definition at line 469 of file Distribution.h.
Referenced by generateAstraFlattopT(), generateLongFlattopT(), getTEmission(), printDistFlattop(), printDistGauss(), setDistParametersFlattop(), setDistParametersGauss(), and setEmissionTime().
|
private |
time binned distribution with thermal energy
Definition at line 492 of file Distribution.h.
Referenced by generateAstraFlattopT(), getTEmission(), printDistFlattop(), and setDistParametersFlattop().
|
private |
Definition at line 446 of file Distribution.h.
Referenced by addDistributions(), adjustPhaseSpace(), createDistributionFromFile(), createDistributionMultiGauss(), emitParticles(), eraseXDist(), fillParticleBins(), generateBinomial(), generateFlattopLaserProfile(), generateFlattopT(), generateFlattopZ(), generateGaussZ(), generateMatchedGauss(), generateTransverseGauss(), getXDist(), injectBeam(), reflectDistribution(), scaleDistCoordinates(), shiftDistCoordinates(), and writeOutFileInjection().
|
private |
Definition at line 454 of file Distribution.h.
Referenced by emitParticles(), and writeOutFileEmission().
|
private |
Definition at line 448 of file Distribution.h.
Referenced by addDistributions(), adjustPhaseSpace(), createDistributionFromFile(), createDistributionMultiGauss(), emitParticles(), eraseYDist(), fillParticleBins(), generateBinomial(), generateFlattopLaserProfile(), generateFlattopT(), generateFlattopZ(), generateGaussZ(), generateMatchedGauss(), generateTransverseGauss(), getYDist(), injectBeam(), reflectDistribution(), scaleDistCoordinates(), shiftDistCoordinates(), and writeOutFileInjection().
|
private |
Definition at line 456 of file Distribution.h.
Referenced by emitParticles(), and writeOutFileEmission().