|
OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
|
A particle generation method following multivariate Gaussian distribution. More...
#include <MultiVariateGaussian.h>


Public Member Functions | |
| MultiVariateGaussian (std::shared_ptr< ParticleContainer_t > pc, std::shared_ptr< FieldContainer_t > fc, Distribution_t *opalDist) | |
| Constructor for MultiVariateGaussian. | |
| MultiVariateGaussian (std::shared_ptr< ParticleContainer_t > pc, const Vector_t< double, 3 > &meanR, const Vector_t< double, 3 > &meanP, const Vector_t< double, 3 > &sigmaR, const Vector_t< double, 3 > &sigmaP, const Vector_t< double, 3 > &cutoffR, const Vector_t< double, 3 > &cutoffP, bool fixMeanR=true, bool fixMeanP=true) | |
| Constructor for MultiVariateGaussian with specified parameters. | |
| MultiVariateGaussian (std::shared_ptr< ParticleContainer_t > pc, const Vector_t< double, 3 > &meanR, const Vector_t< double, 3 > &meanP, const Matrix_t &cov, const Vector_t< double, 3 > &cutoffR, const Vector_t< double, 3 > &cutoffP, bool fixMeanR=true, bool fixMeanP=true) | |
| Constructs the MultiVariateGaussian class. | |
| void | ComputeCholeskyFactorization () |
| Computes the Cholesky factorization of the covariance matrix. | |
| void | ComputeCenteredBounds () |
| Computes centered bounds for the particle distribution. | |
| void | generateParticles (size_t &numberOfParticles, Vector_t< double, 3 > nr) override |
| Generates particles based on the defined Gaussian distribution. | |
| void | emitParticles (double t, double dt) override |
| Time-stepped emission hook for one-shot delayed injection. | |
| void | setMeanR (const Vector_t< double, 3 > &meanR) |
| void | setMeanP (const Vector_t< double, 3 > &meanP) |
| void | setCutoffR (const Vector_t< double, 3 > &cutoffR) |
| void | setCutoffP (const Vector_t< double, 3 > &cutoffP) |
| void | setFixMeanR (bool fixMeanR) |
| void | setFixMeanP (bool fixMeanP) |
| void | setSigmaR (const Vector_t< double, 3 > &sigmaR) |
| void | setSigmaP (const Vector_t< double, 3 > &sigmaP) |
| void | setCovarianceMatrix (const Matrix_t &cov) |
| void | setL (const Matrix_t &L) |
| void | setEmissionOffsets (ippl::Vector< double, 3 > R0, ippl::Vector< double, 3 > P0, double t0, const std::string &emissionModel="NONE") |
| void | setInitialPolarization (const ippl::Vector< double, 3 > &pol) |
| void | fillPolarization (size_t startIdx, size_t count) |
| Vector_t< double, 3 > | getEmissionR0 () const |
| virtual bool | isEmissionDone (double t) const |
| Whether this sampler has finished all emission (no more particles will be created). | |
| virtual double | getGlobalTimeShift () const |
| Optional tracker time shift needed before the first emitted particles are born. | |
| virtual bool | hasInitialReferenceMomentum () const |
| Optional initial reference momentum in the source-local frame. | |
| virtual Vector_t< double, 3 > | getInitialReferenceMomentum () const |
| virtual double | getEmissionTimeStep () const |
| Optional OPAL-like tracker time step while this sampler is still emitting. | |
| virtual void | testNumEmitParticles (size_t, double) |
| virtual void | testEmitParticles (size_t, double) |
| virtual void | initDomainDecomp (double) |
| virtual void | setWithDomainDecomp (bool) |
| size_t | computeLocalEmitCount (size_t totalToSample) const |
| Computes the number of particles this rank should emit so that the global total equals totalToSample and no rank exceeds its capacity (space left). | |
Public Attributes | |
| IpplTimings::TimerRef | samplerTimer_m |
| Timer for performance profiling. | |
Protected Attributes | |
| std::shared_ptr< ParticleContainer_t > | pc_m |
| std::shared_ptr< FieldContainer_t > | fc_m |
| Distribution_t * | opalDist_m = nullptr |
| std::string | samplingMethod_m |
| Vector_t< double, 3 > | R0_m = 0.0 |
| Emission source offset: position R0, momentum P0, start time t0 (applied in sample step). | |
| Vector_t< double, 3 > | P0_m = 0.0 |
| double | t0_m = 0.0 |
| std::string | emissionModel_m = "NONE" |
| Vector_t< double, 3 > | initialPol_m = 0.0 |
| bool | hasEmittedOnce_m = false |
| For one-shot emitters (e.g. Gaussian at delayed t0): guard to avoid double sampling. | |
Private Member Functions | |
| void | initRandomPool () |
| Initializes the random number generator pool. | |
Private Attributes | |
| Vector_t< double, 3 > | meanR_m |
| Vector_t< double, 3 > | meanP_m |
| Matrix_t | cov_m |
| Matrix_t | L_m |
| Vector_t< double, 3 > | rmin_m |
| Vector_t< double, 3 > | rmax_m |
| Vector_t< double, 3 > | pmin_m |
| Vector_t< double, 3 > | pmax_m |
| Vector_t< double, 3 > | normRmin_m |
| Vector_t< double, 3 > | normRmax_m |
| Vector_t< double, 3 > | normPmin_m |
| Vector_t< double, 3 > | normPmax_m |
| Vector_t< double, 6 > | min_m |
| Min and Max bounds for all 6 dimensions (R0,P0,R1,P1,R2,P2). | |
| Vector_t< double, 6 > | max_m |
| Vector_t< double, 6 > | normMin_m |
| Vector_t< double, 6 > | normMax_m |
| Vector_t< double, 3 > | cutoffR_m |
| Cutoff multipliers for position and momentum distributions. | |
| Vector_t< double, 3 > | cutoffP_m |
| GeneratorPool | randPool_m |
| Pool of random number generators for parallel sampling. | |
| Vector_t< double, 3 > | sigmaR_m |
| Standard deviations for position and momentum distributions. | |
| Vector_t< double, 3 > | sigmaP_m |
| bool | fixMeanR_m |
| Flag to exactly fix the mean R and P of particles after sampling. | |
| bool | fixMeanP_m |
A particle generation method following multivariate Gaussian distribution.
This class generates particles following a multivariate Gaussian distribution using Cholesky factorization and inverse transformation sampling.
Given covariance matrix cov_m = [ Cov(R0,R0), Cov(R0,P0), Cov(R0,R1), Cov(R0,P1), ...] whose values are read from opalDist_m->correlationMatrix_m. First, the Cholesky factorization is computed cov_m = L_m * L_m^T Then, normally distribution particles R=P~N(0,I) are transformed to multivariate using L_m.
Definition at line 29 of file MultiVariateGaussian.h.
| MultiVariateGaussian::MultiVariateGaussian | ( | std::shared_ptr< ParticleContainer_t > | pc, |
| std::shared_ptr< FieldContainer_t > | fc, | ||
| Distribution_t * | opalDist | ||
| ) |
Constructor for MultiVariateGaussian.
Constructs the MultiVariateGaussian class.
| pc | Shared pointer to the particle container. |
| fc | Shared pointer to the field container. |
| opalDist | Borrowed distribution. |
Definition at line 13 of file MultiVariateGaussian.cpp.
References Distribution::correlationMatrix_m, cov_m, Distribution::getAvrgpz(), Distribution::getCutoffP(), Distribution::getCutoffR(), Distribution::getSigmaP(), Distribution::getSigmaR(), initRandomPool(), meanP_m, meanR_m, SamplingBase::opalDist_m, samplerTimer_m, setCutoffP(), setCutoffR(), setSigmaP(), and setSigmaR().

