18#ifndef DISTRIBUTIONMOMENTS_H
19#define DISTRIBUTIONMOMENTS_H
30template<
class T,
unsigned Dim>
37 void compute(
const std::vector<OpalParticle>::const_iterator &,
38 const std::vector<OpalParticle>::const_iterator &);
82 template<
class InputIt>
84 template<
class InputIt>
86 template<
class InputIt>
88 using iterator_t = std::vector<Vektor<double, 2>>::const_iterator;
90 const std::vector<int>& globalAccumulatedHistogram,
91 const std::vector<int>& localAccumulatedHistogram,
92 unsigned int dimension,
93 int numRequiredParticles)
const;
336 for (
unsigned int i = 0; i < 3; ++ i) {
PartBunchBase< T, Dim >::ConstIterator end(PartBunchBase< T, Dim > const &bunch)
PartBunchBase< T, Dim >::ConstIterator begin(PartBunchBase< T, Dim > const &bunch)
T::PETE_Expr_t::PETE_Return_t max(const PETE_Expr< T > &expr, NDIndex< D > &loc)
PETE_TUTree< FnAbs, typename T::PETE_Expr_t > abs(const PETE_Expr< T > &l)
constexpr double kB
Boltzman's constant in eV/K.
constexpr double c
The velocity of light in m/s.
Vector_t getStandardDeviationMomentum() const
double meanKineticEnergy_m
Vector_t ninetyNinePercentile_m
Vector_t get99Percentile() const
double getMeanKineticEnergy() const
Vector_t getStandardDeviationPosition() const
void computeDebyeLength(PartBunchBase< double, 3 > const &, double)
double getMeanGamma() const
void computePlasmaParameter(double)
Vector_t getNormalizedEmittance95Percentile() const
Vector_t getNormalizedEmittance68Percentile() const
FMatrix< double, 6, 6 > moments_m
double getTotalCharge() const
static const double percentileFourSigmasNormalDist_m
Vector_t getStandardDeviationRP() const
double getTemperature() const
Vector_t getNormalizedEmittance99_99Percentile() const
Vector_t getNormalizedEmittance99Percentile() const
Vector_t getMeanPosition() const
void computeMeans(const InputIt &, const InputIt &)
Vector_t get99_99Percentile() const
double getDebyeLength() const
Vector_t normalizedEps99_99Percentile_m
void computeMeanKineticEnergy(PartBunchBase< double, 3 > const &)
unsigned int totalNumParticles_m
void compute(const std::vector< OpalParticle >::const_iterator &, const std::vector< OpalParticle >::const_iterator &)
double getStdKineticEnergy() const
Vector_t normalizedEps68Percentile_m
Vector_t normalizedEps95Percentile_m
Vector_t getNormalizedEmittance() const
std::vector< Vektor< double, 2 > >::const_iterator iterator_t
double getStdTime() const
double getTotalMass() const
double getPlasmaParameter() const
Vector_t ninetyFivePercentile_m
Vector_t getMeanMomentum() const
void computeStatistics(const InputIt &, const InputIt &)
double computeNormalizedEmittance(const iterator_t &begin, const iterator_t &end) const
double getTotalNumParticles() const
Vector_t normalizedEps99Percentile_m
static const double percentileThreeSigmasNormalDist_m
FMatrix< double, 6, 6 > getMoments6x6() const
void computePercentiles(const InputIt &, const InputIt &)
static const double percentileTwoSigmasNormalDist_m
bool isParticleExcluded(const OpalParticle &) const
Vector_t get95Percentile() const
Vector_t sixtyEightPercentile_m
Vector_t get68Percentile() const
Vector_t ninetyNine_NinetyNinePercentile_m
void fillMembers(std::vector< double > const &)
std::pair< double, iterator_t > determinePercentilesDetail(const iterator_t &begin, const iterator_t &end, const std::vector< int > &globalAccumulatedHistogram, const std::vector< int > &localAccumulatedHistogram, unsigned int dimension, int numRequiredParticles) const
static const double percentileOneSigmaNormalDist_m
double getMeanTime() const
void resetPlasmaParameters()
double stdKineticEnergy_m
Vector_t getGeometricEmittance() const