| MultiVariateGaussian::MultiVariateGaussian | ( | std::shared_ptr< ParticleContainer_t > | pc, |
| const Vector_t< double, 3 > & | meanR, | ||
| const Vector_t< double, 3 > & | meanP, | ||
| const Vector_t< double, 3 > & | sigmaR, | ||
| const Vector_t< double, 3 > & | sigmaP, | ||
| const Vector_t< double, 3 > & | cutoffR, | ||
| const Vector_t< double, 3 > & | cutoffP, | ||
| bool | fixMeanR = true, |
||
| bool | fixMeanP = true |
||
| ) |
Constructor for MultiVariateGaussian with specified parameters.
| meanR | Mean position vector. |
| meanP | Mean momentum vector. |
| sigmaR | Standard deviation for position distribution. |
| sigmaP | Standard deviation for momentum distribution. |
| cutoffR | Cutoff position vector. |
| cutoffP | Cutoff momentum vector. |
| fixMeanR | Boolean flag to fix mean position. |
| fixMeanP | Boolean flag to fix mean momentum. |
Definition at line 37 of file MultiVariateGaussian.cpp.
References cov_m, initRandomPool(), samplerTimer_m, setCutoffP(), setCutoffR(), setFixMeanP(), setFixMeanR(), setMeanP(), setMeanR(), setSigmaP(), and setSigmaR().

| MultiVariateGaussian::MultiVariateGaussian | ( | std::shared_ptr< ParticleContainer_t > | pc, |
| const Vector_t< double, 3 > & | meanR, | ||
| const Vector_t< double, 3 > & | meanP, | ||
| const Matrix_t & | cov, | ||
| const Vector_t< double, 3 > & | cutoffR, | ||
| const Vector_t< double, 3 > & | cutoffP, | ||
| bool | fixMeanR = true, |
||
| bool | fixMeanP = true |
||
| ) |
Constructs the MultiVariateGaussian class.
| pc | Shared pointer to the particle container. |
| meanR | Mean position vector. |
| meanP | Mean momentum vector. |
| cov | Covariance matrix. |
| cutoffR | Cutoff position vector. |
| cutoffP | Cutoff momentum vector. |
| fixMeanR | Boolean flag to fix mean position. |
| fixMeanP | Boolean flag to fix mean momentum. |
Definition at line 68 of file MultiVariateGaussian.cpp.
References cov_m, initRandomPool(), samplerTimer_m, setCutoffP(), setCutoffR(), setFixMeanP(), setFixMeanR(), setMeanP(), setMeanR(), setSigmaP(), and setSigmaR().

| void MultiVariateGaussian::ComputeCenteredBounds | ( | ) |
Computes centered bounds for the particle distribution.
Computes normalized boundaries for the multivariate Gaussian sampling.
Definition at line 142 of file MultiVariateGaussian.cpp.
References cutoffP_m, cutoffR_m, L_m, max_m, min_m, normMax_m, normMin_m, normPmax_m, normPmin_m, normRmax_m, normRmin_m, pmax_m, pmin_m, rmax_m, rmin_m, sigmaP_m, and sigmaR_m.
Referenced by generateParticles().
| void MultiVariateGaussian::ComputeCholeskyFactorization | ( | ) |
Computes the Cholesky factorization of the covariance matrix.
Computes the Cholesky decomposition of the covariance matrix.
Definition at line 117 of file MultiVariateGaussian.cpp.
Referenced by generateParticles().
|
inherited |
Computes the number of particles this rank should emit so that the global total equals totalToSample and no rank exceeds its capacity (space left).
| totalToSample | Global number of particles to emit this timestep. |
Definition at line 6 of file SamplingBase.cpp.
References SamplingBase::pc_m.
Referenced by FlatTop::countEnteringParticlesPerRank(), FromFile::generateParticles(), Gaussian::generateParticles(), and generateParticles().
|
overridevirtual |
Time-stepped emission hook for one-shot delayed injection.
Like Gaussian, this emits once when [t, t+dt] crosses t0 for sources configured with t0 > 0 and a positive NPARTDIST. Initial sampling at t0 == 0 is handled via generateParticles.
Reimplemented from SamplingBase.
Definition at line 376 of file MultiVariateGaussian.cpp.
References generateParticles(), Distribution::getNumParticles(), SamplingBase::hasEmittedOnce_m, SamplingBase::opalDist_m, SamplingBase::pc_m, and SamplingBase::t0_m.

|
inlineinherited |
Fill the Pol particle attribute with initialPol_m on the half-open range [startIdx, startIdx + count). No-op when the container does not store spin. Must be called after the particles have been created and before they are pushed downstream.
Definition at line 63 of file SamplingBase.hpp.
References SamplingBase::initialPol_m, and SamplingBase::pc_m.
Referenced by FlatTop::emitParticles(), FromFile::generateParticles(), Gaussian::generateParticles(), and generateParticles().
|
overridevirtual |
Generates particles based on the defined Gaussian distribution.
Generates particles following a multivariate Gaussian distribution.
| numberOfParticles | Number of particles to generate. |
| nr | Vector specifying additional sampling parameters. |
Reimplemented from SamplingBase.
Definition at line 190 of file MultiVariateGaussian.cpp.
References ComputeCenteredBounds(), ComputeCholeskyFactorization(), SamplingBase::computeLocalEmitCount(), SamplingBase::emissionModel_m, SamplingBase::fillPolarization(), fixMeanP_m, fixMeanR_m, SamplingBase::hasEmittedOnce_m, L_m, meanP_m, meanR_m, normPmax_m, normPmin_m, normRmax_m, normRmin_m, SamplingBase::P0_m, SamplingBase::pc_m, SamplingBase::R0_m, randPool_m, samplerTimer_m, and SamplingBase::t0_m.
Referenced by emitParticles(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

|
inlineinherited |
Definition at line 78 of file SamplingBase.hpp.
References SamplingBase::R0_m.
|
inlinevirtualinherited |
Optional OPAL-like tracker time step while this sampler is still emitting.
Reimplemented in EmittedFromFile, and OpalFlatTop.
Definition at line 102 of file SamplingBase.hpp.
|
inlinevirtualinherited |
Optional tracker time shift needed before the first emitted particles are born.
Reimplemented in EmittedFromFile, and OpalFlatTop.
Definition at line 92 of file SamplingBase.hpp.
|
inlinevirtualinherited |
Reimplemented in EmittedFromFile, and OpalFlatTop.
Definition at line 97 of file SamplingBase.hpp.
|
inlinevirtualinherited |
Optional initial reference momentum in the source-local frame.
Reimplemented in EmittedFromFile, and OpalFlatTop.
Definition at line 95 of file SamplingBase.hpp.
|
inlinevirtualinherited |
Reimplemented in FlatTop, and OpalFlatTop.
Definition at line 110 of file SamplingBase.hpp.
|
private |
Initializes the random number generator pool.
Definition at line 98 of file MultiVariateGaussian.cpp.
References gmsg, randPool_m, and Options::seed.
Referenced by MultiVariateGaussian(), MultiVariateGaussian(), and MultiVariateGaussian().
|
inlinevirtualinherited |
Whether this sampler has finished all emission (no more particles will be created).
| t | Current simulation time (s). |
Reimplemented in FlatTop, EmittedFromFile, and OpalFlatTop.
Definition at line 86 of file SamplingBase.hpp.
References SamplingBase::hasEmittedOnce_m.
|
inline |
Definition at line 122 of file MultiVariateGaussian.h.
References cov_m.
|
inline |
Definition at line 113 of file MultiVariateGaussian.h.
References cutoffP_m.
Referenced by MultiVariateGaussian(), MultiVariateGaussian(), and MultiVariateGaussian().
|
inline |
Definition at line 111 of file MultiVariateGaussian.h.
References cutoffR_m.
Referenced by MultiVariateGaussian(), MultiVariateGaussian(), and MultiVariateGaussian().
|
inlineinherited |
Definition at line 48 of file SamplingBase.hpp.
References SamplingBase::emissionModel_m, SamplingBase::P0_m, SamplingBase::R0_m, and SamplingBase::t0_m.
Referenced by TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().
|
inline |
Definition at line 117 of file MultiVariateGaussian.h.
References fixMeanP_m.
Referenced by MultiVariateGaussian(), and MultiVariateGaussian().
|
inline |
Definition at line 115 of file MultiVariateGaussian.h.
References fixMeanR_m.
Referenced by MultiVariateGaussian(), and MultiVariateGaussian().
|
inlineinherited |
Definition at line 57 of file SamplingBase.hpp.
References SamplingBase::initialPol_m.
|
inline |
Definition at line 124 of file MultiVariateGaussian.h.
References L_m.
|
inline |
Definition at line 109 of file MultiVariateGaussian.h.
References meanP_m.
Referenced by MultiVariateGaussian(), and MultiVariateGaussian().
|
inline |
Definition at line 107 of file MultiVariateGaussian.h.
References meanR_m.
Referenced by MultiVariateGaussian(), and MultiVariateGaussian().
|
inline |
Definition at line 120 of file MultiVariateGaussian.h.
References sigmaP_m.
Referenced by MultiVariateGaussian(), MultiVariateGaussian(), and MultiVariateGaussian().
|
inline |
Definition at line 119 of file MultiVariateGaussian.h.
References sigmaR_m.
Referenced by MultiVariateGaussian(), MultiVariateGaussian(), and MultiVariateGaussian().
|
inlinevirtualinherited |
Reimplemented in FlatTop, and OpalFlatTop.
Definition at line 112 of file SamplingBase.hpp.
|
inlinevirtualinherited |
Definition at line 108 of file SamplingBase.hpp.
|
inlinevirtualinherited |
Definition at line 105 of file SamplingBase.hpp.
|
private |
Definition at line 135 of file MultiVariateGaussian.h.
Referenced by ComputeCholeskyFactorization(), MultiVariateGaussian(), MultiVariateGaussian(), MultiVariateGaussian(), and setCovarianceMatrix().
|
private |
Definition at line 161 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds(), and setCutoffP().
|
private |
Cutoff multipliers for position and momentum distributions.
Definition at line 160 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds(), and setCutoffR().
|
protectedinherited |
Definition at line 25 of file SamplingBase.hpp.
Referenced by OpalFlatTop::generateLocalParticles(), EmittedFromFile::generateParticles(), FromFile::generateParticles(), Gaussian::generateParticles(), generateParticles(), FlatTop::generateUniformDisk(), OpalFlatTop::getInitialReferenceMomentum(), and SamplingBase::setEmissionOffsets().
|
protectedinherited |
Definition at line 18 of file SamplingBase.hpp.
Referenced by FlatTop::initDomainDecomp(), OpalFlatTop::initDomainDecomp(), FlatTop::setParameters(), and OpalFlatTop::setParameters().
|
private |
Definition at line 183 of file MultiVariateGaussian.h.
Referenced by generateParticles(), and setFixMeanP().
|
private |
Flag to exactly fix the mean R and P of particles after sampling.
Definition at line 182 of file MultiVariateGaussian.h.
Referenced by generateParticles(), and setFixMeanR().
|
protectedinherited |
For one-shot emitters (e.g. Gaussian at delayed t0): guard to avoid double sampling.
Definition at line 33 of file SamplingBase.hpp.
Referenced by FromFile::emitParticles(), Gaussian::emitParticles(), emitParticles(), FromFile::generateParticles(), Gaussian::generateParticles(), generateParticles(), and SamplingBase::isEmissionDone().
|
protectedinherited |
Initial polarization vector P applied to every particle this sampler creates. Rest-frame Pauli expectations along lab-frame axes; |Pol| in [0, 1]. Ignored when the container does not have a spin attribute (hasSpin() == false).
Definition at line 30 of file SamplingBase.hpp.
Referenced by SamplingBase::fillPolarization(), and SamplingBase::setInitialPolarization().
|
private |
Definition at line 140 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds(), ComputeCholeskyFactorization(), generateParticles(), and setL().
|
private |
Definition at line 155 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds().
|
private |
Definition at line 130 of file MultiVariateGaussian.h.
Referenced by generateParticles(), MultiVariateGaussian(), and setMeanP().
|
private |
Definition at line 130 of file MultiVariateGaussian.h.
Referenced by generateParticles(), MultiVariateGaussian(), and setMeanR().
|
private |
Min and Max bounds for all 6 dimensions (R0,P0,R1,P1,R2,P2).
Definition at line 155 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds().
|
private |
Definition at line 155 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds().
|
private |
Definition at line 155 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds().
|
private |
Definition at line 150 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds(), and generateParticles().
|
private |
Definition at line 150 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds(), and generateParticles().
|
private |
Definition at line 150 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds(), and generateParticles().
|
private |
Definition at line 150 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds(), and generateParticles().
|
protectedinherited |
Definition at line 19 of file SamplingBase.hpp.
Referenced by EmittedFromFile::buildInventory(), FromFile::emitParticles(), Gaussian::emitParticles(), emitParticles(), EmittedFromFile::generateParticles(), MultiVariateGaussian(), and FlatTop::setParameters().
|
protectedinherited |
Definition at line 23 of file SamplingBase.hpp.
Referenced by EmittedFromFile::buildInventory(), EmittedFromFile::generateLocalParticles(), OpalFlatTop::generateLocalParticles(), FromFile::generateParticles(), Gaussian::generateParticles(), generateParticles(), FlatTop::generateUniformDisk(), OpalFlatTop::getInitialReferenceMomentum(), and SamplingBase::setEmissionOffsets().
|
protectedinherited |
Definition at line 17 of file SamplingBase.hpp.
Referenced by SamplingBase::computeLocalEmitCount(), EmittedFromFile::computeLocalEmitRange(), OpalFlatTop::computeLocalEmitRange(), FlatTop::countEnteringParticlesPerRank(), EmittedFromFile::emitParticles(), FlatTop::emitParticles(), FromFile::emitParticles(), Gaussian::emitParticles(), emitParticles(), OpalFlatTop::emitParticles(), SamplingBase::fillPolarization(), EmittedFromFile::generateLocalParticles(), OpalFlatTop::generateLocalParticles(), FromFile::generateParticles(), Gaussian::generateParticles(), generateParticles(), FlatTop::generateUniformDisk(), FlatTop::initDomainDecomp(), OpalFlatTop::initDomainDecomp(), and FlatTop::testNumEmitParticles().
|
private |
Definition at line 145 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds().
|
private |
Definition at line 145 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds().
|
protectedinherited |
Emission source offset: position R0, momentum P0, start time t0 (applied in sample step).
Definition at line 22 of file SamplingBase.hpp.
Referenced by EmittedFromFile::generateLocalParticles(), OpalFlatTop::generateLocalParticles(), FromFile::generateParticles(), Gaussian::generateParticles(), generateParticles(), FlatTop::generateUniformDisk(), SamplingBase::getEmissionR0(), and SamplingBase::setEmissionOffsets().
|
private |
Pool of random number generators for parallel sampling.
Definition at line 171 of file MultiVariateGaussian.h.
Referenced by generateParticles(), and initRandomPool().
|
private |
Definition at line 145 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds().
|
private |
Definition at line 145 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds().
| IpplTimings::TimerRef MultiVariateGaussian::samplerTimer_m |
Timer for performance profiling.
Definition at line 105 of file MultiVariateGaussian.h.
Referenced by generateParticles(), MultiVariateGaussian(), MultiVariateGaussian(), and MultiVariateGaussian().
|
protectedinherited |
Definition at line 20 of file SamplingBase.hpp.
|
private |
Definition at line 177 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds(), and setSigmaP().
|
private |
Standard deviations for position and momentum distributions.
Definition at line 176 of file MultiVariateGaussian.h.
Referenced by ComputeCenteredBounds(), and setSigmaR().
|
protectedinherited |
Definition at line 24 of file SamplingBase.hpp.
Referenced by EmittedFromFile::buildInventory(), FlatTop::emitParticles(), FromFile::emitParticles(), Gaussian::emitParticles(), emitParticles(), FromFile::generateParticles(), Gaussian::generateParticles(), generateParticles(), EmittedFromFile::getGlobalTimeShift(), OpalFlatTop::getGlobalTimeShift(), FlatTop::isEmissionDone(), SamplingBase::setEmissionOffsets(), and OpalFlatTop::toBirthTime().